LHAPDF 5.2.2 source code.
[u/mrichter/AliRoot.git] / LHAPDF / lhapdf5.2.2 / wrapevolve.f
1       subroutine evolvePDF(x,Q,f)
2       implicit none
3       integer nset,imem,Eorder,IP2
4       real*8 x,Q,P2,Q2fit,f(-6:6),alfas,a
5       nset = 1
6       call evolvePDFM(nset,x,Q,f)
7       return
8 c
9       entry evolvePDFp(x,Q,P2,IP2,f)
10       nset = 1
11       call evolvePDFpM(nset,x,Q,P2,IP2,f)
12       return
13 c
14       entry evolvePDFa(x,Q,a,f)
15       nset = 1
16       call evolvePDFaM(nset,x,Q,a,f)
17       return
18 c
19 c      entry readevolve
20 c      nset = 1
21 c      call readevolveM(nset)
22 c      return
23 c
24 c      entry alfasevolve(alfas,Q)
25 c      nset = 1
26 c      call alfasevolveM(nset,alfas,Q)
27 c      return
28 c
29 c      entry initevolution(Eorder,Q2fit)
30 c      nset = 1
31 c      call initevolutionM(nset,Eorder,Q2fit)
32 c      return
33 c
34       entry initPDF(imem)
35       nset = 1
36       call initPDFM(nset,imem)
37       
38       return
39       end
40 c
41       subroutine evolvePDFaM(nset,x,Q,a,f)
42       implicit none
43       real*8 x,Q,a,f(-6:6)
44       real*8 ruv,rdv,ru,rd,rs,rc,rb,rt,rg
45       integer nset
46       call eks98(x,q,a,ruv,rdv,ru,rd,rs,rc,rb,rt,rg)
47       call evolvePDFM(nset,x,Q,f)
48       f(0) = f(0)*rg
49       f(1) = f(1)*rdv-f(-1)*(rdv-rd)
50       f(2) = f(2)*ruv-f(-2)*(ruv-ru)
51       f(3) = f(3)*rs      
52       f(4) = f(4)*rc      
53       f(5) = f(5)*rb      
54       f(6) = f(6)*rt      
55       f(-6) = f(-6)*rt
56       f(-5) = f(-5)*rb
57       f(-4) = f(-4)*rc
58       f(-3) = f(-3)*rs
59       f(-2) = f(-2)*ru
60       f(-1) = f(-1)*rd
61       return
62       end
63 c      
64       subroutine evolvePDFM(nset,x,Q,f)
65       implicit none
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
71       integer iset,iimem
72       common/SET/iset,iimem
73       integer nset,j
74       real*8 x,Q,Q2fit,alfas,p2
75       real*8 f(-6:6)
76
77       save
78 *
79       call setnset(nset)
80 c      
81 c      print *,'this is evolvePDFM, name=',nset,name(nset)
82 c   set all f's to 0.0d0 at start
83 c      do j = -6,6
84 c        f(j) = 0.0d0
85 c      enddo 
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)
110       return
111 *
112       entry evolvePDFpM(nset,x,Q,P2,IP2,f)
113 c
114       call setnset(nset)
115 c      
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)
129       return
130 c
131       entry readevolve(nset)
132 *
133       read(1,*) name(nset)   
134 c      print *, 'this is readevolve', name(nset)   
135 *
136       call setnset(nset)
137 c      
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)
175       return
176 *
177       entry alfasevolve(nset,alfas,Q)
178 c
179       call setnset(nset)
180 c      print *,'from alpfasevolveM',nset,Q,name(nset)
181 c
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)
218       return
219 *
220       entry initevolution(nset,Eorder,Q2fit)
221 c
222       call setnset(nset)
223 c            
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.)
237       endif 
238       if (name(nset).eq.'QCDNUM_MRST3') then 
239         call QCDNUM3init(nset,Eorder,Q2fit)
240         call QNLSET('BMARK',.TRUE.)
241       endif 
242       if (name(nset).eq.'QCDNUM_MRST4') then 
243         call QCDNUM4init(nset,Eorder,Q2fit)
244         call QNLSET('BMARK',.TRUE.)
245       endif 
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)
268       return
269 *
270       entry initPDFM(nset,imem)
271 c
272       call setnset(nset)
273       call setnmem(nset,imem)
274 c            
275 c      print *,'entered initPDFM,',nset,imem,name(nset)
276       iimem = imem
277       if (name(nset).eq.'QCDNUM') then
278          call InitEvolvePDF(nset,imem)
279          call QCDNUMpdf(nset)
280       endif
281       if (name(nset).eq.'QCDNUM_MRST') then
282          call InitEvolvePDF(nset,imem)
283          call QCDNUMpdf(nset)
284       endif
285       if (name(nset).eq.'QCDNUM_MRST3') then
286          call InitEvolvePDF(nset,imem)
287          call QCDNUM3pdf(nset)
288       endif
289       if (name(nset).eq.'QCDNUM_MRST4') then
290          call InitEvolvePDF(nset,imem)
291          call QCDNUM4pdf(nset)
292       endif
293       if (name(nset)(1:11).eq.'QCDNUM_ZEUS') then
294          call InitEvolvePDF(nset,imem)
295          call ZEUSpdf(nset)
296       endif
297       if (name(nset).eq.'MRST') then
298          call InitEvolvePDF(nset,imem)
299          call QCDNUMpdf(nset)
300       endif
301       if (name(nset).eq.'MRSTpdf') then
302          call InitEvolvePDF(nset,imem)
303          call QCDNUMpdf(nset)
304       endif
305       if (name(nset).eq.'EVLCTEQ') then
306          call InitEvolvePDF(nset,imem)
307          call EVLCTEQpdf(nset)
308 c          call EVLCTEQpdf(nset,imem)
309       endif
310       if (name(nset).eq.'CTEQ6ABgrid') then
311          call CTEQ6NewAlpha(nset,imem)
312 c         call CTEQ6pdf(nset)
313       endif
314       if (name(nset).eq.'H12000') then
315          call InitEvolvePDF(nset,imem)
316          call H1pdf(imem)
317       endif
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)
346       return
347 *
348       end