]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PDF/spdf/sfgrvh.F
Coding conventions
[u/mrichter/AliRoot.git] / PDF / spdf / sfgrvh.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 SFGRVH(DX,DSCAL,DUPV,DDNV,DSEA,DSTR,DCHM,DBOT,DTOP,DGL)
18 C
19 C :::::::::::: Structure functions from Glueck, Reya and Vogt  (HO)
20 C :::::::::::: Lambda(NF=3) = 0.200 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.200)
31 C
32       X = DX
33       Q2 = DSCAL**2
34 C
35 C     generate the individual structure fcn calls
36 C
37 C...Higher order parametrization of Gluck, Reya, Vogt.
38 C...Allowed variable range: 0.2 GeV^2 < Q2 < 1E6 GeV^2; 1E-4 < x < 1.
39
40 C...Determine s and x.
41           Q2IN=MIN(1.E6,MAX(0.2,Q2))
42           SD=LOG(LOG(Q2IN/ALAM**2)/LOG(0.2/ALAM**2))
43         SD2=SD**2
44         XC=MAX(1.E-4,X)
45         XL=-LOG(XC)
46
47 C...Calculate structure functions.
48         XQ(1)=(1.364+0.989*SD-0.236*SD2)*XC**(0.593-0.048*SD)*
49      &  (1.+(8.912-6.092*SD+0.852*SD2)*XC+(-16.737+7.039*SD)*XC**2+
50      &  (10.275+0.806*SD-2.000*SD2)*XC**3)*
51      &  (1.-XC)**(2.043+1.408*SD-0.283*SD2)
52         XQ(2)=(0.835+0.527*SD-0.144*SD2)*XC**(0.600-0.054*SD)*
53      &  (1.+(10.245-7.821*SD+1.325*SD2)*XC+(-19.511+10.940*SD-
54      &  1.133*SD2)*XC**2+(12.836-2.570*SD-1.041*SD2)*XC**3)*
55      &  (1.-XC)**(3.083+1.382*SD-0.276*SD2)
56         XQ(3)=(XC**(0.321-0.135*SD)*((10.51-2.299*SD)+
57      &  (-17.28+0.755*SD)*XC+(8.242+2.543*SD)*XC**2)*
58      &  XL**(-2.023-0.103*SD)+SD**1.044*
59      &  EXP(-(-1.178+2.792*SD)+SQRT(2.318*SD**1.673*XL)))*
60      &  (1.-XC)**(3.720+2.337*SD-0.199*SD2)
61         XQ(4)=SD**0.761*(1.+(6.078-2.065*SD)*XC)*(1.-XC)**(4.654+
62      &  0.603*SD-0.326*SD2)*EXP(-(4.231+1.036*SD)+SQRT(3.419*SD**0.316*
63      &  XL))/XL**(0.897-0.618*SD)
64         XQ(5)=0.
65         IF(SD.GT.0.918) XQ(5)=(SD-0.918)*(1.-XC)**(3.328+0.859*SD)*
66      &  EXP(-(3.837+1.504*SD)+SQRT((2.150+1.291*SD)*SD**0.5*XL))
67         XQ(6)=0.
68         IF(SD.GT.1.353) XQ(6)=(SD-1.353)*(1.-XC)**(3.382+0.909*SD)*
69      &  EXP(-(4.130+1.486*SD)+SQRT((2.895+1.240*SD)*SD**0.5*XL))
70
71 C...Put into output array - special factor for small x.
72         CXS=1.
73 C       IF(X.LT.1E-4.AND.ABS(XLOWPW-1.).GT.0.01)
74 C    &  CXS=(1E-4/X)**(XLOWPW-1.)
75       UPV = CXS*XQ(1)
76       DUPV = UPV
77       DNV = CXS*XQ(2)
78       DDNV = DNV
79       SEA = CXS*XQ(4)
80       DSEA = SEA
81       STR = CXS*XQ(4)
82       DSTR = STR
83       CHM = CXS*XQ(5)
84       DCHM = CHM
85       DBOT = 0.0D0
86       DTOP = 0.0D0
87       GL = CXS*XQ(3)
88       DGL = GL
89 C
90       RETURN
91       END