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