Merge lp:~maddevelopers/mg5amcnlo/2.6.2_heavyion into lp:mg5amcnlo/lts
- 2.6.2_heavyion
- Merge into series2.0
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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
MadTeam | Pending | ||
Review via email: mp+342190@code.launchpad.net |
Commit message
Description of the change
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.