]> git.uio.no Git - u/mrichter/AliRoot.git/blame - LHAPDF/lhapdf5.3.1/wrapgsg.f
Protection against div by 0 added.
[u/mrichter/AliRoot.git] / LHAPDF / lhapdf5.3.1 / wrapgsg.f
CommitLineData
4e9e3152 1 subroutine GSGevolvep0(xin,qin,p2in,ip2in,pdf)
2 include 'parmsetup.inc'
3 real*8 xin,qin,q2in,p2in,pdf(-6:6),xval(45),qcdl4,qcdl5
4 real*8 upv,dnv,usea,dsea,str,chm,bot,top,glu
5 real*8 SIG,QNS,GL
6 real*8 holdit
7 common/gsgdat/SIG(78,11,3),QNS(78,11,3),GL(78,11,3)
8 character*16 name(nmxset)
9 integer nmem(nmxset),ndef(nmxset),mmem
10 common/NAME/name,nmem,ndef,mmem
11 integer nset
12 save
13
14 call getnset(iset)
15 call getnmem(iset,iimem)
16c -- this is LO 2 --> 3 0/1 --> 2
17 if(iimem.eq.2) iimem = 3
18 if(iimem.eq.0) iimem = 2
19 if(iimem.eq.1) iimem = 2
20
21 call SFGSHL(iimem,xin,qin,upv,dnv,usea,dsea,str,chm,bot,glu)
22
23 pdf(-6)= 0.0d0
24 pdf(6)= 0.0d0
25 pdf(-5)= bot
26 pdf(5 )= bot
27 pdf(-4)= chm
28 pdf(4 )= chm
29 pdf(-3)= str
30 pdf(3 )= str
31 pdf(-2)= usea
32 pdf(2 )= upv
33 pdf(-1)= dsea
34 pdf(1 )= dnv
35 pdf(0 )= glu
36
37 return
38ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
39 entry GSGevolvep1(xin,qin,p2in,ip2in,pdf)
40
41c--- this is HO --- iimem=1
42 iimem = 1
43 call SFGSHL(iimem,xin,qin,upv,dnv,usea,dsea,str,chm,bot,glu)
44
45
46 pdf(-6)= 0.0d0
47 pdf(6)= 0.0d0
48 pdf(-5)= bot
49 pdf(5 )= bot
50 pdf(-4)= chm
51 pdf(4 )= chm
52 pdf(-3)= str
53 pdf(3 )= str
54 pdf(-2)= usea
55 pdf(2 )= upv
56 pdf(-1)= dsea
57 pdf(1 )= dnv
58 pdf(0 )= glu
59
60 return
61ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
62 entry GSGread(nset)
63 read(1,*)nmem(nset),ndef(nset)
64 do j=1,3
65 do k=1,78
66 do m=1,11
67 read(1,*)SIG(k,m,j),QNS(k,m,j),GL(k,m,j)
68 enddo
69 enddo
70 enddo
71 return
72c
73ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
74 entry GSGalfa(alfas,qalfa)
75 call getnset(iset)
76 call getnmem(iset,imem)
77 call GetOrderAsM(iset,iord)
78 call Getlam4M(iset,imem,qcdl4)
79 call Getlam5M(iset,imem,qcdl5)
80 call aspdflib(alfas,Qalfa,iord,qcdl5)
81c call aspdflib(alfas,Qalfa,iord,qcdl5)
82
83 return
84c
85ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
86 entry GSGinit(Eorder,Q2fit)
87 return
88c
89ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
90 entry GSGpdf(mem)
91 call getnset(iset)
92 call setnmem(iset,mem)
93c imem = mem
94 return
95c
96 1000 format(5e13.5)
97 end
98ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
99c SUBROUTINE SFGSHO(X,Q,U,D,US,DS,S,C,B,G)
100 SUBROUTINE SFGSHL(iset,X,Q,U,D,US,DS,S,C,B,G)
101C
102*****************************************************************
103* Subroutine returns the parton distributions in the photon in *
104* higher order. u,d etc. gives the actual distributions and *
105* not x times the distributions; Q2 means Q 2. The distributions*
106* are valid for 5.0e -4< x < 1.0 and 5.3 GeV 2 < Q 2 < 1.0e 8. *
107* if higher Q 2 or lower x is required, these may be obtained *
108* from the authors on request. *
109* Lionel Gordon July 1991 : Gordon@uk.ac.man.ph.v2 *
110*****************************************************************
111C
112 implicit real*8 (a-h,o-z)
113 PARAMETER(NP=78,NQ=11,NARG=2)
114 double precision
115 + DBFINT,
116c + SIG(NP,NQ),QNS(NP,NQ),GL(NP,NQ),Y(NP),
117 + Y(NP),
118 + XT(NARG),A(NP+NQ),QT(NQ)
119 common/gsgdat/SIG(78,11,3),QNS(78,11,3),GL(78,11,3)
120 DIMENSION NA(NARG)
121 EXTERNAL GSXCOR
122c SAVE SIG,QNS,GL,Y,ICALL
123 SAVE Y,ICALL
124 DATA QT /5.3D0,20.0D0,50.0D0,1.0D2,5.0D2,1.0D3,1.0D4,1.0D5,
125 * 1.0D6,1.0D7,1.0D8/
126 DATA ZEROD/0.D0/
127 DATA ICALL/0/
128******************************************************************
129 U = ZEROD
130 D = ZEROD
131 S = ZEROD
132 C = ZEROD
133 B = ZEROD
134 G = ZEROD
135*if x is out of range
136 if(iset.eq.1) then
137 IF((X.LT.5.0D-4).OR.(X.GT.0.95D0)) GOTO 90
138 else
139 IF((X.LT.5.0D-4).OR.(X.GT.0.99D0)) GOTO 90
140 endif
141
142*******************************************************************
143 IF (ICALL.NE.1) THEN
144* get the x coordinates
145 CALL GSXCOR(Y,NP)
146 ICALL=1
147 END IF
148*
149 DO 30 IX=1,NP
150 A(IX)=Y(IX)
151 30 CONTINUE
152 DO 40 IQ=1,NQ
153 A(NP+IQ)=QT(IQ)
154 40 CONTINUE
155*
156 Q2 = Q*Q
157 NA(1)=NP
158 NA(2)=NQ
159 XT(1)=X
160 XT(2)=Q2
161 XSIG=DBFINT(2,XT,NA,A,SIG(1,1,iset))
162 XQNS=DBFINT(2,XT,NA,A,QNS(1,1,iset))
163 G =DBFINT(2,XT,NA,A,GL(1,1,iset))
164*
165 IF (Q2.LT.50.0D0) THEN
166C Use three flavour evolution.
167 U=(XSIG+9.0D0*XQNS)/6.0D0
168 D=(XSIG-4.5D0*XQNS)/6.0D0
169 S=D
170 C=ZEROD
171 B=ZEROD
172*
173 ELSE IF((Q2.GT.50.0D0).AND.(Q2.LT.250.0D0)) THEN
174C Use four flavour evolution
175 U=(XSIG+6.0D0*XQNS)/8.0D0
176 D=(XSIG-6.0D0*XQNS)/8.0D0
177 S=D
178 C=U
179 B=ZEROD
180 ELSE
181C Use five flavour evolution
182 U=(XSIG+7.5D0*XQNS)/10.0D0
183 D=(XSIG-5.0D0*XQNS)/10.0D0
184 S=D
185 C=U
186 B=D
187 ENDIF
188 U=X*U
189 US=U
190 D=X*D
191 DS=D
192 S=X*S
193 C=X*C
194 B=X*B
195 G=X*G
196 90 RETURN
197 END
198ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
199 SUBROUTINE GSXCOR(Y,NP)
200C
201 implicit real*8 (a-h,o-z)
202 double precision
203 + Y(NP)
204 N=1
205 DO 10 IX=1,20,2
206 Y(N)= (IX)/2000.0D0
207 N=N+1
208 10 CONTINUE
209 DO 20 IX=30,200,10
210 Y(N)= (IX)/2000.0D0
211 N=N+1
212 20 CONTINUE
213 DO 30 IX=240,1600,40
214 Y(N)= (IX)/2000.0D0
215 N=N+1
216 30 CONTINUE
217 DO 40 IX=1625,1980,25
218 Y(N)= (IX)/2000.0D0
219 N=N+1
220 40 CONTINUE
221 RETURN
222 END
223ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc