1 C-----------------------------------------------------------------------
3 #if defined(CERNLIB_SINGLE)
4 FUNCTION Ctq4PnX (IPRTN, X, Q)
6 #if defined(CERNLIB_DOUBLE)
7 DOUBLE PRECISION FUNCTION Ctq4PnX (IPRTN, X, Q)
10 C Given the parton distribution function in the array Upd in
11 C COMMON / CtqPar1 / , this routine fetches u(fl, x, q) at any value of
12 C x and q using Mth-order polynomial interpolation for x and Ln(Q/Lambda).
14 #include "pdf/impdp.inc"
16 PARAMETER (MXX = 105, MXQ = 25, MXF = 6)
17 PARAMETER (MXPQX = (MXF *2 +2) * MXQ * MXX)
18 PARAMETER (M= 2, M1 = M + 1)
20 COMMON / W5051IC / Al, XV(0:MXX), QL(0:MXQ), UPD(MXPQX)
21 COMMON / W5051ID / Nx, Nt, NfMx
22 COMMON / W5051IE / Qini, Qmax, Xmin
24 Dimension Fq(M1), Df(M1)
28 C Find lower end of interval containing X
31 11 If (JU-JL .GT. 1) Then
33 If (X .GT. XV(JM)) Then
43 C Print '(A, 2(1pE12.4))',
44 C > ' WARNING: X < Xmin, extrapolation used; X, Xmin =', X, Xmin
46 Elseif (Jx .GT. Nx-M) Then
49 C Find the interval where Q lies
52 12 If (JU-JL .GT. 1) Then
54 If (QG .GT. QL(JM)) Then
65 C If (Q .lt. Qini) Print '(A, 2(1pE12.4))',
66 C > ' WARNING: Q < Qini, extrapolation used; Q, Qini =', Q, Qini
67 Elseif (Jq .GT. Nt-M) Then
69 C If (Q .gt. Qmax) Print '(A, 2(1pE12.4))',
70 C > ' WARNING: Q > Qmax, extrapolation used; Q, Qmax =', Q, Qmax
73 If (Iprtn .GE. 3) Then
78 C Find the off-set in the linear array Upd
80 J0 = (JFL * (NT+1) + Jq) * (NX+1) + Jx
82 C Now interpolate in x for M1 Q's
84 J1 = J0 + (Nx+1)*(Iq-1) + 1
85 Call Dpolin (XV(Jx), Upd(J1), M1, X, Fq(Iq), Df(Iq))
87 C Finish off by interpolating in Q
88 Call Dpolin (QL(Jq), Fq(1), M1, QG, Ftmp, Ddf)
93 C ****************************