37 SUBROUTINE grv98pa (ISET, X, Q2, UV, DV, US, DS, SS, GL)
61 IMPLICIT DOUBLE PRECISION (a-h, o-
z)
63 dimension xuvf(nx,nq), xdvf(nx,nq), xdef(nx,nq), xudf(nx,nq),
65 2 qs(nq),
xb(nx), xt(narg), na(narg), arrf(nx+nq)
67 COMMON / intinip / iinip
68 SAVE xuvf, xdvf, xdef, xudf, xsf, xgf, na, arrf
74 1 1.0e0, 1.3e0, 1.8e0, 2.7e0, 4.0e0, 6.4e0,
75 2 1.0e1, 1.6e1, 2.5e1, 4.0e1, 6.4e1,
76 3 1.0e2, 1.8e2, 3.2e2, 5.7e2,
77 4 1.0e3, 1.8e3, 3.2e3, 5.7e3,
78 5 1.0e4, 2.2e4, 4.6e4,
79 6 1.0e5, 2.2e5, 4.6e5,
81 DATA xb / 1.0e-9, 1.8e-9, 3.2e-9, 5.7e-9,
82 a 1.0e-8, 1.8e-8, 3.2e-8, 5.7e-8,
83 b 1.0e-7, 1.8e-7, 3.2e-7, 5.7e-7,
84 c 1.0e-6, 1.4e-6, 2.0e-6, 3.0e-6, 4.5e-6, 6.7e-6,
85 1 1.0e-5, 1.4e-5, 2.0e-5, 3.0e-5, 4.5e-5, 6.7e-5,
86 2 1.0e-4, 1.4e-4, 2.0e-4, 3.0e-4, 4.5e-4, 6.7e-4,
87 3 1.0e-3, 1.4e-3, 2.0e-3, 3.0e-3, 4.5e-3, 6.7e-3,
88 4 1.0e-2, 1.4e-2, 2.0e-2, 3.0e-2, 4.5e-2, 0.06, 0.08,
89 5 0.1, 0.125, 0.15, 0.175, 0.2, 0.225, 0.25, 0.275,
90 6 0.3, 0.325, 0.35, 0.375, 0.4, 0.45, 0.5, 0.55,
91 7 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1. /
94 IF ( (
x.LT.0.99
d-9) .OR. (
x.GT.1.d0) )
THEN
96 91
FORMAT (2
x,
'PARTON INTERPOLATION: X OUT OF RANGE')
99 IF ( (q2.LT.0.799) .OR. (q2.GT.1.01e6) )
THEN
101 92
FORMAT (2
x,
'PARTON INTERPOLATION: Q2 OUT OF RANGE')
104 IF (iinip .NE. 0) goto 16
110 write(*,*)
"CUNPOL=", cunpol
111 IF (iset .EQ. 1)
THEN
112 OPEN (iplst(2),file=cunpol,
status=
'old')
113 ELSE IF (iset .EQ. 2)
THEN
114 OPEN (iplst(2),file=cunpol,
status=
'old')
115 ELSE IF (iset .EQ. 3)
THEN
116 OPEN (iplst(2),file=cunpol,
status=
'old')
119 93
FORMAT (2
x,
'NO OR INVALID PARTON SET CHOICE')
123 READ(iplst(2),89)
line
127 READ(iplst(2),90)
parton(1,
n,m),
parton(2,
n,m),
parton(3,
n,m),
129 90
FORMAT (6(1pe10.3))
137 xb0s =
xb(ix)**(-0.2)
139 xuvf(ix,iq) =
parton(1,iq,ix) / (xb1**3 * xb0v)
140 xdvf(ix,iq) =
parton(2,iq,ix) / (xb1**4 * xb0v)
141 xdef(ix,iq) =
parton(3,iq,ix) / (xb1**7 * xb0v)
142 xudf(ix,iq) =
parton(4,iq,ix) / (xb1**7 * xb0s)
143 xsf(ix,iq) =
parton(5,iq,ix) / (xb1**7 * xb0s)
144 xgf(ix,iq) =
parton(6,iq,ix) / (xb1**5 * xb0s)
156 arrf(ix) = dlog(
xb(ix))
159 arrf(nx+iq) = dlog(qs(iq))
172 uv =
bsfint(narg,xt,na,arrf,xuvf) * x1**3 * xv
173 dv =
bsfint(narg,xt,na,arrf,xdvf) * x1**4 * xv
174 de =
bsfint(narg,xt,na,arrf,xdef) * x1**7 * xv
175 ud =
bsfint(narg,xt,na,arrf,xudf) * x1**7 * xs
178 ss =
bsfint(narg,xt,na,arrf,xsf) * x1**7 * xs
179 gl =
bsfint(narg,xt,na,arrf,xgf) * x1**5 * xs