]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PDF/spdf/structm.F
This commit was generated by cvs2svn to compensate for changes in r1018,
[u/mrichter/AliRoot.git] / PDF / spdf / structm.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.2  1996/10/30 08:31:56  cernlib
6 * Version 7.04
7 *
8 * Revision 1.2  1996/10/28 15:13:59  pdflib
9 * PDFLIB new version 7.04
10 *
11 * Revision 1.1.1.1  1996/04/12 15:30:06  plothow
12 * Version 7.01
13 *
14 *
15 #include "pdf/pilot.h"
16 C
17 C-----------------------------------------------------------------------
18 C
19       SUBROUTINE STRUCTM(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL)
20 C
21 C  *********************************************************************
22 C  *                                                                   *
23 C  *   Main steering routine for all sets of structure functions       *
24 C  *                                                                   *
25 C  *                                                                   *
26 C  *   Input:    X     = x value of parton                             *
27 C  *             SCALE = QCD scale in GeV                              *
28 C  *                                                                   *
29 C  *   Output:   UPV   = up valence quark                              *
30 C  *             DNV   = down valence quark                            *
31 C  *             USEA  = sea (up_bar)                                  *
32 C  *             DSEA  = sea (down_bar)                                *
33 C  *             STR   = strange quark                                 *
34 C  *             CHM   = charm quark                                   *
35 C  *             BOT   = bottom quark                                  *
36 C  *             TOP   = top quark                                     *
37 C  *             GL    = gluon                                         *
38 C  *                                                                   *
39 C  *                                                                   *
40 C  *   The variables  NPTYPE, NGROUP and NSET  should be,              *
41 C  *   the variables  NFL, LO, TMAS  and                               *
42 C  *   QCDL4, QCDL5, XMIN, XMAX, Q2MIN, Q2MAX                          *
43 C  *   could be provided by the user via a call to the                 *
44 C  *   subroutine PDFSET at the initialization phase, where            *
45 C  *                                                                   *
46 C  *             NPTYPE = Particle type                                *
47 C  *                      (number or character string,                 *
48 C  *                       1,2,3 or 'NU','PI','PH')                    *
49 C  *                      of desired structure functions set           *
50 C  *                      (Default: NPTYPE = 1  or  'NU'               *
51 C  *             NGROUP = author group                                 *
52 C  *                      (number or character string,                 *
53 C  *                       1 to 7 or i.e. 'DFLM','MRS','MT','GRV',etc) *
54 C  *                      of desired structure functions set           *
55 C  *                      (Default: NGROUP = 5  or  'GRV')             *
56 C  *             NSET   = number of desired structure functions set    *
57 C  *                      (Default: NSET = 3)                          *
58 C  *             NFL    = desired number of flavours for alpha(s)      *
59 C  *                      (Default: NFL = 5)                           *
60 C  *             LO     = order of alpha(s) calculation                *
61 C  *                      (Default: LO = 2)                            *
62 C  *             TMAS   = top quark mass in GeV/c**2  (optional)       *
63 C  *                      (Default: TMAS = 100.0D0)                    *
64 C  *             QCDL4  = QCD scale in GeV for four flavours           *
65 C  *             QCDL5  = QCD scale in GeV for five flavours           *
66 C  *                      corresponding to QCDL4                       *
67 C  *             XMIN   = minimal allowed x value                      *
68 C  *             XMAX   = maximal allowed x value                      *
69 C  *             Q2MIN  = minimal allowed Q**2 value                   *
70 C  *             Q2MAX  = maximal allowed Q**2 value                   *
71 C  *                                                                   *
72 C  *   for each set of structure fuction.                              *
73 C  *                                                                   *
74 C  *   The internal COMMON blocks                                      *
75 C  *                                                                   *
76 C  *   COMMON/W50511/ NPTYPE,NGROUP,NSET,MODE,NFL,LO,TMAS              *
77 C  *   COMMON/W50512/ QCDL4,QCDL5                                      *
78 C  *   COMMON/W50513/ XMIN,XMAX,Q2MIN,Q2MAX                            *
79 C  *                                                                   *
80 C  *   are filled then by the subroutine PDFSET.                       *
81 C  *                                                                   *
82 C  *                                                                   *
83 C  *     Note: STRUCTM returns X * parton distribution function !      *
84 C  *                                                                   *
85 C  *                                                                   *
86 C  *     Author:   H. Plothow-Besch                                    *
87 C  *               CERN-PPE, CH - 1211 Geneva 23, Switzerland          *
88 C  *                                                                   *
89 C  *     Please return any problems, questions, suggestions            *
90 C  *     to the author                                                 *
91 C  *                                                                   *
92 C  *********************************************************************
93 C
94 C
95 #include "pdf/impdp.inc"
96 C
97 #include "pdf/w5051p1.inc"
98 #include "pdf/w5051p2.inc"
99 #include "pdf/w5051p7.inc"
100 #include "pdf/w50510.inc"
101 #include "pdf/w50511.inc"
102 #include "pdf/w50512.inc"
103 #include "pdf/w50513.inc"
104 #include "pdf/w50514.inc"
105 #include "pdf/w50514w.inc"
106 #include "pdf/w50515.inc"
107 #include "pdf/w50516.inc"
108 #include "pdf/w50517.inc"
109 #include "pdf/w50519.inc"
110 #include "pdf/w505120.inc"
111 #include "pdf/w505121.inc"
112       CHARACTER*20 PARM(NCHDIM)
113 #include "pdf/expdp.inc"
114      +       VAL(NCHDIM)
115       DATA ZEROD/0.D0/,ONED/1.D0/,TWOD/2.D0/
116       SAVE /W50514/, /W50514W/, /W50516/
117 C.
118 #include "pdf/w50511c.inc"
119 C.
120 C User wants new version (4.0 or bigger) of PDFLIB format
121       IF (IFLSET.NE.1) THEN
122          IF(FIRST) THEN
123          WRITE(N6,*) ' Warning : NO initialisation via PDFSET made !!'
124          WRITE(N6,*)
125      +   '           ALL Parameters set to default (Nucleon PDFs) !!'
126          ENDIF
127          NPTYPE = LPTYPE
128          NGROUP = LGROUP
129          NSET   = LNSET
130 C
131          PARM(1) = 'Nptype'
132          VAL(1)  = NPTYPE
133          PARM(2) = 'Ngroup'
134          VAL(2)  = NGROUP
135          PARM(3) = 'Nset'
136          VAL(3)  = NSET
137 C
138          CALL PDFSET(PARM,VAL)
139       ENDIF
140 C.
141 C User wants old version (3.0 or less) of PDFLIB format
142       IF(.NOT.NEWVER) THEN
143         IF (MODE .GE.0 .AND. MODE .LE.MODEMX) THEN
144            IF(MODE.EQ.0) THEN
145              NPTYPE = LPTYPO
146              NGROUP = LGROPO
147              NSET   = LNSETO
148            ELSE
149              NPTYPE = NPTYCR(MODE)
150              NGROUP = NGROCR(MODE)
151              NSET   = NSETCR(MODE)
152 C   Check on validity of parameter values
153              IF (NPTYPE.LT.0 .OR. NGROUP.LT.0 .OR. NSET.LT.0) THEN
154                 IF(FIRST) THEN
155                 WRITE(N6,*) ' PDFLIB  : MODE value INCORRECT, MODE = ',
156      +          MODE
157                WRITE(N6,*) ' Warning : MODE value set to OLD default !!'
158                 ENDIF
159                 NPTYPE = LPTYPO
160                 NGROUP = LGROPO
161                 NSET   = LNSETO
162              ENDIF
163            ENDIF
164         ENDIF
165       ENDIF
166 C.
167 C... Define printer
168            IF(N6.LE.0) N6 = L6
169 C
170         DUPV = ZEROD
171         DDNV = ZEROD
172         DUSEA = ZEROD
173         DDSEA = ZEROD
174         DSTR = ZEROD
175         DCHM = ZEROD
176         DBOT = ZEROD
177         DTOP = ZEROD
178         DGL  = ZEROD
179 C
180         ZUPV = ZEROD
181         ZDNV = ZEROD
182         ZUSEA = ZEROD
183         ZDSEA = ZEROD
184         ZSTR = ZEROD
185         ZCHM = ZEROD
186         ZBOT = ZEROD
187         ZTOP = ZEROD
188         ZGL  = ZEROD
189 C
190         DX  = X
191         DQ  = SCALE
192         DQ2 = SCALE*SCALE
193 C.
194         IF (DX.LE.ZEROD .OR. DX.GE.ONED) THEN
195            WRITE(N6,*) ' PDFLIB  : Nptype = ',NPTYPE,',   Ngroup = ',
196      +                 NGROUP,',   Nset = ',NSET
197            WRITE(N6,*)
198      +     ' Error   : X value outside physical range , X = ',DX
199            GOTO 100
200         ENDIF
201         WTXMIN = WTXMIN + PDFWGT
202         IF (DX.LT.XMIN) THEN
203            WXMIN = WXMIN + PDFWGT
204            IF(IFLPRT.GE.3) THEN
205               WRITE(N6,*) ' PDFLIB  : Nptype = ',NPTYPE,',   Ngroup = ',
206      +                 NGROUP,',   Nset = ',NSET
207               WRITE(N6,*)
208      +        ' Error   : X value smaller allowed range , X = ',DX
209            ENDIF
210         ENDIF
211         WTXMAX = WTXMAX + PDFWGT
212         IF (DX.GT.XMAX) THEN
213            WXMAX = WXMAX + PDFWGT
214            IF(IFLPRT.GE.3) THEN
215               WRITE(N6,*) ' PDFLIB  : Nptype = ',NPTYPE,',   Ngroup = ',
216      +                 NGROUP,',   Nset = ',NSET
217               WRITE(N6,*)
218      +        ' Error   : X value bigger  allowed range , X = ',DX
219            ENDIF
220            GOTO 100
221         ENDIF
222         WTQ2MIN = WTQ2MIN + PDFWGT
223         IF (DQ2.LT.Q2MIN) THEN
224            WQ2MIN = WQ2MIN + PDFWGT
225            IF(IFLPRT.GE.3) THEN
226               WRITE(N6,*) ' PDFLIB  : Nptype = ',NPTYPE,',   Ngroup = ',
227      +                 NGROUP,',   Nset = ',NSET
228               WRITE(N6,*)
229      +      ' Error   : SCALE value smaller allowed range , Q**2 = ',DQ2
230            ENDIF
231         ENDIF
232         WTQ2MAX = WTQ2MAX + PDFWGT
233         IF (DQ2.GT.Q2MAX) THEN
234            WQ2MAX = WQ2MAX + PDFWGT
235            IF(IFLPRT.GE.3) THEN
236               WRITE(N6,*) ' PDFLIB  : Nptype = ',NPTYPE,',   Ngroup = ',
237      +                 NGROUP,',   Nset = ',NSET
238               WRITE(N6,*)
239      +       ' Error   : SCALE value bigger allowed range , Q**2 = ',DQ2
240            ENDIF
241         ENDIF
242 C
243       IF (FIRST) WRITE(N6,*) ' '
244       IF (FIRST) WRITE(N6,*) ' '
245 C Call default structure functions set
246       IF    (NPTYPE.EQ.0 .OR. NGROUP.EQ.0 .OR. NSET.EQ.0) THEN
247 C       IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
248 C    +             ',   Nset = ',NSET,
249 C    +             ',  for GRV Set HO Structure Functions'
250 C       CALL GRVHO(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
251 C       DDSEA = DUSEA
252 C       GOTO 100
253           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
254      +             ',   Nset = ',NSET,
255      +             ',  for MRS Set (G) (L255-MSb) Structure Functions'
256           CALL SFMRSG(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
257           DTOP=ZEROD
258           GOTO 100
259       ENDIF
260 C Start with NUCLEON structure functions
261       IF(NPTYPE.EQ.1) THEN
262       IF(NGROUP.EQ.1) THEN
263         IF(NSET.EQ.1) THEN
264           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
265      +             ',   Nset = ',NSET,
266      +             ',  for PRIVATE Structure Functions'
267        CALL STRPRIV(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
268           GOTO 100
269         ELSEIF(NSET.EQ.2) THEN
270           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
271      +             ',   Nset = ',NSET,
272      +             ',  for BEBC Structure Functions'
273           CALL STRBEBC(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DGL)
274           DDSEA = DUSEA
275           DCHM=ZEROD
276           DBOT=ZEROD
277           DTOP=ZEROD
278           GOTO 100
279         ELSEIF(NSET.EQ.3) THEN
280           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
281      +             ',   Nset = ',NSET,
282      +             ',  for OR Structure Functions'
283           CALL STRUCOR(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DGL)
284           DDSEA = DUSEA
285           DCHM=ZEROD
286           DBOT=ZEROD
287           DTOP=ZEROD
288           GOTO 100
289         ELSEIF(NSET.EQ.4) THEN
290           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
291      +             ',   Nset = ',NSET,
292      +             ',  for BEP Structure Functions'
293           CALL STRBEP(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DGL)
294           DDSEA = DUSEA
295           DCHM=ZEROD
296           DBOT=ZEROD
297           DTOP=ZEROD
298           GOTO 100
299         ELSEIF(NSET.EQ.5) THEN
300           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
301      +             ',   Nset = ',NSET,
302      +             ',  for GHR Structure Functions'
303           CALL STRGHR(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DGL)
304           DDSEA = DUSEA
305           DBOT=ZEROD
306           DTOP=ZEROD
307           GOTO 100
308         ELSEIF(NSET.EQ.6) THEN
309           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
310      +             ',   Nset = ',NSET,
311      +             ',  for DO Set 1 Structure Functions'
312           CALL STRDO1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DGL)
313           DDSEA = DUSEA
314           DBOT=ZEROD
315           DTOP=ZEROD
316           GOTO 100
317         ELSEIF(NSET.EQ.7) THEN
318           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
319      +             ',   Nset = ',NSET,
320      +             ',  for DO Set 2 Structure Functions'
321           CALL STRDO2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DGL)
322           DDSEA = DUSEA
323           DBOT=ZEROD
324           DTOP=ZEROD
325           GOTO 100
326         ELSEIF(NSET.EQ.8) THEN
327           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
328      +             ',   Nset = ',NSET,
329      +             ',  for EHLQ Set 1 Structure Functions'
330           CALL SFEHLQ1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
331           DDSEA = DUSEA
332           GOTO 100
333         ELSEIF(NSET.EQ.9) THEN
334           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
335      +             ',   Nset = ',NSET,
336      +             ',  for EHLQ Set 2 Structure Functions'
337           CALL SFEHLQ2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
338           DDSEA = DUSEA
339           GOTO 100
340         ELSEIF(NSET.EQ.10) THEN
341           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
342      +             ',   Nset = ',NSET,
343      +             ',  for New DO Set 1.1 Structure Functions'
344           CALL NEWDO1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DGL)
345           DDSEA = DUSEA
346           DBOT=ZEROD
347           DTOP=ZEROD
348           GOTO 100
349         ELSEIF(NSET.GT.11) THEN
350           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
351      +             ',   Nset = ',NSET,
352      +             ',   Structure Functions not yet exsistent'
353           STOP
354         ENDIF
355       ELSEIF(NGROUP.EQ.2) THEN
356         IF(NSET.EQ.1) THEN
357           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
358      +             ',   Nset = ',NSET,
359      +             ',  for DFLMsoft (Valence) Structure Functions'
360           CALL DFLM4(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
361           DDSEA = DUSEA
362           GOTO 100
363         ELSEIF(NSET.EQ.2) THEN
364           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
365      +             ',   Nset = ',NSET,
366      +             ',  for DFLMhard (Valence) Structure Functions'
367           CALL DFLM5(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
368           DDSEA = DUSEA
369           GOTO 100
370         ELSEIF(NSET.EQ.3) THEN
371           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
372      +             ',   Nset = ',NSET,
373      +             ',  for DFLMsoft (Gluon) Structure Functions'
374           CALL DFLM6(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
375           DDSEA = DUSEA
376           GOTO 100
377         ELSEIF(NSET.EQ.4) THEN
378           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
379      +             ',   Nset = ',NSET,
380      +             ',  for DFLMhard (Gluon) Structure Functions'
381           CALL DFLM7(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
382           DDSEA = DUSEA
383           GOTO 100
384         ELSEIF(NSET.EQ.5) THEN
385           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
386      +             ',   Nset = ',NSET,
387      +             ',  for DFLMaverage (LO) Structure Functions'
388           CALL DFLM8(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
389           DDSEA = DUSEA
390           GOTO 100
391         ELSEIF(NSET.EQ.6) THEN
392           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
393      +             ',   Nset = ',NSET,
394      +             ',  for DFLMaverage (DIS) Structure Functions'
395           CALL DFLM9(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
396           DDSEA = DUSEA
397           GOTO 100
398         ELSEIF(NSET.EQ.7) THEN
399           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
400      +             ',   Nset = ',NSET,
401      +             ',  for DFLM160 (DIS) Structure Functions'
402           CALL DFLM1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
403           DDSEA = DUSEA
404           GOTO 100
405         ELSEIF(NSET.EQ.8) THEN
406           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
407      +             ',   Nset = ',NSET,
408      +             ',  for DFLM260 (DIS) Structure Functions'
409           CALL DFLM2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
410           DDSEA = DUSEA
411           GOTO 100
412         ELSEIF(NSET.EQ.9) THEN
413           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
414      +             ',   Nset = ',NSET,
415      +             ',  for DFLM360 (DIS) Structure Functions'
416           CALL DFLM3(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
417           DDSEA = DUSEA
418           GOTO 100
419         ELSEIF(NSET.GT.10) THEN
420           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
421      +             ',   Nset = ',NSET,
422      +             ',   Structure Functions not yet exsistent'
423           STOP
424         ENDIF
425       ELSEIF(NGROUP.EQ.3) THEN
426         IF(NSET.EQ.1) THEN
427           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
428      +             ',   Nset = ',NSET,
429      +             ',  for MRS Set 1 (MSb) Structure Functions'
430           CALL STRMRS1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
431           DDSEA = DUSEA
432           DTOP=ZEROD
433           GOTO 100
434         ELSEIF(NSET.EQ.2) THEN
435           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
436      +             ',   Nset = ',NSET,
437      +             ',  for MRS Set 2 (MSb) Structure Functions'
438           CALL STRMRS2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
439           DDSEA = DUSEA
440           DTOP=ZEROD
441           GOTO 100
442         ELSEIF(NSET.EQ.3) THEN
443           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
444      +             ',   Nset = ',NSET,
445      +             ',  for MRS Set 3 (MSb) Structure Functions'
446           CALL STRMRS3(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
447           DDSEA = DUSEA
448           DTOP=ZEROD
449           GOTO 100
450         ELSEIF(NSET.EQ.4) THEN
451           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
452      +             ',   Nset = ',NSET,
453      +             ',  for MRS Set E Structure Functions'
454           CALL STRUCE(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
455           DDSEA = DUSEA
456           DTOP=ZEROD
457           GOTO 100
458         ELSEIF(NSET.EQ.5) THEN
459           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
460      +             ',   Nset = ',NSET,
461      +             ',  for MRS Set B Structure Functions'
462           CALL STRUCB(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
463           DDSEA = DUSEA
464           DTOP=ZEROD
465           GOTO 100
466         ELSEIF(NSET.EQ.6) THEN
467           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
468      +             ',   Nset = ',NSET,
469      +             ',  for MRS Set EP Structure Functions'
470           CALL STRCEP(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
471           DDSEA = DUSEA
472           DTOP=ZEROD
473           GOTO 100
474         ELSEIF(NSET.EQ.7) THEN
475           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
476      +             ',   Nset = ',NSET,
477      +             ',  for MRS Set BP Structure Functions'
478           CALL STRCBP(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
479           DDSEA = DUSEA
480           DTOP=ZEROD
481           GOTO 100
482         ELSEIF(NSET.EQ.8) THEN
483           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
484      +             ',   Nset = ',NSET,
485      +             ',  for HMRS1 Set E Structure Functions'
486           IF (FIRST) WRITE(N6,*)
487      +' Warning !!   :  in principle, set has been retracted by the auth
488      +ors !'
489           CALL STRH1E(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
490           DDSEA = DUSEA
491           DTOP=ZEROD
492           GOTO 100
493 C       ELSEIF(NSET.EQ.9) THEN
494 C         IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
495 C    +             ',   Nset = ',NSET,
496 C    +             ',  for HMRS1 Set B Structure Functions'
497 C         IF (FIRST) WRITE(N6,*)
498 C    +' Warning !!   :  in principle, set has been retracted by the auth
499 C    +ors !'
500 C         FIRST = .FALSE.
501 C         CALL STRH1B(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
502 C         DDSEA = DUSEA
503 C         DTOP=ZEROD
504 C         GOTO 100
505         ELSEIF(NSET.EQ.9) THEN
506           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
507      +             ',   Nset = ',NSET,
508      +             ',  for KMRS Set B0 (190) Structure Functions (old)'
509           CALL STRKB0O(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
510           DDSEA = DUSEA
511           DTOP=ZEROD
512           GOTO 100
513         ELSEIF(NSET.EQ.10) THEN
514           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
515      +             ',   Nset = ',NSET,
516      +             ',  for HMRS2 Set E Structure Functions'
517           CALL STRH2E(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
518           DDSEA = DUSEA
519           DTOP=ZEROD
520           GOTO 100
521         ELSEIF(NSET.EQ.11) THEN
522           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
523      +             ',   Nset = ',NSET,
524      +             ',  for HMRS2 Set B Structure Functions'
525           CALL STRH2B(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
526           DDSEA = DUSEA
527           DTOP=ZEROD
528           GOTO 100
529         ELSEIF(NSET.EQ.12) THEN
530           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
531      +             ',   Nset = ',NSET,
532      +             ',  for HMRS Set E+ Structure Functions'
533           CALL STRH3EP(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
534           DDSEA = DUSEA
535           DTOP=ZEROD
536           GOTO 100
537         ELSEIF(NSET.EQ.13) THEN
538           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
539      +             ',   Nset = ',NSET,
540      +             ',  for HMRS Set E- Structure Functions'
541           CALL STRH3EM(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
542           DDSEA = DUSEA
543           DTOP=ZEROD
544           GOTO 100
545         ELSEIF(NSET.EQ.14) THEN
546           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
547      +             ',   Nset = ',NSET,
548      +             ',  for HMRS Set E Structure Functions'
549           CALL STRH3E(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
550           DDSEA = DUSEA
551           DTOP=ZEROD
552           GOTO 100
553         ELSEIF(NSET.EQ.15) THEN
554           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
555      +             ',   Nset = ',NSET,
556      +             ',  for HMRS Set B (190) Structure Functions'
557           CALL STRH3B(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
558           DDSEA = DUSEA
559           DTOP=ZEROD
560           GOTO 100
561         ELSEIF(NSET.EQ.16) THEN
562           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
563      +             ',   Nset = ',NSET,
564      +             ',  for HMRS Set B (100) Structure Functions'
565           CALL STRH3B1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
566           DDSEA = DUSEA
567           DTOP=ZEROD
568           GOTO 100
569         ELSEIF(NSET.EQ.17) THEN
570           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
571      +             ',   Nset = ',NSET,
572      +             ',  for HMRS Set B (300) Structure Functions'
573           CALL STRH3B3(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
574           DDSEA = DUSEA
575           DTOP=ZEROD
576           GOTO 100
577         ELSEIF(NSET.EQ.18) THEN
578           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
579      +             ',   Nset = ',NSET,
580      +             ',  for KMRS Set B- Structure Functions'
581           CALL STRKBM(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
582           DDSEA = DUSEA
583           DTOP=ZEROD
584           GOTO 100
585         ELSEIF(NSET.EQ.19) THEN
586           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
587      +             ',   Nset = ',NSET,
588      +             ',  for KMRS Set B--R2-SH Structure Functions'
589           CALL SFKBMR2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
590           DDSEA = DUSEA
591           DTOP=ZEROD
592           GOTO 100
593         ELSEIF(NSET.EQ.20) THEN
594           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
595      +             ',   Nset = ',NSET,
596      +             ',  for KMRS Set B--R5-SH Structure Functions'
597           CALL SFKBMR5(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
598           DDSEA = DUSEA
599           DTOP=ZEROD
600           GOTO 100
601         ELSEIF(NSET.EQ.21) THEN
602           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
603      +             ',   Nset = ',NSET,
604      +            ',  for KMRS Set B0 (190) updated Structure Functions'
605           CALL STRKB0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
606           DTOP=ZEROD
607           GOTO 100
608         ELSEIF(NSET.EQ.22) THEN
609           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
610      +             ',   Nset = ',NSET,
611      +             ',  for MRS Set B0 (L135) Structure Functions'
612           CALL STRKB02(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
613           DDSEA = DUSEA
614           DTOP=ZEROD
615           GOTO 100
616         ELSEIF(NSET.EQ.23) THEN
617           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
618      +             ',   Nset = ',NSET,
619      +             ',  for MRS Set B0 (L160) Structure Functions'
620           CALL STRKB03(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
621           DDSEA = DUSEA
622           DTOP=ZEROD
623           GOTO 100
624         ELSEIF(NSET.EQ.24) THEN
625           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
626      +             ',   Nset = ',NSET,
627      +             ',  for MRS Set B0 (L200) Structure Functions'
628           CALL STRKB04(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
629           DDSEA = DUSEA
630           DTOP=ZEROD
631           GOTO 100
632         ELSEIF(NSET.EQ.25) THEN
633           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
634      +             ',   Nset = ',NSET,
635      +             ',  for MRS Set B0 (L235) Structure Functions'
636           CALL STRKB05(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
637           DDSEA = DUSEA
638           DTOP=ZEROD
639           GOTO 100
640         ELSEIF(NSET.EQ.26) THEN
641           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
642      +             ',   Nset = ',NSET,
643      +             ',  for MRS Set S0 (L215) Structure Functions'
644           IF (FIRST) WRITE(N6,*)
645      +' Warning !!   :  in principle, set has been retracted by the auth
646      +ors !'
647           CALL SFMRSS0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
648           DTOP=ZEROD
649           GOTO 100
650         ELSEIF(NSET.EQ.27) THEN
651           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
652      +             ',   Nset = ',NSET,
653      +             ',  for MRS Set D0 (L215) Structure Functions'
654           IF (FIRST) WRITE(N6,*)
655      +' Warning !!   :  in principle, set has been retracted by the auth
656      +ors !'
657           CALL SFMRSD0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
658           DTOP=ZEROD
659           GOTO 100
660         ELSEIF(NSET.EQ.28) THEN
661           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
662      +             ',   Nset = ',NSET,
663      +             ',  for MRS Set D- (L215) Structure Functions'
664           IF (FIRST) WRITE(N6,*)
665      +' Warning !!   :  in principle, set has been retracted by the auth
666      +ors !'
667           CALL SFMRSDM(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
668           DTOP=ZEROD
669           GOTO 100
670         ELSEIF(NSET.EQ.29) THEN
671           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
672      +             ',   Nset = ',NSET,
673      +             ',  for MRS Set S0p (L230-MSb) Structure Functions'
674           CALL SFMSBS0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
675           DTOP=ZEROD
676           GOTO 100
677         ELSEIF(NSET.EQ.30) THEN
678           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
679      +             ',   Nset = ',NSET,
680      +             ',  for MRS Set D0p (L230-MSb) Structure Functions'
681           CALL SFMSBD0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
682           DTOP=ZEROD
683           GOTO 100
684         ELSEIF(NSET.EQ.31) THEN
685           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
686      +             ',   Nset = ',NSET,
687      +             ',  for MRS Set D-p (L230-MSb) Structure Functions'
688           CALL SFMSBDM(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
689           DTOP=ZEROD
690           GOTO 100
691         ELSEIF(NSET.EQ.32) THEN
692           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
693      +             ',   Nset = ',NSET,
694      +             ',  for MRS Set S0p (L230-DIS) Structure Functions'
695           CALL SFDISS0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
696           DTOP=ZEROD
697           GOTO 100
698         ELSEIF(NSET.EQ.33) THEN
699           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
700      +             ',   Nset = ',NSET,
701      +             ',  for MRS Set D0p (L230-DIS) Structure Functions'
702           CALL SFDISD0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
703           DTOP=ZEROD
704           GOTO 100
705         ELSEIF(NSET.EQ.34) THEN
706           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
707      +             ',   Nset = ',NSET,
708      +             ',  for MRS Set D-p (L230-DIS) Structure Functions'
709           CALL SFDISDM(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
710           DTOP=ZEROD
711           GOTO 100
712         ELSEIF(NSET.EQ.35) THEN
713           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
714      +             ',   Nset = ',NSET,
715      +             ',  for MRS Set (H) (L230-MSb) Structure Functions'
716           CALL SFMSBH(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
717           DTOP=ZEROD
718           GOTO 100
719         ELSEIF(NSET.EQ.36) THEN
720           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
721      +             ',   Nset = ',NSET,
722      +             ',  for MRS Set (H) (L230-DIS) Structure Functions'
723           CALL SFDISH(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
724           DTOP=ZEROD
725           GOTO 100
726         ELSEIF(NSET.EQ.37) THEN
727           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
728      +             ',   Nset = ',NSET,
729      +             ',  for MRS Set (A) (L230-MSb) Structure Functions'
730           CALL SFMSBA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
731           DTOP=ZEROD
732           GOTO 100
733         ELSEIF(NSET.EQ.38) THEN
734           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
735      +             ',   Nset = ',NSET,
736      +             ',  for MRS Fit (A) (L230-MSb) Structure Functions'
737           CALL SFMSFA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
738           DTOP=ZEROD
739           GOTO 100
740         ELSEIF(NSET.EQ.39) THEN
741           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
742      +             ',   Nset = ',NSET,
743      +             ',  for MRS Set (Ap) (L231-MSb) Structure Functions'
744           CALL SFMSAP(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
745           DTOP=ZEROD
746           GOTO 100
747         ELSEIF(NSET.EQ.40) THEN
748           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
749      +             ',   Nset = ',NSET,
750      +             ',  for MRS Fit (Ap) (L231-MSb) Structure Functions'
751           CALL SFMFAP(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
752           DTOP=ZEROD
753           GOTO 100
754         ELSEIF(NSET.EQ.41) THEN
755           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
756      +             ',   Nset = ',NSET,
757      +             ',  for MRS Set (G) (L255-MSb) Structure Functions'
758           CALL SFMRSG(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
759           DTOP=ZEROD
760           GOTO 100
761         ELSEIF(NSET.EQ.42) THEN
762           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
763      +             ',   Nset = ',NSET,
764      +             ',  for MRS Fit (G) (L255-MSb) Structure Functions'
765           CALL SFMSFG(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
766           DTOP=ZEROD
767           GOTO 100
768         ELSEIF(NSET.EQ.43) THEN
769           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
770      +             ',   Nset = ',NSET,
771      +             ',  for MRS Set (A) (L230-MSb) and low Q**2 Structure
772      + Functions'
773           IF(DQ2.GT.5.D0)
774      +    CALL SFMSBA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
775           IF(DQ2.LE.5.D0)
776      +    CALL SFMSQA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
777           DTOP=ZEROD
778           GOTO 100
779         ELSEIF(NSET.EQ.44) THEN
780           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
781      +             ',   Nset = ',NSET,
782      +             ',  for MRS Set (A) (L230-DIS) and low Q**2 Structure
783      + Functions'
784           IF(DQ2.GT.5.D0)
785      +    CALL SFDISA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
786           IF(DQ2.LE.5.D0)
787      +    CALL SFDSQA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
788           DTOP=ZEROD
789           GOTO 100
790         ELSEIF(NSET.EQ.45) THEN
791           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
792      +             ',   Nset = ',NSET,
793      +             ',  for MRS Set (Ap) (L150-MSb) Structure Functions'
794           CALL SFMS105(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
795           DTOP=ZEROD
796           GOTO 100
797         ELSEIF(NSET.EQ.46) THEN
798           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
799      +             ',   Nset = ',NSET,
800      +             ',  for MRS Set (Ap) (L201-MSb) Structure Functions'
801           CALL SFMS110(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
802           DTOP=ZEROD
803           GOTO 100
804         ELSEIF(NSET.EQ.47) THEN
805           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
806      +             ',   Nset = ',NSET,
807      +             ',  for MRS Set (Ap) (L266-MSb) Structure Functions'
808           CALL SFMS115(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
809           DTOP=ZEROD
810           GOTO 100
811         ELSEIF(NSET.EQ.48) THEN
812           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
813      +             ',   Nset = ',NSET,
814      +             ',  for MRS Set (Ap) (L344-MSb) Structure Functions'
815           CALL SFMS120(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
816           DTOP=ZEROD
817           GOTO 100
818         ELSEIF(NSET.EQ.49) THEN
819           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
820      +             ',   Nset = ',NSET,
821      +             ',  for MRS Set (Ap) (L435-MSb) Structure Functions'
822           CALL SFMS125(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
823           DTOP=ZEROD
824           GOTO 100
825         ELSEIF(NSET.EQ.50) THEN
826           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
827      +             ',   Nset = ',NSET,
828      +             ',  for MRS Set (Ap) (L542-MSb) Structure Functions'
829           CALL SFMS130(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
830           DTOP=ZEROD
831           GOTO 100
832         ELSEIF(NSET.EQ.51) THEN
833           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
834      +             ',   Nset = ',NSET,
835      +             ',  for MRS Set (J) (L344-MSb) Structure Functions'
836           CALL SFMRSJ(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
837           DTOP=ZEROD
838           GOTO 100
839         ELSEIF(NSET.EQ.52) THEN
840           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
841      +             ',   Nset = ',NSET,
842      +             ',  for MRS Set (Jp) (L507-MSb) Structure Functions'
843           CALL SFMSJP(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
844           DTOP=ZEROD
845           GOTO 100
846         ELSEIF(NSET.EQ.53) THEN
847           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
848      +             ',   Nset = ',NSET,
849      +             ',  for MRS Set (R1) (L241-MSb) Structure Functions'
850           CALL SFMSR1(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
851           DTOP=ZEROD
852           GOTO 100
853         ELSEIF(NSET.EQ.54) THEN
854           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
855      +             ',   Nset = ',NSET,
856      +             ',  for MRS Set (R2) (L344-MSb) Structure Functions'
857           CALL SFMSR2(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
858           DTOP=ZEROD
859           GOTO 100
860         ELSEIF(NSET.EQ.55) THEN
861           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
862      +             ',   Nset = ',NSET,
863      +             ',  for MRS Set (R3) (L241-MSb) Structure Functions'
864           CALL SFMSR3(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
865           DTOP=ZEROD
866           GOTO 100
867         ELSEIF(NSET.EQ.56) THEN
868           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
869      +             ',   Nset = ',NSET,
870      +             ',  for MRS Set (R4) (L344-MSb) Structure Functions'
871           CALL SFMSR4(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
872           DTOP=ZEROD
873           GOTO 100
874         ELSEIF(NSET.EQ.57) THEN
875           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
876      +             ',   Nset = ',NSET,
877      +             ',  for MRS Fit (R1) (L241-MSb) Structure Functions'
878           CALL SFMFR1(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
879           DTOP=ZEROD
880           GOTO 100
881         ELSEIF(NSET.EQ.58) THEN
882           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
883      +             ',   Nset = ',NSET,
884      +             ',  for MRS Fit (R2) (L344-MSb) Structure Functions'
885           CALL SFMFR2(DX,DQ2,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
886           DTOP=ZEROD
887           GOTO 100
888         ELSEIF(NSET.GE.59) THEN
889           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
890      +             ',   Nset = ',NSET,
891      +             ',  Structure Functions not yet exsistent'
892           STOP
893         ENDIF
894       ELSEIF(NGROUP.EQ.4) THEN
895         IF(NSET.EQ.1) THEN
896           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
897      +             ',   Nset = ',NSET,
898      +             ',  for MT Set S1 (DIS) Structure Functions'
899           IF (FIRST) WRITE(N6,*)
900      +' Warning !!   :  in principle, set has been retracted by the auth
901      +ors !'
902         CALL SFMTU1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
903           GOTO 100
904         ELSEIF(NSET.EQ.2) THEN
905           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
906      +             ',   Nset = ',NSET,
907      +             ',  for MT Set B1 (DIS) Structure Functions'
908           IF (FIRST) WRITE(N6,*)
909      +' Warning !!   :  in principle, set has been retracted by the auth
910      +ors !'
911         CALL SFMTU2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
912           GOTO 100
913         ELSEIF(NSET.EQ.3) THEN
914           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
915      +             ',   Nset = ',NSET,
916      +             ',  for MT Set B2 (DIS) Structure Functions'
917           IF (FIRST) WRITE(N6,*)
918      +' Warning !!   :  in principle, set has been retracted by the auth
919      +ors !'
920         CALL SFMTU3(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
921           GOTO 100
922         ELSEIF(NSET.EQ.4) THEN
923           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
924      +             ',   Nset = ',NSET,
925      +             ',  for MT Set E1 (DIS) Structure Functions'
926           IF (FIRST) WRITE(N6,*)
927      +' Warning !!   :  in principle, set has been retracted by the auth
928      +ors !'
929         CALL SFMTU4(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
930           GOTO 100
931         ELSEIF(NSET.EQ.5) THEN
932           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
933      +             ',   Nset = ',NSET,
934      +             ',  for MT Set 6 (1/2s) (DIS) Structure Functions'
935           IF (FIRST) WRITE(N6,*)
936      +' Warning !!   :  in principle, set has been retracted by the auth
937      +ors !'
938         CALL SFMTU5(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
939           GOTO 100
940         ELSEIF(NSET.EQ.6) THEN
941           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
942      +             ',   Nset = ',NSET,
943      +             ',  for MT Set S1 (MSb) Structure Functions'
944           IF (FIRST) WRITE(N6,*)
945      +' Warning !!   :  in principle, set has been retracted by the auth
946      +ors !'
947         CALL SFMTU6(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
948           GOTO 100
949         ELSEIF(NSET.EQ.7) THEN
950           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
951      +             ',   Nset = ',NSET,
952      +             ',  for MT Set B1 (MSb) Structure Functions'
953           IF (FIRST) WRITE(N6,*)
954      +' Warning !!   :  in principle, set has been retracted by the auth
955      +ors !'
956         CALL SFMTU7(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
957           GOTO 100
958         ELSEIF(NSET.EQ.8) THEN
959           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
960      +             ',   Nset = ',NSET,
961      +             ',  for MT Set B2 (MSb) Structure Functions'
962           IF (FIRST) WRITE(N6,*)
963      +' Warning !!   :  in principle, set has been retracted by the auth
964      +ors !'
965         CALL SFMTU8(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
966           GOTO 100
967         ELSEIF(NSET.EQ.9) THEN
968           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
969      +             ',   Nset = ',NSET,
970      +             ',  for MT Set E1 (MSb) Structure Functions'
971           IF (FIRST) WRITE(N6,*)
972      +' Warning !!   :  in principle, set has been retracted by the auth
973      +ors !'
974         CALL SFMTU9(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
975           GOTO 100
976         ELSEIF(NSET.EQ.10) THEN
977           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
978      +             ',   Nset = ',NSET,
979      +             ',  for MT Set 6 (1/2s) (MSb) Structure Functions'
980           IF (FIRST) WRITE(N6,*)
981      +' Warning !!   :  in principle, set has been retracted by the auth
982      +ors !'
983         CALL SFMT10(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
984           GOTO 100
985         ELSEIF(NSET.EQ.11) THEN
986           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
987      +             ',   Nset = ',NSET,
988      +             ',  for MT Set LO Structure Functions'
989           IF (FIRST) WRITE(N6,*)
990      +' Warning !!   :  in principle, set has been retracted by the auth
991      +ors !'
992         CALL SFMT11(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
993           GOTO 100
994         ELSEIF(NSET.EQ.12) THEN
995           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
996      +             ',   Nset = ',NSET,
997      +             ',  for CTEQ Set 1L (LO) Structure Functions'
998           IF (FIRST) WRITE(N6,*)
999      +' Warning !!   :  in principle, set has been retracted by the auth
1000      +ors !'
1001        CALL SFCTQ11(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1002           GOTO 100
1003         ELSEIF(NSET.EQ.13) THEN
1004           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1005      +             ',   Nset = ',NSET,
1006      +             ',  for CTEQ Set 1M (MSb) Structure Functions'
1007           IF (FIRST) WRITE(N6,*)
1008      +' Warning !!   :  in principle, set has been retracted by the auth
1009      +ors !'
1010        CALL SFCTQ12(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1011           GOTO 100
1012         ELSEIF(NSET.EQ.14) THEN
1013           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1014      +             ',   Nset = ',NSET,
1015      +             ',  for CTEQ Set 1MS (MSb) Structure Functions'
1016           IF (FIRST) WRITE(N6,*)
1017      +' Warning !!   :  in principle, set has been retracted by the auth
1018      +ors !'
1019        CALL SFCTQ13(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1020           GOTO 100
1021         ELSEIF(NSET.EQ.15) THEN
1022           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1023      +             ',   Nset = ',NSET,
1024      +             ',  for CTEQ Set 1ML (MSb) Structure Functions'
1025           IF (FIRST) WRITE(N6,*)
1026      +' Warning !!   :  in principle, set has been retracted by the auth
1027      +ors !'
1028        CALL SFCTQ14(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1029           GOTO 100
1030         ELSEIF(NSET.EQ.16) THEN
1031           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1032      +             ',   Nset = ',NSET,
1033      +             ',  for CTEQ Set 1D (DIS) Structure Functions'
1034           IF (FIRST) WRITE(N6,*)
1035      +' Warning !!   :  in principle, set has been retracted by the auth
1036      +ors !'
1037        CALL SFCTQ15(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1038           GOTO 100
1039         ELSEIF(NSET.EQ.17) THEN
1040           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1041      +             ',   Nset = ',NSET,
1042      +             ',  for CTEQ Set 2L (LO) Structure Functions'
1043           IF (FIRST) WRITE(N6,*)
1044      +' Warning !!   :  in principle, set has been retracted by the auth
1045      +ors !'
1046        CALL SFCTQ21(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1047           GOTO 100
1048         ELSEIF(NSET.EQ.18) THEN
1049           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1050      +             ',   Nset = ',NSET,
1051      +             ',  for CTEQ Set 2M (MSb) Structure Functions'
1052           IF (FIRST) WRITE(N6,*)
1053      +' Warning !!   :  in principle, set has been retracted by the auth
1054      +ors !'
1055        CALL SFCTQ22(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1056           GOTO 100
1057         ELSEIF(NSET.EQ.19) THEN
1058           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1059      +             ',   Nset = ',NSET,
1060      +             ',  for CTEQ Set 2MS (MSb) Structure Functions'
1061           IF (FIRST) WRITE(N6,*)
1062      +' Warning !!   :  in principle, set has been retracted by the auth
1063      +ors !'
1064        CALL SFCTQ23(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1065           GOTO 100
1066         ELSEIF(NSET.EQ.20) THEN
1067           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1068      +             ',   Nset = ',NSET,
1069      +             ',  for CTEQ Set 2MF (MSb) Structure Functions'
1070           IF (FIRST) WRITE(N6,*)
1071      +' Warning !!   :  in principle, set has been retracted by the auth
1072      +ors !'
1073        CALL SFCTQ24(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1074           GOTO 100
1075         ELSEIF(NSET.EQ.21) THEN
1076           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1077      +             ',   Nset = ',NSET,
1078      +             ',  for CTEQ Set 2ML (MSb) Structure Functions'
1079           IF (FIRST) WRITE(N6,*)
1080      +' Warning !!   :  in principle, set has been retracted by the auth
1081      +ors !'
1082        CALL SFCTQ25(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1083           GOTO 100
1084         ELSEIF(NSET.EQ.22) THEN
1085           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1086      +             ',   Nset = ',NSET,
1087      +             ',  for CTEQ Set 2D (DIS) Structure Functions'
1088           IF (FIRST) WRITE(N6,*)
1089      +' Warning !!   :  in principle, set has been retracted by the auth
1090      +ors !'
1091        CALL SFCTQ26(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1092           GOTO 100
1093         ELSEIF(NSET.EQ.23) THEN
1094           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1095      +             ',   Nset = ',NSET,
1096      +             ',  for CTEQ Set 2pL (LO) Structure Functions'
1097        CALL SRCTQ21(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1098           GOTO 100
1099         ELSEIF(NSET.EQ.24) THEN
1100           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1101      +             ',   Nset = ',NSET,
1102      +             ',  for CTEQ Set 2pM (MSb) Structure Functions'
1103        CALL SRCTQ22(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1104           GOTO 100
1105         ELSEIF(NSET.EQ.25) THEN
1106           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1107      +             ',   Nset = ',NSET,
1108      +             ',  for CTEQ Set 2pMS (MSb) Structure Functions'
1109        CALL SRCTQ23(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1110           GOTO 100
1111         ELSEIF(NSET.EQ.26) THEN
1112           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1113      +             ',   Nset = ',NSET,
1114      +             ',  for CTEQ Set 2pMF (MSb) Structure Functions'
1115        CALL SRCTQ24(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1116           GOTO 100
1117         ELSEIF(NSET.EQ.27) THEN
1118           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1119      +             ',   Nset = ',NSET,
1120      +             ',  for CTEQ Set 2pML (MSb) Structure Functions'
1121        CALL SRCTQ25(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1122           GOTO 100
1123         ELSEIF(NSET.EQ.28) THEN
1124           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1125      +             ',   Nset = ',NSET,
1126      +             ',  for CTEQ Set 2pD (DIS) Structure Functions'
1127        CALL SRCTQ26(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1128           GOTO 100
1129         ELSEIF(NSET.EQ.29) THEN
1130           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1131      +             ',   Nset = ',NSET,
1132      +             ',  for CTEQ Set 3L (LO) Structure Functions'
1133        CALL SFCTQ31(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1134           GOTO 100
1135         ELSEIF(NSET.EQ.30) THEN
1136           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1137      +             ',   Nset = ',NSET,
1138      +             ',  for CTEQ Set 3M (MSb) Structure Functions'
1139        CALL SFCTQ32(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1140           GOTO 100
1141         ELSEIF(NSET.EQ.31) THEN
1142           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1143      +             ',   Nset = ',NSET,
1144      +             ',  for CTEQ Set 3D (DIS) Structure Functions'
1145        CALL SFCTQ33(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1146           GOTO 100
1147         ELSEIF(NSET.EQ.32) THEN
1148           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1149      +             ',   Nset = ',NSET,
1150      +             ',  for CTEQ Set 4L (LO) Structure Functions'
1151        CALL SFCTQ41(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1152           GOTO 100
1153         ELSEIF(NSET.EQ.33) THEN
1154           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1155      +             ',   Nset = ',NSET,
1156      +             ',  for CTEQ Set 4D (DIS) Structure Functions'
1157        CALL SFCTQ42(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1158           GOTO 100
1159         ELSEIF(NSET.EQ.34) THEN
1160           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1161      +             ',   Nset = ',NSET,
1162      +             ',  for CTEQ Set 4M (MSb) Structure Functions'
1163        CALL SFCTQ43(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1164           GOTO 100
1165         ELSEIF(NSET.EQ.35) THEN
1166           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1167      +             ',   Nset = ',NSET,
1168      +             ',  for CTEQ Set 4A1 (MSb) Structure Functions'
1169        CALL SFCTQ44(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1170           GOTO 100
1171         ELSEIF(NSET.EQ.36) THEN
1172           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1173      +             ',   Nset = ',NSET,
1174      +             ',  for CTEQ Set 4A2 (MSb) Structure Functions'
1175        CALL SFCTQ45(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1176           GOTO 100
1177         ELSEIF(NSET.EQ.37) THEN
1178           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1179      +             ',   Nset = ',NSET,
1180      +             ',  for CTEQ Set 4A3 (MSb) Structure Functions'
1181        CALL SFCTQ43(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1182           GOTO 100
1183         ELSEIF(NSET.EQ.38) THEN
1184           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1185      +             ',   Nset = ',NSET,
1186      +             ',  for CTEQ Set 4A4 (MSb) Structure Functions'
1187        CALL SFCTQ46(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1188           GOTO 100
1189         ELSEIF(NSET.EQ.39) THEN
1190           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1191      +             ',   Nset = ',NSET,
1192      +             ',  for CTEQ Set 4A5 (MSb) Structure Functions'
1193        CALL SFCTQ47(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1194           GOTO 100
1195         ELSEIF(NSET.EQ.40) THEN
1196           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1197      +             ',   Nset = ',NSET,
1198      +             ',  for CTEQ Set 4HJ (MSb) Structure Functions'
1199        CALL SFCTQ48(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1200           GOTO 100
1201         ELSEIF(NSET.EQ.41) THEN
1202           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1203      +             ',   Nset = ',NSET,
1204      +             ',  for CTEQ Set 4LQ (MSb) Structure Functions'
1205        CALL SFCTQ49(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1206           GOTO 100
1207         ELSEIF(NSET.GE.42) THEN
1208           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1209      +             ',   Nset = ',NSET,
1210      +             ',  Structure Functions not yet exsistent'
1211           STOP
1212         ENDIF
1213       ELSEIF(NGROUP.EQ.5) THEN
1214         IF(NSET.EQ.1) THEN
1215           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1216      +             ',   Nset = ',NSET,
1217      +             ',  for old GRV Set HO Structure Functions'
1218           IF (FIRST) WRITE(N6,*)
1219      +' Warning !!   :  in principle, set has been retracted by the auth
1220      +ors !'
1221           CALL SFGRVH(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1222           DDSEA = DUSEA
1223           GOTO 100
1224         ELSEIF(NSET.EQ.2) THEN
1225           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1226      +             ',   Nset = ',NSET,
1227      +             ',  for old GRV Set LO Structure Functions'
1228           IF (FIRST) WRITE(N6,*)
1229      +' Warning !!   :  in principle, set has been retracted by the auth
1230      +ors !'
1231           CALL SFGRVL(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1232           DDSEA = DUSEA
1233           GOTO 100
1234         ELSEIF(NSET.EQ.3) THEN
1235           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1236      +             ',   Nset = ',NSET,
1237      +             ',  for GRV Set HO Structure Functions'
1238           CALL GRVHO(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1239           DDSEA = DUSEA
1240           GOTO 100
1241         ELSEIF(NSET.EQ.4) THEN
1242           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1243      +             ',   Nset = ',NSET,
1244      +             ',  for GRV Set LO Structure Functions'
1245           CALL GRVLO(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1246           DDSEA = DUSEA
1247           GOTO 100
1248         ELSEIF(NSET.EQ.5) THEN
1249           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1250      +             ',   Nset = ',NSET,
1251      +             ',  for GRV-94 Set LO Structure Functions'
1252           CALL GRVLO(DX,DQ,ZUPV,ZDNV,ZUSEA,ZSTR,DCHM,DBOT,DTOP,ZGL)
1253           CALL GRV94LO(DX,DQ,
1254      +                 DUPV,DDNV,DUSEA,DDSEA,DSTR,ZCHM,ZBOT,ZTOP,DGL)
1255           GOTO 100
1256         ELSEIF(NSET.EQ.6) THEN
1257           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1258      +             ',   Nset = ',NSET,
1259      +             ',  for GRV-94 Set HO (MSb) Structure Functions'
1260           CALL GRVHO(DX,DQ,ZUPV,ZDNV,ZUSEA,ZSTR,DCHM,DBOT,DTOP,ZGL)
1261           CALL GRV94HO(DX,DQ,
1262      +                 DUPV,DDNV,DUSEA,DDSEA,DSTR,ZCHM,ZBOT,ZTOP,DGL)
1263           GOTO 100
1264         ELSEIF(NSET.EQ.7) THEN
1265           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1266      +             ',   Nset = ',NSET,
1267      +             ',  for GRV-94 Set HO (DIS) Structure Functions'
1268           CALL GRVHO(DX,DQ,ZUPV,ZDNV,ZUSEA,ZSTR,DCHM,DBOT,DTOP,ZGL)
1269           CALL GRV94DI(DX,DQ,
1270      +                 DUPV,DDNV,DUSEA,DDSEA,DSTR,ZCHM,ZBOT,ZTOP,DGL)
1271           GOTO 100
1272         ELSEIF(NSET.EQ.8) THEN
1273           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1274      +             ',   Nset = ',NSET,
1275      +    ',  for GRSV Set LO polarized Structure Functions (standard)'
1276           CALL GRSVL1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1277           DDSEA = DUSEA
1278           GOTO 200
1279         ELSEIF(NSET.EQ.9) THEN
1280           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1281      +             ',   Nset = ',NSET,
1282      +    ',  for GRSV Set LO polarized Structure Functions (valence)'
1283           CALL GRSVL2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1284           DDSEA = DUSEA
1285           GOTO 200
1286         ELSEIF(NSET.EQ.10) THEN
1287           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1288      +             ',   Nset = ',NSET,
1289      +    ',  for GRSV Set NLO polarized Structure Functions (standard)'
1290           CALL GRSVH1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1291           DDSEA = DUSEA
1292           GOTO 200
1293         ELSEIF(NSET.EQ.11) THEN
1294           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1295      +             ',   Nset = ',NSET,
1296      +    ',  for GRSV Set NLO polarized Structure Functions (valence)'
1297           CALL GRSVH2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1298           DDSEA = DUSEA
1299           GOTO 200
1300         ELSEIF(NSET.GE.12) THEN
1301           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1302      +             ',   Nset = ',NSET,
1303      +             ',  Structure Functions not yet exsistent'
1304           STOP
1305         ENDIF
1306       ELSEIF(NGROUP.EQ.6) THEN
1307         IF(NSET.EQ.1) THEN
1308           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1309      +             ',   Nset = ',NSET,
1310      +             ',  for ABFOW Structure Functions'
1311           CALL SFABFOW(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1312           DBOT=ZEROD
1313           DTOP=ZEROD
1314           GOTO 100
1315         ELSEIF(NSET.GE.2) THEN
1316           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1317      +             ',   Nset = ',NSET,
1318      +             ',  Structure Functions not yet exsistent'
1319           STOP
1320         ENDIF
1321       ELSEIF(NGROUP.EQ.7) THEN
1322         IF(NSET.EQ.1) THEN
1323           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1324      +             ',   Nset = ',NSET,
1325      +             ',  for BM Set A Structure Functions'
1326           CALL SFBMA(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1327           DTOP=ZEROD
1328           GOTO 100
1329         ELSEIF(NSET.EQ.2) THEN
1330           IF (FIRST) WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1331      +             ',   Nset = ',NSET,
1332      +             ',  for BM Set B Structure Functions'
1333           CALL SFBMB(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1334           DTOP=ZEROD
1335           GOTO 100
1336         ELSEIF(NSET.GE.3) THEN
1337           WRITE(N6,*) ' Nucleon PDFs :  Ngroup = ',NGROUP,
1338      +             ',   Nset = ',NSET,
1339      +             ',  Structure Functions not yet exsistent'
1340           STOP
1341         ENDIF
1342       ELSE
1343         WRITE(N6,*)' NUCLEON Structure function call for unknown GROUP '
1344      +  ,NGROUP,',   and unknown NSET ',NSET
1345         STOP
1346       ENDIF
1347       ENDIF
1348 C Now start PION structure functions
1349       IF(NPTYPE.EQ.2) THEN
1350       IF(NGROUP.EQ.1) THEN
1351         IF(NSET.EQ.1) THEN
1352           IF (FIRST) WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1353      +             ',   Nset = ',NSET,
1354      +             ',  for OW-P Set 1 Structure Functions'
1355           CALL STROWP1(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DGL)
1356           DDSEA = DUSEA
1357           DBOT=ZEROD
1358           DTOP=ZEROD
1359           GOTO 100
1360         ELSEIF(NSET.EQ.2) THEN
1361           IF (FIRST) WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1362      +             ',   Nset = ',NSET,
1363      +             ',  for OW-P Set 2 Structure Functions'
1364           CALL STROWP2(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DGL)
1365           DDSEA = DUSEA
1366           DBOT=ZEROD
1367           DTOP=ZEROD
1368           GOTO 100
1369         ELSEIF(NSET.GE.3) THEN
1370           WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1371      +             ',   Nset = ',NSET,
1372      +             ',  Structure Functions not yet exsistent'
1373           STOP
1374         ENDIF
1375       ELSEIF(NGROUP.EQ.2) THEN
1376         WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1377      +             ',   Nset = ',NSET,
1378      +             ',  Structure Functions not yet exsistent'
1379         STOP
1380       ELSEIF(NGROUP.EQ.3) THEN
1381         IF(NSET.EQ.1) THEN
1382           IF (FIRST) WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1383      +             ',   Nset = ',NSET,
1384      +             ',  for SMRS-P Set 1 Structure Functions'
1385           CALL SMRSP31(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
1386           DDSEA = DUSEA
1387           DTOP=ZEROD
1388           GOTO 100
1389         ELSEIF(NSET.EQ.2) THEN
1390           IF (FIRST) WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1391      +             ',   Nset = ',NSET,
1392      +             ',  for SMRS-P Set 2 Structure Functions'
1393           CALL SMRSP32(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
1394           DDSEA = DUSEA
1395           DTOP=ZEROD
1396           GOTO 100
1397         ELSEIF(NSET.EQ.3) THEN
1398           IF (FIRST) WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1399      +             ',   Nset = ',NSET,
1400      +             ',  for SMRS-P Set 3 Structure Functions'
1401           CALL SMRSP33(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DGL)
1402           DDSEA = DUSEA
1403           DTOP=ZEROD
1404           GOTO 100
1405         ELSEIF(NSET.GE.4) THEN
1406           WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1407      +             ',   Nset = ',NSET,
1408      +             ',  Structure Functions not yet exsistent'
1409           STOP
1410         ENDIF
1411       ELSEIF(NGROUP.EQ.4) THEN
1412         WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1413      +             ',   Nset = ',NSET,
1414      +             ',  Structure Functions not yet exsistent'
1415         STOP
1416       ELSEIF(NGROUP.EQ.5) THEN
1417         IF(NSET.EQ.1) THEN
1418           IF (FIRST) WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1419      +             ',   Nset = ',NSET,
1420      +             ',  for GRV-P Set HO Structure Functions'
1421           CALL GRVPIHO(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1422           DDSEA = DUSEA
1423           GOTO 100
1424         ELSEIF(NSET.EQ.2) THEN
1425           IF (FIRST) WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1426      +             ',   Nset = ',NSET,
1427      +             ',  for GRV-P Set LO Structure Functions'
1428           CALL GRVPILO(DX,DQ,DUPV,DDNV,DUSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1429           DDSEA = DUSEA
1430           GOTO 100
1431         ELSEIF(NSET.GE.3) THEN
1432           WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1433      +             ',   Nset = ',NSET,
1434      +             ',  Structure Functions not yet exsistent'
1435           STOP
1436         ENDIF
1437       ELSEIF(NGROUP.EQ.6) THEN
1438         IF(NSET.EQ.1) THEN
1439           IF (FIRST) WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1440      +             ',   Nset = ',NSET,
1441      +             ',  for ABFKW-P Set 1 Structure Functions'
1442           CALL ABFKW1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1443           DBOT=ZEROD
1444           DTOP=ZEROD
1445           GOTO 100
1446         ELSEIF(NSET.EQ.2) THEN
1447           IF (FIRST) WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1448      +             ',   Nset = ',NSET,
1449      +             ',  for ABFKW-P Set 2 Structure Functions'
1450           CALL ABFKW2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1451           DBOT=ZEROD
1452           DTOP=ZEROD
1453           GOTO 100
1454         ELSEIF(NSET.EQ.3) THEN
1455           IF (FIRST) WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1456      +             ',   Nset = ',NSET,
1457      +             ',  for ABFKW-P Set 3 Structure Functions'
1458           CALL ABFKW3(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1459           DBOT=ZEROD
1460           DTOP=ZEROD
1461           GOTO 100
1462         ELSEIF(NSET.GE.4) THEN
1463           WRITE(N6,*) ' Pion PDFs :  Ngroup = ',NGROUP,
1464      +             ',   Nset = ',NSET,
1465      +             ',  Structure Functions not yet exsistent'
1466           STOP
1467         ENDIF
1468       ELSE
1469         WRITE(N6,*) ' PION Structure function call for unknown GROUP ',
1470      +  NGROUP,',   and unknown NSET ',NSET
1471         STOP
1472       ENDIF
1473       ENDIF
1474 C Now start PHOTON structure functions
1475       IF(NPTYPE.EQ.3) THEN
1476       IF(NGROUP.EQ.1) THEN
1477         IF(NSET.EQ.1) THEN
1478           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1479      +             ',   Nset = ',NSET,
1480      +             ',  for DO-G Set LO Structure Functions'
1481           CALL DOPHO1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1482           DTOP=ZEROD
1483           GOTO 100
1484         ELSEIF(NSET.EQ.2) THEN
1485           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1486      +             ',   Nset = ',NSET,
1487      +             ',  for DO-G Set NLL Structure Functions'
1488           CALL DOPHO2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1489           DTOP=ZEROD
1490           GOTO 100
1491         ELSEIF(NSET.GE.3) THEN
1492           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1493      +             ',   Nset = ',NSET,
1494      +             ',  Structure Functions not yet exsistent'
1495           STOP
1496         ENDIF
1497       ELSEIF(NGROUP.EQ.2) THEN
1498         IF(NSET.EQ.1) THEN
1499           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1500      +             ',   Nset = ',NSET,
1501      +             ',  for DG-G Set 1 Structure Functions'
1502           CALL DGPHO1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1503           DTOP=ZEROD
1504           GOTO 100
1505         ELSEIF(NSET.EQ.2) THEN
1506           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1507      +             ',   Nset = ',NSET,
1508      +             ',  for DG-G Set 2 Structure Functions'
1509           CALL DGPHO2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1510           DTOP=ZEROD
1511           GOTO 100
1512         ELSEIF(NSET.EQ.3) THEN
1513           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1514      +             ',   Nset = ',NSET,
1515      +             ',  for DG-G Set 3 Structure Functions'
1516           CALL DGPHO3(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1517           DBOT=ZEROD
1518           DTOP=ZEROD
1519           GOTO 100
1520         ELSEIF(NSET.EQ.4) THEN
1521           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1522      +             ',   Nset = ',NSET,
1523      +             ',  for DG-G Set 4 Structure Functions'
1524           CALL DGPHO4(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1525           DBOT=ZEROD
1526           DTOP=ZEROD
1527           GOTO 100
1528         ELSEIF(NSET.GE.5) THEN
1529           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1530      +             ',   Nset = ',NSET,
1531      +             ',  Structure Functions not yet exsistent'
1532           STOP
1533         ENDIF
1534       ELSEIF(NGROUP.EQ.3) THEN
1535         IF(NSET.EQ.1) THEN
1536           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1537      +             ',   Nset = ',NSET,
1538      +             ',  for LAC-G Set 1 Structure Functions'
1539        CALL SFLACG1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1540           GOTO 100
1541         ELSEIF(NSET.EQ.2) THEN
1542           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1543      +             ',   Nset = ',NSET,
1544      +             ',  for LAC-G Set 2 Structure Functions'
1545        CALL SFLACG2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1546           GOTO 100
1547         ELSEIF(NSET.EQ.3) THEN
1548           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1549      +             ',   Nset = ',NSET,
1550      +             ',  for LAC-G Set 3 Structure Functions'
1551        CALL SFLACG3(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DTOP,DGL)
1552           GOTO 100
1553       ELSEIF(NSET.GE.4) THEN
1554           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1555      +             ',   Nset = ',NSET,
1556      +             ',  Structure Functions not yet exsistent'
1557           STOP
1558         ENDIF
1559       ELSEIF(NGROUP.EQ.4) THEN
1560         IF(NSET.EQ.1) THEN
1561           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1562      +             ',   Nset = ',NSET,
1563      +             ',  for GS-G Set HO Structure Functions'
1564           CALL SFGSHO(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1565           DTOP=ZEROD
1566           GOTO 100
1567         ELSEIF(NSET.EQ.2) THEN
1568           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1569      +             ',   Nset = ',NSET,
1570      +             ',  for GS-G LO Set 1 Structure Functions'
1571           CALL SFGSLO1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1572           DTOP=ZEROD
1573           GOTO 100
1574         ELSEIF(NSET.EQ.3) THEN
1575           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1576      +             ',   Nset = ',NSET,
1577      +             ',  for GS-G LO Set 2 Structure Functions'
1578           CALL SFGSLO2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1579           DTOP=ZEROD
1580           GOTO 100
1581         ELSEIF(NSET.EQ.4) THEN
1582           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1583      +             ',   Nset = ',NSET,
1584      +             ',  for GS-96-G HO Structure Functions'
1585           CALL GS96HO(DX,DQ,DUPV,DDNV,DSTR,DCHM,DBOT,DGL)
1586           DUSEA=DUPV
1587           DDSEA=DDNV
1588           DTOP=ZEROD
1589           GOTO 100
1590         ELSEIF(NSET.EQ.5) THEN
1591           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1592      +             ',   Nset = ',NSET,
1593      +             ',  for GS-96-G LO Structure Functions'
1594           CALL GS96LO(DX,DQ,DUPV,DDNV,DSTR,DCHM,DBOT,DGL)
1595           DUSEA=DUPV
1596           DDSEA=DDNV
1597           DTOP=ZEROD
1598           GOTO 100
1599         ELSEIF(NSET.GE.6) THEN
1600           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1601      +             ',   Nset = ',NSET,
1602      +             ',  Structure Functions not yet exsistent'
1603           STOP
1604         ENDIF
1605       ELSEIF(NGROUP.EQ.5) THEN
1606         IF(NSET.EQ.1) THEN
1607           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1608      +             ',   Nset = ',NSET,
1609      +             ',  for GRV-G Set L-HO Structure Functions'
1610           CALL GRVGAH0(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1611           DTOP=ZEROD
1612           GOTO 100
1613         ELSEIF(NSET.EQ.2) THEN
1614           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1615      +             ',   Nset = ',NSET,
1616      +             ',  for GRV-G Set HO Structure Functions'
1617           CALL GRVGAHO(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1618           DTOP=ZEROD
1619           GOTO 100
1620         ELSEIF(NSET.EQ.3) THEN
1621           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1622      +             ',   Nset = ',NSET,
1623      +             ',  for GRV-G Set LO Structure Functions'
1624           CALL GRVGALO(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DBOT,DGL)
1625           DTOP=ZEROD
1626           GOTO 100
1627         ELSEIF(NSET.EQ.4) THEN
1628           IF (FIRST) THEN
1629               WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1630      +             ',   Nset = ',NSET,
1631      +             ',  for GRS-G Set LO Photon Structure Functions'
1632               WRITE(N6,*) ' !! You MUST call STRUCTP ' 
1633               WRITE(N6,*) ' !! to get the INPUT parameters right !!!'
1634           ENDIF
1635           GOTO 100
1636         ELSEIF(NSET.GE.5) THEN
1637           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1638      +             ',   Nset = ',NSET,
1639      +             ',  Structure Functions not yet exsistent'
1640           STOP
1641         ENDIF
1642       ELSEIF(NGROUP.EQ.6) THEN
1643         IF(NSET.EQ.1) THEN
1644           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1645      +             ',   Nset = ',NSET,
1646      +             ',  for ACFGP-G Set HO Structure Functions'
1647           CALL ACFGP1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1648           DBOT=ZEROD
1649           DTOP=ZEROD
1650           GOTO 100
1651         ELSEIF(NSET.EQ.2) THEN
1652           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1653      +             ',   Nset = ',NSET,
1654      +          ',  for ACFGP-G Set HO-mc Structure Functions'
1655           CALL ACFGP2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1656           DBOT=ZEROD
1657           DTOP=ZEROD
1658           GOTO 100
1659         ELSEIF(NSET.EQ.3) THEN
1660           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1661      +             ',   Nset = ',NSET,
1662      +          ',  for AFG-G Set HO Structure Functions'
1663           CALL SFAFG1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1664           DBOT=ZEROD
1665           DTOP=ZEROD
1666           GOTO 100
1667         ELSEIF(NSET.GE.4) THEN
1668           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1669      +             ',   Nset = ',NSET,
1670      +             ',  Structure Functions not yet exsistent'
1671           STOP
1672         ENDIF
1673       ELSEIF(NGROUP.EQ.7) THEN
1674         WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1675      +             ',   Nset = ',NSET,
1676      +             ',  Structure Functions not yet exsistent'
1677         STOP
1678       ELSEIF(NGROUP.EQ.8) THEN
1679         IF(NSET.EQ.1) THEN
1680           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1681      +             ',   Nset = ',NSET,
1682      +          ',  for WHIT-G Set 1 Structure Functions'
1683           CALL SFWHI1(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1684           DBOT=ZEROD
1685           DTOP=ZEROD
1686           GOTO 100
1687         ELSEIF(NSET.EQ.2) THEN
1688           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1689      +             ',   Nset = ',NSET,
1690      +          ',  for WHIT-G Set 2 Structure Functions'
1691           CALL SFWHI2(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1692           DBOT=ZEROD
1693           DTOP=ZEROD
1694           GOTO 100
1695         ELSEIF(NSET.EQ.3) THEN
1696           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1697      +             ',   Nset = ',NSET,
1698      +          ',  for WHIT-G Set 3 Structure Functions'
1699           CALL SFWHI3(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1700           DBOT=ZEROD
1701           DTOP=ZEROD
1702           GOTO 100
1703         ELSEIF(NSET.EQ.4) THEN
1704           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1705      +             ',   Nset = ',NSET,
1706      +          ',  for WHIT-G Set 4 Structure Functions'
1707           CALL SFWHI4(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1708           DBOT=ZEROD
1709           DTOP=ZEROD
1710           GOTO 100
1711         ELSEIF(NSET.EQ.5) THEN
1712           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1713      +             ',   Nset = ',NSET,
1714      +          ',  for WHIT-G Set 5 Structure Functions'
1715           CALL SFWHI5(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1716           DBOT=ZEROD
1717           DTOP=ZEROD
1718           GOTO 100
1719         ELSEIF(NSET.EQ.6) THEN
1720           IF (FIRST) WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1721      +             ',   Nset = ',NSET,
1722      +          ',  for WHIT-G Set 6 Structure Functions'
1723           CALL SFWHI6(DX,DQ,DUPV,DDNV,DUSEA,DDSEA,DSTR,DCHM,DGL)
1724           DBOT=ZEROD
1725           DTOP=ZEROD
1726           GOTO 100
1727         ELSEIF(NSET.GE.7) THEN
1728           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1729      +             ',   Nset = ',NSET,
1730      +             ',  Structure Functions not yet exsistent'
1731           STOP
1732         ENDIF
1733       ELSEIF(NGROUP.EQ.9) THEN
1734         IF(NSET.LE.8) THEN
1735           IF (FIRST) THEN
1736               WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1737      +             ',   Nset = ',NSET,
1738      +             ',  for SAS Photon Structure Functions'
1739               WRITE(N6,*) ' !! You MUST call STRUCTP ' 
1740               WRITE(N6,*) ' !! to get the INPUT parameters right !!!'
1741           ENDIF
1742           GOTO 100
1743         ELSEIF(NSET.GE.9) THEN
1744           WRITE(N6,*) ' Photon PDFs :  Ngroup = ',NGROUP,
1745      +             ',   Nset = ',NSET,
1746      +             ',  Structure Functions not yet exsistent'
1747           STOP
1748         ENDIF
1749       ELSE
1750         WRITE(N6,*)' PHOTON Structure function call for unknown GROUP ',
1751      +  NGROUP,',   and unknown NSET ',NSET
1752         STOP
1753       ENDIF
1754       ENDIF
1755   100 IF(FIRST) WRITE(N6,*)
1756      +' ----------------------------------------------------------------
1757      +------------------------------------------------'
1758       IF (FIRST) FIRST = .FALSE.
1759 C
1760       UPV = MAX( ZEROD,DUPV)
1761       DNV = MAX( ZEROD,DDNV)
1762       USEA = MAX( ZEROD,DUSEA)
1763       DSEA = MAX( ZEROD,DDSEA)
1764       STR = MAX( ZEROD,DSTR)
1765       CHM = MAX( ZEROD,DCHM)
1766       BOT = MAX( ZEROD,DBOT)
1767       TOP = MAX( ZEROD,DTOP)
1768       GL  = MAX( ZEROD,DGL)
1769 C
1770       RETURN
1771 C
1772   200 IF(FIRST) WRITE(N6,*)
1773      +' ----------------------------------------------------------------
1774      +------------------------------------------------'
1775       IF (FIRST) FIRST = .FALSE.
1776 C
1777       UPV = DUPV
1778       DNV = DDNV
1779       USEA = DUSEA
1780       DSEA = DDSEA
1781       STR = DSTR
1782       CHM = DCHM
1783       BOT = DBOT
1784       TOP = DTOP
1785       GL  = DGL
1786 C
1787       RETURN
1788       END