1 subroutine evolvePDF(x,Q,f)
3 integer nset,imem,Eorder,IP2
4 real*8 x,Q,P2,Q2fit,f(-6:6),alfas,a
6 call evolvePDFM(nset,x,Q,f)
9 entry evolvePDFp(x,Q,P2,IP2,f)
11 call evolvePDFpM(nset,x,Q,P2,IP2,f)
14 entry evolvePDFa(x,Q,a,f)
16 call evolvePDFaM(nset,x,Q,a,f)
21 c call readevolveM(nset)
24 c entry alfasevolve(alfas,Q)
26 c call alfasevolveM(nset,alfas,Q)
29 c entry initevolution(Eorder,Q2fit)
31 c call initevolutionM(nset,Eorder,Q2fit)
36 call initPDFM(nset,imem)
41 subroutine evolvePDFaM(nset,x,Q,a,f)
44 real*8 ruv,rdv,ru,rd,rs,rc,rb,rt,rg
46 call eks98(x,q,a,ruv,rdv,ru,rd,rs,rc,rb,rt,rg)
47 call evolvePDFM(nset,x,Q,f)
49 f(1) = f(1)*rdv-f(-1)*(rdv-rd)
50 f(2) = f(2)*ruv-f(-2)*(ruv-ru)
64 subroutine evolvePDFM(nset,x,Q,f)
66 include 'parmsetup.inc'
67 integer Eorder,index,imem
68 character*16 name(nmxset)
69 integer nmem(nmxset),ndef(nmxset),mem,ip2
70 common/NAME/name,nmem,ndef,mem
74 real*8 x,Q,Q2fit,alfas,p2
81 c print *,'this is evolvePDFM, name=',nset,name(nset)
82 c set all f's to 0.0d0 at start
86 if (name(nset).eq.'QCDNUM') call QCDNUMevolve(x,Q,f)
87 if (name(nset).eq.'QCDNUM_MRST') call QCDNUMevolve(x,Q,f)
88 if (name(nset).eq.'QCDNUM_MRST3') call QCDNUM3evolve(x,Q,f)
89 if (name(nset).eq.'QCDNUM_MRST4') call QCDNUM4evolve(x,Q,f)
90 if (name(nset)(1:11).eq.'QCDNUM_ZEUS') call ZEUSevolve(x,Q,f)
91 if (name(nset).eq.'CTEQ5grid') call CTEQ5evolve(x,Q,f)
92 if (name(nset).eq.'CTEQ6grid') call CTEQ6evolve(x,Q,f)
93 if (name(nset).eq.'CTEQ6ABgrid') call CTEQ6evolve(x,Q,f)
94 if (name(nset).eq.'EVLCTEQ') call EVLCTEQevolve(x,Q,f)
95 if (name(nset).eq.'MRSTgrid') call MRSTevolve(x,Q,f)
96 if (name(nset).eq.'MRST3grid') call MRSTevolve(x,Q,f)
97 if (name(nset).eq.'MRST4grid') call MRSTevolve(x,Q,f)
98 if (name(nset).eq.'MRST98grid') call MRST98evolve(x,Q,f)
99 if (name(nset).eq.'MRSTpdf') call QCDNUMevolve(x,Q,f)
100 if (name(nset).eq.'MRST') call QCDNUMevolve(x,Q,f)
101 if (name(nset).eq.'A02') call A02evolve(x,Q,f)
102 if (name(nset).eq.'A02M') call A02Mevolve(x,Q,f)
103 if (name(nset).eq.'H12000') call H1evolve(x,Q,f)
104 if (name(nset).eq.'GRV') call GRVevolve(x,Q,f)
105 if (name(nset).eq.'OWP') call OWPevolve(x,Q,f)
106 if (name(nset).eq.'SMRSP') call SMRSPevolve(x,Q,f)
107 if (name(nset).eq.'GRVP0') call GRVP0evolve(x,Q,f)
108 if (name(nset).eq.'GRVP1') call GRVP1evolve(x,Q,f)
109 if (name(nset).eq.'ABFKWP') call ABFKWPevolve(x,Q,f)
112 entry evolvePDFpM(nset,x,Q,P2,IP2,f)
116 if(name(nset).eq.'SASG') call SASGevolvep(x,Q,P2,IP2,f)
117 if(name(nset).eq.'GRVG0') call GRVGevolvep0(x,Q,P2,IP2,f)
118 if(name(nset).eq.'GRVG1') call GRVGevolvep1(x,Q,P2,IP2,f)
119 if (name(nset).eq.'DOG0') call DOGevolvep0(x,Q,P2,IP2,f)
120 if (name(nset).eq.'DOG1') call DOGevolvep1(x,Q,P2,IP2,f)
121 if (name(nset).eq.'DGG') call DGGevolvep(x,Q,P2,IP2,f)
122 if (name(nset).eq.'LACG') call LACGevolvep(x,Q,P2,IP2,f)
123 if (name(nset).eq.'GSG0') call GSGevolvep0(x,Q,P2,IP2,f)
124 if (name(nset).eq.'GSG1') call GSGevolvep1(x,Q,P2,IP2,f)
125 if (name(nset).eq.'GSG960') call GSG96evolvep0(x,Q,P2,IP2,f)
126 if (name(nset).eq.'GSG961') call GSG96evolvep1(x,Q,P2,IP2,f)
127 if (name(nset).eq.'ACFGP') call ACFGPevolvep(x,Q,P2,IP2,f)
128 if (name(nset).eq.'WHITG') call WHITGevolvep(x,Q,P2,IP2,f)
131 entry readevolve(nset)
134 c print *, 'this is readevolve', name(nset)
138 if (name(nset).eq.'QCDNUM') call QCDNUMread(nset)
139 if (name(nset).eq.'QCDNUM_MRST') call QCDNUMread(nset)
140 if (name(nset).eq.'QCDNUM_MRST3') call QCDNUM3read(nset)
141 if (name(nset).eq.'QCDNUM_MRST4') call QCDNUM4read(nset)
142 if (name(nset)(1:11).eq.'QCDNUM_ZEUS') call ZEUSread(nset)
143 if (name(nset).eq.'CTEQ5grid') call CTEQ5read(nset)
144 if (name(nset).eq.'CTEQ6grid') call CTEQ6read(nset)
145 if (name(nset).eq.'CTEQ6ABgrid') call CTEQ6read(nset)
146 if (name(nset).eq.'EVLCTEQ') call EVLCTEQread(nset)
147 if (name(nset).eq.'MRSTgrid') call MRSTread(nset)
148 if (name(nset).eq.'MRST3grid') call MRSTread(nset)
149 if (name(nset).eq.'MRST4grid') call MRSTread(nset)
150 if (name(nset).eq.'MRST98grid') call MRST98read(nset)
151 if (name(nset).eq.'MRSTpdf') call QCDNUMread(nset)
152 if (name(nset).eq.'MRST') call QCDNUMread(nset)
153 if (name(nset).eq.'A02') call A02read(nset)
154 if (name(nset).eq.'A02M') call A02Mread(nset)
155 if (name(nset).eq.'H12000') call H1read(nset)
156 if (name(nset).eq.'GRV') call GRVread(nset)
157 if (name(nset).eq.'SASG') call SASGread(nset)
158 if (name(nset).eq.'GRVG0' .OR.
159 + name(nset).eq.'GRVG1') call GRVGread(nset)
160 if (name(nset).eq.'DOG0' .OR.
161 + name(nset).eq.'DOG1') call DOGread(nset)
162 if (name(nset).eq.'DGG') call DGGread(nset)
163 if (name(nset).eq.'LACG') call LACGread(nset)
164 if (name(nset).eq.'GSG0' .OR.
165 + name(nset).eq.'GSG1') call GSGread(nset)
166 if (name(nset).eq.'GSG960' .OR.
167 + name(nset).eq.'GSG961') call GSG96read(nset)
168 if (name(nset).eq.'ACFGP') call ACFGPread(nset)
169 if (name(nset).eq.'WHITG') call WHITGread(nset)
170 if (name(nset).eq.'OWP') call OWPread(nset)
171 if (name(nset).eq.'SMRSP') call SMRSPread(nset)
172 if (name(nset).eq.'GRVP0' .OR.
173 + name(nset).eq.'GRVP1') call GRVPread(nset)
174 if (name(nset).eq.'ABFKWP') call ABFKWPread(nset)
177 entry alfasevolve(nset,alfas,Q)
180 c print *,'from alpfasevolveM',nset,Q,name(nset)
182 if (name(nset).eq.'QCDNUM') call QCDNUMalfa(alfas,Q)
183 if (name(nset).eq.'QCDNUM_MRST') call QCDNUMalfa(alfas,Q)
184 if (name(nset).eq.'QCDNUM_MRST3') call QCDNUM3alfa(alfas,Q)
185 if (name(nset).eq.'QCDNUM_MRST4') call QCDNUM4alfa(alfas,Q)
186 if (name(nset)(1:11).eq.'QCDNUM_ZEUS') call ZEUSalfa(alfas,Q)
187 if (name(nset).eq.'CTEQ5grid') call CTEQ5alfa(alfas,Q)
188 if (name(nset).eq.'CTEQ6grid') call CTEQ6alfa(alfas,Q)
189 if (name(nset).eq.'EVLCTEQ') call EVLCTEQalfa(alfas,Q)
190 if (name(nset).eq.'MRSTgrid') call MRSTalfa(5,alfas,Q)
191 if (name(nset).eq.'MRST3grid') call MRSTalfa(3,alfas,Q)
192 if (name(nset).eq.'MRST4grid') call MRSTalfa(4,alfas,Q)
193 if (name(nset).eq.'MRST98grid') call MRST98alfa(alfas,Q)
194 if (name(nset).eq.'MRSTpdf') call QCDNUMalfa(alfas,Q)
195 if (name(nset).eq.'MRST') call QCDNUMalfa(alfas,Q)
196 if (name(nset).eq.'A02') call A02alfa(alfas,Q)
197 if (name(nset).eq.'A02M') call A02Malfa(alfas,Q)
198 if (name(nset).eq.'H12000') call H1alfa(alfas,Q)
199 if (name(nset).eq.'GRV') call GRValfa(alfas,Q)
200 if (name(nset).eq.'SASG') call SASGalfa(alfas,Q)
201 if (name(nset).eq.'GRVG0' .OR.
202 + name(nset).eq.'GRVG1') call GRVGalfa(alfas,Q)
203 if (name(nset).eq.'DOG0' .OR.
204 + name(nset).eq.'DOG1') call DOGalfa(alfas,Q)
205 if (name(nset).eq.'DGG') call DGGalfa(alfas,Q)
206 if (name(nset).eq.'LACG') call LACGalfa(alfas,Q)
207 if (name(nset).eq.'GSG0' .OR.
208 + name(nset).eq.'GSG1') call GSGalfa(alfas,Q)
209 if (name(nset).eq.'GSG960' .OR.
210 + name(nset).eq.'GSG961') call GSG96alfa(alfas,Q)
211 if (name(nset).eq.'ACFGP') call ACFGPalfa(alfas,Q)
212 if (name(nset).eq.'WHITG') call WHITGalfa(alfas,Q)
213 if (name(nset).eq.'OWP') call OWPalfa(alfas,Q)
214 if (name(nset).eq.'SMRSP') call SMRSPalfa(alfas,Q)
215 if (name(nset).eq.'GRVP0' .OR.
216 + name(nset).eq.'GRVP1') call GRVPalfa(alfas,Q)
217 if (name(nset).eq.'ABFKWP') call ABFKWPalfa(alfas,Q)
220 entry initevolution(nset,Eorder,Q2fit)
224 if (name(nset).eq.'QCDNUM') call QCDNUMinit(nset,Eorder,Q2fit)
225 if (name(nset)(1:11).eq.'QCDNUM_ZEUS')
226 + call ZEUSinit(nset,Eorder,Q2fit)
227 if (name(nset).eq.'CTEQ5grid') call CTEQ5init(Eorder,Q2fit)
228 if (name(nset).eq.'CTEQ6grid') call CTEQ6init(Eorder,Q2fit)
229 if (name(nset).eq.'EVLCTEQ') call EVLCTEQinit(nset,Eorder,Q2fit)
230 if (name(nset).eq.'MRSTgrid') call MRSTinit(Eorder,Q2fit)
231 if (name(nset).eq.'MRST3grid') call MRSTinit(Eorder,Q2fit)
232 if (name(nset).eq.'MRST4grid') call MRSTinit(Eorder,Q2fit)
233 if (name(nset).eq.'MRST98grid') call MRST98init(Eorder,Q2fit)
234 if (name(nset).eq.'QCDNUM_MRST') then
235 call QCDNUMinit(nset,Eorder,Q2fit)
236 call QNLSET('BMARK',.TRUE.)
238 if (name(nset).eq.'QCDNUM_MRST3') then
239 call QCDNUM3init(nset,Eorder,Q2fit)
240 call QNLSET('BMARK',.TRUE.)
242 if (name(nset).eq.'QCDNUM_MRST4') then
243 call QCDNUM4init(nset,Eorder,Q2fit)
244 call QNLSET('BMARK',.TRUE.)
246 if (name(nset).eq.'A02') call A02init(Eorder,Q2fit)
247 if (name(nset).eq.'A02M') call A02Minit(Eorder,Q2fit)
248 if (name(nset).eq.'H12000') call H1init(Eorder,Q2fit)
249 if (name(nset).eq.'GRV') call GRVinit(Eorder,Q2fit)
250 if (name(nset).eq.'SASG') call SASGinit(Eorder,Q2fit)
251 if (name(nset).eq.'GRVG0' .OR.
252 + name(nset).eq.'GRVG1') call GRVGinit(Eorder,Q2fit)
253 if (name(nset).eq.'DOG0' .OR.
254 + name(nset).eq.'DOG1') call DOGinit(Eorder,Q2fit)
255 if (name(nset).eq.'DGG') call DGGinit(Eorder,Q2fit)
256 if (name(nset).eq.'LACG') call LACGinit(Eorder,Q2fit)
257 if (name(nset).eq.'GSG0' .OR.
258 + name(nset).eq.'GSG1') call GSGinit(Eorder,Q2fit)
259 if (name(nset).eq.'GSG960' .OR.
260 + name(nset).eq.'GSG961') call GSG96init(Eorder,Q2fit)
261 if (name(nset).eq.'ACFGP') call ACFGPinit(Eorder,Q2fit)
262 if (name(nset).eq.'WHITG') call WHITGinit(Eorder,Q2fit)
263 if (name(nset).eq.'OWP') call OWPinit(Eorder,Q2fit)
264 if (name(nset).eq.'SMRSP') call SMRSPinit(Eorder,Q2fit)
265 if (name(nset).eq.'GRVP0' .OR.
266 + name(nset).eq.'GRVP1') call GRVPinit(Eorder,Q2fit)
267 if (name(nset).eq.'ABFKWP') call ABFKWPinit(Eorder,Q2fit)
270 entry initPDFM(nset,imem)
273 call setnmem(nset,imem)
275 c print *,'entered initPDFM,',nset,imem,name(nset)
277 if (name(nset).eq.'QCDNUM') then
278 call InitEvolvePDF(nset,imem)
281 if (name(nset).eq.'QCDNUM_MRST') then
282 call InitEvolvePDF(nset,imem)
285 if (name(nset).eq.'QCDNUM_MRST3') then
286 call InitEvolvePDF(nset,imem)
287 call QCDNUM3pdf(nset)
289 if (name(nset).eq.'QCDNUM_MRST4') then
290 call InitEvolvePDF(nset,imem)
291 call QCDNUM4pdf(nset)
293 if (name(nset)(1:11).eq.'QCDNUM_ZEUS') then
294 call InitEvolvePDF(nset,imem)
297 if (name(nset).eq.'MRST') then
298 call InitEvolvePDF(nset,imem)
301 if (name(nset).eq.'MRSTpdf') then
302 call InitEvolvePDF(nset,imem)
305 if (name(nset).eq.'EVLCTEQ') then
306 call InitEvolvePDF(nset,imem)
307 call EVLCTEQpdf(nset)
308 c call EVLCTEQpdf(nset,imem)
310 if (name(nset).eq.'CTEQ6ABgrid') then
311 call CTEQ6NewAlpha(nset,imem)
312 c call CTEQ6pdf(nset)
314 if (name(nset).eq.'H12000') then
315 call InitEvolvePDF(nset,imem)
318 if (name(nset).eq.'CTEQ5grid') call CTEQ5pdf(imem)
319 if (name(nset).eq.'CTEQ6grid') call CTEQ6pdf(imem)
320 if (name(nset).eq.'CTEQ6ABgrid') call CTEQ6pdf(imem)
321 if (name(nset).eq.'MRSTgrid') call MRSTpdf(imem)
322 if (name(nset).eq.'MRST3grid') call MRSTpdf(imem)
323 if (name(nset).eq.'MRST4grid') call MRSTpdf(imem)
324 if (name(nset).eq.'MRST98grid') call MRST98pdf(imem)
325 if (name(nset).eq.'A02') call A02pdf(imem)
326 if (name(nset).eq.'A02M') call A02Mpdf(imem)
327 if (name(nset).eq.'GRV0' .OR.
328 + name(nset).eq.'GRV1') call GRVpdf(imem)
329 if (name(nset).eq.'SASG') call SASGpdf(imem)
330 if (name(nset).eq.'GRVG') call GRVGpdf(imem)
331 if (name(nset).eq.'DOG0' .OR.
332 + name(nset).eq.'DOG1') call DOGpdf(imem)
333 if (name(nset).eq.'DGG') call DGGpdf(imem)
334 if (name(nset).eq.'LACG') call LACGpdf(imem)
335 if (name(nset).eq.'GSG0' .OR.
336 + name(nset).eq.'GSG1') call GSGpdf(imem)
337 if (name(nset).eq.'GSG960' .OR.
338 + name(nset).eq.'GSG961') call GSG96pdf(imem)
339 if (name(nset).eq.'ACFGP') call ACFGPpdf(imem)
340 if (name(nset).eq.'WHITG') call WHITGpdf(imem)
341 if (name(nset).eq.'OWP') call OWPpdf(imem)
342 if (name(nset).eq.'SMRSP') call SMRSPpdf(imem)
343 if (name(nset).eq.'GRVP0' .OR.
344 + name(nset).eq.'GRVP1') call GRVPpdf(imem)
345 if (name(nset).eq.'ABFKWP') call ABFKWPpdf(imem)