mrst pdfs restored.
[u/mrichter/AliRoot.git] / LHAPDF / lhapdf5.5.1 / src / wrapevolve.f
1 ! -*- F90 -*-
2
3
4       subroutine evolvePDF(x,Q,f) 
5       implicit none 
6       integer nset,imem,Eorder,IP2 
7       real*8 x,Q,P2,Q2fit,f(-6:6),alfas,a,photon,gluino 
8       nset = 1 
9       call evolvePDFM(nset,x,Q,f) 
10       return 
11 !                                                                       
12       entry evolvePDFp(x,Q,P2,IP2,f) 
13       nset = 1 
14       call evolvePDFpM(nset,x,Q,P2,IP2,f) 
15       return 
16 !                                                                       
17       entry evolvePDFa(x,Q,a,f) 
18       nset = 1 
19       call evolvePDFaM(nset,x,Q,a,f) 
20       return 
21 !                                                                       
22       entry evolvePDFphoton(x,Q,f,photon) 
23       nset = 1 
24       call evolvePDFphotonM(nset,x,Q,f,photon) 
25       return 
26 !                                                                       
27       entry evolvePDFgluino(x,Q,f,gluino) 
28       nset = 1 
29       call evolvePDFgluinoM(nset,x,Q,f,gluino) 
30       return 
31 !                                                                       
32       entry initPDF(imem) 
33       nset = 1 
34       call initPDFM(nset,imem) 
35                                                                         
36       return 
37       END                                           
38 !                                                                       
39       subroutine evolvePDFaM(nset,xin,Qin,a,f) 
40       implicit none 
41       real*8 x,Q,a,f(-6:6) 
42       real*8 ruv,rdv,ru,rd,rs,rc,rb,rt,rg 
43       integer nset,iimem,j 
44       real*8 xin,qin,q2in 
45       character*20 lparm 
46       real*8 xmin,xmax,q2min,q2max 
47                                                                         
48       call getlhaparm(18,lparm) 
49       if(lparm.ne.'EXTRAPOLATE') then 
50         call getnmem(nset,iimem) 
51         call getminmaxm(nset,iimem,xmin,xmax,q2min,q2max) 
52         x = max(xmin,min(xmax,xin)) 
53         q2in = qin**2 
54         q = sqrt(max(0d0,q2min,min(q2max,q2in))) 
55       else 
56         x = xin 
57         q = qin 
58       endif 
59                                                                         
60       call getlhaparm(15,lparm) 
61       if(lparm.eq.'EPS08') then 
62         call eps08(x,q,a,ruv,rdv,ru,rd,rs,rc,rb,rt,rg) 
63       else 
64         call eks98(x,q,a,ruv,rdv,ru,rd,rs,rc,rb,rt,rg) 
65       endif 
66                                                                         
67       call evolvePDFM(nset,x,Q,f) 
68       f(0) = f(0)*rg 
69       f(1) = f(1)*rdv-f(-1)*(rdv-rd) 
70       f(2) = f(2)*ruv-f(-2)*(ruv-ru) 
71       f(3) = f(3)*rs 
72       f(4) = f(4)*rc 
73       f(5) = f(5)*rb 
74       f(6) = f(6)*rt 
75       f(-6) = f(-6)*rt 
76       f(-5) = f(-5)*rb 
77       f(-4) = f(-4)*rc 
78       f(-3) = f(-3)*rs 
79       f(-2) = f(-2)*ru 
80       f(-1) = f(-1)*rd 
81                                                                         
82       return 
83       END                                           
84 !                                                                       
85       subroutine evolvePDFM(nset,xin,Qin,f) 
86       implicit none 
87       include 'parmsetup.inc' 
88       integer Eorder,index,imem 
89       character*16 name(nmxset) 
90       integer nmem(nmxset),ndef(nmxset),mem,ip2 
91       common/NAME/name,nmem,ndef,mem 
92       integer iset,iimem 
93       common/SET/iset,iimem 
94       integer nset,j 
95       real*8 x,xin,Q,Qin,Q2fit,alfas,p2,q2in 
96       real*8 f(-6:6),photon,gluino 
97       character*20 lparm 
98       real*8 xmin,xmax,q2min,q2max 
99       save 
100 !                                                                       
101       call setnset(nset) 
102 !                                                                       
103 !      print *,'this is evolvePDFM, name=',nset,name(nset)              
104 !   set all f's to 0.0d0 at start                                       
105 !      do j = -6,6                                                      
106 !        f(j) = 0.0d0                                                   
107 !      enddo                                                            
108                                                                         
109       call getlhaparm(18,lparm) 
110       if(lparm.ne.'EXTRAPOLATE') then 
111         call getnmem(nset,iimem) 
112         call getminmaxm(nset,iimem,xmin,xmax,q2min,q2max) 
113         x = max(xmin,min(xmax,xin)) 
114         q2in = qin**2 
115         q = sqrt(max(0d0,q2min,min(q2max,q2in))) 
116       else 
117         x = xin 
118         q = qin 
119       endif 
120                                                                         
121       if (name(nset).eq.'QCDNUM') call QCDNUMevolve(x,Q,f) 
122       if (name(nset).eq.'QCDNUM_MRST') call QCDNUMevolve(x,Q,f) 
123       if (name(nset).eq.'QCDNUM_MRST3') call QCDNUM3evolve(x,Q,f) 
124       if (name(nset).eq.'QCDNUM_MRST4') call QCDNUM4evolve(x,Q,f) 
125       if (name(nset)(1:11).eq.'QCDNUM_ZEUS') call ZEUSevolve(x,Q,f) 
126       if (name(nset).eq.'CTEQ5grid') call CTEQ5evolve(x,Q,f) 
127       if (name(nset).eq.'CTEQ6grid') call CTEQ6evolve(x,Q,f) 
128 !!$      if (name(nset).eq.'CTEQ65grid') call CTEQ65evolve(x,Q,f) 
129 !!$      if (name(nset).eq.'CTEQ65cgrid') call CTEQ65cevolve(x,Q,f) 
130 !!$      if (name(nset).eq.'CTEQ65sgrid') call CTEQ65sevolve(x,Q,f) 
131       if (name(nset).eq.'CTEQ6ABgrid') call CTEQ6evolve(x,Q,f) 
132 !!$      if (name(nset).eq.'CTEQ66grid') call CTEQ65evolve(x,Q,f) 
133       if (name(nset).eq.'EVLCTEQ') call EVLCTEQevolve(x,Q,f) 
134       if (name(nset).eq.'MRSTgrid') call MRSTevolve(x,Q,f) 
135 !!$      if (name(nset).eq.'MRST3grid') call MRSTevolve(x,Q,f) 
136 !!$      if (name(nset).eq.'MRST4grid') call MRSTevolve(x,Q,f) 
137 !!$      if (name(nset).eq.'MRST98grid') call MRST98evolve(x,Q,f) 
138 !!$      if (name(nset).eq.'MRST2006grid') call MRST2006evolve(x,Q,f) 
139       if (name(nset).eq.'MRSTpdf') call QCDNUMevolve(x,Q,f) 
140       if (name(nset).eq.'MRST') call QCDNUMevolve(x,Q,f) 
141       if (name(nset).eq.'A02') call A02evolve(x,Q,f) 
142       if (name(nset).eq.'A02M') call A02Mevolve(x,Q,f) 
143       if (name(nset).eq.'H12000') call H1evolve(x,Q,f) 
144       if (name(nset).eq.'GRV') call GRVevolve(x,Q,f) 
145       if (name(nset).eq.'OWP') call OWPevolve(x,Q,f) 
146       if (name(nset).eq.'SMRSP') call SMRSPevolve(x,Q,f) 
147       if (name(nset).eq.'GRVP0') call GRVP0evolve(x,Q,f) 
148       if (name(nset).eq.'GRVP1') call GRVP1evolve(x,Q,f) 
149       if (name(nset).eq.'ABFKWP') call ABFKWPevolve(x,Q,f) 
150       if (name(nset).eq.'USER') call USERevolve(x,Q,f) 
151       return 
152 !                                                                       
153       entry evolvePDFpM(nset,xin,Qin,P2,IP2,f) 
154 !                                                                       
155       call setnset(nset) 
156 !                                                                       
157       call getlhaparm(18,lparm) 
158       if(lparm.ne.'EXTRAPOLATE') then 
159         call getnmem(nset,iimem) 
160         call getminmaxm(nset,iimem,xmin,xmax,q2min,q2max) 
161         x = max(xmin,min(xmax,xin)) 
162         q2in = qin**2 
163         q = sqrt(max(0d0,q2min,min(q2max,q2in))) 
164       else 
165         x = xin 
166         q = qin 
167       endif 
168 !                                                                       
169       if(name(nset).eq.'SASG') call SASGevolvep(x,Q,P2,IP2,f) 
170       if(name(nset).eq.'GRVG0') call GRVGevolvep0(x,Q,P2,IP2,f) 
171       if(name(nset).eq.'GRVG1') call GRVGevolvep1(x,Q,P2,IP2,f) 
172       if (name(nset).eq.'DOG0') call DOGevolvep0(x,Q,P2,IP2,f) 
173       if (name(nset).eq.'DOG1') call DOGevolvep1(x,Q,P2,IP2,f) 
174       if (name(nset).eq.'DGG') call DGGevolvep(x,Q,P2,IP2,f) 
175       if (name(nset).eq.'LACG') call LACGevolvep(x,Q,P2,IP2,f) 
176       if (name(nset).eq.'GSG0') call GSGevolvep0(x,Q,P2,IP2,f) 
177       if (name(nset).eq.'GSG1') call GSGevolvep1(x,Q,P2,IP2,f) 
178       if (name(nset).eq.'GSG960') call GSG96evolvep0(x,Q,P2,IP2,f) 
179       if (name(nset).eq.'GSG961') call GSG96evolvep1(x,Q,P2,IP2,f) 
180       if (name(nset).eq.'ACFGP') call ACFGPevolvep(x,Q,P2,IP2,f) 
181       if (name(nset).eq.'WHITG') call WHITGevolvep(x,Q,P2,IP2,f) 
182       return 
183 !                                                                       
184       entry evolvePDFphotonM(nset,xin,qin,f,photon) 
185                                                                         
186 !                                                                       
187       call setnset(nset) 
188 !                                                                       
189       call getlhaparm(18,lparm) 
190       if(lparm.ne.'EXTRAPOLATE') then 
191         call getnmem(nset,iimem) 
192         call getminmaxm(nset,iimem,xmin,xmax,q2min,q2max) 
193         x = max(xmin,min(xmax,xin)) 
194         q2in = qin**2 
195         q = sqrt(max(0d0,q2min,min(q2max,q2in))) 
196       else 
197         x = xin 
198         q = qin 
199       endif 
200 !                                                                       
201       if(name(nset).eq.'MRST4qed') then 
202 !!$        call MRSTqedevolve(x,Q,f,photon) 
203       else 
204         photon = 0.0d0 
205       endif 
206                                                                         
207       return 
208                                                                         
209       entry evolvePDFgluinoM(nset,xin,qin,f,gluino) 
210                                                                         
211 !                                                                       
212       call setnset(nset) 
213 !                                                                       
214       call getlhaparm(18,lparm) 
215       if(lparm.ne.'EXTRAPOLATE') then 
216         call getnmem(nset,iimem) 
217         call getminmaxm(nset,iimem,xmin,xmax,q2min,q2max) 
218         x = max(xmin,min(xmax,xin)) 
219         q2in = qin**2 
220         q = sqrt(max(0d0,q2min,min(q2max,q2in))) 
221       else 
222         x = xin 
223         q = qin 
224       endif 
225 !                                                                       
226       if(name(nset).eq.'CTEQ6LGgrid') then 
227         call CTEQ6LGevolve(x,Q,f,gluino) 
228       else 
229         gluino = 0.0d0 
230       endif 
231                                                                         
232       return 
233                                                                         
234                                                                         
235       entry readevolve(nset) 
236 !                                                                       
237       read(1,*) name(nset) 
238 !      print *, 'this is readevolve', name(nset)                        
239 !                                                                       
240       call setnset(nset) 
241 !                                                                       
242       if (name(nset).eq.'QCDNUM') call QCDNUMread(nset) 
243       if (name(nset).eq.'QCDNUM_MRST') call QCDNUMread(nset) 
244       if (name(nset).eq.'QCDNUM_MRST3') call QCDNUM3read(nset) 
245       if (name(nset).eq.'QCDNUM_MRST4') call QCDNUM4read(nset) 
246       if (name(nset)(1:11).eq.'QCDNUM_ZEUS') call ZEUSread(nset) 
247       if (name(nset).eq.'CTEQ5grid') call CTEQ5read(nset) 
248       if (name(nset).eq.'CTEQ6grid') call CTEQ6read(nset) 
249 !!$      if (name(nset).eq.'CTEQ65grid') call CTEQ65read(nset) 
250 !!$      if (name(nset).eq.'CTEQ65cgrid') call CTEQ65cread(nset) 
251 !!$      if (name(nset).eq.'CTEQ65sgrid') call CTEQ65read(nset) 
252       if (name(nset).eq.'CTEQ6ABgrid') call CTEQ6read(nset) 
253 !!$      if (name(nset).eq.'CTEQ66grid') call CTEQ66read(nset) 
254       if (name(nset).eq.'CTEQ6LGgrid') call CTEQ6LGread(nset) 
255       if (name(nset).eq.'EVLCTEQ') call EVLCTEQread(nset) 
256       if (name(nset).eq.'MRSTgrid') call MRSTread(nset) 
257 !!$      if (name(nset).eq.'MRST3grid') call MRSTread(nset) 
258 !!$      if (name(nset).eq.'MRST4grid') call MRSTread(nset) 
259 !!$      if (name(nset).eq.'MRST4qed') call MRSTqedread(nset) 
260 !!$      if (name(nset).eq.'MRST98grid') call MRST98read(nset) 
261 !!$      if (name(nset).eq.'MRST2006grid') call MRST2006read(nset) 
262       if (name(nset).eq.'MRSTpdf') call QCDNUMread(nset) 
263       if (name(nset).eq.'MRST') call QCDNUMread(nset) 
264       if (name(nset).eq.'A02') call A02read(nset) 
265       if (name(nset).eq.'A02M') call A02Mread(nset) 
266       if (name(nset).eq.'H12000') call H1read(nset) 
267       if (name(nset).eq.'GRV') call GRVread(nset) 
268       if (name(nset).eq.'SASG') call SASGread(nset) 
269       if (name(nset).eq.'GRVG0' .OR.                                    &
270      &    name(nset).eq.'GRVG1') call GRVGread(nset)                    
271       if (name(nset).eq.'DOG0' .OR.                                     &
272      &    name(nset).eq.'DOG1') call DOGread(nset)                      
273       if (name(nset).eq.'DGG') call DGGread(nset) 
274       if (name(nset).eq.'LACG') call LACGread(nset) 
275       if (name(nset).eq.'GSG0' .OR.                                     &
276      &    name(nset).eq.'GSG1') call GSGread(nset)                      
277       if (name(nset).eq.'GSG960' .OR.                                   &
278      &    name(nset).eq.'GSG961') call GSG96read(nset)                  
279       if (name(nset).eq.'ACFGP') call ACFGPread(nset) 
280       if (name(nset).eq.'WHITG') call WHITGread(nset) 
281       if (name(nset).eq.'OWP') call OWPread(nset) 
282       if (name(nset).eq.'SMRSP') call SMRSPread(nset) 
283       if (name(nset).eq.'GRVP0' .OR.                                    &
284      &    name(nset).eq.'GRVP1') call GRVPread(nset)                    
285       if (name(nset).eq.'ABFKWP') call ABFKWPread(nset) 
286       if (name(nset).eq.'USER') call USERread(nset) 
287       return 
288 !                                                                       
289       entry alfasevolve(nset,alfas,Qin) 
290 !                                                                       
291       call setnset(nset) 
292         q = qin 
293       if (name(nset).eq.'QCDNUM') call QCDNUMalfa(alfas,Q) 
294       if (name(nset).eq.'QCDNUM_MRST') call QCDNUMalfa(alfas,Q) 
295       if (name(nset).eq.'QCDNUM_MRST3') call QCDNUM3alfa(alfas,Q) 
296       if (name(nset).eq.'QCDNUM_MRST4') call QCDNUM4alfa(alfas,Q) 
297       if (name(nset)(1:11).eq.'QCDNUM_ZEUS') call ZEUSalfa(alfas,Q) 
298       if (name(nset).eq.'CTEQ5grid') call CTEQ5alfa(alfas,Q) 
299       if (name(nset).eq.'CTEQ6grid') call CTEQ6alfa(alfas,Q) 
300 !!$      if (name(nset).eq.'CTEQ65grid') call CTEQ65alfa(alfas,Q) 
301 !!$      if (name(nset).eq.'CTEQ65cgrid') call CTEQ65alfa(alfas,Q) 
302 !!$      if (name(nset).eq.'CTEQ65sgrid') call CTEQ65alfa(alfas,Q) 
303 !!$      if (name(nset).eq.'CTEQ66grid') call CTEQ65alfa(alfas,Q) 
304       if (name(nset).eq.'CTEQ6LGgrid') call CTEQ6LGalfa(alfas,Q) 
305       if (name(nset).eq.'EVLCTEQ') call EVLCTEQalfa(alfas,Q) 
306       if (name(nset).eq.'MRSTgrid') call MRSTalfa(5,alfas,Q) 
307 !!$      if (name(nset).eq.'MRST3grid') call MRSTalfa(3,alfas,Q) 
308 !!$      if (name(nset).eq.'MRST4grid') call MRSTalfa(4,alfas,Q) 
309 !!$      if (name(nset).eq.'MRST4qed') call MRSTalfa(4,alfas,Q) 
310 !!$      if (name(nset).eq.'MRST98grid') call MRST98alfa(alfas,Q) 
311 !!$      if (name(nset).eq.'MRST2006grid') call MRST2006alfa(5,alfas,Q) 
312       if (name(nset).eq.'MRSTpdf') call QCDNUMalfa(alfas,Q) 
313       if (name(nset).eq.'MRST') call QCDNUMalfa(alfas,Q) 
314       if (name(nset).eq.'A02') call A02alfa(alfas,Q) 
315       if (name(nset).eq.'A02M') call A02Malfa(alfas,Q) 
316       if (name(nset).eq.'H12000') call H1alfa(alfas,Q) 
317       if (name(nset).eq.'GRV') call GRValfa(alfas,Q) 
318       if (name(nset).eq.'SASG') call SASGalfa(alfas,Q) 
319       if (name(nset).eq.'GRVG0' .OR.                                    &
320      &    name(nset).eq.'GRVG1') call GRVGalfa(alfas,Q)                 
321       if (name(nset).eq.'DOG0' .OR.                                     &
322      &    name(nset).eq.'DOG1') call DOGalfa(alfas,Q)                   
323       if (name(nset).eq.'DGG') call DGGalfa(alfas,Q) 
324       if (name(nset).eq.'LACG') call LACGalfa(alfas,Q) 
325       if (name(nset).eq.'GSG0' .OR.                                     &
326      &    name(nset).eq.'GSG1') call GSGalfa(alfas,Q)                   
327       if (name(nset).eq.'GSG960' .OR.                                   &
328      &    name(nset).eq.'GSG961') call GSG96alfa(alfas,Q)               
329       if (name(nset).eq.'ACFGP') call ACFGPalfa(alfas,Q) 
330       if (name(nset).eq.'WHITG') call WHITGalfa(alfas,Q) 
331       if (name(nset).eq.'OWP') call OWPalfa(alfas,Q) 
332       if (name(nset).eq.'SMRSP') call SMRSPalfa(alfas,Q) 
333       if (name(nset).eq.'GRVP0' .OR.                                    &
334      &    name(nset).eq.'GRVP1') call GRVPalfa(alfas,Q)                 
335       if (name(nset).eq.'ABFKWP') call ABFKWPalfa(alfas,Q) 
336       if (name(nset).eq.'USER') call USERalfa(alfas,Q) 
337       return 
338 !                                                                       
339       entry initevolution(nset,Eorder,Q2fit) 
340 !                                                                       
341       call setnset(nset) 
342 !                                                                       
343       if (name(nset).eq.'QCDNUM') call QCDNUMinit(nset,Eorder,Q2fit) 
344       if (name(nset)(1:11).eq.'QCDNUM_ZEUS')                            &
345      & call ZEUSinit(nset,Eorder,Q2fit)                                 
346       if (name(nset).eq.'CTEQ5grid') call CTEQ5init(Eorder,Q2fit) 
347       if (name(nset).eq.'CTEQ6grid') call CTEQ6init(Eorder,Q2fit) 
348 !!$      if (name(nset).eq.'CTEQ65grid') call CTEQ65init(Eorder,Q2fit) 
349 !!$      if (name(nset).eq.'CTEQ65cgrid') call CTEQ65init(Eorder,Q2fit) 
350 !!$      if (name(nset).eq.'CTEQ65sgrid') call CTEQ65init(Eorder,Q2fit) 
351 !!$      if (name(nset).eq.'CTEQ66grid') call CTEQ65init(Eorder,Q2fit) 
352       if (name(nset).eq.'CTEQ6LGgrid') call CTEQ6LGinit(Eorder,Q2fit) 
353       if (name(nset).eq.'EVLCTEQ') call EVLCTEQinit(nset,Eorder,Q2fit) 
354       if (name(nset).eq.'MRSTgrid') call MRSTinit(Eorder,Q2fit) 
355 !!$      if (name(nset).eq.'MRST3grid') call MRSTinit(Eorder,Q2fit) 
356 !!$      if (name(nset).eq.'MRST4grid') call MRSTinit(Eorder,Q2fit) 
357 !!$      if (name(nset).eq.'MRST4qed') call MRSTinit(Eorder,Q2fit) 
358 !!$      if (name(nset).eq.'MRST98grid') call MRST98init(Eorder,Q2fit) 
359 !!$      if (name(nset).eq.'MRST2006grid') call MRST2006init(Eorder,Q2fit) 
360       if (name(nset).eq.'QCDNUM_MRST') then 
361         call QCDNUMinit(nset,Eorder,Q2fit) 
362         call QNLSET('BMARK',.TRUE.) 
363       endif 
364       if (name(nset).eq.'QCDNUM_MRST3') then 
365         call QCDNUM3init(nset,Eorder,Q2fit) 
366         call QNLSET('BMARK',.TRUE.) 
367       endif 
368       if (name(nset).eq.'QCDNUM_MRST4') then 
369         call QCDNUM4init(nset,Eorder,Q2fit) 
370         call QNLSET('BMARK',.TRUE.) 
371       endif 
372       if (name(nset).eq.'A02') call A02init 
373       if (name(nset).eq.'A02M') call A02Minit 
374       if (name(nset).eq.'H12000') call H1init(Eorder,Q2fit) 
375       if (name(nset).eq.'GRV') call GRVinit(Eorder,Q2fit) 
376       if (name(nset).eq.'SASG') call SASGinit(Eorder,Q2fit) 
377       if (name(nset).eq.'GRVG0' .OR.                                    &
378      &    name(nset).eq.'GRVG1') call GRVGinit(Eorder,Q2fit)            
379       if (name(nset).eq.'DOG0' .OR.                                     &
380      &    name(nset).eq.'DOG1') call DOGinit(Eorder,Q2fit)              
381       if (name(nset).eq.'DGG') call DGGinit(Eorder,Q2fit) 
382       if (name(nset).eq.'LACG') call LACGinit(Eorder,Q2fit) 
383       if (name(nset).eq.'GSG0' .OR.                                     &
384      &    name(nset).eq.'GSG1') call GSGinit(Eorder,Q2fit)              
385       if (name(nset).eq.'GSG960' .OR.                                   &
386      &    name(nset).eq.'GSG961') call GSG96init(Eorder,Q2fit)          
387       if (name(nset).eq.'ACFGP') call ACFGPinit(Eorder,Q2fit) 
388       if (name(nset).eq.'WHITG') call WHITGinit(Eorder,Q2fit) 
389       if (name(nset).eq.'OWP') call OWPinit(Eorder,Q2fit) 
390       if (name(nset).eq.'SMRSP') call SMRSPinit(Eorder,Q2fit) 
391       if (name(nset).eq.'GRVP0' .OR.                                    &
392      &    name(nset).eq.'GRVP1') call GRVPinit(Eorder,Q2fit)            
393       if (name(nset).eq.'ABFKWP') call ABFKWPinit(Eorder,Q2fit) 
394       if (name(nset).eq.'USER') call USERinit(nset,Eorder,Q2fit) 
395       return 
396 !                                                                       
397       entry initPDFM(nset,imem) 
398 !                                                                       
399       call setnset(nset) 
400       call setnmem(nset,imem) 
401 !                                                                       
402       iimem = imem 
403       if (name(nset).eq.'QCDNUM') then 
404          call InitEvolvePDF(nset,imem) 
405          call QCDNUMpdf(nset) 
406       endif 
407       if (name(nset).eq.'QCDNUM_MRST') then 
408          call InitEvolvePDF(nset,imem) 
409          call QCDNUMpdf(nset) 
410       endif 
411       if (name(nset).eq.'QCDNUM_MRST3') then 
412          call InitEvolvePDF(nset,imem) 
413          call QCDNUM3pdf(nset) 
414       endif 
415       if (name(nset).eq.'QCDNUM_MRST4') then 
416          call InitEvolvePDF(nset,imem) 
417          call QCDNUM4pdf(nset) 
418       endif 
419       if (name(nset)(1:11).eq.'QCDNUM_ZEUS') then 
420          call InitEvolvePDF(nset,imem) 
421          call ZEUSpdf(nset) 
422       endif 
423       if (name(nset).eq.'MRST') then 
424          call InitEvolvePDF(nset,imem) 
425          call QCDNUMpdf(nset) 
426       endif 
427       if (name(nset).eq.'MRSTpdf') then 
428          call InitEvolvePDF(nset,imem) 
429          call QCDNUMpdf(nset) 
430       endif 
431       if (name(nset).eq.'EVLCTEQ') then 
432          call InitEvolvePDF(nset,imem) 
433          call EVLCTEQpdf(nset) 
434 !          call EVLCTEQpdf(nset,imem)                                   
435       endif 
436       if (name(nset).eq.'CTEQ65grid') then 
437          call CTEQ6NewAlpha(nset,imem) 
438       endif 
439       if (name(nset).eq.'CTEQ65cgrid') then 
440          call CTEQ6NewAlpha(nset,imem) 
441       endif 
442       if (name(nset).eq.'CTEQ65sgrid') then 
443          call CTEQ6NewAlpha(nset,imem) 
444       endif 
445       if (name(nset).eq.'CTEQ6ABgrid') then 
446          call CTEQ6NewAlpha(nset,imem) 
447 !         call CTEQ6pdf(nset)                                           
448       endif 
449       if (name(nset).eq.'CTEQ66grid') then 
450          call CTEQ6NewAlpha(nset,imem) 
451       endif 
452       if (name(nset).eq.'H12000') then 
453          call InitEvolvePDF(nset,imem) 
454          call H1pdf(imem) 
455       endif 
456       if (name(nset).eq.'USER') then 
457          call InitEvolvePDF(nset,imem) 
458          call USERpdf(nset) 
459       endif 
460       if (name(nset).eq.'CTEQ5grid') call CTEQ5pdf(imem) 
461       if (name(nset).eq.'CTEQ6grid') call CTEQ6pdf(imem) 
462 !!$      if (name(nset).eq.'CTEQ65grid') call CTEQ65pdf(imem) 
463 !!$      if (name(nset).eq.'CTEQ66grid') call CTEQ65pdf(imem) 
464 !!$      if (name(nset).eq.'CTEQ65cgrid') call CTEQ65pdf(imem) 
465 !!$      if (name(nset).eq.'CTEQ65sgrid') call CTEQ65pdf(imem) 
466 !!$      if (name(nset).eq.'CTEQ6ABgrid') call CTEQ6pdf(imem) 
467 !!$      if (name(nset).eq.'CTEQ66grid') call CTEQ65pdf(imem) 
468       if (name(nset).eq.'CTEQ6LGgrid') call CTEQ6LGpdf(imem) 
469       if (name(nset).eq.'MRSTgrid') call MRSTpdf(imem) 
470 !!$      if (name(nset).eq.'MRST3grid') call MRSTpdf(imem) 
471 !!$      if (name(nset).eq.'MRST4grid') call MRSTpdf(imem) 
472 !!$      if (name(nset).eq.'MRST4qed') call MRSTpdf(imem) 
473 !!$      if (name(nset).eq.'MRST98grid') call MRST98pdf(imem) 
474 !!$      if (name(nset).eq.'MRST2006grid') call MRST2006pdf(imem) 
475       if (name(nset).eq.'A02') call A02pdf(imem) 
476       if (name(nset).eq.'A02M') call A02Mpdf(imem) 
477       if (name(nset).eq.'GRV0' .OR.                                     &
478      &    name(nset).eq.'GRV1') call GRVpdf(imem)                       
479       if (name(nset).eq.'SASG') call SASGpdf(imem) 
480       if (name(nset).eq.'GRVG') call GRVGpdf(imem) 
481       if (name(nset).eq.'DOG0' .OR.                                     &
482      &    name(nset).eq.'DOG1') call DOGpdf(imem)                       
483       if (name(nset).eq.'DGG') call DGGpdf(imem) 
484       if (name(nset).eq.'LACG') call LACGpdf(imem) 
485       if (name(nset).eq.'GSG0' .OR.                                     &
486      &    name(nset).eq.'GSG1') call GSGpdf(imem)                       
487       if (name(nset).eq.'GSG960' .OR.                                   &
488      &    name(nset).eq.'GSG961') call GSG96pdf(imem)                   
489       if (name(nset).eq.'ACFGP') call ACFGPpdf(imem) 
490       if (name(nset).eq.'WHITG') call WHITGpdf(imem) 
491       if (name(nset).eq.'OWP') call OWPpdf(imem) 
492       if (name(nset).eq.'SMRSP') call SMRSPpdf(imem) 
493       if (name(nset).eq.'GRVP0' .OR.                                    &
494      &    name(nset).eq.'GRVP1') call GRVPpdf(imem)                     
495       if (name(nset).eq.'ABFKWP') call ABFKWPpdf(imem) 
496       return 
497 !                                                                       
498       END