1
subroutine mrs98ht(x,q,mode,upv,dnv,usea,dsea,str,chm,bot,glu)
2
C****************************************************************C
4
C This is a package for the MRS 1998 parton distributions C
5
C including hogher twist. The format is similar to the C
6
C previous (1996) MRS-R series. C
8
C As before, x times the parton distribution is returned, C
9
C q is the scale in GeV, MSbar factorization is assumed, C
10
C and Lambda(MSbar,nf=4) is given below for each set. C
12
C TEMPORARY NAMING SCHEME: C
14
C mode set comment L(4)/MeV a_s(M_Z) grid#1 C
15
C ---- --- ------- -------- ------- ------ C
17
C 1 HT11A central gluon, a_s 292.5 0.1170 0.00536 C
19
C The corresponding grid file are called ht118a.dat etc. C
22
C A.D. Martin, R.G. Roberts, W.J. Stirling, R.S Thorne C
23
C Univ. Durham preprint DTP/98/52, hep-ph/??????? (1998) C
25
C Comments to : W.J.Stirling@durham.ac.uk C
28
C****************************************************************C
29
implicit real*8(a-h,o-z)
30
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
32
if(q2.lt.qsqmin.or.q2.gt.qsqmax) print 99
33
if(x.lt.xmin.or.x.gt.xmax) print 98
35
call mrs981ht(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
37
99 format(' WARNING: Q^2 VALUE IS OUT OF RANGE ')
38
98 format(' WARNING: X VALUE IS OUT OF RANGE ')
42
subroutine mrs981ht(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
43
implicit real*8(a-h,o-z)
45
Character Tablefile*40
46
data Tablefile/'ht11b.dat'/
48
common/IU/IU !this is set in opendata.f
50
parameter(nx=49,nq=37,ntenth=23,np=8)
51
real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
52
data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
53
. 1d-4,2d-4,4d-4,6d-4,8d-4,
54
. 1d-3,2d-3,4d-3,6d-3,8d-3,
55
. 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
56
. .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
57
. .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
58
. .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
60
data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
61
. 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
62
. 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
63
. 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
64
. 1.8d6,3.2d6,5.6d6,1d7/
65
data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
66
data n0/3,4,5,9,9,9,9,9/
72
c open(unit=1,file='ft08a.dat',status='old')
73
c open(unit=1,file='Pdfdata/ht11b.dat',status='old')
74
call OpenData(Tablefile)
77
read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
78
. f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
79
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
81
25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
84
xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
86
if(i.eq.5.or.i.eq.7) goto 31
88
30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
98
if(qsq.lt.qsqmin) qsq=qsqmin
99
if(qsq.gt.qsqmax) qsq=qsqmax
101
if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
104
if(xxx.gt.xx(n+1)) goto 70
105
a=(xxx-xx(n))/(xx(n+1)-xx(n))
108
if(qsq.gt.qq(m+1)) goto 80
109
b=(qsq-qq(m))/(qq(m+1)-qq(m))
111
g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
112
. + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
113
if(n.ge.ntenth) goto 65
114
if(i.eq.5.or.i.eq.7) goto 65
115
fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
116
g(i)=fac*10d0**(g(i)-fac)
118
g(i)=g(i)*(1d0-x)**n0(i)