]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PDF/spdf/sfgrvl.F
Changes to compile on Solaris 10 with f90 (Intel x86 platform). It does't like contin...
[u/mrichter/AliRoot.git] / PDF / spdf / sfgrvl.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.4  2000/09/18 10:02:36  hristov
6 * Makefile added to PDF8
7 *
8 * Revision 1.1.1.2  1996/10/30 08:29:48  cernlib
9 * Version 7.04
10 *
11 * Revision 1.1.1.1  1996/04/12 15:29:35  plothow
12 * Version 7.01
13 *
14 *
15 #include "pdf/pilot.h"
16 C-----------------------------------------------------------------------
17       SUBROUTINE SFGRVL(DX,DSCAL,DUPV,DDNV,DSEA,DSTR,DCHM,DBOT,DTOP,DGL)
18 C
19 C :::::::::::: Structure functions from Glueck, Reya and Vogt  (LO)
20 C :::::::::::: Lambda(NF=3) = 0.250 GeV
21 C
22       DIMENSION XQ(7)
23 #if defined(CERNLIB_DOUBLE)
24       DOUBLE PRECISION
25 #endif
26 #if defined(CERNLIB_SINGLE)
27       REAL
28 #endif
29      +       DX,DSCAL,DUPV,DDNV,DSEA,DSTR,DCHM,DBOT,DTOP,DGL
30       PARAMETER (ALAM=0.250)
31 C
32       X = DX
33       Q2 = DSCAL**2
34 C
35 C     generate the individual structure fcn calls
36 C
37 C...Lowest order parametrization of Gluck, Reya, Vogt.
38 C...Allowed variable range: 0.2 GeV^2 < Q2 < 1E6 GeV^2; 1E-4 < x < 1;
39 C...extended to 0.2 GeV^2 < Q2 < 1E8 GeV^2; 1E-6 < x < 1
40 C...after consultation with the authors.
41
42 C...Determine s and x.
43           Q2IN=MIN(1E8,MAX(0.2,Q2))
44           SD=LOG(LOG(Q2IN/ALAM**2)/LOG(0.2/ALAM**2))
45         XC=MAX(1E-6,X)
46         XL=-LOG(XC)
47
48 C...Calculate structure functions.
49         XQ(1)=(0.794+0.312*SD)*XC**(0.427-0.011*SD)*
50      &  (1.+(6.887-2.227*SD)*XC+(-11.083+2.136*SD)*XC**2+
51      &  (3.900+1.079*SD)*XC**3)*(1.-XC)**(1.037+1.077*SD)
52         XQ(2)=(0.486+0.139*SD)*XC**(0.434-0.018*SD)*
53      &  (1.+(7.716-2.684*SD)*XC+(-12.768+3.122*SD)*XC**2+
54      &  (4.564+0.470*SD)*XC**3)*(1.-XC)**(1.889+1.129*SD)
55         XQ(3)=(XC**(0.415+0.186*SD)*((0.786+0.942*SD)+
56      &  (5.256-5.810*SD)*XC+(-4.599+5.842*SD)*XC**2)+SD**0.592*
57      &  EXP(-(0.398+2.135*SD)+SQRT(3.779*SD**1.250*XL)))*
58      &  (1.-XC)**(1.622+1.980*SD)
59         XQ(4)=SD**0.448*(1.-XC)**(5.540-0.445*SD)*
60      &  EXP(-(4.668+1.230*SD)+SQRT((13.173-1.361*SD)*SD**0.442*XL))/
61      &  XL**(3.181-0.862*SD)
62         XQ(5)=0.
63         IF(SD.GT.1.125) XQ(5)=(SD-1.125)*(1.-XC)**(2.038+1.022*SD)*
64      &  EXP(-(4.290+1.569*SD)+SQRT((2.982+1.452*SD)*SD**0.5*XL))
65         XQ(6)=0.
66         IF(SD.GT.1.603) XQ(6)=(SD-1.603)*(1.-XC)**(2.230+1.052*SD)*
67      &  EXP(-(4.566+1.559*SD)+SQRT((4.147+1.268*SD)*SD**0.5*XL))
68
69 C...Put into output array - special factor for small x.
70         CXS=1.
71 C       IF(X.LT.1E-4.AND.ABS(XLOWPW-1.).GT.0.01)
72 C    &  CXS=(1E-4/X)**(XLOWPW-1.)
73       UPV = CXS*XQ(1)
74       DUPV = UPV
75       DNV = CXS*XQ(2)
76       DDNV = DNV
77       SEA = CXS*XQ(4)
78       DSEA = SEA
79       STR = CXS*XQ(4)
80       DSTR = STR
81       CHM = CXS*XQ(5)
82       DCHM = CHM
83       DBOT = 0.0D0
84       DTOP = 0.0D0
85       GL = CXS*XQ(3)
86       DGL = GL
87 C
88       RETURN
89       END