]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PDF/spdf/structm.F
New methods and data member added by M. Horner.
[u/mrichter/AliRoot.git] / PDF / spdf / structm.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.3  2000/04/19 13:29:30  mclareni
6 * Import version 8.04
7 *
8 * Revision 1.5  2000/04/15 14:10:47  plothow
9 * Version 8.03: Nuclear PDFs introduced
10 *
11 * Revision 1.4  2000/04/09 14:47:31  plothow
12 * version 8.02 - add CTEQ4 ref2 PDFs
13 *
14 * Revision 1.3  2000/04/09 10:06:54  plothow
15 * new version 8.00 - MRS 98 and 99, CTEQ5 and GRV98 added
16 *
17 * Revision 1.2  1996/10/28 15:13:59  pdflib
18 * PDFLIB new version 7.04
19 *
20 * Revision 1.1.1.1  1996/04/12 15:30:06  plothow
21 * Version 7.01
22 *
23 *
24 #include "pdf/pilot.h"
25 C
26 C-----------------------------------------------------------------------
27 C
28       SUBROUTINE STRUCTM(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL)
29 C
30 C  *********************************************************************
31 C  *                                                                   *
32 C  *   Main steering routine for all sets of structure functions       *
33 C  *                                                                   *
34 C  *                                                                   *
35 C  *   Input:    X     = x value of parton                             *
36 C  *             SCALE = QCD scale in GeV                              *
37 C  *                                                                   *
38 C  *   Output:   UPV   = up valence quark                              *
39 C  *             DNV   = down valence quark                            *
40 C  *             USEA  = sea (up_bar)                                  *
41 C  *             DSEA  = sea (down_bar)                                *
42 C  *             STR   = strange quark                                 *
43 C  *             CHM   = charm quark                                   *
44 C  *             BOT   = bottom quark                                  *
45 C  *             TOP   = top quark                                     *
46 C  *             GL    = gluon                                         *
47 C  *                                                                   *
48 C  *                                                                   *
49 C  *   The variables  NPTYPE, NGROUP and NSET  should be,              *
50 C  *   the variables  NFL, LO, TMAS  and                               *
51 C  *   QCDL4, QCDL5, XMIN, XMAX, Q2MIN, Q2MAX                          *
52 C  *   could be provided by the user via a call to the                 *
53 C  *   subroutine PDFSET at the initialization phase, where            *
54 C  *                                                                   *
55 C  *             NPTYPE = Particle type                                *
56 C  *                      (number or character string,                 *
57 C  *                       1,2,3 or 'NU','PI','PH')                    *
58 C  *                      of desired structure functions set           *
59 C  *                      (Default: NPTYPE = 1  or  'NU'               *
60 C  *             NGROUP = author group                                 *
61 C  *                      (number or character string,                 *
62 C  *                       1 to 7 or i.e. 'DFLM','MRS','MT','GRV',etc) *
63 C  *                      of desired structure functions set           *
64 C  *                      (Default: NGROUP = 5  or  'GRV')             *
65 C  *             NSET   = number of desired structure functions set    *
66 C  *                      (Default: NSET = 3)                          *
67 C  *             NFL    = desired number of flavours for alpha(s)      *
68 C  *                      (Default: NFL = 5)                           *
69 C  *             LO     = order of alpha(s) calculation                *
70 C  *                      (Default: LO = 2)                            *
71 C  *             TMAS   = top quark mass in GeV/c**2  (optional)       *
72 C  *                      (Default: TMAS = 100.0D0)                    *
73 C  *             QCDL4  = QCD scale in GeV for four flavours           *
74 C  *             QCDL5  = QCD scale in GeV for five flavours           *
75 C  *                      corresponding to QCDL4                       *
76 C  *             XMIN   = minimal allowed x value                      *
77 C  *             XMAX   = maximal allowed x value                      *
78 C  *             Q2MIN  = minimal allowed Q**2 value                   *
79 C  *             Q2MAX  = maximal allowed Q**2 value                   *
80 C  *                                                                   *
81 C  *   for each set of structure fuction.                              *
82 C  *                                                                   *
83 C  *   The internal COMMON blocks                                      *
84 C  *                                                                   *
85 C  *   COMMON/W50511/ NPTYPE,NGROUP,NSET,MODE,NFL,LO,TMAS              *
86 C  *   COMMON/W50512/ QCDL4,QCDL5                                      *
87 C  *   COMMON/W50513/ XMIN,XMAX,Q2MIN,Q2MAX                            *
88 C  *                                                                   *
89 C  *   are filled then by the subroutine PDFSET.                       *
90 C  *                                                                   *
91 C  *                                                                   *
92 C  *     Note: STRUCTM returns X * parton distribution function !      *
93 C  *                                                                   *
94 C  *                                                                   *
95 C  *     Author:   H. Plothow-Besch                                    *
96 C  *               CERN-PPE, CH - 1211 Geneva 23, Switzerland          *
97 C  *                                                                   *
98 C  *     Please return any problems, questions, suggestions            *
99 C  *     to the author                                                 *
100 C  *                                                                   *
101 C  *********************************************************************
102 C
103 C
104 #include "pdf/impdp.inc"
105 C
106 #include "pdf/w5051p1.inc"
107 #include "pdf/w5051p2.inc"
108 #include "pdf/w5051p7.inc"
109 #include "pdf/w50510.inc"
110 #include "pdf/w50511.inc"
111 #include "pdf/w50512.inc"
112 #include "pdf/w50513.inc"
113 #include "pdf/w50514.inc"
114 #include "pdf/w50514w.inc"
115 #include "pdf/w50515.inc"
116 #include "pdf/w50516.inc"
117 #include "pdf/w50517.inc"
118 #include "pdf/w50519.inc"
119 #include "pdf/w505120.inc"
120 #include "pdf/w505121.inc"
121       CHARACTER*20 PARM(NCHDIM)
122 #include "pdf/expdp.inc"
123      +       VAL(NCHDIM)
124       DATA ZEROD/0.D0/,ONED/1.D0/,TWOD/2.D0/
125       SAVE /W50514/, /W50514W/, /W50516/
126 C.
127 #include "pdf/w50511c.inc"
128 C.
129 C User wants new version (4.0 or bigger) of PDFLIB format
130       IF (IFLSET.NE.1) THEN
131          IF(FIRST) THEN
132          WRITE(N6,*) ' Warning : NO initialisation via PDFSET made !!'
133          WRITE(N6,*)
134      +   '           ALL Parameters set to default (Nucleon PDFs) !!'
135          ENDIF
136          NPTYPE = LPTYPE
137          NGROUP = LGROUP
138          NSET   = LNSET
139 C
140          PARM(1) = 'Nptype'
141          VAL(1)  = NPTYPE
142          PARM(2) = 'Ngroup'
143          VAL(2)  = NGROUP
144          PARM(3) = 'Nset'
145          VAL(3)  = NSET
146 C
147          CALL PDFSET(PARM,VAL)
148       ENDIF
149 C.
150 C User wants old version (3.0 or less) of PDFLIB format
151       IF(.NOT.NEWVER) THEN
152         IF (MODE .GE.0 .AND. MODE .LE.MODEMX) THEN
153            IF(MODE.EQ.0) THEN
154              NPTYPE = LPTYPO
155              NGROUP = LGROPO
156              NSET   = LNSETO
157            ELSE
158              NPTYPE = NPTYCR(MODE)
159              NGROUP = NGROCR(MODE)
160              NSET   = NSETCR(MODE)
161 C   Check on validity of parameter values
162              IF (NPTYPE.LT.0 .OR. NGROUP.LT.0 .OR. NSET.LT.0) THEN
163                 IF(FIRST) THEN
164                 WRITE(N6,*) ' PDFLIB  : MODE value INCORRECT, MODE = ',
165      +          MODE
166                WRITE(N6,*) ' Warning : MODE value set to OLD default !!'
167                 ENDIF
168                 NPTYPE = LPTYPO
169                 NGROUP = LGROPO
170                 NSET   = LNSETO
171              ENDIF
172            ENDIF
173         ENDIF
174       ENDIF
175 C.
176 C... Define printer
177            IF(N6.LE.0) N6 = L6
178 C
179         DUPV = ZEROD
180         DDNV = ZEROD
181         DUSEA = ZEROD
182         DDSEA = ZEROD
183         DSTR = ZEROD
184         DCHM = ZEROD
185         DBOT = ZEROD
186         DTOP = ZEROD
187         DGL  = ZEROD
188 C
189         ZUPV = ZEROD
190         ZDNV = ZEROD
191         ZUSEA = ZEROD
192         ZDSEA = ZEROD
193         ZSTR = ZEROD
194         ZCHM = ZEROD
195         ZBOT = ZEROD
196         ZTOP = ZEROD
197         ZGL  = ZEROD
198 C
199         DX  = X
200         DQ  = SCALE
201         DQ2 = SCALE*SCALE
202 C.
203         IF (DX.LE.ZEROD .OR. DX.GE.ONED) THEN
204            WRITE(N6,*) ' PDFLIB  : Nptype = ',NPTYPE,',   Ngroup = ',
205      +                 NGROUP,',   Nset = ',NSET
206            WRITE(N6,*)
207      +     ' Error   : X value outside physical range , X = ',DX
208            GOTO 100
209         ENDIF
210         WTXMIN = WTXMIN + PDFWGT
211         IF (DX.LT.XMIN) THEN
212            WXMIN = WXMIN + PDFWGT
213            IF(IFLPRT.GE.3) THEN
214               WRITE(N6,*) ' PDFLIB  : Nptype = ',NPTYPE,',   Ngroup = ',
215      +                 NGROUP,',   Nset = ',NSET
216               WRITE(N6,*)
217      +        ' Error   : X value smaller allowed range , X = ',DX
218            ENDIF
219         ENDIF
220         WTXMAX = WTXMAX + PDFWGT
221         IF (DX.GT.XMAX) THEN
222            WXMAX = WXMAX + PDFWGT
223            IF(IFLPRT.GE.3) THEN
224               WRITE(N6,*) ' PDFLIB  : Nptype = ',NPTYPE,',   Ngroup = ',
225      +                 NGROUP,',   Nset = ',NSET
226               WRITE(N6,*)
227      +        ' Error   : X value bigger  allowed range , X = ',DX
228            ENDIF
229            GOTO 100
230         ENDIF
231         WTQ2MIN = WTQ2MIN + PDFWGT
232         IF (DQ2.LT.Q2MIN) THEN
233            WQ2MIN = WQ2MIN + PDFWGT
234            IF(IFLPRT.GE.3) THEN
235               WRITE(N6,*) ' PDFLIB  : Nptype = ',NPTYPE,',   Ngroup = ',
236      +                 NGROUP,',   Nset = ',NSET
237               WRITE(N6,*)
238      +      ' Error   : SCALE value smaller allowed range , Q**2 = ',DQ2
239            ENDIF
240         ENDIF
241         WTQ2MAX = WTQ2MAX + PDFWGT
242         IF (DQ2.GT.Q2MAX) THEN
243            WQ2MAX = WQ2MAX + PDFWGT
244            IF(IFLPRT.GE.3) THEN
245               WRITE(N6,*) ' PDFLIB  : Nptype = ',NPTYPE,',   Ngroup = ',
246      +                 NGROUP,',   Nset = ',NSET
247               WRITE(N6,*)
248      +       ' Error   : SCALE value bigger allowed range , Q**2 = ',DQ2
249            ENDIF
250         ENDIF
251 C
252       IF (FIRST) WRITE(N6,*) ' '
253       IF (FIRST) WRITE(N6,*) ' '
254 C Call default structure functions set
255       IF    (NPTYPE.EQ.0 .OR. NGROUP.EQ.0 .OR. NSET.EQ.0) THEN
256 C       IF (FIRST) WRITE(N6,*) 
257 C     + ' Nucleon PDFs :  GRV Set HO Structure Functions'
258 C       IF (FIRST) WRITE(N6,*) 
259 C     + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
260 C       CALL GRVHO(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
261 C       DDSEA = DUSEA
262 C       GOTO 100
263 C          IF (FIRST) WRITE(N6,*) 
264 C     + ' Nucleon PDFs :  MRS Set (G) (L255-MSb) Structure Functions'
265 C          IF (FIRST) WRITE(N6,*) 
266 C     + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
267 C       CALL SFMRSG(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
268 C          DTOP=ZEROD
269 C          GOTO 100
270           IF (FIRST) WRITE(N6,*)
271      + ' Nucleon PDFs :  MRS central-g (L300-MSb) Structure Functions'
272           IF (FIRST) WRITE(N6,*) 
273      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
274        CALL SFMRS_99A1
275      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
276           DTOP=ZEROD
277           GOTO 100
278       ENDIF
279 C Start with NUCLEON structure functions
280       IF(NPTYPE.EQ.1) THEN
281       IF(NGROUP.EQ.1) THEN
282         IF(NSET.EQ.1) THEN
283           IF (FIRST) WRITE(N6,*) 
284      + ' Nucleon PDFs :  PRIVATE Structure Functions'
285           IF (FIRST) WRITE(N6,*) 
286      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
287        CALL STRPRIV(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
288           GOTO 100
289         ELSEIF(NSET.EQ.2) THEN
290           IF (FIRST) WRITE(N6,*)
291      + ' Nucleon PDFs :  BEBC Structure Functions'
292           IF (FIRST) WRITE(N6,*) 
293      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
294           CALL STRBEBC(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DGL)
295           DDSEA = DUSEA
296           DCHM=ZEROD
297           DBOT=ZEROD
298           DTOP=ZEROD
299           GOTO 100
300         ELSEIF(NSET.EQ.3) THEN
301           IF (FIRST) WRITE(N6,*) 
302      + ' Nucleon PDFs :  OR Structure Functions'
303           IF (FIRST) WRITE(N6,*) 
304      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
305           CALL STRUCOR(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DGL)
306           DDSEA = DUSEA
307           DCHM=ZEROD
308           DBOT=ZEROD
309           DTOP=ZEROD
310           GOTO 100
311         ELSEIF(NSET.EQ.4) THEN
312           IF (FIRST) WRITE(N6,*) 
313      + ' Nucleon PDFs :  BEP Structure Functions'
314           IF (FIRST) WRITE(N6,*) 
315      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
316           CALL STRBEP(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DGL)
317           DDSEA = DUSEA
318           DCHM=ZEROD
319           DBOT=ZEROD
320           DTOP=ZEROD
321           GOTO 100
322         ELSEIF(NSET.EQ.5) THEN
323           IF (FIRST) WRITE(N6,*) 
324      + ' Nucleon PDFs :  GHR Structure Functions'
325           IF (FIRST) WRITE(N6,*) 
326      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
327           CALL STRGHR(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DGL)
328           DDSEA = DUSEA
329           DBOT=ZEROD
330           DTOP=ZEROD
331           GOTO 100
332         ELSEIF(NSET.EQ.6) THEN
333           IF (FIRST) WRITE(N6,*)
334      + ' Nucleon PDFs :  DO Set 1 Structure Functions'
335           IF (FIRST) WRITE(N6,*) 
336      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
337           CALL STRDO1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DGL)
338           DDSEA = DUSEA
339           DBOT=ZEROD
340           DTOP=ZEROD
341           GOTO 100
342         ELSEIF(NSET.EQ.7) THEN
343           IF (FIRST) WRITE(N6,*)
344      + ' Nucleon PDFs :  DO Set 2 Structure Functions'
345           IF (FIRST) WRITE(N6,*) 
346      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
347           CALL STRDO2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DGL)
348           DDSEA = DUSEA
349           DBOT=ZEROD
350           DTOP=ZEROD
351           GOTO 100
352         ELSEIF(NSET.EQ.8) THEN
353           IF (FIRST) WRITE(N6,*)
354      + ' Nucleon PDFs :  EHLQ Set 1 Structure Functions'
355           IF (FIRST) WRITE(N6,*) 
356      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
357           CALL SFEHLQ1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
358           DDSEA = DUSEA
359           GOTO 100
360         ELSEIF(NSET.EQ.9) THEN
361           IF (FIRST) WRITE(N6,*)
362      + ' Nucleon PDFs :  EHLQ Set 2 Structure Functions'
363           IF (FIRST) WRITE(N6,*) 
364      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
365           CALL SFEHLQ2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
366           DDSEA = DUSEA
367           GOTO 100
368         ELSEIF(NSET.EQ.10) THEN
369           IF (FIRST) WRITE(N6,*) 
370      + ' Nucleon PDFs :  New DO Set 1.1 Structure Functions'
371           IF (FIRST) WRITE(N6,*) 
372      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
373           CALL NEWDO1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DGL)
374           DDSEA = DUSEA
375           DBOT=ZEROD
376           DTOP=ZEROD
377           GOTO 100
378         ELSEIF(NSET.GE.11) THEN
379           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
380      +             ',   Nset = ',NSET,
381      +             ',   Structure Functions not yet exsistent'
382           STOP
383         ENDIF
384       ELSEIF(NGROUP.EQ.2) THEN
385         IF(NSET.EQ.1) THEN
386           IF (FIRST) WRITE(N6,*) 
387      + ' Nucleon PDFs :  DFLMsoft (Valence) Structure Functions'
388           IF (FIRST) WRITE(N6,*) 
389      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
390           CALL DFLM4(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
391           DDSEA = DUSEA
392           GOTO 100
393         ELSEIF(NSET.EQ.2) THEN
394           IF (FIRST) WRITE(N6,*) 
395      + ' Nucleon PDFs :  DFLMhard (Valence) Structure Functions'
396           IF (FIRST) WRITE(N6,*) 
397      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
398           CALL DFLM5(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
399           DDSEA = DUSEA
400           GOTO 100
401         ELSEIF(NSET.EQ.3) THEN
402           IF (FIRST) WRITE(N6,*) 
403      + ' Nucleon PDFs :  DFLMsoft (Gluon) Structure Functions'
404           IF (FIRST) WRITE(N6,*) 
405      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
406           CALL DFLM6(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
407           DDSEA = DUSEA
408           GOTO 100
409         ELSEIF(NSET.EQ.4) THEN
410           IF (FIRST) WRITE(N6,*) 
411      + ' Nucleon PDFs :  DFLMhard (Gluon) Structure Functions'
412           IF (FIRST) WRITE(N6,*) 
413      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
414           CALL DFLM7(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
415           DDSEA = DUSEA
416           GOTO 100
417         ELSEIF(NSET.EQ.5) THEN
418           IF (FIRST) WRITE(N6,*) 
419      + ' Nucleon PDFs :  DFLMaverage (LO) Structure Functions'
420           IF (FIRST) WRITE(N6,*) 
421      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
422           CALL DFLM8(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
423           DDSEA = DUSEA
424           GOTO 100
425         ELSEIF(NSET.EQ.6) THEN
426           IF (FIRST) WRITE(N6,*) 
427      + ' Nucleon PDFs :  DFLMaverage (DIS) Structure Functions'
428           IF (FIRST) WRITE(N6,*) 
429      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
430           CALL DFLM9(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
431           DDSEA = DUSEA
432           GOTO 100
433         ELSEIF(NSET.EQ.7) THEN
434           IF (FIRST) WRITE(N6,*) 
435      + ' Nucleon PDFs :  DFLM160 (DIS) Structure Functions'
436           IF (FIRST) WRITE(N6,*) 
437      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
438           CALL DFLM1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
439           DDSEA = DUSEA
440           GOTO 100
441         ELSEIF(NSET.EQ.8) THEN
442           IF (FIRST) WRITE(N6,*) 
443      + ' Nucleon PDFs :  DFLM260 (DIS) Structure Functions'
444           IF (FIRST) WRITE(N6,*) 
445      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
446           CALL DFLM2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
447           DDSEA = DUSEA
448           GOTO 100
449         ELSEIF(NSET.EQ.9) THEN
450           IF (FIRST) WRITE(N6,*) 
451      + ' Nucleon PDFs :  DFLM360 (DIS) Structure Functions'
452           IF (FIRST) WRITE(N6,*) 
453      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
454           CALL DFLM3(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
455           DDSEA = DUSEA
456           GOTO 100
457         ELSEIF(NSET.GE.10) THEN
458           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
459      +             ',   Nset = ',NSET,
460      +             ',   Structure Functions not yet exsistent'
461           STOP
462         ENDIF
463       ELSEIF(NGROUP.EQ.3) THEN
464         IF(NSET.EQ.1) THEN
465           IF (FIRST) WRITE(N6,*) 
466      + ' Nucleon PDFs :  MRS Set 1 (MSb) Structure Functions'
467           IF (FIRST) WRITE(N6,*) 
468      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
469           CALL STRMRS1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
470           DDSEA = DUSEA
471           DTOP=ZEROD
472           GOTO 100
473         ELSEIF(NSET.EQ.2) THEN
474           IF (FIRST) WRITE(N6,*) 
475      + ' Nucleon PDFs :  MRS Set 2 (MSb) Structure Functions'
476           IF (FIRST) WRITE(N6,*) 
477      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
478           CALL STRMRS2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
479           DDSEA = DUSEA
480           DTOP=ZEROD
481           GOTO 100
482         ELSEIF(NSET.EQ.3) THEN
483           IF (FIRST) WRITE(N6,*) 
484      + ' Nucleon PDFs :  MRS Set 3 (MSb) Structure Functions'
485           IF (FIRST) WRITE(N6,*) 
486      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
487           CALL STRMRS3(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
488           DDSEA = DUSEA
489           DTOP=ZEROD
490           GOTO 100
491         ELSEIF(NSET.EQ.4) THEN
492           IF (FIRST) WRITE(N6,*) 
493      + ' Nucleon PDFs :  MRS Set E Structure Functions'
494           IF (FIRST) WRITE(N6,*) 
495      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
496           CALL STRUCE(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
497           DDSEA = DUSEA
498           DTOP=ZEROD
499           GOTO 100
500         ELSEIF(NSET.EQ.5) THEN
501           IF (FIRST) WRITE(N6,*) 
502      + ' Nucleon PDFs :  MRS Set B Structure Functions'
503           IF (FIRST) WRITE(N6,*) 
504      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
505           CALL STRUCB(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
506           DDSEA = DUSEA
507           DTOP=ZEROD
508           GOTO 100
509         ELSEIF(NSET.EQ.6) THEN
510           IF (FIRST) WRITE(N6,*) 
511      + ' Nucleon PDFs :  MRS Set EP Structure Functions'
512           IF (FIRST) WRITE(N6,*) 
513      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
514           CALL STRCEP(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
515           DDSEA = DUSEA
516           DTOP=ZEROD
517           GOTO 100
518         ELSEIF(NSET.EQ.7) THEN
519           IF (FIRST) WRITE(N6,*) 
520      + ' Nucleon PDFs :  MRS Set BP Structure Functions'
521           IF (FIRST) WRITE(N6,*) 
522      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
523           CALL STRCBP(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
524           DDSEA = DUSEA
525           DTOP=ZEROD
526           GOTO 100
527         ELSEIF(NSET.EQ.8) THEN
528           IF (FIRST) WRITE(N6,*) 
529      + ' Nucleon PDFs :  HMRS1 Set E Structure Functions'
530           IF (FIRST) WRITE(N6,*) 
531      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
532           IF (FIRST) WRITE(N6,*)
533      +' Warning !!   :  in principle, set has been retracted by the auth
534      +ors !'
535           CALL STRH1E(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
536           DDSEA = DUSEA
537           DTOP=ZEROD
538           GOTO 100
539 C       ELSEIF(NSET.EQ.9) THEN
540 C         IF (FIRST) WRITE(N6,*) 
541 C     + ' Nucleon PDFs :  HMRS1 Set B Structure Functions'
542 C          IF (FIRST) WRITE(N6,*) 
543 C     + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
544 C         IF (FIRST) WRITE(N6,*)
545 C    +' Warning !!   :  in principle, set has been retracted by the auth
546 C    +ors !'
547 C         FIRST = .FALSE.
548 C         CALL STRH1B(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
549 C         DDSEA = DUSEA
550 C         DTOP=ZEROD
551 C         GOTO 100
552         ELSEIF(NSET.EQ.9) THEN
553           IF (FIRST) WRITE(N6,*) 
554      + ' Nucleon PDFs :  KMRS Set B0 (190) Structure Functions (old)'
555           IF (FIRST) WRITE(N6,*) 
556      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
557           CALL STRKB0O(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
558           DDSEA = DUSEA
559           DTOP=ZEROD
560           GOTO 100
561         ELSEIF(NSET.EQ.10) THEN
562           IF (FIRST) WRITE(N6,*) 
563      + ' Nucleon PDFs :  HMRS2 Set E Structure Functions'
564           IF (FIRST) WRITE(N6,*) 
565      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
566           CALL STRH2E(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
567           DDSEA = DUSEA
568           DTOP=ZEROD
569           GOTO 100
570         ELSEIF(NSET.EQ.11) THEN
571           IF (FIRST) WRITE(N6,*) 
572      + ' Nucleon PDFs :  HMRS2 Set B Structure Functions'
573           IF (FIRST) WRITE(N6,*) 
574      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
575           CALL STRH2B(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
576           DDSEA = DUSEA
577           DTOP=ZEROD
578           GOTO 100
579         ELSEIF(NSET.EQ.12) THEN
580           IF (FIRST) WRITE(N6,*) 
581      + ' Nucleon PDFs :  HMRS Set E+ Structure Functions'
582           IF (FIRST) WRITE(N6,*) 
583      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
584           CALL STRH3EP(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
585           DDSEA = DUSEA
586           DTOP=ZEROD
587           GOTO 100
588         ELSEIF(NSET.EQ.13) THEN
589           IF (FIRST) WRITE(N6,*) 
590      + ' Nucleon PDFs :  HMRS Set E- Structure Functions'
591           IF (FIRST) WRITE(N6,*) 
592      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
593           CALL STRH3EM(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
594           DDSEA = DUSEA
595           DTOP=ZEROD
596           GOTO 100
597         ELSEIF(NSET.EQ.14) THEN
598           IF (FIRST) WRITE(N6,*) 
599      + ' Nucleon PDFs :  HMRS Set E Structure Functions'
600           IF (FIRST) WRITE(N6,*) 
601      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
602           CALL STRH3E(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
603           DDSEA = DUSEA
604           DTOP=ZEROD
605           GOTO 100
606         ELSEIF(NSET.EQ.15) THEN
607           IF (FIRST) WRITE(N6,*) 
608      + ' Nucleon PDFs :  HMRS Set B (190) Structure Functions'
609           IF (FIRST) WRITE(N6,*) 
610      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
611           CALL STRH3B(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
612           DDSEA = DUSEA
613           DTOP=ZEROD
614           GOTO 100
615         ELSEIF(NSET.EQ.16) THEN
616           IF (FIRST) WRITE(N6,*) 
617      + ' Nucleon PDFs :  HMRS Set B (100) Structure Functions'
618           IF (FIRST) WRITE(N6,*) 
619      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
620           CALL STRH3B1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
621           DDSEA = DUSEA
622           DTOP=ZEROD
623           GOTO 100
624         ELSEIF(NSET.EQ.17) THEN
625           IF (FIRST) WRITE(N6,*) 
626      + ' Nucleon PDFs :  HMRS Set B (300) Structure Functions'
627           IF (FIRST) WRITE(N6,*) 
628      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
629           CALL STRH3B3(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
630           DDSEA = DUSEA
631           DTOP=ZEROD
632           GOTO 100
633         ELSEIF(NSET.EQ.18) THEN
634           IF (FIRST) WRITE(N6,*) 
635      + ' Nucleon PDFs :  KMRS Set B- Structure Functions'
636           IF (FIRST) WRITE(N6,*) 
637      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
638           CALL STRKBM(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
639           DDSEA = DUSEA
640           DTOP=ZEROD
641           GOTO 100
642         ELSEIF(NSET.EQ.19) THEN
643           IF (FIRST) WRITE(N6,*) 
644      + ' Nucleon PDFs :  KMRS Set B--R2-SH Structure Functions'
645           IF (FIRST) WRITE(N6,*) 
646      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
647           CALL SFKBMR2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
648           DDSEA = DUSEA
649           DTOP=ZEROD
650           GOTO 100
651         ELSEIF(NSET.EQ.20) THEN
652           IF (FIRST) WRITE(N6,*) 
653      + ' Nucleon PDFs :  KMRS Set B--R5-SH Structure Functions'
654           IF (FIRST) WRITE(N6,*) 
655      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
656           CALL SFKBMR5(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
657           DDSEA = DUSEA
658           DTOP=ZEROD
659           GOTO 100
660         ELSEIF(NSET.EQ.21) THEN
661           IF (FIRST) WRITE(N6,*) 
662      + ' Nucleon PDFs :  KMRS Set B0 (190) updated Structure Functions'
663           IF (FIRST) WRITE(N6,*) 
664      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
665           CALL STRKB0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
666           DTOP=ZEROD
667           GOTO 100
668         ELSEIF(NSET.EQ.22) THEN
669           IF (FIRST) WRITE(N6,*) 
670      + ' Nucleon PDFs :  MRS Set B0 (L135) Structure Functions'
671           IF (FIRST) WRITE(N6,*) 
672      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
673           CALL STRKB02(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
674           DDSEA = DUSEA
675           DTOP=ZEROD
676           GOTO 100
677         ELSEIF(NSET.EQ.23) THEN
678           IF (FIRST) WRITE(N6,*) 
679      + ' Nucleon PDFs :  MRS Set B0 (L160) Structure Functions'
680           IF (FIRST) WRITE(N6,*) 
681      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
682           CALL STRKB03(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
683           DDSEA = DUSEA
684           DTOP=ZEROD
685           GOTO 100
686         ELSEIF(NSET.EQ.24) THEN
687           IF (FIRST) WRITE(N6,*) 
688      + ' Nucleon PDFs :  MRS Set B0 (L200) Structure Functions'
689           IF (FIRST) WRITE(N6,*) 
690      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
691           CALL STRKB04(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
692           DDSEA = DUSEA
693           DTOP=ZEROD
694           GOTO 100
695         ELSEIF(NSET.EQ.25) THEN
696           IF (FIRST) WRITE(N6,*) 
697      + ' Nucleon PDFs :  MRS Set B0 (L235) Structure Functions'
698           IF (FIRST) WRITE(N6,*) 
699      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
700           CALL STRKB05(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
701           DDSEA = DUSEA
702           DTOP=ZEROD
703           GOTO 100
704         ELSEIF(NSET.EQ.26) THEN
705           IF (FIRST) WRITE(N6,*) 
706      + ' Nucleon PDFs :  MRS Set S0 (L215) Structure Functions'
707           IF (FIRST) WRITE(N6,*) 
708      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
709           IF (FIRST) WRITE(N6,*)
710      +' Warning !!   :  in principle, set has been retracted by the auth
711      +ors !'
712           CALL SFMRSS0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
713           DTOP=ZEROD
714           GOTO 100
715         ELSEIF(NSET.EQ.27) THEN
716           IF (FIRST) WRITE(N6,*) 
717      + ' Nucleon PDFs :  MRS Set D0 (L215) Structure Functions'
718           IF (FIRST) WRITE(N6,*) 
719      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
720           IF (FIRST) WRITE(N6,*)
721      +' Warning !!   :  in principle, set has been retracted by the auth
722      +ors !'
723           CALL SFMRSD0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
724           DTOP=ZEROD
725           GOTO 100
726         ELSEIF(NSET.EQ.28) THEN
727           IF (FIRST) WRITE(N6,*) 
728      + ' Nucleon PDFs :  MRS Set D- (L215) Structure Functions'
729           IF (FIRST) WRITE(N6,*) 
730      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
731           IF (FIRST) WRITE(N6,*)
732      +' Warning !!   :  in principle, set has been retracted by the auth
733      +ors !'
734           CALL SFMRSDM(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
735           DTOP=ZEROD
736           GOTO 100
737         ELSEIF(NSET.EQ.29) THEN
738           IF (FIRST) WRITE(N6,*) 
739      + ' Nucleon PDFs :  MRS Set S0p (L230-MSb) Structure Functions'
740           IF (FIRST) WRITE(N6,*) 
741      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
742           CALL SFMSBS0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
743           DTOP=ZEROD
744           GOTO 100
745         ELSEIF(NSET.EQ.30) THEN
746           IF (FIRST) WRITE(N6,*) 
747      + ' Nucleon PDFs :  MRS Set D0p (L230-MSb) Structure Functions'
748           IF (FIRST) WRITE(N6,*) 
749      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
750           CALL SFMSBD0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
751           DTOP=ZEROD
752           GOTO 100
753         ELSEIF(NSET.EQ.31) THEN
754           IF (FIRST) WRITE(N6,*) 
755      + ' Nucleon PDFs :  MRS Set D-p (L230-MSb) Structure Functions'
756           IF (FIRST) WRITE(N6,*) 
757      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
758           CALL SFMSBDM(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
759           DTOP=ZEROD
760           GOTO 100
761         ELSEIF(NSET.EQ.32) THEN
762           IF (FIRST) WRITE(N6,*) 
763      + ' Nucleon PDFs :  MRS Set S0p (L230-DIS) Structure Functions'
764           IF (FIRST) WRITE(N6,*) 
765      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
766           CALL SFDISS0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
767           DTOP=ZEROD
768           GOTO 100
769         ELSEIF(NSET.EQ.33) THEN
770           IF (FIRST) WRITE(N6,*) 
771      + ' Nucleon PDFs :  MRS Set D0p (L230-DIS) Structure Functions'
772           IF (FIRST) WRITE(N6,*) 
773      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
774           CALL SFDISD0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
775           DTOP=ZEROD
776           GOTO 100
777         ELSEIF(NSET.EQ.34) THEN
778           IF (FIRST) WRITE(N6,*) 
779      + ' Nucleon PDFs :  MRS Set D-p (L230-DIS) Structure Functions'
780           IF (FIRST) WRITE(N6,*) 
781      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
782           CALL SFDISDM(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
783           DTOP=ZEROD
784           GOTO 100
785         ELSEIF(NSET.EQ.35) THEN
786           IF (FIRST) WRITE(N6,*) 
787      + ' Nucleon PDFs :  MRS Set (H) (L230-MSb) Structure Functions'
788           IF (FIRST) WRITE(N6,*) 
789      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
790           CALL SFMSBH(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
791           DTOP=ZEROD
792           GOTO 100
793         ELSEIF(NSET.EQ.36) THEN
794           IF (FIRST) WRITE(N6,*) 
795      + ' Nucleon PDFs :  MRS Set (H) (L230-DIS) Structure Functions'
796           IF (FIRST) WRITE(N6,*) 
797      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
798           CALL SFDISH(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
799           DTOP=ZEROD
800           GOTO 100
801         ELSEIF(NSET.EQ.37) THEN
802           IF (FIRST) WRITE(N6,*) 
803      + ' Nucleon PDFs :  MRS Set (A) (L230-MSb) Structure Functions'
804           IF (FIRST) WRITE(N6,*) 
805      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
806           CALL SFMSBA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
807           DTOP=ZEROD
808           GOTO 100
809         ELSEIF(NSET.EQ.38) THEN
810           IF (FIRST) WRITE(N6,*) 
811      + ' Nucleon PDFs :  MRS Fit (A) (L230-MSb) Structure Functions'
812           IF (FIRST) WRITE(N6,*) 
813      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
814           CALL SFMSFA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
815           DTOP=ZEROD
816           GOTO 100
817         ELSEIF(NSET.EQ.39) THEN
818           IF (FIRST) WRITE(N6,*) 
819      + ' Nucleon PDFs :  MRS Set (Ap) (L231-MSb) Structure Functions'
820           IF (FIRST) WRITE(N6,*) 
821      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
822           CALL SFMSAP(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
823           DTOP=ZEROD
824           GOTO 100
825         ELSEIF(NSET.EQ.40) THEN
826           IF (FIRST) WRITE(N6,*) 
827      + ' Nucleon PDFs :  MRS Fit (Ap) (L231-MSb) Structure Functions'
828           IF (FIRST) WRITE(N6,*) 
829      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
830           CALL SFMFAP(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
831           DTOP=ZEROD
832           GOTO 100
833         ELSEIF(NSET.EQ.41) THEN
834           IF (FIRST) WRITE(N6,*) 
835      + ' Nucleon PDFs :  MRS Set (G) (L255-MSb) Structure Functions'
836           IF (FIRST) WRITE(N6,*) 
837      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
838           CALL SFMRSG(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
839           DTOP=ZEROD
840           GOTO 100
841         ELSEIF(NSET.EQ.42) THEN
842           IF (FIRST) WRITE(N6,*) 
843      + ' Nucleon PDFs :  MRS Fit (G) (L255-MSb) Structure Functions'
844           IF (FIRST) WRITE(N6,*) 
845      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
846           CALL SFMSFG(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
847           DTOP=ZEROD
848           GOTO 100
849         ELSEIF(NSET.EQ.43) THEN
850           IF (FIRST) WRITE(N6,*) 
851      + ' Nucleon PDFs :  MRS Set (A) (L230-MSb) and low Q**2 Structure F
852      +unctions'
853           IF (FIRST) WRITE(N6,*) 
854      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
855           IF(DQ2.GT.5.D0)
856      +    CALL SFMSBA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
857           IF(DQ2.LE.5.D0)
858      +    CALL SFMSQA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
859           DTOP=ZEROD
860           GOTO 100
861         ELSEIF(NSET.EQ.44) THEN
862           IF (FIRST) WRITE(N6,*) 
863      + ' Nucleon PDFs :  MRS Set (A) (L230-DIS) and low Q**2 Structure F
864      +unctions'
865           IF (FIRST) WRITE(N6,*) 
866      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
867           IF(DQ2.GT.5.D0)
868      +    CALL SFDISA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
869           IF(DQ2.LE.5.D0)
870      +    CALL SFDSQA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
871           DTOP=ZEROD
872           GOTO 100
873         ELSEIF(NSET.EQ.45) THEN
874           IF (FIRST) WRITE(N6,*) 
875      + ' Nucleon PDFs :  MRS Set (Ap) (L150-MSb) Structure Functions'
876           IF (FIRST) WRITE(N6,*) 
877      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
878           CALL SFMS105(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
879           DTOP=ZEROD
880           GOTO 100
881         ELSEIF(NSET.EQ.46) THEN
882           IF (FIRST) WRITE(N6,*) 
883      + ' Nucleon PDFs :  MRS Set (Ap) (L201-MSb) Structure Functions'
884           IF (FIRST) WRITE(N6,*) 
885      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
886           CALL SFMS110(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
887           DTOP=ZEROD
888           GOTO 100
889         ELSEIF(NSET.EQ.47) THEN
890           IF (FIRST) WRITE(N6,*) 
891      + ' Nucleon PDFs :  MRS Set (Ap) (L266-MSb) Structure Functions'
892           IF (FIRST) WRITE(N6,*) 
893      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
894           CALL SFMS115(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
895           DTOP=ZEROD
896           GOTO 100
897         ELSEIF(NSET.EQ.48) THEN
898           IF (FIRST) WRITE(N6,*) 
899      + ' Nucleon PDFs :  MRS Set (Ap) (L344-MSb) Structure Functions'
900           IF (FIRST) WRITE(N6,*) 
901      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
902           CALL SFMS120(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
903           DTOP=ZEROD
904           GOTO 100
905         ELSEIF(NSET.EQ.49) THEN
906           IF (FIRST) WRITE(N6,*) 
907      + ' Nucleon PDFs :  MRS Set (Ap) (L435-MSb) Structure Functions'
908           IF (FIRST) WRITE(N6,*) 
909      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
910           CALL SFMS125(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
911           DTOP=ZEROD
912           GOTO 100
913         ELSEIF(NSET.EQ.50) THEN
914           IF (FIRST) WRITE(N6,*) 
915      + ' Nucleon PDFs :  MRS Set (Ap) (L542-MSb) Structure Functions'
916           IF (FIRST) WRITE(N6,*) 
917      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
918           CALL SFMS130(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
919           DTOP=ZEROD
920           GOTO 100
921         ELSEIF(NSET.EQ.51) THEN
922           IF (FIRST) WRITE(N6,*) 
923      + ' Nucleon PDFs :  MRS Set (J) (L344-MSb) Structure Functions'
924           IF (FIRST) WRITE(N6,*) 
925      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
926           CALL SFMRSJ(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
927           DTOP=ZEROD
928           GOTO 100
929         ELSEIF(NSET.EQ.52) THEN
930           IF (FIRST) WRITE(N6,*) 
931      + ' Nucleon PDFs :  MRS Set (Jp) (L507-MSb) Structure Functions'
932           IF (FIRST) WRITE(N6,*) 
933      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
934           CALL SFMSJP(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
935           DTOP=ZEROD
936           GOTO 100
937         ELSEIF(NSET.EQ.53) THEN
938           IF (FIRST) WRITE(N6,*) 
939      + ' Nucleon PDFs :  MRS Set (R1) (L241-MSb) Structure Functions'
940           IF (FIRST) WRITE(N6,*) 
941      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
942           CALL SFMSR1(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
943           DTOP=ZEROD
944           GOTO 100
945         ELSEIF(NSET.EQ.54) THEN
946           IF (FIRST) WRITE(N6,*) 
947      + ' Nucleon PDFs :  MRS Set (R2) (L344-MSb) Structure Functions'
948           IF (FIRST) WRITE(N6,*) 
949      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
950           CALL SFMSR2(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
951           DTOP=ZEROD
952           GOTO 100
953         ELSEIF(NSET.EQ.55) THEN
954           IF (FIRST) WRITE(N6,*) 
955      + ' Nucleon PDFs :  MRS Set (R3) (L241-MSb) Structure Functions'
956           IF (FIRST) WRITE(N6,*) 
957      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
958           CALL SFMSR3(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
959           DTOP=ZEROD
960           GOTO 100
961         ELSEIF(NSET.EQ.56) THEN
962           IF (FIRST) WRITE(N6,*) 
963      + ' Nucleon PDFs :  MRS Set (R4) (L344-MSb) Structure Functions'
964           IF (FIRST) WRITE(N6,*) 
965      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
966           CALL SFMSR4(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
967           DTOP=ZEROD
968           GOTO 100
969         ELSEIF(NSET.EQ.57) THEN
970           IF (FIRST) WRITE(N6,*) 
971      + ' Nucleon PDFs :  MRS Fit (R1) (L241-MSb) Structure Functions'
972           IF (FIRST) WRITE(N6,*) 
973      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
974           CALL SFMFR1(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
975           DTOP=ZEROD
976           GOTO 100
977         ELSEIF(NSET.EQ.58) THEN
978           IF (FIRST) WRITE(N6,*) 
979      + ' Nucleon PDFs :  MRS Fit (R2) (L344-MSb) Structure Functions'
980           IF (FIRST) WRITE(N6,*) 
981      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
982           CALL SFMFR2(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
983           DTOP=ZEROD
984           GOTO 100
985         ELSEIF(NSET.EQ.59) THEN
986           IF (FIRST) WRITE(N6,*) 
987      + ' Nucleon PDFs :  MRRS charm1 (L300-MSb) Structure Functions'
988           IF (FIRST) WRITE(N6,*) 
989      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
990           CALL SFMRSC1(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
991           DTOP=ZEROD
992           GOTO 100
993         ELSEIF(NSET.EQ.60) THEN
994           IF (FIRST) WRITE(N6,*) 
995      + ' Nucleon PDFs :  MRRS charm2 (L300-MSb) Structure Functions'
996           IF (FIRST) WRITE(N6,*) 
997      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
998           CALL SFMRSC2(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
999           DTOP=ZEROD
1000           GOTO 100
1001         ELSEIF(NSET.EQ.61) THEN
1002           IF (FIRST) WRITE(N6,*) 
1003      + ' Nucleon PDFs :  MRRS charm3 (L300-MSb) Structure Functions'
1004           IF (FIRST) WRITE(N6,*) 
1005      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1006           CALL SFMRSC3(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1007           DTOP=ZEROD
1008           GOTO 100
1009         ELSEIF(NSET.EQ.62) THEN
1010           IF (FIRST) WRITE(N6,*) 
1011      + ' Nucleon PDFs :  MRST central-g (L300-DIS) Structure Functions'
1012           IF (FIRST) WRITE(N6,*) 
1013      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1014           CALL SFMRS_98D1
1015      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1016           DTOP=ZEROD
1017           GOTO 100
1018         ELSEIF(NSET.EQ.63) THEN
1019           IF (FIRST) WRITE(N6,*) 
1020      + ' Nucleon PDFs :  MRST higher-g (L300-DIS) Structure Functions'
1021           IF (FIRST) WRITE(N6,*) 
1022      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1023           CALL SFMRS_98D2
1024      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1025           DTOP=ZEROD
1026           GOTO 100
1027         ELSEIF(NSET.EQ.64) THEN
1028           IF (FIRST) WRITE(N6,*) 
1029      + ' Nucleon PDFs :  MRST lower-g (L300-DIS) Structure Functions'
1030           IF (FIRST) WRITE(N6,*) 
1031      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1032           CALL SFMRS_98D3
1033      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1034           DTOP=ZEROD
1035           GOTO 100
1036         ELSEIF(NSET.EQ.65) THEN
1037           IF (FIRST) WRITE(N6,*) 
1038      + ' Nucleon PDFs :  MRST lower-a_s (L229-DIS) Structure Functions'
1039           IF (FIRST) WRITE(N6,*) 
1040      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1041           CALL SFMRS_98D4
1042      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1043           DTOP=ZEROD
1044           GOTO 100
1045         ELSEIF(NSET.EQ.66) THEN
1046           IF (FIRST) WRITE(N6,*) 
1047      + ' Nucleon PDFs :  MRST higher-a_s (L383-DIS) Structure Functions'
1048           IF (FIRST) WRITE(N6,*) 
1049      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1050           CALL SFMRS_98D5
1051      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1052           DTOP=ZEROD
1053           GOTO 100
1054         ELSEIF(NSET.EQ.67) THEN
1055           IF (FIRST) WRITE(N6,*) 
1056      + ' Nucleon PDFs :  MRST central-g (L300-MSb) Structure Functions'
1057           IF (FIRST) WRITE(N6,*) 
1058      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1059           CALL SFMRS_98A1
1060      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1061           DTOP=ZEROD
1062           GOTO 100
1063         ELSEIF(NSET.EQ.68) THEN
1064           IF (FIRST) WRITE(N6,*) 
1065      + ' Nucleon PDFs :  MRST higher-g (L300-MSb) Structure Functions'
1066           IF (FIRST) WRITE(N6,*) 
1067      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1068           CALL SFMRS_98A2
1069      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1070           DTOP=ZEROD
1071           GOTO 100
1072         ELSEIF(NSET.EQ.69) THEN
1073           IF (FIRST) WRITE(N6,*) 
1074      + ' Nucleon PDFs :  MRST lower-g (L300-MSb) Structure Functions'
1075           IF (FIRST) WRITE(N6,*) 
1076      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1077           CALL SFMRS_98A3
1078      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1079           DTOP=ZEROD
1080           GOTO 100
1081         ELSEIF(NSET.EQ.70) THEN
1082           IF (FIRST) WRITE(N6,*) 
1083      + ' Nucleon PDFs :  MRST lower-a_s (L229-MSb) Structure Functions'
1084           IF (FIRST) WRITE(N6,*) 
1085      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1086           CALL SFMRS_98A4
1087      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1088           DTOP=ZEROD
1089           GOTO 100
1090         ELSEIF(NSET.EQ.71) THEN
1091           IF (FIRST) WRITE(N6,*) 
1092      + ' Nucleon PDFs :  MRST higher-a_s (L383-MSb) Structure Functions'
1093           IF (FIRST) WRITE(N6,*) 
1094      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1095           CALL SFMRS_98A5
1096      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1097           DTOP=ZEROD
1098           GOTO 100
1099         ELSEIF(NSET.EQ.72) THEN
1100           IF (FIRST) WRITE(N6,*) 
1101      + ' Nucleon PDFs :  MRST central-g (L174-lo) Structure Functions'
1102           IF (FIRST) WRITE(N6,*) 
1103      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1104           CALL SFMRS_98LO1
1105      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1106           DTOP=ZEROD
1107           GOTO 100
1108         ELSEIF(NSET.EQ.73) THEN
1109           IF (FIRST) WRITE(N6,*) 
1110      + ' Nucleon PDFs :  MRST higher-g (L174-lo) Structure Functions'
1111           IF (FIRST) WRITE(N6,*) 
1112      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1113           CALL SFMRS_98LO2
1114      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1115           DTOP=ZEROD
1116           GOTO 100
1117         ELSEIF(NSET.EQ.74) THEN
1118           IF (FIRST) WRITE(N6,*) 
1119      + ' Nucleon PDFs :  MRST lower-g (L174-lo) Structure Functions'
1120           IF (FIRST) WRITE(N6,*) 
1121      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1122           CALL SFMRS_98LO3
1123      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1124           DTOP=ZEROD
1125           GOTO 100
1126         ELSEIF(NSET.EQ.75) THEN
1127           IF (FIRST) WRITE(N6,*) 
1128      + ' Nucleon PDFs :  MRST lower-a_s (L136-lo) Structure Functions'
1129           IF (FIRST) WRITE(N6,*) 
1130      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1131           CALL SFMRS_98LO4
1132      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1133           DTOP=ZEROD
1134           GOTO 100
1135         ELSEIF(NSET.EQ.76) THEN
1136           IF (FIRST) WRITE(N6,*) 
1137      + ' Nucleon PDFs :  MRST higher-a_s (L216-lo) Structure Functions'
1138           IF (FIRST) WRITE(N6,*) 
1139      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1140           CALL SFMRS_98LO5
1141      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1142           DTOP=ZEROD
1143           GOTO 100
1144         ELSEIF(NSET.EQ.77) THEN
1145           IF (FIRST) WRITE(N6,*) 
1146      + ' Nucleon PDFs :  MRST ht (L292.5-MSb) Structure Functions'
1147           IF (FIRST) WRITE(N6,*) 
1148      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1149           CALL SFMRS_98ht1
1150      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1151           DTOP=ZEROD
1152           GOTO 100
1153         ELSEIF(NSET.EQ.78) THEN
1154           IF (FIRST) WRITE(N6,*) 
1155      + ' Nucleon PDFs :  MRST central-g (L300-DIS) Structure Functions'
1156           IF (FIRST) WRITE(N6,*) 
1157      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1158           CALL SFMRS_99D1
1159      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1160           DTOP=ZEROD
1161           GOTO 100
1162         ELSEIF(NSET.EQ.79) THEN
1163           IF (FIRST) WRITE(N6,*) 
1164      + ' Nucleon PDFs :  MRST higher-g (L300-DIS) Structure Functions'
1165           IF (FIRST) WRITE(N6,*) 
1166      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1167           CALL SFMRS_99D2
1168      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1169           DTOP=ZEROD
1170           GOTO 100
1171         ELSEIF(NSET.EQ.80) THEN
1172           IF (FIRST) WRITE(N6,*) 
1173      + ' Nucleon PDFs :  MRST lower-g (L300-DIS) Structure Functions'
1174           IF (FIRST) WRITE(N6,*) 
1175      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1176           CALL SFMRS_99D3
1177      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1178           DTOP=ZEROD
1179           GOTO 100
1180         ELSEIF(NSET.EQ.81) THEN
1181           IF (FIRST) WRITE(N6,*) 
1182      + ' Nucleon PDFs :  MRST lower-a_s (L229-DIS) Structure Functions'
1183           IF (FIRST) WRITE(N6,*) 
1184      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1185           CALL SFMRS_99D4
1186      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1187           DTOP=ZEROD
1188           GOTO 100
1189         ELSEIF(NSET.EQ.82) THEN
1190           IF (FIRST) WRITE(N6,*) 
1191      + ' Nucleon PDFs :  MRST higher-a_s (L383-DIS) Structure Functions'
1192           IF (FIRST) WRITE(N6,*) 
1193      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1194           CALL SFMRS_99D5
1195      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1196           DTOP=ZEROD
1197           GOTO 100
1198         ELSEIF(NSET.EQ.83) THEN
1199           IF (FIRST) WRITE(N6,*) 
1200      + ' Nucleon PDFs :  MRST q-up (L303.3-DIS) Structure Functions'
1201           IF (FIRST) WRITE(N6,*) 
1202      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1203           CALL SFMRS_99D6
1204      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1205           DTOP=ZEROD
1206           GOTO 100
1207         ELSEIF(NSET.EQ.84) THEN
1208           IF (FIRST) WRITE(N6,*) 
1209      + ' Nucleon PDFs :  MRST q-down (L290.3-DIS) Structure Functions'
1210           IF (FIRST) WRITE(N6,*) 
1211      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1212           CALL SFMRS_99D7
1213      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1214           DTOP=ZEROD
1215           GOTO 100
1216         ELSEIF(NSET.EQ.85) THEN
1217           IF (FIRST) WRITE(N6,*) 
1218      + ' Nucleon PDFs :  MRST s-up (L300-DIS) Structure Functions'
1219           IF (FIRST) WRITE(N6,*) 
1220      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1221           CALL SFMRS_99D8
1222      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1223           DTOP=ZEROD
1224           GOTO 100
1225         ELSEIF(NSET.EQ.86) THEN
1226           IF (FIRST) WRITE(N6,*) 
1227      + ' Nucleon PDFs :  MRST s-down (L300-DIS) Structure Functions'
1228           IF (FIRST) WRITE(N6,*) 
1229      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1230           CALL SFMRS_99D9
1231      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1232           DTOP=ZEROD
1233           GOTO 100
1234         ELSEIF(NSET.EQ.87) THEN
1235           IF (FIRST) WRITE(N6,*) 
1236      + ' Nucleon PDFs :  MRST c-up (L300-DIS) Structure Functions'
1237           IF (FIRST) WRITE(N6,*) 
1238      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1239           CALL SFMRS_99D10
1240      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1241           DTOP=ZEROD
1242           GOTO 100
1243         ELSEIF(NSET.EQ.88) THEN
1244           IF (FIRST) WRITE(N6,*) 
1245      + ' Nucleon PDFs :  MRST c-down (L300-DIS) Structure Functions'
1246           IF (FIRST) WRITE(N6,*) 
1247      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1248           CALL SFMRS_99D11
1249      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1250           DTOP=ZEROD
1251           GOTO 100
1252         ELSEIF(NSET.EQ.89) THEN
1253           IF (FIRST) WRITE(N6,*) 
1254      + ' Nucleon PDFs :  MRST central-g (L300-MSb) Structure Functions'
1255           IF (FIRST) WRITE(N6,*) 
1256      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1257           CALL SFMRS_99A1
1258      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1259           DTOP=ZEROD
1260           GOTO 100
1261         ELSEIF(NSET.EQ.90) THEN
1262           IF (FIRST) WRITE(N6,*) 
1263      + ' Nucleon PDFs :  MRST higher-g (L300-MSb) Structure Functions'
1264           IF (FIRST) WRITE(N6,*) 
1265      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1266           CALL SFMRS_99A2
1267      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1268           DTOP=ZEROD
1269           GOTO 100
1270         ELSEIF(NSET.EQ.91) THEN
1271           IF (FIRST) WRITE(N6,*) 
1272      + ' Nucleon PDFs :  MRST lower-g (L300-MSb) Structure Functions'
1273           IF (FIRST) WRITE(N6,*) 
1274      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1275           CALL SFMRS_99A3
1276      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1277           DTOP=ZEROD
1278           GOTO 100
1279         ELSEIF(NSET.EQ.92) THEN
1280           IF (FIRST) WRITE(N6,*) 
1281      + ' Nucleon PDFs :  MRST lower-a_s (L229-MSb) Structure Functions'
1282           IF (FIRST) WRITE(N6,*) 
1283      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1284           CALL SFMRS_99A4
1285      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1286           DTOP=ZEROD
1287           GOTO 100
1288         ELSEIF(NSET.EQ.93) THEN
1289           IF (FIRST) WRITE(N6,*) 
1290      + ' Nucleon PDFs :  MRST higher-a_s (L383-MSb) Structure Functions'
1291           IF (FIRST) WRITE(N6,*) 
1292      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1293           CALL SFMRS_99A5
1294      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1295           DTOP=ZEROD
1296           GOTO 100
1297         ELSEIF(NSET.EQ.94) THEN
1298           IF (FIRST) WRITE(N6,*) 
1299      + ' Nucleon PDFs :  MRST q-up (L303.3-MSb) Structure Functions'
1300           IF (FIRST) WRITE(N6,*) 
1301      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1302           CALL SFMRS_99A6
1303      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1304           DTOP=ZEROD
1305           GOTO 100
1306         ELSEIF(NSET.EQ.95) THEN
1307           IF (FIRST) WRITE(N6,*) 
1308      + ' Nucleon PDFs :  MRST q-down (L290.3-MSb) Structure Functions'
1309           IF (FIRST) WRITE(N6,*) 
1310      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1311           CALL SFMRS_99A7
1312      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1313           DTOP=ZEROD
1314           GOTO 100
1315         ELSEIF(NSET.EQ.96) THEN
1316           IF (FIRST) WRITE(N6,*) 
1317      + ' Nucleon PDFs :  MRST s-up (L300-MSb) Structure Functions'
1318           IF (FIRST) WRITE(N6,*) 
1319      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1320           CALL SFMRS_99A8
1321      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1322           DTOP=ZEROD
1323           GOTO 100
1324         ELSEIF(NSET.EQ.97) THEN
1325           IF (FIRST) WRITE(N6,*) 
1326      + ' Nucleon PDFs :  MRST s-down (L300-MSb) Structure Functions'
1327           IF (FIRST) WRITE(N6,*) 
1328      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1329           CALL SFMRS_99A9
1330      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1331           DTOP=ZEROD
1332           GOTO 100
1333         ELSEIF(NSET.EQ.98) THEN
1334           IF (FIRST) WRITE(N6,*) 
1335      + ' Nucleon PDFs :  MRST c-up (L300-MSb) Structure Functions'
1336           IF (FIRST) WRITE(N6,*) 
1337      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1338           CALL SFMRS_99A10
1339      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1340           DTOP=ZEROD
1341           GOTO 100
1342         ELSEIF(NSET.EQ.99) THEN
1343           IF (FIRST) WRITE(N6,*) 
1344      + ' Nucleon PDFs :  MRST c-down (L300-MSb) Structure Functions'
1345           IF (FIRST) WRITE(N6,*) 
1346      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1347           CALL SFMRS_99A11
1348      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1349           DTOP=ZEROD
1350           GOTO 100
1351         ELSEIF(NSET.EQ.100) THEN
1352           IF (FIRST) WRITE(N6,*) 
1353      + ' Nucleon PDFs :  MRST larger-d/u (L300-MSb) Structure Functions'
1354           IF (FIRST) WRITE(N6,*) 
1355      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1356           CALL SFMRS_99A12
1357      +               (DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1358           DTOP=ZEROD
1359           GOTO 100
1360         ELSEIF(NSET.GE.101) THEN
1361           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1362      +             ',   Nset = ',NSET,
1363      +             ',  Structure Functions not yet exsistent'
1364           STOP
1365         ENDIF
1366       ELSEIF(NGROUP.EQ.4) THEN
1367         IF(NSET.EQ.1) THEN
1368           IF (FIRST) WRITE(N6,*) 
1369      + ' Nucleon PDFs :  MT Set S1 (DIS) Structure Functions'
1370           IF (FIRST) WRITE(N6,*) 
1371      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1372           IF (FIRST) WRITE(N6,*)
1373      +' Warning !!   :  in principle, set has been retracted by the auth
1374      +ors !'
1375         CALL SFMTU1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1376           GOTO 100
1377         ELSEIF(NSET.EQ.2) THEN
1378           IF (FIRST) WRITE(N6,*) 
1379      + ' Nucleon PDFs :  MT Set B1 (DIS) Structure Functions'
1380           IF (FIRST) WRITE(N6,*) 
1381      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1382           IF (FIRST) WRITE(N6,*)
1383      +' Warning !!   :  in principle, set has been retracted by the auth
1384      +ors !'
1385         CALL SFMTU2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1386           GOTO 100
1387         ELSEIF(NSET.EQ.3) THEN
1388           IF (FIRST) WRITE(N6,*) 
1389      + ' Nucleon PDFs :  MT Set B2 (DIS) Structure Functions'
1390           IF (FIRST) WRITE(N6,*) 
1391      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1392           IF (FIRST) WRITE(N6,*)
1393      +' Warning !!   :  in principle, set has been retracted by the auth
1394      +ors !'
1395         CALL SFMTU3(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1396           GOTO 100
1397         ELSEIF(NSET.EQ.4) THEN
1398           IF (FIRST) WRITE(N6,*) 
1399      + ' Nucleon PDFs :  MT Set E1 (DIS) Structure Functions'
1400           IF (FIRST) WRITE(N6,*) 
1401      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1402           IF (FIRST) WRITE(N6,*)
1403      +' Warning !!   :  in principle, set has been retracted by the auth
1404      +ors !'
1405         CALL SFMTU4(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1406           GOTO 100
1407         ELSEIF(NSET.EQ.5) THEN
1408           IF (FIRST) WRITE(N6,*) 
1409      + ' Nucleon PDFs :  MT Set 6 (1/2s) (DIS) Structure Functions'
1410           IF (FIRST) WRITE(N6,*) 
1411      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1412           IF (FIRST) WRITE(N6,*)
1413      +' Warning !!   :  in principle, set has been retracted by the auth
1414      +ors !'
1415         CALL SFMTU5(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1416           GOTO 100
1417         ELSEIF(NSET.EQ.6) THEN
1418           IF (FIRST) WRITE(N6,*) 
1419      + ' Nucleon PDFs :  MT Set S1 (MSb) Structure Functions'
1420           IF (FIRST) WRITE(N6,*) 
1421      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1422           IF (FIRST) WRITE(N6,*)
1423      +' Warning !!   :  in principle, set has been retracted by the auth
1424      +ors !'
1425         CALL SFMTU6(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1426           GOTO 100
1427         ELSEIF(NSET.EQ.7) THEN
1428           IF (FIRST) WRITE(N6,*) 
1429      + ' Nucleon PDFs :  MT Set B1 (MSb) Structure Functions'
1430           IF (FIRST) WRITE(N6,*) 
1431      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1432           IF (FIRST) WRITE(N6,*)
1433      +' Warning !!   :  in principle, set has been retracted by the auth
1434      +ors !'
1435         CALL SFMTU7(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1436           GOTO 100
1437         ELSEIF(NSET.EQ.8) THEN
1438           IF (FIRST) WRITE(N6,*) 
1439      + ' Nucleon PDFs :  MT Set B2 (MSb) Structure Functions'
1440           IF (FIRST) WRITE(N6,*) 
1441      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1442           IF (FIRST) WRITE(N6,*)
1443      +' Warning !!   :  in principle, set has been retracted by the auth
1444      +ors !'
1445         CALL SFMTU8(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1446           GOTO 100
1447         ELSEIF(NSET.EQ.9) THEN
1448           IF (FIRST) WRITE(N6,*) 
1449      + ' Nucleon PDFs :  MT Set E1 (MSb) Structure Functions'
1450           IF (FIRST) WRITE(N6,*) 
1451      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1452           IF (FIRST) WRITE(N6,*)
1453      +' Warning !!   :  in principle, set has been retracted by the auth
1454      +ors !'
1455         CALL SFMTU9(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1456           GOTO 100
1457         ELSEIF(NSET.EQ.10) THEN
1458           IF (FIRST) WRITE(N6,*) 
1459      + ' Nucleon PDFs :  MT Set 6 (1/2s) (MSb) Structure Functions'
1460           IF (FIRST) WRITE(N6,*) 
1461      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1462           IF (FIRST) WRITE(N6,*)
1463      +' Warning !!   :  in principle, set has been retracted by the auth
1464      +ors !'
1465         CALL SFMT10(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1466           GOTO 100
1467         ELSEIF(NSET.EQ.11) THEN
1468           IF (FIRST) WRITE(N6,*) 
1469      + ' Nucleon PDFs :  MT Set LO Structure Functions'
1470           IF (FIRST) WRITE(N6,*) 
1471      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1472           IF (FIRST) WRITE(N6,*)
1473      +' Warning !!   :  in principle, set has been retracted by the auth
1474      +ors !'
1475         CALL SFMT11(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1476           GOTO 100
1477         ELSEIF(NSET.EQ.12) THEN
1478           IF (FIRST) WRITE(N6,*) 
1479      + ' Nucleon PDFs :  CTEQ Set 1L (LO) Structure Functions'
1480           IF (FIRST) WRITE(N6,*) 
1481      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1482           IF (FIRST) WRITE(N6,*)
1483      +' Warning !!   :  in principle, set has been retracted by the auth
1484      +ors !'
1485        CALL SFCTQ11(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1486           GOTO 100
1487         ELSEIF(NSET.EQ.13) THEN
1488           IF (FIRST) WRITE(N6,*) 
1489      + ' Nucleon PDFs :  CTEQ Set 1M (MSb) Structure Functions'
1490           IF (FIRST) WRITE(N6,*) 
1491      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1492           IF (FIRST) WRITE(N6,*)
1493      +' Warning !!   :  in principle, set has been retracted by the auth
1494      +ors !'
1495        CALL SFCTQ12(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1496           GOTO 100
1497         ELSEIF(NSET.EQ.14) THEN
1498           IF (FIRST) WRITE(N6,*) 
1499      + ' Nucleon PDFs :  CTEQ Set 1MS (MSb) Structure Functions'
1500           IF (FIRST) WRITE(N6,*) 
1501      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1502           IF (FIRST) WRITE(N6,*)
1503      +' Warning !!   :  in principle, set has been retracted by the auth
1504      +ors !'
1505        CALL SFCTQ13(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1506           GOTO 100
1507         ELSEIF(NSET.EQ.15) THEN
1508           IF (FIRST) WRITE(N6,*) 
1509      + ' Nucleon PDFs :  CTEQ Set 1ML (MSb) Structure Functions'
1510           IF (FIRST) WRITE(N6,*) 
1511      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1512           IF (FIRST) WRITE(N6,*)
1513      +' Warning !!   :  in principle, set has been retracted by the auth
1514      +ors !'
1515        CALL SFCTQ14(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1516           GOTO 100
1517         ELSEIF(NSET.EQ.16) THEN
1518           IF (FIRST) WRITE(N6,*) 
1519      + ' Nucleon PDFs :  CTEQ Set 1D (DIS) Structure Functions'
1520           IF (FIRST) WRITE(N6,*) 
1521      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1522           IF (FIRST) WRITE(N6,*)
1523      +' Warning !!   :  in principle, set has been retracted by the auth
1524      +ors !'
1525        CALL SFCTQ15(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1526           GOTO 100
1527         ELSEIF(NSET.EQ.17) THEN
1528           IF (FIRST) WRITE(N6,*) 
1529      + ' Nucleon PDFs :  CTEQ Set 2L (LO) Structure Functions'
1530           IF (FIRST) WRITE(N6,*) 
1531      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1532           IF (FIRST) WRITE(N6,*)
1533      +' Warning !!   :  in principle, set has been retracted by the auth
1534      +ors !'
1535        CALL SFCTQ21(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1536           GOTO 100
1537         ELSEIF(NSET.EQ.18) THEN
1538           IF (FIRST) WRITE(N6,*) 
1539      + ' Nucleon PDFs :  CTEQ Set 2M (MSb) Structure Functions'
1540           IF (FIRST) WRITE(N6,*) 
1541      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1542           IF (FIRST) WRITE(N6,*)
1543      +' Warning !!   :  in principle, set has been retracted by the auth
1544      +ors !'
1545        CALL SFCTQ22(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1546           GOTO 100
1547         ELSEIF(NSET.EQ.19) THEN
1548           IF (FIRST) WRITE(N6,*) 
1549      + ' Nucleon PDFs :  CTEQ Set 2MS (MSb) Structure Functions'
1550           IF (FIRST) WRITE(N6,*) 
1551      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1552           IF (FIRST) WRITE(N6,*)
1553      +' Warning !!   :  in principle, set has been retracted by the auth
1554      +ors !'
1555        CALL SFCTQ23(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1556           GOTO 100
1557         ELSEIF(NSET.EQ.20) THEN
1558           IF (FIRST) WRITE(N6,*) 
1559      + ' Nucleon PDFs :  CTEQ Set 2MF (MSb) Structure Functions'
1560           IF (FIRST) WRITE(N6,*) 
1561      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1562           IF (FIRST) WRITE(N6,*)
1563      +' Warning !!   :  in principle, set has been retracted by the auth
1564      +ors !'
1565        CALL SFCTQ24(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1566           GOTO 100
1567         ELSEIF(NSET.EQ.21) THEN
1568           IF (FIRST) WRITE(N6,*) 
1569      + ' Nucleon PDFs :  CTEQ Set 2ML (MSb) Structure Functions'
1570           IF (FIRST) WRITE(N6,*) 
1571      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1572           IF (FIRST) WRITE(N6,*)
1573      +' Warning !!   :  in principle, set has been retracted by the auth
1574      +ors !'
1575        CALL SFCTQ25(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1576           GOTO 100
1577         ELSEIF(NSET.EQ.22) THEN
1578           IF (FIRST) WRITE(N6,*) 
1579      + ' Nucleon PDFs :  CTEQ Set 2D (DIS) Structure Functions'
1580           IF (FIRST) WRITE(N6,*) 
1581      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1582           IF (FIRST) WRITE(N6,*)
1583      +' Warning !!   :  in principle, set has been retracted by the auth
1584      +ors !'
1585        CALL SFCTQ26(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1586           GOTO 100
1587         ELSEIF(NSET.EQ.23) THEN
1588           IF (FIRST) WRITE(N6,*) 
1589      + ' Nucleon PDFs :  CTEQ Set 2pL (LO) Structure Functions'
1590           IF (FIRST) WRITE(N6,*) 
1591      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1592        CALL SRCTQ21(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1593           GOTO 100
1594         ELSEIF(NSET.EQ.24) THEN
1595           IF (FIRST) WRITE(N6,*) 
1596      + ' Nucleon PDFs :  CTEQ Set 2pM (MSb) Structure Functions'
1597           IF (FIRST) WRITE(N6,*) 
1598      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1599        CALL SRCTQ22(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1600           GOTO 100
1601         ELSEIF(NSET.EQ.25) THEN
1602           IF (FIRST) WRITE(N6,*) 
1603      + ' Nucleon PDFs :  CTEQ Set 2pMS (MSb) Structure Functions'
1604           IF (FIRST) WRITE(N6,*) 
1605      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1606        CALL SRCTQ23(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1607           GOTO 100
1608         ELSEIF(NSET.EQ.26) THEN
1609           IF (FIRST) WRITE(N6,*) 
1610      + ' Nucleon PDFs :  CTEQ Set 2pMF (MSb) Structure Functions'
1611           IF (FIRST) WRITE(N6,*) 
1612      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1613        CALL SRCTQ24(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1614           GOTO 100
1615         ELSEIF(NSET.EQ.27) THEN
1616           IF (FIRST) WRITE(N6,*) 
1617      + ' Nucleon PDFs :  CTEQ Set 2pML (MSb) Structure Functions'
1618           IF (FIRST) WRITE(N6,*) 
1619      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1620        CALL SRCTQ25(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1621           GOTO 100
1622         ELSEIF(NSET.EQ.28) THEN
1623           IF (FIRST) WRITE(N6,*) 
1624      + ' Nucleon PDFs :  CTEQ Set 2pD (DIS) Structure Functions'
1625           IF (FIRST) WRITE(N6,*) 
1626      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1627        CALL SRCTQ26(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1628           GOTO 100
1629         ELSEIF(NSET.EQ.29) THEN
1630           IF (FIRST) WRITE(N6,*) 
1631      + ' Nucleon PDFs :  CTEQ Set 3L (LO) Structure Functions'
1632           IF (FIRST) WRITE(N6,*) 
1633      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1634        CALL SFCTQ31(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1635           GOTO 100
1636         ELSEIF(NSET.EQ.30) THEN
1637           IF (FIRST) WRITE(N6,*) 
1638      + ' Nucleon PDFs :  CTEQ Set 3M (MSb) Structure Functions'
1639           IF (FIRST) WRITE(N6,*) 
1640      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1641        CALL SFCTQ32(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1642           GOTO 100
1643         ELSEIF(NSET.EQ.31) THEN
1644           IF (FIRST) WRITE(N6,*) 
1645      + ' Nucleon PDFs :  CTEQ Set 3D (DIS) Structure Functions'
1646           IF (FIRST) WRITE(N6,*) 
1647      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1648        CALL SFCTQ33(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1649           GOTO 100
1650         ELSEIF(NSET.EQ.32) THEN
1651           IF (FIRST) WRITE(N6,*) 
1652      + ' Nucleon PDFs :  CTEQ Set 4L (LO) Structure Functions'
1653           IF (FIRST) WRITE(N6,*) 
1654      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1655        CALL SFCTQ41(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1656           GOTO 100
1657         ELSEIF(NSET.EQ.33) THEN
1658           IF (FIRST) WRITE(N6,*) 
1659      + ' Nucleon PDFs :  CTEQ Set 4D (DIS) Structure Functions'
1660           IF (FIRST) WRITE(N6,*) 
1661      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1662        CALL SFCTQ42(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1663           GOTO 100
1664         ELSEIF(NSET.EQ.34) THEN
1665           IF (FIRST) WRITE(N6,*) 
1666      + ' Nucleon PDFs :  CTEQ Set 4M (MSb) Structure Functions'
1667           IF (FIRST) WRITE(N6,*) 
1668      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1669        CALL SFCTQ43(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1670           GOTO 100
1671         ELSEIF(NSET.EQ.35) THEN
1672           IF (FIRST) WRITE(N6,*) 
1673      + ' Nucleon PDFs :  CTEQ Set 4A1 (MSb) Structure Functions'
1674           IF (FIRST) WRITE(N6,*) 
1675      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1676        CALL SFCTQ44(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1677           GOTO 100
1678         ELSEIF(NSET.EQ.36) THEN
1679           IF (FIRST) WRITE(N6,*) 
1680      + ' Nucleon PDFs :  CTEQ Set 4A2 (MSb) Structure Functions'
1681           IF (FIRST) WRITE(N6,*) 
1682      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1683        CALL SFCTQ45(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1684           GOTO 100
1685         ELSEIF(NSET.EQ.37) THEN
1686           IF (FIRST) WRITE(N6,*) 
1687      + ' Nucleon PDFs :  CTEQ Set 4A3 (MSb) Structure Functions'
1688           IF (FIRST) WRITE(N6,*) 
1689      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1690        CALL SFCTQ43(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1691           GOTO 100
1692         ELSEIF(NSET.EQ.38) THEN
1693           IF (FIRST) WRITE(N6,*) 
1694      + ' Nucleon PDFs :  CTEQ Set 4A4 (MSb) Structure Functions'
1695           IF (FIRST) WRITE(N6,*) 
1696      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1697        CALL SFCTQ46(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1698           GOTO 100
1699         ELSEIF(NSET.EQ.39) THEN
1700           IF (FIRST) WRITE(N6,*) 
1701      + ' Nucleon PDFs :  CTEQ Set 4A5 (MSb) Structure Functions'
1702           IF (FIRST) WRITE(N6,*) 
1703      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1704        CALL SFCTQ47(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1705           GOTO 100
1706         ELSEIF(NSET.EQ.40) THEN
1707           IF (FIRST) WRITE(N6,*) 
1708      + ' Nucleon PDFs :  CTEQ Set 4HJ (MSb) Structure Functions'
1709           IF (FIRST) WRITE(N6,*) 
1710      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1711        CALL SFCTQ48(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1712           GOTO 100
1713         ELSEIF(NSET.EQ.41) THEN
1714           IF (FIRST) WRITE(N6,*) 
1715      + ' Nucleon PDFs :  CTEQ Set 4LQ (MSb) Structure Functions'
1716           IF (FIRST) WRITE(N6,*) 
1717      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1718        CALL SFCTQ49(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1719         ELSEIF(NSET.EQ.42) THEN
1720           IF (FIRST) WRITE(N6,*) 
1721      + ' Nucleon PDFs :  CTEQ Set 4HQ (MSb) Structure Functions'
1722           IF (FIRST) WRITE(N6,*) 
1723      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1724        CALL SRCTQ45(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1725         ELSEIF(NSET.EQ.43) THEN
1726           IF (FIRST) WRITE(N6,*) 
1727      + ' Nucleon PDFs :  CTEQ Set 4HQ (MSb) Structure Functions'
1728           IF (FIRST) WRITE(N6,*) 
1729      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1730        CALL SRCTQ46(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1731           GOTO 100
1732         ELSEIF(NSET.EQ.44) THEN
1733           IF (FIRST) WRITE(N6,*) 
1734      + ' Nucleon PDFs :  CTEQ Set 4F3  Structure Functions'
1735           IF (FIRST) WRITE(N6,*) 
1736      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1737        CALL SRCTQ47(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1738         ELSEIF(NSET.EQ.45) THEN
1739           IF (FIRST) WRITE(N6,*) 
1740      + ' Nucleon PDFs :  CTEQ Set 4F4  Structure Functions'
1741           IF (FIRST) WRITE(N6,*) 
1742      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1743        CALL SRCTQ48(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1744           GOTO 100
1745         ELSEIF(NSET.EQ.46) THEN
1746           IF (FIRST) WRITE(N6,*) 
1747      + ' Nucleon PDFs :  CTEQ Set 5L (LO) Structure Functions'
1748           IF (FIRST) WRITE(N6,*) 
1749      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1750        CALL SFCTQ53(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1751           GOTO 100
1752         ELSEIF(NSET.EQ.47) THEN
1753           IF (FIRST) WRITE(N6,*) 
1754      + ' Nucleon PDFs :  CTEQ Set 5D (DIS) Structure Functions'
1755           IF (FIRST) WRITE(N6,*) 
1756      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1757        CALL SFCTQ52(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1758           GOTO 100
1759         ELSEIF(NSET.EQ.48) THEN
1760           IF (FIRST) WRITE(N6,*) 
1761      + ' Nucleon PDFs :  CTEQ Set 5M (MSb) Structure Functions'
1762           IF (FIRST) WRITE(N6,*) 
1763      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1764        CALL SFCTQ51(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1765           GOTO 100
1766         ELSEIF(NSET.EQ.49) THEN
1767           IF (FIRST) WRITE(N6,*) 
1768      + ' Nucleon PDFs :  CTEQ Set 5HJ (MSb) Structure Functions'
1769           IF (FIRST) WRITE(N6,*) 
1770      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1771        CALL SFCTQ54(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1772           GOTO 100
1773         ELSEIF(NSET.EQ.50) THEN
1774           IF (FIRST) WRITE(N6,*) 
1775      + ' Nucleon PDFs :  CTEQ Set 5HQ (MSb) Structure Functions'
1776           IF (FIRST) WRITE(N6,*) 
1777      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1778        CALL SFCTQ55(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1779           GOTO 100
1780         ELSEIF(NSET.EQ.51) THEN
1781           IF (FIRST) WRITE(N6,*) 
1782      + ' Nucleon PDFs :  CTEQ Set 5F3  Structure Functions'
1783           IF (FIRST) WRITE(N6,*) 
1784      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1785        CALL SFCTQ56(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1786           GOTO 100
1787         ELSEIF(NSET.EQ.52) THEN
1788           IF (FIRST) WRITE(N6,*) 
1789      + ' Nucleon PDFs :  CTEQ Set 5F4  Structure Functions'
1790           IF (FIRST) WRITE(N6,*) 
1791      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1792        CALL SFCTQ57(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1793           GOTO 100
1794         ELSEIF(NSET.EQ.53) THEN
1795           IF (FIRST) WRITE(N6,*) 
1796      + ' Nucleon PDFs :  CTEQ Set 5M1 (MSb) Structure Functions'
1797           IF (FIRST) WRITE(N6,*) 
1798      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1799        CALL SFCTQ58(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1800           GOTO 100
1801         ELSEIF(NSET.EQ.54) THEN
1802           IF (FIRST) WRITE(N6,*) 
1803      + ' Nucleon PDFs :  CTEQ Set 5HQ1 (MSb) Structure Functions'
1804           IF (FIRST) WRITE(N6,*) 
1805      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1806        CALL SFCTQ59(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1807           GOTO 100
1808         ELSEIF(NSET.EQ.55) THEN
1809           IF (FIRST) WRITE(N6,*) 
1810      + ' Nucleon PDFs :  CTEQ Set 5L (LO) parametrized Structure Functio
1811      +ns'
1812           IF (FIRST) WRITE(N6,*) 
1813      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1814        CALL SPCTQ53(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1815           GOTO 100
1816         ELSEIF(NSET.EQ.56) THEN
1817           IF (FIRST) WRITE(N6,*) 
1818      + ' Nucleon PDFs :  CTEQ Set 5HM1 (MSb) parametrized Structure Func
1819      +tions'
1820           IF (FIRST) WRITE(N6,*) 
1821      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1822        CALL SPCTQ51(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1823           GOTO 100
1824         ELSEIF(NSET.GE.57) THEN
1825           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1826      +             ',   Nset = ',NSET,
1827      +             ',  Structure Functions not yet exsistent'
1828           STOP
1829         ENDIF
1830       ELSEIF(NGROUP.EQ.5) THEN
1831         IF(NSET.EQ.1) THEN
1832           IF (FIRST) WRITE(N6,*) 
1833      + ' Nucleon PDFs :  old GRV Set HO Structure Functions'
1834           IF (FIRST) WRITE(N6,*) 
1835      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1836           IF (FIRST) WRITE(N6,*)
1837      +' Warning !!   :  in principle, set has been retracted by the auth
1838      +ors !'
1839           CALL SFGRVH(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1840           DDSEA = DUSEA
1841           GOTO 100
1842         ELSEIF(NSET.EQ.2) THEN
1843           IF (FIRST) WRITE(N6,*) 
1844      + ' Nucleon PDFs :  old GRV Set LO Structure Functions'
1845           IF (FIRST) WRITE(N6,*) 
1846      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1847           IF (FIRST) WRITE(N6,*)
1848      +' Warning !!   :  in principle, set has been retracted by the auth
1849      +ors !'
1850           CALL SFGRVL(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1851           DDSEA = DUSEA
1852           GOTO 100
1853         ELSEIF(NSET.EQ.3) THEN
1854           IF (FIRST) WRITE(N6,*) 
1855      + ' Nucleon PDFs :  GRV Set HO Structure Functions'
1856           IF (FIRST) WRITE(N6,*) 
1857      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1858           CALL GRVHO(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1859           DDSEA = DUSEA
1860           GOTO 100
1861         ELSEIF(NSET.EQ.4) THEN
1862           IF (FIRST) WRITE(N6,*) 
1863      + ' Nucleon PDFs :  GRV Set LO Structure Functions'
1864           IF (FIRST) WRITE(N6,*) 
1865      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1866           CALL GRVLO(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1867           DDSEA = DUSEA
1868           GOTO 100
1869         ELSEIF(NSET.EQ.5) THEN
1870           IF (FIRST) WRITE(N6,*) 
1871      + ' Nucleon PDFs :  GRV-94 Set LO Structure Functions'
1872           IF (FIRST) WRITE(N6,*) 
1873      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1874           CALL GRVLO(DX,DQ,ZUPV,ZDNV,ZUSEA,ZSTR,DCHM,DBOT,DTOP,ZGL)
1875           CALL GRV94LO(DX,DQ,
1876      +                 DUPV,DDNV,DUSEA,DDSEA,DSTR,ZCHM,ZBOT,ZTOP,DGL)
1877           GOTO 100
1878         ELSEIF(NSET.EQ.6) THEN
1879           IF (FIRST) WRITE(N6,*) 
1880      + ' Nucleon PDFs :  GRV-94 Set HO (MSb) Structure Functions'
1881           IF (FIRST) WRITE(N6,*) 
1882      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1883           CALL GRVHO(DX,DQ,ZUPV,ZDNV,ZUSEA,ZSTR,DCHM,DBOT,DTOP,ZGL)
1884           CALL GRV94HO(DX,DQ,
1885      +                 DUPV,DDNV,DUSEA,DDSEA,DSTR,ZCHM,ZBOT,ZTOP,DGL)
1886           GOTO 100
1887         ELSEIF(NSET.EQ.7) THEN
1888           IF (FIRST) WRITE(N6,*) 
1889      + ' Nucleon PDFs :  GRV-94 Set HO (DIS) Structure Functions'
1890           IF (FIRST) WRITE(N6,*) 
1891      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1892           CALL GRVHO(DX,DQ,ZUPV,ZDNV,ZUSEA,ZSTR,DCHM,DBOT,DTOP,ZGL)
1893           CALL GRV94DI(DX,DQ,
1894      +                 DUPV,DDNV,DUSEA,DDSEA,DSTR,ZCHM,ZBOT,ZTOP,DGL)
1895           GOTO 100
1896         ELSEIF(NSET.EQ.8) THEN
1897           IF (FIRST) WRITE(N6,*) 
1898      + ' Nucleon PDFs :  GRSV Set LO polarized Structure Functions (stan
1899      +dard)'
1900           IF (FIRST) WRITE(N6,*) 
1901      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1902           CALL GRSVL1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1903           DDSEA = DUSEA
1904           GOTO 200
1905         ELSEIF(NSET.EQ.9) THEN
1906           IF (FIRST) WRITE(N6,*) 
1907      + ' Nucleon PDFs :  GRSV Set LO polarized Structure Functions (vale
1908      +nce)'
1909           IF (FIRST) WRITE(N6,*) 
1910      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1911           CALL GRSVL2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1912           DDSEA = DUSEA
1913           GOTO 200
1914         ELSEIF(NSET.EQ.10) THEN
1915           IF (FIRST) WRITE(N6,*) 
1916      + ' Nucleon PDFs :  GRSV Set NLO polarized Structure Functions (sta
1917      +ndard)'
1918           IF (FIRST) WRITE(N6,*) 
1919      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1920           CALL GRSVH1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1921           DDSEA = DUSEA
1922           GOTO 200
1923         ELSEIF(NSET.EQ.11) THEN
1924           IF (FIRST) WRITE(N6,*) 
1925      + ' Nucleon PDFs :  GRSV Set NLO polarized Structure Functions (val
1926      +ence)'
1927           IF (FIRST) WRITE(N6,*) 
1928      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1929           CALL GRSVH2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1930           DDSEA = DUSEA
1931           GOTO 200
1932         ELSEIF(NSET.EQ.12) THEN
1933           IF (FIRST) WRITE(N6,*) 
1934      + ' Nucleon PDFs :  GRV98 Set LO Structure Functions'
1935           IF (FIRST) WRITE(N6,*) 
1936      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1937           CALL GRV98_lo
1938      +         (DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1939           GOTO 100
1940         ELSEIF(NSET.EQ.13) THEN
1941           IF (FIRST) WRITE(N6,*) 
1942      + ' Nucleon PDFs :  GRV98 Set nlm (MSb) Structure Functions'
1943           IF (FIRST) WRITE(N6,*) 
1944      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1945           CALL GRV98_nlm
1946      +         (DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1947           GOTO 100
1948         ELSEIF(NSET.EQ.14) THEN
1949           IF (FIRST) WRITE(N6,*) 
1950      + ' Nucleon PDFs :  GRV98 Set nld (DIS) Structure Functions'
1951           IF (FIRST) WRITE(N6,*) 
1952      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1953           CALL GRV98_nld
1954      +         (DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1955           GOTO 100
1956         ELSEIF(NSET.GE.15) THEN
1957           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1958      +             ',   Nset = ',NSET,
1959      +             ',  Structure Functions not yet exsistent'
1960           STOP
1961         ENDIF
1962       ELSEIF(NGROUP.EQ.6) THEN
1963         IF(NSET.EQ.1) THEN
1964           IF (FIRST) WRITE(N6,*) 
1965      + ' Nucleon PDFs :  ABFOW Structure Functions'
1966           IF (FIRST) WRITE(N6,*) 
1967      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1968           CALL SFABFOW(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1969           DBOT=ZEROD
1970           DTOP=ZEROD
1971           GOTO 100
1972         ELSEIF(NSET.GE.2) THEN
1973           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1974      +             ',   Nset = ',NSET,
1975      +             ',  Structure Functions not yet exsistent'
1976           STOP
1977         ENDIF
1978       ELSEIF(NGROUP.EQ.7) THEN
1979         IF(NSET.EQ.1) THEN
1980           IF (FIRST) WRITE(N6,*) 
1981      + ' Nucleon PDFs :  BM Set A Structure Functions'
1982           IF (FIRST) WRITE(N6,*) 
1983      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1984           CALL SFBMA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1985           DTOP=ZEROD
1986           GOTO 100
1987         ELSEIF(NSET.EQ.2) THEN
1988           IF (FIRST) WRITE(N6,*) 
1989      + ' Nucleon PDFs :  BM Set B Structure Functions'
1990           IF (FIRST) WRITE(N6,*) 
1991      + '                 Ngroup = ',NGROUP,',   Nset = ',NSET
1992           CALL SFBMB(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1993           DTOP=ZEROD
1994           GOTO 100
1995         ELSEIF(NSET.GE.3) THEN
1996           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1997      +             ',   Nset = ',NSET,
1998      +             ',  Structure Functions not yet exsistent'
1999           STOP
2000         ENDIF
2001       ELSE
2002         WRITE(N6,*)' NUCLEON Structure function call for unknown GROUP '
2003      +  ,NGROUP,',   and unknown NSET ',NSET
2004         STOP
2005       ENDIF
2006       ENDIF
2007 C Now start PION structure functions
2008       IF(NPTYPE.EQ.2) THEN
2009       IF(NGROUP.EQ.1) THEN
2010         IF(NSET.EQ.1) THEN
2011           IF (FIRST) WRITE(N6,*) 
2012      + ' Pion PDFs :  OW-P Set 1 Structure Functions'
2013           IF (FIRST) WRITE(N6,*) 
2014      + '              Ngroup = ',NGROUP,',   Nset = ',NSET
2015           CALL STROWP1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DGL)
2016           DDSEA = DUSEA
2017           DBOT=ZEROD
2018           DTOP=ZEROD
2019           GOTO 100
2020         ELSEIF(NSET.EQ.2) THEN
2021           IF (FIRST) WRITE(N6,*) 
2022      + ' Pion PDFs :  OW-P Set 2 Structure Functions'
2023           IF (FIRST) WRITE(N6,*) 
2024      + '              Ngroup = ',NGROUP,',   Nset = ',NSET
2025           CALL STROWP2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DGL)
2026           DDSEA = DUSEA
2027           DBOT=ZEROD
2028           DTOP=ZEROD
2029           GOTO 100
2030         ELSEIF(NSET.GE.3) THEN
2031           WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
2032      +             ',   Nset = ',NSET,
2033      +             ',  Structure Functions not yet exsistent'
2034           STOP
2035         ENDIF
2036       ELSEIF(NGROUP.EQ.2) THEN
2037         WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
2038      +             ',   Nset = ',NSET,
2039      +             ',  Structure Functions not yet exsistent'
2040         STOP
2041       ELSEIF(NGROUP.EQ.3) THEN
2042         IF(NSET.EQ.1) THEN
2043           IF (FIRST) WRITE(N6,*) 
2044      + ' Pion PDFs :  SMRS-P Set 1 Structure Functions'
2045           IF (FIRST) WRITE(N6,*) 
2046      + '              Ngroup = ',NGROUP,',   Nset = ',NSET
2047           CALL SMRSP31(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
2048           DDSEA = DUSEA
2049           DTOP=ZEROD
2050           GOTO 100
2051         ELSEIF(NSET.EQ.2) THEN
2052           IF (FIRST) WRITE(N6,*) 
2053      + ' Pion PDFs :  SMRS-P Set 2 Structure Functions'
2054           IF (FIRST) WRITE(N6,*) 
2055      + '              Ngroup = ',NGROUP,',   Nset = ',NSET
2056           CALL SMRSP32(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
2057           DDSEA = DUSEA
2058           DTOP=ZEROD
2059           GOTO 100
2060         ELSEIF(NSET.EQ.3) THEN
2061           IF (FIRST) WRITE(N6,*) 
2062      + ' Pion PDFs :  SMRS-P Set 3 Structure Functions'
2063           IF (FIRST) WRITE(N6,*) 
2064      + '              Ngroup = ',NGROUP,',   Nset = ',NSET
2065           CALL SMRSP33(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
2066           DDSEA = DUSEA
2067           DTOP=ZEROD
2068           GOTO 100
2069         ELSEIF(NSET.GE.4) THEN
2070           WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
2071      +             ',   Nset = ',NSET,
2072      +             ',  Structure Functions not yet exsistent'
2073           STOP
2074         ENDIF
2075       ELSEIF(NGROUP.EQ.4) THEN
2076         WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
2077      +             ',   Nset = ',NSET,
2078      +             ',  Structure Functions not yet exsistent'
2079         STOP
2080       ELSEIF(NGROUP.EQ.5) THEN
2081         IF(NSET.EQ.1) THEN
2082           IF (FIRST) WRITE(N6,*) 
2083      + ' Pion PDFs :  GRV-P Set HO Structure Functions'
2084           IF (FIRST) WRITE(N6,*) 
2085      + '              Ngroup = ',NGROUP,',   Nset = ',NSET
2086           CALL GRVPIHO(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
2087           DDSEA = DUSEA
2088           GOTO 100
2089         ELSEIF(NSET.EQ.2) THEN
2090           IF (FIRST) WRITE(N6,*) 
2091      + ' Pion PDFs :  GRV-P Set LO Structure Functions'
2092           IF (FIRST) WRITE(N6,*) 
2093      + '              Ngroup = ',NGROUP,',   Nset = ',NSET
2094           CALL GRVPILO(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
2095           DDSEA = DUSEA
2096           GOTO 100
2097         ELSEIF(NSET.GE.3) THEN
2098           WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
2099      +             ',   Nset = ',NSET,
2100      +             ',  Structure Functions not yet exsistent'
2101           STOP
2102         ENDIF
2103       ELSEIF(NGROUP.EQ.6) THEN
2104         IF(NSET.EQ.1) THEN
2105           IF (FIRST) WRITE(N6,*) 
2106      + ' Pion PDFs :  ABFKW-P Set 1 Structure Functions'
2107           IF (FIRST) WRITE(N6,*) 
2108      + '              Ngroup = ',NGROUP,',   Nset = ',NSET
2109           CALL ABFKW1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
2110           DBOT=ZEROD
2111           DTOP=ZEROD
2112           GOTO 100
2113         ELSEIF(NSET.EQ.2) THEN
2114           IF (FIRST) WRITE(N6,*) 
2115      + ' Pion PDFs :  ABFKW-P Set 2 Structure Functions'
2116           IF (FIRST) WRITE(N6,*) 
2117      + '              Ngroup = ',NGROUP,',   Nset = ',NSET
2118           CALL ABFKW2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
2119           DBOT=ZEROD
2120           DTOP=ZEROD
2121           GOTO 100
2122         ELSEIF(NSET.EQ.3) THEN
2123           IF (FIRST) WRITE(N6,*) 
2124      + ' Pion PDFs :  ABFKW-P Set 3 Structure Functions'
2125           IF (FIRST) WRITE(N6,*) 
2126      + '              Ngroup = ',NGROUP,',   Nset = ',NSET
2127           CALL ABFKW3(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
2128           DBOT=ZEROD
2129           DTOP=ZEROD
2130           GOTO 100
2131         ELSEIF(NSET.GE.4) THEN
2132           WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
2133      +             ',   Nset = ',NSET,
2134      +             ',  Structure Functions not yet exsistent'
2135           STOP
2136         ENDIF
2137       ELSE
2138         WRITE(N6,*) ' PION Structure function call for unknown GROUP ',
2139      +  NGROUP,',   and unknown NSET ',NSET
2140         STOP
2141       ENDIF
2142       ENDIF
2143 C Now start PHOTON structure functions
2144       IF(NPTYPE.EQ.3) THEN
2145       IF(NGROUP.EQ.1) THEN
2146         IF(NSET.EQ.1) THEN
2147           IF (FIRST) WRITE(N6,*) 
2148      + ' Photon PDFs :  DO-G Set LO Structure Functions'
2149           IF (FIRST) WRITE(N6,*) 
2150      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2151           CALL DOPHO1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
2152           DTOP=ZEROD
2153           GOTO 100
2154         ELSEIF(NSET.EQ.2) THEN
2155           IF (FIRST) WRITE(N6,*) 
2156      + ' Photon PDFs :  DO-G Set NLL Structure Functions'
2157           IF (FIRST) WRITE(N6,*) 
2158      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2159           CALL DOPHO2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
2160           DTOP=ZEROD
2161           GOTO 100
2162         ELSEIF(NSET.GE.3) THEN
2163           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
2164      +             ',   Nset = ',NSET,
2165      +             ',  Structure Functions not yet exsistent'
2166           STOP
2167         ENDIF
2168       ELSEIF(NGROUP.EQ.2) THEN
2169         IF(NSET.EQ.1) THEN
2170           IF (FIRST) WRITE(N6,*) 
2171      + ' Photon PDFs :  DG-G Set 1 Structure Functions'
2172           IF (FIRST) WRITE(N6,*) 
2173      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2174           CALL DGPHO1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
2175           DTOP=ZEROD
2176           GOTO 100
2177         ELSEIF(NSET.EQ.2) THEN
2178           IF (FIRST) WRITE(N6,*) 
2179      + ' Photon PDFs :  DG-G Set 2 Structure Functions'
2180           IF (FIRST) WRITE(N6,*) 
2181      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2182           CALL DGPHO2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
2183           DTOP=ZEROD
2184           GOTO 100
2185         ELSEIF(NSET.EQ.3) THEN
2186           IF (FIRST) WRITE(N6,*) 
2187      + ' Photon PDFs :  DG-G Set 3 Structure Functions'
2188           IF (FIRST) WRITE(N6,*) 
2189      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2190           CALL DGPHO3(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
2191           DBOT=ZEROD
2192           DTOP=ZEROD
2193           GOTO 100
2194         ELSEIF(NSET.EQ.4) THEN
2195           IF (FIRST) WRITE(N6,*) 
2196      + ' Photon PDFs :  DG-G Set 4 Structure Functions'
2197           IF (FIRST) WRITE(N6,*) 
2198      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2199           CALL DGPHO4(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
2200           DBOT=ZEROD
2201           DTOP=ZEROD
2202           GOTO 100
2203         ELSEIF(NSET.GE.5) THEN
2204           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
2205      +             ',   Nset = ',NSET,
2206      +             ',  Structure Functions not yet exsistent'
2207           STOP
2208         ENDIF
2209       ELSEIF(NGROUP.EQ.3) THEN
2210         IF(NSET.EQ.1) THEN
2211           IF (FIRST) WRITE(N6,*) 
2212      + ' Photon PDFs :  LAC-G Set 1 Structure Functions'
2213           IF (FIRST) WRITE(N6,*) 
2214      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2215        CALL SFLACG1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
2216           GOTO 100
2217         ELSEIF(NSET.EQ.2) THEN
2218           IF (FIRST) WRITE(N6,*) 
2219      + ' Photon PDFs :  LAC-G Set 2 Structure Functions'
2220           IF (FIRST) WRITE(N6,*) 
2221      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2222        CALL SFLACG2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
2223           GOTO 100
2224         ELSEIF(NSET.EQ.3) THEN
2225           IF (FIRST) WRITE(N6,*) 
2226      + ' Photon PDFs :  LAC-G Set 3 Structure Functions'
2227           IF (FIRST) WRITE(N6,*) 
2228      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2229        CALL SFLACG3(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
2230           GOTO 100
2231         ELSEIF(NSET.EQ.4) THEN
2232           IF (FIRST) WRITE(N6,*) 
2233      + ' Photon PDFs :  GAL-G Structure Functions'
2234           IF (FIRST) WRITE(N6,*) 
2235      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2236        CALL SFGAL(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
2237           GOTO 100
2238       ELSEIF(NSET.GE.5) THEN
2239           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
2240      +             ',   Nset = ',NSET,
2241      +             ',  Structure Functions not yet exsistent'
2242           STOP
2243         ENDIF
2244       ELSEIF(NGROUP.EQ.4) THEN
2245         IF(NSET.EQ.1) THEN
2246           IF (FIRST) WRITE(N6,*) 
2247      + ' Photon PDFs :  GS-G Set HO Structure Functions'
2248           IF (FIRST) WRITE(N6,*) 
2249      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2250           CALL SFGSHO(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
2251           DTOP=ZEROD
2252           GOTO 100
2253         ELSEIF(NSET.EQ.2) THEN
2254           IF (FIRST) WRITE(N6,*) 
2255      + ' Photon PDFs :  GS-G LO Set 1 Structure Functions'
2256           IF (FIRST) WRITE(N6,*) 
2257      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2258           CALL SFGSLO1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
2259           DTOP=ZEROD
2260           GOTO 100
2261         ELSEIF(NSET.EQ.3) THEN
2262           IF (FIRST) WRITE(N6,*) 
2263      + ' Photon PDFs :  GS-G LO Set 2 Structure Functions'
2264           IF (FIRST) WRITE(N6,*) 
2265      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2266           CALL SFGSLO2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
2267           DTOP=ZEROD
2268           GOTO 100
2269         ELSEIF(NSET.EQ.4) THEN
2270           IF (FIRST) WRITE(N6,*) 
2271      + ' Photon PDFs :  GS-96-G HO Structure Functions'
2272           IF (FIRST) WRITE(N6,*) 
2273      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2274           CALL GS96HO(DX,DQ,DUPV,DDNV,DSTR,DCHM,DBOT,DGL)
2275           DUSEA=DUPV
2276           DDSEA=DDNV
2277           DTOP=ZEROD
2278           GOTO 100
2279         ELSEIF(NSET.EQ.5) THEN
2280           IF (FIRST) WRITE(N6,*) 
2281      + ' Photon PDFs :  GS-96-G LO Structure Functions'
2282           IF (FIRST) WRITE(N6,*) 
2283      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2284           CALL GS96LO(DX,DQ,DUPV,DDNV,DSTR,DCHM,DBOT,DGL)
2285           DUSEA=DUPV
2286           DDSEA=DDNV
2287           DTOP=ZEROD
2288           GOTO 100
2289         ELSEIF(NSET.GE.6) THEN
2290           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
2291      +             ',   Nset = ',NSET,
2292      +             ',  Structure Functions not yet exsistent'
2293           STOP
2294         ENDIF
2295       ELSEIF(NGROUP.EQ.5) THEN
2296         IF(NSET.EQ.1) THEN
2297           IF (FIRST) WRITE(N6,*) 
2298      + ' Photon PDFs :  GRV-G Set L-HO Structure Functions'
2299           IF (FIRST) WRITE(N6,*) 
2300      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2301           CALL GRVGAH0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
2302           DTOP=ZEROD
2303           GOTO 100
2304         ELSEIF(NSET.EQ.2) THEN
2305           IF (FIRST) WRITE(N6,*) 
2306      + ' Photon PDFs :  GRV-G Set HO Structure Functions'
2307           IF (FIRST) WRITE(N6,*) 
2308      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2309           CALL GRVGAHO(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
2310           DTOP=ZEROD
2311           GOTO 100
2312         ELSEIF(NSET.EQ.3) THEN
2313           IF (FIRST) WRITE(N6,*) 
2314      + ' Photon PDFs :  GRV-G Set LO Structure Functions'
2315           IF (FIRST) WRITE(N6,*) 
2316      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2317           CALL GRVGALO(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
2318           DTOP=ZEROD
2319           GOTO 100
2320         ELSEIF(NSET.EQ.4) THEN
2321           IF (FIRST) THEN
2322               WRITE(N6,*) 
2323      + ' Photon PDFs :  GRS-G Set LO Photon Structure Functions'
2324               WRITE(N6,*) 
2325      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2326               WRITE(N6,*) 
2327      + '             !! User MUST call STRUCTP with the CORRECT INPUT pa
2328      +rameters !!'
2329           ENDIF
2330           GOTO 100
2331         ELSEIF(NSET.GE.5) THEN
2332           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
2333      +             ',   Nset = ',NSET,
2334      +             ',  Structure Functions not yet exsistent'
2335           STOP
2336         ENDIF
2337       ELSEIF(NGROUP.EQ.6) THEN
2338         IF(NSET.EQ.1) THEN
2339           IF (FIRST) WRITE(N6,*) 
2340      + ' Photon PDFs :  ACFGP-G Set HO Structure Functions'
2341           IF (FIRST) WRITE(N6,*) 
2342      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2343           IF (FIRST) WRITE(N6,*)
2344      +' Warning !!   :  in principle, set has been retracted by the auth
2345      +ors !'
2346           CALL ACFGP1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
2347           DBOT=ZEROD
2348           DTOP=ZEROD
2349           GOTO 100
2350         ELSEIF(NSET.EQ.2) THEN
2351           IF (FIRST) WRITE(N6,*) 
2352      + ' Photon PDFs :  ACFGP-G Set HO-mc Structure Functions'
2353           IF (FIRST) WRITE(N6,*) 
2354      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2355           IF (FIRST) WRITE(N6,*)
2356      +' Warning !!   :  in principle, set has been retracted by the auth
2357      +ors !'
2358           CALL ACFGP2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
2359           DBOT=ZEROD
2360           DTOP=ZEROD
2361           GOTO 100
2362         ELSEIF(NSET.EQ.3) THEN
2363           IF (FIRST) WRITE(N6,*) 
2364      + ' Photon PDFs :  AFG-G Set HO Structure Functions'
2365           IF (FIRST) WRITE(N6,*) 
2366      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2367           CALL SFAFG1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
2368           DBOT=ZEROD
2369           DTOP=ZEROD
2370           GOTO 100
2371         ELSEIF(NSET.GE.4) THEN
2372           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
2373      +             ',   Nset = ',NSET,
2374      +             ',  Structure Functions not yet exsistent'
2375           STOP
2376         ENDIF
2377       ELSEIF(NGROUP.EQ.7) THEN
2378         WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
2379      +             ',   Nset = ',NSET,
2380      +             ',  Structure Functions not yet exsistent'
2381         STOP
2382       ELSEIF(NGROUP.EQ.8) THEN
2383         IF(NSET.EQ.1) THEN
2384           IF (FIRST) WRITE(N6,*) 
2385      + ' Photon PDFs :  WHIT-G Set 1 Structure Functions'
2386           IF (FIRST) WRITE(N6,*) 
2387      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2388           CALL SFWHI1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
2389           DBOT=ZEROD
2390           DTOP=ZEROD
2391           GOTO 100
2392         ELSEIF(NSET.EQ.2) THEN
2393           IF (FIRST) WRITE(N6,*) 
2394      + ' Photon PDFs :  WHIT-G Set 2 Structure Functions'
2395           IF (FIRST) WRITE(N6,*) 
2396      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2397           CALL SFWHI2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
2398           DBOT=ZEROD
2399           DTOP=ZEROD
2400           GOTO 100
2401         ELSEIF(NSET.EQ.3) THEN
2402           IF (FIRST) WRITE(N6,*) 
2403      + ' Photon PDFs :  WHIT-G Set 3 Structure Functions'
2404           IF (FIRST) WRITE(N6,*) 
2405      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2406           CALL SFWHI3(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
2407           DBOT=ZEROD
2408           DTOP=ZEROD
2409           GOTO 100
2410         ELSEIF(NSET.EQ.4) THEN
2411           IF (FIRST) WRITE(N6,*) 
2412      + ' Photon PDFs :  WHIT-G Set 4 Structure Functions'
2413           IF (FIRST) WRITE(N6,*) 
2414      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2415           CALL SFWHI4(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
2416           DBOT=ZEROD
2417           DTOP=ZEROD
2418           GOTO 100
2419         ELSEIF(NSET.EQ.5) THEN
2420           IF (FIRST) WRITE(N6,*) 
2421      + ' Photon PDFs :  WHIT-G Set 5 Structure Functions'
2422           IF (FIRST) WRITE(N6,*) 
2423      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2424           CALL SFWHI5(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
2425           DBOT=ZEROD
2426           DTOP=ZEROD
2427           GOTO 100
2428         ELSEIF(NSET.EQ.6) THEN
2429           IF (FIRST) WRITE(N6,*) 
2430      + ' Photon PDFs :  WHIT-G Set 6 Structure Functions'
2431           IF (FIRST) WRITE(N6,*) 
2432      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2433           CALL SFWHI6(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
2434           DBOT=ZEROD
2435           DTOP=ZEROD
2436           GOTO 100
2437         ELSEIF(NSET.GE.7) THEN
2438           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
2439      +             ',   Nset = ',NSET,
2440      +             ',  Structure Functions not yet exsistent'
2441           STOP
2442         ENDIF
2443       ELSEIF(NGROUP.EQ.9) THEN
2444         IF(NSET.LE.8) THEN
2445           IF (FIRST) THEN
2446               WRITE(N6,*) 
2447      + ' Photon PDFs :  SaS Photon Structure Functions'
2448               WRITE(N6,*) 
2449      + '                Ngroup = ',NGROUP,',   Nset = ',NSET
2450               WRITE(N6,*) 
2451      + '             !! User MUST call STRUCTP with the CORRECT INPUT pa
2452      +rameters !!'
2453           ENDIF
2454           GOTO 100
2455         ELSEIF(NSET.GE.9) THEN
2456           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
2457      +             ',   Nset = ',NSET,
2458      +             ',  Structure Functions not yet exsistent'
2459           STOP
2460         ENDIF
2461       ELSE
2462         WRITE(N6,*)' PHOTON Structure function call for unknown GROUP ',
2463      +  NGROUP,',   and unknown NSET ',NSET
2464         STOP
2465       ENDIF
2466       ENDIF
2467 C Now start NPDF's with Nuclear Corrections
2468       IF(NPTYPE.EQ.4) THEN
2469           IF (FIRST) THEN
2470               WRITE(N6,*) 
2471      + ' PDFLIB :  User wants NPDFs,  BUT  NPtype = ',NPTYPE,
2472      + '  is not valid !!'
2473               WRITE(N6,*) 
2474      + '        !! User MUST call STRUCTA for NPDFs !!' 
2475              WRITE(N6,*)
2476      + ' PDFLIB :  Please check ALL INPUT parameters for PDFSET and STRU
2477      +CTA !!'
2478           ENDIF
2479           GOTO 100
2480       ENDIF
2481   100 IF(FIRST) WRITE(N6,*)
2482      +' ----------------------------------------------------------------
2483      +----------------------'
2484       IF (FIRST) FIRST = .FALSE.
2485 C
2486       UPV = MAX( ZEROD,DUPV)
2487       DNV = MAX( ZEROD,DDNV)
2488       USEA = MAX( ZEROD,DUSEA)
2489       DSEA = MAX( ZEROD,DDSEA)
2490       STR = MAX( ZEROD,DSTR)
2491       CHM = MAX( ZEROD,DCHM)
2492       BOT = MAX( ZEROD,DBOT)
2493       TOP = MAX( ZEROD,DTOP)
2494       GL  = MAX( ZEROD,DGL)
2495 C
2496       RETURN
2497 C
2498   200 IF(FIRST) WRITE(N6,*)
2499      +' ----------------------------------------------------------------
2500      +----------------------'
2501       IF (FIRST) FIRST = .FALSE.
2502 C
2503       UPV = DUPV
2504       DNV = DDNV
2505       USEA = DUSEA
2506       DSEA = DDSEA
2507       STR = DSTR
2508       CHM = DCHM
2509       BOT = DBOT
2510       TOP = DTOP
2511       GL  = DGL
2512 C
2513       RETURN
2514       END