1
FUNCTION PartonX (IPRTN, X, Q)
3
C Given the parton distribution function in the array Upd in
4
C COMMON / CtqPar1 / , this routine fetches u(fl, x, q) at any value of
5
C x and q using Mth-order polynomial interpolation for x and Ln(Q/Lambda).
7
IMPLICIT DOUBLE PRECISION (A-H, O-Z)
9
PARAMETER (MXX = 105, MXQ = 25, MXF = 6)
10
PARAMETER (MXPQX = (MXF *2 +2) * MXQ * MXX)
11
PARAMETER (M= 2, M1 = M + 1)
15
> / CtqPar1 / Al, XV(0:MXX), QL(0:MXQ), UPD(MXPQX)
16
> / CtqPar2 / Nx, Nt, NfMx
17
> / XQrange / Qini, Qmax, Xmin
19
Dimension Fq(M1), Df(M1)
26
C Find lower end of interval containing X
29
11 If (JU-JL .GT. 1) Then
31
If (X .GT. XV(JM)) Then
40
If (X .lt. Xmin .and. First ) Then
42
Print '(A, 2(1pE12.4))',
43
> ' WARNING: X < Xmin, extrapolation used; X, Xmin =', X, Xmin
45
Elseif (Jx .GT. Nx-M) Then
48
C Find the interval where Q lies
51
12 If (JU-JL .GT. 1) Then
53
If (QG .GT. QL(JM)) Then
64
If (Q .lt. Qini) Print '(A, 2(1pE12.4))',
65
> ' WARNING: Q < Qini, extrapolation used; Q, Qini =', Q, Qini
66
Elseif (Jq .GT. Nt-M) Then
68
If (Q .gt. Qmax) Print '(A, 2(1pE12.4))',
69
> ' WARNING: Q > Qmax, extrapolation used; Q, Qmax =', Q, Qmax
72
If (Iprtn .GE. 3) Then
77
C Find the off-set in the linear array Upd
79
J0 = (JFL * (NT+1) + Jq) * (NX+1) + Jx
81
C Now interpolate in x for M1 Q's
83
J1 = J0 + (Nx+1)*(Iq-1) + 1
84
Call Polint (XV(Jx), Upd(J1), M1, X, Fq(Iq), Df(Iq))
86
C Finish off by interpolating in Q
87
Call Polint (QL(Jq), Fq(1), M1, QG, Ftmp, Ddf)
92
C ****************************