1
subroutine mrs99(x,q,mode,upv,dnv,usea,dsea,str,chm,bot,glu)
2
C****************************************************************C
4
C This is a package for the new **corrected** MRST parton C
5
C distributions. The format is similar to the previous C
6
C (1998) MRST series. C
8
C NOTE: 7 new sets are added here, corresponding to shifting C
9
C the small x HERA data up and down by 2.5%, and by varying C
10
C the charm and strange distributions, and by forcing a C
11
C larger d/u ratio at large x. C
13
C As before, x times the parton distribution is returned, C
14
C q is the scale in GeV, MSbar factorization is assumed, C
15
C and Lambda(MSbar,nf=4) is given below for each set. C
19
C mode set comment L(4)/MeV a_s(M_Z) grid#1 C
20
C ---- --- ------- -------- ------- ------ C
22
C 1 COR01 central gluon, a_s 300 0.1175 0.00537 C
23
C 2 COR02 higher gluon 300 0.1175 0.00497 C
24
C 3 COR03 lower gluon 300 0.1175 0.00398 C
25
C 4 COR04 lower a_s 229 0.1125 0.00585 C
26
C 5 COR05 higher a_s 383 0.1225 0.00384 C
27
C 6 COR06 quarks up 303.3 0.1178 0.00497 C
28
C 7 COR07 quarks down 290.3 0.1171 0.00593 C
29
C 8 COR08 strange up 300 0.1175 0.00524 C
30
C 9 COR09 strange down 300 0.1175 0.00524 C
31
C 10 C0R10 charm up 300 0.1175 0.00525 C
32
C 11 COR11 charm down 300 0.1175 0.00524 C
33
C 12 COR12 larger d/u 300 0.1175 0.00515 C
35
C The corresponding grid files are called cor01.dat etc. C
38
C A.D. Martin, R.G. Roberts, W.J. Stirling, R.S Thorne C
39
C Univ. Durham preprint DTP/99/64, hep-ph/9907231 (1999) C
41
C Comments to : W.J.Stirling@durham.ac.uk C
44
C****************************************************************C
45
implicit real*8(a-h,o-z)
46
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
48
if(q2.lt.qsqmin.or.q2.gt.qsqmax) print 99
49
if(x.lt.xmin.or.x.gt.xmax) print 98
51
call mrs991(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
52
elseif(mode.eq.2) then
53
call mrs992(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
54
elseif(mode.eq.3) then
55
call mrs993(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
56
elseif(mode.eq.4) then
57
call mrs994(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
58
elseif(mode.eq.5) then
59
call mrs995(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
60
elseif(mode.eq.6) then
61
call mrs996(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
62
elseif(mode.eq.7) then
63
call mrs997(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
64
elseif(mode.eq.8) then
65
call mrs998(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
66
elseif(mode.eq.9) then
67
call mrs999(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
68
elseif(mode.eq.10) then
69
call mrs9910(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
70
elseif(mode.eq.11) then
71
call mrs9911(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
72
elseif(mode.eq.12) then
73
call mrs9912(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
75
99 format(' WARNING: Q^2 VALUE IS OUT OF RANGE ')
76
98 format(' WARNING: X VALUE IS OUT OF RANGE ')
80
subroutine mrs991(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
81
implicit real*8(a-h,o-z)
83
Character Tablefile*40
84
data Tablefile/'cor01.dat'/
86
common/IU/IU !this is set in opendata.f
88
parameter(nx=49,nq=37,ntenth=23,np=8)
89
real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
90
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
91
. 1d-4,2d-4,4d-4,6d-4,8d-4,
92
. 1d-3,2d-3,4d-3,6d-3,8d-3,
93
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
94
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
95
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
96
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
98
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
99
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
100
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
101
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
102
. 1.8d6,3.2d6,5.6d6,1d7/
103
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
104
data n0/3,4,5,9,9,9,9,9/
109
if(init.ne.0) goto 10
110
c open(unit=1,file='Pdfdata/cor01.dat',status='old')
111
call OpenData(Tablefile)
114
read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
115
. f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
116
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
118
25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
121
xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
123
if(i.eq.5.or.i.eq.7) goto 31
125
30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
135
if(qsq.lt.qsqmin) qsq=qsqmin
136
if(qsq.gt.qsqmax) qsq=qsqmax
138
if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
141
if(xxx.gt.xx(n+1)) goto 70
142
a=(xxx-xx(n))/(xx(n+1)-xx(n))
145
if(qsq.gt.qq(m+1)) goto 80
146
b=(qsq-qq(m))/(qq(m+1)-qq(m))
148
g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
149
. + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
150
if(n.ge.ntenth) goto 65
151
if(i.eq.5.or.i.eq.7) goto 65
152
fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
153
g(i)=fac*10d0**(g(i)-fac)
155
g(i)=g(i)*(1d0-x)**n0(i)
170
subroutine mrs992(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
171
implicit real*8(a-h,o-z)
173
Character Tablefile*40
174
data Tablefile/'cor02.dat'/
176
common/IU/IU !this is set in opendata.f
178
parameter(nx=49,nq=37,ntenth=23,np=8)
179
real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
180
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
181
. 1d-4,2d-4,4d-4,6d-4,8d-4,
182
. 1d-3,2d-3,4d-3,6d-3,8d-3,
183
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
184
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
185
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
186
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
188
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
189
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
190
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
191
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
192
. 1.8d6,3.2d6,5.6d6,1d7/
193
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
194
data n0/3,4,5,9,9,9,9,9/
199
if(init.ne.0) goto 10
200
c open(unit=1,file='Pdfdata/cor02.dat',status='old')
201
call OpenData(Tablefile)
204
read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
205
. f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
206
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
208
25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
211
xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
213
if(i.eq.5.or.i.eq.7) goto 31
215
30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
225
if(qsq.lt.qsqmin) qsq=qsqmin
226
if(qsq.gt.qsqmax) qsq=qsqmax
228
if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
231
if(xxx.gt.xx(n+1)) goto 70
232
a=(xxx-xx(n))/(xx(n+1)-xx(n))
235
if(qsq.gt.qq(m+1)) goto 80
236
b=(qsq-qq(m))/(qq(m+1)-qq(m))
238
g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
239
. + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
240
if(n.ge.ntenth) goto 65
241
if(i.eq.5.or.i.eq.7) goto 65
242
fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
243
g(i)=fac*10d0**(g(i)-fac)
245
g(i)=g(i)*(1d0-x)**n0(i)
260
subroutine mrs993(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
261
implicit real*8(a-h,o-z)
263
Character Tablefile*40
264
data Tablefile/'cor03.dat'/
266
common/IU/IU !this is set in opendata.f
268
parameter(nx=49,nq=37,ntenth=23,np=8)
269
real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
270
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
271
. 1d-4,2d-4,4d-4,6d-4,8d-4,
272
. 1d-3,2d-3,4d-3,6d-3,8d-3,
273
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
274
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
275
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
276
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
278
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
279
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
280
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
281
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
282
. 1.8d6,3.2d6,5.6d6,1d7/
283
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
284
data n0/3,4,5,9,9,9,9,9/
289
if(init.ne.0) goto 10
290
c open(unit=1,file='Pdfdata/cor03.dat',status='old')
291
call OpenData(Tablefile)
294
read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
295
. f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
296
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
298
25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
301
xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
303
if(i.eq.5.or.i.eq.7) goto 31
305
30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
315
if(qsq.lt.qsqmin) qsq=qsqmin
316
if(qsq.gt.qsqmax) qsq=qsqmax
318
if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
321
if(xxx.gt.xx(n+1)) goto 70
322
a=(xxx-xx(n))/(xx(n+1)-xx(n))
325
if(qsq.gt.qq(m+1)) goto 80
326
b=(qsq-qq(m))/(qq(m+1)-qq(m))
328
g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
329
. + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
330
if(n.ge.ntenth) goto 65
331
if(i.eq.5.or.i.eq.7) goto 65
332
fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
333
g(i)=fac*10d0**(g(i)-fac)
335
g(i)=g(i)*(1d0-x)**n0(i)
351
subroutine mrs994(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
352
implicit real*8(a-h,o-z)
354
Character Tablefile*40
355
data Tablefile/'cor04.dat'/
357
common/IU/IU !this is set in opendata.f
359
parameter(nx=49,nq=37,ntenth=23,np=8)
360
real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
361
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
362
. 1d-4,2d-4,4d-4,6d-4,8d-4,
363
. 1d-3,2d-3,4d-3,6d-3,8d-3,
364
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
365
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
366
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
367
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
369
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
370
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
371
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
372
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
373
. 1.8d6,3.2d6,5.6d6,1d7/
374
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
375
data n0/3,4,5,9,9,9,9,9/
380
if(init.ne.0) goto 10
381
c open(unit=1,file='Pdfdata/cor04.dat',status='old')
382
call OpenData(Tablefile)
385
read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
386
. f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
387
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
389
25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
392
xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
394
if(i.eq.5.or.i.eq.7) goto 31
396
30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
406
if(qsq.lt.qsqmin) qsq=qsqmin
407
if(qsq.gt.qsqmax) qsq=qsqmax
409
if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
412
if(xxx.gt.xx(n+1)) goto 70
413
a=(xxx-xx(n))/(xx(n+1)-xx(n))
416
if(qsq.gt.qq(m+1)) goto 80
417
b=(qsq-qq(m))/(qq(m+1)-qq(m))
419
g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
420
. + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
421
if(n.ge.ntenth) goto 65
422
if(i.eq.5.or.i.eq.7) goto 65
423
fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
424
g(i)=fac*10d0**(g(i)-fac)
426
g(i)=g(i)*(1d0-x)**n0(i)
441
subroutine mrs995(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
442
implicit real*8(a-h,o-z)
444
Character Tablefile*40
445
data Tablefile/'cor05.dat'/
447
common/IU/IU !this is set in opendata.f
449
parameter(nx=49,nq=37,ntenth=23,np=8)
450
real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
451
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
452
. 1d-4,2d-4,4d-4,6d-4,8d-4,
453
. 1d-3,2d-3,4d-3,6d-3,8d-3,
454
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
455
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
456
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
457
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
459
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
460
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
461
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
462
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
463
. 1.8d6,3.2d6,5.6d6,1d7/
464
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
465
data n0/3,4,5,9,9,9,9,9/
470
if(init.ne.0) goto 10
471
c open(unit=1,file='Pdfdata/cor05.dat',status='old')
472
call OpenData(Tablefile)
475
read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
476
. f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
477
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
479
25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
482
xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
484
if(i.eq.5.or.i.eq.7) goto 31
486
30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
496
if(qsq.lt.qsqmin) qsq=qsqmin
497
if(qsq.gt.qsqmax) qsq=qsqmax
499
if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
502
if(xxx.gt.xx(n+1)) goto 70
503
a=(xxx-xx(n))/(xx(n+1)-xx(n))
506
if(qsq.gt.qq(m+1)) goto 80
507
b=(qsq-qq(m))/(qq(m+1)-qq(m))
509
g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
510
. + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
511
if(n.ge.ntenth) goto 65
512
if(i.eq.5.or.i.eq.7) goto 65
513
fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
514
g(i)=fac*10d0**(g(i)-fac)
516
g(i)=g(i)*(1d0-x)**n0(i)
532
subroutine mrs996(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
533
implicit real*8(a-h,o-z)
535
Character Tablefile*40
536
data Tablefile/'cor06.dat'/
538
common/IU/IU !this is set in opendata.f
540
parameter(nx=49,nq=37,ntenth=23,np=8)
541
real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
542
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
543
. 1d-4,2d-4,4d-4,6d-4,8d-4,
544
. 1d-3,2d-3,4d-3,6d-3,8d-3,
545
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
546
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
547
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
548
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
550
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
551
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
552
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
553
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
554
. 1.8d6,3.2d6,5.6d6,1d7/
555
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
556
data n0/3,4,5,9,9,9,9,9/
561
if(init.ne.0) goto 10
562
c open(unit=1,file='Pdfdata/cor06.dat',status='old')
563
call OpenData(Tablefile)
566
read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
567
. f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
568
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
570
25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
573
xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
575
if(i.eq.5.or.i.eq.7) goto 31
577
30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
587
if(qsq.lt.qsqmin) qsq=qsqmin
588
if(qsq.gt.qsqmax) qsq=qsqmax
590
if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
593
if(xxx.gt.xx(n+1)) goto 70
594
a=(xxx-xx(n))/(xx(n+1)-xx(n))
597
if(qsq.gt.qq(m+1)) goto 80
598
b=(qsq-qq(m))/(qq(m+1)-qq(m))
600
g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
601
. + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
602
if(n.ge.ntenth) goto 65
603
if(i.eq.5.or.i.eq.7) goto 65
604
fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
605
g(i)=fac*10d0**(g(i)-fac)
607
g(i)=g(i)*(1d0-x)**n0(i)
622
subroutine mrs997(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
623
implicit real*8(a-h,o-z)
625
Character Tablefile*40
626
data Tablefile/'cor07.dat'/
628
common/IU/IU !this is set in opendata.f
630
parameter(nx=49,nq=37,ntenth=23,np=8)
631
real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
632
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
633
. 1d-4,2d-4,4d-4,6d-4,8d-4,
634
. 1d-3,2d-3,4d-3,6d-3,8d-3,
635
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
636
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
637
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
638
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
640
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
641
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
642
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
643
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
644
. 1.8d6,3.2d6,5.6d6,1d7/
645
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
646
data n0/3,4,5,9,9,9,9,9/
651
if(init.ne.0) goto 10
652
c open(unit=1,file='Pdfdata/cor07.dat',status='old')
653
call OpenData(Tablefile)
656
read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
657
. f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
658
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
660
25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
663
xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
665
if(i.eq.5.or.i.eq.7) goto 31
667
30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
677
if(qsq.lt.qsqmin) qsq=qsqmin
678
if(qsq.gt.qsqmax) qsq=qsqmax
680
if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
683
if(xxx.gt.xx(n+1)) goto 70
684
a=(xxx-xx(n))/(xx(n+1)-xx(n))
687
if(qsq.gt.qq(m+1)) goto 80
688
b=(qsq-qq(m))/(qq(m+1)-qq(m))
690
g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
691
. + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
692
if(n.ge.ntenth) goto 65
693
if(i.eq.5.or.i.eq.7) goto 65
694
fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
695
g(i)=fac*10d0**(g(i)-fac)
697
g(i)=g(i)*(1d0-x)**n0(i)
714
subroutine mrs998(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
715
implicit real*8(a-h,o-z)
717
Character Tablefile*40
718
data Tablefile/'cor08.dat'/
720
common/IU/IU !this is set in opendata.f
722
parameter(nx=49,nq=37,ntenth=23,np=8)
723
real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
724
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
725
. 1d-4,2d-4,4d-4,6d-4,8d-4,
726
. 1d-3,2d-3,4d-3,6d-3,8d-3,
727
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
728
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
729
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
730
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
732
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
733
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
734
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
735
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
736
. 1.8d6,3.2d6,5.6d6,1d7/
737
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
738
data n0/3,4,5,9,9,9,9,9/
743
if(init.ne.0) goto 10
744
c open(unit=1,file='Pdfdata/cor08.dat',status='old')
745
call OpenData(Tablefile)
748
read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
749
. f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
750
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
752
25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
755
xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
757
if(i.eq.5.or.i.eq.7) goto 31
759
30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
769
if(qsq.lt.qsqmin) qsq=qsqmin
770
if(qsq.gt.qsqmax) qsq=qsqmax
772
if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
775
if(xxx.gt.xx(n+1)) goto 70
776
a=(xxx-xx(n))/(xx(n+1)-xx(n))
779
if(qsq.gt.qq(m+1)) goto 80
780
b=(qsq-qq(m))/(qq(m+1)-qq(m))
782
g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
783
. + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
784
if(n.ge.ntenth) goto 65
785
if(i.eq.5.or.i.eq.7) goto 65
786
fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
787
g(i)=fac*10d0**(g(i)-fac)
789
g(i)=g(i)*(1d0-x)**n0(i)
804
subroutine mrs999(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
805
implicit real*8(a-h,o-z)
807
Character Tablefile*40
808
data Tablefile/'cor09.dat'/
810
common/IU/IU !this is set in opendata.f
812
parameter(nx=49,nq=37,ntenth=23,np=8)
813
real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
814
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
815
. 1d-4,2d-4,4d-4,6d-4,8d-4,
816
. 1d-3,2d-3,4d-3,6d-3,8d-3,
817
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
818
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
819
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
820
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
822
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
823
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
824
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
825
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
826
. 1.8d6,3.2d6,5.6d6,1d7/
827
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
828
data n0/3,4,5,9,9,9,9,9/
833
if(init.ne.0) goto 10
834
c open(unit=1,file='Pdfdata/cor09.dat',status='old')
835
call OpenData(Tablefile)
838
read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
839
. f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
840
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
842
25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
845
xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
847
if(i.eq.5.or.i.eq.7) goto 31
849
30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
859
if(qsq.lt.qsqmin) qsq=qsqmin
860
if(qsq.gt.qsqmax) qsq=qsqmax
862
if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
865
if(xxx.gt.xx(n+1)) goto 70
866
a=(xxx-xx(n))/(xx(n+1)-xx(n))
869
if(qsq.gt.qq(m+1)) goto 80
870
b=(qsq-qq(m))/(qq(m+1)-qq(m))
872
g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
873
. + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
874
if(n.ge.ntenth) goto 65
875
if(i.eq.5.or.i.eq.7) goto 65
876
fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
877
g(i)=fac*10d0**(g(i)-fac)
879
g(i)=g(i)*(1d0-x)**n0(i)
896
subroutine mrs9910(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
897
implicit real*8(a-h,o-z)
899
Character Tablefile*40
900
data Tablefile/'cor10.dat'/
902
common/IU/IU !this is set in opendata.f
904
parameter(nx=49,nq=37,ntenth=23,np=8)
905
real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
906
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
907
. 1d-4,2d-4,4d-4,6d-4,8d-4,
908
. 1d-3,2d-3,4d-3,6d-3,8d-3,
909
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
910
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
911
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
912
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
914
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
915
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
916
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
917
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
918
. 1.8d6,3.2d6,5.6d6,1d7/
919
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
920
data n0/3,4,5,9,9,9,9,9/
925
if(init.ne.0) goto 10
926
c open(unit=1,file='Pdfdata/cor10.dat',status='old')
927
call OpenData(Tablefile)
930
read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
931
. f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
932
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
934
25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
937
xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
939
if(i.eq.5.or.i.eq.7) goto 31
941
30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
951
if(qsq.lt.qsqmin) qsq=qsqmin
952
if(qsq.gt.qsqmax) qsq=qsqmax
954
if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
957
if(xxx.gt.xx(n+1)) goto 70
958
a=(xxx-xx(n))/(xx(n+1)-xx(n))
961
if(qsq.gt.qq(m+1)) goto 80
962
b=(qsq-qq(m))/(qq(m+1)-qq(m))
964
g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
965
. + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
966
if(n.ge.ntenth) goto 65
967
if(i.eq.5.or.i.eq.7) goto 65
968
fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
969
g(i)=fac*10d0**(g(i)-fac)
971
g(i)=g(i)*(1d0-x)**n0(i)
986
subroutine mrs9911(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
987
implicit real*8(a-h,o-z)
989
Character Tablefile*40
990
data Tablefile/'cor11.dat'/
992
common/IU/IU !this is set in opendata.f
994
parameter(nx=49,nq=37,ntenth=23,np=8)
995
real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
996
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
997
. 1d-4,2d-4,4d-4,6d-4,8d-4,
998
. 1d-3,2d-3,4d-3,6d-3,8d-3,
999
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
1000
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
1001
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
1002
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
1004
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
1005
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
1006
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
1007
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
1008
. 1.8d6,3.2d6,5.6d6,1d7/
1009
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
1010
data n0/3,4,5,9,9,9,9,9/
1015
if(init.ne.0) goto 10
1016
c open(unit=1,file='Pdfdata/cor11.dat',status='old')
1017
call OpenData(Tablefile)
1020
read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
1021
. f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
1022
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
1024
25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
1027
xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
1029
if(i.eq.5.or.i.eq.7) goto 31
1031
30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
1039
if(x.lt.xmin) x=xmin
1040
if(x.gt.xmax) x=xmax
1041
if(qsq.lt.qsqmin) qsq=qsqmin
1042
if(qsq.gt.qsqmax) qsq=qsqmax
1044
if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
1047
if(xxx.gt.xx(n+1)) goto 70
1048
a=(xxx-xx(n))/(xx(n+1)-xx(n))
1051
if(qsq.gt.qq(m+1)) goto 80
1052
b=(qsq-qq(m))/(qq(m+1)-qq(m))
1054
g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
1055
. + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
1056
if(n.ge.ntenth) goto 65
1057
if(i.eq.5.or.i.eq.7) goto 65
1058
fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
1059
g(i)=fac*10d0**(g(i)-fac)
1061
g(i)=g(i)*(1d0-x)**n0(i)
1077
subroutine mrs9912(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
1078
implicit real*8(a-h,o-z)
1080
Character Tablefile*40
1081
data Tablefile/'cor12.dat'/
1083
common/IU/IU !this is set in opendata.f
1085
parameter(nx=49,nq=37,ntenth=23,np=8)
1086
real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
1087
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
1088
. 1d-4,2d-4,4d-4,6d-4,8d-4,
1089
. 1d-3,2d-3,4d-3,6d-3,8d-3,
1090
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
1091
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
1092
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
1093
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
1095
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
1096
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
1097
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
1098
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
1099
. 1.8d6,3.2d6,5.6d6,1d7/
1100
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
1101
data n0/3,4,5,9,9,9,9,9/
1106
if(init.ne.0) goto 10
1107
c open(unit=1,file='Pdfdata/cor12.dat',status='old')
1108
call OpenData(Tablefile)
1111
read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
1112
. f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
1113
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
1115
25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
1118
xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
1120
if(i.eq.5.or.i.eq.7) goto 31
1122
30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
1130
if(x.lt.xmin) x=xmin
1131
if(x.gt.xmax) x=xmax
1132
if(qsq.lt.qsqmin) qsq=qsqmin
1133
if(qsq.gt.qsqmax) qsq=qsqmax
1135
if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
1138
if(xxx.gt.xx(n+1)) goto 70
1139
a=(xxx-xx(n))/(xx(n+1)-xx(n))
1142
if(qsq.gt.qq(m+1)) goto 80
1143
b=(qsq-qq(m))/(qq(m+1)-qq(m))
1145
g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
1146
. + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
1147
if(n.ge.ntenth) goto 65
1148
if(i.eq.5.or.i.eq.7) goto 65
1149
fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
1150
g(i)=fac*10d0**(g(i)-fac)
1152
g(i)=g(i)*(1d0-x)**n0(i)