1
subroutine mrst2002(x,q,mode,upv,dnv,usea,dsea,str,chm,bot,glu)
2
C***************************************************************C
4
C This is a package for the new MRST 2002 updated NLO and C
5
C NNLO parton distributions. C
6
C Reference: A.D. Martin, R.G. Roberts, W.J. Stirling and C
7
C R.S. Thorne, hep-ph/0211080 C
9
C There are 2 pdf sets corresponding to mode = 1, 2 C
11
C Mode=1 gives the NLO set with alpha_s(M_Z,NLO) = 0.1197 C
12
C This set reads a grid whose first number is 0.00949 C
14
C Mode=2 gives the NNLO set with alpha_s(M_Z,NNLO) = 0.1154 C
15
C This set reads a grid whose first number is 0.00685 C
17
C Comments to : W.J.Stirling@durham.ac.uk C
19
C***************************************************************C
20
implicit real*8(a-h,o-z)
21
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
23
if(q2.lt.qsqmin.or.q2.gt.qsqmax) print 99,q2
24
if(x.lt.xmin.or.x.gt.xmax) print 98,x
26
call mrst_02_1(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
27
elseif(mode.eq.2) then
28
call mrst_02_1(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
30
99 format(' WARNING: Q^2 VALUE IS OUT OF RANGE ','q2= ',e10.5)
31
98 format(' WARNING: X VALUE IS OUT OF RANGE ','x= ',e10.5)
35
subroutine mrst_02_1(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
36
implicit real*8(a-h,o-z)
38
Character Tablefile*40
39
data Tablefile/'mrst2002nlo.dat'/
43
parameter(nx=49,nq=37,np=8,nqc0=2,nqb0=11,nqc=35,nqb=26)
44
real*8 f1(nx,nq),f2(nx,nq),f3(nx,nq),f4(nx,nq),f5(nx,nq),
45
.f6(nx,nq),f7(nx,nq),f8(nx,nq),fc(nx,nqc),fb(nx,nqb)
46
real*8 qq(nq),xx(nx),cc1(nx,nq,4,4),cc2(nx,nq,4,4),
47
.cc3(nx,nq,4,4),cc4(nx,nq,4,4),cc6(nx,nq,4,4),cc8(nx,nq,4,4),
48
.ccc(nx,nqc,4,4),ccb(nx,nqb,4,4)
49
real*8 xxl(nx),qql(nq),qqlc(nqc),qqlb(nqb)
50
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
51
. 1d-4,2d-4,4d-4,6d-4,8d-4,
52
. 1d-3,2d-3,4d-3,6d-3,8d-3,
53
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
54
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
55
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
56
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
58
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
59
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
60
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
61
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
62
. 1.8d6,3.2d6,5.6d6,1d7/
63
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
69
c open(unit=33,file='mrst2002nlo.dat',status='old')
70
call OpenData(Tablefile)
73
read(IU,50)f1(n,m),f2(n,m),f3(n,m),f4(n,m),
74
. f5(n,m),f7(n,m),f6(n,m),f8(n,m)
75
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
94
call jeppe1(nx,nq,xxl,qql,f1,cc1)
95
call jeppe1(nx,nq,xxl,qql,f2,cc2)
96
call jeppe1(nx,nq,xxl,qql,f3,cc3)
97
call jeppe1(nx,nq,xxl,qql,f4,cc4)
98
call jeppe1(nx,nq,xxl,qql,f6,cc6)
99
call jeppe1(nx,nq,xxl,qql,f8,cc8)
110
call jeppe1(nx,nqc,xxl,qqlc,fc,ccc)
118
call jeppe1(nx,nqb,xxl,qqlb,fb,ccb)
127
call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc1,upv)
128
call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc2,dnv)
129
call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc3,glu)
130
call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc4,usea)
131
call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc6,str)
132
call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc8,dsea)
136
call jeppe2(xlog,qsqlog,nx,nqc,xxl,qqlc,ccc,chm)
141
call jeppe2(xlog,qsqlog,nx,nqb,xxl,qqlb,ccb,bot)
150
subroutine mrst_02_2(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
151
implicit real*8(a-h,o-z)
153
Character Tablefile*40
154
data Tablefile/'mrst2002nnlo.dat'/
158
parameter(nx=49,nq=37,np=8,nqc0=2,nqb0=11,nqc=35,nqb=26)
159
real*8 f1(nx,nq),f2(nx,nq),f3(nx,nq),f4(nx,nq),f5(nx,nq),
160
.f6(nx,nq),f7(nx,nq),f8(nx,nq),fc(nx,nqc),fb(nx,nqb)
161
real*8 qq(nq),xx(nx),cc1(nx,nq,4,4),cc2(nx,nq,4,4),
162
.cc3(nx,nq,4,4),cc4(nx,nq,4,4),cc6(nx,nq,4,4),cc8(nx,nq,4,4),
163
.ccc(nx,nqc,4,4),ccb(nx,nqb,4,4)
164
real*8 xxl(nx),qql(nq),qqlc(nqc),qqlb(nqb)
165
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
166
. 1d-4,2d-4,4d-4,6d-4,8d-4,
167
. 1d-3,2d-3,4d-3,6d-3,8d-3,
168
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
169
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
170
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
171
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
173
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
174
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
175
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
176
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
177
. 1.8d6,3.2d6,5.6d6,1d7/
178
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
183
if(init.ne.0) goto 10
184
c open(unit=33,file='mrst2002nnlo.dat',status='old')
185
call OpenData(Tablefile)
188
read(IU,50)f1(n,m),f2(n,m),f3(n,m),f4(n,m),
189
. f5(n,m),f7(n,m),f6(n,m),f8(n,m)
190
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
209
call jeppe1(nx,nq,xxl,qql,f1,cc1)
210
call jeppe1(nx,nq,xxl,qql,f2,cc2)
211
call jeppe1(nx,nq,xxl,qql,f3,cc3)
212
call jeppe1(nx,nq,xxl,qql,f4,cc4)
213
call jeppe1(nx,nq,xxl,qql,f6,cc6)
214
call jeppe1(nx,nq,xxl,qql,f8,cc8)
225
call jeppe1(nx,nqc,xxl,qqlc,fc,ccc)
233
call jeppe1(nx,nqb,xxl,qqlb,fb,ccb)
242
call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc1,upv)
243
call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc2,dnv)
244
call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc3,glu)
245
call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc4,usea)
246
call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc6,str)
247
call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc8,dsea)
251
call jeppe2(xlog,qsqlog,nx,nqc,xxl,qqlc,ccc,chm)
256
call jeppe2(xlog,qsqlog,nx,nqb,xxl,qqlb,ccb,bot)