Merge lp:~maddevelopers/mg5amcnlo/2.6.2_heavyion into lp:mg5amcnlo/lts

Proposed by Olivier Mattelaer
Status: Rejected
Rejected by: Olivier Mattelaer
Proposed branch: lp:~maddevelopers/mg5amcnlo/2.6.2_heavyion
Merge into: lp:mg5amcnlo/lts
Prerequisite: lp:~maddm/mg5amcnlo/maddm_dev2
Diff against target: 7538 lines (+810/-5959)
34 files modified
Template/LO/Cards/run_card.dat (+3/-6)
Template/LO/Source/PDF/Ctq4Fn.f (+0/-122)
Template/LO/Source/PDF/Ctq5Par.f (+0/-711)
Template/LO/Source/PDF/Ctq5Pdf.f (+0/-344)
Template/LO/Source/PDF/Partonx5.f (+0/-94)
Template/LO/Source/PDF/PhotonFlux.f (+37/-0)
Template/LO/Source/PDF/cteq3.f (+0/-498)
Template/LO/Source/PDF/jeppe02.f (+0/-160)
Template/LO/Source/PDF/makefile (+1/-3)
Template/LO/Source/PDF/mrs98.f (+0/-506)
Template/LO/Source/PDF/mrs98ht.f (+0/-133)
Template/LO/Source/PDF/mrs98lo.f (+0/-508)
Template/LO/Source/PDF/mrs99.f (+0/-1166)
Template/LO/Source/PDF/mrst2001.f (+0/-513)
Template/LO/Source/PDF/mrst2002.f (+0/-264)
Template/LO/Source/PDF/pdf.f (+228/-227)
Template/LO/Source/PDF/pdfwrap.f (+130/-141)
Template/LO/Source/PDF/pdg2pdf.f (+47/-82)
Template/LO/Source/PDF/pdg2pdf_lhapdf.f (+32/-14)
Template/LO/Source/PDF/pdg2pdf_lhapdf6.f (+46/-14)
Template/LO/Source/gensudgrid.f (+0/-124)
Template/LO/Source/is-sud.f (+0/-254)
Template/LO/Source/run.inc (+8/-0)
Template/LO/SubProcesses/genps.f (+2/-0)
Template/LO/SubProcesses/reweight.f (+8/-8)
madgraph/interface/common_run_interface.py (+27/-3)
madgraph/iolibs/export_v4.py (+4/-3)
madgraph/iolibs/template_files/madevent_symmetry.f (+4/-2)
madgraph/various/banner.py (+146/-26)
madgraph/various/systematics.py (+84/-19)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%genps.inc.moved (+0/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%genps.inc.moved (+0/-4)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%genps.inc.moved (+0/-4)
tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f (+3/-2)
To merge this branch: bzr merge lp:~maddevelopers/mg5amcnlo/2.6.2_heavyion
Reviewer Review Type Date Requested Status
MadTeam Pending
Review via email: mp+342190@code.launchpad.net
To post a comment you must log in.

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Template/LO/Cards/run_card.dat'
2--- Template/LO/Cards/run_card.dat 2018-03-27 12:41:59 +0000
3+++ Template/LO/Cards/run_card.dat 2018-03-27 12:42:00 +0000
4@@ -39,16 +39,13 @@
5 %(lpp2)s = lpp2 ! beam 2 type
6 %(ebeam1)s = ebeam1 ! beam 1 total energy in GeV
7 %(ebeam2)s = ebeam2 ! beam 2 total energy in GeV
8-#*********************************************************************
9-# Beam polarization from -100 (left-handed) to 100 (right-handed) *
10-#*********************************************************************
11- %(polbeam1)s = polbeam1 ! beam polarization for beam 1
12- %(polbeam2)s = polbeam2 ! beam polarization for beam 2
13+$beam_pol
14 #*********************************************************************
15 # PDF CHOICE: this automatically fixes also alpha_s and its evol. *
16 #*********************************************************************
17 %(pdlabel)s = pdlabel ! PDF set
18 %(lhaid)s = lhaid ! if pdlabel=lhapdf, this is the lhapdf number
19+$ion_pdf
20 #*********************************************************************
21 # Renormalization and factorization scales *
22 #*********************************************************************
23@@ -99,7 +96,7 @@
24 #
25 #
26 #*********************************************************************
27-# BW cutoff (M+/-bwcutoff*Gamma) ! Define on/off-shell for "$" and decay
28+# BW cutoff (M+/-bwcutoff*Gamma) ! Define on/off-shell for "$$" and decay
29 #*********************************************************************
30 %(bwcutoff)s = bwcutoff ! (M+/-bwcutoff*Gamma)
31 #*********************************************************************
32
33=== removed file 'Template/LO/Source/PDF/Ctq4Fn.f'
34--- Template/LO/Source/PDF/Ctq4Fn.f 2010-10-30 03:26:37 +0000
35+++ Template/LO/Source/PDF/Ctq4Fn.f 1970-01-01 00:00:00 +0000
36@@ -1,122 +0,0 @@
37-C*****Butchered by RKE to remove polint and readtbl which are common to
38-C*****Ctq4Fn and Ctq5Pdf
39-
40-C============================================================================
41-C CTEQ Parton Distribution Functions: Version 4
42-C June 21, 1996
43-C
44-C By: H.L. Lai, J. Huston, S. Kuhlmann, F. Olness, J. Owens, D. Soper
45-C W.K. Tung, H. Weerts
46-C Ref: MSUHEP-60426, CTEQ-604, e-Print Archive: hep-ph/9606399
47-C
48-C This package contains 9 sets of CTEQ4 PDF's. Details are:
49-C ---------------------------------------------------------------------------
50-C Iset PDF Description Alpha_s(Mz) Q0(GeV) Table_File
51-C ---------------------------------------------------------------------------
52-C 1 CTEQ4M Standard MSbar scheme 0.116 1.6 cteq4m.tbl
53-C 2 CTEQ4D Standard DIS scheme 0.116 1.6 cteq4d.tbl
54-C 3 CTEQ4L Leading Order 0.116 1.6 cteq4l.tbl
55-C 4 CTEQ4A1 Alpha_s series 0.110 1.6 cteq4a1.tbl
56-C 5 CTEQ4A2 Alpha_s series 0.113 1.6 cteq4a2.tbl
57-C 6 CTEQ4A3 same as CTEQ4M 0.116 1.6 cteq4m.tbl
58-C 7 CTEQ4A4 Alpha_s series 0.119 1.6 cteq4a4.tbl
59-C 8 CTEQ4A5 Alpha_s series 0.122 1.6 cteq4a5.tbl
60-C 9 CTEQ4HJ High Jet 0.116 1.6 cteq4hj.tbl
61-C 10 CTEQ4LQ Low Q0 0.114 0.7 cteq4lq.tbl
62-C ---------------------------------------------------------------------------
63-C
64-C The available applied range is 10^-5 < x < 1 and 1.6 < Q < 10,000 (GeV)
65-C except CTEQ4LQ for which Q starts at a lower value of 0.7 GeV.
66-C The Table_Files are assumed to be in the working directory.
67-C
68-C The function Ctq4Fn (Iset, Iparton, X, Q)
69-C returns the parton distribution inside the proton for parton [Iparton]
70-C at [X] Bjorken_X and scale [Q] (GeV) in PDF set [Iset].
71-C Iparton is the parton label (5, 4, 3, 2, 1, 0, -1, ......, -5)
72-C for (b, c, s, d, u, g, u_bar, ..., b_bar)
73-C
74-C For detailed information on the parameters used, e.q. quark masses,
75-C QCD Lambda, ... etc., see info lines at the beginning of the
76-C Table_Files.
77-
78-C These programs, as provided, are in double precision. By removing the
79-C "Implicit Double Precision" lines, they can also be run in single
80-C precision.
81-C
82-C If you have detailed questions concerning these CTEQ4 distributions,
83-C or if you find problems/bugs using this package, direct inquires to
84-C Hung-Liang Lai(Lai_H@pa.msu.edu) or Wu-Ki Tung(Tung@pa.msu.edu).
85-C
86-C===========================================================================
87-
88- Function Ctq4Fn (Iset, Iparton, X, Q)
89- Implicit Double Precision (A-H,O-Z)
90- Character Flnm(10)*11,TableFile*40
91-
92- Common
93- > / CtqPar2 / Nx, Nt, NfMx
94- > / QCDtable / Alambda, Nfl, Iorder
95- Data (Flnm(I), I=1,10)
96- > / 'cteq4m.tbl ', 'cteq4d.tbl ', 'cteq4l.tbl '
97- > , 'cteq4a1.tbl', 'cteq4a2.tbl', 'cteq4m.tbl ', 'cteq4a4.tbl'
98- > , 'cteq4a5.tbl', 'cteq4hj.tbl', 'cteq4lq.tbl' /
99- Data Isetold, Isetmin, Isetmax / -987, 1, 10 /
100- save
101-
102-C If data file not initialized, do so.
103- If(Iset.ne.Isetold) then
104- If (Iset.lt.Isetmin .or. Iset.gt.Isetmax) Then
105- Print *, 'Invalid Iset number in Ctq4Fn :', Iset
106- Stop
107- Endif
108- IU= NextUt()
109-c Open(IU, File='Pdfdata/'//Flnm(Iset), Status='OLD', Err=100)
110- TableFile=Flnm(Iset)
111- call OpenData(TableFile)
112-c write (*,*) TableFile
113-c write(*,*) 'iu',iu
114- Call ReadTbl (IU)
115- Close (IU)
116- Isetold=Iset
117- Endif
118-
119- If (X .lt. 0D0 .or. X .gt. 1D0) Then
120- Print *, 'X out of range in Ctq4Fn: ', X
121- Stop
122- Endif
123- If (Q .lt. Alambda) Then
124- Print *, 'Q out of range in Ctq4Fn: ', Q
125- Stop
126- Endif
127- If (Iparton .lt. -NfMx .or. Iparton .gt. NfMx) Then
128- Print *, 'Iparton out of range in Ctq4Fn: ', Iparton
129- Stop
130- Endif
131-
132- Ctq4Fn = PartonX (Iparton, X, Q)
133- if(Ctq4Fn.lt.0.D0) Ctq4Fn = 0.D0
134-
135- Return
136-
137- 100 Print *, ' Data file ', Flnm(Iset), ' cannot be opened '
138- >//'in Ctq4Fn!!'
139- Stop
140-C ********************
141- End
142-
143- Function NextUt()
144-C Returns an unallocated FORTRAN i/o unit.
145- Logical EX
146-C
147- Do 10 N = 10, 300
148- INQUIRE (UNIT=N, OPENED=EX)
149- If (.NOT. EX) then
150- NextUt = N
151- Return
152- Endif
153- 10 Continue
154- Stop ' There is no available I/O unit. '
155-C *************************
156- End
157-C
158-
159
160=== removed file 'Template/LO/Source/PDF/Ctq5Par.f'
161--- Template/LO/Source/PDF/Ctq5Par.f 2010-10-30 03:26:37 +0000
162+++ Template/LO/Source/PDF/Ctq5Par.f 1970-01-01 00:00:00 +0000
163@@ -1,711 +0,0 @@
164-C CTEQ5M1 and CTEQ5L Parton Distribution Functions in Parametrized Form
165-C
166-C September 15, 1999
167-C
168-C Ref: "GLOBAL QCD ANALYSIS OF PARTON STRUCTURE OF THE NUCLEON:
169-C CTEQ5 PPARTON DISTRIBUTIONS"
170-C hep-ph/9903282
171-C
172-C The CTEQ5M1 set given here is an updated version of the original CTEQ5M
173-C set posted, in the table version, on the Web page of CTEQ.
174-C The differences between CTEQ5M and CTEQ5M1 are insignificant for almost
175-C all applications.
176-C The improvement is in the QCD evolution which is now more accurate, and
177-C which agrees completely with the benchmark work of the HERA 96/97 Workshop.
178-
179-C The differences between the parametrized and the corresponding table ver-
180-C sions (on which it is based) are of similar order as between the two version.
181-C
182-C!! Because accurate parametrizations over a wide range of (x,Q) is hard to
183-C obtain, only the most widely used sets CTEQ5M and CTEQ5L are available
184-C in parametrized form for now.
185-
186-C These parametrizations were obtained by Jon Pumplin.
187-C
188-C ******************************
189-C Iset PDF Description Alpha_s(Mz) Lam4 Lam5
190-C ---------------------------------------------------------------------------
191-C 1 CTEQ5M1 Standard NLO MSbar scheme 0.118 326 226
192-C 3 CTEQ5L Leading Order 0.127 192 146
193-C ---------------------------------------------------------------------------
194-C Note the Qcd-lambda values given for CTEQ5L is for the leading order
195-C form of Alpha_s!! Alpha_s(Mz) gives the absolute calibration.
196-
197-C The two Iset value are adopted to agree with the standard table versions.
198-
199-C The following user-callable routines are provided:
200-C
201-C FUNCTION Ctq5Pd (Iset, Iprtn, X, Q, Irt)
202-C returns the PROBABILITY density for a GIVEN flavor;
203-C
204-C FUNCTION Ctq5df (Iset, Iprtn, X, Q, Irt)
205-C returns the MOMENTUM density of a GIVEN valence or sea distribution.
206-C
207-C SUBROUTINE Ctq5Pds(Iset, Pdf, X, Q, Irt)
208-C returns an array of MOMENTUM densities for ALL flavors;
209-C****************************************************************************
210-C Added by Tim Stelzer
211-c subroutine pftopdg(x,Q,pdf)
212-c subroutine pdfset(parm,val)
213-c
214-c
215-C
216-C The arguments of these routines are as follows:
217-C
218-C Iset is the set number: 1 for CTEQ5M1 or 3 for CTEQ5L
219-C
220-C Iprtn is the parton label (6, 5, 4, 3, 2, 1, 0, -1, ......, -6)
221-C for (t, b, c, s, d, u, g, u_bar, ..., t_bar)
222-C *** WARNING: We use the parton label 2 as D-quark and 1 as U-quark,
223-C which might be different from your labels.
224-C
225-C X, Q are the usual x, Q;
226-C
227-C Irt is an error code: 0 if there was no error; 1 or more if (x,q) was
228-C outside the range of validity of the parametrization.
229-C
230-C Range of validity:
231-C
232-C The range of (x, Q) covered by this parametrization of the QCD evolved
233-C parton distributions is 1E-6 < x < 1 ; 1.1 GeV < Q < 10 TeV. Of course,
234-C the PDF's are constrained by data only in a subset of that region; and
235-C the assumed DGLAP evolution is unlikely to be valid for all of it either.
236-C
237-C The range of (x, Q) used in the CTEQ5 round of global analysis is
238-C approximately 0.01 < x < 0.75 ; and 4 GeV^2 < Q^2 < 400 GeV^2 for
239-C fixed target experiments; 0.0001 < x < 0.3 from HERA data; and
240-C Q^2 up to 40,000 GeV^2 from Tevatron inclusive Jet data.
241-C
242-C DOUBLE PRECISION is used throughout in these routines, but conversion to
243-C SINGLE PRECISION is possible by removing the Implicit Double Precision statements.
244-C
245-C **************************************************************************
246-
247-
248-C ********************************************************
249- FUNCTION CTQ5PD(ISET, IPARTON, X, Q, IRT)
250-C ********************************************************
251- IMPLICIT DOUBLE PRECISION (A-H, O-Z)
252-
253-c if called at a point (x,q) that is outside the region that was
254-c actually parametrized, return a value of 0, and set the error code IRT=1.
255-c The user can remove the following IF statement to receive instead an
256-c extrapolated value, which may be wildly unphysical.
257- if((x .lt. 1.e-6). or. (x .gt. 1.)
258- & .or. (q .lt. .99) .or. (q .gt. 10000.)) then
259- ctq5pd = 0.d0
260- irt = 1
261- return
262- endif
263-
264- irt = 0
265- if(iset .eq. 3) then
266- ctq5pd = ctq5L(iparton,x,q)
267- elseif(iset .eq. 1) then
268- ctq5pd = ctq5Mi(iparton,x,q)
269- else
270- print *,'iset=',iset,' has not been parametrized.'
271- print '(/A)', 'Use the interpolation-table version instead.'
272- stop
273- endif
274-
275- return
276- end
277-
278-C ********************************************************
279- FUNCTION CTQ5DF(ISET, IFL, X, Q, IRT)
280-C ********************************************************
281- IMPLICIT DOUBLE PRECISION (A-H, O-Z)
282-
283- CTQ5DF = X * CTQ5PD(ISET, IPARTON, X, Q, IRT)
284-
285- RETURN
286- END
287-
288-C ********************************************************
289- SUBROUTINE CTQ5PDS(ISET, PDF, X, Q, IRT)
290-C ********************************************************
291- IMPLICIT DOUBLE PRECISION (A-H, O-Z)
292- DIMENSION PDF (-6:6)
293-
294- IRT = 0
295-
296- DO IFL= -6,2
297- PDF(IFL) = CTQ5PD(ISET,IFL,X,Q,IRT1)
298- IRT = IRT + IRT1
299-
300- IF (IFL .LE. -3) THEN
301- PDF(-IFL) = PDF(IFL)
302- ENDIF
303-
304- ENDDO
305-
306- RETURN
307- END
308-
309-c --------------------------------------------------------------------------
310- double precision function ctq5MI(ifl,x,q)
311-c Parametrization of cteq5MI parton distribution functions (J. Pumplin 9/99).
312-c ifl: 1=u,2=d,3=s,4=c,5=b;0=gluon;-1=ubar,-2=dbar,-3=sbar,-4=cbar,-5=bbar.
313-c --------------------------------------------------------------------------
314- implicit double precision (a-h,o-z)
315- integer ifl
316-
317- ii = ifl
318- if(ii .gt. 2) then
319- ii = -ii
320- endif
321-
322- if(ii .eq. -1) then
323- sum = faux5MI(-1,x,q)
324- ratio = faux5MI(-2,x,q)
325- ctq5MI = sum/(1.d0 + ratio)
326-
327- elseif(ii .eq. -2) then
328- sum = faux5MI(-1,x,q)
329- ratio = faux5MI(-2,x,q)
330- ctq5MI = sum*ratio/(1.d0 + ratio)
331-
332- elseif(ii .ge. -5) then
333- ctq5MI = faux5MI(ii,x,q)
334-
335- else
336- ctq5MI = 0.d0
337-
338- endif
339-
340- return
341- end
342-
343-c ---------------------------------------------------------------------
344- double precision function faux5MI(ifl,x,q)
345-c auxiliary function for parametrization of CTEQ5MI (J. Pumplin 9/99).
346-c ---------------------------------------------------------------------
347- implicit double precision (a-h,o-z)
348- integer ifl
349-
350- parameter (nex=8, nlf=2)
351- dimension am(0:nex,0:nlf,-5:2)
352- dimension alfvec(-5:2), qmavec(-5:2)
353- dimension mexvec(-5:2), mlfvec(-5:2)
354- dimension ut1vec(-5:2), ut2vec(-5:2)
355- dimension af(0:nex)
356-
357- data mexvec( 2) / 8 /
358- data mlfvec( 2) / 2 /
359- data ut1vec( 2) / 0.5141718E+01 /
360- data ut2vec( 2) / -0.1346944E+01 /
361- data alfvec( 2) / 0.5260555E+00 /
362- data qmavec( 2) / 0.0000000E+00 /
363- data (am( 0,k, 2),k=0, 2)
364- & / 0.4289071E+01, -0.2536870E+01, -0.1259948E+01 /
365- data (am( 1,k, 2),k=0, 2)
366- & / 0.9839410E+00, 0.4168426E-01, -0.5018952E-01 /
367- data (am( 2,k, 2),k=0, 2)
368- & / -0.1651961E+02, 0.9246261E+01, 0.5996400E+01 /
369- data (am( 3,k, 2),k=0, 2)
370- & / -0.2077936E+02, 0.9786469E+01, 0.7656465E+01 /
371- data (am( 4,k, 2),k=0, 2)
372- & / 0.3054926E+02, 0.1889536E+01, 0.1380541E+01 /
373- data (am( 5,k, 2),k=0, 2)
374- & / 0.3084695E+02, -0.1212303E+02, -0.1053551E+02 /
375- data (am( 6,k, 2),k=0, 2)
376- & / -0.1426778E+02, 0.6239537E+01, 0.5254819E+01 /
377- data (am( 7,k, 2),k=0, 2)
378- & / -0.1909811E+02, 0.3695678E+01, 0.5495729E+01 /
379- data (am( 8,k, 2),k=0, 2)
380- & / 0.1889751E-01, 0.5027193E-02, 0.6624896E-03 /
381-
382- data mexvec( 1) / 8 /
383- data mlfvec( 1) / 2 /
384- data ut1vec( 1) / 0.4138426E+01 /
385- data ut2vec( 1) / -0.3221374E+01 /
386- data alfvec( 1) / 0.4960962E+00 /
387- data qmavec( 1) / 0.0000000E+00 /
388- data (am( 0,k, 1),k=0, 2)
389- & / 0.1332497E+01, -0.3703718E+00, 0.1288638E+00 /
390- data (am( 1,k, 1),k=0, 2)
391- & / 0.7544687E+00, 0.3255075E-01, -0.4706680E-01 /
392- data (am( 2,k, 1),k=0, 2)
393- & / -0.7638814E+00, 0.5008313E+00, -0.9237374E-01 /
394- data (am( 3,k, 1),k=0, 2)
395- & / -0.3689889E+00, -0.1055098E+01, -0.4645065E+00 /
396- data (am( 4,k, 1),k=0, 2)
397- & / 0.3991610E+02, 0.1979881E+01, 0.1775814E+01 /
398- data (am( 5,k, 1),k=0, 2)
399- & / 0.6201080E+01, 0.2046288E+01, 0.3804571E+00 /
400- data (am( 6,k, 1),k=0, 2)
401- & / -0.8027900E+00, -0.7011688E+00, -0.8049612E+00 /
402- data (am( 7,k, 1),k=0, 2)
403- & / -0.8631305E+01, -0.3981200E+01, 0.6970153E+00 /
404- data (am( 8,k, 1),k=0, 2)
405- & / 0.2371230E-01, 0.5372683E-02, 0.1118701E-02 /
406-
407- data mexvec( 0) / 8 /
408- data mlfvec( 0) / 2 /
409- data ut1vec( 0) / -0.1026789E+01 /
410- data ut2vec( 0) / -0.9051707E+01 /
411- data alfvec( 0) / 0.9462977E+00 /
412- data qmavec( 0) / 0.0000000E+00 /
413- data (am( 0,k, 0),k=0, 2)
414- & / 0.1191990E+03, -0.8548739E+00, -0.1963040E+01 /
415- data (am( 1,k, 0),k=0, 2)
416- & / -0.9449972E+02, 0.1074771E+01, 0.2056055E+01 /
417- data (am( 2,k, 0),k=0, 2)
418- & / 0.3701064E+01, -0.1167947E-02, 0.1933573E+00 /
419- data (am( 3,k, 0),k=0, 2)
420- & / 0.1171345E+03, -0.1064540E+01, -0.1875312E+01 /
421- data (am( 4,k, 0),k=0, 2)
422- & / -0.1014453E+03, -0.5707427E+00, 0.4511242E-01 /
423- data (am( 5,k, 0),k=0, 2)
424- & / 0.6365168E+01, 0.1275354E+01, -0.4964081E+00 /
425- data (am( 6,k, 0),k=0, 2)
426- & / -0.3370693E+01, -0.1122020E+01, 0.5947751E-01 /
427- data (am( 7,k, 0),k=0, 2)
428- & / -0.5327270E+01, -0.9293556E+00, 0.6629940E+00 /
429- data (am( 8,k, 0),k=0, 2)
430- & / 0.2437513E-01, 0.1600939E-02, 0.6855336E-03 /
431-
432- data mexvec(-1) / 8 /
433- data mlfvec(-1) / 2 /
434- data ut1vec(-1) / 0.5243571E+01 /
435- data ut2vec(-1) / -0.2870513E+01 /
436- data alfvec(-1) / 0.6701448E+00 /
437- data qmavec(-1) / 0.0000000E+00 /
438- data (am( 0,k,-1),k=0, 2)
439- & / 0.2428863E+02, 0.1907035E+01, -0.4606457E+00 /
440- data (am( 1,k,-1),k=0, 2)
441- & / 0.2006810E+01, -0.1265915E+00, 0.7153556E-02 /
442- data (am( 2,k,-1),k=0, 2)
443- & / -0.1884546E+02, -0.2339471E+01, 0.5740679E+01 /
444- data (am( 3,k,-1),k=0, 2)
445- & / -0.2527892E+02, -0.2044124E+01, 0.1280470E+02 /
446- data (am( 4,k,-1),k=0, 2)
447- & / -0.1013824E+03, -0.1594199E+01, 0.2216401E+00 /
448- data (am( 5,k,-1),k=0, 2)
449- & / 0.8070930E+02, 0.1792072E+01, -0.2164364E+02 /
450- data (am( 6,k,-1),k=0, 2)
451- & / -0.4641050E+02, 0.1977338E+00, 0.1273014E+02 /
452- data (am( 7,k,-1),k=0, 2)
453- & / -0.3910568E+02, 0.1719632E+01, 0.1086525E+02 /
454- data (am( 8,k,-1),k=0, 2)
455- & / -0.1185496E+01, -0.1905847E+00, -0.8744118E-03 /
456-
457- data mexvec(-2) / 7 /
458- data mlfvec(-2) / 2 /
459- data ut1vec(-2) / 0.4782210E+01 /
460- data ut2vec(-2) / -0.1976856E+02 /
461- data alfvec(-2) / 0.7558374E+00 /
462- data qmavec(-2) / 0.0000000E+00 /
463- data (am( 0,k,-2),k=0, 2)
464- & / -0.6216935E+00, 0.2369963E+00, -0.7909949E-02 /
465- data (am( 1,k,-2),k=0, 2)
466- & / 0.1245440E+01, -0.1031510E+00, 0.4916523E-02 /
467- data (am( 2,k,-2),k=0, 2)
468- & / -0.7060824E+01, -0.3875283E-01, 0.1784981E+00 /
469- data (am( 3,k,-2),k=0, 2)
470- & / -0.7430595E+01, 0.1964572E+00, -0.1284999E+00 /
471- data (am( 4,k,-2),k=0, 2)
472- & / -0.6897810E+01, 0.2620543E+01, 0.8012553E-02 /
473- data (am( 5,k,-2),k=0, 2)
474- & / 0.1507713E+02, 0.2340307E-01, 0.2482535E+01 /
475- data (am( 6,k,-2),k=0, 2)
476- & / -0.1815341E+01, -0.1538698E+01, -0.2014208E+01 /
477- data (am( 7,k,-2),k=0, 2)
478- & / -0.2571932E+02, 0.2903941E+00, -0.2848206E+01 /
479-
480- data mexvec(-3) / 7 /
481- data mlfvec(-3) / 2 /
482- data ut1vec(-3) / 0.4518239E+01 /
483- data ut2vec(-3) / -0.2690590E+01 /
484- data alfvec(-3) / 0.6124079E+00 /
485- data qmavec(-3) / 0.0000000E+00 /
486- data (am( 0,k,-3),k=0, 2)
487- & / -0.2734458E+01, -0.7245673E+00, -0.6351374E+00 /
488- data (am( 1,k,-3),k=0, 2)
489- & / 0.2927174E+01, 0.4822709E+00, -0.1088787E-01 /
490- data (am( 2,k,-3),k=0, 2)
491- & / -0.1771017E+02, -0.1416635E+01, 0.8467622E+01 /
492- data (am( 3,k,-3),k=0, 2)
493- & / -0.4972782E+02, -0.3348547E+01, 0.1767061E+02 /
494- data (am( 4,k,-3),k=0, 2)
495- & / -0.7102770E+01, -0.3205337E+01, 0.4101704E+00 /
496- data (am( 5,k,-3),k=0, 2)
497- & / 0.7169698E+02, -0.2205985E+01, -0.2463931E+02 /
498- data (am( 6,k,-3),k=0, 2)
499- & / -0.4090347E+02, 0.2103486E+01, 0.1416507E+02 /
500- data (am( 7,k,-3),k=0, 2)
501- & / -0.2952639E+02, 0.5376136E+01, 0.7825585E+01 /
502-
503- data mexvec(-4) / 7 /
504- data mlfvec(-4) / 2 /
505- data ut1vec(-4) / 0.2783230E+01 /
506- data ut2vec(-4) / -0.1746328E+01 /
507- data alfvec(-4) / 0.1115653E+01 /
508- data qmavec(-4) / 0.1300000E+01 /
509- data (am( 0,k,-4),k=0, 2)
510- & / -0.1743872E+01, -0.1128921E+01, -0.2841969E+00 /
511- data (am( 1,k,-4),k=0, 2)
512- & / 0.3345755E+01, 0.3187765E+00, 0.1378124E+00 /
513- data (am( 2,k,-4),k=0, 2)
514- & / -0.2037615E+02, 0.4121687E+01, 0.2236520E+00 /
515- data (am( 3,k,-4),k=0, 2)
516- & / -0.4703104E+02, 0.5353087E+01, -0.1455347E+01 /
517- data (am( 4,k,-4),k=0, 2)
518- & / -0.1060230E+02, -0.1551122E+01, -0.1078863E+01 /
519- data (am( 5,k,-4),k=0, 2)
520- & / 0.5088892E+02, -0.8197304E+01, 0.8083451E+01 /
521- data (am( 6,k,-4),k=0, 2)
522- & / -0.2819070E+02, 0.4554086E+01, -0.5890995E+01 /
523- data (am( 7,k,-4),k=0, 2)
524- & / -0.1098238E+02, 0.2590096E+01, -0.8062879E+01 /
525-
526- data mexvec(-5) / 6 /
527- data mlfvec(-5) / 2 /
528- data ut1vec(-5) / 0.1619654E+02 /
529- data ut2vec(-5) / -0.3367346E+01 /
530- data alfvec(-5) / 0.5109891E-02 /
531- data qmavec(-5) / 0.4500000E+01 /
532- data (am( 0,k,-5),k=0, 2)
533- & / -0.6800138E+01, 0.2493627E+01, -0.1075724E+01 /
534- data (am( 1,k,-5),k=0, 2)
535- & / 0.3036555E+01, 0.3324733E+00, 0.2008298E+00 /
536- data (am( 2,k,-5),k=0, 2)
537- & / -0.5203879E+01, -0.8493476E+01, -0.4523208E+01 /
538- data (am( 3,k,-5),k=0, 2)
539- & / -0.1524239E+01, -0.3411912E+01, -0.1771867E+02 /
540- data (am( 4,k,-5),k=0, 2)
541- & / -0.1099444E+02, 0.1320930E+01, -0.2353831E+01 /
542- data (am( 5,k,-5),k=0, 2)
543- & / 0.1699299E+02, -0.3565802E+02, 0.3566872E+02 /
544- data (am( 6,k,-5),k=0, 2)
545- & / -0.1465793E+02, 0.2703365E+02, -0.2176372E+02 /
546-
547- if(q .le. qmavec(ifl)) then
548- faux5MI = 0.d0
549- return
550- endif
551-
552- if(x .ge. 1.d0) then
553- faux5MI = 0.d0
554- return
555- endif
556-
557- tmp = log(q/alfvec(ifl))
558- if(tmp .le. 0.d0) then
559- faux5MI = 0.d0
560- return
561- endif
562-
563- sb = log(tmp)
564- sb1 = sb - 1.2d0
565- sb2 = sb1*sb1
566-
567- do i = 0, nex
568- af(i) = 0.d0
569- sbx = 1.d0
570- do k = 0, mlfvec(ifl)
571- af(i) = af(i) + sbx*am(i,k,ifl)
572- sbx = sb1*sbx
573- enddo
574- enddo
575-
576- y = -log(x)
577- u = log(x/0.00001d0)
578-
579- part1 = af(1)*y**(1.d0+0.01d0*af(4))*(1.d0+ af(8)*u)
580- part2 = af(0)*(1.d0 - x) + af(3)*x
581- part3 = x*(1.d0-x)*(af(5)+af(6)*(1.d0-x)+af(7)*x*(1.d0-x))
582- part4 = ut1vec(ifl)*log(1.d0-x) +
583- & AF(2)*log(1.d0+exp(ut2vec(ifl))-x)
584-
585- faux5MI = exp(log(x) + part1 + part2 + part3 + part4)
586-
587-c include threshold factor...
588- faux5MI = faux5MI * (1.d0 - qmavec(ifl)/q)
589-
590- return
591- end
592-c --------------------------------------------------------------------------
593- double precision function ctq5L(ifl,x,q)
594-c Parametrization of cteq5L parton distribution functions (J. Pumplin 9/99).
595-c ifl: 1=u,2=d,3=s,4=c,5=b;0=gluon;-1=ubar,-2=dbar,-3=sbar,-4=cbar,-5=bbar.
596-c --------------------------------------------------------------------------
597- implicit double precision (a-h,o-z)
598- integer ifl
599-
600- ii = ifl
601- if(ii .gt. 2) then
602- ii = -ii
603- endif
604-
605- if(ii .eq. -1) then
606- sum = faux5L(-1,x,q)
607- ratio = faux5L(-2,x,q)
608- ctq5L = sum/(1.d0 + ratio)
609-
610- elseif(ii .eq. -2) then
611- sum = faux5L(-1,x,q)
612- ratio = faux5L(-2,x,q)
613- ctq5L = sum*ratio/(1.d0 + ratio)
614-
615- elseif(ii .ge. -5) then
616- ctq5L = faux5L(ii,x,q)
617-
618- else
619- ctq5L = 0.d0
620-
621- endif
622-
623- return
624- end
625-
626-c ---------------------------------------------------------------------
627- double precision function faux5L(ifl,x,q)
628-c auxiliary function for parametrization of CTEQ5L (J. Pumplin 9/99).
629-c ---------------------------------------------------------------------
630- implicit double precision (a-h,o-z)
631- integer ifl
632-
633- parameter (nex=8, nlf=2)
634- dimension am(0:nex,0:nlf,-5:2)
635- dimension alfvec(-5:2), qmavec(-5:2)
636- dimension mexvec(-5:2), mlfvec(-5:2)
637- dimension ut1vec(-5:2), ut2vec(-5:2)
638- dimension af(0:nex)
639-
640- data mexvec( 2) / 8 /
641- data mlfvec( 2) / 2 /
642- data ut1vec( 2) / 0.4971265E+01 /
643- data ut2vec( 2) / -0.1105128E+01 /
644- data alfvec( 2) / 0.2987216E+00 /
645- data qmavec( 2) / 0.0000000E+00 /
646- data (am( 0,k, 2),k=0, 2)
647- & / 0.5292616E+01, -0.2751910E+01, -0.2488990E+01 /
648- data (am( 1,k, 2),k=0, 2)
649- & / 0.9714424E+00, 0.1011827E-01, -0.1023660E-01 /
650- data (am( 2,k, 2),k=0, 2)
651- & / -0.1651006E+02, 0.7959721E+01, 0.8810563E+01 /
652- data (am( 3,k, 2),k=0, 2)
653- & / -0.1643394E+02, 0.5892854E+01, 0.9348874E+01 /
654- data (am( 4,k, 2),k=0, 2)
655- & / 0.3067422E+02, 0.4235796E+01, -0.5112136E+00 /
656- data (am( 5,k, 2),k=0, 2)
657- & / 0.2352526E+02, -0.5305168E+01, -0.1169174E+02 /
658- data (am( 6,k, 2),k=0, 2)
659- & / -0.1095451E+02, 0.3006577E+01, 0.5638136E+01 /
660- data (am( 7,k, 2),k=0, 2)
661- & / -0.1172251E+02, -0.2183624E+01, 0.4955794E+01 /
662- data (am( 8,k, 2),k=0, 2)
663- & / 0.1662533E-01, 0.7622870E-02, -0.4895887E-03 /
664-
665- data mexvec( 1) / 8 /
666- data mlfvec( 1) / 2 /
667- data ut1vec( 1) / 0.2612618E+01 /
668- data ut2vec( 1) / -0.1258304E+06 /
669- data alfvec( 1) / 0.3407552E+00 /
670- data qmavec( 1) / 0.0000000E+00 /
671- data (am( 0,k, 1),k=0, 2)
672- & / 0.9905300E+00, -0.4502235E+00, 0.1624441E+00 /
673- data (am( 1,k, 1),k=0, 2)
674- & / 0.8867534E+00, 0.1630829E-01, -0.4049085E-01 /
675- data (am( 2,k, 1),k=0, 2)
676- & / 0.8547974E+00, 0.3336301E+00, 0.1371388E+00 /
677- data (am( 3,k, 1),k=0, 2)
678- & / 0.2941113E+00, -0.1527905E+01, 0.2331879E+00 /
679- data (am( 4,k, 1),k=0, 2)
680- & / 0.3384235E+02, 0.3715315E+01, 0.8276930E+00 /
681- data (am( 5,k, 1),k=0, 2)
682- & / 0.6230115E+01, 0.3134639E+01, -0.1729099E+01 /
683- data (am( 6,k, 1),k=0, 2)
684- & / -0.1186928E+01, -0.3282460E+00, 0.1052020E+00 /
685- data (am( 7,k, 1),k=0, 2)
686- & / -0.8545702E+01, -0.6247947E+01, 0.3692561E+01 /
687- data (am( 8,k, 1),k=0, 2)
688- & / 0.1724598E-01, 0.7120465E-02, 0.4003646E-04 /
689-
690- data mexvec( 0) / 8 /
691- data mlfvec( 0) / 2 /
692- data ut1vec( 0) / -0.4656819E+00 /
693- data ut2vec( 0) / -0.2742390E+03 /
694- data alfvec( 0) / 0.4491863E+00 /
695- data qmavec( 0) / 0.0000000E+00 /
696- data (am( 0,k, 0),k=0, 2)
697- & / 0.1193572E+03, -0.3886845E+01, -0.1133965E+01 /
698- data (am( 1,k, 0),k=0, 2)
699- & / -0.9421449E+02, 0.3995885E+01, 0.1607363E+01 /
700- data (am( 2,k, 0),k=0, 2)
701- & / 0.4206383E+01, 0.2485954E+00, 0.2497468E+00 /
702- data (am( 3,k, 0),k=0, 2)
703- & / 0.1210557E+03, -0.3015765E+01, -0.1423651E+01 /
704- data (am( 4,k, 0),k=0, 2)
705- & / -0.1013897E+03, -0.7113478E+00, 0.2621865E+00 /
706- data (am( 5,k, 0),k=0, 2)
707- & / -0.1312404E+01, -0.9297691E+00, -0.1562531E+00 /
708- data (am( 6,k, 0),k=0, 2)
709- & / 0.1627137E+01, 0.4954111E+00, -0.6387009E+00 /
710- data (am( 7,k, 0),k=0, 2)
711- & / 0.1537698E+00, -0.2487878E+00, 0.8305947E+00 /
712- data (am( 8,k, 0),k=0, 2)
713- & / 0.2496448E-01, 0.2457823E-02, 0.8234276E-03 /
714-
715- data mexvec(-1) / 8 /
716- data mlfvec(-1) / 2 /
717- data ut1vec(-1) / 0.3862583E+01 /
718- data ut2vec(-1) / -0.1265969E+01 /
719- data alfvec(-1) / 0.2457668E+00 /
720- data qmavec(-1) / 0.0000000E+00 /
721- data (am( 0,k,-1),k=0, 2)
722- & / 0.2647441E+02, 0.1059277E+02, -0.9176654E+00 /
723- data (am( 1,k,-1),k=0, 2)
724- & / 0.1990636E+01, 0.8558918E-01, 0.4248667E-01 /
725- data (am( 2,k,-1),k=0, 2)
726- & / -0.1476095E+02, -0.3276255E+02, 0.1558110E+01 /
727- data (am( 3,k,-1),k=0, 2)
728- & / -0.2966889E+01, -0.3649037E+02, 0.1195914E+01 /
729- data (am( 4,k,-1),k=0, 2)
730- & / -0.1000519E+03, -0.2464635E+01, 0.1964849E+00 /
731- data (am( 5,k,-1),k=0, 2)
732- & / 0.3718331E+02, 0.4700389E+02, -0.2772142E+01 /
733- data (am( 6,k,-1),k=0, 2)
734- & / -0.1872722E+02, -0.2291189E+02, 0.1089052E+01 /
735- data (am( 7,k,-1),k=0, 2)
736- & / -0.1628146E+02, -0.1823993E+02, 0.2537369E+01 /
737- data (am( 8,k,-1),k=0, 2)
738- & / -0.1156300E+01, -0.1280495E+00, 0.5153245E-01 /
739-
740- data mexvec(-2) / 7 /
741- data mlfvec(-2) / 2 /
742- data ut1vec(-2) / 0.1895615E+00 /
743- data ut2vec(-2) / -0.3069097E+01 /
744- data alfvec(-2) / 0.5293999E+00 /
745- data qmavec(-2) / 0.0000000E+00 /
746- data (am( 0,k,-2),k=0, 2)
747- & / -0.6556775E+00, 0.2490190E+00, 0.3966485E-01 /
748- data (am( 1,k,-2),k=0, 2)
749- & / 0.1305102E+01, -0.1188925E+00, -0.4600870E-02 /
750- data (am( 2,k,-2),k=0, 2)
751- & / -0.2371436E+01, 0.3566814E+00, -0.2834683E+00 /
752- data (am( 3,k,-2),k=0, 2)
753- & / -0.6152826E+01, 0.8339877E+00, -0.7233230E+00 /
754- data (am( 4,k,-2),k=0, 2)
755- & / -0.8346558E+01, 0.2892168E+01, 0.2137099E+00 /
756- data (am( 5,k,-2),k=0, 2)
757- & / 0.1279530E+02, 0.1021114E+00, 0.5787439E+00 /
758- data (am( 6,k,-2),k=0, 2)
759- & / 0.5858816E+00, -0.1940375E+01, -0.4029269E+00 /
760- data (am( 7,k,-2),k=0, 2)
761- & / -0.2795725E+02, -0.5263392E+00, 0.1290229E+01 /
762-
763- data mexvec(-3) / 7 /
764- data mlfvec(-3) / 2 /
765- data ut1vec(-3) / 0.3753257E+01 /
766- data ut2vec(-3) / -0.1113085E+01 /
767- data alfvec(-3) / 0.3713141E+00 /
768- data qmavec(-3) / 0.0000000E+00 /
769- data (am( 0,k,-3),k=0, 2)
770- & / 0.1580931E+01, -0.2273826E+01, -0.1822245E+01 /
771- data (am( 1,k,-3),k=0, 2)
772- & / 0.2702644E+01, 0.6763243E+00, 0.7231586E-02 /
773- data (am( 2,k,-3),k=0, 2)
774- & / -0.1857924E+02, 0.3907500E+01, 0.5850109E+01 /
775- data (am( 3,k,-3),k=0, 2)
776- & / -0.3044793E+02, 0.2639332E+01, 0.5566644E+01 /
777- data (am( 4,k,-3),k=0, 2)
778- & / -0.4258011E+01, -0.5429244E+01, 0.4418946E+00 /
779- data (am( 5,k,-3),k=0, 2)
780- & / 0.3465259E+02, -0.5532604E+01, -0.4904153E+01 /
781- data (am( 6,k,-3),k=0, 2)
782- & / -0.1658858E+02, 0.2923275E+01, 0.2266286E+01 /
783- data (am( 7,k,-3),k=0, 2)
784- & / -0.1149263E+02, 0.2877475E+01, -0.7999105E+00 /
785-
786- data mexvec(-4) / 7 /
787- data mlfvec(-4) / 2 /
788- data ut1vec(-4) / 0.4400772E+01 /
789- data ut2vec(-4) / -0.1356116E+01 /
790- data alfvec(-4) / 0.3712017E-01 /
791- data qmavec(-4) / 0.1300000E+01 /
792- data (am( 0,k,-4),k=0, 2)
793- & / -0.8293661E+00, -0.3982375E+01, -0.6494283E-01 /
794- data (am( 1,k,-4),k=0, 2)
795- & / 0.2754618E+01, 0.8338636E+00, -0.6885160E-01 /
796- data (am( 2,k,-4),k=0, 2)
797- & / -0.1657987E+02, 0.1439143E+02, -0.6887240E+00 /
798- data (am( 3,k,-4),k=0, 2)
799- & / -0.2800703E+02, 0.1535966E+02, -0.7377693E+00 /
800- data (am( 4,k,-4),k=0, 2)
801- & / -0.6460216E+01, -0.4783019E+01, 0.4913297E+00 /
802- data (am( 5,k,-4),k=0, 2)
803- & / 0.3141830E+02, -0.3178031E+02, 0.7136013E+01 /
804- data (am( 6,k,-4),k=0, 2)
805- & / -0.1802509E+02, 0.1862163E+02, -0.4632843E+01 /
806- data (am( 7,k,-4),k=0, 2)
807- & / -0.1240412E+02, 0.2565386E+02, -0.1066570E+02 /
808-
809- data mexvec(-5) / 6 /
810- data mlfvec(-5) / 2 /
811- data ut1vec(-5) / 0.5562568E+01 /
812- data ut2vec(-5) / -0.1801317E+01 /
813- data alfvec(-5) / 0.4952010E-02 /
814- data qmavec(-5) / 0.4500000E+01 /
815- data (am( 0,k,-5),k=0, 2)
816- & / -0.6031237E+01, 0.1992727E+01, -0.1076331E+01 /
817- data (am( 1,k,-5),k=0, 2)
818- & / 0.2933912E+01, 0.5839674E+00, 0.7509435E-01 /
819- data (am( 2,k,-5),k=0, 2)
820- & / -0.8284919E+01, 0.1488593E+01, -0.8251678E+00 /
821- data (am( 3,k,-5),k=0, 2)
822- & / -0.1925986E+02, 0.2805753E+01, -0.3015446E+01 /
823- data (am( 4,k,-5),k=0, 2)
824- & / -0.9480483E+01, -0.9767837E+00, -0.1165544E+01 /
825- data (am( 5,k,-5),k=0, 2)
826- & / 0.2193195E+02, -0.1788518E+02, 0.9460908E+01 /
827- data (am( 6,k,-5),k=0, 2)
828- & / -0.1327377E+02, 0.1201754E+02, -0.6277844E+01 /
829-
830- if(q .le. qmavec(ifl)) then
831- faux5L = 0.d0
832- return
833- endif
834-
835- if(x .ge. 1.d0) then
836- faux5L = 0.d0
837- return
838- endif
839-
840- tmp = log(q/alfvec(ifl))
841- if(tmp .le. 0.d0) then
842- faux5L = 0.d0
843- return
844- endif
845-
846- sb = log(tmp)
847- sb1 = sb - 1.2d0
848- sb2 = sb1*sb1
849-
850- do i = 0, nex
851- af(i) = 0.d0
852- sbx = 1.d0
853- do k = 0, mlfvec(ifl)
854- af(i) = af(i) + sbx*am(i,k,ifl)
855- sbx = sb1*sbx
856- enddo
857- enddo
858-
859- y = -log(x)
860- u = log(x/0.00001d0)
861-
862- part1 = af(1)*y**(1.d0+0.01d0*af(4))*(1.d0+ af(8)*u)
863- part2 = af(0)*(1.d0 - x) + af(3)*x
864- part3 = x*(1.d0-x)*(af(5)+af(6)*(1.d0-x)+af(7)*x*(1.d0-x))
865- part4 = ut1vec(ifl)*log(1.d0-x) +
866- & AF(2)*log(1.d0+exp(ut2vec(ifl))-x)
867-
868- faux5L = exp(log(x) + part1 + part2 + part3 + part4)
869-
870-c include threshold factor...
871- faux5L = faux5L * (1.d0 - qmavec(ifl)/q)
872-
873- return
874- end
875
876=== removed file 'Template/LO/Source/PDF/Ctq5Pdf.f'
877--- Template/LO/Source/PDF/Ctq5Pdf.f 2010-10-30 03:26:37 +0000
878+++ Template/LO/Source/PDF/Ctq5Pdf.f 1970-01-01 00:00:00 +0000
879@@ -1,344 +0,0 @@
880-C============================================================================
881-C CTEQ Parton Distribution Functions: Version 5.0
882-C Nov. 1, 1999
883-C
884-C Ref: "GLOBAL QCD ANALYSIS OF PARTON STRUCTURE OF THE NUCLEON:
885-C CTEQ5 PPARTON DISTRIBUTIONS"
886-C
887-C hep-ph/9903282; to be published in Eur. Phys. J. C 1999.
888-C
889-C These PDF's use quadratic interpolation of attached tables. A parametrized
890-C version of the same PDF's without external tables is under construction.
891-C They will become available later.
892-C
893-C This package contains 7 sets of CTEQ5 PDF's; plus two updated ones.
894-C The undated CTEQ5M1 and CTEQHQ1 use an improved evolution code.
895-C Both the original and the updated ones fit current data with comparable
896-C accuracy. The CTEQHQ1 set also involve a different choice of scale,
897-C hence differs from CTEQHQ slightly more. It is preferred over CTEQ5HQ.
898-
899-C Details are:
900-C ---------------------------------------------------------------------------
901-C Iset PDF Description Alpha_s(Mz) Lam4 Lam5 Table_File
902-C ---------------------------------------------------------------------------
903-C 1 CTEQ5M Standard MSbar scheme 0.118 326 226 cteq5m.tbl
904-C 2 CTEQ5D Standard DIS scheme 0.118 326 226 cteq5d.tbl
905-C 3 CTEQ5L Leading Order 0.127 192 146 cteq5l.tbl
906-C 4 CTEQ5HJ Large-x gluon enhanced 0.118 326 226 cteq5hj.tbl
907-C 5 CTEQ5HQ Heavy Quark 0.118 326 226 cteq5hq.tbl
908-C 6 CTEQ5F3 Nf=3 FixedFlavorNumber 0.106 (Lam3=395) cteq5f3.tbl
909-C 7 CTEQ5F4 Nf=4 FixedFlavorNumber 0.112 309 XXX cteq5f4.tbl
910-C --------------------------------------------------------
911-C 8 CTEQ5M1 Improved CTEQ5M 0.118 326 226 cteq5m1.tbl
912-C 9 CTEQ5HQ1 Improved CTEQ5HQ 0.118 326 226 ctq5hq1.tbl
913-C ---------------------------------------------------------------------------
914-C
915-C The available applied range is 10^-5 << x << 1 and 1.0 << Q << 10,000 (GeV).
916-C Lam5 (Lam4, Lam3) represents Lambda value (in MeV) for 5 (4,3) flavors.
917-C The matching alpha_s between 4 and 5 flavors takes place at Q=4.5 GeV,
918-C which is defined as the bottom quark mass, whenever it can be applied.
919-C
920-C The Table_Files are assumed to be in the working directory.
921-C
922-C Before using the PDF, it is necessary to do the initialization by
923-C Call SetCtq5(Iset)
924-C where Iset is the desired PDF specified in the above table.
925-C
926-C The function Ctq5Pdf (Iparton, X, Q)
927-C returns the parton distribution inside the proton for parton [Iparton]
928-C at [X] Bjorken_X and scale [Q] (GeV) in PDF set [Iset].
929-C Iparton is the parton label (5, 4, 3, 2, 1, 0, -1, ......, -5)
930-C for (b, c, s, d, u, g, u_bar, ..., b_bar),
931-C whereas CTEQ5F3 has, by definition, only 3 flavors and gluon;
932-C CTEQ5F4 has only 4 flavors and gluon.
933-C
934-C For detailed information on the parameters used, e.q. quark masses,
935-C QCD Lambda, ... etc., see info lines at the beginning of the
936-C Table_Files.
937-C
938-C These programs, as provided, are in double precision. By removing the
939-C "Implicit Double Precision" lines, they can also be run in single
940-C precision.
941-C
942-C If you have detailed questions concerning these CTEQ5 distributions,
943-C or if you find problems/bugs using this package, direct inquires to
944-C Hung-Liang Lai(lai@phys.nthu.edu.tw) or Wu-Ki Tung(Tung@pa.msu.edu).
945-C
946-C===========================================================================
947-
948- Function Ctq5Pdf (Iparton, X, Q)
949- Implicit Double Precision (A-H,O-Z)
950- Logical Warn
951- Common
952- > / CtqPar2 / Nx, Nt, NfMx
953- > / QCDtable / Alambda, Nfl, Iorder
954-
955- Data Warn /.true./
956- save Warn
957-
958- If (X .lt. 0D0 .or. X .gt. 1D0) Then
959- Print *, 'X out of range in Ctq5Pdf: ', X
960- Stop
961- Endif
962- If (Q .lt. Alambda) Then
963- Print *, 'Q out of range in Ctq5Pdf: ', Q
964- Stop
965- Endif
966- If ((Iparton .lt. -NfMx .or. Iparton .gt. NfMx)) Then
967- If (Warn) Then
968-C put a warning for calling extra flavor.
969- Warn = .false.
970- Print *, 'Warning: Iparton out of range in Ctq5Pdf: '
971- > , Iparton
972- Endif
973- Ctq5Pdf = 0D0
974- Return
975- Endif
976-
977- Ctq5Pdf = PartonX (Iparton, X, Q)
978- if(Ctq5Pdf.lt.0.D0) Ctq5Pdf = 0.D0
979-
980- Return
981-
982-C ********************
983- End
984-
985- FUNCTION PartonX_orig (IPRTN, X, Q)
986-C
987-C Given the parton distribution function in the array Upd in
988-C COMMON / CtqPar1 / , this routine fetches u(fl, x, q) at any value of
989-C x and q using Mth-order polynomial interpolation for x and Ln(Q/Lambda).
990-C
991- IMPLICIT DOUBLE PRECISION (A-H, O-Z)
992-C
993- PARAMETER (MXX = 105, MXQ = 25, MXF = 6)
994- PARAMETER (MXPQX = (MXF *2 +2) * MXQ * MXX)
995- PARAMETER (M= 2, M1 = M + 1)
996-C
997- Logical First
998- Common
999- > / CtqPar1 / Al, XV(0:MXX), QL(0:MXQ), UPD(MXPQX)
1000- > / CtqPar2 / Nx, Nt, NfMx
1001- > / XQrange / Qini, Qmax, Xmin
1002-C
1003- Dimension Fq(M1), Df(M1)
1004-
1005- Data First /.true./
1006- save First
1007-C Work with Log (Q)
1008- QG = LOG (Q/AL)
1009-
1010-C Find lower end of interval containing X
1011- JL = -1
1012- JU = Nx+1
1013- 11 If (JU-JL .GT. 1) Then
1014- JM = (JU+JL) / 2
1015- If (X .GT. XV(JM)) Then
1016- JL = JM
1017- Else
1018- JU = JM
1019- Endif
1020- Goto 11
1021- Endif
1022-
1023- Jx = JL - (M-1)/2
1024- If (X .lt. Xmin .and. First ) Then
1025- First = .false.
1026- Print '(A, 2(1pE12.4))',
1027- > ' WARNING: X << Xmin, extrapolation used; X, Xmin =', X, Xmin
1028- If (Jx .LT. 0) Jx = 0
1029- Elseif (Jx .GT. Nx-M) Then
1030- Jx = Nx - M
1031- Endif
1032-C Find the interval where Q lies
1033- JL = -1
1034- JU = NT+1
1035- 12 If (JU-JL .GT. 1) Then
1036- JM = (JU+JL) / 2
1037- If (QG .GT. QL(JM)) Then
1038- JL = JM
1039- Else
1040- JU = JM
1041- Endif
1042- Goto 12
1043- Endif
1044-
1045- Jq = JL - (M-1)/2
1046- If (Jq .LT. 0) Then
1047- Jq = 0
1048- If (Q .lt. Qini) Print '(A, 2(1pE12.4))',
1049- > ' WARNING: Q << Qini, extrapolation used; Q, Qini =', Q, Qini
1050- Elseif (Jq .GT. Nt-M) Then
1051- Jq = Nt - M
1052- If (Q .gt. Qmax) Print '(A, 2(1pE12.4))',
1053- > ' WARNING: Q > Qmax, extrapolation used; Q, Qmax =', Q, Qmax
1054- Endif
1055-
1056- If (Iprtn .GE. 3) Then
1057- Ip = - Iprtn
1058- Else
1059- Ip = Iprtn
1060- EndIf
1061-C Find the off-set in the linear array Upd
1062- JFL = Ip + NfMx
1063- J0 = (JFL * (NT+1) + Jq) * (NX+1) + Jx
1064-C
1065-C Now interpolate in x for M1 Q's
1066- Do 21 Iq = 1, M1
1067- J1 = J0 + (Nx+1)*(Iq-1) + 1
1068- Call Polint (XV(Jx), Upd(J1), M1, X, Fq(Iq), Df(Iq))
1069- 21 Continue
1070-C Finish off by interpolating in Q
1071- Call Polint (QL(Jq), Fq(1), M1, QG, Ftmp, Ddf)
1072-
1073- PartonX_orig = Ftmp
1074-C
1075- RETURN
1076-C ****************************
1077- END
1078-
1079- Subroutine SetCtq5 (Iset)
1080- Implicit Double Precision (A-H,O-Z)
1081- Parameter (Isetmax=9)
1082- Character Flnm(Isetmax)*12, Tablefile*40
1083- Data (Flnm(I), I=1,Isetmax)
1084- > / 'cteq5m.tbl', 'cteq5d.tbl', 'cteq5l.tbl', 'cteq5hj.tbl'
1085- > , 'cteq5hq.tbl', 'cteq5f3.tbl', 'cteq5f4.tbl'
1086- > , 'cteq5m1.tbl', 'ctq5hq1.tbl' /
1087- Data Tablefile / 'test.tbl' /
1088- Data Isetold, Isetmin, Isettest / -987, 1, 911 /
1089- save
1090-
1091-C If data file not initialized, do so.
1092- If(Iset.ne.Isetold) then
1093- IU= NextUn()
1094- If (Iset .eq. Isettest) then
1095- Print* ,'Opening ', Tablefile
1096- 21 Open(IU, File=Tablefile, Status='OLD', Err=101)
1097- GoTo 22
1098- 101 Print*, Tablefile, ' cannot be opened '
1099- Print*, 'Please input the .tbl file:'
1100- Read (*,'(A)') Tablefile
1101- Goto 21
1102- 22 Continue
1103- ElseIf (Iset.lt.Isetmin .or. Iset.gt.Isetmax) Then
1104- Print *, 'Invalid Iset number in SetCtq5 :', Iset
1105- Stop
1106- Else
1107- Tablefile=Flnm(Iset)
1108-c Open(IU, File='Pdfdata/'//Tablefile, Status='OLD', Err=100)
1109- call OpenData(TableFile)
1110- Endif
1111- Call ReadTbl (IU)
1112- Close (IU)
1113- Isetold=Iset
1114- Endif
1115- Return
1116-
1117- 100 Print *, ' Data file ', Tablefile, ' cannot be opened '
1118- >//'in SetCtq5!!'
1119- Stop
1120-C ********************
1121- End
1122-
1123- Subroutine ReadTbl (Nu)
1124- Implicit Double Precision (A-H,O-Z)
1125- Character Line*80
1126- PARAMETER (MXX = 105, MXQ = 25, MXF = 6)
1127- PARAMETER (MXPQX = (MXF *2 +2) * MXQ * MXX)
1128- Common
1129- > / CtqPar1 / Al, XV(0:MXX), QL(0:MXQ), UPD(MXPQX)
1130- > / CtqPar2 / Nx, Nt, NfMx
1131- > / XQrange / Qini, Qmax, Xmin
1132- > / QCDtable / Alambda, Nfl, Iorder
1133- > / Masstbl / Amass(6)
1134-
1135- Read (Nu, '(A)') Line
1136- Read (Nu, '(A)') Line
1137- Read (Nu, *) Dr, Fl, Al, (Amass(I),I=1,6)
1138- Iorder = Nint(Dr)
1139- Nfl = Nint(Fl)
1140- Alambda = Al
1141-
1142- Read (Nu, '(A)') Line
1143- Read (Nu, *) NX, NT, NfMx
1144-
1145- Read (Nu, '(A)') Line
1146- Read (Nu, *) QINI, QMAX, (QL(I), I =0, NT)
1147-
1148- Read (Nu, '(A)') Line
1149- Read (Nu, *) XMIN, (XV(I), I =0, NX)
1150-
1151- Do 11 Iq = 0, NT
1152- QL(Iq) = Log (QL(Iq) /Al)
1153- 11 Continue
1154-C
1155-C Since quark = anti-quark for nfl>2 at this stage,
1156-C we Read out only the non-redundent data points
1157-C No of flavors = NfMx (sea) + 1 (gluon) + 2 (valence)
1158-
1159- Nblk = (NX+1) * (NT+1)
1160- Npts = Nblk * (NfMx+3)
1161- Read (Nu, '(A)') Line
1162- Read (Nu, *, IOSTAT=IRET) (UPD(I), I=1,Npts)
1163-
1164- Return
1165-C ****************************
1166- End
1167-
1168- Function NextUn()
1169-C Returns an unallocated FORTRAN i/o unit.
1170- Logical EX
1171-C
1172- Do 10 N = 10, 300
1173- INQUIRE (UNIT=N, OPENED=EX)
1174- If (.NOT. EX) then
1175- NextUn = N
1176- Return
1177- Endif
1178- 10 Continue
1179- Stop ' There is no available I/O unit. '
1180-C *************************
1181- End
1182-C
1183-
1184- SUBROUTINE POLINT (XA,YA,N,X,Y,DY)
1185-
1186- IMPLICIT DOUBLE PRECISION (A-H, O-Z)
1187-C Adapted from "Numerical Recipes"
1188- PARAMETER (NMAX=10)
1189- DIMENSION XA(N),YA(N),C(NMAX),D(NMAX)
1190- NS=1
1191- DIF=ABS(X-XA(1))
1192- DO 11 I=1,N
1193- DIFT=ABS(X-XA(I))
1194- IF (DIFT.LT.DIF) THEN
1195- NS=I
1196- DIF=DIFT
1197- ENDIF
1198- C(I)=YA(I)
1199- D(I)=YA(I)
1200-11 CONTINUE
1201- Y=YA(NS)
1202- NS=NS-1
1203- DO 13 M=1,N-1
1204- DO 12 I=1,N-M
1205- HO=XA(I)-X
1206- HP=XA(I+M)-X
1207- W=C(I+1)-D(I)
1208- DEN=HO-HP
1209- IF(DEN.EQ.0.) STOP
1210- DEN=W/DEN
1211- D(I)=HP*DEN
1212- C(I)=HO*DEN
1213-12 CONTINUE
1214- IF (2*NS.LT.N-M)THEN
1215- DY=C(NS+1)
1216- ELSE
1217- DY=D(NS)
1218- NS=NS-1
1219- ENDIF
1220- Y=Y+DY
1221-13 CONTINUE
1222- RETURN
1223- END
1224
1225=== removed file 'Template/LO/Source/PDF/Partonx5.f'
1226--- Template/LO/Source/PDF/Partonx5.f 2010-10-30 03:26:37 +0000
1227+++ Template/LO/Source/PDF/Partonx5.f 1970-01-01 00:00:00 +0000
1228@@ -1,94 +0,0 @@
1229- FUNCTION PartonX (IPRTN, X, Q)
1230-C
1231-C Given the parton distribution function in the array Upd in
1232-C COMMON / CtqPar1 / , this routine fetches u(fl, x, q) at any value of
1233-C x and q using Mth-order polynomial interpolation for x and Ln(Q/Lambda).
1234-C
1235- IMPLICIT DOUBLE PRECISION (A-H, O-Z)
1236-C
1237- PARAMETER (MXX = 105, MXQ = 25, MXF = 6)
1238- PARAMETER (MXPQX = (MXF *2 +2) * MXQ * MXX)
1239- PARAMETER (M= 2, M1 = M + 1)
1240-C
1241- Logical First
1242- Common
1243- > / CtqPar1 / Al, XV(0:MXX), QL(0:MXQ), UPD(MXPQX)
1244- > / CtqPar2 / Nx, Nt, NfMx
1245- > / XQrange / Qini, Qmax, Xmin
1246-C
1247- Dimension Fq(M1), Df(M1)
1248-
1249- Data First /.true./
1250- save First
1251-C Work with Log (Q)
1252- QG = LOG (Q/AL)
1253-
1254-C Find lower end of interval containing X
1255- JL = -1
1256- JU = Nx+1
1257- 11 If (JU-JL .GT. 1) Then
1258- JM = (JU+JL) / 2
1259- If (X .GT. XV(JM)) Then
1260- JL = JM
1261- Else
1262- JU = JM
1263- Endif
1264- Goto 11
1265- Endif
1266-
1267- Jx = JL - (M-1)/2
1268- If (X .lt. Xmin .and. First ) Then
1269- First = .false.
1270- Print '(A, 2(1pE12.4))',
1271- > ' WARNING: X < Xmin, extrapolation used; X, Xmin =', X, Xmin
1272- If (Jx .LT. 0) Jx = 0
1273- Elseif (Jx .GT. Nx-M) Then
1274- Jx = Nx - M
1275- Endif
1276-C Find the interval where Q lies
1277- JL = -1
1278- JU = NT+1
1279- 12 If (JU-JL .GT. 1) Then
1280- JM = (JU+JL) / 2
1281- If (QG .GT. QL(JM)) Then
1282- JL = JM
1283- Else
1284- JU = JM
1285- Endif
1286- Goto 12
1287- Endif
1288-
1289- Jq = JL - (M-1)/2
1290- If (Jq .LT. 0) Then
1291- Jq = 0
1292- If (Q .lt. Qini) Print '(A, 2(1pE12.4))',
1293- > ' WARNING: Q < Qini, extrapolation used; Q, Qini =', Q, Qini
1294- Elseif (Jq .GT. Nt-M) Then
1295- Jq = Nt - M
1296- If (Q .gt. Qmax) Print '(A, 2(1pE12.4))',
1297- > ' WARNING: Q > Qmax, extrapolation used; Q, Qmax =', Q, Qmax
1298- Endif
1299-
1300- If (Iprtn .GE. 3) Then
1301- Ip = - Iprtn
1302- Else
1303- Ip = Iprtn
1304- EndIf
1305-C Find the off-set in the linear array Upd
1306- JFL = Ip + NfMx
1307- J0 = (JFL * (NT+1) + Jq) * (NX+1) + Jx
1308-C
1309-C Now interpolate in x for M1 Q's
1310- Do 21 Iq = 1, M1
1311- J1 = J0 + (Nx+1)*(Iq-1) + 1
1312- Call Polint (XV(Jx), Upd(J1), M1, X, Fq(Iq), Df(Iq))
1313- 21 Continue
1314-C Finish off by interpolating in Q
1315- Call Polint (QL(Jq), Fq(1), M1, QG, Ftmp, Ddf)
1316-
1317- PartonX = Ftmp
1318-C
1319- RETURN
1320-C ****************************
1321- END
1322-
1323
1324=== modified file 'Template/LO/Source/PDF/PhotonFlux.f'
1325--- Template/LO/Source/PDF/PhotonFlux.f 2010-10-30 03:26:37 +0000
1326+++ Template/LO/Source/PDF/PhotonFlux.f 2018-03-27 12:42:00 +0000
1327@@ -85,3 +85,40 @@
1328 phi_f= f
1329 end
1330
1331+ double precision function get_ion_pdf(pdf, pdg, nb_proton, nb_neutron)
1332+C***********************************************************************
1333+C computing (heavy) ion contribution from proton PDF
1334+C***********************************************************************
1335+ double precision pdf(-7:7)
1336+ double precision tmppdf(-2:2)
1337+ integer pdg
1338+ integer nb_proton
1339+ integer nb_neutron
1340+ double precision tmp1, tmp2
1341+
1342+ if (nb_proton.eq.1.and.nb_neutron.eq.0)then
1343+ get_ion_pdf = pdf(pdg)
1344+ return
1345+ endif
1346+
1347+ if (pdg.eq.1.or.pdg.eq.2) then
1348+ tmp1 = pdf(1)
1349+ tmp2 = pdf(2)
1350+ tmppdf(1) = nb_proton * tmp1 + nb_neutron * tmp2
1351+ tmppdf(2) = nb_proton * tmp2 + nb_neutron * tmp2
1352+ get_ion_pdf = tmppdf(pdg)
1353+ else if (pdg.eq.-1.or.pdg.eq.-2) then
1354+ tmp1 = pdf(-1)
1355+ tmp2 = pdf(-2)
1356+ tmppdf(-1) = nb_proton * tmp1 + nb_neutron * tmp2
1357+ tmppdf(-2) = nb_proton * tmp2 + nb_neutron * tmp2
1358+ get_ion_pdf = tmppdf(pdg)
1359+ else
1360+ get_ion_pdf = pdf(pdg)*(nb_proton+nb_neutron)
1361+ endif
1362+
1363+C set correct PDF normalisation
1364+ get_ion_pdf = get_ion_pdf * (nb_proton+nb_neutron)
1365+ return
1366+ end
1367+
1368
1369=== removed file 'Template/LO/Source/PDF/cteq3.f'
1370--- Template/LO/Source/PDF/cteq3.f 2010-10-30 03:26:37 +0000
1371+++ Template/LO/Source/PDF/cteq3.f 1970-01-01 00:00:00 +0000
1372@@ -1,498 +0,0 @@
1373-C Version 3 CTEQ distribution function in a parametrized form.
1374-
1375-C By: H.L. Lai, J. Botts, J. Huston, J.G. Morfin, J.F. Owens, J. Qiu,
1376-C W.K. Tung & H. Weerts; Preprint MSU-HEP/41024, CTEQ 404
1377-
1378-C This file contains three versions of the same CTEQ3 parton distributions:
1379-C
1380-C Two "front-end" subprograms:
1381-C FUNCTION Ctq3Pd (Iset, Iparton, X, Q, Irt)
1382-C returns the PROBABILITY density for a GIVEN flavor;
1383-C SUBROUTINE Ctq3Pds(Iset, Pdf, XX, QQ, Irt)
1384-C returns an array of MOMENTUM densities for ALL flavors;
1385-C One lower-level subprogram:
1386-C FUNCTION Ctq3df (Iset, Iprtn, XX, QQ, Irt)
1387-C returns the MOMENTUM density of a GIVEN valence or sea distribution.
1388-
1389-C One supplementary function to return the QCD lambda parameter
1390-C concerning these distributions is also included (see below).
1391-
1392-C Although DOUBLE PRECISION is used, conversion to SINGLE PRECISION
1393-C is straightforward by removing the
1394-C Implicit Double Precision statements.
1395-
1396-C Since this is an initial distribution of version 3, it is
1397-C useful for the authors to maintain a record of the distribution
1398-C list in case there are revisions or corrections.
1399-C In the interest of maintaining the integrity of this package,
1400-C please do not freely distribute this program package; instead, refer
1401-C any interested colleagues to direct their request for a copy to:
1402-C Lai@cteq11.pa.msu.edu or Tung@msupa.pa.msu.edu.
1403-
1404-C If you have detailed questions concerning these CTEQ3 distributions,
1405-C or if you find problems/bugs using this initial distribution, direct
1406-C inquires to Hung-Liang Lai or Wu-Ki Tung.
1407-
1408-C -------------------------------------------
1409-C Detailed instructions follow.
1410-
1411-C Name convention for CTEQ distributions: CTEQnSx where
1412-C n : version number (currently n = 3)
1413-C S : factorization scheme label: = [M L D] for [MS-bar LO DIS]
1414-c resp.
1415-C x : special characteristics, if any
1416-C (e.g. S(F) for singular (flat) small-x, L for "LEP lambda value")
1417-C (not applicable to CTEQ3 since only three standard sets are given.)
1418-
1419-C Explanation of functional arguments:
1420-
1421-C Iset is the set label; in this version, Iset = 1, 2, 3
1422-C correspond to the following CTEQ global fits:
1423-
1424-C cteq3M : best fit in the MS-bar scheme
1425-C cteq3L : best fit in Leading order QCD
1426-C cteq3D : best fit in the DIS scheme
1427-
1428-C Iprtn is the parton label (6, 5, 4, 3, 2, 1, 0, -1, ......, -6)
1429-C for (t, b, c, s, d, u, g, u_bar, ..., t_bar)
1430-C *** WARNING: We use the parton label 2 as D-quark, and 1 as U-quark which
1431-C might be different with your labels.
1432-
1433-C X, Q are the usual x, Q;
1434-C Irt is a return error code (see individual modules for explanation).
1435-C
1436-C ---------------------------------------------
1437-
1438-C Since the QCD Lambda value for the various sets are needed more often than
1439-C the other parameters in most applications, a special function
1440-C Wlamd3 (Iset, Iorder, Neff) is provided
1441-C which returns the lambda value for Neff = 4,5,6 effective flavors as well as
1442-C the order these values pertain to.
1443-
1444-C ----------------------------------------------
1445-C The range of (x, Q) used in this round of global analysis is, approxi-
1446-C mately, 0.01 < x < 0.75 ; and 4 GeV^2 < Q^2 < 400 GeV^2 for fixed target
1447-C experiments and 0.0001 < x < 0.1 from HERA data.
1448-
1449-C The range of (x, Q) used in the reparametrization of the QCD evolved
1450-C parton distributions is 10E-6 < x < 1 ; 1.6 GeV < Q < 10 TeV. The
1451-C functional form of this parametrization is:
1452-
1453-C A0 * x^A1 * (1-x)^A2 * (1 + A3 * x^A4) * [log(1+1/x)]^A5
1454-
1455-C with the A'coefficients being smooth functions of Q. For heavy quarks,
1456-C a threshold factor is applied to A0 which simulates the proper Q-dependence
1457-C of the QCD evolution in that region according to the renormalization
1458-C scheme defined in Collins-Tung, Nucl. Phys. B278, 934 (1986).
1459-
1460-C Since this function is positive definite and smooth, it provides sensible
1461-C extrapolations of the parton distributions if they are called beyond
1462-C the original range in an application. There is no artificial boundaries
1463-C or sharp cutoff's.
1464-C ------------------------------------------------
1465-
1466- FUNCTION Ctq3Pd (Iset, Iparton, X, Q, Irt)
1467-
1468-C This function returns the CTEQ parton distributions f^Iset_Iprtn/proton
1469-C --- the PROBABILITY density
1470-
1471-C (Iset, Iparton, X, Q): explained above;
1472-
1473-C Irt : return error code: see module Ctq3df for explanation.
1474-
1475- IMPLICIT DOUBLE PRECISION (A-H, O-Z)
1476-
1477- Ifl = Iparton
1478- JFL = ABS(Ifl)
1479-C Valence
1480- IF (Ifl.Eq.1 .or. Ifl.Eq.2) THEN
1481- VL = Ctq3df(Iset, Ifl, X, Q, Irt)
1482- ELSE
1483- VL = 0.
1484- ENDIF
1485-C Sea
1486- SEA = Ctq3df (Iset, -JFL, X, Q, Irt)
1487-C Full (probability) Distribution
1488- Ctq3pd = (VL + SEA) / X
1489-
1490- Return
1491-C *************************
1492- END
1493-C
1494-C
1495- SUBROUTINE Ctq3Pds(Iset, Pdf, X, Q, Irt)
1496-
1497-C This function returns the CTEQ parton distributions xf^Iset_Iprtn/proton
1498-C --- the Momentum density in array form
1499-c
1500-C (Iset, X, Q): explained in header comment lines;
1501-
1502-C Irt : return error code -- cumulated over flavors:
1503-C see module Ctq3df for explanation on individual flavors.
1504-C Pdf (Iparton);
1505-C Iparton = -6, -5, ...0, 1, 2 ... 6
1506-C has the same meaning as explained in the header comment lines.
1507-
1508- Implicit Double Precision (A-H, O-Z)
1509- Dimension Pdf (-6:6)
1510-
1511- Irt=0
1512- do 10 I=-6,2
1513- if(I.le.0) then
1514- Pdf(I) = Ctq3df(Iset,I,X,Q,Irt1)
1515- Pdf(-I)= Pdf(I)
1516- else
1517- Pdf(I) = Ctq3df(Iset,I,X,Q,Irt1) + Pdf(-I)
1518- endif
1519- Irt=Irt+Irt1
1520- 10 Continue
1521-
1522- Return
1523-C *************************
1524- End
1525-
1526- FUNCTION Ctq3df (Iset, Iprtn, XX, QQ, Irt)
1527-
1528-C Returns xf(x,Q) -- the momentum fraction distribution !!
1529-C Returns valence and sea rather than combined flavor distr.
1530-
1531-C Iset : PDF set label
1532-
1533-C Iprtn : Parton label: 2, 1 = d_ and u_ valence
1534-C 0 = gluon
1535-C -1, ... -6 = u, d, s, c, b, t sea quarks
1536-
1537-C XX : Bjorken-x
1538-C QQ : scale parameter "Q"
1539-C Irt : Return code
1540-C 0 : no error
1541-C 1 : parametrization is slightly negative; reset to 0.0.
1542-C (This condition happens rarely -- only for large x where the
1543-C absolute value of the parton distribution is extremely small.)
1544-
1545- IMPLICIT DOUBLE PRECISION (A-H, O-Z)
1546-
1547- PARAMETER (D0=0D0, D1=1D0, D2=2D0, D3=3D0, D4=4D0, D10=1D1)
1548- Parameter (Nst = 3)
1549-
1550- DIMENSION
1551- > Iord(Nst), Isch(Nst), Nqrk(Nst),Alm(Nst)
1552- > , Vlm(4:6,Nst), Qms(4:6, Nst)
1553- > , Xmn(Nst), Qmn(Nst), Qmx(Nst)
1554-
1555-c --------- CTEQ3M
1556-c
1557- DATA
1558- > Isch(1), Iord(1), Nqrk(1), Alm(1) / 1, 2, 6, .239 /
1559- > (Vlm(I,1), I=4,6) / .239, .158, .063 /
1560- > (Qms(I,1), I=4,6) / 1.60, 5.00, 180.0 /
1561- > Xmn(1), Qmn(1), Qmx(1) / 1.E-6, 1.60, 1.E4 /
1562-
1563-c --------- CTEQ3L
1564-c
1565- DATA
1566- > Isch(2), Iord(2), Nqrk(2), Alm(2) / 1, 1, 6, .177 /
1567- > (Vlm(I,2), I=4,6) / .177, .132, .066 /
1568- > (Qms(I,2), I=4,6) / 1.60, 5.00, 180.0 /
1569- > Xmn(2), Qmn(2), Qmx(2) / 1.E-6, 1.60, 1.E4 /
1570-
1571-c --------- CTEQ3D
1572-c
1573- DATA
1574- > Isch(3), Iord(3), Nqrk(3), Alm(3) / 1, 2, 6, .247 /
1575- > (Vlm(I,3), I=4,6) / .247, .164, .066 /
1576- > (Qms(I,3), I=4,6) / 1.60, 5.00, 180.0 /
1577- > Xmn(3), Qmn(3), Qmx(3) / 1.E-6, 1.60, 1.E4 /
1578-
1579-
1580- Data Ist, Lp, Qsto / 0, -10, 1.2345 /
1581-
1582- save Ist, Lp, Qsto
1583- save SB, SB2, SB3
1584-
1585- X = XX
1586- Irt = 0
1587- if(Iset.eq.Ist .and. Qsto.eq.QQ) then
1588-C if only change is in x:
1589- if (Iprtn.eq.Lp) goto 100
1590-C if change in flv is within "light" partons:
1591- if (Iprtn.ge.-3 .and. Lp.ge.-3) goto 501
1592- endif
1593-
1594- Ip = abs(Iprtn)
1595-C Set up Qi for SB
1596- If (Ip .GE. 4) then
1597- If (QQ .LE. Qms(Ip, Iset)) Then
1598- Ctq3df = 0.0
1599- Return
1600- Endif
1601- Qi = Qms(ip, Iset)
1602- Else
1603- Qi = Qmn(Iset)
1604- Endif
1605-C Use "standard lambda" of parametrization program
1606- Alam = Alm (Iset)
1607-
1608- SBL = LOG(QQ/Alam) / LOG(Qi/Alam)
1609- SB = LOG (SBL)
1610- SB2 = SB*SB
1611- SB3 = SB2*SB
1612-
1613- 501 Iflv = 3 - Iprtn
1614-
1615- Goto (1,2,3, 311) Iset
1616-
1617- 1 Goto(11,12,13,14,15,16,17,18,19)Iflv
1618-c Ifl = 2
1619- 11 A0=Exp(-0.7266E+00-0.1584E+01*SB +0.1259E+01*SB2-0.4305E-01*SB3)
1620- A1= 0.5285E+00-0.3721E+00*SB +0.5150E+00*SB2-0.1697E+00*SB3
1621- A2= 0.4075E+01+0.8282E+00*SB -0.4496E+00*SB2+0.2107E+00*SB3
1622- A3= 0.3279E+01+0.5066E+01*SB -0.9134E+01*SB2+0.2897E+01*SB3
1623- A4= 0.4399E+00-0.5888E+00*SB +0.4802E+00*SB2-0.1664E+00*SB3
1624- A5= 0.3678E+00-0.8929E+00*SB +0.1592E+01*SB2-0.5713E+00*SB3
1625- goto 100
1626-c Ifl = 1
1627- 12 A0=Exp( 0.2259E+00+0.1237E+00*SB +0.3035E+00*SB2-0.2935E+00*SB3)
1628- A1= 0.5085E+00+0.1651E-01*SB -0.3592E-01*SB2+0.2782E-01*SB3
1629- A2= 0.3732E+01+0.4901E+00*SB +0.2218E+00*SB2-0.1116E+00*SB3
1630- A3= 0.7011E+01-0.6620E+01*SB +0.2557E+01*SB2-0.1360E+00*SB3
1631- A4= 0.8969E+00-0.2429E+00*SB +0.1811E+00*SB2-0.6888E-01*SB3
1632- A5= 0.8636E-01+0.2558E+00*SB -0.3082E+00*SB2+0.2535E+00*SB3
1633- goto 100
1634-c Ifl = 0
1635- 13 A0=Exp(-0.2318E+00-0.9779E+00*SB -0.3783E+00*SB2+0.1037E-01*SB3)
1636- A1=-0.2916E+00+0.1754E+00*SB -0.1884E+00*SB2+0.6116E-01*SB3
1637- A2= 0.5349E+01+0.7460E+00*SB +0.2319E+00*SB2-0.2622E+00*SB3
1638- A3= 0.6920E+01-0.3454E+01*SB +0.2027E+01*SB2-0.7626E+00*SB3
1639- A4= 0.1013E+01+0.1423E+00*SB -0.1798E+00*SB2+0.1872E-01*SB3
1640- A5=-0.5465E-01+0.2303E+01*SB -0.9584E+00*SB2+0.3098E+00*SB3
1641- goto 100
1642-c Ifl = -1
1643- 14 A0=Exp(-0.2906E+01-0.1069E+00*SB -0.1055E+01*SB2+0.2496E+00*SB3)
1644- A1=-0.2875E+00+0.6571E-01*SB -0.1987E-01*SB2-0.1800E-02*SB3
1645- A2= 0.9854E+01-0.2715E+00*SB -0.7407E+00*SB2+0.2888E+00*SB3
1646- A3= 0.1583E+02-0.7687E+01*SB +0.3428E+01*SB2-0.3327E+00*SB3
1647- A4= 0.9763E+00+0.7599E-01*SB -0.2128E+00*SB2+0.6852E-01*SB3
1648- A5=-0.8444E-02+0.9434E+00*SB +0.4152E+00*SB2-0.1481E+00*SB3
1649- goto 100
1650-c Ifl = -2
1651- 15 A0=Exp(-0.2328E+01-0.3061E+01*SB +0.3620E+01*SB2-0.1602E+01*SB3)
1652- A1=-0.3358E+00+0.3198E+00*SB -0.4210E+00*SB2+0.1571E+00*SB3
1653- A2= 0.8478E+01-0.3112E+01*SB +0.5243E+01*SB2-0.2255E+01*SB3
1654- A3= 0.1971E+02+0.3389E+00*SB -0.5268E+01*SB2+0.2099E+01*SB3
1655- A4= 0.1128E+01-0.4701E+00*SB +0.7779E+00*SB2-0.3506E+00*SB3
1656- A5=-0.4708E+00+0.3341E+01*SB -0.3375E+01*SB2+0.1353E+01*SB3
1657- goto 100
1658-c Ifl = -3
1659- 16 A0=Exp(-0.3780E+01+0.2499E+01*SB -0.4962E+01*SB2+0.1936E+01*SB3)
1660- A1=-0.2639E+00-0.1575E+00*SB +0.3584E+00*SB2-0.1646E+00*SB3
1661- A2= 0.8082E+01+0.2794E+01*SB -0.5438E+01*SB2+0.2321E+01*SB3
1662- A3= 0.1811E+02-0.2000E+02*SB +0.1951E+02*SB2-0.6904E+01*SB3
1663- A4= 0.9822E+00+0.4972E+00*SB -0.8690E+00*SB2+0.3415E+00*SB3
1664- A5= 0.1772E+00-0.6078E+00*SB +0.3341E+01*SB2-0.1473E+01*SB3
1665- goto 100
1666-c Ifl = -4
1667- 17 A0=SB** 0.1122E+01*Exp(-0.4232E+01-0.1808E+01*SB +0.5348E+00*SB2)
1668- A1=-0.2824E+00+0.5846E+00*SB -0.7230E+00*SB2+0.2419E+00*SB3
1669- A2= 0.5683E+01-0.2948E+01*SB +0.5916E+01*SB2-0.2560E+01*SB3
1670- A3= 0.2051E+01+0.4795E+01*SB -0.4271E+01*SB2+0.4174E+00*SB3
1671- A4= 0.1737E+00+0.1717E+01*SB -0.1978E+01*SB2+0.6643E+00*SB3
1672- A5= 0.8689E+00+0.3500E+01*SB -0.3283E+01*SB2+0.1026E+01*SB3
1673- goto 100
1674-c Ifl = -5
1675- 18 A0=SB** 0.9906E+00*Exp(-0.1496E+01-0.6576E+01*SB +0.1569E+01*SB2)
1676- A1=-0.2140E+00-0.6419E-01*SB -0.2741E-02*SB2+0.3185E-02*SB3
1677- A2= 0.5781E+01+0.1049E+00*SB -0.3930E+00*SB2+0.5174E+00*SB3
1678- A3=-0.9420E+00+0.5511E+00*SB +0.8817E+00*SB2+0.1903E+01*SB3
1679- A4= 0.2418E-01+0.4232E-01*SB -0.1244E-01*SB2-0.2365E-01*SB3
1680- A5= 0.7664E+00+0.1794E+01*SB -0.4917E+00*SB2-0.1284E+00*SB3
1681- goto 100
1682-c Ifl = -6
1683- 19 A0=SB** 0.1000E+01*Exp(-0.8460E+01+0.1154E+01*SB +0.8838E+01*SB2)
1684- A1=-0.4316E-01-0.2976E+00*SB +0.3174E+00*SB2-0.1429E+01*SB3
1685- A2= 0.4910E+01+0.2273E+01*SB +0.5631E+01*SB2-0.1994E+02*SB3
1686- A3= 0.1190E+02-0.2000E+02*SB -0.2000E+02*SB2+0.1292E+02*SB3
1687- A4= 0.5771E+00-0.2552E+00*SB +0.7510E+00*SB2+0.6923E+00*SB3
1688- A5= 0.4402E+01-0.1627E+01*SB -0.2085E+01*SB2-0.6737E+01*SB3
1689- goto 100
1690-
1691- 2 Goto(21,22,23,24,25,26,27,28,29)Iflv
1692-c Ifl = 2
1693- 21 A0=Exp( 0.1141E+00+0.4764E+00*SB -0.1745E+01*SB2+0.7728E+00*SB3)
1694- A1= 0.4275E+00-0.1290E+00*SB +0.3609E+00*SB2-0.1689E+00*SB3
1695- A2= 0.3000E+01+0.2946E+01*SB -0.4117E+01*SB2+0.1989E+01*SB3
1696- A3=-0.1302E+01+0.2322E+01*SB -0.4258E+01*SB2+0.2109E+01*SB3
1697- A4= 0.2586E+01-0.1920E+00*SB -0.3754E+00*SB2+0.2731E+00*SB3
1698- A5=-0.2251E+00-0.5374E+00*SB +0.2245E+01*SB2-0.1034E+01*SB3
1699- goto 100
1700-c Ifl = 1
1701- 22 A0=Exp( 0.1907E+00+0.4205E-01*SB +0.2752E+00*SB2-0.3171E+00*SB3)
1702- A1= 0.4611E+00+0.2331E-01*SB -0.3403E-01*SB2+0.3174E-01*SB3
1703- A2= 0.3504E+01+0.5739E+00*SB +0.2676E+00*SB2-0.1553E+00*SB3
1704- A3= 0.7452E+01-0.6742E+01*SB +0.2849E+01*SB2-0.1964E+00*SB3
1705- A4= 0.1116E+01-0.3435E+00*SB +0.2865E+00*SB2-0.1288E+00*SB3
1706- A5= 0.6659E-01+0.2714E+00*SB -0.2688E+00*SB2+0.2763E+00*SB3
1707- goto 100
1708-c Ifl = 0
1709- 23 A0=Exp(-0.7631E+00-0.7241E+00*SB -0.1170E+01*SB2+0.5343E+00*SB3)
1710- A1=-0.3573E+00+0.3469E+00*SB -0.3396E+00*SB2+0.9188E-01*SB3
1711- A2= 0.5604E+01+0.7458E+00*SB -0.5082E+00*SB2+0.1844E+00*SB3
1712- A3= 0.1549E+02-0.1809E+02*SB +0.1162E+02*SB2-0.3483E+01*SB3
1713- A4= 0.9881E+00+0.1364E+00*SB -0.4421E+00*SB2+0.2051E+00*SB3
1714- A5=-0.9505E-01+0.3259E+01*SB -0.1547E+01*SB2+0.2918E+00*SB3
1715- goto 100
1716-c Ifl = -1
1717- 24 A0=Exp(-0.2740E+01-0.7987E-01*SB -0.9015E+00*SB2-0.9872E-01*SB3)
1718- A1=-0.3909E+00+0.1244E+00*SB -0.4487E-01*SB2+0.1277E-01*SB3
1719- A2= 0.9163E+01+0.2823E+00*SB -0.7720E+00*SB2-0.9360E-02*SB3
1720- A3= 0.1080E+02-0.3915E+01*SB -0.1153E+01*SB2+0.2649E+01*SB3
1721- A4= 0.9894E+00-0.1647E+00*SB -0.9426E-02*SB2+0.2945E-02*SB3
1722- A5=-0.3395E+00+0.6998E+00*SB +0.7000E+00*SB2-0.6730E-01*SB3
1723- goto 100
1724-c Ifl = -2
1725- 25 A0=Exp(-0.2449E+01-0.3513E+01*SB +0.4529E+01*SB2-0.2031E+01*SB3)
1726- A1=-0.4050E+00+0.3411E+00*SB -0.3669E+00*SB2+0.1109E+00*SB3
1727- A2= 0.7470E+01-0.2982E+01*SB +0.5503E+01*SB2-0.2419E+01*SB3
1728- A3= 0.1503E+02+0.1638E+01*SB -0.8772E+01*SB2+0.3852E+01*SB3
1729- A4= 0.1137E+01-0.1006E+01*SB +0.1485E+01*SB2-0.6389E+00*SB3
1730- A5=-0.5299E+00+0.3160E+01*SB -0.3104E+01*SB2+0.1219E+01*SB3
1731- goto 100
1732-c Ifl = -3
1733- 26 A0=Exp(-0.3640E+01+0.1250E+01*SB -0.2914E+01*SB2+0.8390E+00*SB3)
1734- A1=-0.3595E+00-0.5259E-01*SB +0.3122E+00*SB2-0.1642E+00*SB3
1735- A2= 0.7305E+01+0.9727E+00*SB -0.9788E+00*SB2-0.5193E-01*SB3
1736- A3= 0.1198E+02-0.1799E+02*SB +0.2614E+02*SB2-0.1091E+02*SB3
1737- A4= 0.9882E+00-0.6101E+00*SB +0.9737E+00*SB2-0.4935E+00*SB3
1738- A5=-0.1186E+00-0.3231E+00*SB +0.3074E+01*SB2-0.1274E+01*SB3
1739- goto 100
1740-c Ifl = -4
1741- 27 A0=SB** 0.1122E+01*Exp(-0.3718E+01-0.1335E+01*SB +0.1651E-01*SB2)
1742- A1=-0.4719E+00+0.7509E+00*SB -0.8420E+00*SB2+0.2901E+00*SB3
1743- A2= 0.6194E+01-0.1641E+01*SB +0.4907E+01*SB2-0.2523E+01*SB3
1744- A3= 0.4426E+01-0.4270E+01*SB +0.6581E+01*SB2-0.3474E+01*SB3
1745- A4= 0.2683E+00+0.9876E+00*SB -0.7612E+00*SB2+0.1780E+00*SB3
1746- A5=-0.4547E+00+0.4410E+01*SB -0.3712E+01*SB2+0.1245E+01*SB3
1747- goto 100
1748-c Ifl = -5
1749- 28 A0=SB** 0.9838E+00*Exp(-0.2548E+01-0.7660E+01*SB +0.3702E+01*SB2)
1750- A1=-0.3122E+00-0.2120E+00*SB +0.5716E+00*SB2-0.3773E+00*SB3
1751- A2= 0.6257E+01-0.8214E-01*SB -0.2537E+01*SB2+0.2981E+01*SB3
1752- A3=-0.6723E+00+0.2131E+01*SB +0.9599E+01*SB2-0.7910E+01*SB3
1753- A4= 0.9169E-01+0.4295E-01*SB -0.5017E+00*SB2+0.3811E+00*SB3
1754- A5= 0.2402E+00+0.2656E+01*SB -0.1586E+01*SB2+0.2880E+00*SB3
1755- goto 100
1756-c Ifl = -6
1757- 29 A0=SB** 0.1001E+01*Exp(-0.6934E+01+0.3050E+01*SB -0.6943E+00*SB2)
1758- A1=-0.1713E+00-0.5167E+00*SB +0.1241E+01*SB2-0.1703E+01*SB3
1759- A2= 0.6169E+01+0.3023E+01*SB -0.1972E+02*SB2+0.1069E+02*SB3
1760- A3= 0.4439E+01-0.1746E+02*SB +0.1225E+02*SB2+0.8350E+00*SB3
1761- A4= 0.5458E+00-0.4586E+00*SB +0.9089E+00*SB2-0.4049E+00*SB3
1762- A5= 0.3207E+01-0.3362E+01*SB +0.5877E+01*SB2-0.7659E+01*SB3
1763- goto 100
1764-
1765- 3 Goto(31,32,33,34,35,36,37,38,39)Iflv
1766-c Ifl = 2
1767- 31 A0=Exp( 0.3961E+00+0.4914E+00*SB -0.1728E+01*SB2+0.7257E+00*SB3)
1768- A1= 0.4162E+00-0.1419E+00*SB +0.3680E+00*SB2-0.1618E+00*SB3
1769- A2= 0.3248E+01+0.3028E+01*SB -0.4307E+01*SB2+0.1920E+01*SB3
1770- A3=-0.1100E+01+0.2184E+01*SB -0.3820E+01*SB2+0.1717E+01*SB3
1771- A4= 0.2082E+01-0.2756E+00*SB +0.3043E+00*SB2-0.1260E+00*SB3
1772- A5=-0.4822E+00-0.5706E+00*SB +0.2243E+01*SB2-0.9760E+00*SB3
1773- goto 100
1774-c Ifl = 1
1775- 32 A0=Exp( 0.2148E+00+0.5814E-01*SB +0.2734E+00*SB2-0.2902E+00*SB3)
1776- A1= 0.4810E+00+0.1657E-01*SB -0.3800E-01*SB2+0.3125E-01*SB3
1777- A2= 0.3509E+01+0.3923E+00*SB +0.4010E+00*SB2-0.1932E+00*SB3
1778- A3= 0.7055E+01-0.6552E+01*SB +0.3466E+01*SB2-0.5657E+00*SB3
1779- A4= 0.1061E+01-0.3453E+00*SB +0.4089E+00*SB2-0.1817E+00*SB3
1780- A5= 0.8687E-01+0.2548E+00*SB -0.2967E+00*SB2+0.2647E+00*SB3
1781- goto 100
1782-c Ifl = 0
1783- 33 A0=Exp(-0.4665E+00-0.7554E+00*SB -0.3323E+00*SB2-0.2734E-04*SB3)
1784- A1=-0.3359E+00+0.2395E+00*SB -0.2377E+00*SB2+0.7059E-01*SB3
1785- A2= 0.5451E+01+0.6086E+00*SB +0.8606E-01*SB2-0.1425E+00*SB3
1786- A3= 0.1026E+02-0.9352E+01*SB +0.4879E+01*SB2-0.1150E+01*SB3
1787- A4= 0.9935E+00-0.5017E-01*SB -0.1707E-01*SB2-0.1464E-02*SB3
1788- A5=-0.4160E-01+0.2305E+01*SB -0.1063E+01*SB2+0.3211E+00*SB3
1789- goto 100
1790-c Ifl = -1
1791- 34 A0=Exp(-0.3323E+01+0.2296E+00*SB -0.1109E+01*SB2+0.2223E+00*SB3)
1792- A1=-0.3410E+00+0.8847E-01*SB -0.1111E-01*SB2-0.5927E-02*SB3
1793- A2= 0.9753E+01-0.5182E+00*SB -0.4670E+00*SB2+0.1921E+00*SB3
1794- A3= 0.1977E+02-0.1600E+02*SB +0.9481E+01*SB2-0.1864E+01*SB3
1795- A4= 0.9818E+00+0.2839E-02*SB -0.1188E+00*SB2+0.3584E-01*SB3
1796- A5=-0.7934E-01+0.1004E+01*SB +0.3704E+00*SB2-0.1220E+00*SB3
1797- goto 100
1798-c Ifl = -2
1799- 35 A0=Exp(-0.2714E+01-0.2868E+01*SB +0.3700E+01*SB2-0.1671E+01*SB3)
1800- A1=-0.3893E+00+0.3341E+00*SB -0.3897E+00*SB2+0.1420E+00*SB3
1801- A2= 0.8359E+01-0.3267E+01*SB +0.5327E+01*SB2-0.2245E+01*SB3
1802- A3= 0.2359E+02-0.5669E+01*SB -0.4602E+01*SB2+0.3153E+01*SB3
1803- A4= 0.1106E+01-0.4745E+00*SB +0.7739E+00*SB2-0.3417E+00*SB3
1804- A5=-0.5557E+00+0.3433E+01*SB -0.3390E+01*SB2+0.1354E+01*SB3
1805- goto 100
1806-c Ifl = -3
1807- 36 A0=Exp(-0.3985E+01+0.2855E+01*SB -0.5208E+01*SB2+0.1937E+01*SB3)
1808- A1=-0.3337E+00-0.1150E+00*SB +0.3691E+00*SB2-0.1709E+00*SB3
1809- A2= 0.7968E+01+0.3641E+01*SB -0.6599E+01*SB2+0.2642E+01*SB3
1810- A3= 0.1873E+02-0.1999E+02*SB +0.1734E+02*SB2-0.5813E+01*SB3
1811- A4= 0.9731E+00+0.5082E+00*SB -0.8780E+00*SB2+0.3231E+00*SB3
1812- A5=-0.5542E-01-0.4189E+00*SB +0.3309E+01*SB2-0.1439E+01*SB3
1813- goto 100
1814-c Ifl = -4
1815- 37 A0=SB** 0.1105E+01*Exp(-0.3952E+01-0.1901E+01*SB +0.5137E+00*SB2)
1816- A1=-0.3543E+00+0.6055E+00*SB -0.6941E+00*SB2+0.2278E+00*SB3
1817- A2= 0.5955E+01-0.2629E+01*SB +0.5337E+01*SB2-0.2300E+01*SB3
1818- A3= 0.1933E+01+0.4882E+01*SB -0.3810E+01*SB2+0.2290E+00*SB3
1819- A4= 0.1806E+00+0.1655E+01*SB -0.1893E+01*SB2+0.6395E+00*SB3
1820- A5= 0.4790E+00+0.3612E+01*SB -0.3152E+01*SB2+0.9684E+00*SB3
1821- goto 100
1822-c Ifl = -5
1823- 38 A0=SB** 0.9818E+00*Exp(-0.1825E+01-0.7464E+01*SB +0.2143E+01*SB2)
1824- A1=-0.2604E+00-0.1400E+00*SB +0.1702E+00*SB2-0.8476E-01*SB3
1825- A2= 0.6005E+01+0.6275E+00*SB -0.2535E+01*SB2+0.2219E+01*SB3
1826- A3=-0.9067E+00+0.1149E+01*SB +0.1974E+01*SB2+0.4716E+01*SB3
1827- A4= 0.3915E-01+0.5945E-01*SB -0.9844E-01*SB2+0.2783E-01*SB3
1828- A5= 0.5500E+00+0.1994E+01*SB -0.6727E+00*SB2-0.1510E+00*SB3
1829- goto 100
1830-c Ifl = -6
1831- 39 A0=SB** 0.1002E+01*Exp(-0.8553E+01+0.3793E+00*SB +0.9998E+01*SB2)
1832- A1=-0.5870E-01-0.2792E+00*SB +0.6526E+00*SB2-0.1984E+01*SB3
1833- A2= 0.4716E+01+0.4473E+00*SB +0.1128E+02*SB2-0.1937E+02*SB3
1834- A3= 0.1289E+02-0.1742E+02*SB -0.1983E+02*SB2-0.9274E+00*SB3
1835- A4= 0.5647E+00-0.2732E+00*SB +0.1074E+01*SB2+0.5981E+00*SB3
1836- A5= 0.4390E+01-0.1262E+01*SB -0.9026E+00*SB2-0.9394E+01*SB3
1837- goto 100
1838-
1839- 311 stop 'This option is not currently supported.'
1840-
1841- 100 Ctq3df = A0 *(x**A1) *((D1-x)**A2) *(D1+A3*(x**A4))
1842- $ *(log(D1+D1/x))**A5
1843-
1844- if(Ctq3df.lt.D0) then
1845- Ctq3df = D0
1846- Irt=1
1847- endif
1848-
1849- Ist = Iset
1850-
1851- Lp = Iprtn
1852- Qsto = QQ
1853-
1854- Return
1855-C -----------------------
1856- ENTRY Wlamd3 (Iset, Iorder, Neff)
1857-
1858-C Returns the EFFECTIVE QCD lambda values for order=Iorder and
1859-C effective # of flavors = Neff for each of the PDF sets.
1860-
1861- Iorder = Iord (Iset)
1862- Wlamd3 = VLM (Neff, Iset)
1863-
1864- RETURN
1865-
1866-C *************************
1867- END
1868-
1869-
1870-
1871
1872=== removed file 'Template/LO/Source/PDF/jeppe02.f'
1873--- Template/LO/Source/PDF/jeppe02.f 2010-10-30 03:26:37 +0000
1874+++ Template/LO/Source/PDF/jeppe02.f 1970-01-01 00:00:00 +0000
1875@@ -1,160 +0,0 @@
1876- subroutine jeppe1(nx,my,xx,yy,ff,cc)
1877- implicit real*8(a-h,o-z)
1878- parameter(nnx=49,mmy=37)
1879- dimension xx(nx),yy(my),ff(nnx,mmy),ff1(nnx,mmy),ff2(nnx,mmy),
1880- xff12(nnx,mmy),yy0(4),yy1(4),yy2(4),yy12(4),z(16),wt(16,16),
1881- xcl(16),cc(nx,my,4,4),iwt(16,16)
1882-
1883- data iwt/1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1884- x 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
1885- x -3,0,0,3,0,0,0,0,-2,0,0,-1,0,0,0,0,
1886- x 2,0,0,-2,0,0,0,0,1,0,0,1,0,0,0,0,
1887- x 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
1888- x 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
1889- x 0,0,0,0,-3,0,0,3,0,0,0,0,-2,0,0,-1,
1890- x 0,0,0,0,2,0,0,-2,0,0,0,0,1,0,0,1,
1891- x -3,3,0,0,-2,-1,0,0,0,0,0,0,0,0,0,0,
1892- x 0,0,0,0,0,0,0,0,-3,3,0,0,-2,-1,0,0,
1893- x 9,-9,9,-9,6,3,-3,-6,6,-6,-3,3,4,2,1,2,
1894- x -6,6,-6,6,-4,-2,2,4,-3,3,3,-3,-2,-1,-1,-2,
1895- x 2,-2,0,0,1,1,0,0,0,0,0,0,0,0,0,0,
1896- x 0,0,0,0,0,0,0,0,2,-2,0,0,1,1,0,0,
1897- x -6,6,-6,6,-3,-3,3,3,-4,4,2,-2,-2,-2,-1,-1,
1898- x 4,-4,4,-4,2,2,-2,-2,2,-2,-2,2,1,1,1,1/
1899-
1900-
1901- do 42 m=1,my
1902- dx=xx(2)-xx(1)
1903- ff1(1,m)=(ff(2,m)-ff(1,m))/dx
1904- dx=xx(nx)-xx(nx-1)
1905- ff1(nx,m)=(ff(nx,m)-ff(nx-1,m))/dx
1906- do 41 n=2,nx-1
1907- ff1(n,m)=polderiv(xx(n-1),xx(n),xx(n+1),ff(n-1,m),ff(n,m),
1908- xff(n+1,m))
1909- 41 continue
1910- 42 continue
1911-
1912- do 44 n=1,nx
1913- dy=yy(2)-yy(1)
1914- ff2(n,1)=(ff(n,2)-ff(n,1))/dy
1915- dy=yy(my)-yy(my-1)
1916- ff2(n,my)=(ff(n,my)-ff(n,my-1))/dy
1917- do 43 m=2,my-1
1918- ff2(n,m)=polderiv(yy(m-1),yy(m),yy(m+1),ff(n,m-1),ff(n,m),
1919- xff(n,m+1))
1920- 43 continue
1921- 44 continue
1922-
1923- do 46 m=1,my
1924- dx=xx(2)-xx(1)
1925- ff12(1,m)=(ff2(2,m)-ff2(1,m))/dx
1926- dx=xx(nx)-xx(nx-1)
1927- ff12(nx,m)=(ff2(nx,m)-ff2(nx-1,m))/dx
1928- do 45 n=2,nx-1
1929- ff12(n,m)=polderiv(xx(n-1),xx(n),xx(n+1),ff2(n-1,m),ff2(n,m),
1930- xff2(n+1,m))
1931- 45 continue
1932- 46 continue
1933-
1934- do 53 n=1,nx-1
1935- do 52 m=1,my-1
1936- d1=xx(n+1)-xx(n)
1937- d2=yy(m+1)-yy(m)
1938- d1d2=d1*d2
1939-
1940- yy0(1)=ff(n,m)
1941- yy0(2)=ff(n+1,m)
1942- yy0(3)=ff(n+1,m+1)
1943- yy0(4)=ff(n,m+1)
1944-
1945- yy1(1)=ff1(n,m)
1946- yy1(2)=ff1(n+1,m)
1947- yy1(3)=ff1(n+1,m+1)
1948- yy1(4)=ff1(n,m+1)
1949-
1950- yy2(1)=ff2(n,m)
1951- yy2(2)=ff2(n+1,m)
1952- yy2(3)=ff2(n+1,m+1)
1953- yy2(4)=ff2(n,m+1)
1954-
1955- yy12(1)=ff12(n,m)
1956- yy12(2)=ff12(n+1,m)
1957- yy12(3)=ff12(n+1,m+1)
1958- yy12(4)=ff12(n,m+1)
1959-
1960- do 47 k=1,4
1961- z(k)=yy0(k)
1962- z(k+4)=yy1(k)*d1
1963- z(k+8)=yy2(k)*d2
1964- z(k+12)=yy12(k)*d1d2
1965- 47 continue
1966-
1967- do 49 l=1,16
1968- xxd=0.
1969- do 48 k=1,16
1970- xxd=xxd+iwt(k,l)*z(k)
1971- 48 continue
1972- cl(l)=xxd
1973- 49 continue
1974- l=0
1975- do 51 k=1,4
1976- do 50 j=1,4
1977- l=l+1
1978- cc(n,m,k,j)=cl(l)
1979- 50 continue
1980- 51 continue
1981- 52 continue
1982- 53 continue
1983- return
1984- end
1985-
1986- subroutine jeppe2(x,y,nx,my,xx,yy,cc,z)
1987- implicit real*8(a-h,o-z)
1988- dimension xx(nx),yy(my),cc(nx,my,4,4)
1989-
1990- n=locx(xx,nx,x)
1991- m=locx(yy,my,y)
1992-
1993- t=(x-xx(n))/(xx(n+1)-xx(n))
1994- u=(y-yy(m))/(yy(m+1)-yy(m))
1995-
1996- z=0.
1997- do 1 l=4,1,-1
1998- z=t*z+((cc(n,m,l,4)*u+cc(n,m,l,3))*u
1999- . +cc(n,m,l,2))*u+cc(n,m,l,1)
2000- 1 continue
2001- return
2002- end
2003-
2004- integer function locx(xx,nx,x)
2005- implicit real*8(a-h,o-z)
2006- dimension xx(nx)
2007- if(x.le.xx(1)) then
2008- locx=1
2009- return
2010- endif
2011- if(x.ge.xx(nx)) then
2012- locx=nx-1
2013- return
2014- endif
2015- ju=nx+1
2016- jl=0
2017- 1 if((ju-jl).le.1) go to 2
2018- jm=(ju+jl)/2
2019- if(x.ge.xx(jm)) then
2020- jl=jm
2021- else
2022- ju=jm
2023- endif
2024- go to 1
2025- 2 locx=jl
2026- return
2027- end
2028-
2029-
2030- real*8 function polderiv(x1,x2,x3,y1,y2,y3)
2031- implicit real*8(a-h,o-z)
2032- polderiv=(x3*x3*(y1-y2)-2.0*x2*(x3*(y1-y2)+x1*
2033- .(y2-y3))+x2*x2*(y1-y3)+x1*x1*(y2-y3))/((x1-x2)*(x1-x3)*(x2-x3))
2034- return
2035- end
2036
2037=== modified file 'Template/LO/Source/PDF/makefile'
2038--- Template/LO/Source/PDF/makefile 2016-04-16 23:51:09 +0000
2039+++ Template/LO/Source/PDF/makefile 2018-03-27 12:42:00 +0000
2040@@ -17,9 +17,7 @@
2041 PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o
2042 endif
2043 else
2044- PDF = Ctq4Fn.o Ctq5Par.o Ctq5Pdf.o Partonx5.o Ctq6Pdf.o cteq3.o \
2045- mrs98.o mrs98lo.o mrs98ht.o mrs99.o mrst2001.o mrst2002.o jeppe02.o \
2046- pdfwrap.o opendata.o pdf.o PhotonFlux.o pdg2pdf.o NNPDFDriver.o
2047+ PDF = Ctq6Pdf.o pdfwrap.o opendata.o pdf.o PhotonFlux.o pdg2pdf.o NNPDFDriver.o
2048 endif
2049
2050 all: $(LIBDIR)$(LIBRARY)
2051
2052=== removed file 'Template/LO/Source/PDF/mrs98.f'
2053--- Template/LO/Source/PDF/mrs98.f 2010-10-30 03:26:37 +0000
2054+++ Template/LO/Source/PDF/mrs98.f 1970-01-01 00:00:00 +0000
2055@@ -1,506 +0,0 @@
2056- subroutine mrs98(x,q,mode,upv,dnv,usea,dsea,str,chm,bot,glu)
2057-C****************************************************************C
2058-C C
2059-C This is a package for the new MRS 1998 parton C
2060-C distributions. The format is similar to the previous C
2061-C (1996) MRS-R series. C
2062-C C
2063-C As before, x times the parton distribution is returned, C
2064-C q is the scale in GeV, MSbar factorization is assumed, C
2065-C and Lambda(MSbar,nf=4) is given below for each set. C
2066-C C
2067-C TEMPORARY NAMING SCHEME: C
2068-C C
2069-C mode set comment L(4)/MeV a_s(M_Z) grid#1 C
2070-C ---- --- ------- -------- ------- ------ C
2071-C C
2072-C 1 FT08A central gluon, a_s 300 0.1175 0.00561 C
2073-C 2 FT09A higher gluon 300 0.1175 0.00510 C
2074-C 3 FT11A lower gluon 300 0.1175 0.00408 C
2075-C 4 FT24A lower a_s 229 0.1125 0.00586 C
2076-C 5 FT23A higher a_s 383 0.1225 0.00410 C
2077-C C
2078-C C
2079-C The corresponding grid files are called ft08a.dat etc. C
2080-C C
2081-C The reference is: C
2082-C A.D. Martin, R.G. Roberts, W.J. Stirling, R.S Thorne C
2083-C Univ. Durham preprint DTP/98/??, hep-ph/??????? (1998) C
2084-C C
2085-C Comments to : W.J.Stirling@durham.ac.uk C
2086-C C
2087-C C
2088-C****************************************************************C
2089- implicit double precision(a-h,o-z)
2090- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
2091- q2=q*q
2092- if(q2.lt.qsqmin.or.q2.gt.qsqmax) print 99
2093- if(x.lt.xmin.or.x.gt.xmax) print 98
2094- if(mode.eq.1) then
2095- call mrs981(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
2096- elseif(mode.eq.2) then
2097- call mrs982(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
2098- elseif(mode.eq.3) then
2099- call mrs983(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
2100- elseif(mode.eq.4) then
2101- call mrs984(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
2102- elseif(mode.eq.5) then
2103- call mrs985(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
2104- endif
2105- 99 format(' WARNING: Q^2 VALUE IS OUT OF RANGE ')
2106- 98 format(' WARNING: X VALUE IS OUT OF RANGE ')
2107- return
2108- end
2109-
2110- subroutine mrs981(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
2111- implicit double precision(a-h,o-z)
2112-c-fabio
2113- Character Tablefile*40
2114- data Tablefile/'ft08a.dat'/
2115- integer IU
2116- common/IU/IU !this is set in opendata.f
2117-c
2118- parameter(nx=49,nq=37,ntenth=23,np=8)
2119- double precision f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
2120- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
2121- . 1d-4,2d-4,4d-4,6d-4,8d-4,
2122- . 1d-3,2d-3,4d-3,6d-3,8d-3,
2123- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
2124- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
2125- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
2126- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
2127- . .8d0,.9d0,1d0/
2128- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
2129- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
2130- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
2131- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
2132- . 1.8d6,3.2d6,5.6d6,1d7/
2133- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
2134- data n0/3,4,5,9,9,9,9,9/
2135- data init/0/
2136- save
2137- xsave=x
2138- q2save=qsq
2139- if(init.ne.0) goto 10
2140-c open(unit=1,file='Pdfdata/ft08a.dat',status='old')
2141- call OpenData(Tablefile)
2142- do 20 n=1,nx-1
2143- do 20 m=1,nq
2144- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
2145- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
2146-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
2147- do 25 i=1,np
2148- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
2149- 20 continue
2150- do 31 j=1,ntenth-1
2151- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
2152- do 31 i=1,8
2153- if(i.eq.5.or.i.eq.7) goto 31
2154- do 30 k=1,nq
2155- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
2156- 31 continue
2157- 50 format(8f10.5)
2158- do 40 i=1,np
2159- do 40 m=1,nq
2160- 40 f(i,nx,m)=0d0
2161- init=1
2162- 10 continue
2163- if(x.lt.xmin) x=xmin
2164- if(x.gt.xmax) x=xmax
2165- if(qsq.lt.qsqmin) qsq=qsqmin
2166- if(qsq.gt.qsqmax) qsq=qsqmax
2167- xxx=x
2168- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
2169- n=0
2170- 70 n=n+1
2171- if(xxx.gt.xx(n+1)) goto 70
2172- a=(xxx-xx(n))/(xx(n+1)-xx(n))
2173- m=0
2174- 80 m=m+1
2175- if(qsq.gt.qq(m+1)) goto 80
2176- b=(qsq-qq(m))/(qq(m+1)-qq(m))
2177- do 60 i=1,np
2178- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
2179- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
2180- if(n.ge.ntenth) goto 65
2181- if(i.eq.5.or.i.eq.7) goto 65
2182- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
2183- g(i)=fac*10d0**(g(i)-fac)
2184- 65 continue
2185- g(i)=g(i)*(1d0-x)**n0(i)
2186- 60 continue
2187- upv=g(1)
2188- dnv=g(2)
2189- usea=g(4)
2190- dsea=g(8)
2191- str=g(6)
2192- chm=g(5)
2193- glu=g(3)
2194- bot=g(7)
2195- x=xsave
2196- qsq=q2save
2197- return
2198- end
2199-
2200- subroutine mrs982(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
2201- implicit double precision(a-h,o-z)
2202-c-fabio
2203- Character Tablefile*40
2204- data Tablefile/'ft09a.dat'/
2205- integer IU
2206- common/IU/IU !this is set in opendata.f
2207-c
2208- parameter(nx=49,nq=37,ntenth=23,np=8)
2209- double precision f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
2210- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
2211- . 1d-4,2d-4,4d-4,6d-4,8d-4,
2212- . 1d-3,2d-3,4d-3,6d-3,8d-3,
2213- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
2214- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
2215- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
2216- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
2217- . .8d0,.9d0,1d0/
2218- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
2219- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
2220- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
2221- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
2222- . 1.8d6,3.2d6,5.6d6,1d7/
2223- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
2224- data n0/3,4,5,9,9,9,9,9/
2225- data init/0/
2226- save
2227- xsave=x
2228- q2save=qsq
2229- if(init.ne.0) goto 10
2230-c open(unit=1,file='Pdfdata/ft09a.dat',status='old')
2231- call OpenData(Tablefile)
2232- do 20 n=1,nx-1
2233- do 20 m=1,nq
2234- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
2235- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
2236-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
2237- do 25 i=1,np
2238- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
2239- 20 continue
2240- do 31 j=1,ntenth-1
2241- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
2242- do 31 i=1,8
2243- if(i.eq.5.or.i.eq.7) goto 31
2244- do 30 k=1,nq
2245- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
2246- 31 continue
2247- 50 format(8f10.5)
2248- do 40 i=1,np
2249- do 40 m=1,nq
2250- 40 f(i,nx,m)=0d0
2251- init=1
2252- 10 continue
2253- if(x.lt.xmin) x=xmin
2254- if(x.gt.xmax) x=xmax
2255- if(qsq.lt.qsqmin) qsq=qsqmin
2256- if(qsq.gt.qsqmax) qsq=qsqmax
2257- xxx=x
2258- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
2259- n=0
2260- 70 n=n+1
2261- if(xxx.gt.xx(n+1)) goto 70
2262- a=(xxx-xx(n))/(xx(n+1)-xx(n))
2263- m=0
2264- 80 m=m+1
2265- if(qsq.gt.qq(m+1)) goto 80
2266- b=(qsq-qq(m))/(qq(m+1)-qq(m))
2267- do 60 i=1,np
2268- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
2269- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
2270- if(n.ge.ntenth) goto 65
2271- if(i.eq.5.or.i.eq.7) goto 65
2272- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
2273- g(i)=fac*10d0**(g(i)-fac)
2274- 65 continue
2275- g(i)=g(i)*(1d0-x)**n0(i)
2276- 60 continue
2277- upv=g(1)
2278- dnv=g(2)
2279- usea=g(4)
2280- dsea=g(8)
2281- str=g(6)
2282- chm=g(5)
2283- glu=g(3)
2284- bot=g(7)
2285- x=xsave
2286- qsq=q2save
2287- return
2288- end
2289-
2290- subroutine mrs983(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
2291- implicit double precision(a-h,o-z)
2292-c-fabio
2293- Character Tablefile*40
2294- data Tablefile/'ft11a.dat'/
2295- integer IU
2296- common/IU/IU !this is set in opendata.f
2297-c
2298- parameter(nx=49,nq=37,ntenth=23,np=8)
2299- double precision f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
2300- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
2301- . 1d-4,2d-4,4d-4,6d-4,8d-4,
2302- . 1d-3,2d-3,4d-3,6d-3,8d-3,
2303- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
2304- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
2305- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
2306- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
2307- . .8d0,.9d0,1d0/
2308- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
2309- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
2310- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
2311- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
2312- . 1.8d6,3.2d6,5.6d6,1d7/
2313- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
2314- data n0/3,4,5,9,9,9,9,9/
2315- data init/0/
2316- save
2317- xsave=x
2318- q2save=qsq
2319- if(init.ne.0) goto 10
2320-c open(unit=1,file='Pdfdata/ft11a.dat',status='old')
2321- call OpenData(Tablefile)
2322- do 20 n=1,nx-1
2323- do 20 m=1,nq
2324- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
2325- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
2326-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
2327- do 25 i=1,np
2328- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
2329- 20 continue
2330- do 31 j=1,ntenth-1
2331- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
2332- do 31 i=1,8
2333- if(i.eq.5.or.i.eq.7) goto 31
2334- do 30 k=1,nq
2335- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
2336- 31 continue
2337- 50 format(8f10.5)
2338- do 40 i=1,np
2339- do 40 m=1,nq
2340- 40 f(i,nx,m)=0d0
2341- init=1
2342- 10 continue
2343- if(x.lt.xmin) x=xmin
2344- if(x.gt.xmax) x=xmax
2345- if(qsq.lt.qsqmin) qsq=qsqmin
2346- if(qsq.gt.qsqmax) qsq=qsqmax
2347- xxx=x
2348- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
2349- n=0
2350- 70 n=n+1
2351- if(xxx.gt.xx(n+1)) goto 70
2352- a=(xxx-xx(n))/(xx(n+1)-xx(n))
2353- m=0
2354- 80 m=m+1
2355- if(qsq.gt.qq(m+1)) goto 80
2356- b=(qsq-qq(m))/(qq(m+1)-qq(m))
2357- do 60 i=1,np
2358- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
2359- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
2360- if(n.ge.ntenth) goto 65
2361- if(i.eq.5.or.i.eq.7) goto 65
2362- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
2363- g(i)=fac*10d0**(g(i)-fac)
2364- 65 continue
2365- g(i)=g(i)*(1d0-x)**n0(i)
2366- 60 continue
2367- upv=g(1)
2368- dnv=g(2)
2369- usea=g(4)
2370- dsea=g(8)
2371- str=g(6)
2372- chm=g(5)
2373- glu=g(3)
2374- bot=g(7)
2375- x=xsave
2376- qsq=q2save
2377- return
2378- end
2379-
2380-
2381- subroutine mrs984(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
2382- implicit double precision(a-h,o-z)
2383-c-fabio
2384- Character Tablefile*40
2385- data Tablefile/'ft24a.dat'/
2386- integer IU
2387- common/IU/IU !this is set in opendata.f
2388-c
2389- parameter(nx=49,nq=37,ntenth=23,np=8)
2390- double precision f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
2391- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
2392- . 1d-4,2d-4,4d-4,6d-4,8d-4,
2393- . 1d-3,2d-3,4d-3,6d-3,8d-3,
2394- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
2395- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
2396- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
2397- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
2398- . .8d0,.9d0,1d0/
2399- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
2400- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
2401- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
2402- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
2403- . 1.8d6,3.2d6,5.6d6,1d7/
2404- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
2405- data n0/3,4,5,9,9,9,9,9/
2406- data init/0/
2407- save
2408- xsave=x
2409- q2save=qsq
2410- if(init.ne.0) goto 10
2411-c open(unit=1,file='Pdfdata/ft24a.dat',status='old')
2412- call OpenData(Tablefile)
2413- do 20 n=1,nx-1
2414- do 20 m=1,nq
2415- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
2416- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
2417-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
2418- do 25 i=1,np
2419- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
2420- 20 continue
2421- do 31 j=1,ntenth-1
2422- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
2423- do 31 i=1,8
2424- if(i.eq.5.or.i.eq.7) goto 31
2425- do 30 k=1,nq
2426- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
2427- 31 continue
2428- 50 format(8f10.5)
2429- do 40 i=1,np
2430- do 40 m=1,nq
2431- 40 f(i,nx,m)=0d0
2432- init=1
2433- 10 continue
2434- if(x.lt.xmin) x=xmin
2435- if(x.gt.xmax) x=xmax
2436- if(qsq.lt.qsqmin) qsq=qsqmin
2437- if(qsq.gt.qsqmax) qsq=qsqmax
2438- xxx=x
2439- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
2440- n=0
2441- 70 n=n+1
2442- if(xxx.gt.xx(n+1)) goto 70
2443- a=(xxx-xx(n))/(xx(n+1)-xx(n))
2444- m=0
2445- 80 m=m+1
2446- if(qsq.gt.qq(m+1)) goto 80
2447- b=(qsq-qq(m))/(qq(m+1)-qq(m))
2448- do 60 i=1,np
2449- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
2450- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
2451- if(n.ge.ntenth) goto 65
2452- if(i.eq.5.or.i.eq.7) goto 65
2453- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
2454- g(i)=fac*10d0**(g(i)-fac)
2455- 65 continue
2456- g(i)=g(i)*(1d0-x)**n0(i)
2457- 60 continue
2458- upv=g(1)
2459- dnv=g(2)
2460- usea=g(4)
2461- dsea=g(8)
2462- str=g(6)
2463- chm=g(5)
2464- glu=g(3)
2465- bot=g(7)
2466- x=xsave
2467- qsq=q2save
2468- return
2469- end
2470-
2471- subroutine mrs985(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
2472- implicit double precision(a-h,o-z)
2473-c-fabio
2474- Character Tablefile*40
2475- data Tablefile/'ft23a.dat'/
2476- integer IU
2477- common/IU/IU !this is set in opendata.f
2478-c
2479- parameter(nx=49,nq=37,ntenth=23,np=8)
2480- double precision f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
2481- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
2482- . 1d-4,2d-4,4d-4,6d-4,8d-4,
2483- . 1d-3,2d-3,4d-3,6d-3,8d-3,
2484- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
2485- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
2486- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
2487- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
2488- . .8d0,.9d0,1d0/
2489- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
2490- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
2491- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
2492- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
2493- . 1.8d6,3.2d6,5.6d6,1d7/
2494- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
2495- data n0/3,4,5,9,9,9,9,9/
2496- data init/0/
2497- save
2498- xsave=x
2499- q2save=qsq
2500- if(init.ne.0) goto 10
2501-c open(unit=1,file='Pdfdata/ft23a.dat',status='old')
2502- call OpenData(Tablefile)
2503- do 20 n=1,nx-1
2504- do 20 m=1,nq
2505- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
2506- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
2507-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
2508- do 25 i=1,np
2509- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
2510- 20 continue
2511- do 31 j=1,ntenth-1
2512- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
2513- do 31 i=1,8
2514- if(i.eq.5.or.i.eq.7) goto 31
2515- do 30 k=1,nq
2516- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
2517- 31 continue
2518- 50 format(8f10.5)
2519- do 40 i=1,np
2520- do 40 m=1,nq
2521- 40 f(i,nx,m)=0d0
2522- init=1
2523- 10 continue
2524- if(x.lt.xmin) x=xmin
2525- if(x.gt.xmax) x=xmax
2526- if(qsq.lt.qsqmin) qsq=qsqmin
2527- if(qsq.gt.qsqmax) qsq=qsqmax
2528- xxx=x
2529- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
2530- n=0
2531- 70 n=n+1
2532- if(xxx.gt.xx(n+1)) goto 70
2533- a=(xxx-xx(n))/(xx(n+1)-xx(n))
2534- m=0
2535- 80 m=m+1
2536- if(qsq.gt.qq(m+1)) goto 80
2537- b=(qsq-qq(m))/(qq(m+1)-qq(m))
2538- do 60 i=1,np
2539- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
2540- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
2541- if(n.ge.ntenth) goto 65
2542- if(i.eq.5.or.i.eq.7) goto 65
2543- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
2544- g(i)=fac*10d0**(g(i)-fac)
2545- 65 continue
2546- g(i)=g(i)*(1d0-x)**n0(i)
2547- 60 continue
2548- upv=g(1)
2549- dnv=g(2)
2550- usea=g(4)
2551- dsea=g(8)
2552- str=g(6)
2553- chm=g(5)
2554- glu=g(3)
2555- bot=g(7)
2556- x=xsave
2557- qsq=q2save
2558- return
2559- end
2560-
2561-
2562
2563=== removed file 'Template/LO/Source/PDF/mrs98ht.f'
2564--- Template/LO/Source/PDF/mrs98ht.f 2010-10-30 03:26:37 +0000
2565+++ Template/LO/Source/PDF/mrs98ht.f 1970-01-01 00:00:00 +0000
2566@@ -1,133 +0,0 @@
2567- subroutine mrs98ht(x,q,mode,upv,dnv,usea,dsea,str,chm,bot,glu)
2568-C****************************************************************C
2569-C C
2570-C This is a package for the MRS 1998 parton distributions C
2571-C including hogher twist. The format is similar to the C
2572-C previous (1996) MRS-R series. C
2573-C C
2574-C As before, x times the parton distribution is returned, C
2575-C q is the scale in GeV, MSbar factorization is assumed, C
2576-C and Lambda(MSbar,nf=4) is given below for each set. C
2577-C C
2578-C TEMPORARY NAMING SCHEME: C
2579-C C
2580-C mode set comment L(4)/MeV a_s(M_Z) grid#1 C
2581-C ---- --- ------- -------- ------- ------ C
2582-C C
2583-C 1 HT11A central gluon, a_s 292.5 0.1170 0.00536 C
2584-C C
2585-C The corresponding grid file are called ht118a.dat etc. C
2586-C C
2587-C The reference is: C
2588-C A.D. Martin, R.G. Roberts, W.J. Stirling, R.S Thorne C
2589-C Univ. Durham preprint DTP/98/52, hep-ph/??????? (1998) C
2590-C C
2591-C Comments to : W.J.Stirling@durham.ac.uk C
2592-C C
2593-C C
2594-C****************************************************************C
2595- implicit real*8(a-h,o-z)
2596- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
2597- q2=q*q
2598- if(q2.lt.qsqmin.or.q2.gt.qsqmax) print 99
2599- if(x.lt.xmin.or.x.gt.xmax) print 98
2600- if(mode.eq.1) then
2601- call mrs981ht(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
2602- endif
2603- 99 format(' WARNING: Q^2 VALUE IS OUT OF RANGE ')
2604- 98 format(' WARNING: X VALUE IS OUT OF RANGE ')
2605- return
2606- end
2607-
2608- subroutine mrs981ht(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
2609- implicit real*8(a-h,o-z)
2610-c-fabio
2611- Character Tablefile*40
2612- data Tablefile/'ht11b.dat'/
2613- integer IU
2614- common/IU/IU !this is set in opendata.f
2615-c
2616- parameter(nx=49,nq=37,ntenth=23,np=8)
2617- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
2618- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
2619- . 1d-4,2d-4,4d-4,6d-4,8d-4,
2620- . 1d-3,2d-3,4d-3,6d-3,8d-3,
2621- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
2622- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
2623- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
2624- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
2625- . .8d0,.9d0,1d0/
2626- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
2627- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
2628- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
2629- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
2630- . 1.8d6,3.2d6,5.6d6,1d7/
2631- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
2632- data n0/3,4,5,9,9,9,9,9/
2633- data init/0/
2634- save
2635- xsave=x
2636- q2save=qsq
2637- if(init.ne.0) goto 10
2638-c open(unit=1,file='ft08a.dat',status='old')
2639-c open(unit=1,file='Pdfdata/ht11b.dat',status='old')
2640- call OpenData(Tablefile)
2641- do 20 n=1,nx-1
2642- do 20 m=1,nq
2643- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
2644- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
2645-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
2646- do 25 i=1,np
2647- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
2648- 20 continue
2649- do 31 j=1,ntenth-1
2650- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
2651- do 31 i=1,8
2652- if(i.eq.5.or.i.eq.7) goto 31
2653- do 30 k=1,nq
2654- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
2655- 31 continue
2656- 50 format(8f10.5)
2657- do 40 i=1,np
2658- do 40 m=1,nq
2659- 40 f(i,nx,m)=0d0
2660- init=1
2661- 10 continue
2662- if(x.lt.xmin) x=xmin
2663- if(x.gt.xmax) x=xmax
2664- if(qsq.lt.qsqmin) qsq=qsqmin
2665- if(qsq.gt.qsqmax) qsq=qsqmax
2666- xxx=x
2667- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
2668- n=0
2669- 70 n=n+1
2670- if(xxx.gt.xx(n+1)) goto 70
2671- a=(xxx-xx(n))/(xx(n+1)-xx(n))
2672- m=0
2673- 80 m=m+1
2674- if(qsq.gt.qq(m+1)) goto 80
2675- b=(qsq-qq(m))/(qq(m+1)-qq(m))
2676- do 60 i=1,np
2677- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
2678- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
2679- if(n.ge.ntenth) goto 65
2680- if(i.eq.5.or.i.eq.7) goto 65
2681- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
2682- g(i)=fac*10d0**(g(i)-fac)
2683- 65 continue
2684- g(i)=g(i)*(1d0-x)**n0(i)
2685- 60 continue
2686- upv=g(1)
2687- dnv=g(2)
2688- usea=g(4)
2689- dsea=g(8)
2690- str=g(6)
2691- chm=g(5)
2692- glu=g(3)
2693- bot=g(7)
2694- x=xsave
2695- qsq=q2save
2696- return
2697- end
2698-
2699-
2700
2701=== removed file 'Template/LO/Source/PDF/mrs98lo.f'
2702--- Template/LO/Source/PDF/mrs98lo.f 2010-10-30 03:26:37 +0000
2703+++ Template/LO/Source/PDF/mrs98lo.f 1970-01-01 00:00:00 +0000
2704@@ -1,508 +0,0 @@
2705- subroutine mrs98lo(x,q,mode,upv,dnv,usea,dsea,str,chm,bot,glu)
2706-C****************************************************************C
2707-C C
2708-C This is a package for the new MRS LO 1998 parton C
2709-C distributions. The format is similar to the previous C
2710-C (1996) MRS-R series. C
2711-C C
2712-C As before, x times the parton distribution is returned, C
2713-C q is the scale in GeV, C
2714-C and Lambda(MSbar,nf=4) is given below for each set. C
2715-C C
2716-C Reference Martin, Roberts, Stirling and Thorne C
2717-C Durham preprint DTP/98/52 (August 1998) C
2718-C C
2719-C TEMPORARY NAMING SCHEME: C
2720-C C
2721-C mode set comment L(4)/MeV a_s(M_Z) grid#1 C
2722-C ---- --- ------- -------- ------- ------ C
2723-C C
2724-C 1 LO05A central gluon, a_s 174 0.1250 0.01518 C
2725-C 2 LO09A higher gluon 174 0.1250 0.01616 C
2726-C 3 LO10A lower gluon 174 0.1250 0.01533 C
2727-C 4 LO01A lower a_s 136 0.1200 0.01652 C
2728-C 5 LO07A higher a_s 216 0.1300 0.01522 C
2729-C C
2730-C C
2731-C The corresponding grid files are called lt05a.dat etc. C
2732-C C
2733-C The reference is: C
2734-C A.D. Martin, R.G. Roberts, W.J. Stirling, R.S Thorne C
2735-C Univ. Durham preprint DTP/98/??, hep-ph/??????? (1998) C
2736-C C
2737-C Comments to : W.J.Stirling@durham.ac.uk C
2738-C C
2739-C C
2740-C****************************************************************C
2741- implicit real*8(a-h,o-z)
2742- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
2743- q2=q*q
2744- if(q2.lt.qsqmin.or.q2.gt.qsqmax) print 99
2745- if(x.lt.xmin.or.x.gt.xmax) print 98
2746- if(mode.eq.1) then
2747- call mrs98lo1(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
2748- elseif(mode.eq.2) then
2749- call mrs98lo2(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
2750- elseif(mode.eq.3) then
2751- call mrs98lo3(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
2752- elseif(mode.eq.4) then
2753- call mrs98lo4(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
2754- elseif(mode.eq.5) then
2755- call mrs98lo5(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
2756- endif
2757- 99 format(' WARNING: Q^2 VALUE IS OUT OF RANGE ')
2758- 98 format(' WARNING: X VALUE IS OUT OF RANGE ')
2759- return
2760- end
2761-
2762- subroutine mrs98lo1(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
2763- implicit real*8(a-h,o-z)
2764-c-fabio
2765- Character Tablefile*40
2766- data Tablefile/'lo05a.dat'/
2767- integer IU
2768- common/IU/IU !this is set in opendata.f
2769-c
2770- parameter(nx=49,nq=37,ntenth=23,np=8)
2771- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
2772- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
2773- . 1d-4,2d-4,4d-4,6d-4,8d-4,
2774- . 1d-3,2d-3,4d-3,6d-3,8d-3,
2775- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
2776- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
2777- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
2778- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
2779- . .8d0,.9d0,1d0/
2780- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
2781- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
2782- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
2783- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
2784- . 1.8d6,3.2d6,5.6d6,1d7/
2785- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
2786- data n0/3,4,5,9,9,9,9,9/
2787- data init/0/
2788- save
2789- xsave=x
2790- q2save=qsq
2791- if(init.ne.0) goto 10
2792-c open(unit=1,file='Pdfdata/lo05a.dat',status='old')
2793- call OpenData(Tablefile)
2794- do 20 n=1,nx-1
2795- do 20 m=1,nq
2796- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
2797- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
2798-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
2799- do 25 i=1,np
2800- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
2801- 20 continue
2802- do 31 j=1,ntenth-1
2803- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
2804- do 31 i=1,8
2805- if(i.eq.5.or.i.eq.7) goto 31
2806- do 30 k=1,nq
2807- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
2808- 31 continue
2809- 50 format(8f10.5)
2810- do 40 i=1,np
2811- do 40 m=1,nq
2812- 40 f(i,nx,m)=0d0
2813- init=1
2814- 10 continue
2815- if(x.lt.xmin) x=xmin
2816- if(x.gt.xmax) x=xmax
2817- if(qsq.lt.qsqmin) qsq=qsqmin
2818- if(qsq.gt.qsqmax) qsq=qsqmax
2819- xxx=x
2820- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
2821- n=0
2822- 70 n=n+1
2823- if(xxx.gt.xx(n+1)) goto 70
2824- a=(xxx-xx(n))/(xx(n+1)-xx(n))
2825- m=0
2826- 80 m=m+1
2827- if(qsq.gt.qq(m+1)) goto 80
2828- b=(qsq-qq(m))/(qq(m+1)-qq(m))
2829- do 60 i=1,np
2830- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
2831- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
2832- if(n.ge.ntenth) goto 65
2833- if(i.eq.5.or.i.eq.7) goto 65
2834- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
2835- g(i)=fac*10d0**(g(i)-fac)
2836- 65 continue
2837- g(i)=g(i)*(1d0-x)**n0(i)
2838- 60 continue
2839- upv=g(1)
2840- dnv=g(2)
2841- usea=g(4)
2842- dsea=g(8)
2843- str=g(6)
2844- chm=g(5)
2845- glu=g(3)
2846- bot=g(7)
2847- x=xsave
2848- qsq=q2save
2849- return
2850- end
2851-
2852- subroutine mrs98lo2(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
2853- implicit real*8(a-h,o-z)
2854-c-fabio
2855- Character Tablefile*40
2856- data Tablefile/'lo09a.dat'/
2857- integer IU
2858- common/IU/IU !this is set in opendata.f
2859-c
2860- parameter(nx=49,nq=37,ntenth=23,np=8)
2861- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
2862- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
2863- . 1d-4,2d-4,4d-4,6d-4,8d-4,
2864- . 1d-3,2d-3,4d-3,6d-3,8d-3,
2865- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
2866- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
2867- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
2868- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
2869- . .8d0,.9d0,1d0/
2870- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
2871- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
2872- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
2873- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
2874- . 1.8d6,3.2d6,5.6d6,1d7/
2875- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
2876- data n0/3,4,5,9,9,9,9,9/
2877- data init/0/
2878- save
2879- xsave=x
2880- q2save=qsq
2881- if(init.ne.0) goto 10
2882-c open(unit=1,file='Pdfdata/lo09a.dat',status='old')
2883- call OpenData(Tablefile)
2884- do 20 n=1,nx-1
2885- do 20 m=1,nq
2886- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
2887- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
2888-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
2889- do 25 i=1,np
2890- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
2891- 20 continue
2892- do 31 j=1,ntenth-1
2893- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
2894- do 31 i=1,8
2895- if(i.eq.5.or.i.eq.7) goto 31
2896- do 30 k=1,nq
2897- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
2898- 31 continue
2899- 50 format(8f10.5)
2900- do 40 i=1,np
2901- do 40 m=1,nq
2902- 40 f(i,nx,m)=0d0
2903- init=1
2904- 10 continue
2905- if(x.lt.xmin) x=xmin
2906- if(x.gt.xmax) x=xmax
2907- if(qsq.lt.qsqmin) qsq=qsqmin
2908- if(qsq.gt.qsqmax) qsq=qsqmax
2909- xxx=x
2910- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
2911- n=0
2912- 70 n=n+1
2913- if(xxx.gt.xx(n+1)) goto 70
2914- a=(xxx-xx(n))/(xx(n+1)-xx(n))
2915- m=0
2916- 80 m=m+1
2917- if(qsq.gt.qq(m+1)) goto 80
2918- b=(qsq-qq(m))/(qq(m+1)-qq(m))
2919- do 60 i=1,np
2920- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
2921- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
2922- if(n.ge.ntenth) goto 65
2923- if(i.eq.5.or.i.eq.7) goto 65
2924- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
2925- g(i)=fac*10d0**(g(i)-fac)
2926- 65 continue
2927- g(i)=g(i)*(1d0-x)**n0(i)
2928- 60 continue
2929- upv=g(1)
2930- dnv=g(2)
2931- usea=g(4)
2932- dsea=g(8)
2933- str=g(6)
2934- chm=g(5)
2935- glu=g(3)
2936- bot=g(7)
2937- x=xsave
2938- qsq=q2save
2939- return
2940- end
2941-
2942- subroutine mrs98lo3(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
2943- implicit real*8(a-h,o-z)
2944-c-fabio
2945- Character Tablefile*40
2946- data Tablefile/'lo10a.dat'/
2947- integer IU
2948- common/IU/IU !this is set in opendata.f
2949-c
2950- parameter(nx=49,nq=37,ntenth=23,np=8)
2951- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
2952- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
2953- . 1d-4,2d-4,4d-4,6d-4,8d-4,
2954- . 1d-3,2d-3,4d-3,6d-3,8d-3,
2955- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
2956- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
2957- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
2958- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
2959- . .8d0,.9d0,1d0/
2960- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
2961- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
2962- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
2963- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
2964- . 1.8d6,3.2d6,5.6d6,1d7/
2965- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
2966- data n0/3,4,5,9,9,9,9,9/
2967- data init/0/
2968- save
2969- xsave=x
2970- q2save=qsq
2971- if(init.ne.0) goto 10
2972-c open(unit=1,file='Pdfdata/lo10a.dat',status='old')
2973- call OpenData(Tablefile)
2974- do 20 n=1,nx-1
2975- do 20 m=1,nq
2976- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
2977- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
2978-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
2979- do 25 i=1,np
2980- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
2981- 20 continue
2982- do 31 j=1,ntenth-1
2983- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
2984- do 31 i=1,8
2985- if(i.eq.5.or.i.eq.7) goto 31
2986- do 30 k=1,nq
2987- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
2988- 31 continue
2989- 50 format(8f10.5)
2990- do 40 i=1,np
2991- do 40 m=1,nq
2992- 40 f(i,nx,m)=0d0
2993- init=1
2994- 10 continue
2995- if(x.lt.xmin) x=xmin
2996- if(x.gt.xmax) x=xmax
2997- if(qsq.lt.qsqmin) qsq=qsqmin
2998- if(qsq.gt.qsqmax) qsq=qsqmax
2999- xxx=x
3000- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
3001- n=0
3002- 70 n=n+1
3003- if(xxx.gt.xx(n+1)) goto 70
3004- a=(xxx-xx(n))/(xx(n+1)-xx(n))
3005- m=0
3006- 80 m=m+1
3007- if(qsq.gt.qq(m+1)) goto 80
3008- b=(qsq-qq(m))/(qq(m+1)-qq(m))
3009- do 60 i=1,np
3010- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
3011- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
3012- if(n.ge.ntenth) goto 65
3013- if(i.eq.5.or.i.eq.7) goto 65
3014- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
3015- g(i)=fac*10d0**(g(i)-fac)
3016- 65 continue
3017- g(i)=g(i)*(1d0-x)**n0(i)
3018- 60 continue
3019- upv=g(1)
3020- dnv=g(2)
3021- usea=g(4)
3022- dsea=g(8)
3023- str=g(6)
3024- chm=g(5)
3025- glu=g(3)
3026- bot=g(7)
3027- x=xsave
3028- qsq=q2save
3029- return
3030- end
3031-
3032-
3033- subroutine mrs98lo4(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
3034- implicit real*8(a-h,o-z)
3035-c-fabio
3036- Character Tablefile*40
3037- data Tablefile/'lo01a.dat'/
3038- integer IU
3039- common/IU/IU !this is set in opendata.f
3040-c
3041- parameter(nx=49,nq=37,ntenth=23,np=8)
3042- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
3043- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
3044- . 1d-4,2d-4,4d-4,6d-4,8d-4,
3045- . 1d-3,2d-3,4d-3,6d-3,8d-3,
3046- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
3047- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
3048- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
3049- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
3050- . .8d0,.9d0,1d0/
3051- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
3052- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
3053- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
3054- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
3055- . 1.8d6,3.2d6,5.6d6,1d7/
3056- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
3057- data n0/3,4,5,9,9,9,9,9/
3058- data init/0/
3059- save
3060- xsave=x
3061- q2save=qsq
3062- if(init.ne.0) goto 10
3063-c open(unit=1,file='Pdfdata/lo01a.dat',status='old')
3064- call OpenData(Tablefile)
3065- do 20 n=1,nx-1
3066- do 20 m=1,nq
3067- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
3068- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
3069-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
3070- do 25 i=1,np
3071- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
3072- 20 continue
3073- do 31 j=1,ntenth-1
3074- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
3075- do 31 i=1,8
3076- if(i.eq.5.or.i.eq.7) goto 31
3077- do 30 k=1,nq
3078- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
3079- 31 continue
3080- 50 format(8f10.5)
3081- do 40 i=1,np
3082- do 40 m=1,nq
3083- 40 f(i,nx,m)=0d0
3084- init=1
3085- 10 continue
3086- if(x.lt.xmin) x=xmin
3087- if(x.gt.xmax) x=xmax
3088- if(qsq.lt.qsqmin) qsq=qsqmin
3089- if(qsq.gt.qsqmax) qsq=qsqmax
3090- xxx=x
3091- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
3092- n=0
3093- 70 n=n+1
3094- if(xxx.gt.xx(n+1)) goto 70
3095- a=(xxx-xx(n))/(xx(n+1)-xx(n))
3096- m=0
3097- 80 m=m+1
3098- if(qsq.gt.qq(m+1)) goto 80
3099- b=(qsq-qq(m))/(qq(m+1)-qq(m))
3100- do 60 i=1,np
3101- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
3102- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
3103- if(n.ge.ntenth) goto 65
3104- if(i.eq.5.or.i.eq.7) goto 65
3105- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
3106- g(i)=fac*10d0**(g(i)-fac)
3107- 65 continue
3108- g(i)=g(i)*(1d0-x)**n0(i)
3109- 60 continue
3110- upv=g(1)
3111- dnv=g(2)
3112- usea=g(4)
3113- dsea=g(8)
3114- str=g(6)
3115- chm=g(5)
3116- glu=g(3)
3117- bot=g(7)
3118- x=xsave
3119- qsq=q2save
3120- return
3121- end
3122-
3123- subroutine mrs98lo5(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
3124- implicit real*8(a-h,o-z)
3125-c-fabio
3126- Character Tablefile*40
3127- data Tablefile/'lo07a.dat'/
3128- integer IU
3129- common/IU/IU !this is set in opendata.f
3130-c
3131- parameter(nx=49,nq=37,ntenth=23,np=8)
3132- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
3133- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
3134- . 1d-4,2d-4,4d-4,6d-4,8d-4,
3135- . 1d-3,2d-3,4d-3,6d-3,8d-3,
3136- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
3137- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
3138- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
3139- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
3140- . .8d0,.9d0,1d0/
3141- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
3142- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
3143- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
3144- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
3145- . 1.8d6,3.2d6,5.6d6,1d7/
3146- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
3147- data n0/3,4,5,9,9,9,9,9/
3148- data init/0/
3149- save
3150- xsave=x
3151- q2save=qsq
3152- if(init.ne.0) goto 10
3153-c open(unit=1,file='Pdfdata/lo07a.dat',status='old')
3154- call OpenData(Tablefile)
3155- do 20 n=1,nx-1
3156- do 20 m=1,nq
3157- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
3158- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
3159-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
3160- do 25 i=1,np
3161- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
3162- 20 continue
3163- do 31 j=1,ntenth-1
3164- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
3165- do 31 i=1,8
3166- if(i.eq.5.or.i.eq.7) goto 31
3167- do 30 k=1,nq
3168- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
3169- 31 continue
3170- 50 format(8f10.5)
3171- do 40 i=1,np
3172- do 40 m=1,nq
3173- 40 f(i,nx,m)=0d0
3174- init=1
3175- 10 continue
3176- if(x.lt.xmin) x=xmin
3177- if(x.gt.xmax) x=xmax
3178- if(qsq.lt.qsqmin) qsq=qsqmin
3179- if(qsq.gt.qsqmax) qsq=qsqmax
3180- xxx=x
3181- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
3182- n=0
3183- 70 n=n+1
3184- if(xxx.gt.xx(n+1)) goto 70
3185- a=(xxx-xx(n))/(xx(n+1)-xx(n))
3186- m=0
3187- 80 m=m+1
3188- if(qsq.gt.qq(m+1)) goto 80
3189- b=(qsq-qq(m))/(qq(m+1)-qq(m))
3190- do 60 i=1,np
3191- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
3192- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
3193- if(n.ge.ntenth) goto 65
3194- if(i.eq.5.or.i.eq.7) goto 65
3195- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
3196- g(i)=fac*10d0**(g(i)-fac)
3197- 65 continue
3198- g(i)=g(i)*(1d0-x)**n0(i)
3199- 60 continue
3200- upv=g(1)
3201- dnv=g(2)
3202- usea=g(4)
3203- dsea=g(8)
3204- str=g(6)
3205- chm=g(5)
3206- glu=g(3)
3207- bot=g(7)
3208- x=xsave
3209- qsq=q2save
3210- return
3211- end
3212-
3213
3214=== removed file 'Template/LO/Source/PDF/mrs99.f'
3215--- Template/LO/Source/PDF/mrs99.f 2010-10-30 03:26:37 +0000
3216+++ Template/LO/Source/PDF/mrs99.f 1970-01-01 00:00:00 +0000
3217@@ -1,1166 +0,0 @@
3218- subroutine mrs99(x,q,mode,upv,dnv,usea,dsea,str,chm,bot,glu)
3219-C****************************************************************C
3220-C C
3221-C This is a package for the new **corrected** MRST parton C
3222-C distributions. The format is similar to the previous C
3223-C (1998) MRST series. C
3224-C C
3225-C NOTE: 7 new sets are added here, corresponding to shifting C
3226-C the small x HERA data up and down by 2.5%, and by varying C
3227-C the charm and strange distributions, and by forcing a C
3228-C larger d/u ratio at large x. C
3229-C C
3230-C As before, x times the parton distribution is returned, C
3231-C q is the scale in GeV, MSbar factorization is assumed, C
3232-C and Lambda(MSbar,nf=4) is given below for each set. C
3233-C C
3234-C NAMING SCHEME: C
3235-C C
3236-C mode set comment L(4)/MeV a_s(M_Z) grid#1 C
3237-C ---- --- ------- -------- ------- ------ C
3238-C C
3239-C 1 COR01 central gluon, a_s 300 0.1175 0.00537 C
3240-C 2 COR02 higher gluon 300 0.1175 0.00497 C
3241-C 3 COR03 lower gluon 300 0.1175 0.00398 C
3242-C 4 COR04 lower a_s 229 0.1125 0.00585 C
3243-C 5 COR05 higher a_s 383 0.1225 0.00384 C
3244-C 6 COR06 quarks up 303.3 0.1178 0.00497 C
3245-C 7 COR07 quarks down 290.3 0.1171 0.00593 C
3246-C 8 COR08 strange up 300 0.1175 0.00524 C
3247-C 9 COR09 strange down 300 0.1175 0.00524 C
3248-C 10 C0R10 charm up 300 0.1175 0.00525 C
3249-C 11 COR11 charm down 300 0.1175 0.00524 C
3250-C 12 COR12 larger d/u 300 0.1175 0.00515 C
3251-C C
3252-C The corresponding grid files are called cor01.dat etc. C
3253-C C
3254-C The reference is: C
3255-C A.D. Martin, R.G. Roberts, W.J. Stirling, R.S Thorne C
3256-C Univ. Durham preprint DTP/99/64, hep-ph/9907231 (1999) C
3257-C C
3258-C Comments to : W.J.Stirling@durham.ac.uk C
3259-C C
3260-C C
3261-C****************************************************************C
3262- implicit real*8(a-h,o-z)
3263- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
3264- q2=q*q
3265- if(q2.lt.qsqmin.or.q2.gt.qsqmax) print 99
3266- if(x.lt.xmin.or.x.gt.xmax) print 98
3267- if(mode.eq.1) then
3268- call mrs991(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
3269- elseif(mode.eq.2) then
3270- call mrs992(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
3271- elseif(mode.eq.3) then
3272- call mrs993(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
3273- elseif(mode.eq.4) then
3274- call mrs994(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
3275- elseif(mode.eq.5) then
3276- call mrs995(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
3277- elseif(mode.eq.6) then
3278- call mrs996(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
3279- elseif(mode.eq.7) then
3280- call mrs997(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
3281- elseif(mode.eq.8) then
3282- call mrs998(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
3283- elseif(mode.eq.9) then
3284- call mrs999(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
3285- elseif(mode.eq.10) then
3286- call mrs9910(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
3287- elseif(mode.eq.11) then
3288- call mrs9911(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
3289- elseif(mode.eq.12) then
3290- call mrs9912(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
3291- endif
3292- 99 format(' WARNING: Q^2 VALUE IS OUT OF RANGE ')
3293- 98 format(' WARNING: X VALUE IS OUT OF RANGE ')
3294- return
3295- end
3296-
3297- subroutine mrs991(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
3298- implicit real*8(a-h,o-z)
3299-c-fabio
3300- Character Tablefile*40
3301- data Tablefile/'cor01.dat'/
3302- integer IU
3303- common/IU/IU !this is set in opendata.f
3304-c
3305- parameter(nx=49,nq=37,ntenth=23,np=8)
3306- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
3307- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
3308- . 1d-4,2d-4,4d-4,6d-4,8d-4,
3309- . 1d-3,2d-3,4d-3,6d-3,8d-3,
3310- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
3311- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
3312- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
3313- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
3314- . .8d0,.9d0,1d0/
3315- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
3316- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
3317- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
3318- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
3319- . 1.8d6,3.2d6,5.6d6,1d7/
3320- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
3321- data n0/3,4,5,9,9,9,9,9/
3322- data init/0/
3323- save
3324- xsave=x
3325- q2save=qsq
3326- if(init.ne.0) goto 10
3327-c open(unit=1,file='Pdfdata/cor01.dat',status='old')
3328- call OpenData(Tablefile)
3329- do 20 n=1,nx-1
3330- do 20 m=1,nq
3331- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
3332- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
3333-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
3334- do 25 i=1,np
3335- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
3336- 20 continue
3337- do 31 j=1,ntenth-1
3338- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
3339- do 31 i=1,8
3340- if(i.eq.5.or.i.eq.7) goto 31
3341- do 30 k=1,nq
3342- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
3343- 31 continue
3344- 50 format(8f10.5)
3345- do 40 i=1,np
3346- do 40 m=1,nq
3347- 40 f(i,nx,m)=0d0
3348- init=1
3349- 10 continue
3350- if(x.lt.xmin) x=xmin
3351- if(x.gt.xmax) x=xmax
3352- if(qsq.lt.qsqmin) qsq=qsqmin
3353- if(qsq.gt.qsqmax) qsq=qsqmax
3354- xxx=x
3355- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
3356- n=0
3357- 70 n=n+1
3358- if(xxx.gt.xx(n+1)) goto 70
3359- a=(xxx-xx(n))/(xx(n+1)-xx(n))
3360- m=0
3361- 80 m=m+1
3362- if(qsq.gt.qq(m+1)) goto 80
3363- b=(qsq-qq(m))/(qq(m+1)-qq(m))
3364- do 60 i=1,np
3365- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
3366- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
3367- if(n.ge.ntenth) goto 65
3368- if(i.eq.5.or.i.eq.7) goto 65
3369- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
3370- g(i)=fac*10d0**(g(i)-fac)
3371- 65 continue
3372- g(i)=g(i)*(1d0-x)**n0(i)
3373- 60 continue
3374- upv=g(1)
3375- dnv=g(2)
3376- usea=g(4)
3377- dsea=g(8)
3378- str=g(6)
3379- chm=g(5)
3380- glu=g(3)
3381- bot=g(7)
3382- x=xsave
3383- qsq=q2save
3384- return
3385- end
3386-
3387- subroutine mrs992(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
3388- implicit real*8(a-h,o-z)
3389-c-fabio
3390- Character Tablefile*40
3391- data Tablefile/'cor02.dat'/
3392- integer IU
3393- common/IU/IU !this is set in opendata.f
3394-c
3395- parameter(nx=49,nq=37,ntenth=23,np=8)
3396- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
3397- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
3398- . 1d-4,2d-4,4d-4,6d-4,8d-4,
3399- . 1d-3,2d-3,4d-3,6d-3,8d-3,
3400- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
3401- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
3402- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
3403- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
3404- . .8d0,.9d0,1d0/
3405- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
3406- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
3407- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
3408- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
3409- . 1.8d6,3.2d6,5.6d6,1d7/
3410- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
3411- data n0/3,4,5,9,9,9,9,9/
3412- data init/0/
3413- save
3414- xsave=x
3415- q2save=qsq
3416- if(init.ne.0) goto 10
3417-c open(unit=1,file='Pdfdata/cor02.dat',status='old')
3418- call OpenData(Tablefile)
3419- do 20 n=1,nx-1
3420- do 20 m=1,nq
3421- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
3422- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
3423-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
3424- do 25 i=1,np
3425- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
3426- 20 continue
3427- do 31 j=1,ntenth-1
3428- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
3429- do 31 i=1,8
3430- if(i.eq.5.or.i.eq.7) goto 31
3431- do 30 k=1,nq
3432- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
3433- 31 continue
3434- 50 format(8f10.5)
3435- do 40 i=1,np
3436- do 40 m=1,nq
3437- 40 f(i,nx,m)=0d0
3438- init=1
3439- 10 continue
3440- if(x.lt.xmin) x=xmin
3441- if(x.gt.xmax) x=xmax
3442- if(qsq.lt.qsqmin) qsq=qsqmin
3443- if(qsq.gt.qsqmax) qsq=qsqmax
3444- xxx=x
3445- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
3446- n=0
3447- 70 n=n+1
3448- if(xxx.gt.xx(n+1)) goto 70
3449- a=(xxx-xx(n))/(xx(n+1)-xx(n))
3450- m=0
3451- 80 m=m+1
3452- if(qsq.gt.qq(m+1)) goto 80
3453- b=(qsq-qq(m))/(qq(m+1)-qq(m))
3454- do 60 i=1,np
3455- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
3456- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
3457- if(n.ge.ntenth) goto 65
3458- if(i.eq.5.or.i.eq.7) goto 65
3459- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
3460- g(i)=fac*10d0**(g(i)-fac)
3461- 65 continue
3462- g(i)=g(i)*(1d0-x)**n0(i)
3463- 60 continue
3464- upv=g(1)
3465- dnv=g(2)
3466- usea=g(4)
3467- dsea=g(8)
3468- str=g(6)
3469- chm=g(5)
3470- glu=g(3)
3471- bot=g(7)
3472- x=xsave
3473- qsq=q2save
3474- return
3475- end
3476-
3477- subroutine mrs993(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
3478- implicit real*8(a-h,o-z)
3479-c-fabio
3480- Character Tablefile*40
3481- data Tablefile/'cor03.dat'/
3482- integer IU
3483- common/IU/IU !this is set in opendata.f
3484-c
3485- parameter(nx=49,nq=37,ntenth=23,np=8)
3486- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
3487- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
3488- . 1d-4,2d-4,4d-4,6d-4,8d-4,
3489- . 1d-3,2d-3,4d-3,6d-3,8d-3,
3490- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
3491- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
3492- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
3493- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
3494- . .8d0,.9d0,1d0/
3495- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
3496- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
3497- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
3498- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
3499- . 1.8d6,3.2d6,5.6d6,1d7/
3500- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
3501- data n0/3,4,5,9,9,9,9,9/
3502- data init/0/
3503- save
3504- xsave=x
3505- q2save=qsq
3506- if(init.ne.0) goto 10
3507-c open(unit=1,file='Pdfdata/cor03.dat',status='old')
3508- call OpenData(Tablefile)
3509- do 20 n=1,nx-1
3510- do 20 m=1,nq
3511- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
3512- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
3513-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
3514- do 25 i=1,np
3515- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
3516- 20 continue
3517- do 31 j=1,ntenth-1
3518- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
3519- do 31 i=1,8
3520- if(i.eq.5.or.i.eq.7) goto 31
3521- do 30 k=1,nq
3522- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
3523- 31 continue
3524- 50 format(8f10.5)
3525- do 40 i=1,np
3526- do 40 m=1,nq
3527- 40 f(i,nx,m)=0d0
3528- init=1
3529- 10 continue
3530- if(x.lt.xmin) x=xmin
3531- if(x.gt.xmax) x=xmax
3532- if(qsq.lt.qsqmin) qsq=qsqmin
3533- if(qsq.gt.qsqmax) qsq=qsqmax
3534- xxx=x
3535- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
3536- n=0
3537- 70 n=n+1
3538- if(xxx.gt.xx(n+1)) goto 70
3539- a=(xxx-xx(n))/(xx(n+1)-xx(n))
3540- m=0
3541- 80 m=m+1
3542- if(qsq.gt.qq(m+1)) goto 80
3543- b=(qsq-qq(m))/(qq(m+1)-qq(m))
3544- do 60 i=1,np
3545- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
3546- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
3547- if(n.ge.ntenth) goto 65
3548- if(i.eq.5.or.i.eq.7) goto 65
3549- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
3550- g(i)=fac*10d0**(g(i)-fac)
3551- 65 continue
3552- g(i)=g(i)*(1d0-x)**n0(i)
3553- 60 continue
3554- upv=g(1)
3555- dnv=g(2)
3556- usea=g(4)
3557- dsea=g(8)
3558- str=g(6)
3559- chm=g(5)
3560- glu=g(3)
3561- bot=g(7)
3562- x=xsave
3563- qsq=q2save
3564- return
3565- end
3566-
3567-
3568- subroutine mrs994(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
3569- implicit real*8(a-h,o-z)
3570-c-fabio
3571- Character Tablefile*40
3572- data Tablefile/'cor04.dat'/
3573- integer IU
3574- common/IU/IU !this is set in opendata.f
3575-c
3576- parameter(nx=49,nq=37,ntenth=23,np=8)
3577- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
3578- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
3579- . 1d-4,2d-4,4d-4,6d-4,8d-4,
3580- . 1d-3,2d-3,4d-3,6d-3,8d-3,
3581- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
3582- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
3583- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
3584- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
3585- . .8d0,.9d0,1d0/
3586- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
3587- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
3588- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
3589- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
3590- . 1.8d6,3.2d6,5.6d6,1d7/
3591- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
3592- data n0/3,4,5,9,9,9,9,9/
3593- data init/0/
3594- save
3595- xsave=x
3596- q2save=qsq
3597- if(init.ne.0) goto 10
3598-c open(unit=1,file='Pdfdata/cor04.dat',status='old')
3599- call OpenData(Tablefile)
3600- do 20 n=1,nx-1
3601- do 20 m=1,nq
3602- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
3603- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
3604-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
3605- do 25 i=1,np
3606- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
3607- 20 continue
3608- do 31 j=1,ntenth-1
3609- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
3610- do 31 i=1,8
3611- if(i.eq.5.or.i.eq.7) goto 31
3612- do 30 k=1,nq
3613- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
3614- 31 continue
3615- 50 format(8f10.5)
3616- do 40 i=1,np
3617- do 40 m=1,nq
3618- 40 f(i,nx,m)=0d0
3619- init=1
3620- 10 continue
3621- if(x.lt.xmin) x=xmin
3622- if(x.gt.xmax) x=xmax
3623- if(qsq.lt.qsqmin) qsq=qsqmin
3624- if(qsq.gt.qsqmax) qsq=qsqmax
3625- xxx=x
3626- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
3627- n=0
3628- 70 n=n+1
3629- if(xxx.gt.xx(n+1)) goto 70
3630- a=(xxx-xx(n))/(xx(n+1)-xx(n))
3631- m=0
3632- 80 m=m+1
3633- if(qsq.gt.qq(m+1)) goto 80
3634- b=(qsq-qq(m))/(qq(m+1)-qq(m))
3635- do 60 i=1,np
3636- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
3637- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
3638- if(n.ge.ntenth) goto 65
3639- if(i.eq.5.or.i.eq.7) goto 65
3640- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
3641- g(i)=fac*10d0**(g(i)-fac)
3642- 65 continue
3643- g(i)=g(i)*(1d0-x)**n0(i)
3644- 60 continue
3645- upv=g(1)
3646- dnv=g(2)
3647- usea=g(4)
3648- dsea=g(8)
3649- str=g(6)
3650- chm=g(5)
3651- glu=g(3)
3652- bot=g(7)
3653- x=xsave
3654- qsq=q2save
3655- return
3656- end
3657-
3658- subroutine mrs995(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
3659- implicit real*8(a-h,o-z)
3660-c-fabio
3661- Character Tablefile*40
3662- data Tablefile/'cor05.dat'/
3663- integer IU
3664- common/IU/IU !this is set in opendata.f
3665-c
3666- parameter(nx=49,nq=37,ntenth=23,np=8)
3667- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
3668- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
3669- . 1d-4,2d-4,4d-4,6d-4,8d-4,
3670- . 1d-3,2d-3,4d-3,6d-3,8d-3,
3671- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
3672- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
3673- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
3674- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
3675- . .8d0,.9d0,1d0/
3676- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
3677- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
3678- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
3679- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
3680- . 1.8d6,3.2d6,5.6d6,1d7/
3681- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
3682- data n0/3,4,5,9,9,9,9,9/
3683- data init/0/
3684- save
3685- xsave=x
3686- q2save=qsq
3687- if(init.ne.0) goto 10
3688-c open(unit=1,file='Pdfdata/cor05.dat',status='old')
3689- call OpenData(Tablefile)
3690- do 20 n=1,nx-1
3691- do 20 m=1,nq
3692- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
3693- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
3694-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
3695- do 25 i=1,np
3696- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
3697- 20 continue
3698- do 31 j=1,ntenth-1
3699- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
3700- do 31 i=1,8
3701- if(i.eq.5.or.i.eq.7) goto 31
3702- do 30 k=1,nq
3703- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
3704- 31 continue
3705- 50 format(8f10.5)
3706- do 40 i=1,np
3707- do 40 m=1,nq
3708- 40 f(i,nx,m)=0d0
3709- init=1
3710- 10 continue
3711- if(x.lt.xmin) x=xmin
3712- if(x.gt.xmax) x=xmax
3713- if(qsq.lt.qsqmin) qsq=qsqmin
3714- if(qsq.gt.qsqmax) qsq=qsqmax
3715- xxx=x
3716- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
3717- n=0
3718- 70 n=n+1
3719- if(xxx.gt.xx(n+1)) goto 70
3720- a=(xxx-xx(n))/(xx(n+1)-xx(n))
3721- m=0
3722- 80 m=m+1
3723- if(qsq.gt.qq(m+1)) goto 80
3724- b=(qsq-qq(m))/(qq(m+1)-qq(m))
3725- do 60 i=1,np
3726- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
3727- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
3728- if(n.ge.ntenth) goto 65
3729- if(i.eq.5.or.i.eq.7) goto 65
3730- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
3731- g(i)=fac*10d0**(g(i)-fac)
3732- 65 continue
3733- g(i)=g(i)*(1d0-x)**n0(i)
3734- 60 continue
3735- upv=g(1)
3736- dnv=g(2)
3737- usea=g(4)
3738- dsea=g(8)
3739- str=g(6)
3740- chm=g(5)
3741- glu=g(3)
3742- bot=g(7)
3743- x=xsave
3744- qsq=q2save
3745- return
3746- end
3747-
3748-
3749- subroutine mrs996(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
3750- implicit real*8(a-h,o-z)
3751-c-fabio
3752- Character Tablefile*40
3753- data Tablefile/'cor06.dat'/
3754- integer IU
3755- common/IU/IU !this is set in opendata.f
3756-c
3757- parameter(nx=49,nq=37,ntenth=23,np=8)
3758- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
3759- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
3760- . 1d-4,2d-4,4d-4,6d-4,8d-4,
3761- . 1d-3,2d-3,4d-3,6d-3,8d-3,
3762- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
3763- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
3764- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
3765- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
3766- . .8d0,.9d0,1d0/
3767- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
3768- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
3769- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
3770- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
3771- . 1.8d6,3.2d6,5.6d6,1d7/
3772- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
3773- data n0/3,4,5,9,9,9,9,9/
3774- data init/0/
3775- save
3776- xsave=x
3777- q2save=qsq
3778- if(init.ne.0) goto 10
3779-c open(unit=1,file='Pdfdata/cor06.dat',status='old')
3780- call OpenData(Tablefile)
3781- do 20 n=1,nx-1
3782- do 20 m=1,nq
3783- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
3784- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
3785-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
3786- do 25 i=1,np
3787- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
3788- 20 continue
3789- do 31 j=1,ntenth-1
3790- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
3791- do 31 i=1,8
3792- if(i.eq.5.or.i.eq.7) goto 31
3793- do 30 k=1,nq
3794- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
3795- 31 continue
3796- 50 format(8f10.5)
3797- do 40 i=1,np
3798- do 40 m=1,nq
3799- 40 f(i,nx,m)=0d0
3800- init=1
3801- 10 continue
3802- if(x.lt.xmin) x=xmin
3803- if(x.gt.xmax) x=xmax
3804- if(qsq.lt.qsqmin) qsq=qsqmin
3805- if(qsq.gt.qsqmax) qsq=qsqmax
3806- xxx=x
3807- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
3808- n=0
3809- 70 n=n+1
3810- if(xxx.gt.xx(n+1)) goto 70
3811- a=(xxx-xx(n))/(xx(n+1)-xx(n))
3812- m=0
3813- 80 m=m+1
3814- if(qsq.gt.qq(m+1)) goto 80
3815- b=(qsq-qq(m))/(qq(m+1)-qq(m))
3816- do 60 i=1,np
3817- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
3818- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
3819- if(n.ge.ntenth) goto 65
3820- if(i.eq.5.or.i.eq.7) goto 65
3821- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
3822- g(i)=fac*10d0**(g(i)-fac)
3823- 65 continue
3824- g(i)=g(i)*(1d0-x)**n0(i)
3825- 60 continue
3826- upv=g(1)
3827- dnv=g(2)
3828- usea=g(4)
3829- dsea=g(8)
3830- str=g(6)
3831- chm=g(5)
3832- glu=g(3)
3833- bot=g(7)
3834- x=xsave
3835- qsq=q2save
3836- return
3837- end
3838-
3839- subroutine mrs997(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
3840- implicit real*8(a-h,o-z)
3841-c-fabio
3842- Character Tablefile*40
3843- data Tablefile/'cor07.dat'/
3844- integer IU
3845- common/IU/IU !this is set in opendata.f
3846-c
3847- parameter(nx=49,nq=37,ntenth=23,np=8)
3848- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
3849- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
3850- . 1d-4,2d-4,4d-4,6d-4,8d-4,
3851- . 1d-3,2d-3,4d-3,6d-3,8d-3,
3852- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
3853- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
3854- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
3855- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
3856- . .8d0,.9d0,1d0/
3857- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
3858- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
3859- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
3860- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
3861- . 1.8d6,3.2d6,5.6d6,1d7/
3862- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
3863- data n0/3,4,5,9,9,9,9,9/
3864- data init/0/
3865- save
3866- xsave=x
3867- q2save=qsq
3868- if(init.ne.0) goto 10
3869-c open(unit=1,file='Pdfdata/cor07.dat',status='old')
3870- call OpenData(Tablefile)
3871- do 20 n=1,nx-1
3872- do 20 m=1,nq
3873- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
3874- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
3875-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
3876- do 25 i=1,np
3877- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
3878- 20 continue
3879- do 31 j=1,ntenth-1
3880- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
3881- do 31 i=1,8
3882- if(i.eq.5.or.i.eq.7) goto 31
3883- do 30 k=1,nq
3884- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
3885- 31 continue
3886- 50 format(8f10.5)
3887- do 40 i=1,np
3888- do 40 m=1,nq
3889- 40 f(i,nx,m)=0d0
3890- init=1
3891- 10 continue
3892- if(x.lt.xmin) x=xmin
3893- if(x.gt.xmax) x=xmax
3894- if(qsq.lt.qsqmin) qsq=qsqmin
3895- if(qsq.gt.qsqmax) qsq=qsqmax
3896- xxx=x
3897- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
3898- n=0
3899- 70 n=n+1
3900- if(xxx.gt.xx(n+1)) goto 70
3901- a=(xxx-xx(n))/(xx(n+1)-xx(n))
3902- m=0
3903- 80 m=m+1
3904- if(qsq.gt.qq(m+1)) goto 80
3905- b=(qsq-qq(m))/(qq(m+1)-qq(m))
3906- do 60 i=1,np
3907- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
3908- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
3909- if(n.ge.ntenth) goto 65
3910- if(i.eq.5.or.i.eq.7) goto 65
3911- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
3912- g(i)=fac*10d0**(g(i)-fac)
3913- 65 continue
3914- g(i)=g(i)*(1d0-x)**n0(i)
3915- 60 continue
3916- upv=g(1)
3917- dnv=g(2)
3918- usea=g(4)
3919- dsea=g(8)
3920- str=g(6)
3921- chm=g(5)
3922- glu=g(3)
3923- bot=g(7)
3924- x=xsave
3925- qsq=q2save
3926- return
3927- end
3928-
3929-
3930-
3931- subroutine mrs998(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
3932- implicit real*8(a-h,o-z)
3933-c-fabio
3934- Character Tablefile*40
3935- data Tablefile/'cor08.dat'/
3936- integer IU
3937- common/IU/IU !this is set in opendata.f
3938-c
3939- parameter(nx=49,nq=37,ntenth=23,np=8)
3940- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
3941- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
3942- . 1d-4,2d-4,4d-4,6d-4,8d-4,
3943- . 1d-3,2d-3,4d-3,6d-3,8d-3,
3944- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
3945- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
3946- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
3947- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
3948- . .8d0,.9d0,1d0/
3949- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
3950- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
3951- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
3952- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
3953- . 1.8d6,3.2d6,5.6d6,1d7/
3954- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
3955- data n0/3,4,5,9,9,9,9,9/
3956- data init/0/
3957- save
3958- xsave=x
3959- q2save=qsq
3960- if(init.ne.0) goto 10
3961-c open(unit=1,file='Pdfdata/cor08.dat',status='old')
3962- call OpenData(Tablefile)
3963- do 20 n=1,nx-1
3964- do 20 m=1,nq
3965- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
3966- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
3967-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
3968- do 25 i=1,np
3969- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
3970- 20 continue
3971- do 31 j=1,ntenth-1
3972- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
3973- do 31 i=1,8
3974- if(i.eq.5.or.i.eq.7) goto 31
3975- do 30 k=1,nq
3976- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
3977- 31 continue
3978- 50 format(8f10.5)
3979- do 40 i=1,np
3980- do 40 m=1,nq
3981- 40 f(i,nx,m)=0d0
3982- init=1
3983- 10 continue
3984- if(x.lt.xmin) x=xmin
3985- if(x.gt.xmax) x=xmax
3986- if(qsq.lt.qsqmin) qsq=qsqmin
3987- if(qsq.gt.qsqmax) qsq=qsqmax
3988- xxx=x
3989- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
3990- n=0
3991- 70 n=n+1
3992- if(xxx.gt.xx(n+1)) goto 70
3993- a=(xxx-xx(n))/(xx(n+1)-xx(n))
3994- m=0
3995- 80 m=m+1
3996- if(qsq.gt.qq(m+1)) goto 80
3997- b=(qsq-qq(m))/(qq(m+1)-qq(m))
3998- do 60 i=1,np
3999- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
4000- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
4001- if(n.ge.ntenth) goto 65
4002- if(i.eq.5.or.i.eq.7) goto 65
4003- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
4004- g(i)=fac*10d0**(g(i)-fac)
4005- 65 continue
4006- g(i)=g(i)*(1d0-x)**n0(i)
4007- 60 continue
4008- upv=g(1)
4009- dnv=g(2)
4010- usea=g(4)
4011- dsea=g(8)
4012- str=g(6)
4013- chm=g(5)
4014- glu=g(3)
4015- bot=g(7)
4016- x=xsave
4017- qsq=q2save
4018- return
4019- end
4020-
4021- subroutine mrs999(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
4022- implicit real*8(a-h,o-z)
4023-c-fabio
4024- Character Tablefile*40
4025- data Tablefile/'cor09.dat'/
4026- integer IU
4027- common/IU/IU !this is set in opendata.f
4028-c
4029- parameter(nx=49,nq=37,ntenth=23,np=8)
4030- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
4031- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
4032- . 1d-4,2d-4,4d-4,6d-4,8d-4,
4033- . 1d-3,2d-3,4d-3,6d-3,8d-3,
4034- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
4035- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
4036- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
4037- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
4038- . .8d0,.9d0,1d0/
4039- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
4040- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
4041- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
4042- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
4043- . 1.8d6,3.2d6,5.6d6,1d7/
4044- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
4045- data n0/3,4,5,9,9,9,9,9/
4046- data init/0/
4047- save
4048- xsave=x
4049- q2save=qsq
4050- if(init.ne.0) goto 10
4051-c open(unit=1,file='Pdfdata/cor09.dat',status='old')
4052- call OpenData(Tablefile)
4053- do 20 n=1,nx-1
4054- do 20 m=1,nq
4055- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
4056- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
4057-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
4058- do 25 i=1,np
4059- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
4060- 20 continue
4061- do 31 j=1,ntenth-1
4062- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
4063- do 31 i=1,8
4064- if(i.eq.5.or.i.eq.7) goto 31
4065- do 30 k=1,nq
4066- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
4067- 31 continue
4068- 50 format(8f10.5)
4069- do 40 i=1,np
4070- do 40 m=1,nq
4071- 40 f(i,nx,m)=0d0
4072- init=1
4073- 10 continue
4074- if(x.lt.xmin) x=xmin
4075- if(x.gt.xmax) x=xmax
4076- if(qsq.lt.qsqmin) qsq=qsqmin
4077- if(qsq.gt.qsqmax) qsq=qsqmax
4078- xxx=x
4079- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
4080- n=0
4081- 70 n=n+1
4082- if(xxx.gt.xx(n+1)) goto 70
4083- a=(xxx-xx(n))/(xx(n+1)-xx(n))
4084- m=0
4085- 80 m=m+1
4086- if(qsq.gt.qq(m+1)) goto 80
4087- b=(qsq-qq(m))/(qq(m+1)-qq(m))
4088- do 60 i=1,np
4089- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
4090- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
4091- if(n.ge.ntenth) goto 65
4092- if(i.eq.5.or.i.eq.7) goto 65
4093- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
4094- g(i)=fac*10d0**(g(i)-fac)
4095- 65 continue
4096- g(i)=g(i)*(1d0-x)**n0(i)
4097- 60 continue
4098- upv=g(1)
4099- dnv=g(2)
4100- usea=g(4)
4101- dsea=g(8)
4102- str=g(6)
4103- chm=g(5)
4104- glu=g(3)
4105- bot=g(7)
4106- x=xsave
4107- qsq=q2save
4108- return
4109- end
4110-
4111-
4112-
4113- subroutine mrs9910(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
4114- implicit real*8(a-h,o-z)
4115-c-fabio
4116- Character Tablefile*40
4117- data Tablefile/'cor10.dat'/
4118- integer IU
4119- common/IU/IU !this is set in opendata.f
4120-c
4121- parameter(nx=49,nq=37,ntenth=23,np=8)
4122- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
4123- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
4124- . 1d-4,2d-4,4d-4,6d-4,8d-4,
4125- . 1d-3,2d-3,4d-3,6d-3,8d-3,
4126- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
4127- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
4128- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
4129- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
4130- . .8d0,.9d0,1d0/
4131- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
4132- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
4133- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
4134- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
4135- . 1.8d6,3.2d6,5.6d6,1d7/
4136- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
4137- data n0/3,4,5,9,9,9,9,9/
4138- data init/0/
4139- save
4140- xsave=x
4141- q2save=qsq
4142- if(init.ne.0) goto 10
4143-c open(unit=1,file='Pdfdata/cor10.dat',status='old')
4144- call OpenData(Tablefile)
4145- do 20 n=1,nx-1
4146- do 20 m=1,nq
4147- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
4148- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
4149-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
4150- do 25 i=1,np
4151- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
4152- 20 continue
4153- do 31 j=1,ntenth-1
4154- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
4155- do 31 i=1,8
4156- if(i.eq.5.or.i.eq.7) goto 31
4157- do 30 k=1,nq
4158- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
4159- 31 continue
4160- 50 format(8f10.5)
4161- do 40 i=1,np
4162- do 40 m=1,nq
4163- 40 f(i,nx,m)=0d0
4164- init=1
4165- 10 continue
4166- if(x.lt.xmin) x=xmin
4167- if(x.gt.xmax) x=xmax
4168- if(qsq.lt.qsqmin) qsq=qsqmin
4169- if(qsq.gt.qsqmax) qsq=qsqmax
4170- xxx=x
4171- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
4172- n=0
4173- 70 n=n+1
4174- if(xxx.gt.xx(n+1)) goto 70
4175- a=(xxx-xx(n))/(xx(n+1)-xx(n))
4176- m=0
4177- 80 m=m+1
4178- if(qsq.gt.qq(m+1)) goto 80
4179- b=(qsq-qq(m))/(qq(m+1)-qq(m))
4180- do 60 i=1,np
4181- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
4182- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
4183- if(n.ge.ntenth) goto 65
4184- if(i.eq.5.or.i.eq.7) goto 65
4185- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
4186- g(i)=fac*10d0**(g(i)-fac)
4187- 65 continue
4188- g(i)=g(i)*(1d0-x)**n0(i)
4189- 60 continue
4190- upv=g(1)
4191- dnv=g(2)
4192- usea=g(4)
4193- dsea=g(8)
4194- str=g(6)
4195- chm=g(5)
4196- glu=g(3)
4197- bot=g(7)
4198- x=xsave
4199- qsq=q2save
4200- return
4201- end
4202-
4203- subroutine mrs9911(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
4204- implicit real*8(a-h,o-z)
4205-c-fabio
4206- Character Tablefile*40
4207- data Tablefile/'cor11.dat'/
4208- integer IU
4209- common/IU/IU !this is set in opendata.f
4210-c
4211- parameter(nx=49,nq=37,ntenth=23,np=8)
4212- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
4213- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
4214- . 1d-4,2d-4,4d-4,6d-4,8d-4,
4215- . 1d-3,2d-3,4d-3,6d-3,8d-3,
4216- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
4217- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
4218- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
4219- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
4220- . .8d0,.9d0,1d0/
4221- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
4222- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
4223- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
4224- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
4225- . 1.8d6,3.2d6,5.6d6,1d7/
4226- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
4227- data n0/3,4,5,9,9,9,9,9/
4228- data init/0/
4229- save
4230- xsave=x
4231- q2save=qsq
4232- if(init.ne.0) goto 10
4233-c open(unit=1,file='Pdfdata/cor11.dat',status='old')
4234- call OpenData(Tablefile)
4235- do 20 n=1,nx-1
4236- do 20 m=1,nq
4237- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
4238- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
4239-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
4240- do 25 i=1,np
4241- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
4242- 20 continue
4243- do 31 j=1,ntenth-1
4244- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
4245- do 31 i=1,8
4246- if(i.eq.5.or.i.eq.7) goto 31
4247- do 30 k=1,nq
4248- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
4249- 31 continue
4250- 50 format(8f10.5)
4251- do 40 i=1,np
4252- do 40 m=1,nq
4253- 40 f(i,nx,m)=0d0
4254- init=1
4255- 10 continue
4256- if(x.lt.xmin) x=xmin
4257- if(x.gt.xmax) x=xmax
4258- if(qsq.lt.qsqmin) qsq=qsqmin
4259- if(qsq.gt.qsqmax) qsq=qsqmax
4260- xxx=x
4261- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
4262- n=0
4263- 70 n=n+1
4264- if(xxx.gt.xx(n+1)) goto 70
4265- a=(xxx-xx(n))/(xx(n+1)-xx(n))
4266- m=0
4267- 80 m=m+1
4268- if(qsq.gt.qq(m+1)) goto 80
4269- b=(qsq-qq(m))/(qq(m+1)-qq(m))
4270- do 60 i=1,np
4271- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
4272- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
4273- if(n.ge.ntenth) goto 65
4274- if(i.eq.5.or.i.eq.7) goto 65
4275- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
4276- g(i)=fac*10d0**(g(i)-fac)
4277- 65 continue
4278- g(i)=g(i)*(1d0-x)**n0(i)
4279- 60 continue
4280- upv=g(1)
4281- dnv=g(2)
4282- usea=g(4)
4283- dsea=g(8)
4284- str=g(6)
4285- chm=g(5)
4286- glu=g(3)
4287- bot=g(7)
4288- x=xsave
4289- qsq=q2save
4290- return
4291- end
4292-
4293-
4294- subroutine mrs9912(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
4295- implicit real*8(a-h,o-z)
4296-c-fabio
4297- Character Tablefile*40
4298- data Tablefile/'cor12.dat'/
4299- integer IU
4300- common/IU/IU !this is set in opendata.f
4301-c
4302- parameter(nx=49,nq=37,ntenth=23,np=8)
4303- real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
4304- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
4305- . 1d-4,2d-4,4d-4,6d-4,8d-4,
4306- . 1d-3,2d-3,4d-3,6d-3,8d-3,
4307- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
4308- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
4309- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
4310- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
4311- . .8d0,.9d0,1d0/
4312- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
4313- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
4314- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
4315- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
4316- . 1.8d6,3.2d6,5.6d6,1d7/
4317- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
4318- data n0/3,4,5,9,9,9,9,9/
4319- data init/0/
4320- save
4321- xsave=x
4322- q2save=qsq
4323- if(init.ne.0) goto 10
4324-c open(unit=1,file='Pdfdata/cor12.dat',status='old')
4325- call OpenData(Tablefile)
4326- do 20 n=1,nx-1
4327- do 20 m=1,nq
4328- read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
4329- . f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
4330-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
4331- do 25 i=1,np
4332- 25 f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
4333- 20 continue
4334- do 31 j=1,ntenth-1
4335- xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
4336- do 31 i=1,8
4337- if(i.eq.5.or.i.eq.7) goto 31
4338- do 30 k=1,nq
4339- 30 f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
4340- 31 continue
4341- 50 format(8f10.5)
4342- do 40 i=1,np
4343- do 40 m=1,nq
4344- 40 f(i,nx,m)=0d0
4345- init=1
4346- 10 continue
4347- if(x.lt.xmin) x=xmin
4348- if(x.gt.xmax) x=xmax
4349- if(qsq.lt.qsqmin) qsq=qsqmin
4350- if(qsq.gt.qsqmax) qsq=qsqmax
4351- xxx=x
4352- if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
4353- n=0
4354- 70 n=n+1
4355- if(xxx.gt.xx(n+1)) goto 70
4356- a=(xxx-xx(n))/(xx(n+1)-xx(n))
4357- m=0
4358- 80 m=m+1
4359- if(qsq.gt.qq(m+1)) goto 80
4360- b=(qsq-qq(m))/(qq(m+1)-qq(m))
4361- do 60 i=1,np
4362- g(i)= (1d0-a)*(1d0-b)*f(i,n,m) + (1d0-a)*b*f(i,n,m+1)
4363- . + a*(1d0-b)*f(i,n+1,m) + a*b*f(i,n+1,m+1)
4364- if(n.ge.ntenth) goto 65
4365- if(i.eq.5.or.i.eq.7) goto 65
4366- fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
4367- g(i)=fac*10d0**(g(i)-fac)
4368- 65 continue
4369- g(i)=g(i)*(1d0-x)**n0(i)
4370- 60 continue
4371- upv=g(1)
4372- dnv=g(2)
4373- usea=g(4)
4374- dsea=g(8)
4375- str=g(6)
4376- chm=g(5)
4377- glu=g(3)
4378- bot=g(7)
4379- x=xsave
4380- qsq=q2save
4381- return
4382- end
4383-
4384
4385=== removed file 'Template/LO/Source/PDF/mrst2001.f'
4386--- Template/LO/Source/PDF/mrst2001.f 2010-10-30 03:26:37 +0000
4387+++ Template/LO/Source/PDF/mrst2001.f 1970-01-01 00:00:00 +0000
4388@@ -1,513 +0,0 @@
4389- subroutine mrst2001(x,q,mode,upv,dnv,usea,dsea,str,chm,bot,glu)
4390-C***************************************************************C
4391-C C
4392-C This is a package for the new MRST 2001 NLO parton C
4393-C distributions. C
4394-C Reference: A.D. Martin, R.G. Roberts, W.J. Stirling and C
4395-C R.S. Thorne, hep-ph/0110215 C
4396-C C
4397-C There are 4 pdf sets corresponding to mode = 1, 2, 3, 4 C
4398-C C
4399-C Mode=1 gives the default set with Lambda(MSbar,nf=4) = 0.323 C
4400-C corresponding to alpha_s(M_Z) of 0.119 C
4401-C This set reads a grid whose first number is 0.00927 C
4402-C C
4403-C Mode=2 gives the set with Lambda(MSbar,nf=4) = 0.290 C
4404-C corresponding to alpha_s(M_Z) of 0.117 C
4405-C This set reads a grid whose first number is 0.00953 C
4406-C C
4407-C Mode=3 gives the set with Lambda(MSbar,nf=4) = 0.362 C
4408-C corresponding to alpha_s(M_Z) of 0.121 C
4409-C This set reads a grid whose first number is 0.00889 C
4410-C C
4411-C Mode=4 gives the set MRST2001J which gives better agreement C
4412-C with the Tevatron inclusive jet data but has unattractive C
4413-C gluon behaviour at large x (see discussion in paper) C
4414-C This set has Lambda(MSbar,nf=4) = 0.353(alpha_s(M_Z) = 0.121 C
4415-C This set reads a grid whose first number is 0.00826 C
4416-C C
4417-C This subroutine uses an improved interpolation procedure C
4418-C for extracting values of the pdf's from the grid C
4419-C C
4420-C Comments to : W.J.Stirling@durham.ac.uk C
4421-C C
4422-C***************************************************************C
4423- implicit real*8(a-h,o-z)
4424- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
4425- q2=q*q
4426- if(q2.lt.qsqmin.or.q2.gt.qsqmax) print 99,q2
4427- if(x.lt.xmin.or.x.gt.xmax) print 98,x
4428- if(mode.eq.1) then
4429- call mrst1(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
4430- elseif(mode.eq.2) then
4431- call mrst2(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
4432- elseif(mode.eq.3) then
4433- call mrst3(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
4434- elseif(mode.eq.4) then
4435- call mrst4(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
4436- endif
4437- 99 format(' WARNING: Q^2 VALUE IS OUT OF RANGE ','q2= ',e10.5)
4438- 98 format(' WARNING: X VALUE IS OUT OF RANGE ','x= ',e10.5)
4439- return
4440- end
4441-
4442- subroutine mrst1(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
4443- implicit real*8(a-h,o-z)
4444-c-fabio
4445- Character Tablefile*40
4446- data Tablefile/'alf119.dat'/
4447- integer IU
4448- common/IU/IU
4449-c
4450- parameter(nx=49,nq=37,np=8,nqc0=2,nqb0=11,nqc=35,nqb=26)
4451- real*8 f1(nx,nq),f2(nx,nq),f3(nx,nq),f4(nx,nq),f5(nx,nq),
4452- .f6(nx,nq),f7(nx,nq),f8(nx,nq),fc(nx,nqc),fb(nx,nqb)
4453- real*8 qq(nq),xx(nx),cc1(nx,nq,4,4),cc2(nx,nq,4,4),
4454- .cc3(nx,nq,4,4),cc4(nx,nq,4,4),cc6(nx,nq,4,4),cc8(nx,nq,4,4),
4455- .ccc(nx,nqc,4,4),ccb(nx,nqb,4,4)
4456- real*8 xxl(nx),qql(nq),qqlc(nqc),qqlb(nqb)
4457- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
4458- . 1d-4,2d-4,4d-4,6d-4,8d-4,
4459- . 1d-3,2d-3,4d-3,6d-3,8d-3,
4460- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
4461- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
4462- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
4463- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
4464- . .8d0,.9d0,1d0/
4465- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
4466- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
4467- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
4468- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
4469- . 1.8d6,3.2d6,5.6d6,1d7/
4470-c data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
4471- data init/0/
4472- save
4473- xsave=x
4474- q2save=qsq
4475- if(init.ne.0) goto 10
4476-c open(unit=33,file='Pdfdata/alf119.dat',status='old')
4477- call OpenData(Tablefile)
4478- do 20 n=1,nx-1
4479- do 20 m=1,nq
4480- read(IU,50)f1(n,m),f2(n,m),f3(n,m),f4(n,m),
4481- . f5(n,m),f7(n,m),f6(n,m),f8(n,m)
4482-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
4483- 20 continue
4484- do 40 m=1,nq
4485- f1(nx,m)=0.d0
4486- f2(nx,m)=0.d0
4487- f3(nx,m)=0.d0
4488- f4(nx,m)=0.d0
4489- f5(nx,m)=0.d0
4490- f6(nx,m)=0.d0
4491- f7(nx,m)=0.d0
4492- f8(nx,m)=0.d0
4493- 40 continue
4494- do n=1,nx
4495- xxl(n)=dlog(xx(n))
4496- enddo
4497- do m=1,nq
4498- qql(m)=dlog(qq(m))
4499- enddo
4500-
4501- call jeppe1(nx,nq,xxl,qql,f1,cc1)
4502- call jeppe1(nx,nq,xxl,qql,f2,cc2)
4503- call jeppe1(nx,nq,xxl,qql,f3,cc3)
4504- call jeppe1(nx,nq,xxl,qql,f4,cc4)
4505- call jeppe1(nx,nq,xxl,qql,f6,cc6)
4506- call jeppe1(nx,nq,xxl,qql,f8,cc8)
4507-
4508- emc2=2.045d0
4509- emb2=18.5d0
4510-
4511- do 44 m=1,nqc
4512- qqlc(m)=qql(m+nqc0)
4513- do 44 n=1,nx
4514- fc(n,m)=f5(n,m+nqc0)
4515- 44 continue
4516- qqlc(1)=dlog(emc2)
4517- call jeppe1(nx,nqc,xxl,qqlc,fc,ccc)
4518-
4519- do 45 m=1,nqb
4520- qqlb(m)=qql(m+nqb0)
4521- do 45 n=1,nx
4522- fb(n,m)=f7(n,m+nqb0)
4523- 45 continue
4524- qqlb(1)=dlog(emb2)
4525- call jeppe1(nx,nqb,xxl,qqlb,fb,ccb)
4526-
4527-
4528- init=1
4529- 10 continue
4530-
4531- xlog=dlog(x)
4532- qsqlog=dlog(qsq)
4533-
4534- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc1,upv)
4535- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc2,dnv)
4536- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc3,glu)
4537- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc4,usea)
4538- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc6,str)
4539- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc8,dsea)
4540-
4541- chm=0.d0
4542- if(qsq.gt.emc2) then
4543- call jeppe2(xlog,qsqlog,nx,nqc,xxl,qqlc,ccc,chm)
4544- endif
4545-
4546- bot=0.d0
4547- if(qsq.gt.emb2) then
4548- call jeppe2(xlog,qsqlog,nx,nqb,xxl,qqlb,ccb,bot)
4549- endif
4550-
4551- x=xsave
4552- qsq=q2save
4553- return
4554- 50 format(8f10.5)
4555- end
4556-
4557- subroutine mrst2(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
4558- implicit real*8(a-h,o-z)
4559-c-fabio
4560- Character Tablefile*40
4561- data Tablefile/'alf117.dat'/
4562- integer IU
4563- common/IU/IU
4564-c
4565- parameter(nx=49,nq=37,np=8,nqc0=2,nqb0=11,nqc=35,nqb=26)
4566- real*8 f1(nx,nq),f2(nx,nq),f3(nx,nq),f4(nx,nq),f5(nx,nq),
4567- .f6(nx,nq),f7(nx,nq),f8(nx,nq),fc(nx,nqc),fb(nx,nqb)
4568- real*8 qq(nq),xx(nx),cc1(nx,nq,4,4),cc2(nx,nq,4,4),
4569- .cc3(nx,nq,4,4),cc4(nx,nq,4,4),cc6(nx,nq,4,4),cc8(nx,nq,4,4),
4570- .ccc(nx,nqc,4,4),ccb(nx,nqb,4,4)
4571- real*8 xxl(nx),qql(nq),qqlc(nqc),qqlb(nqb)
4572- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
4573- . 1d-4,2d-4,4d-4,6d-4,8d-4,
4574- . 1d-3,2d-3,4d-3,6d-3,8d-3,
4575- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
4576- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
4577- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
4578- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
4579- . .8d0,.9d0,1d0/
4580- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
4581- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
4582- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
4583- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
4584- . 1.8d6,3.2d6,5.6d6,1d7/
4585-c data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
4586- data init/0/
4587- save
4588- xsave=x
4589- q2save=qsq
4590- if(init.ne.0) goto 10
4591-c open(unit=33,file='Pdfdata/alf117.dat',status='old')
4592- call OpenData(Tablefile)
4593- do 20 n=1,nx-1
4594- do 20 m=1,nq
4595- read(IU,50)f1(n,m),f2(n,m),f3(n,m),f4(n,m),
4596- . f5(n,m),f7(n,m),f6(n,m),f8(n,m)
4597-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
4598- 20 continue
4599- do 40 m=1,nq
4600- f1(nx,m)=0.d0
4601- f2(nx,m)=0.d0
4602- f3(nx,m)=0.d0
4603- f4(nx,m)=0.d0
4604- f5(nx,m)=0.d0
4605- f6(nx,m)=0.d0
4606- f7(nx,m)=0.d0
4607- f8(nx,m)=0.d0
4608- 40 continue
4609- do n=1,nx
4610- xxl(n)=dlog(xx(n))
4611- enddo
4612- do m=1,nq
4613- qql(m)=dlog(qq(m))
4614- enddo
4615-
4616- call jeppe1(nx,nq,xxl,qql,f1,cc1)
4617- call jeppe1(nx,nq,xxl,qql,f2,cc2)
4618- call jeppe1(nx,nq,xxl,qql,f3,cc3)
4619- call jeppe1(nx,nq,xxl,qql,f4,cc4)
4620- call jeppe1(nx,nq,xxl,qql,f6,cc6)
4621- call jeppe1(nx,nq,xxl,qql,f8,cc8)
4622-
4623- emc2=2.045d0
4624- emb2=18.5d0
4625-
4626- do 44 m=1,nqc
4627- qqlc(m)=qql(m+nqc0)
4628- do 44 n=1,nx
4629- fc(n,m)=f5(n,m+nqc0)
4630- 44 continue
4631- qqlc(1)=dlog(emc2)
4632- call jeppe1(nx,nqc,xxl,qqlc,fc,ccc)
4633-
4634- do 45 m=1,nqb
4635- qqlb(m)=qql(m+nqb0)
4636- do 45 n=1,nx
4637- fb(n,m)=f7(n,m+nqb0)
4638- 45 continue
4639- qqlb(1)=dlog(emb2)
4640- call jeppe1(nx,nqb,xxl,qqlb,fb,ccb)
4641-
4642-
4643- init=1
4644- 10 continue
4645-
4646- xlog=dlog(x)
4647- qsqlog=dlog(qsq)
4648-
4649- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc1,upv)
4650- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc2,dnv)
4651- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc3,glu)
4652- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc4,usea)
4653- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc6,str)
4654- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc8,dsea)
4655-
4656- chm=0.d0
4657- if(qsq.gt.emc2) then
4658- call jeppe2(xlog,qsqlog,nx,nqc,xxl,qqlc,ccc,chm)
4659- endif
4660-
4661- bot=0.d0
4662- if(qsq.gt.emb2) then
4663- call jeppe2(xlog,qsqlog,nx,nqb,xxl,qqlb,ccb,bot)
4664- endif
4665-
4666- x=xsave
4667- qsq=q2save
4668- return
4669- 50 format(8f10.5)
4670- end
4671-
4672- subroutine mrst3(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
4673- implicit real*8(a-h,o-z)
4674-c-fabio
4675- Character Tablefile*40
4676- data Tablefile/'alf121.dat'/
4677- integer IU
4678- common/IU/IU
4679-c
4680- parameter(nx=49,nq=37,np=8,nqc0=2,nqb0=11,nqc=35,nqb=26)
4681- real*8 f1(nx,nq),f2(nx,nq),f3(nx,nq),f4(nx,nq),f5(nx,nq),
4682- .f6(nx,nq),f7(nx,nq),f8(nx,nq),fc(nx,nqc),fb(nx,nqb)
4683- real*8 qq(nq),xx(nx),cc1(nx,nq,4,4),cc2(nx,nq,4,4),
4684- .cc3(nx,nq,4,4),cc4(nx,nq,4,4),cc6(nx,nq,4,4),cc8(nx,nq,4,4),
4685- .ccc(nx,nqc,4,4),ccb(nx,nqb,4,4)
4686- real*8 xxl(nx),qql(nq),qqlc(nqc),qqlb(nqb)
4687- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
4688- . 1d-4,2d-4,4d-4,6d-4,8d-4,
4689- . 1d-3,2d-3,4d-3,6d-3,8d-3,
4690- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
4691- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
4692- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
4693- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
4694- . .8d0,.9d0,1d0/
4695- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
4696- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
4697- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
4698- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
4699- . 1.8d6,3.2d6,5.6d6,1d7/
4700-c data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
4701- data init/0/
4702- save
4703- xsave=x
4704- q2save=qsq
4705- if(init.ne.0) goto 10
4706-c open(unit=33,file='Pdfdata/alf121.dat',status='old')
4707- call OpenData(Tablefile)
4708- do 20 n=1,nx-1
4709- do 20 m=1,nq
4710- read(IU,50)f1(n,m),f2(n,m),f3(n,m),f4(n,m),
4711- . f5(n,m),f7(n,m),f6(n,m),f8(n,m)
4712-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
4713- 20 continue
4714- do 40 m=1,nq
4715- f1(nx,m)=0.d0
4716- f2(nx,m)=0.d0
4717- f3(nx,m)=0.d0
4718- f4(nx,m)=0.d0
4719- f5(nx,m)=0.d0
4720- f6(nx,m)=0.d0
4721- f7(nx,m)=0.d0
4722- f8(nx,m)=0.d0
4723- 40 continue
4724- do n=1,nx
4725- xxl(n)=dlog(xx(n))
4726- enddo
4727- do m=1,nq
4728- qql(m)=dlog(qq(m))
4729- enddo
4730-
4731- call jeppe1(nx,nq,xxl,qql,f1,cc1)
4732- call jeppe1(nx,nq,xxl,qql,f2,cc2)
4733- call jeppe1(nx,nq,xxl,qql,f3,cc3)
4734- call jeppe1(nx,nq,xxl,qql,f4,cc4)
4735- call jeppe1(nx,nq,xxl,qql,f6,cc6)
4736- call jeppe1(nx,nq,xxl,qql,f8,cc8)
4737-
4738- emc2=2.045d0
4739- emb2=18.5d0
4740-
4741- do 44 m=1,nqc
4742- qqlc(m)=qql(m+nqc0)
4743- do 44 n=1,nx
4744- fc(n,m)=f5(n,m+nqc0)
4745- 44 continue
4746- qqlc(1)=dlog(emc2)
4747- call jeppe1(nx,nqc,xxl,qqlc,fc,ccc)
4748-
4749- do 45 m=1,nqb
4750- qqlb(m)=qql(m+nqb0)
4751- do 45 n=1,nx
4752- fb(n,m)=f7(n,m+nqb0)
4753- 45 continue
4754- qqlb(1)=dlog(emb2)
4755- call jeppe1(nx,nqb,xxl,qqlb,fb,ccb)
4756-
4757-
4758- init=1
4759- 10 continue
4760-
4761- xlog=dlog(x)
4762- qsqlog=dlog(qsq)
4763-
4764- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc1,upv)
4765- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc2,dnv)
4766- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc3,glu)
4767- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc4,usea)
4768- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc6,str)
4769- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc8,dsea)
4770-
4771- chm=0.d0
4772- if(qsq.gt.emc2) then
4773- call jeppe2(xlog,qsqlog,nx,nqc,xxl,qqlc,ccc,chm)
4774- endif
4775-
4776- bot=0.d0
4777- if(qsq.gt.emb2) then
4778- call jeppe2(xlog,qsqlog,nx,nqb,xxl,qqlb,ccb,bot)
4779- endif
4780-
4781- x=xsave
4782- qsq=q2save
4783- return
4784- 50 format(8f10.5)
4785- end
4786-
4787- subroutine mrst4(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
4788- implicit real*8(a-h,o-z)
4789-c-fabio
4790- Character Tablefile*40
4791- data Tablefile/'j121.dat'/
4792- integer IU
4793- common/IU/IU
4794-c
4795- parameter(nx=49,nq=37,np=8,nqc0=2,nqb0=11,nqc=35,nqb=26)
4796- real*8 f1(nx,nq),f2(nx,nq),f3(nx,nq),f4(nx,nq),f5(nx,nq),
4797- .f6(nx,nq),f7(nx,nq),f8(nx,nq),fc(nx,nqc),fb(nx,nqb)
4798- real*8 qq(nq),xx(nx),cc1(nx,nq,4,4),cc2(nx,nq,4,4),
4799- .cc3(nx,nq,4,4),cc4(nx,nq,4,4),cc6(nx,nq,4,4),cc8(nx,nq,4,4),
4800- .ccc(nx,nqc,4,4),ccb(nx,nqb,4,4)
4801- real*8 xxl(nx),qql(nq),qqlc(nqc),qqlb(nqb)
4802- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
4803- . 1d-4,2d-4,4d-4,6d-4,8d-4,
4804- . 1d-3,2d-3,4d-3,6d-3,8d-3,
4805- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
4806- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
4807- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
4808- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
4809- . .8d0,.9d0,1d0/
4810- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
4811- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
4812- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
4813- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
4814- . 1.8d6,3.2d6,5.6d6,1d7/
4815-c data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
4816- data init/0/
4817- save
4818- xsave=x
4819- q2save=qsq
4820- if(init.ne.0) goto 10
4821-c open(unit=33,file='Pdfdata/j121.dat',status='old')
4822- call OpenData(Tablefile)
4823- do 20 n=1,nx-1
4824- do 20 m=1,nq
4825- read(IU,50)f1(n,m),f2(n,m),f3(n,m),f4(n,m),
4826- . f5(n,m),f7(n,m),f6(n,m),f8(n,m)
4827-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
4828- 20 continue
4829- do 40 m=1,nq
4830- f1(nx,m)=0.d0
4831- f2(nx,m)=0.d0
4832- f3(nx,m)=0.d0
4833- f4(nx,m)=0.d0
4834- f5(nx,m)=0.d0
4835- f6(nx,m)=0.d0
4836- f7(nx,m)=0.d0
4837- f8(nx,m)=0.d0
4838- 40 continue
4839- do n=1,nx
4840- xxl(n)=dlog(xx(n))
4841- enddo
4842- do m=1,nq
4843- qql(m)=dlog(qq(m))
4844- enddo
4845-
4846- call jeppe1(nx,nq,xxl,qql,f1,cc1)
4847- call jeppe1(nx,nq,xxl,qql,f2,cc2)
4848- call jeppe1(nx,nq,xxl,qql,f3,cc3)
4849- call jeppe1(nx,nq,xxl,qql,f4,cc4)
4850- call jeppe1(nx,nq,xxl,qql,f6,cc6)
4851- call jeppe1(nx,nq,xxl,qql,f8,cc8)
4852-
4853- emc2=2.045d0
4854- emb2=18.5d0
4855-
4856- do 44 m=1,nqc
4857- qqlc(m)=qql(m+nqc0)
4858- do 44 n=1,nx
4859- fc(n,m)=f5(n,m+nqc0)
4860- 44 continue
4861- qqlc(1)=dlog(emc2)
4862- call jeppe1(nx,nqc,xxl,qqlc,fc,ccc)
4863-
4864- do 45 m=1,nqb
4865- qqlb(m)=qql(m+nqb0)
4866- do 45 n=1,nx
4867- fb(n,m)=f7(n,m+nqb0)
4868- 45 continue
4869- qqlb(1)=dlog(emb2)
4870- call jeppe1(nx,nqb,xxl,qqlb,fb,ccb)
4871-
4872-
4873- init=1
4874- 10 continue
4875-
4876- xlog=dlog(x)
4877- qsqlog=dlog(qsq)
4878-
4879- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc1,upv)
4880- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc2,dnv)
4881- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc3,glu)
4882- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc4,usea)
4883- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc6,str)
4884- call jeppe2(xlog,qsqlog,nx,nq,xxl,qql,cc8,dsea)
4885-
4886- chm=0.d0
4887- if(qsq.gt.emc2) then
4888- call jeppe2(xlog,qsqlog,nx,nqc,xxl,qqlc,ccc,chm)
4889- endif
4890-
4891- bot=0.d0
4892- if(qsq.gt.emb2) then
4893- call jeppe2(xlog,qsqlog,nx,nqb,xxl,qqlb,ccb,bot)
4894- endif
4895-
4896- x=xsave
4897- qsq=q2save
4898- return
4899- 50 format(8f10.5)
4900- end
4901-
4902
4903=== removed file 'Template/LO/Source/PDF/mrst2002.f'
4904--- Template/LO/Source/PDF/mrst2002.f 2010-10-30 03:26:37 +0000
4905+++ Template/LO/Source/PDF/mrst2002.f 1970-01-01 00:00:00 +0000
4906@@ -1,264 +0,0 @@
4907- subroutine mrst2002(x,q,mode,upv,dnv,usea,dsea,str,chm,bot,glu)
4908-C***************************************************************C
4909-C C
4910-C This is a package for the new MRST 2002 updated NLO and C
4911-C NNLO parton distributions. C
4912-C Reference: A.D. Martin, R.G. Roberts, W.J. Stirling and C
4913-C R.S. Thorne, hep-ph/0211080 C
4914-C C
4915-C There are 2 pdf sets corresponding to mode = 1, 2 C
4916-C C
4917-C Mode=1 gives the NLO set with alpha_s(M_Z,NLO) = 0.1197 C
4918-C This set reads a grid whose first number is 0.00949 C
4919-C C
4920-C Mode=2 gives the NNLO set with alpha_s(M_Z,NNLO) = 0.1154 C
4921-C This set reads a grid whose first number is 0.00685 C
4922-C C
4923-C Comments to : W.J.Stirling@durham.ac.uk C
4924-C C
4925-C***************************************************************C
4926- implicit real*8(a-h,o-z)
4927- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
4928- q2=q*q
4929- if(q2.lt.qsqmin.or.q2.gt.qsqmax) print 99,q2
4930- if(x.lt.xmin.or.x.gt.xmax) print 98,x
4931- if(mode.eq.1) then
4932- call mrst_02_1(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
4933- elseif(mode.eq.2) then
4934- call mrst_02_1(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu)
4935- endif
4936- 99 format(' WARNING: Q^2 VALUE IS OUT OF RANGE ','q2= ',e10.5)
4937- 98 format(' WARNING: X VALUE IS OUT OF RANGE ','x= ',e10.5)
4938- return
4939- end
4940-
4941- subroutine mrst_02_1(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
4942- implicit real*8(a-h,o-z)
4943-c-fabio
4944- Character Tablefile*40
4945- data Tablefile/'mrst2002nlo.dat'/
4946- integer IU
4947- common/IU/IU
4948-c
4949- parameter(nx=49,nq=37,np=8,nqc0=2,nqb0=11,nqc=35,nqb=26)
4950- real*8 f1(nx,nq),f2(nx,nq),f3(nx,nq),f4(nx,nq),f5(nx,nq),
4951- .f6(nx,nq),f7(nx,nq),f8(nx,nq),fc(nx,nqc),fb(nx,nqb)
4952- real*8 qq(nq),xx(nx),cc1(nx,nq,4,4),cc2(nx,nq,4,4),
4953- .cc3(nx,nq,4,4),cc4(nx,nq,4,4),cc6(nx,nq,4,4),cc8(nx,nq,4,4),
4954- .ccc(nx,nqc,4,4),ccb(nx,nqb,4,4)
4955- real*8 xxl(nx),qql(nq),qqlc(nqc),qqlb(nqb)
4956- data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
4957- . 1d-4,2d-4,4d-4,6d-4,8d-4,
4958- . 1d-3,2d-3,4d-3,6d-3,8d-3,
4959- . 1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
4960- . .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
4961- . .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
4962- . .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
4963- . .8d0,.9d0,1d0/
4964- data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
4965- . 1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
4966- . 1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
4967- . 1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
4968- . 1.8d6,3.2d6,5.6d6,1d7/
4969- data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
4970- data init/0/
4971- save
4972- xsave=x
4973- q2save=qsq
4974- if(init.ne.0) goto 10
4975-c open(unit=33,file='mrst2002nlo.dat',status='old')
4976- call OpenData(Tablefile)
4977- do 20 n=1,nx-1
4978- do 20 m=1,nq
4979- read(IU,50)f1(n,m),f2(n,m),f3(n,m),f4(n,m),
4980- . f5(n,m),f7(n,m),f6(n,m),f8(n,m)
4981-c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
4982- 20 continue
4983- do 40 m=1,nq
4984- f1(nx,m)=0.d0
4985- f2(nx,m)=0.d0
4986- f3(nx,m)=0.d0
4987- f4(nx,m)=0.d0
4988- f5(nx,m)=0.d0
4989- f6(nx,m)=0.d0
4990- f7(nx,m)=0.d0
4991- f8(nx,m)=0.d0
4992- 40 continue
4993- do n=1,nx
4994- xxl(n)=dlog(xx(n))
4995- enddo
4996- do m=1,nq
4997- qql(m)=dlog(qq(m))
4998- enddo
4999-
5000- call jeppe1(nx,nq,xxl,qql,f1,cc1)
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: