Merge lp:~maddevelopers/mg5amcnlo/2.6.5_ewa into lp:mg5amcnlo/lts
- 2.6.5_ewa
- Merge into series2.0
Proposed by
Olivier Mattelaer
Status: | Work in progress |
---|---|
Proposed branch: | lp:~maddevelopers/mg5amcnlo/2.6.5_ewa |
Merge into: | lp:mg5amcnlo/lts |
Diff against target: |
4346 lines (+2585/-250) 58 files modified
MadSpin/interface_madspin.py (+25/-0) Template/LO/Cards/pythia8_card_default.dat (+2/-0) Template/LO/Cards/run_card.dat (+1/-1) Template/LO/Source/PDF/ElectroweakFlux.f (+1484/-0) Template/LO/Source/PDF/ElectroweakFlux.inc (+38/-0) Template/LO/Source/PDF/PhotonFlux.f (+18/-13) Template/LO/Source/PDF/makefile (+4/-3) Template/LO/Source/PDF/pdf.f (+3/-3) Template/LO/Source/PDF/pdg2pdf.f (+111/-17) Template/LO/Source/PDF/pdg2pdf_lhapdf6.f (+111/-11) Template/LO/Source/kin_functions.f (+5/-3) Template/LO/Source/setrun.f (+17/-2) Template/LO/SubProcesses/genps.f (+3/-0) Template/LO/SubProcesses/reweight.f (+2/-2) Template/LO/SubProcesses/unwgt.f (+10/-1) Template/MadWeight/src/setrun.f (+8/-0) UpdateNotes.txt (+18/-0) aloha/aloha_writers.py (+7/-4) madgraph/core/base_objects.py (+3/-2) madgraph/interface/common_run_interface.py (+30/-5) madgraph/interface/madevent_interface.py (+3/-2) madgraph/interface/madgraph_interface.py (+1/-1) madgraph/interface/reweight_interface.py (+26/-15) madgraph/iolibs/export_v4.py (+83/-18) madgraph/iolibs/template_files/auto_dsig_v4.inc (+15/-0) madgraph/iolibs/template_files/loop_optimized/check_sa_all.py.inc (+4/-4) madgraph/iolibs/template_files/loop_optimized/loop_matrix_standalone.inc (+12/-3) madgraph/iolibs/template_files/makefile_sa_f2py (+15/-7) madgraph/iolibs/template_files/matrix_madevent_group_v4.inc (+2/-15) madgraph/iolibs/template_files/matrix_madevent_v4.inc (+2/-14) madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc (+7/-2) madgraph/loop/loop_exporters.py (+28/-18) madgraph/various/banner.py (+109/-23) madgraph/various/cluster.py (+68/-4) mg5decay/decay_objects.py (+21/-2) tests/acceptance_tests/test_cmd_reweight.py (+11/-4) tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_matrix.f (+12/-3) tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_matrix.f (+12/-3) tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f (+30/-0) tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f (+3/-0) tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f (+8/-2) tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f (+30/-0) tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f (+4/-0) tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_eq_4.f (+12/-3) tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_0_QEDAmpAndQEDsq_gt_2.f (+12/-3) tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_4.f (+12/-3) tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QEDsq_le_4.f (+12/-3) tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_WGTsq_le_10_QEDAmpAndQEDsq_gt_2.f (+12/-3) tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_default.f (+12/-3) tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDpert_default.f (+12/-3) tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QEDpert_default.f (+12/-3) tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%loop_matrix.f (+12/-3) tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f (+12/-3) tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_matrix.f (+12/-3) tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_matrix.f (+12/-3) tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_matrix.f (+12/-3) tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_matrix.f (+12/-3) tests/test_manager.py (+11/-1) |
To merge this branch: | bzr merge lp:~maddevelopers/mg5amcnlo/2.6.5_ewa |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Olivier Mattelaer | Pending | ||
Review via email: mp+388892@code.launchpad.net |
Commit message
only for the convenient diff for the moment
Description of the change
Unmerged revisions
- 307. By olivier-mattelaer
-
merge with 2.7.4
- 306. By olivier-mattelaer
-
merge with 2.7.2
- 305. By olivier-mattelaer
-
merge with latest 2.6.7
- 304. By olivier-mattelaer
-
fix the helicity factor for the Z boson in EWA
- 303. By olivier-mattelaer
-
allow lhapdf + EWA for pW initial state
- 302. By olivier-mattelaer
-
merge with latest 2.6.6
- 301. By olivier-mattelaer
-
fixing some tests
- 300. By olivier-mattelaer
-
merge with latest 2.6.6
- 299. By olivier-mattelaer
-
implement EWA for proton collision --thanks to xiaoran
- 298. By olivier-mattelaer
-
allow EWA for proton
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'MadSpin/interface_madspin.py' | |||
2 | --- MadSpin/interface_madspin.py 2020-06-16 19:24:01 +0000 | |||
3 | +++ MadSpin/interface_madspin.py 2020-08-13 08:01:43 +0000 | |||
4 | @@ -150,6 +150,7 @@ | |||
5 | 150 | self.mg5cmd = master_interface.MasterCmd() | 150 | self.mg5cmd = master_interface.MasterCmd() |
6 | 151 | self.seed = None | 151 | self.seed = None |
7 | 152 | self.err_branching_ratio = 0 | 152 | self.err_branching_ratio = 0 |
8 | 153 | self.me_run_name = "" # Events diretory name where to stotre the events (used by madevent) not use internally | ||
9 | 153 | 154 | ||
10 | 154 | 155 | ||
11 | 155 | if event_path: | 156 | if event_path: |
12 | @@ -580,11 +581,35 @@ | |||
13 | 580 | decay go > sq j | 581 | decay go > sq j |
14 | 581 | launch | 582 | launch |
15 | 582 | ''' | 583 | ''' |
16 | 584 | |||
17 | 585 | self.parser_launch.print_help() | ||
18 | 586 | |||
19 | 587 | def parser_launch(self): | ||
20 | 588 | usage = """launch [-n RUN_NAME] | ||
21 | 589 | """ | ||
22 | 590 | parser = misc.OptionParser(usage=usage) | ||
23 | 591 | parser.add_option("-n", "--name", | ||
24 | 592 | default="", | ||
25 | 593 | help="When NOT run in standalone instruct MG5aMC where to store the events file") | ||
26 | 594 | return parser | ||
27 | 595 | |||
28 | 596 | def parse_launch(self, line): | ||
29 | 597 | |||
30 | 598 | args = self.split_arg(line) | ||
31 | 599 | return self.parser_launch().parse_args(args) | ||
32 | 600 | |||
33 | 583 | 601 | ||
34 | 584 | @misc.mute_logger() | 602 | @misc.mute_logger() |
35 | 585 | def do_launch(self, line): | 603 | def do_launch(self, line): |
36 | 586 | """end of the configuration launched the code""" | 604 | """end of the configuration launched the code""" |
37 | 587 | 605 | ||
38 | 606 | (options, args) = self.parse_launch(line) | ||
39 | 607 | |||
40 | 608 | if options.name: | ||
41 | 609 | self.me_run_name = options.name # Only use by MG5aMC | ||
42 | 610 | else: | ||
43 | 611 | self.me_run_name = '' | ||
44 | 612 | |||
45 | 588 | if self.options["spinmode"] in ["none"]: | 613 | if self.options["spinmode"] in ["none"]: |
46 | 589 | return self.run_bridge(line) | 614 | return self.run_bridge(line) |
47 | 590 | elif self.options["spinmode"] == "onshell": | 615 | elif self.options["spinmode"] == "onshell": |
48 | 591 | 616 | ||
49 | === modified file 'Template/LO/Cards/pythia8_card_default.dat' | |||
50 | --- Template/LO/Cards/pythia8_card_default.dat 2017-02-06 18:35:42 +0000 | |||
51 | +++ Template/LO/Cards/pythia8_card_default.dat 2020-08-13 08:01:43 +0000 | |||
52 | @@ -12,6 +12,8 @@ | |||
53 | 12 | ! ------------------------------------------------------------------- | 12 | ! ------------------------------------------------------------------- |
54 | 13 | ! Specify the HEPMC output of the Pythia8 shower. You can set it to: | 13 | ! Specify the HEPMC output of the Pythia8 shower. You can set it to: |
55 | 14 | ! auto : MG5aMC will automatically place it the run_<i> directory | 14 | ! auto : MG5aMC will automatically place it the run_<i> directory |
56 | 15 | ! autoremove: MG5aMC will automatically remove the file at the end of the run. | ||
57 | 16 | ! (usefull when running with Delphes) | ||
58 | 15 | ! /dev/null : to turn off the HEPMC output. | 17 | ! /dev/null : to turn off the HEPMC output. |
59 | 16 | ! <path> : to select where the HEPMC file must written. It will | 18 | ! <path> : to select where the HEPMC file must written. It will |
60 | 17 | ! therefore not be placed in the run_<i> directory. The | 19 | ! therefore not be placed in the run_<i> directory. The |
61 | 18 | 20 | ||
62 | === modified file 'Template/LO/Cards/run_card.dat' | |||
63 | --- Template/LO/Cards/run_card.dat 2020-05-27 07:52:34 +0000 | |||
64 | +++ Template/LO/Cards/run_card.dat 2020-08-13 08:01:43 +0000 | |||
65 | @@ -28,7 +28,7 @@ | |||
66 | 28 | #********************************************************************* | 28 | #********************************************************************* |
67 | 29 | # Collider type and energy * | 29 | # Collider type and energy * |
68 | 30 | # lpp: 0=No PDF, 1=proton, -1=antiproton, 2=photon from proton, * | 30 | # lpp: 0=No PDF, 1=proton, -1=antiproton, 2=photon from proton, * |
70 | 31 | # 3=photon from electron * | 31 | # 3=photon from electron, 4=photon from muon * |
71 | 32 | #********************************************************************* | 32 | #********************************************************************* |
72 | 33 | %(lpp1)s = lpp1 ! beam 1 type | 33 | %(lpp1)s = lpp1 ! beam 1 type |
73 | 34 | %(lpp2)s = lpp2 ! beam 2 type | 34 | %(lpp2)s = lpp2 ! beam 2 type |
74 | 35 | 35 | ||
75 | === added file 'Template/LO/Source/PDF/ElectroweakFlux.f' | |||
76 | --- Template/LO/Source/PDF/ElectroweakFlux.f 1970-01-01 00:00:00 +0000 | |||
77 | +++ Template/LO/Source/PDF/ElectroweakFlux.f 2020-08-13 08:01:43 +0000 | |||
78 | @@ -0,0 +1,1484 @@ | |||
79 | 1 | c/* ********************************************************* */ | ||
80 | 2 | c/* Effective W Approximation Splitting Functions */ | ||
81 | 3 | c/* Pulled from Barger and Phillips, pg 276 */ | ||
82 | 4 | c/* ********************************************************* */ | ||
83 | 5 | c | ||
84 | 6 | c List of functions: | ||
85 | 7 | c ewa_wX_ByPID,ewa_wX,ewa_wT,ewa_w0 | ||
86 | 8 | c ewa_zX_ByPID,ewa_zT,ewa_z0 | ||
87 | 9 | c | ||
88 | 10 | c Input for ewa_vX_ByPID: | ||
89 | 11 | c x: longitudinal momentum fraction carried by boson v | ||
90 | 12 | c q2max: scale^2 of v boson pdf | ||
91 | 13 | c pol: polarization of v boson (pol = +1,-1,0) | ||
92 | 14 | c ppid: pid of v boson's parent fermion | ||
93 | 15 | c/* ********************************************************* */ | ||
94 | 16 | |||
95 | 17 | c/* ********************************************************* */ | ||
96 | 18 | c return ewa splitting function for w boson by parent PID | ||
97 | 19 | double precision function ewa_wX_ByPID(x,q2max,pol,ppid) | ||
98 | 20 | implicit none | ||
99 | 21 | integer pol,ppid | ||
100 | 22 | double precision x,q2max | ||
101 | 23 | double precision ewa_wX | ||
102 | 24 | double precision ewa_wp_p, ewa_wm_p | ||
103 | 25 | external ewa_wX, ewa_wp_p, ewa_wm_p | ||
104 | 26 | |||
105 | 27 | include 'ElectroweakFlux.inc' | ||
106 | 28 | |||
107 | 29 | if(q2max.lt.ewa_mw2) then | ||
108 | 30 | c write (*,*) 'ERROR: q2max below MW2',q2max,ewa_mw2 | ||
109 | 31 | ewa_wX_ByPID = 0d0 | ||
110 | 32 | return | ||
111 | 33 | endif | ||
112 | 34 | if(x.lt.eps .or. x.gt.(1.d0-eps)) then | ||
113 | 35 | c write (*,*) 'ERROR: x out of range',x | ||
114 | 36 | ewa_wX_ByPID =0d0 | ||
115 | 37 | return | ||
116 | 38 | endif | ||
117 | 39 | |||
118 | 40 | c is parent a proton (unbroken) | ||
119 | 41 | if(ppid.eq.2212) then | ||
120 | 42 | ewa_wX_ByPID = ewa_wp_p(x,q2max,pol) | ||
121 | 43 | return | ||
122 | 44 | else if(ppid.eq.-2212) then | ||
123 | 45 | ewa_wX_ByPID = ewa_wm_p(x,q2max,pol) | ||
124 | 46 | return | ||
125 | 47 | c other particle | ||
126 | 48 | else | ||
127 | 49 | ewa_wX_ByPID = ewa_wX(x,q2max,pol) | ||
128 | 50 | endif | ||
129 | 51 | return | ||
130 | 52 | end | ||
131 | 53 | c/* ********************************************************* */ | ||
132 | 54 | c return ewa splitting function for w boson | ||
133 | 55 | double precision function ewa_wX(x,q2max,pol) | ||
134 | 56 | implicit none | ||
135 | 57 | integer pol | ||
136 | 58 | double precision x,q2max | ||
137 | 59 | double precision ewa_wT,ewa_w0 | ||
138 | 60 | external ewa_wT,ewa_w0 | ||
139 | 61 | |||
140 | 62 | if(abs(pol).gt.0) then | ||
141 | 63 | ewa_wX = ewa_wT(x,q2max,pol) | ||
142 | 64 | else | ||
143 | 65 | ewa_wX = ewa_w0(x) | ||
144 | 66 | endif | ||
145 | 67 | return | ||
146 | 68 | end | ||
147 | 69 | c/* ********************************************************* */ | ||
148 | 70 | c return ewa splitting function for z boson by parent PID | ||
149 | 71 | double precision function ewa_zX_ByPID(x,q2max,pol,ppid) | ||
150 | 72 | implicit none | ||
151 | 73 | integer pol,ppid | ||
152 | 74 | double precision x,q2max | ||
153 | 75 | double precision ewa_zT,ewa_z0, ewa_z_p | ||
154 | 76 | external ewa_zT,ewa_z0,ewa_z_p | ||
155 | 77 | |||
156 | 78 | include 'ElectroweakFlux.inc' | ||
157 | 79 | |||
158 | 80 | if(q2max.lt.ewa_mz2) then | ||
159 | 81 | c write (*,*) 'ERROR: q2max below MZ2',q2max,ewa_mz2 | ||
160 | 82 | ewa_zX_ByPID = 0d0 | ||
161 | 83 | return | ||
162 | 84 | endif | ||
163 | 85 | if(x.lt.eps .or. x.gt.(1.d0-eps))then | ||
164 | 86 | c write (*,*) 'ERROR: x out of range',x | ||
165 | 87 | ewa_zX_ByPID = 0d0 | ||
166 | 88 | return | ||
167 | 89 | endif | ||
168 | 90 | |||
169 | 91 | c is parent a charged lepton? | ||
170 | 92 | if( abs(ppid).eq.11 | ||
171 | 93 | & .or. abs(ppid).eq.13 | ||
172 | 94 | & .or. abs(ppid).eq.15) then | ||
173 | 95 | if(abs(pol).gt.0) then | ||
174 | 96 | ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVl,ewa_gAl) | ||
175 | 97 | else | ||
176 | 98 | ewa_zX_ByPID = ewa_z0(x,ewa_gVl,ewa_gAl) | ||
177 | 99 | endif | ||
178 | 100 | return | ||
179 | 101 | c is parent a proton (unbroken) | ||
180 | 102 | elseif(ppid.eq.2212) then | ||
181 | 103 | ewa_zX_ByPID = ewa_Z_p(x,q2max,pol) | ||
182 | 104 | return | ||
183 | 105 | c is parent a neutrino? | ||
184 | 106 | elseif( abs(ppid).eq.12 | ||
185 | 107 | & .or. abs(ppid).eq.14 | ||
186 | 108 | & .or. abs(ppid).eq.16) then | ||
187 | 109 | if(abs(pol).gt.0) then | ||
188 | 110 | ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVv,ewa_gAv) | ||
189 | 111 | else | ||
190 | 112 | ewa_zX_ByPID = ewa_z0(x,ewa_gVv,ewa_gAv) | ||
191 | 113 | endif | ||
192 | 114 | return | ||
193 | 115 | c is parent an up-type quark? | ||
194 | 116 | elseif( abs(ppid).eq.2 | ||
195 | 117 | & .or. abs(ppid).eq.4 | ||
196 | 118 | & .or. abs(ppid).eq.6) then | ||
197 | 119 | if(abs(pol).gt.0) then | ||
198 | 120 | ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVu,ewa_gAu) | ||
199 | 121 | else | ||
200 | 122 | ewa_zX_ByPID = ewa_z0(x,ewa_gVu,ewa_gAu) | ||
201 | 123 | endif | ||
202 | 124 | return | ||
203 | 125 | c is parent a down-type quark? | ||
204 | 126 | elseif( abs(ppid).eq.1 | ||
205 | 127 | & .or. abs(ppid).eq.3 | ||
206 | 128 | & .or. abs(ppid).eq.5) then | ||
207 | 129 | if(abs(pol).gt.0) then | ||
208 | 130 | ewa_zX_ByPID = ewa_zT(x,q2max,pol,ewa_gVd,ewa_gAd) | ||
209 | 131 | else | ||
210 | 132 | ewa_zX_ByPID = ewa_z0(x,ewa_gVd,ewa_gAd) | ||
211 | 133 | endif | ||
212 | 134 | return | ||
213 | 135 | c or something else? | ||
214 | 136 | else | ||
215 | 137 | ewa_zX_ByPID = 0d0 | ||
216 | 138 | return | ||
217 | 139 | endif | ||
218 | 140 | end | ||
219 | 141 | c/* ********************************************************* */ | ||
220 | 142 | c w boson splitting function: longitudinal polarization | ||
221 | 143 | double precision function ewa_w0(x) | ||
222 | 144 | implicit none | ||
223 | 145 | double precision x | ||
224 | 146 | double precision coup | ||
225 | 147 | |||
226 | 148 | include 'ElectroweakFlux.inc' | ||
227 | 149 | |||
228 | 150 | c P_W(x,lambda=0) = (gW/4pi)**2 (1-x)/x | ||
229 | 151 | coup = ewa_gW2/(16d0*pi2) | ||
230 | 152 | ewa_w0 = coup * (1d0-x)/x | ||
231 | 153 | return | ||
232 | 154 | end | ||
233 | 155 | c/* ********************************************************* */ | ||
234 | 156 | c z boson splitting function: longitudinal polarization | ||
235 | 157 | double precision function ewa_z0(x,gV,gA) | ||
236 | 158 | implicit none | ||
237 | 159 | double precision x,gV,gA | ||
238 | 160 | double precision coup | ||
239 | 161 | |||
240 | 162 | include 'ElectroweakFlux.inc' | ||
241 | 163 | |||
242 | 164 | c P_Z(x,lambda=0) = (gW2/cw2*4pi2) * (gV2 + gA2) (1-x)/x | ||
243 | 165 | coup = ewa_gW2/(ewa_cw2*4d0*pi2) * (gV**2 + gA**2) | ||
244 | 166 | ewa_z0 = coup * (1d0-x)/x | ||
245 | 167 | return | ||
246 | 168 | end | ||
247 | 169 | c/* ********************************************************* */ | ||
248 | 170 | c w boson splitting function: transverse polarization | ||
249 | 171 | double precision function ewa_wT(x,q2max,pol) | ||
250 | 172 | implicit none | ||
251 | 173 | integer pol | ||
252 | 174 | double precision x,q2max | ||
253 | 175 | double precision coup,numer | ||
254 | 176 | |||
255 | 177 | include 'ElectroweakFlux.inc' | ||
256 | 178 | |||
257 | 179 | c P_W(x,lambda=\pm) = coup * [(gV \mp gA)^2 + (gV \pm gA)^2 (1-x)^2] * log(Q2/MV2) | ||
258 | 180 | coup = ewa_gW2/(8d0*16d0*pi2) | ||
259 | 181 | numer = (ewa_gV-pol*ewa_gA)**2 | ||
260 | 182 | & + (ewa_gV+pol*ewa_gA)**2 * (1d0-x)**2 | ||
261 | 183 | ewa_wT = coup * numer * log(q2max/ewa_mw2) / x | ||
262 | 184 | return | ||
263 | 185 | end | ||
264 | 186 | c/* ********************************************************* */ | ||
265 | 187 | c z boson splitting function: transverse polarization | ||
266 | 188 | double precision function ewa_zT(x,q2max,pol,gV,gA) | ||
267 | 189 | implicit none | ||
268 | 190 | integer pol | ||
269 | 191 | double precision x,q2max,gV,gA | ||
270 | 192 | double precision coup,numer | ||
271 | 193 | |||
272 | 194 | include 'ElectroweakFlux.inc' | ||
273 | 195 | |||
274 | 196 | c P_Z(x,lambda=\pm) = coup * [(gV \mp gA)^2 + (gV \pm gA)^2 (1-x)^2] * log(Q2/MV2) | ||
275 | 197 | coup = ewa_gW2/(ewa_cw2*16d0*pi2) | ||
276 | 198 | numer = (gV-pol*gA)**2 | ||
277 | 199 | & + (gV+pol*gA)**2 * (1d0-x)**2 | ||
278 | 200 | ewa_zT = coup * numer * log(q2max/ewa_mz2) / x | ||
279 | 201 | return | ||
280 | 202 | end | ||
281 | 203 | FUNCTION dFINT(NARG,ARG,NENT,ENT,TABLE) | ||
282 | 204 | C | ||
283 | 205 | C INTERPOLATION ROUTINE. AUTHOR C. LETERTRE. | ||
284 | 206 | C MODIFIED BY B. SCHORR, 1.07.1982. | ||
285 | 207 | C | ||
286 | 208 | implicit real * 8 (a-h,o-z) | ||
287 | 209 | INTEGER NENT(*) | ||
288 | 210 | REAL*8 ARG(*), ENT(*), TABLE(*) | ||
289 | 211 | INTEGER INDEX(32) | ||
290 | 212 | REAL*8 WEIGHT(32) | ||
291 | 213 | LOGICAL MFLAG, RFLAG | ||
292 | 214 | DFINT = 0. | ||
293 | 215 | IF(NARG .LT. 1 .OR. NARG .GT. 5) GOTO 300 | ||
294 | 216 | LMAX = 0 | ||
295 | 217 | ISTEP = 1 | ||
296 | 218 | KNOTS = 1 | ||
297 | 219 | INDEX(1) = 1 | ||
298 | 220 | WEIGHT(1) = 1. | ||
299 | 221 | DO 100 N = 1, NARG | ||
300 | 222 | X = ARG(N) | ||
301 | 223 | NDIM = NENT(N) | ||
302 | 224 | LOCA = LMAX | ||
303 | 225 | LMIN = LMAX + 1 | ||
304 | 226 | LMAX = LMAX + NDIM | ||
305 | 227 | IF(NDIM .GT. 2) GOTO 10 | ||
306 | 228 | IF(NDIM .EQ. 1) GOTO 100 | ||
307 | 229 | H = X - ENT(LMIN) | ||
308 | 230 | IF(H .EQ. 0.) GOTO 90 | ||
309 | 231 | ISHIFT = ISTEP | ||
310 | 232 | IF(X-ENT(LMIN+1) .EQ. 0.) GOTO 21 | ||
311 | 233 | ISHIFT = 0 | ||
312 | 234 | ETA = H / (ENT(LMIN+1) - ENT(LMIN)) | ||
313 | 235 | GOTO 30 | ||
314 | 236 | 10 LOCB = LMAX + 1 | ||
315 | 237 | 11 LOCC = (LOCA+LOCB) / 2 | ||
316 | 238 | IF(X-ENT(LOCC)) 12, 20, 13 | ||
317 | 239 | 12 LOCB = LOCC | ||
318 | 240 | GOTO 14 | ||
319 | 241 | 13 LOCA = LOCC | ||
320 | 242 | 14 IF(LOCB-LOCA .GT. 1) GOTO 11 | ||
321 | 243 | LOCA = MIN0( MAX0(LOCA,LMIN), LMAX-1 ) | ||
322 | 244 | ISHIFT = (LOCA - LMIN) * ISTEP | ||
323 | 245 | ETA = (X - ENT(LOCA)) / (ENT(LOCA+1) - ENT(LOCA)) | ||
324 | 246 | GOTO 30 | ||
325 | 247 | 20 ISHIFT = (LOCC - LMIN) * ISTEP | ||
326 | 248 | 21 DO 22 K = 1, KNOTS | ||
327 | 249 | INDEX(K) = INDEX(K) + ISHIFT | ||
328 | 250 | 22 CONTINUE | ||
329 | 251 | GOTO 90 | ||
330 | 252 | 30 DO 31 K = 1, KNOTS | ||
331 | 253 | INDEX(K) = INDEX(K) + ISHIFT | ||
332 | 254 | INDEX(K+KNOTS) = INDEX(K) + ISTEP | ||
333 | 255 | WEIGHT(K+KNOTS) = WEIGHT(K) * ETA | ||
334 | 256 | WEIGHT(K) = WEIGHT(K) - WEIGHT(K+KNOTS) | ||
335 | 257 | 31 CONTINUE | ||
336 | 258 | KNOTS = 2*KNOTS | ||
337 | 259 | 90 ISTEP = ISTEP * NDIM | ||
338 | 260 | 100 CONTINUE | ||
339 | 261 | DO 200 K = 1, KNOTS | ||
340 | 262 | I = INDEX(K) | ||
341 | 263 | DFINT = DFINT + WEIGHT(K) * TABLE(I) | ||
342 | 264 | 200 CONTINUE | ||
343 | 265 | RETURN | ||
344 | 266 | 300 CALL KERMTR('E104.1',LGFILE,MFLAG,RFLAG) | ||
345 | 267 | IF(MFLAG) THEN | ||
346 | 268 | IF(LGFILE .EQ. 0) THEN | ||
347 | 269 | WRITE(*,1000) NARG | ||
348 | 270 | ELSE | ||
349 | 271 | WRITE(LGFILE,1000) NARG | ||
350 | 272 | ENDIF | ||
351 | 273 | ENDIF | ||
352 | 274 | IF(.NOT. RFLAG) CALL ABEND | ||
353 | 275 | RETURN | ||
354 | 276 | 1000 FORMAT( 7X, 25HFUNCTION DFINT ... NARG =,I6, | ||
355 | 277 | + 17H NOT WITHIN RANGE) | ||
356 | 278 | END | ||
357 | 279 | SUBROUTINE KERSET(ERCODE,LGFILE,LIMITM,LIMITR) | ||
358 | 280 | PARAMETER(KOUNTE = 28) | ||
359 | 281 | CHARACTER*6 ERCODE, CODE(KOUNTE) | ||
360 | 282 | LOGICAL MFLAG, RFLAG | ||
361 | 283 | INTEGER KNTM(KOUNTE), KNTR(KOUNTE) | ||
362 | 284 | DATA LOGF / 0 / | ||
363 | 285 | DATA CODE(1), KNTM(1), KNTR(1) / 'C204.1', 100, 100 / | ||
364 | 286 | DATA CODE(2), KNTM(2), KNTR(2) / 'C204.2', 100, 100 / | ||
365 | 287 | DATA CODE(3), KNTM(3), KNTR(3) / 'C204.3', 100, 100 / | ||
366 | 288 | DATA CODE(4), KNTM(4), KNTR(4) / 'C205.1', 100, 100 / | ||
367 | 289 | DATA CODE(5), KNTM(5), KNTR(5) / 'C205.2', 100, 100 / | ||
368 | 290 | DATA CODE(6), KNTM(6), KNTR(6) / 'C205.3', 100, 100 / | ||
369 | 291 | DATA CODE(7), KNTM(7), KNTR(7) / 'C305.1', 100, 100 / | ||
370 | 292 | DATA CODE(8), KNTM(8), KNTR(8) / 'C308.1', 100, 100 / | ||
371 | 293 | DATA CODE(9), KNTM(9), KNTR(9) / 'C312.1', 100, 100 / | ||
372 | 294 | DATA CODE(10),KNTM(10),KNTR(10) / 'C313.1', 100, 100 / | ||
373 | 295 | DATA CODE(11),KNTM(11),KNTR(11) / 'C336.1', 100, 100 / | ||
374 | 296 | DATA CODE(12),KNTM(12),KNTR(12) / 'C337.1', 100, 100 / | ||
375 | 297 | DATA CODE(13),KNTM(13),KNTR(13) / 'C341.1', 100, 100 / | ||
376 | 298 | DATA CODE(14),KNTM(14),KNTR(14) / 'D103.1', 100, 100 / | ||
377 | 299 | DATA CODE(15),KNTM(15),KNTR(15) / 'D106.1', 100, 100 / | ||
378 | 300 | DATA CODE(16),KNTM(16),KNTR(16) / 'D209.1', 100, 100 / | ||
379 | 301 | DATA CODE(17),KNTM(17),KNTR(17) / 'D509.1', 100, 100 / | ||
380 | 302 | DATA CODE(18),KNTM(18),KNTR(18) / 'E100.1', 100, 100 / | ||
381 | 303 | DATA CODE(19),KNTM(19),KNTR(19) / 'E104.1', 100, 100 / | ||
382 | 304 | DATA CODE(20),KNTM(20),KNTR(20) / 'E105.1', 100, 100 / | ||
383 | 305 | DATA CODE(21),KNTM(21),KNTR(21) / 'E208.1', 100, 100 / | ||
384 | 306 | DATA CODE(22),KNTM(22),KNTR(22) / 'E208.2', 100, 100 / | ||
385 | 307 | DATA CODE(23),KNTM(23),KNTR(23) / 'F010.1', 100, 0 / | ||
386 | 308 | DATA CODE(24),KNTM(24),KNTR(24) / 'F011.1', 100, 0 / | ||
387 | 309 | DATA CODE(25),KNTM(25),KNTR(25) / 'F012.1', 100, 0 / | ||
388 | 310 | DATA CODE(26),KNTM(26),KNTR(26) / 'F406.1', 100, 0 / | ||
389 | 311 | DATA CODE(27),KNTM(27),KNTR(27) / 'G100.1', 100, 100 / | ||
390 | 312 | DATA CODE(28),KNTM(28),KNTR(28) / 'G100.2', 100, 100 / | ||
391 | 313 | LOGF = LGFILE | ||
392 | 314 | IF(ERCODE .EQ. ' ') THEN | ||
393 | 315 | L = 0 | ||
394 | 316 | ELSE | ||
395 | 317 | DO 10 L = 1, 6 | ||
396 | 318 | IF(ERCODE(1:L) .EQ. ERCODE) GOTO 12 | ||
397 | 319 | 10 CONTINUE | ||
398 | 320 | 12 CONTINUE | ||
399 | 321 | ENDIF | ||
400 | 322 | DO 14 I = 1, KOUNTE | ||
401 | 323 | IF(L .EQ. 0) GOTO 13 | ||
402 | 324 | IF(CODE(I)(1:L) .NE. ERCODE(1:L)) GOTO 14 | ||
403 | 325 | 13 KNTM(I) = LIMITM | ||
404 | 326 | KNTR(I) = LIMITR | ||
405 | 327 | 14 CONTINUE | ||
406 | 328 | RETURN | ||
407 | 329 | ENTRY KERMTR(ERCODE,LOG,MFLAG,RFLAG) | ||
408 | 330 | LOG = LOGF | ||
409 | 331 | DO 20 I = 1, KOUNTE | ||
410 | 332 | IF(ERCODE .EQ. CODE(I)) GOTO 21 | ||
411 | 333 | 20 CONTINUE | ||
412 | 334 | WRITE(*,1000) ERCODE | ||
413 | 335 | CALL ABEND | ||
414 | 336 | RETURN | ||
415 | 337 | 21 RFLAG = KNTR(I) .GE. 1 | ||
416 | 338 | IF(RFLAG .AND. (KNTR(I) .LT. 100)) KNTR(I) = KNTR(I) - 1 | ||
417 | 339 | MFLAG = KNTM(I) .GE. 1 | ||
418 | 340 | IF(MFLAG .AND. (KNTM(I) .LT. 100)) KNTM(I) = KNTM(I) - 1 | ||
419 | 341 | IF(.NOT. RFLAG) THEN | ||
420 | 342 | IF(LOGF .LT. 1) THEN | ||
421 | 343 | WRITE(*,1001) CODE(I) | ||
422 | 344 | ELSE | ||
423 | 345 | WRITE(LOGF,1001) CODE(I) | ||
424 | 346 | ENDIF | ||
425 | 347 | ENDIF | ||
426 | 348 | IF(MFLAG .AND. RFLAG) THEN | ||
427 | 349 | IF(LOGF .LT. 1) THEN | ||
428 | 350 | WRITE(*,1002) CODE(I) | ||
429 | 351 | ELSE | ||
430 | 352 | WRITE(LOGF,1002) CODE(I) | ||
431 | 353 | ENDIF | ||
432 | 354 | ENDIF | ||
433 | 355 | RETURN | ||
434 | 356 | 1000 FORMAT(' KERNLIB LIBRARY ERROR. ' / | ||
435 | 357 | + ' ERROR CODE ',A6,' NOT RECOGNIZED BY KERMTR', | ||
436 | 358 | + ' ERROR MONITOR. RUN ABORTED.') | ||
437 | 359 | 1001 FORMAT(/' ***** RUN TERMINATED BY CERN LIBRARY ERROR ', | ||
438 | 360 | + 'CONDITION ',A6) | ||
439 | 361 | 1002 FORMAT(/' ***** CERN LIBRARY ERROR CONDITION ',A6) | ||
440 | 362 | END | ||
441 | 363 | SUBROUTINE ABEND | ||
442 | 364 | C | ||
443 | 365 | C CERN PROGLIB# Z035 ABEND .VERSION KERNVAX 1.10 811126 | ||
444 | 366 | |||
445 | 367 | STOP '*** ABEND ***' | ||
446 | 368 | END | ||
447 | 369 | function ewa_wp_p(x,Q2,pol) | ||
448 | 370 | implicit none | ||
449 | 371 | real*8 ewa_wp_p | ||
450 | 372 | real*8 x,Q2 | ||
451 | 373 | integer pol | ||
452 | 374 | real*8 tmp | ||
453 | 375 | real*8 y,z | ||
454 | 376 | real*8 ylow,yupp,zlow,zupp | ||
455 | 377 | parameter (ylow=-16.1181,yupp=-1e-07) | ||
456 | 378 | parameter (zlow=4.38683,zupp=13.8155) | ||
457 | 379 | real*8 ewa_wp_p_1p | ||
458 | 380 | real*8 ewa_wp_p_1m | ||
459 | 381 | real*8 ewa_wp_p_0 | ||
460 | 382 | y=log(x) | ||
461 | 383 | z=0.5*log(Q2) | ||
462 | 384 | if(pol.eq.1)then | ||
463 | 385 | tmp=ewa_wp_p_1p(y,z) | ||
464 | 386 | else if(pol.eq.-1)then | ||
465 | 387 | tmp=ewa_wp_p_1m(y,z) | ||
466 | 388 | else | ||
467 | 389 | tmp=ewa_wp_p_0(y,z) | ||
468 | 390 | endif | ||
469 | 391 | ewa_wp_p=tmp/x*y*y | ||
470 | 392 | end | ||
471 | 393 | function ewa_wp_p_1p(y,z) | ||
472 | 394 | implicit none | ||
473 | 395 | real*8 ewa_wp_p_1p,y,z | ||
474 | 396 | integer narg,nny,nnz | ||
475 | 397 | parameter (narg=2) | ||
476 | 398 | parameter (nny=32) | ||
477 | 399 | parameter (nnz=8) | ||
478 | 400 | integer iny,inz,nent(narg) | ||
479 | 401 | real*8 tmp,dfint,ymap,zmap | ||
480 | 402 | real*8 arg(narg),ent(nny+nnz) | ||
481 | 403 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
482 | 404 | logical firsttime | ||
483 | 405 | external dfint,ymap,zmap | ||
484 | 406 | data yv/ | ||
485 | 407 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
486 | 408 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
487 | 409 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
488 | 410 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
489 | 411 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
490 | 412 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
491 | 413 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
492 | 414 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
493 | 415 | data zv/ | ||
494 | 416 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
495 | 417 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
496 | 418 | data (gridv(iny, 1),iny=1,32)/ | ||
497 | 419 | # 3.5423305e-07, 2.8295336e-07, 2.2903220e-07, 1.8758200e-07, | ||
498 | 420 | # 1.5559163e-07, 1.3038773e-07, 1.1025515e-07, 9.4027921e-08, | ||
499 | 421 | # 8.0829168e-08, 7.0061706e-08, 6.1294211e-08, 5.4182560e-08, | ||
500 | 422 | # 4.8450890e-08, 4.3888687e-08, 4.0319491e-08, 3.7580596e-08, | ||
501 | 423 | # 3.5520713e-08, 3.3952301e-08, 3.2625426e-08, 3.1187707e-08, | ||
502 | 424 | # 2.9181849e-08, 2.6154236e-08, 2.1900372e-08, 1.6640020e-08, | ||
503 | 425 | # 1.1099066e-08, 6.2780040e-09, 2.8842540e-09, 1.0025616e-09, | ||
504 | 426 | # 2.4219639e-10, 3.2430180e-11, 1.7122412e-12, 4.1237372e-12/ | ||
505 | 427 | data (gridv(iny, 2),iny=1,32)/ | ||
506 | 428 | # 9.6800285e-03, 7.5895745e-03, 6.0144129e-03, 4.8116391e-03, | ||
507 | 429 | # 3.8906828e-03, 3.1743361e-03, 2.6106310e-03, 2.1637757e-03, | ||
508 | 430 | # 1.8068388e-03, 1.5208169e-03, 1.2917371e-03, 1.1084546e-03, | ||
509 | 431 | # 9.6221855e-04, 8.4652524e-04, 7.5595982e-04, 6.8586986e-04, | ||
510 | 432 | # 6.3206533e-04, 5.8999236e-04, 5.5430903e-04, 5.1815672e-04, | ||
511 | 433 | # 4.7362998e-04, 4.1384517e-04, 3.3686600e-04, 2.4790947e-04, | ||
512 | 434 | # 1.5951917e-04, 8.6605399e-05, 3.7927081e-05, 1.2444648e-05, | ||
513 | 435 | # 2.7972986e-06, 3.3735215e-07, 1.3499999e-08, 3.8170248e-08/ | ||
514 | 436 | data (gridv(iny, 3),iny=1,32)/ | ||
515 | 437 | # 2.6802909e-02, 2.0666858e-02, 1.6084293e-02, 1.2619023e-02, | ||
516 | 438 | # 9.9957736e-03, 7.9819494e-03, 6.4206742e-03, 5.2026236e-03, | ||
517 | 439 | # 4.2458765e-03, 3.4918949e-03, 2.8976082e-03, 2.4290655e-03, | ||
518 | 440 | # 2.0601111e-03, 1.7714145e-03, 1.5472491e-03, 1.3744754e-03, | ||
519 | 441 | # 1.2417664e-03, 1.1376810e-03, 1.0498817e-03, 9.6384193e-04, | ||
520 | 442 | # 8.6434504e-04, 7.3958460e-04, 5.8805171e-04, 4.2143198e-04, | ||
521 | 443 | # 2.6317925e-04, 1.3808501e-04, 5.8100243e-05, 1.8168748e-05, | ||
522 | 444 | # 3.8451248e-06, 4.2503569e-07, 1.2748665e-08, 4.3387870e-08/ | ||
523 | 445 | data (gridv(iny, 4),iny=1,32)/ | ||
524 | 446 | # 5.2421053e-02, 3.9824965e-02, 3.0512558e-02, 2.3545386e-02, | ||
525 | 447 | # 1.8330098e-02, 1.4377269e-02, 1.1354532e-02, 9.0302263e-03, | ||
526 | 448 | # 7.2316381e-03, 5.8351965e-03, 4.7504014e-03, 3.9068753e-03, | ||
527 | 449 | # 3.2509450e-03, 2.7436667e-03, 2.3536072e-03, 2.0551591e-03, | ||
528 | 450 | # 1.8269264e-03, 1.6483845e-03, 1.4987780e-03, 1.3553122e-03, | ||
529 | 451 | # 1.1959351e-03, 1.0052207e-03, 7.8338419e-04, 5.4881055e-04, | ||
530 | 452 | # 3.3404786e-04, 1.7020660e-04, 6.9197187e-05, 2.0763953e-05, | ||
531 | 453 | # 4.1724093e-06, 4.2803444e-07, 9.3531305e-09, 3.9817765e-08/ | ||
532 | 454 | data (gridv(iny, 5),iny=1,32)/ | ||
533 | 455 | # 8.7314473e-02, 6.5462234e-02, 4.9470387e-02, 3.7629031e-02, | ||
534 | 456 | # 2.8860417e-02, 2.2292410e-02, 1.7332180e-02, 1.3567321e-02, | ||
535 | 457 | # 1.0692431e-02, 8.4897045e-03, 6.8007137e-03, 5.5036549e-03, | ||
536 | 458 | # 4.5068644e-03, 3.7444546e-03, 3.1638216e-03, 2.7231011e-03, | ||
537 | 459 | # 2.3880260e-03, 2.1270240e-03, 1.9097372e-03, 1.7046592e-03, | ||
538 | 460 | # 1.4833082e-03, 1.2275453e-03, 9.4002916e-04, 6.4560015e-04, | ||
539 | 461 | # 3.8423698e-04, 1.9081605e-04, 7.5273640e-05, 2.1785061e-05, | ||
540 | 462 | # 4.1829038e-06, 4.0198589e-07, 6.0711799e-09, 3.4349528e-08/ | ||
541 | 463 | data (gridv(iny, 6),iny=1,32)/ | ||
542 | 464 | # 1.3235511e-01, 9.8047579e-02, 7.3187600e-02, 5.4960335e-02, | ||
543 | 465 | # 4.1600160e-02, 3.1701979e-02, 2.4311750e-02, 1.8768166e-02, | ||
544 | 466 | # 1.4585527e-02, 1.1418854e-02, 9.0192598e-03, 7.1973844e-03, | ||
545 | 467 | # 5.8123298e-03, 4.7637364e-03, 3.9726338e-03, 3.3768371e-03, | ||
546 | 468 | # 2.9266403e-03, 2.5776574e-03, 2.2889023e-03, 2.0198147e-03, | ||
547 | 469 | # 1.7358250e-03, 1.4167343e-03, 1.0680290e-03, 7.2056798e-04, | ||
548 | 470 | # 4.2032019e-04, 2.0398263e-04, 7.8308169e-05, 2.1899198e-05, | ||
549 | 471 | # 4.0241531e-06, 3.6414048e-07, 3.7675413e-09, 2.9031813e-08/ | ||
550 | 472 | data (gridv(iny, 7),iny=1,32)/ | ||
551 | 473 | # 1.9057983e-01, 1.3957407e-01, 1.0297250e-01, 7.6391524e-02, | ||
552 | 474 | # 5.7105084e-02, 4.2965226e-02, 3.2523923e-02, 2.4779895e-02, | ||
553 | 475 | # 1.9003972e-02, 1.4680964e-02, 1.1442346e-02, 9.0104755e-03, | ||
554 | 476 | # 7.1810453e-03, 5.8100245e-03, 4.7852651e-03, 4.0196945e-03, | ||
555 | 477 | # 3.4450331e-03, 3.0020034e-03, 2.6377816e-03, 2.3022876e-03, | ||
556 | 478 | # 1.9551214e-03, 1.5745712e-03, 1.1692227e-03, 7.7537535e-04, | ||
557 | 479 | # 4.4359770e-04, 2.1050710e-04, 7.8557363e-05, 2.0871834e-05, | ||
558 | 480 | # 3.5743974e-06, 2.9762988e-07, 2.7844229e-09, 2.2782149e-08/ | ||
559 | 481 | data (gridv(iny, 8),iny=1,32)/ | ||
560 | 482 | # 2.6712405e-01, 1.9341146e-01, 1.4102973e-01, 1.0336364e-01, | ||
561 | 483 | # 7.6305708e-02, 5.6682239e-02, 4.2352056e-02, 3.1846115e-02, | ||
562 | 484 | # 2.4101065e-02, 1.8371384e-02, 1.4128575e-02, 1.0978416e-02, | ||
563 | 485 | # 8.6341061e-03, 6.8955860e-03, 5.6086588e-03, 4.6555113e-03, | ||
564 | 486 | # 3.9452818e-03, 3.4012072e-03, 2.9571084e-03, 2.5527100e-03, | ||
565 | 487 | # 2.1419401e-03, 1.7020208e-03, 1.2447953e-03, 8.1123628e-04, | ||
566 | 488 | # 4.5515586e-04, 2.1111600e-04, 7.6224092e-05, 1.8396998e-05, | ||
567 | 489 | # 2.7018652e-06, 1.8403044e-07, 1.1449565e-09, 1.2394449e-08/ | ||
568 | 490 | data firsttime/.true./ | ||
569 | 491 | save | ||
570 | 492 | if(firsttime)then | ||
571 | 493 | firsttime=.false. | ||
572 | 494 | nent(1)=nny | ||
573 | 495 | nent(2)=nnz | ||
574 | 496 | do iny=1,nny | ||
575 | 497 | ent(iny)=(yv(iny)) | ||
576 | 498 | enddo | ||
577 | 499 | do inz=1,nnz | ||
578 | 500 | ent(nny+inz)=(zv(inz)) | ||
579 | 501 | enddo | ||
580 | 502 | endif | ||
581 | 503 | arg(1)=(y) | ||
582 | 504 | arg(2)=(z) | ||
583 | 505 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
584 | 506 | ewa_wp_p_1p=tmp | ||
585 | 507 | return | ||
586 | 508 | end | ||
587 | 509 | function ewa_wp_p_1m(y,z) | ||
588 | 510 | implicit none | ||
589 | 511 | real*8 ewa_wp_p_1m,y,z | ||
590 | 512 | integer narg,nny,nnz | ||
591 | 513 | parameter (narg=2) | ||
592 | 514 | parameter (nny=32) | ||
593 | 515 | parameter (nnz=8) | ||
594 | 516 | integer iny,inz,nent(narg) | ||
595 | 517 | real*8 tmp,dfint,ymap,zmap | ||
596 | 518 | real*8 arg(narg),ent(nny+nnz) | ||
597 | 519 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
598 | 520 | logical firsttime | ||
599 | 521 | external dfint,ymap,zmap | ||
600 | 522 | data yv/ | ||
601 | 523 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
602 | 524 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
603 | 525 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
604 | 526 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
605 | 527 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
606 | 528 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
607 | 529 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
608 | 530 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
609 | 531 | data zv/ | ||
610 | 532 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
611 | 533 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
612 | 534 | data (gridv(iny, 1),iny=1,32)/ | ||
613 | 535 | # 2.2352243e-07, 1.7777182e-07, 1.4298652e-07, 1.1622085e-07, | ||
614 | 536 | # 9.5328508e-08, 7.8759840e-08, 6.5499586e-08, 5.4802442e-08, | ||
615 | 537 | # 4.6136489e-08, 3.9104599e-08, 3.3386967e-08, 2.8725277e-08, | ||
616 | 538 | # 2.4905274e-08, 2.1731925e-08, 1.9030359e-08, 1.6631364e-08, | ||
617 | 539 | # 1.4386235e-08, 1.2169804e-08, 9.9111740e-09, 7.6254325e-09, | ||
618 | 540 | # 5.4230477e-09, 3.4799784e-09, 1.9601523e-09, 9.3903981e-10, | ||
619 | 541 | # 3.6862928e-10, 1.1297902e-10, 2.5188758e-11, 3.6724956e-12, | ||
620 | 542 | # 2.9351639e-13, 8.1701272e-15, 7.6912480e-17, 6.8729255e-27/ | ||
621 | 543 | data (gridv(iny, 2),iny=1,32)/ | ||
622 | 544 | # 5.9726888e-03, 4.6455606e-03, 3.6455128e-03, 2.8853282e-03, | ||
623 | 545 | # 2.3012642e-03, 1.8468005e-03, 1.4906859e-03, 1.2098779e-03, | ||
624 | 546 | # 9.8764085e-04, 8.1150430e-04, 6.7166904e-04, 5.6040282e-04, | ||
625 | 547 | # 4.7152850e-04, 3.9983688e-04, 3.4081959e-04, 2.9051542e-04, | ||
626 | 548 | # 2.4549043e-04, 2.0307075e-04, 1.6177240e-04, 1.2167096e-04, | ||
627 | 549 | # 8.4473943e-05, 5.2813192e-05, 2.8909650e-05, 1.3417511e-05, | ||
628 | 550 | # 5.0832560e-06, 1.4959648e-06, 3.1801753e-07, 4.3791104e-08, | ||
629 | 551 | # 3.2498348e-09, 8.1063886e-11, 6.0039546e-13, 6.3617388e-23/ | ||
630 | 552 | data (gridv(iny, 3),iny=1,32)/ | ||
631 | 553 | # 1.6219214e-02, 1.2379365e-02, 9.5193091e-03, 7.3739795e-03, | ||
632 | 554 | # 5.7510065e-03, 4.5098861e-03, 3.5553416e-03, 2.8172455e-03, | ||
633 | 555 | # 2.2446775e-03, 1.7999287e-03, 1.4539007e-03, 1.1841462e-03, | ||
634 | 556 | # 9.7322588e-04, 8.0691077e-04, 6.7339686e-04, 5.6275965e-04, | ||
635 | 557 | # 4.6677178e-04, 3.7925827e-04, 2.9674760e-04, 2.1907115e-04, | ||
636 | 558 | # 1.4910620e-04, 9.1228668e-05, 4.8765008e-05, 2.2043195e-05, | ||
637 | 559 | # 8.1072382e-06, 2.3064166e-06, 4.7120345e-07, 6.1862016e-08, | ||
638 | 560 | # 4.3153587e-09, 9.8155908e-11, 5.5917625e-13, 7.2313499e-23/ | ||
639 | 561 | data (gridv(iny, 4),iny=1,32)/ | ||
640 | 562 | # 3.1188696e-02, 2.3420186e-02, 1.7702079e-02, 1.3467734e-02, | ||
641 | 563 | # 1.0309782e-02, 7.9318460e-03, 6.1325773e-03, 4.7646388e-03, | ||
642 | 564 | # 3.7215358e-03, 2.9251760e-03, 2.3161962e-03, 1.8496758e-03, | ||
643 | 565 | # 1.4912341e-03, 1.2139639e-03, 9.9569551e-04, 8.1869337e-04, | ||
644 | 566 | # 6.6868465e-04, 5.3525022e-04, 4.1252936e-04, 2.9977979e-04, | ||
645 | 567 | # 2.0061564e-04, 1.2049765e-04, 6.3112103e-05, 2.7890159e-05, | ||
646 | 568 | # 1.0000143e-05, 2.7633522e-06, 5.4561380e-07, 6.8754820e-08, | ||
647 | 569 | # 4.5477918e-09, 9.5512862e-11, 4.0175364e-13, 6.6363321e-23/ | ||
648 | 570 | data (gridv(iny, 5),iny=1,32)/ | ||
649 | 571 | # 5.1182299e-02, 3.7889407e-02, 2.8215137e-02, 2.1136435e-02, | ||
650 | 572 | # 1.5925131e-02, 1.2054633e-02, 9.1677464e-03, 7.0050385e-03, | ||
651 | 573 | # 5.3803216e-03, 4.1584009e-03, 3.2378903e-03, 2.5431829e-03, | ||
652 | 574 | # 2.0176932e-03, 1.6173071e-03, 1.3073170e-03, 1.0602661e-03, | ||
653 | 575 | # 8.5475523e-04, 6.7549247e-04, 5.1388835e-04, 3.6836179e-04, | ||
654 | 576 | # 2.4290493e-04, 1.4356363e-04, 7.3865824e-05, 3.2002011e-05, | ||
655 | 577 | # 1.1221536e-05, 3.0227536e-06, 5.7924224e-07, 7.0416470e-08, | ||
656 | 578 | # 4.4455239e-09, 8.7027993e-11, 2.5174163e-13, 5.7249565e-23/ | ||
657 | 579 | data (gridv(iny, 6),iny=1,32)/ | ||
658 | 580 | # 7.6557895e-02, 5.5955076e-02, 4.1120172e-02, 3.0385490e-02, | ||
659 | 581 | # 2.2576036e-02, 1.6847439e-02, 1.2629288e-02, 9.5105660e-03, | ||
660 | 582 | # 7.1985244e-03, 5.4827229e-03, 4.2072308e-03, 3.2573133e-03, | ||
661 | 583 | # 2.5483598e-03, 2.0155007e-03, 1.6086767e-03, 1.2891809e-03, | ||
662 | 584 | # 1.0274915e-03, 8.0291084e-04, 6.0382880e-04, 4.2759547e-04, | ||
663 | 585 | # 2.7827791e-04, 1.6211285e-04, 8.2090171e-05, 3.4938634e-05, | ||
664 | 586 | # 1.2008139e-05, 3.1607346e-06, 5.8901727e-07, 6.9129330e-08, | ||
665 | 587 | # 4.1796650e-09, 7.6790396e-11, 1.4801921e-13, 4.8386670e-23/ | ||
666 | 588 | data (gridv(iny, 7),iny=1,32)/ | ||
667 | 589 | # 1.0885701e-01, 7.8595632e-02, 5.7044003e-02, 4.1606207e-02, | ||
668 | 590 | # 3.0510595e-02, 2.2464186e-02, 1.6611725e-02, 1.2338586e-02, | ||
669 | 591 | # 9.2105421e-03, 6.9185264e-03, 5.2361582e-03, 3.9989670e-03, | ||
670 | 592 | # 3.0873318e-03, 2.4109199e-03, 1.9013023e-03, 1.5064199e-03, | ||
671 | 593 | # 1.1876339e-03, 9.1812852e-04, 6.8290918e-04, 4.7797892e-04, | ||
672 | 594 | # 3.0715516e-04, 1.7645732e-04, 8.7991353e-05, 3.6807315e-05, | ||
673 | 595 | # 1.2399813e-05, 3.1850040e-06, 5.7189229e-07, 6.3166456e-08, | ||
674 | 596 | # 3.5998373e-09, 6.0994275e-11, 1.0798487e-13, 3.7970497e-23/ | ||
675 | 597 | data (gridv(iny, 8),iny=1,32)/ | ||
676 | 598 | # 1.5068353e-01, 1.0749621e-01, 7.7041842e-02, 5.5476031e-02, | ||
677 | 599 | # 4.0143008e-02, 2.9160969e-02, 2.1271437e-02, 1.5583408e-02, | ||
678 | 600 | # 1.1472391e-02, 8.4985083e-03, 6.3433700e-03, 4.7785683e-03, | ||
679 | 601 | # 3.6402566e-03, 2.8065350e-03, 2.1865589e-03, 1.7127763e-03, | ||
680 | 602 | # 1.3356279e-03, 1.0214490e-03, 7.5140048e-04, 5.1978083e-04, | ||
681 | 603 | # 3.2977123e-04, 1.8681197e-04, 9.1728471e-05, 3.7697570e-05, | ||
682 | 604 | # 1.2430821e-05, 3.1016518e-06, 5.2367878e-07, 5.0603141e-08, | ||
683 | 605 | # 2.5423963e-09, 3.4635376e-11, 4.1186342e-14, 2.0657555e-23/ | ||
684 | 606 | data firsttime/.true./ | ||
685 | 607 | save | ||
686 | 608 | if(firsttime)then | ||
687 | 609 | firsttime=.false. | ||
688 | 610 | nent(1)=nny | ||
689 | 611 | nent(2)=nnz | ||
690 | 612 | do iny=1,nny | ||
691 | 613 | ent(iny)=(yv(iny)) | ||
692 | 614 | enddo | ||
693 | 615 | do inz=1,nnz | ||
694 | 616 | ent(nny+inz)=(zv(inz)) | ||
695 | 617 | enddo | ||
696 | 618 | endif | ||
697 | 619 | arg(1)=(y) | ||
698 | 620 | arg(2)=(z) | ||
699 | 621 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
700 | 622 | ewa_wp_p_1m=tmp | ||
701 | 623 | return | ||
702 | 624 | end | ||
703 | 625 | function ewa_wp_p_0(y,z) | ||
704 | 626 | implicit none | ||
705 | 627 | real*8 ewa_wp_p_0,y,z | ||
706 | 628 | integer narg,nny,nnz | ||
707 | 629 | parameter (narg=2) | ||
708 | 630 | parameter (nny=32) | ||
709 | 631 | parameter (nnz=8) | ||
710 | 632 | integer iny,inz,nent(narg) | ||
711 | 633 | real*8 tmp,dfint,ymap,zmap | ||
712 | 634 | real*8 arg(narg),ent(nny+nnz) | ||
713 | 635 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
714 | 636 | logical firsttime | ||
715 | 637 | external dfint,ymap,zmap | ||
716 | 638 | data yv/ | ||
717 | 639 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
718 | 640 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
719 | 641 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
720 | 642 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
721 | 643 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
722 | 644 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
723 | 645 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
724 | 646 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
725 | 647 | data zv/ | ||
726 | 648 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
727 | 649 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
728 | 650 | data (gridv(iny, 1),iny=1,32)/ | ||
729 | 651 | # 3.5187008e-03, 2.8034859e-03, 2.2605790e-03, 1.8430659e-03, | ||
730 | 652 | # 1.5186478e-03, 1.2616393e-03, 1.0560624e-03, 8.9012320e-04, | ||
731 | 653 | # 7.5538508e-04, 6.4582892e-04, 5.5671967e-04, 4.8420795e-04, | ||
732 | 654 | # 4.2519673e-04, 3.7700036e-04, 3.3717825e-04, 3.0339543e-04, | ||
733 | 655 | # 2.7329402e-04, 2.4447706e-04, 2.1469168e-04, 1.8222898e-04, | ||
734 | 656 | # 1.4664818e-04, 1.0943422e-04, 7.3828376e-05, 4.3723959e-05, | ||
735 | 657 | # 2.1983802e-05, 9.0102753e-06, 2.8448697e-06, 6.3299117e-07, | ||
736 | 658 | # 8.7487931e-08, 5.2831049e-09, 1.1568847e-10, 1.8415286e-15/ | ||
737 | 659 | data (gridv(iny, 2),iny=1,32)/ | ||
738 | 660 | # 5.2548138e-03, 4.0999760e-03, 3.2295174e-03, 2.5667153e-03, | ||
739 | 661 | # 2.0584664e-03, 1.6625476e-03, 1.3517402e-03, 1.1060358e-03, | ||
740 | 662 | # 9.1078460e-04, 7.5538896e-04, 6.3160108e-04, 5.3288902e-04, | ||
741 | 663 | # 4.5415547e-04, 3.9119341e-04, 3.4038971e-04, 2.9850573e-04, | ||
742 | 664 | # 2.6252377e-04, 2.2960220e-04, 1.9724634e-04, 1.6373150e-04, | ||
743 | 665 | # 1.2870167e-04, 9.3622734e-05, 6.1405954e-05, 3.5240336e-05, | ||
744 | 666 | # 1.7102418e-05, 6.7317976e-06, 2.0267789e-06, 4.2595999e-07, | ||
745 | 667 | # 5.4725748e-08, 2.9719851e-09, 4.8981810e-11, 9.4455659e-16/ | ||
746 | 668 | data (gridv(iny, 3),iny=1,32)/ | ||
747 | 669 | # 7.1876070e-03, 5.5076672e-03, 4.2546965e-03, 3.3120537e-03, | ||
748 | 670 | # 2.5990113e-03, 2.0524391e-03, 1.6307512e-03, 1.3034276e-03, | ||
749 | 671 | # 1.0481689e-03, 8.4882548e-04, 6.9291048e-04, 5.7083971e-04, | ||
750 | 672 | # 4.7522642e-04, 4.0016654e-04, 3.4076979e-04, 2.9285118e-04, | ||
751 | 673 | # 2.5271536e-04, 2.1707747e-04, 1.8321030e-04, 1.4933939e-04, | ||
752 | 674 | # 1.1513883e-04, 8.2005502e-05, 5.2541044e-05, 2.9373325e-05, | ||
753 | 675 | # 1.3840817e-05, 5.2672006e-06, 1.5241105e-06, 3.0542392e-07, | ||
754 | 676 | # 3.6915891e-08, 1.8347912e-09, 2.2114402e-11, 5.3685066e-16/ | ||
755 | 677 | data (gridv(iny, 4),iny=1,32)/ | ||
756 | 678 | # 9.2731430e-03, 6.9948236e-03, 5.3144732e-03, 4.0652903e-03, | ||
757 | 679 | # 3.1328132e-03, 2.4282484e-03, 1.8929862e-03, 1.4841263e-03, | ||
758 | 680 | # 1.1704474e-03, 9.2943341e-04, 7.4399977e-04, 6.0109301e-04, | ||
759 | 681 | # 4.9092271e-04, 4.0580385e-04, 3.3953903e-04, 2.8700023e-04, | ||
760 | 682 | # 2.4383801e-04, 2.0634913e-04, 1.7159359e-04, 1.3773971e-04, | ||
761 | 683 | # 1.0446314e-04, 7.3071554e-05, 4.5887405e-05, 2.5084061e-05, | ||
762 | 684 | # 1.1524443e-05, 4.2604502e-06, 1.1914778e-06, 2.2920043e-07, | ||
763 | 685 | # 2.6286612e-08, 1.2107299e-09, 1.0080946e-11, 3.2845426e-16/ | ||
764 | 686 | data (gridv(iny, 5),iny=1,32)/ | ||
765 | 687 | # 1.1477138e-02, 8.5381747e-03, 6.3939961e-03, 4.8178867e-03, | ||
766 | 688 | # 3.6556258e-03, 2.7887348e-03, 2.1392407e-03, 1.6500181e-03, | ||
767 | 689 | # 1.2800074e-03, 9.9975891e-04, 7.8717888e-04, 6.2562654e-04, | ||
768 | 690 | # 5.0280633e-04, 4.0921770e-04, 3.3736136e-04, 2.8121172e-04, | ||
769 | 691 | # 2.3579394e-04, 1.9702349e-04, 1.6176823e-04, 1.2814066e-04, | ||
770 | 692 | # 9.5802895e-05, 6.5966820e-05, 4.0705648e-05, 2.1818543e-05, | ||
771 | 693 | # 9.8043554e-06, 3.5336308e-06, 9.5911504e-07, 1.7800578e-07, | ||
772 | 694 | # 1.9496528e-08, 8.4002050e-10, 4.3204403e-12, 2.1251138e-16/ | ||
773 | 695 | data (gridv(iny, 6),iny=1,32)/ | ||
774 | 696 | # 1.3802612e-02, 1.0141026e-02, 7.4971127e-03, 5.5741476e-03, | ||
775 | 697 | # 4.1720271e-03, 3.1386776e-03, 2.3737894e-03, 1.8049673e-03, | ||
776 | 698 | # 1.3802137e-03, 1.0625971e-03, 8.2471236e-04, 6.4617450e-04, | ||
777 | 699 | # 5.1210721e-04, 4.1120934e-04, 3.3467950e-04, 2.7561780e-04, | ||
778 | 700 | # 2.2846603e-04, 1.8878732e-04, 1.5327653e-04, 1.1999194e-04, | ||
779 | 701 | # 8.8573452e-05, 6.0136140e-05, 3.6529669e-05, 1.9238247e-05, | ||
780 | 702 | # 8.4746327e-06, 2.9853000e-06, 7.8837418e-07, 1.4128313e-07, | ||
781 | 703 | # 1.4820095e-08, 6.0070190e-10, 1.7185758e-12, 1.4369011e-16/ | ||
782 | 704 | data (gridv(iny, 7),iny=1,32)/ | ||
783 | 705 | # 1.6432308e-02, 1.1930946e-02, 8.7133575e-03, 6.3970356e-03, | ||
784 | 706 | # 4.7264435e-03, 3.5091707e-03, 2.6187361e-03, 1.9645111e-03, | ||
785 | 707 | # 1.4819077e-03, 1.1254264e-03, 8.6166780e-04, 6.6606423e-04, | ||
786 | 708 | # 5.2091794e-04, 4.1296488e-04, 3.3203523e-04, 2.7031018e-04, | ||
787 | 709 | # 2.2163224e-04, 1.8120725e-04, 1.4555330e-04, 1.1266604e-04, | ||
788 | 710 | # 8.2152609e-05, 5.5024591e-05, 3.2922540e-05, 1.7044970e-05, | ||
789 | 711 | # 7.3639505e-06, 2.5349841e-06, 6.4817141e-07, 1.0938699e-07, | ||
790 | 712 | # 1.0789142e-08, 4.0267815e-10, 9.9738412e-13, 9.3965182e-17/ | ||
791 | 713 | data (gridv(iny, 8),iny=1,32)/ | ||
792 | 714 | # 1.9588443e-02, 1.4054534e-02, 1.0140342e-02, 7.3511754e-03, | ||
793 | 715 | # 5.3617513e-03, 3.9285711e-03, 2.8927241e-03, 2.1409034e-03, | ||
794 | 716 | # 1.5930991e-03, 1.1934393e-03, 9.0134688e-04, 6.8734040e-04, | ||
795 | 717 | # 5.3043871e-04, 4.1513075e-04, 3.2970284e-04, 2.6531895e-04, | ||
796 | 718 | # 2.1516289e-04, 1.7405250e-04, 1.3830950e-04, 1.0585100e-04, | ||
797 | 719 | # 7.6238215e-05, 5.0368640e-05, 2.9681423e-05, 1.5103253e-05, | ||
798 | 720 | # 6.3960840e-06, 2.1473293e-06, 5.2444493e-07, 7.7848289e-08, | ||
799 | 721 | # 6.7448840e-09, 2.0379331e-10, 2.3209743e-13, 4.3818080e-17/ | ||
800 | 722 | data firsttime/.true./ | ||
801 | 723 | save | ||
802 | 724 | if(firsttime)then | ||
803 | 725 | firsttime=.false. | ||
804 | 726 | nent(1)=nny | ||
805 | 727 | nent(2)=nnz | ||
806 | 728 | do iny=1,nny | ||
807 | 729 | ent(iny)=(yv(iny)) | ||
808 | 730 | enddo | ||
809 | 731 | do inz=1,nnz | ||
810 | 732 | ent(nny+inz)=(zv(inz)) | ||
811 | 733 | enddo | ||
812 | 734 | endif | ||
813 | 735 | arg(1)=(y) | ||
814 | 736 | arg(2)=(z) | ||
815 | 737 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
816 | 738 | ewa_wp_p_0=tmp | ||
817 | 739 | return | ||
818 | 740 | end | ||
819 | 741 | function ewa_wm_p(x,Q2,pol) | ||
820 | 742 | implicit none | ||
821 | 743 | real*8 ewa_wm_p | ||
822 | 744 | real*8 x,Q2 | ||
823 | 745 | integer pol | ||
824 | 746 | real*8 tmp | ||
825 | 747 | real*8 y,z | ||
826 | 748 | real*8 ylow,yupp,zlow,zupp | ||
827 | 749 | parameter (ylow=-16.1181,yupp=-1e-07) | ||
828 | 750 | parameter (zlow=4.38683,zupp=13.8155) | ||
829 | 751 | real*8 ewa_wm_p_1p | ||
830 | 752 | real*8 ewa_wm_p_1m | ||
831 | 753 | real*8 ewa_wm_p_0 | ||
832 | 754 | y=log(x) | ||
833 | 755 | z=0.5*log(Q2) | ||
834 | 756 | if(pol.eq.1)then | ||
835 | 757 | tmp=ewa_wm_p_1p(y,z) | ||
836 | 758 | else if(pol.eq.-1)then | ||
837 | 759 | tmp=ewa_wm_p_1m(y,z) | ||
838 | 760 | else | ||
839 | 761 | tmp=ewa_wm_p_0(y,z) | ||
840 | 762 | endif | ||
841 | 763 | ewa_wm_p=tmp/x*y*y | ||
842 | 764 | end | ||
843 | 765 | function ewa_wm_p_1p(y,z) | ||
844 | 766 | implicit none | ||
845 | 767 | real*8 ewa_wm_p_1p,y,z | ||
846 | 768 | integer narg,nny,nnz | ||
847 | 769 | parameter (narg=2) | ||
848 | 770 | parameter (nny=32) | ||
849 | 771 | parameter (nnz=8) | ||
850 | 772 | integer iny,inz,nent(narg) | ||
851 | 773 | real*8 tmp,dfint,ymap,zmap | ||
852 | 774 | real*8 arg(narg),ent(nny+nnz) | ||
853 | 775 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
854 | 776 | logical firsttime | ||
855 | 777 | external dfint,ymap,zmap | ||
856 | 778 | data yv/ | ||
857 | 779 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
858 | 780 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
859 | 781 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
860 | 782 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
861 | 783 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
862 | 784 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
863 | 785 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
864 | 786 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
865 | 787 | data zv/ | ||
866 | 788 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
867 | 789 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
868 | 790 | data (gridv(iny, 1),iny=1,32)/ | ||
869 | 791 | # 3.5423305e-07, 2.8295336e-07, 2.2903220e-07, 1.8758200e-07, | ||
870 | 792 | # 1.5559163e-07, 1.3038773e-07, 1.1025515e-07, 9.4027921e-08, | ||
871 | 793 | # 8.0829168e-08, 7.0061706e-08, 6.1294211e-08, 5.4182560e-08, | ||
872 | 794 | # 4.8450890e-08, 4.3888687e-08, 4.0319491e-08, 3.7580596e-08, | ||
873 | 795 | # 3.5520713e-08, 3.3952301e-08, 3.2625426e-08, 3.1187707e-08, | ||
874 | 796 | # 2.9181849e-08, 2.6154236e-08, 2.1900372e-08, 1.6640020e-08, | ||
875 | 797 | # 1.1099066e-08, 6.2780040e-09, 2.8842540e-09, 1.0025616e-09, | ||
876 | 798 | # 2.4219639e-10, 3.2430180e-11, 1.7122412e-12, 4.1237372e-12/ | ||
877 | 799 | data (gridv(iny, 2),iny=1,32)/ | ||
878 | 800 | # 9.6800285e-03, 7.5895745e-03, 6.0144129e-03, 4.8116391e-03, | ||
879 | 801 | # 3.8906828e-03, 3.1743361e-03, 2.6106310e-03, 2.1637757e-03, | ||
880 | 802 | # 1.8068388e-03, 1.5208169e-03, 1.2917371e-03, 1.1084546e-03, | ||
881 | 803 | # 9.6221855e-04, 8.4652524e-04, 7.5595982e-04, 6.8586986e-04, | ||
882 | 804 | # 6.3206533e-04, 5.8999236e-04, 5.5430903e-04, 5.1815672e-04, | ||
883 | 805 | # 4.7362998e-04, 4.1384517e-04, 3.3686600e-04, 2.4790947e-04, | ||
884 | 806 | # 1.5951917e-04, 8.6605399e-05, 3.7927081e-05, 1.2444648e-05, | ||
885 | 807 | # 2.7972986e-06, 3.3735215e-07, 1.3499999e-08, 3.8170248e-08/ | ||
886 | 808 | data (gridv(iny, 3),iny=1,32)/ | ||
887 | 809 | # 2.6802909e-02, 2.0666858e-02, 1.6084293e-02, 1.2619023e-02, | ||
888 | 810 | # 9.9957736e-03, 7.9819494e-03, 6.4206742e-03, 5.2026236e-03, | ||
889 | 811 | # 4.2458765e-03, 3.4918949e-03, 2.8976082e-03, 2.4290655e-03, | ||
890 | 812 | # 2.0601111e-03, 1.7714145e-03, 1.5472491e-03, 1.3744754e-03, | ||
891 | 813 | # 1.2417664e-03, 1.1376810e-03, 1.0498817e-03, 9.6384193e-04, | ||
892 | 814 | # 8.6434504e-04, 7.3958460e-04, 5.8805171e-04, 4.2143198e-04, | ||
893 | 815 | # 2.6317925e-04, 1.3808501e-04, 5.8100243e-05, 1.8168748e-05, | ||
894 | 816 | # 3.8451248e-06, 4.2503569e-07, 1.2748665e-08, 4.3387870e-08/ | ||
895 | 817 | data (gridv(iny, 4),iny=1,32)/ | ||
896 | 818 | # 5.2421053e-02, 3.9824965e-02, 3.0512558e-02, 2.3545386e-02, | ||
897 | 819 | # 1.8330098e-02, 1.4377269e-02, 1.1354532e-02, 9.0302263e-03, | ||
898 | 820 | # 7.2316381e-03, 5.8351965e-03, 4.7504014e-03, 3.9068753e-03, | ||
899 | 821 | # 3.2509450e-03, 2.7436667e-03, 2.3536072e-03, 2.0551591e-03, | ||
900 | 822 | # 1.8269264e-03, 1.6483845e-03, 1.4987780e-03, 1.3553122e-03, | ||
901 | 823 | # 1.1959351e-03, 1.0052207e-03, 7.8338419e-04, 5.4881055e-04, | ||
902 | 824 | # 3.3404786e-04, 1.7020660e-04, 6.9197187e-05, 2.0763953e-05, | ||
903 | 825 | # 4.1724093e-06, 4.2803444e-07, 9.3531305e-09, 3.9817765e-08/ | ||
904 | 826 | data (gridv(iny, 5),iny=1,32)/ | ||
905 | 827 | # 8.7314473e-02, 6.5462234e-02, 4.9470387e-02, 3.7629031e-02, | ||
906 | 828 | # 2.8860417e-02, 2.2292410e-02, 1.7332180e-02, 1.3567321e-02, | ||
907 | 829 | # 1.0692431e-02, 8.4897045e-03, 6.8007137e-03, 5.5036549e-03, | ||
908 | 830 | # 4.5068644e-03, 3.7444546e-03, 3.1638216e-03, 2.7231011e-03, | ||
909 | 831 | # 2.3880260e-03, 2.1270240e-03, 1.9097372e-03, 1.7046592e-03, | ||
910 | 832 | # 1.4833082e-03, 1.2275453e-03, 9.4002916e-04, 6.4560015e-04, | ||
911 | 833 | # 3.8423698e-04, 1.9081605e-04, 7.5273640e-05, 2.1785061e-05, | ||
912 | 834 | # 4.1829038e-06, 4.0198589e-07, 6.0711799e-09, 3.4349528e-08/ | ||
913 | 835 | data (gridv(iny, 6),iny=1,32)/ | ||
914 | 836 | # 1.3235511e-01, 9.8047579e-02, 7.3187600e-02, 5.4960335e-02, | ||
915 | 837 | # 4.1600160e-02, 3.1701979e-02, 2.4311750e-02, 1.8768166e-02, | ||
916 | 838 | # 1.4585527e-02, 1.1418854e-02, 9.0192598e-03, 7.1973844e-03, | ||
917 | 839 | # 5.8123298e-03, 4.7637364e-03, 3.9726338e-03, 3.3768371e-03, | ||
918 | 840 | # 2.9266403e-03, 2.5776574e-03, 2.2889023e-03, 2.0198147e-03, | ||
919 | 841 | # 1.7358250e-03, 1.4167343e-03, 1.0680290e-03, 7.2056798e-04, | ||
920 | 842 | # 4.2032019e-04, 2.0398263e-04, 7.8308169e-05, 2.1899198e-05, | ||
921 | 843 | # 4.0241531e-06, 3.6414048e-07, 3.7675413e-09, 2.9031813e-08/ | ||
922 | 844 | data (gridv(iny, 7),iny=1,32)/ | ||
923 | 845 | # 1.9057983e-01, 1.3957407e-01, 1.0297250e-01, 7.6391524e-02, | ||
924 | 846 | # 5.7105084e-02, 4.2965226e-02, 3.2523923e-02, 2.4779895e-02, | ||
925 | 847 | # 1.9003972e-02, 1.4680964e-02, 1.1442346e-02, 9.0104755e-03, | ||
926 | 848 | # 7.1810453e-03, 5.8100245e-03, 4.7852651e-03, 4.0196945e-03, | ||
927 | 849 | # 3.4450331e-03, 3.0020034e-03, 2.6377816e-03, 2.3022876e-03, | ||
928 | 850 | # 1.9551214e-03, 1.5745712e-03, 1.1692227e-03, 7.7537535e-04, | ||
929 | 851 | # 4.4359770e-04, 2.1050710e-04, 7.8557363e-05, 2.0871834e-05, | ||
930 | 852 | # 3.5743974e-06, 2.9762988e-07, 2.7844229e-09, 2.2782149e-08/ | ||
931 | 853 | data (gridv(iny, 8),iny=1,32)/ | ||
932 | 854 | # 2.6712405e-01, 1.9341146e-01, 1.4102973e-01, 1.0336364e-01, | ||
933 | 855 | # 7.6305708e-02, 5.6682239e-02, 4.2352056e-02, 3.1846115e-02, | ||
934 | 856 | # 2.4101065e-02, 1.8371384e-02, 1.4128575e-02, 1.0978416e-02, | ||
935 | 857 | # 8.6341061e-03, 6.8955860e-03, 5.6086588e-03, 4.6555113e-03, | ||
936 | 858 | # 3.9452818e-03, 3.4012072e-03, 2.9571084e-03, 2.5527100e-03, | ||
937 | 859 | # 2.1419401e-03, 1.7020208e-03, 1.2447953e-03, 8.1123628e-04, | ||
938 | 860 | # 4.5515586e-04, 2.1111600e-04, 7.6224092e-05, 1.8396998e-05, | ||
939 | 861 | # 2.7018652e-06, 1.8403044e-07, 1.1449565e-09, 1.2394449e-08/ | ||
940 | 862 | data firsttime/.true./ | ||
941 | 863 | save | ||
942 | 864 | if(firsttime)then | ||
943 | 865 | firsttime=.false. | ||
944 | 866 | nent(1)=nny | ||
945 | 867 | nent(2)=nnz | ||
946 | 868 | do iny=1,nny | ||
947 | 869 | ent(iny)=(yv(iny)) | ||
948 | 870 | enddo | ||
949 | 871 | do inz=1,nnz | ||
950 | 872 | ent(nny+inz)=(zv(inz)) | ||
951 | 873 | enddo | ||
952 | 874 | endif | ||
953 | 875 | arg(1)=(y) | ||
954 | 876 | arg(2)=(z) | ||
955 | 877 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
956 | 878 | ewa_wm_p_1p=tmp | ||
957 | 879 | return | ||
958 | 880 | end | ||
959 | 881 | function ewa_wm_p_1m(y,z) | ||
960 | 882 | implicit none | ||
961 | 883 | real*8 ewa_wm_p_1m,y,z | ||
962 | 884 | integer narg,nny,nnz | ||
963 | 885 | parameter (narg=2) | ||
964 | 886 | parameter (nny=32) | ||
965 | 887 | parameter (nnz=8) | ||
966 | 888 | integer iny,inz,nent(narg) | ||
967 | 889 | real*8 tmp,dfint,ymap,zmap | ||
968 | 890 | real*8 arg(narg),ent(nny+nnz) | ||
969 | 891 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
970 | 892 | logical firsttime | ||
971 | 893 | external dfint,ymap,zmap | ||
972 | 894 | data yv/ | ||
973 | 895 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
974 | 896 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
975 | 897 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
976 | 898 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
977 | 899 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
978 | 900 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
979 | 901 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
980 | 902 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
981 | 903 | data zv/ | ||
982 | 904 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
983 | 905 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
984 | 906 | data (gridv(iny, 1),iny=1,32)/ | ||
985 | 907 | # 2.2352243e-07, 1.7777182e-07, 1.4298652e-07, 1.1622085e-07, | ||
986 | 908 | # 9.5328508e-08, 7.8759840e-08, 6.5499586e-08, 5.4802442e-08, | ||
987 | 909 | # 4.6136489e-08, 3.9104599e-08, 3.3386967e-08, 2.8725277e-08, | ||
988 | 910 | # 2.4905274e-08, 2.1731925e-08, 1.9030359e-08, 1.6631364e-08, | ||
989 | 911 | # 1.4386235e-08, 1.2169804e-08, 9.9111740e-09, 7.6254325e-09, | ||
990 | 912 | # 5.4230477e-09, 3.4799784e-09, 1.9601523e-09, 9.3903981e-10, | ||
991 | 913 | # 3.6862928e-10, 1.1297902e-10, 2.5188758e-11, 3.6724956e-12, | ||
992 | 914 | # 2.9351639e-13, 8.1701272e-15, 7.6912480e-17, 6.8729255e-27/ | ||
993 | 915 | data (gridv(iny, 2),iny=1,32)/ | ||
994 | 916 | # 5.9726888e-03, 4.6455606e-03, 3.6455128e-03, 2.8853282e-03, | ||
995 | 917 | # 2.3012642e-03, 1.8468005e-03, 1.4906859e-03, 1.2098779e-03, | ||
996 | 918 | # 9.8764085e-04, 8.1150430e-04, 6.7166904e-04, 5.6040282e-04, | ||
997 | 919 | # 4.7152850e-04, 3.9983688e-04, 3.4081959e-04, 2.9051542e-04, | ||
998 | 920 | # 2.4549043e-04, 2.0307075e-04, 1.6177240e-04, 1.2167096e-04, | ||
999 | 921 | # 8.4473943e-05, 5.2813192e-05, 2.8909650e-05, 1.3417511e-05, | ||
1000 | 922 | # 5.0832560e-06, 1.4959648e-06, 3.1801753e-07, 4.3791104e-08, | ||
1001 | 923 | # 3.2498348e-09, 8.1063886e-11, 6.0039546e-13, 6.3617388e-23/ | ||
1002 | 924 | data (gridv(iny, 3),iny=1,32)/ | ||
1003 | 925 | # 1.6219214e-02, 1.2379365e-02, 9.5193091e-03, 7.3739795e-03, | ||
1004 | 926 | # 5.7510065e-03, 4.5098861e-03, 3.5553416e-03, 2.8172455e-03, | ||
1005 | 927 | # 2.2446775e-03, 1.7999287e-03, 1.4539007e-03, 1.1841462e-03, | ||
1006 | 928 | # 9.7322588e-04, 8.0691077e-04, 6.7339686e-04, 5.6275965e-04, | ||
1007 | 929 | # 4.6677178e-04, 3.7925827e-04, 2.9674760e-04, 2.1907115e-04, | ||
1008 | 930 | # 1.4910620e-04, 9.1228668e-05, 4.8765008e-05, 2.2043195e-05, | ||
1009 | 931 | # 8.1072382e-06, 2.3064166e-06, 4.7120345e-07, 6.1862016e-08, | ||
1010 | 932 | # 4.3153587e-09, 9.8155908e-11, 5.5917625e-13, 7.2313499e-23/ | ||
1011 | 933 | data (gridv(iny, 4),iny=1,32)/ | ||
1012 | 934 | # 3.1188696e-02, 2.3420186e-02, 1.7702079e-02, 1.3467734e-02, | ||
1013 | 935 | # 1.0309782e-02, 7.9318460e-03, 6.1325773e-03, 4.7646388e-03, | ||
1014 | 936 | # 3.7215358e-03, 2.9251760e-03, 2.3161962e-03, 1.8496758e-03, | ||
1015 | 937 | # 1.4912341e-03, 1.2139639e-03, 9.9569551e-04, 8.1869337e-04, | ||
1016 | 938 | # 6.6868465e-04, 5.3525022e-04, 4.1252936e-04, 2.9977979e-04, | ||
1017 | 939 | # 2.0061564e-04, 1.2049765e-04, 6.3112103e-05, 2.7890159e-05, | ||
1018 | 940 | # 1.0000143e-05, 2.7633522e-06, 5.4561380e-07, 6.8754820e-08, | ||
1019 | 941 | # 4.5477918e-09, 9.5512862e-11, 4.0175364e-13, 6.6363321e-23/ | ||
1020 | 942 | data (gridv(iny, 5),iny=1,32)/ | ||
1021 | 943 | # 5.1182299e-02, 3.7889407e-02, 2.8215137e-02, 2.1136435e-02, | ||
1022 | 944 | # 1.5925131e-02, 1.2054633e-02, 9.1677464e-03, 7.0050385e-03, | ||
1023 | 945 | # 5.3803216e-03, 4.1584009e-03, 3.2378903e-03, 2.5431829e-03, | ||
1024 | 946 | # 2.0176932e-03, 1.6173071e-03, 1.3073170e-03, 1.0602661e-03, | ||
1025 | 947 | # 8.5475523e-04, 6.7549247e-04, 5.1388835e-04, 3.6836179e-04, | ||
1026 | 948 | # 2.4290493e-04, 1.4356363e-04, 7.3865824e-05, 3.2002011e-05, | ||
1027 | 949 | # 1.1221536e-05, 3.0227536e-06, 5.7924224e-07, 7.0416470e-08, | ||
1028 | 950 | # 4.4455239e-09, 8.7027993e-11, 2.5174163e-13, 5.7249565e-23/ | ||
1029 | 951 | data (gridv(iny, 6),iny=1,32)/ | ||
1030 | 952 | # 7.6557895e-02, 5.5955076e-02, 4.1120172e-02, 3.0385490e-02, | ||
1031 | 953 | # 2.2576036e-02, 1.6847439e-02, 1.2629288e-02, 9.5105660e-03, | ||
1032 | 954 | # 7.1985244e-03, 5.4827229e-03, 4.2072308e-03, 3.2573133e-03, | ||
1033 | 955 | # 2.5483598e-03, 2.0155007e-03, 1.6086767e-03, 1.2891809e-03, | ||
1034 | 956 | # 1.0274915e-03, 8.0291084e-04, 6.0382880e-04, 4.2759547e-04, | ||
1035 | 957 | # 2.7827791e-04, 1.6211285e-04, 8.2090171e-05, 3.4938634e-05, | ||
1036 | 958 | # 1.2008139e-05, 3.1607346e-06, 5.8901727e-07, 6.9129330e-08, | ||
1037 | 959 | # 4.1796650e-09, 7.6790396e-11, 1.4801921e-13, 4.8386670e-23/ | ||
1038 | 960 | data (gridv(iny, 7),iny=1,32)/ | ||
1039 | 961 | # 1.0885701e-01, 7.8595632e-02, 5.7044003e-02, 4.1606207e-02, | ||
1040 | 962 | # 3.0510595e-02, 2.2464186e-02, 1.6611725e-02, 1.2338586e-02, | ||
1041 | 963 | # 9.2105421e-03, 6.9185264e-03, 5.2361582e-03, 3.9989670e-03, | ||
1042 | 964 | # 3.0873318e-03, 2.4109199e-03, 1.9013023e-03, 1.5064199e-03, | ||
1043 | 965 | # 1.1876339e-03, 9.1812852e-04, 6.8290918e-04, 4.7797892e-04, | ||
1044 | 966 | # 3.0715516e-04, 1.7645732e-04, 8.7991353e-05, 3.6807315e-05, | ||
1045 | 967 | # 1.2399813e-05, 3.1850040e-06, 5.7189229e-07, 6.3166456e-08, | ||
1046 | 968 | # 3.5998373e-09, 6.0994275e-11, 1.0798487e-13, 3.7970497e-23/ | ||
1047 | 969 | data (gridv(iny, 8),iny=1,32)/ | ||
1048 | 970 | # 1.5068353e-01, 1.0749621e-01, 7.7041842e-02, 5.5476031e-02, | ||
1049 | 971 | # 4.0143008e-02, 2.9160969e-02, 2.1271437e-02, 1.5583408e-02, | ||
1050 | 972 | # 1.1472391e-02, 8.4985083e-03, 6.3433700e-03, 4.7785683e-03, | ||
1051 | 973 | # 3.6402566e-03, 2.8065350e-03, 2.1865589e-03, 1.7127763e-03, | ||
1052 | 974 | # 1.3356279e-03, 1.0214490e-03, 7.5140048e-04, 5.1978083e-04, | ||
1053 | 975 | # 3.2977123e-04, 1.8681197e-04, 9.1728471e-05, 3.7697570e-05, | ||
1054 | 976 | # 1.2430821e-05, 3.1016518e-06, 5.2367878e-07, 5.0603141e-08, | ||
1055 | 977 | # 2.5423963e-09, 3.4635376e-11, 4.1186342e-14, 2.0657555e-23/ | ||
1056 | 978 | data firsttime/.true./ | ||
1057 | 979 | save | ||
1058 | 980 | if(firsttime)then | ||
1059 | 981 | firsttime=.false. | ||
1060 | 982 | nent(1)=nny | ||
1061 | 983 | nent(2)=nnz | ||
1062 | 984 | do iny=1,nny | ||
1063 | 985 | ent(iny)=(yv(iny)) | ||
1064 | 986 | enddo | ||
1065 | 987 | do inz=1,nnz | ||
1066 | 988 | ent(nny+inz)=(zv(inz)) | ||
1067 | 989 | enddo | ||
1068 | 990 | endif | ||
1069 | 991 | arg(1)=(y) | ||
1070 | 992 | arg(2)=(z) | ||
1071 | 993 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
1072 | 994 | ewa_wm_p_1m=tmp | ||
1073 | 995 | return | ||
1074 | 996 | end | ||
1075 | 997 | function ewa_wm_p_0(y,z) | ||
1076 | 998 | implicit none | ||
1077 | 999 | real*8 ewa_wm_p_0,y,z | ||
1078 | 1000 | integer narg,nny,nnz | ||
1079 | 1001 | parameter (narg=2) | ||
1080 | 1002 | parameter (nny=32) | ||
1081 | 1003 | parameter (nnz=8) | ||
1082 | 1004 | integer iny,inz,nent(narg) | ||
1083 | 1005 | real*8 tmp,dfint,ymap,zmap | ||
1084 | 1006 | real*8 arg(narg),ent(nny+nnz) | ||
1085 | 1007 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
1086 | 1008 | logical firsttime | ||
1087 | 1009 | external dfint,ymap,zmap | ||
1088 | 1010 | data yv/ | ||
1089 | 1011 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
1090 | 1012 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
1091 | 1013 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
1092 | 1014 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
1093 | 1015 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
1094 | 1016 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
1095 | 1017 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
1096 | 1018 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
1097 | 1019 | data zv/ | ||
1098 | 1020 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
1099 | 1021 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
1100 | 1022 | data (gridv(iny, 1),iny=1,32)/ | ||
1101 | 1023 | # 3.5187008e-03, 2.8034859e-03, 2.2605790e-03, 1.8430659e-03, | ||
1102 | 1024 | # 1.5186478e-03, 1.2616393e-03, 1.0560624e-03, 8.9012320e-04, | ||
1103 | 1025 | # 7.5538508e-04, 6.4582892e-04, 5.5671967e-04, 4.8420795e-04, | ||
1104 | 1026 | # 4.2519673e-04, 3.7700036e-04, 3.3717825e-04, 3.0339543e-04, | ||
1105 | 1027 | # 2.7329402e-04, 2.4447706e-04, 2.1469168e-04, 1.8222898e-04, | ||
1106 | 1028 | # 1.4664818e-04, 1.0943422e-04, 7.3828376e-05, 4.3723959e-05, | ||
1107 | 1029 | # 2.1983802e-05, 9.0102753e-06, 2.8448697e-06, 6.3299117e-07, | ||
1108 | 1030 | # 8.7487931e-08, 5.2831049e-09, 1.1568847e-10, 1.8415286e-15/ | ||
1109 | 1031 | data (gridv(iny, 2),iny=1,32)/ | ||
1110 | 1032 | # 5.2548138e-03, 4.0999760e-03, 3.2295174e-03, 2.5667153e-03, | ||
1111 | 1033 | # 2.0584664e-03, 1.6625476e-03, 1.3517402e-03, 1.1060358e-03, | ||
1112 | 1034 | # 9.1078460e-04, 7.5538896e-04, 6.3160108e-04, 5.3288902e-04, | ||
1113 | 1035 | # 4.5415547e-04, 3.9119341e-04, 3.4038971e-04, 2.9850573e-04, | ||
1114 | 1036 | # 2.6252377e-04, 2.2960220e-04, 1.9724634e-04, 1.6373150e-04, | ||
1115 | 1037 | # 1.2870167e-04, 9.3622734e-05, 6.1405954e-05, 3.5240336e-05, | ||
1116 | 1038 | # 1.7102418e-05, 6.7317976e-06, 2.0267789e-06, 4.2595999e-07, | ||
1117 | 1039 | # 5.4725748e-08, 2.9719851e-09, 4.8981810e-11, 9.4455659e-16/ | ||
1118 | 1040 | data (gridv(iny, 3),iny=1,32)/ | ||
1119 | 1041 | # 7.1876070e-03, 5.5076672e-03, 4.2546965e-03, 3.3120537e-03, | ||
1120 | 1042 | # 2.5990113e-03, 2.0524391e-03, 1.6307512e-03, 1.3034276e-03, | ||
1121 | 1043 | # 1.0481689e-03, 8.4882548e-04, 6.9291048e-04, 5.7083971e-04, | ||
1122 | 1044 | # 4.7522642e-04, 4.0016654e-04, 3.4076979e-04, 2.9285118e-04, | ||
1123 | 1045 | # 2.5271536e-04, 2.1707747e-04, 1.8321030e-04, 1.4933939e-04, | ||
1124 | 1046 | # 1.1513883e-04, 8.2005502e-05, 5.2541044e-05, 2.9373325e-05, | ||
1125 | 1047 | # 1.3840817e-05, 5.2672006e-06, 1.5241105e-06, 3.0542392e-07, | ||
1126 | 1048 | # 3.6915891e-08, 1.8347912e-09, 2.2114402e-11, 5.3685066e-16/ | ||
1127 | 1049 | data (gridv(iny, 4),iny=1,32)/ | ||
1128 | 1050 | # 9.2731430e-03, 6.9948236e-03, 5.3144732e-03, 4.0652903e-03, | ||
1129 | 1051 | # 3.1328132e-03, 2.4282484e-03, 1.8929862e-03, 1.4841263e-03, | ||
1130 | 1052 | # 1.1704474e-03, 9.2943341e-04, 7.4399977e-04, 6.0109301e-04, | ||
1131 | 1053 | # 4.9092271e-04, 4.0580385e-04, 3.3953903e-04, 2.8700023e-04, | ||
1132 | 1054 | # 2.4383801e-04, 2.0634913e-04, 1.7159359e-04, 1.3773971e-04, | ||
1133 | 1055 | # 1.0446314e-04, 7.3071554e-05, 4.5887405e-05, 2.5084061e-05, | ||
1134 | 1056 | # 1.1524443e-05, 4.2604502e-06, 1.1914778e-06, 2.2920043e-07, | ||
1135 | 1057 | # 2.6286612e-08, 1.2107299e-09, 1.0080946e-11, 3.2845426e-16/ | ||
1136 | 1058 | data (gridv(iny, 5),iny=1,32)/ | ||
1137 | 1059 | # 1.1477138e-02, 8.5381747e-03, 6.3939961e-03, 4.8178867e-03, | ||
1138 | 1060 | # 3.6556258e-03, 2.7887348e-03, 2.1392407e-03, 1.6500181e-03, | ||
1139 | 1061 | # 1.2800074e-03, 9.9975891e-04, 7.8717888e-04, 6.2562654e-04, | ||
1140 | 1062 | # 5.0280633e-04, 4.0921770e-04, 3.3736136e-04, 2.8121172e-04, | ||
1141 | 1063 | # 2.3579394e-04, 1.9702349e-04, 1.6176823e-04, 1.2814066e-04, | ||
1142 | 1064 | # 9.5802895e-05, 6.5966820e-05, 4.0705648e-05, 2.1818543e-05, | ||
1143 | 1065 | # 9.8043554e-06, 3.5336308e-06, 9.5911504e-07, 1.7800578e-07, | ||
1144 | 1066 | # 1.9496528e-08, 8.4002050e-10, 4.3204403e-12, 2.1251138e-16/ | ||
1145 | 1067 | data (gridv(iny, 6),iny=1,32)/ | ||
1146 | 1068 | # 1.3802612e-02, 1.0141026e-02, 7.4971127e-03, 5.5741476e-03, | ||
1147 | 1069 | # 4.1720271e-03, 3.1386776e-03, 2.3737894e-03, 1.8049673e-03, | ||
1148 | 1070 | # 1.3802137e-03, 1.0625971e-03, 8.2471236e-04, 6.4617450e-04, | ||
1149 | 1071 | # 5.1210721e-04, 4.1120934e-04, 3.3467950e-04, 2.7561780e-04, | ||
1150 | 1072 | # 2.2846603e-04, 1.8878732e-04, 1.5327653e-04, 1.1999194e-04, | ||
1151 | 1073 | # 8.8573452e-05, 6.0136140e-05, 3.6529669e-05, 1.9238247e-05, | ||
1152 | 1074 | # 8.4746327e-06, 2.9853000e-06, 7.8837418e-07, 1.4128313e-07, | ||
1153 | 1075 | # 1.4820095e-08, 6.0070190e-10, 1.7185758e-12, 1.4369011e-16/ | ||
1154 | 1076 | data (gridv(iny, 7),iny=1,32)/ | ||
1155 | 1077 | # 1.6432308e-02, 1.1930946e-02, 8.7133575e-03, 6.3970356e-03, | ||
1156 | 1078 | # 4.7264435e-03, 3.5091707e-03, 2.6187361e-03, 1.9645111e-03, | ||
1157 | 1079 | # 1.4819077e-03, 1.1254264e-03, 8.6166780e-04, 6.6606423e-04, | ||
1158 | 1080 | # 5.2091794e-04, 4.1296488e-04, 3.3203523e-04, 2.7031018e-04, | ||
1159 | 1081 | # 2.2163224e-04, 1.8120725e-04, 1.4555330e-04, 1.1266604e-04, | ||
1160 | 1082 | # 8.2152609e-05, 5.5024591e-05, 3.2922540e-05, 1.7044970e-05, | ||
1161 | 1083 | # 7.3639505e-06, 2.5349841e-06, 6.4817141e-07, 1.0938699e-07, | ||
1162 | 1084 | # 1.0789142e-08, 4.0267815e-10, 9.9738412e-13, 9.3965182e-17/ | ||
1163 | 1085 | data (gridv(iny, 8),iny=1,32)/ | ||
1164 | 1086 | # 1.9588443e-02, 1.4054534e-02, 1.0140342e-02, 7.3511754e-03, | ||
1165 | 1087 | # 5.3617513e-03, 3.9285711e-03, 2.8927241e-03, 2.1409034e-03, | ||
1166 | 1088 | # 1.5930991e-03, 1.1934393e-03, 9.0134688e-04, 6.8734040e-04, | ||
1167 | 1089 | # 5.3043871e-04, 4.1513075e-04, 3.2970284e-04, 2.6531895e-04, | ||
1168 | 1090 | # 2.1516289e-04, 1.7405250e-04, 1.3830950e-04, 1.0585100e-04, | ||
1169 | 1091 | # 7.6238215e-05, 5.0368640e-05, 2.9681423e-05, 1.5103253e-05, | ||
1170 | 1092 | # 6.3960840e-06, 2.1473293e-06, 5.2444493e-07, 7.7848289e-08, | ||
1171 | 1093 | # 6.7448840e-09, 2.0379331e-10, 2.3209743e-13, 4.3818080e-17/ | ||
1172 | 1094 | data firsttime/.true./ | ||
1173 | 1095 | save | ||
1174 | 1096 | if(firsttime)then | ||
1175 | 1097 | firsttime=.false. | ||
1176 | 1098 | nent(1)=nny | ||
1177 | 1099 | nent(2)=nnz | ||
1178 | 1100 | do iny=1,nny | ||
1179 | 1101 | ent(iny)=(yv(iny)) | ||
1180 | 1102 | enddo | ||
1181 | 1103 | do inz=1,nnz | ||
1182 | 1104 | ent(nny+inz)=(zv(inz)) | ||
1183 | 1105 | enddo | ||
1184 | 1106 | endif | ||
1185 | 1107 | arg(1)=(y) | ||
1186 | 1108 | arg(2)=(z) | ||
1187 | 1109 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
1188 | 1110 | ewa_wm_p_0=tmp | ||
1189 | 1111 | return | ||
1190 | 1112 | end | ||
1191 | 1113 | function ewa_z_p(x,Q2,pol) | ||
1192 | 1114 | implicit none | ||
1193 | 1115 | real*8 ewa_z_p | ||
1194 | 1116 | real*8 x,Q2 | ||
1195 | 1117 | integer pol | ||
1196 | 1118 | real*8 tmp | ||
1197 | 1119 | real*8 y,z | ||
1198 | 1120 | real*8 ylow,yupp,zlow,zupp | ||
1199 | 1121 | parameter (ylow=-16.1181,yupp=-1e-07) | ||
1200 | 1122 | parameter (zlow=4.38683,zupp=13.8155) | ||
1201 | 1123 | real*8 ewa_z_p_1p | ||
1202 | 1124 | real*8 ewa_z_p_1m | ||
1203 | 1125 | real*8 ewa_z_p_0 | ||
1204 | 1126 | y=log(x) | ||
1205 | 1127 | z=0.5*log(Q2) | ||
1206 | 1128 | if(pol.eq.1)then | ||
1207 | 1129 | tmp=ewa_z_p_1p(y,z) | ||
1208 | 1130 | else if(pol.eq.-1)then | ||
1209 | 1131 | tmp=ewa_z_p_1m(y,z) | ||
1210 | 1132 | else | ||
1211 | 1133 | tmp=ewa_z_p_0(y,z) | ||
1212 | 1134 | endif | ||
1213 | 1135 | ewa_z_p=tmp/x*y*y | ||
1214 | 1136 | end | ||
1215 | 1137 | function ewa_z_p_1p(y,z) | ||
1216 | 1138 | implicit none | ||
1217 | 1139 | real*8 ewa_z_p_1p,y,z | ||
1218 | 1140 | integer narg,nny,nnz | ||
1219 | 1141 | parameter (narg=2) | ||
1220 | 1142 | parameter (nny=32) | ||
1221 | 1143 | parameter (nnz=8) | ||
1222 | 1144 | integer iny,inz,nent(narg) | ||
1223 | 1145 | real*8 tmp,dfint,ymap,zmap | ||
1224 | 1146 | real*8 arg(narg),ent(nny+nnz) | ||
1225 | 1147 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
1226 | 1148 | logical firsttime | ||
1227 | 1149 | external dfint,ymap,zmap | ||
1228 | 1150 | data yv/ | ||
1229 | 1151 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
1230 | 1152 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
1231 | 1153 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
1232 | 1154 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
1233 | 1155 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
1234 | 1156 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
1235 | 1157 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
1236 | 1158 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
1237 | 1159 | data zv/ | ||
1238 | 1160 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
1239 | 1161 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
1240 | 1162 | data (gridv(iny, 1),iny=1,32)/ | ||
1241 | 1163 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1242 | 1164 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1243 | 1165 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1244 | 1166 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1245 | 1167 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1246 | 1168 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1247 | 1169 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1248 | 1170 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00/ | ||
1249 | 1171 | data (gridv(iny, 2),iny=1,32)/ | ||
1250 | 1172 | # 3.7303045e-03, 2.9227921e-03, 2.3141955e-03, 1.8493581e-03, | ||
1251 | 1173 | # 1.4933843e-03, 1.2162782e-03, 9.9810630e-04, 8.2501787e-04, | ||
1252 | 1174 | # 6.8659282e-04, 5.7544120e-04, 4.8609674e-04, 4.1418784e-04, | ||
1253 | 1175 | # 3.5626496e-04, 3.0973606e-04, 2.7244727e-04, 2.4257706e-04, | ||
1254 | 1176 | # 2.1854792e-04, 1.9876081e-04, 1.8151373e-04, 1.6480475e-04, | ||
1255 | 1177 | # 1.4652391e-04, 1.2495404e-04, 9.9767621e-05, 7.2413235e-05, | ||
1256 | 1178 | # 4.6189116e-05, 2.4986033e-05, 1.0981613e-05, 3.6318686e-06, | ||
1257 | 1179 | # 8.2837802e-07, 1.0232602e-07, 4.9850666e-09, 1.2419766e-08/ | ||
1258 | 1180 | data (gridv(iny, 3),iny=1,32)/ | ||
1259 | 1181 | # 1.0860874e-02, 8.3686491e-03, 6.5072730e-03, 5.1000356e-03, | ||
1260 | 1182 | # 4.0344753e-03, 3.2163074e-03, 2.5819036e-03, 2.0867745e-03, | ||
1261 | 1183 | # 1.6975997e-03, 1.3904974e-03, 1.1478197e-03, 9.5566048e-04, | ||
1262 | 1184 | # 8.0324203e-04, 6.8259459e-04, 5.8722232e-04, 5.1178459e-04, | ||
1263 | 1185 | # 4.5182361e-04, 4.0308935e-04, 3.6137523e-04, 3.2211460e-04, | ||
1264 | 1186 | # 2.8093250e-04, 2.3463440e-04, 1.8303741e-04, 1.2940501e-04, | ||
1265 | 1187 | # 8.0128195e-05, 4.1902153e-05, 1.7698447e-05, 5.5786779e-06, | ||
1266 | 1188 | # 1.1982518e-06, 1.3567906e-07, 5.1862975e-09, 1.4921624e-08/ | ||
1267 | 1189 | data (gridv(iny, 4),iny=1,32)/ | ||
1268 | 1190 | # 2.1582709e-02, 1.6384815e-02, 1.2542453e-02, 9.6686760e-03, | ||
1269 | 1191 | # 7.5174482e-03, 5.8869725e-03, 4.6402349e-03, 3.6814614e-03, | ||
1270 | 1192 | # 2.9392736e-03, 2.3625196e-03, 1.9136197e-03, 1.5633551e-03, | ||
1271 | 1193 | # 1.2894368e-03, 1.0755569e-03, 9.0867962e-04, 7.7828223e-04, | ||
1272 | 1194 | # 6.7581905e-04, 5.9350250e-04, 5.2402918e-04, 4.5996420e-04, | ||
1273 | 1195 | # 3.9470912e-04, 3.2387169e-04, 2.4768512e-04, 1.7121604e-04, | ||
1274 | 1196 | # 1.0335642e-04, 5.2501923e-05, 2.1430744e-05, 6.4822592e-06, | ||
1275 | 1197 | # 1.3222258e-06, 1.3895999e-07, 4.1233808e-09, 1.3983723e-08/ | ||
1276 | 1198 | data (gridv(iny, 5),iny=1,32)/ | ||
1277 | 1199 | # 3.6225205e-02, 2.7139223e-02, 2.0491247e-02, 1.5570792e-02, | ||
1278 | 1200 | # 1.1927494e-02, 9.1990020e-03, 7.1389947e-03, 5.5752406e-03, | ||
1279 | 1201 | # 4.3810786e-03, 3.4655687e-03, 2.7625306e-03, 2.2211128e-03, | ||
1280 | 1202 | # 1.8030325e-03, 1.4806433e-03, 1.2320561e-03, 1.0399620e-03, | ||
1281 | 1203 | # 8.9058578e-04, 7.7179147e-04, 6.7267988e-04, 5.8270496e-04, | ||
1282 | 1204 | # 4.9308080e-04, 3.9840200e-04, 2.9945131e-04, 2.0297089e-04, | ||
1283 | 1205 | # 1.1982930e-04, 5.9340172e-05, 2.3506889e-05, 6.8579981e-06, | ||
1284 | 1206 | # 1.3368364e-06, 1.3162902e-07, 2.9711215e-09, 1.2215759e-08/ | ||
1285 | 1207 | data (gridv(iny, 6),iny=1,32)/ | ||
1286 | 1208 | # 5.5154342e-02, 4.0827860e-02, 3.0449006e-02, 2.2843096e-02, | ||
1287 | 1209 | # 1.7269263e-02, 1.3140804e-02, 1.0059401e-02, 7.7483419e-03, | ||
1288 | 1210 | # 6.0046554e-03, 4.6839966e-03, 3.6820525e-03, 2.9195345e-03, | ||
1289 | 1211 | # 2.3374414e-03, 1.8936267e-03, 1.5550949e-03, 1.2961420e-03, | ||
1290 | 1212 | # 1.0966733e-03, 9.3947224e-04, 8.0960033e-04, 6.9320130e-04, | ||
1291 | 1213 | # 5.7933366e-04, 4.6170562e-04, 3.4169800e-04, 2.2756193e-04, | ||
1292 | 1214 | # 1.3169713e-04, 6.3745564e-05, 2.4577867e-05, 6.9293186e-06, | ||
1293 | 1215 | # 1.2930488e-06, 1.1992460e-07, 2.0948206e-09, 1.0413998e-08/ | ||
1294 | 1216 | data (gridv(iny, 7),iny=1,32)/ | ||
1295 | 1217 | # 7.9641332e-02, 5.8283390e-02, 4.2961224e-02, 3.1840880e-02, | ||
1296 | 1218 | # 2.3773251e-02, 1.7861019e-02, 1.3496990e-02, 1.0261222e-02, | ||
1297 | 1219 | # 7.8482212e-03, 6.0415388e-03, 4.6867971e-03, 3.6676358e-03, | ||
1298 | 1220 | # 2.8981380e-03, 2.3178462e-03, 1.8798546e-03, 1.5481330e-03, | ||
1299 | 1221 | # 1.2949777e-03, 1.0972312e-03, 9.3539626e-04, 7.9205439e-04, | ||
1300 | 1222 | # 6.5410473e-04, 5.1445082e-04, 3.7509234e-04, 2.4557633e-04, | ||
1301 | 1223 | # 1.3941666e-04, 6.6000870e-05, 2.4739779e-05, 6.6282306e-06, | ||
1302 | 1224 | # 1.1538853e-06, 9.8657074e-08, 1.5984130e-09, 8.2433190e-09/ | ||
1303 | 1225 | data (gridv(iny, 8),iny=1,32)/ | ||
1304 | 1226 | # 1.1184163e-01, 8.0917333e-02, 5.8950236e-02, 4.3164542e-02, | ||
1305 | 1227 | # 3.1828151e-02, 2.3609789e-02, 1.7611453e-02, 1.3215123e-02, | ||
1306 | 1228 | # 9.9748771e-03, 7.5776696e-03, 5.8010863e-03, 4.4800093e-03, | ||
1307 | 1229 | # 3.4937519e-03, 2.7582893e-03, 2.2091448e-03, 1.7974773e-03, | ||
1308 | 1230 | # 1.4863368e-03, 1.2455380e-03, 1.0503765e-03, 8.7953603e-04, | ||
1309 | 1231 | # 7.1769738e-04, 5.5700142e-04, 4.0005545e-04, 2.5742663e-04, | ||
1310 | 1232 | # 1.4335613e-04, 6.6352481e-05, 2.4061846e-05, 5.8581041e-06, | ||
1311 | 1233 | # 8.7686172e-07, 6.1694293e-08, 7.6078967e-10, 4.5762876e-09/ | ||
1312 | 1234 | data firsttime/.true./ | ||
1313 | 1235 | save | ||
1314 | 1236 | if(firsttime)then | ||
1315 | 1237 | firsttime=.false. | ||
1316 | 1238 | nent(1)=nny | ||
1317 | 1239 | nent(2)=nnz | ||
1318 | 1240 | do iny=1,nny | ||
1319 | 1241 | ent(iny)=(yv(iny)) | ||
1320 | 1242 | enddo | ||
1321 | 1243 | do inz=1,nnz | ||
1322 | 1244 | ent(nny+inz)=(zv(inz)) | ||
1323 | 1245 | enddo | ||
1324 | 1246 | endif | ||
1325 | 1247 | arg(1)=(y) | ||
1326 | 1248 | arg(2)=(z) | ||
1327 | 1249 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
1328 | 1250 | ewa_z_p_1p=tmp | ||
1329 | 1251 | return | ||
1330 | 1252 | end | ||
1331 | 1253 | function ewa_z_p_1m(y,z) | ||
1332 | 1254 | implicit none | ||
1333 | 1255 | real*8 ewa_z_p_1m,y,z | ||
1334 | 1256 | integer narg,nny,nnz | ||
1335 | 1257 | parameter (narg=2) | ||
1336 | 1258 | parameter (nny=32) | ||
1337 | 1259 | parameter (nnz=8) | ||
1338 | 1260 | integer iny,inz,nent(narg) | ||
1339 | 1261 | real*8 tmp,dfint,ymap,zmap | ||
1340 | 1262 | real*8 arg(narg),ent(nny+nnz) | ||
1341 | 1263 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
1342 | 1264 | logical firsttime | ||
1343 | 1265 | external dfint,ymap,zmap | ||
1344 | 1266 | data yv/ | ||
1345 | 1267 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
1346 | 1268 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
1347 | 1269 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
1348 | 1270 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
1349 | 1271 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
1350 | 1272 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
1351 | 1273 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
1352 | 1274 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
1353 | 1275 | data zv/ | ||
1354 | 1276 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
1355 | 1277 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
1356 | 1278 | data (gridv(iny, 1),iny=1,32)/ | ||
1357 | 1279 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1358 | 1280 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1359 | 1281 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1360 | 1282 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1361 | 1283 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1362 | 1284 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1363 | 1285 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1364 | 1286 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00/ | ||
1365 | 1287 | data (gridv(iny, 2),iny=1,32)/ | ||
1366 | 1288 | # 2.4722465e-03, 1.9238378e-03, 1.5105106e-03, 1.1960749e-03, | ||
1367 | 1289 | # 9.5450636e-04, 7.6644980e-04, 6.1891326e-04, 5.0238454e-04, | ||
1368 | 1290 | # 4.0993066e-04, 3.3642652e-04, 2.7788916e-04, 2.3119738e-04, | ||
1369 | 1291 | # 1.9389505e-04, 1.6397539e-04, 1.3974473e-04, 1.1973970e-04, | ||
1370 | 1292 | # 1.0268876e-04, 8.7531986e-05, 7.3507411e-05, 6.0200203e-05, | ||
1371 | 1293 | # 4.7561978e-05, 3.5825675e-05, 2.5363959e-05, 1.6554077e-05, | ||
1372 | 1294 | # 9.6919422e-06, 4.9066425e-06, 2.0356874e-06, 6.4136541e-07, | ||
1373 | 1295 | # 1.3870147e-07, 1.5934953e-08, 3.8134239e-10, 1.5583767e-09/ | ||
1374 | 1296 | data (gridv(iny, 3),iny=1,32)/ | ||
1375 | 1297 | # 7.0798337e-03, 5.4081649e-03, 4.1625029e-03, 3.2271346e-03, | ||
1376 | 1298 | # 2.5192925e-03, 1.9775657e-03, 1.5603254e-03, 1.2371174e-03, | ||
1377 | 1299 | # 9.8575176e-04, 7.8989545e-04, 6.3703740e-04, 5.1756292e-04, | ||
1378 | 1300 | # 4.2407586e-04, 3.5069124e-04, 2.9260099e-04, 2.4581210e-04, | ||
1379 | 1301 | # 2.0699146e-04, 1.7346123e-04, 1.4331114e-04, 1.1548538e-04, | ||
1380 | 1302 | # 8.9728440e-05, 6.6379120e-05, 4.6055769e-05, 2.9366897e-05, | ||
1381 | 1303 | # 1.6731521e-05, 8.2008648e-06, 3.2726090e-06, 9.8342622e-07, | ||
1382 | 1304 | # 2.0024596e-07, 2.1085367e-08, 3.1115922e-10, 1.8414779e-09/ | ||
1383 | 1305 | data (gridv(iny, 4),iny=1,32)/ | ||
1384 | 1306 | # 1.3868555e-02, 1.0425215e-02, 7.8892735e-03, 6.0089146e-03, | ||
1385 | 1307 | # 4.6057219e-03, 3.5480566e-03, 2.7464613e-03, 2.1359653e-03, | ||
1386 | 1308 | # 1.6689984e-03, 1.3114613e-03, 1.0371878e-03, 8.2648300e-04, | ||
1387 | 1309 | # 6.6446546e-04, 5.3953412e-04, 4.4244464e-04, 3.6574043e-04, | ||
1388 | 1310 | # 3.0339116e-04, 2.5068534e-04, 2.0431482e-04, 1.6241791e-04, | ||
1389 | 1311 | # 1.2441356e-04, 9.0628951e-05, 6.1799132e-05, 3.8623433e-05, | ||
1390 | 1312 | # 2.1495349e-05, 1.0246602e-05, 3.9545153e-06, 1.1410065e-06, | ||
1391 | 1313 | # 2.2060684e-07, 2.1556121e-08, 1.5852146e-10, 1.6987942e-09/ | ||
1392 | 1314 | data (gridv(iny, 5),iny=1,32)/ | ||
1393 | 1315 | # 2.2986936e-02, 1.7037927e-02, 1.2705430e-02, 9.5306823e-03, | ||
1394 | 1316 | # 7.1915567e-03, 5.4521722e-03, 4.1524897e-03, 3.1768102e-03, | ||
1395 | 1317 | # 2.4418608e-03, 1.8873270e-03, 1.4682359e-03, 1.1510039e-03, | ||
1396 | 1318 | # 9.1077042e-04, 7.2826552e-04, 5.8860114e-04, 4.7999193e-04, | ||
1397 | 1319 | # 3.9314928e-04, 3.2098035e-04, 2.5857717e-04, 2.0315066e-04, | ||
1398 | 1320 | # 1.5370454e-04, 1.1046511e-04, 7.4187115e-05, 4.5556559e-05, | ||
1399 | 1321 | # 2.4836768e-05, 1.1553471e-05, 4.3299295e-06, 1.2055759e-06, | ||
1400 | 1322 | # 2.2273199e-07, 2.0385221e-08, 2.5365287e-11, 1.4614457e-09/ | ||
1401 | 1323 | data (gridv(iny, 6),iny=1,32)/ | ||
1402 | 1324 | # 3.4607710e-02, 2.5329231e-02, 1.8643112e-02, 1.3797244e-02, | ||
1403 | 1325 | # 1.0268406e-02, 7.6763540e-03, 5.7640388e-03, 4.3470540e-03, | ||
1404 | 1326 | # 3.2936565e-03, 2.5093254e-03, 1.9243527e-03, 1.4874209e-03, | ||
1405 | 1327 | # 1.1607380e-03, 9.1588915e-04, 7.3097517e-04, 5.8910398e-04, | ||
1406 | 1328 | # 4.7722044e-04, 3.8555267e-04, 3.0742488e-04, 2.3902283e-04, | ||
1407 | 1329 | # 1.7886336e-04, 1.2700213e-04, 8.4135064e-05, 5.0853622e-05, | ||
1408 | 1330 | # 2.7216172e-05, 1.2384960e-05, 4.5198910e-06, 1.2164900e-06, | ||
1409 | 1331 | # 2.1505007e-07, 1.8520572e-08, -5.3697542e-11, 1.2296759e-09/ | ||
1410 | 1332 | data (gridv(iny, 7),iny=1,32)/ | ||
1411 | 1333 | # 4.9445135e-02, 3.5757010e-02, 2.5994493e-02, 1.8993674e-02, | ||
1412 | 1334 | # 1.3952679e-02, 1.0293089e-02, 7.6258392e-03, 5.6738387e-03, | ||
1413 | 1335 | # 4.2408262e-03, 3.1872474e-03, 2.4113098e-03, 1.8389250e-03, | ||
1414 | 1336 | # 1.4163575e-03, 1.1035738e-03, 8.7029523e-04, 6.9356210e-04, | ||
1415 | 1337 | # 5.5597102e-04, 4.4470895e-04, 3.5113742e-04, 2.7029621e-04, | ||
1416 | 1338 | # 2.0013417e-04, 1.4045648e-04, 9.1828197e-05, 5.4657353e-05, | ||
1417 | 1339 | # 2.8729898e-05, 1.2794546e-05, 4.5409281e-06, 1.1613608e-06, | ||
1418 | 1340 | # 1.9109911e-07, 1.5092145e-08, -5.2811872e-11, 9.5507973e-10/ | ||
1419 | 1341 | data (gridv(iny, 8),iny=1,32)/ | ||
1420 | 1342 | # 6.8709761e-02, 4.9096606e-02, 3.5253307e-02, 2.5432125e-02, | ||
1421 | 1343 | # 1.8440272e-02, 1.3424173e-02, 9.8127739e-03, 7.2026791e-03, | ||
1422 | 1344 | # 5.3106334e-03, 3.9371633e-03, 2.9384004e-03, 2.2109274e-03, | ||
1423 | 1345 | # 1.6805250e-03, 1.2928794e-03, 1.0073789e-03, 7.9380317e-04, | ||
1424 | 1346 | # 6.2964750e-04, 4.9861161e-04, 3.8984865e-04, 2.9710009e-04, | ||
1425 | 1347 | # 2.1764892e-04, 1.5095775e-04, 9.7391148e-05, 5.7072702e-05, | ||
1426 | 1348 | # 2.9454329e-05, 1.2827026e-05, 4.4049387e-06, 1.0235568e-06, | ||
1427 | 1349 | # 1.4395353e-07, 9.1928386e-09, -5.1047909e-11, 4.9741292e-10/ | ||
1428 | 1350 | data firsttime/.true./ | ||
1429 | 1351 | save | ||
1430 | 1352 | if(firsttime)then | ||
1431 | 1353 | firsttime=.false. | ||
1432 | 1354 | nent(1)=nny | ||
1433 | 1355 | nent(2)=nnz | ||
1434 | 1356 | do iny=1,nny | ||
1435 | 1357 | ent(iny)=(yv(iny)) | ||
1436 | 1358 | enddo | ||
1437 | 1359 | do inz=1,nnz | ||
1438 | 1360 | ent(nny+inz)=(zv(inz)) | ||
1439 | 1361 | enddo | ||
1440 | 1362 | endif | ||
1441 | 1363 | arg(1)=(y) | ||
1442 | 1364 | arg(2)=(z) | ||
1443 | 1365 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
1444 | 1366 | ewa_z_p_1m=tmp | ||
1445 | 1367 | return | ||
1446 | 1368 | end | ||
1447 | 1369 | function ewa_z_p_0(y,z) | ||
1448 | 1370 | implicit none | ||
1449 | 1371 | real*8 ewa_z_p_0,y,z | ||
1450 | 1372 | integer narg,nny,nnz | ||
1451 | 1373 | parameter (narg=2) | ||
1452 | 1374 | parameter (nny=32) | ||
1453 | 1375 | parameter (nnz=8) | ||
1454 | 1376 | integer iny,inz,nent(narg) | ||
1455 | 1377 | real*8 tmp,dfint,ymap,zmap | ||
1456 | 1378 | real*8 arg(narg),ent(nny+nnz) | ||
1457 | 1379 | real*8 yv(nny),zv(nnz),gridv(nny,nnz) | ||
1458 | 1380 | logical firsttime | ||
1459 | 1381 | external dfint,ymap,zmap | ||
1460 | 1382 | data yv/ | ||
1461 | 1383 | # -1.6118096e+01, -1.5094991e+01, -1.4105430e+01, -1.3149414e+01, | ||
1462 | 1384 | # -1.2226943e+01, -1.1338015e+01, -1.0482632e+01, -9.6607941e+00, | ||
1463 | 1385 | # -8.8725001e+00, -8.1177506e+00, -7.3965455e+00, -6.7088848e+00, | ||
1464 | 1386 | # -6.0547686e+00, -5.4341967e+00, -4.8471693e+00, -4.2936863e+00, | ||
1465 | 1387 | # -3.7737478e+00, -3.2873536e+00, -2.8345039e+00, -2.4151986e+00, | ||
1466 | 1388 | # -2.0294377e+00, -1.6772213e+00, -1.3585493e+00, -1.0734217e+00, | ||
1467 | 1389 | # -8.2183848e-01, -6.0379973e-01, -4.1930540e-01, -2.6835549e-01, | ||
1468 | 1390 | # -1.5095001e-01, -6.7088947e-02, -1.6772312e-02, -1.0000000e-07/ | ||
1469 | 1391 | data zv/ | ||
1470 | 1392 | # 4.3868276e+00, 5.7337823e+00, 7.0807370e+00, 8.4276917e+00, | ||
1471 | 1393 | # 9.7746464e+00, 1.1121601e+01, 1.2468556e+01, 1.3815511e+01/ | ||
1472 | 1394 | data (gridv(iny, 1),iny=1,32)/ | ||
1473 | 1395 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1474 | 1396 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1475 | 1397 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1476 | 1398 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1477 | 1399 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1478 | 1400 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1479 | 1401 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, | ||
1480 | 1402 | # 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00/ | ||
1481 | 1403 | data (gridv(iny, 2),iny=1,32)/ | ||
1482 | 1404 | # 2.2972746e-03, 1.7917254e-03, 1.4105851e-03, 1.1202991e-03, | ||
1483 | 1405 | # 8.9758753e-04, 7.2401692e-04, 5.8765422e-04, 4.7973220e-04, | ||
1484 | 1406 | # 3.9382732e-04, 3.2529169e-04, 2.7051159e-04, 2.2663375e-04, | ||
1485 | 1407 | # 1.9144281e-04, 1.6313368e-04, 1.4017673e-04, 1.2123763e-04, | ||
1486 | 1408 | # 1.0509369e-04, 9.0611789e-05, 7.6817182e-05, 6.3022584e-05, | ||
1487 | 1409 | # 4.9058611e-05, 3.5418441e-05, 2.3106352e-05, 1.3215971e-05, | ||
1488 | 1410 | # 6.4045348e-06, 2.5232862e-06, 7.6274114e-07, 1.6120969e-07, | ||
1489 | 1411 | # 2.0920899e-08, 1.1554945e-09, 2.1846051e-11, 3.8164747e-16/ | ||
1490 | 1412 | data (gridv(iny, 3),iny=1,32)/ | ||
1491 | 1413 | # 3.1443709e-03, 2.4086938e-03, 1.8599149e-03, 1.4469692e-03, | ||
1492 | 1414 | # 1.1345306e-03, 8.9494004e-04, 7.0998827e-04, 5.6630210e-04, | ||
1493 | 1415 | # 4.5410728e-04, 3.6631536e-04, 2.9748449e-04, 2.4339831e-04, | ||
1494 | 1416 | # 2.0085187e-04, 1.6729924e-04, 1.4065172e-04, 1.1916159e-04, | ||
1495 | 1417 | # 1.0130455e-04, 8.5745522e-05, 7.1384433e-05, 5.7493734e-05, | ||
1496 | 1418 | # 4.3890462e-05, 3.1023010e-05, 1.9770186e-05, 1.1015777e-05, | ||
1497 | 1419 | # 5.1834875e-06, 1.9746473e-06, 5.7369065e-07, 1.1562072e-07, | ||
1498 | 1420 | # 1.4116885e-08, 7.1378361e-10, 1.0286193e-11, 2.1760568e-16/ | ||
1499 | 1421 | data (gridv(iny, 4),iny=1,32)/ | ||
1500 | 1422 | # 4.0583782e-03, 3.0604630e-03, 2.3243967e-03, 1.7771165e-03, | ||
1501 | 1423 | # 1.3685115e-03, 1.0596807e-03, 8.2496027e-04, 6.4554632e-04, | ||
1502 | 1424 | # 5.0775614e-04, 4.0172285e-04, 3.1996314e-04, 2.5677121e-04, | ||
1503 | 1425 | # 2.0788121e-04, 1.6996988e-04, 1.4037525e-04, 1.1693715e-04, | ||
1504 | 1426 | # 9.7839570e-05, 8.1555616e-05, 6.6877295e-05, 5.3032557e-05, | ||
1505 | 1427 | # 3.9820348e-05, 2.7642036e-05, 1.7265954e-05, 9.4071798e-06, | ||
1506 | 1428 | # 4.3162443e-06, 1.5974573e-06, 4.4856401e-07, 8.6784619e-08, | ||
1507 | 1429 | # 1.0054849e-08, 4.7125287e-10, 5.0055779e-12, 1.3353325e-16/ | ||
1508 | 1430 | data (gridv(iny, 5),iny=1,32)/ | ||
1509 | 1431 | # 5.0242808e-03, 3.7368538e-03, 2.7975112e-03, 2.1069870e-03, | ||
1510 | 1432 | # 1.5976618e-03, 1.2178011e-03, 9.3297051e-04, 7.1829351e-04, | ||
1511 | 1433 | # 5.5582318e-04, 4.3260555e-04, 3.3896481e-04, 2.6762365e-04, | ||
1512 | 1434 | # 2.1321911e-04, 1.7163549e-04, 1.3964927e-04, 1.1469329e-04, | ||
1513 | 1435 | # 9.4678118e-05, 7.7901482e-05, 6.3058870e-05, 4.9337909e-05, | ||
1514 | 1436 | # 3.6517503e-05, 2.4952978e-05, 1.5315618e-05, 8.1824913e-06, | ||
1515 | 1437 | # 3.6722130e-06, 1.3251079e-06, 3.6114078e-07, 6.7413213e-08, | ||
1516 | 1438 | # 7.4593247e-09, 3.2711613e-10, 2.4150815e-12, 8.6646158e-17/ | ||
1517 | 1439 | data (gridv(iny, 6),iny=1,32)/ | ||
1518 | 1440 | # 6.0434242e-03, 4.4393078e-03, 3.2809706e-03, 2.4384204e-03, | ||
1519 | 1441 | # 1.8240018e-03, 1.3711741e-03, 1.0357484e-03, 7.8624158e-04, | ||
1520 | 1442 | # 5.9978597e-04, 4.6020082e-04, 3.5548403e-04, 2.7671910e-04, | ||
1521 | 1443 | # 2.1741591e-04, 1.7266372e-04, 1.3867688e-04, 1.1250016e-04, | ||
1522 | 1444 | # 9.1784840e-05, 7.4666871e-05, 5.9754966e-05, 4.6199819e-05, | ||
1523 | 1445 | # 3.3759746e-05, 2.2745966e-05, 1.3743797e-05, 7.2147556e-06, | ||
1524 | 1446 | # 3.1743092e-06, 1.1196153e-06, 2.9689509e-07, 5.3518235e-08, | ||
1525 | 1447 | # 5.6721821e-09, 2.3409415e-10, 1.1787607e-12, 5.8729404e-17/ | ||
1526 | 1448 | data (gridv(iny, 7),iny=1,32)/ | ||
1527 | 1449 | # 7.1959867e-03, 5.2238170e-03, 3.8140515e-03, 2.7991324e-03, | ||
1528 | 1450 | # 2.0670251e-03, 1.5335081e-03, 1.1431466e-03, 8.5620909e-04, | ||
1529 | 1451 | # 6.4440376e-04, 4.8779317e-04, 3.7174709e-04, 2.8552072e-04, | ||
1530 | 1452 | # 2.2138742e-04, 1.7357728e-04, 1.3770573e-04, 1.1041226e-04, | ||
1531 | 1453 | # 8.9081969e-05, 7.1687010e-05, 5.6748485e-05, 4.3377928e-05, | ||
1532 | 1454 | # 3.1310191e-05, 2.0811054e-05, 1.2385981e-05, 6.3920772e-06, | ||
1533 | 1455 | # 2.7583999e-06, 9.5083600e-07, 2.4412955e-07, 4.1454456e-08, | ||
1534 | 1456 | # 4.1336315e-09, 1.5732057e-10, 7.2362906e-13, 3.8540532e-17/ | ||
1535 | 1457 | data (gridv(iny, 8),iny=1,32)/ | ||
1536 | 1458 | # 8.5794573e-03, 6.1549995e-03, 4.4395854e-03, 3.2173803e-03, | ||
1537 | 1459 | # 2.3455029e-03, 1.7173947e-03, 1.2632918e-03, 9.3357781e-04, | ||
1538 | 1460 | # 6.9319431e-04, 5.1766046e-04, 3.8920495e-04, 2.9492776e-04, | ||
1539 | 1461 | # 2.2566512e-04, 1.7466681e-04, 1.3686160e-04, 1.0845033e-04, | ||
1540 | 1462 | # 8.6522845e-05, 6.8873718e-05, 5.3928273e-05, 4.0752757e-05, | ||
1541 | 1463 | # 2.9053811e-05, 1.9048548e-05, 1.1165828e-05, 5.6636607e-06, | ||
1542 | 1464 | # 2.3959922e-06, 8.0553030e-07, 1.9753531e-07, 2.9524070e-08, | ||
1543 | 1465 | # 2.5899490e-09, 8.0207162e-11, 2.5018623e-13, 1.8180313e-17/ | ||
1544 | 1466 | data firsttime/.true./ | ||
1545 | 1467 | save | ||
1546 | 1468 | if(firsttime)then | ||
1547 | 1469 | firsttime=.false. | ||
1548 | 1470 | nent(1)=nny | ||
1549 | 1471 | nent(2)=nnz | ||
1550 | 1472 | do iny=1,nny | ||
1551 | 1473 | ent(iny)=(yv(iny)) | ||
1552 | 1474 | enddo | ||
1553 | 1475 | do inz=1,nnz | ||
1554 | 1476 | ent(nny+inz)=(zv(inz)) | ||
1555 | 1477 | enddo | ||
1556 | 1478 | endif | ||
1557 | 1479 | arg(1)=(y) | ||
1558 | 1480 | arg(2)=(z) | ||
1559 | 1481 | tmp=dfint(narg,arg,nent,ent,gridv) | ||
1560 | 1482 | ewa_z_p_0=tmp | ||
1561 | 1483 | return | ||
1562 | 1484 | end | ||
1563 | 0 | 1485 | ||
1564 | === added file 'Template/LO/Source/PDF/ElectroweakFlux.inc' | |||
1565 | --- Template/LO/Source/PDF/ElectroweakFlux.inc 1970-01-01 00:00:00 +0000 | |||
1566 | +++ Template/LO/Source/PDF/ElectroweakFlux.inc 2020-08-13 08:01:43 +0000 | |||
1567 | @@ -0,0 +1,38 @@ | |||
1568 | 1 | double precision pi, pi2, sqrt2, eps | ||
1569 | 2 | double precision ewa_mw2, ewa_mz2, ewa_gf | ||
1570 | 3 | double precision ewa_qu,ewa_qd,ewa_qv,ewa_ql,ewa_t3u,ewa_t3d | ||
1571 | 4 | double precision ewa_cw2,ewa_sw2,ewa_gW2 | ||
1572 | 5 | double precision ewa_gV,ewa_gVu,ewa_gVd,ewa_gVv,ewa_gVl | ||
1573 | 6 | double precision ewa_gA,ewa_gAu,ewa_gAd,ewa_gAv,ewa_gAl | ||
1574 | 7 | c Math | ||
1575 | 8 | parameter (pi=3.141592653589793d0) | ||
1576 | 9 | parameter (pi2=9.869604401089358d0) | ||
1577 | 10 | parameter (sqrt2=1.4142135623730951d0) | ||
1578 | 11 | parameter (eps=1d-16) | ||
1579 | 12 | c Input EW parameters | ||
1580 | 13 | parameter (ewa_mw2 = 80.379d0**2) ! [GeV]^2 PDG 2018 | ||
1581 | 14 | parameter (ewa_mz2 = 91.1876d0**2) ! [GeV]^2 PDG 2018 | ||
1582 | 15 | parameter (ewa_gf = 1.1663787d-5) ! [GeV]^-2 PDG 2018 | ||
1583 | 16 | parameter (ewa_qu = 2d0/3d0) | ||
1584 | 17 | parameter (ewa_qd = -1d0/3d0) | ||
1585 | 18 | parameter (ewa_qv = 0d0) | ||
1586 | 19 | parameter (ewa_ql = -1d0) | ||
1587 | 20 | parameter (ewa_t3u = 0.5d0) | ||
1588 | 21 | parameter (ewa_t3d = -0.5d0) | ||
1589 | 22 | c Derived EW parameters | ||
1590 | 23 | parameter (ewa_cw2 = ewa_mw2/ewa_mz2) | ||
1591 | 24 | parameter (ewa_sw2 = 1d0 - ewa_mw2/ewa_mz2) | ||
1592 | 25 | parameter (ewa_gW2 = sqrt2*4d0*ewa_gf*ewa_mw2) | ||
1593 | 26 | c Weak Vector Couplings | ||
1594 | 27 | parameter (ewa_gV = 1d0) | ||
1595 | 28 | parameter (ewa_gVu = 0.5d0*ewa_t3u - ewa_qu*ewa_sw2) | ||
1596 | 29 | parameter (ewa_gVd = 0.5d0*ewa_t3d - ewa_qd*ewa_sw2) | ||
1597 | 30 | parameter (ewa_gVv = 0.5d0*ewa_t3u) | ||
1598 | 31 | parameter (ewa_gVl = 0.5d0*ewa_t3d - ewa_ql*ewa_sw2) | ||
1599 | 32 | c Weak Axialvector Couplings | ||
1600 | 33 | parameter (ewa_gA = -1d0) | ||
1601 | 34 | parameter (ewa_gAu = -0.5d0*ewa_t3u) | ||
1602 | 35 | parameter (ewa_gAd = -0.5d0*ewa_t3d) | ||
1603 | 36 | parameter (ewa_gAv = -0.5d0*ewa_t3u) | ||
1604 | 37 | parameter (ewa_gAl = -0.5d0*ewa_t3d) | ||
1605 | 38 | c | ||
1606 | 0 | \ No newline at end of file | 39 | \ No newline at end of file |
1607 | 1 | 40 | ||
1608 | === modified file 'Template/LO/Source/PDF/PhotonFlux.f' | |||
1609 | --- Template/LO/Source/PDF/PhotonFlux.f 2020-03-27 13:59:33 +0000 | |||
1610 | +++ Template/LO/Source/PDF/PhotonFlux.f 2020-08-13 08:01:43 +0000 | |||
1611 | @@ -1,30 +1,35 @@ | |||
1612 | 1 | c/* ********************************************************* */ | 1 | c/* ********************************************************* */ |
1617 | 2 | c/* Equivalent photon approximation structure function. * */ | 2 | c/* Equivalent photon approximation structure function. * */ |
1618 | 3 | c/* V.M.Budnev et al., Phys.Rep. 15C (1975) 181 * */ | 3 | c/* V.M.Budnev et al., Phys.Rep. 15C (1975) 181 * */ |
1619 | 4 | c/* Improved Weizsaecker-Williams formula * */ | 4 | c/* * */ |
1620 | 5 | c/* http://inspirehep.net/record/359425 * */ | 5 | c/* Improved Weizsaecker-Williams formula * */ |
1621 | 6 | c/* S. Frixione et al. hep-ph/9310350 * */ | ||
1622 | 7 | c/* * */ | ||
1623 | 6 | c/* ********************************************************* */ | 8 | c/* ********************************************************* */ |
1624 | 7 | c provided by Tomasz Pierzchala - UCL | 9 | c provided by Tomasz Pierzchala - UCL |
1625 | 8 | 10 | ||
1628 | 9 | real*8 function epa_electron(x,q2max) | 11 | real*8 function epa_lepton(x,q2max, mode) |
1629 | 10 | integer i | 12 | implicit none |
1630 | 13 | integer i, mode, imode | ||
1631 | 14 | c mode is +3/-3 for electron and +4/-4 for muon | ||
1632 | 11 | real*8 x,phi_f | 15 | real*8 x,phi_f |
1634 | 12 | real*8 xin | 16 | real*8 xin(3:4) |
1635 | 13 | real*8 alpha | 17 | real*8 alpha |
1636 | 14 | real*8 f, q2min,q2max | 18 | real*8 f, q2min,q2max |
1637 | 15 | real*8 PI | 19 | real*8 PI |
1638 | 16 | data PI/3.14159265358979323846/ | 20 | data PI/3.14159265358979323846/ |
1639 | 17 | 21 | ||
1641 | 18 | data xin/0.511d-3/ !electron mass in GeV | 22 | data xin/0.511d-3, 0.105658d0/ !electron mass in GeV |
1642 | 19 | 23 | ||
1643 | 20 | alpha = .0072992701 | 24 | alpha = .0072992701 |
1645 | 21 | 25 | imode = abs(mode) | |
1646 | 26 | |||
1647 | 22 | C // x = omega/E = (E-E')/E | 27 | C // x = omega/E = (E-E')/E |
1648 | 23 | if (x.lt.1) then | 28 | if (x.lt.1) then |
1650 | 24 | q2min= xin*xin*x*x/(1-x) | 29 | q2min= xin(imode)*xin(imode)*x*x/(1-x) |
1651 | 25 | if(q2min.lt.q2max) then | 30 | if(q2min.lt.q2max) then |
1654 | 26 | f = alpha/2d0/PI* | 31 | f = alpha/2d0/PI* |
1655 | 27 | & (2d0*xin*xin*x*(-1/q2min+1/q2max)+ | 32 | & (2d0*xin(imode)*xin(imode)*x*(-1/q2min+1/q2max)+ |
1656 | 28 | & (2-2d0*x+x*x)/x*dlog(q2max/q2min)) | 33 | & (2-2d0*x+x*x)/x*dlog(q2max/q2min)) |
1657 | 29 | 34 | ||
1658 | 30 | else | 35 | else |
1659 | @@ -35,7 +40,7 @@ | |||
1660 | 35 | endif | 40 | endif |
1661 | 36 | c write (*,*) x,dsqrt(q2min),dsqrt(q2max),f | 41 | c write (*,*) x,dsqrt(q2min),dsqrt(q2max),f |
1662 | 37 | if (f .lt. 0) f = 0 | 42 | if (f .lt. 0) f = 0 |
1664 | 38 | epa_electron= f | 43 | epa_lepton = f |
1665 | 39 | 44 | ||
1666 | 40 | end | 45 | end |
1667 | 41 | 46 | ||
1668 | 42 | 47 | ||
1669 | === modified file 'Template/LO/Source/PDF/makefile' | |||
1670 | --- Template/LO/Source/PDF/makefile 2020-04-08 19:22:14 +0000 | |||
1671 | +++ Template/LO/Source/PDF/makefile 2020-08-13 08:01:43 +0000 | |||
1672 | @@ -14,15 +14,16 @@ | |||
1673 | 14 | ifeq ($(lhapdfversion),5) | 14 | ifeq ($(lhapdfversion),5) |
1674 | 15 | $(error Bad lhadpfversion version 6 is now required) | 15 | $(error Bad lhadpfversion version 6 is now required) |
1675 | 16 | else | 16 | else |
1676 | 17 | PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o ElectroweakFlux.o | ||
1677 | 17 | ifeq ($(lhapdfsubversion),1) # 6.1.X | 18 | ifeq ($(lhapdfsubversion),1) # 6.1.X |
1679 | 18 | PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o | 19 | PDF = pdfwrap_lhapdf.o pdf_lhapdf6.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o ElectroweakFlux.o |
1680 | 19 | else # 6.2.X | 20 | else # 6.2.X |
1681 | 20 | CXXFLAGS+=-std=c++11 | 21 | CXXFLAGS+=-std=c++11 |
1683 | 21 | PDF = pdfwrap_lhapdf.o pdf_lhapdf62.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o | 22 | PDF = pdfwrap_lhapdf.o pdf_lhapdf62.o pdg2pdf_lhapdf6.o opendata.o PhotonFlux.o ElectroweakFlux.o |
1684 | 22 | endif | 23 | endif |
1685 | 23 | endif | 24 | endif |
1686 | 24 | else | 25 | else |
1688 | 25 | PDF = Ctq6Pdf.o pdfwrap.o opendata.o pdf.o PhotonFlux.o pdg2pdf.o NNPDFDriver.o | 26 | PDF = Ctq6Pdf.o pdfwrap.o opendata.o pdf.o PhotonFlux.o pdg2pdf.o NNPDFDriver.o ElectroweakFlux.o |
1689 | 26 | endif | 27 | endif |
1690 | 27 | 28 | ||
1691 | 28 | all: $(LIBDIR)$(LIBRARY) | 29 | all: $(LIBDIR)$(LIBRARY) |
1692 | 29 | 30 | ||
1693 | === modified file 'Template/LO/Source/PDF/pdf.f' | |||
1694 | --- Template/LO/Source/PDF/pdf.f 2018-02-01 23:17:18 +0000 | |||
1695 | +++ Template/LO/Source/PDF/pdf.f 2020-08-13 08:01:43 +0000 | |||
1696 | @@ -29,7 +29,7 @@ | |||
1697 | 29 | double precision u_val,d_val,u_sea,d_sea,s_sea,c_sea,b_sea,gluon | 29 | double precision u_val,d_val,u_sea,d_sea,s_sea,c_sea,b_sea,gluon |
1698 | 30 | double precision Ctq3df,Ctq4Fn,Ctq5Pdf,Ctq6Pdf,Ctq5L | 30 | double precision Ctq3df,Ctq4Fn,Ctq5Pdf,Ctq6Pdf,Ctq5L |
1699 | 31 | double precision q2max | 31 | double precision q2max |
1701 | 32 | double precision epa_electron,epa_proton | 32 | double precision epa_lepton,epa_proton |
1702 | 33 | include 'pdf.inc' | 33 | include 'pdf.inc' |
1703 | 34 | 34 | ||
1704 | 35 | integer mode,Iprtn,Irt | 35 | integer mode,Iprtn,Irt |
1705 | @@ -297,8 +297,8 @@ | |||
1706 | 297 | c a "diffractive" photon | 297 | c a "diffractive" photon |
1707 | 298 | c | 298 | c |
1708 | 299 | q2max=xmu*xmu | 299 | q2max=xmu*xmu |
1711 | 300 | if(ih .eq. 3) then !from the electron | 300 | if(abs(ih) .eq. 3.or.abs(ih) .eq. 4) then !from the electron |
1712 | 301 | fx(7)=epa_electron(x,q2max) | 301 | fx(7)=epa_lepton(x,q2max, ih) |
1713 | 302 | elseif(ih .eq. 2) then !from a proton without breaking | 302 | elseif(ih .eq. 2) then !from a proton without breaking |
1714 | 303 | fx(7)=epa_proton(x,q2max) | 303 | fx(7)=epa_proton(x,q2max) |
1715 | 304 | endif | 304 | endif |
1716 | 305 | 305 | ||
1717 | === modified file 'Template/LO/Source/PDF/pdg2pdf.f' | |||
1718 | --- Template/LO/Source/PDF/pdg2pdf.f 2019-12-04 21:34:25 +0000 | |||
1719 | +++ Template/LO/Source/PDF/pdg2pdf.f 2020-08-13 08:01:43 +0000 | |||
1720 | @@ -24,7 +24,7 @@ | |||
1721 | 24 | integer mode,Irt,i,j | 24 | integer mode,Irt,i,j |
1722 | 25 | double precision xlast(2),xmulast(2),pdflast(-7:7,2),q2max | 25 | double precision xlast(2),xmulast(2),pdflast(-7:7,2),q2max |
1723 | 26 | character*7 pdlabellast(2) | 26 | character*7 pdlabellast(2) |
1725 | 27 | double precision epa_electron,epa_proton | 27 | double precision epa_lepton,epa_proton |
1726 | 28 | integer ipart,ireuse,iporg,ihlast(2) | 28 | integer ipart,ireuse,iporg,ihlast(2) |
1727 | 29 | save xlast,xmulast,pdflast,pdlabellast,ihlast | 29 | save xlast,xmulast,pdflast,pdlabellast,ihlast |
1728 | 30 | data xlast/2*-99d9/ | 30 | data xlast/2*-99d9/ |
1729 | @@ -32,7 +32,29 @@ | |||
1730 | 32 | data pdflast/30*-99d9/ | 32 | data pdflast/30*-99d9/ |
1731 | 33 | data pdlabellast/2*'abcdefg'/ | 33 | data pdlabellast/2*'abcdefg'/ |
1732 | 34 | data ihlast/2*-99/ | 34 | data ihlast/2*-99/ |
1734 | 35 | 35 | c | |
1735 | 36 | c Special for EWA (need to know current helicity) | ||
1736 | 37 | c | ||
1737 | 38 | double precision ewa_wX_ByPID, ewa_zX_ByPID | ||
1738 | 39 | external ewa_wX_ByPID, ewa_zX_ByPID | ||
1739 | 40 | integer hel, ppid | ||
1740 | 41 | double precision hel_jacobian | ||
1741 | 42 | INTEGER HEL_PICKED | ||
1742 | 43 | COMMON/HEL_PICKED/HEL_PICKED,hel_jacobian | ||
1743 | 44 | integer get_nhel | ||
1744 | 45 | external get_nhel | ||
1745 | 46 | REAL*8 POL(2) | ||
1746 | 47 | common/to_polarization/ POL | ||
1747 | 48 | c | ||
1748 | 49 | c Collider | ||
1749 | 50 | c | ||
1750 | 51 | integer lpp(2) | ||
1751 | 52 | double precision ebeam(2), xbk(2),q2fact(2) | ||
1752 | 53 | common/to_collider/ ebeam , xbk ,q2fact, lpp | ||
1753 | 54 | c | ||
1754 | 55 | c | ||
1755 | 56 | c | ||
1756 | 57 | double precision factor | ||
1757 | 36 | if (ih.eq.9) then | 58 | if (ih.eq.9) then |
1758 | 37 | pdg2pdf = 1d0 | 59 | pdg2pdf = 1d0 |
1759 | 38 | return | 60 | return |
1760 | @@ -66,12 +88,14 @@ | |||
1761 | 66 | ipart=7 | 88 | ipart=7 |
1762 | 67 | c This will be called for any PDG code, but we only support up to 7 | 89 | c This will be called for any PDG code, but we only support up to 7 |
1763 | 68 | else if(iabs(ipart).gt.7)then | 90 | else if(iabs(ipart).gt.7)then |
1770 | 69 | write(*,*) 'PDF not supported for pdg ',ipdg | 91 | if(iabs(ih).lt.2)then |
1771 | 70 | write(*,*) 'For lepton colliders, please set the lpp* '// | 92 | write(*,*) 'PDF not supported for pdg ',ipdg |
1772 | 71 | $ 'variables to 0 in the run_card' | 93 | write(*,*) 'For lepton colliders, please set the lpp* '// |
1773 | 72 | open(unit=26,file='../../../error',status='unknown') | 94 | $ 'variables to 0 in the run_card current is' , ih |
1774 | 73 | write(26,*) 'Error: PDF not supported for pdg ',ipdg | 95 | open(unit=26,file='../../../error',status='unknown') |
1775 | 74 | stop 1 | 96 | write(26,*) 'Error: PDF not supported for pdg ',ipdg |
1776 | 97 | stop 1 | ||
1777 | 98 | endif | ||
1778 | 75 | endif | 99 | endif |
1779 | 76 | 100 | ||
1780 | 77 | iporg=ipart | 101 | iporg=ipart |
1781 | @@ -85,7 +109,7 @@ | |||
1782 | 85 | enddo | 109 | enddo |
1783 | 86 | 110 | ||
1784 | 87 | c Reuse previous result, if possible | 111 | c Reuse previous result, if possible |
1786 | 88 | if (ireuse.gt.0.)then | 112 | if (ireuse.gt.0.and.iabs(iporg).lt.8)then |
1787 | 89 | if (pdflast(iporg,ireuse).ne.-99d9) then | 113 | if (pdflast(iporg,ireuse).ne.-99d9) then |
1788 | 90 | pdg2pdf = get_ion_pdf(pdflast(-7, ireuse), iporg, nb_proton(beamid), | 114 | pdg2pdf = get_ion_pdf(pdflast(-7, ireuse), iporg, nb_proton(beamid), |
1789 | 91 | $ nb_neutron(beamid)) | 115 | $ nb_neutron(beamid)) |
1790 | @@ -129,15 +153,85 @@ | |||
1791 | 129 | pdlabellast(ireuse)=pdlabel | 153 | pdlabellast(ireuse)=pdlabel |
1792 | 130 | ihlast(ireuse)=ih | 154 | ihlast(ireuse)=ih |
1793 | 131 | 155 | ||
1795 | 132 | if(iabs(ipart).eq.7.and.ih.gt.1) then | 156 | c |
1796 | 157 | c Special mode for Improved Weizsacker-Williams, | ||
1797 | 158 | c Equivalent photon, and Effective W/Z Approximations | ||
1798 | 159 | c | ||
1799 | 160 | if (ih.gt.1.and.ih.ne.9) then | ||
1800 | 161 | c Effective photon approximation | ||
1801 | 133 | q2max=xmu*xmu | 162 | q2max=xmu*xmu |
1809 | 134 | if(ih.eq.3) then !from the electron | 163 | if (iabs(ipart).eq.7) then |
1810 | 135 | pdg2pdf=epa_electron(x,q2max) | 164 | if(abs(ih).eq.3.or.abs(ih).eq.4) then !from the electron or muonn |
1811 | 136 | elseif(ih .eq. 2) then !from a proton without breaking | 165 | pdg2pdf=epa_lepton(x,q2max, ih) |
1812 | 137 | pdg2pdf=epa_proton(x,q2max,beamid) | 166 | elseif(ih .eq. 2) then !from a proton without breaking |
1813 | 138 | endif | 167 | pdg2pdf=epa_proton(x,q2max,beamid) |
1814 | 139 | pdflast(iporg,ireuse)=pdg2pdf | 168 | endif |
1815 | 140 | return | 169 | pdflast(iporg,ireuse)=pdg2pdf |
1816 | 170 | return | ||
1817 | 171 | elseif(iabs(ipart).eq.23) then ! z boson | ||
1818 | 172 | factor = 3d0 ! 3 to cancel the average over W helicities´ | ||
1819 | 173 | if (ABS(ih).eq.3) then | ||
1820 | 174 | ppid = 11 | ||
1821 | 175 | elseif(ABS(ih).eq.4) then | ||
1822 | 176 | ppid = 13 | ||
1823 | 177 | elseif(ABS(ih).eq.2) then | ||
1824 | 178 | ppid = 2212 | ||
1825 | 179 | else | ||
1826 | 180 | write(*,*) "type of beam not yet supported for EWA" | ||
1827 | 181 | stop 4 | ||
1828 | 182 | endif | ||
1829 | 183 | hel = GET_NHEL(HEL_PICKED, beamid) | ||
1830 | 184 | pdg2pdf = factor * ewa_zX_ByPID(x,q2max,hel,ppid) | ||
1831 | 185 | if (ABS(POL(beamid)).ne.1d0) then | ||
1832 | 186 | write(*,*) 'beam polarization not supported for EWA with Z' | ||
1833 | 187 | stop 33 | ||
1834 | 188 | endif | ||
1835 | 189 | |||
1836 | 190 | return | ||
1837 | 191 | elseif(ipart.eq.24) then ! w+ boson | ||
1838 | 192 | factor = 3d0 ! 3 to cancel the average over W helicities´ | ||
1839 | 193 | if (ih.eq.-3) then ! from e+ | ||
1840 | 194 | ppid = -11 | ||
1841 | 195 | elseif(ih.eq.-4) then ! from mu+ | ||
1842 | 196 | ppid = -13 | ||
1843 | 197 | elseif(ih.eq.2) then | ||
1844 | 198 | ppid = 2212 | ||
1845 | 199 | else | ||
1846 | 200 | write(*,*) "type of beam not yet supported for EWA" | ||
1847 | 201 | stop 4 | ||
1848 | 202 | endif | ||
1849 | 203 | hel = GET_NHEL(HEL_PICKED, beamid) | ||
1850 | 204 | pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid) | ||
1851 | 205 | if(pol(beamid).lt.0d0)then | ||
1852 | 206 | pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to right handed componenta | ||
1853 | 207 | else | ||
1854 | 208 | pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to right handed componenta | ||
1855 | 209 | endif | ||
1856 | 210 | return | ||
1857 | 211 | elseif(ipart.eq.-24) then ! w- boson | ||
1858 | 212 | factor = 3d0 ! 3 to cancel the average over W helicities´ | ||
1859 | 213 | if (ih.eq.3) then ! from e- | ||
1860 | 214 | ppid = 11 | ||
1861 | 215 | elseif(ih.eq.4) then ! from mu- | ||
1862 | 216 | ppid = 13 | ||
1863 | 217 | elseif(ih.eq.2) then | ||
1864 | 218 | ppid = -2212 | ||
1865 | 219 | else | ||
1866 | 220 | write(*,*) "type of beam not yet supported for EWA" | ||
1867 | 221 | stop 4 | ||
1868 | 222 | endif | ||
1869 | 223 | |||
1870 | 224 | hel = GET_NHEL(HEL_PICKED, beamid) | ||
1871 | 225 | pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid) | ||
1872 | 226 | if(pol(beamid)*lpp(beamid).lt.0d0)then | ||
1873 | 227 | pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to left handed componenta | ||
1874 | 228 | else | ||
1875 | 229 | pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to left handed componenta | ||
1876 | 230 | endif | ||
1877 | 231 | |||
1878 | 232 | |||
1879 | 233 | return | ||
1880 | 234 | endif | ||
1881 | 141 | endif | 235 | endif |
1882 | 142 | 236 | ||
1883 | 143 | if (pdlabel(1:5) .eq. 'cteq6') then | 237 | if (pdlabel(1:5) .eq. 'cteq6') then |
1884 | 144 | 238 | ||
1885 | === removed file 'Template/LO/Source/PDF/pdg2pdf_lhapdf.f' | |||
1886 | === modified file 'Template/LO/Source/PDF/pdg2pdf_lhapdf6.f' | |||
1887 | --- Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 2020-03-06 20:47:59 +0000 | |||
1888 | +++ Template/LO/Source/PDF/pdg2pdf_lhapdf6.f 2020-08-13 08:01:43 +0000 | |||
1889 | @@ -24,7 +24,7 @@ | |||
1890 | 24 | integer i,j,ihlast(20),ipart,iporg,ireuse,imemlast(20),iset,imem | 24 | integer i,j,ihlast(20),ipart,iporg,ireuse,imemlast(20),iset,imem |
1891 | 25 | & ,i_replace,ii,ipartlast(20) | 25 | & ,i_replace,ii,ipartlast(20) |
1892 | 26 | double precision xlast(20),xmulast(20),pdflast(-7:7,20) | 26 | double precision xlast(20),xmulast(20),pdflast(-7:7,20) |
1894 | 27 | double precision epa_proton, epa_electron | 27 | double precision epa_proton, epa_lepton |
1895 | 28 | save ihlast,xlast,xmulast,pdflast,imemlast,ipartlast | 28 | save ihlast,xlast,xmulast,pdflast,imemlast,ipartlast |
1896 | 29 | data ihlast/20*-99/ | 29 | data ihlast/20*-99/ |
1897 | 30 | data ipartlast/20*-99/ | 30 | data ipartlast/20*-99/ |
1898 | @@ -33,6 +33,37 @@ | |||
1899 | 33 | data pdflast/300*-99d9/ | 33 | data pdflast/300*-99d9/ |
1900 | 34 | data imemlast/20*-99/ | 34 | data imemlast/20*-99/ |
1901 | 35 | data i_replace/20/ | 35 | data i_replace/20/ |
1902 | 36 | c | ||
1903 | 37 | c Special for EWA (need to know current helicity) | ||
1904 | 38 | c | ||
1905 | 39 | double precision ewa_wX_ByPID, ewa_zX_ByPID | ||
1906 | 40 | external ewa_wX_ByPID, ewa_zX_ByPID | ||
1907 | 41 | integer hel, ppid | ||
1908 | 42 | double precision hel_jacobian | ||
1909 | 43 | INTEGER HEL_PICKED | ||
1910 | 44 | COMMON/HEL_PICKED/HEL_PICKED,hel_jacobian | ||
1911 | 45 | integer get_nhel | ||
1912 | 46 | external get_nhel | ||
1913 | 47 | REAL*8 POL(2) | ||
1914 | 48 | common/to_polarization/ POL | ||
1915 | 49 | double precision q2max | ||
1916 | 50 | double precision epa_electron | ||
1917 | 51 | c | ||
1918 | 52 | c Collider | ||
1919 | 53 | c | ||
1920 | 54 | integer lpp(2) | ||
1921 | 55 | double precision ebeam(2), xbk(2),q2fact(2) | ||
1922 | 56 | common/to_collider/ ebeam , xbk ,q2fact, lpp | ||
1923 | 57 | c | ||
1924 | 58 | c | ||
1925 | 59 | c | ||
1926 | 60 | double precision factor | ||
1927 | 61 | |||
1928 | 62 | if (ih.eq.9) then | ||
1929 | 63 | pdg2pdf = 1d0 | ||
1930 | 64 | return | ||
1931 | 65 | endif | ||
1932 | 66 | |||
1933 | 36 | 67 | ||
1934 | 37 | nb_hadron = (nb_proton(beamid)+nb_neutron(beamid)) | 68 | nb_hadron = (nb_proton(beamid)+nb_neutron(beamid)) |
1935 | 38 | c Make sure we have a reasonable Bjorken x. Note that even though | 69 | c Make sure we have a reasonable Bjorken x. Note that even though |
1936 | @@ -62,12 +93,14 @@ | |||
1937 | 62 | ipart=7 | 93 | ipart=7 |
1938 | 63 | c This will be called for any PDG code, but we only support up to 7 | 94 | c This will be called for any PDG code, but we only support up to 7 |
1939 | 64 | else if(iabs(ipart).gt.7)then | 95 | else if(iabs(ipart).gt.7)then |
1946 | 65 | write(*,*) 'PDF not supported for pdg ',ipdg | 96 | if(iabs(ih).lt.2)then |
1947 | 66 | write(*,*) 'For lepton colliders, please set the lpp* '// | 97 | write(*,*) 'PDF not supported for pdg ',ipdg |
1948 | 67 | $ 'variables to 0 in the run_card' | 98 | write(*,*) 'For lepton colliders, please set the lpp* '// |
1949 | 68 | open(unit=26,file='../../../error',status='unknown') | 99 | $ 'variables to 0 in the run_card' |
1950 | 69 | write(26,*) 'Error: PDF not supported for pdg ',ipdg | 100 | open(unit=26,file='../../../error',status='unknown') |
1951 | 70 | stop 1 | 101 | write(26,*) 'Error: PDF not supported for pdg ',ipdg |
1952 | 102 | stop 1 | ||
1953 | 103 | endif | ||
1954 | 71 | endif | 104 | endif |
1955 | 72 | 105 | ||
1956 | 73 | iporg=ipart | 106 | iporg=ipart |
1957 | @@ -139,10 +172,77 @@ | |||
1958 | 139 | pdg2pdf = get_ion_pdf(pdflast(-7, i_replace), ipart, nb_proton(beamid), nb_neutron(beamid)) | 172 | pdg2pdf = get_ion_pdf(pdflast(-7, i_replace), ipart, nb_proton(beamid), nb_neutron(beamid)) |
1959 | 140 | endif | 173 | endif |
1960 | 141 | pdg2pdf=pdg2pdf/x | 174 | pdg2pdf=pdg2pdf/x |
1965 | 142 | else if(ih.eq.3) then !from the electron | 175 | else if(ih.gt.1.and.ih.ne.9) then ! photon from a proton without breaking |
1966 | 143 | pdg2pdf=epa_electron(x,xmu*xmu) | 176 | c Effective photon approximation |
1967 | 144 | else if(ih.eq.2) then ! photon from a proton without breaking | 177 | q2max=xmu*xmu |
1968 | 145 | pdg2pdf = epa_proton(x,xmu*xmu) | 178 | if (iabs(ipart).eq.7) then |
1969 | 179 | if(abs(ih).eq.3.or.abs(ih).eq.4) then !from the electron | ||
1970 | 180 | pdg2pdf=epa_lepton(x,xmu*xmu, ih) | ||
1971 | 181 | elseif(ih .eq. 2) then !from a proton without breaking | ||
1972 | 182 | pdg2pdf=epa_proton(x,q2max,beamid) | ||
1973 | 183 | endif | ||
1974 | 184 | pdflast(iporg,ireuse)=pdg2pdf | ||
1975 | 185 | return | ||
1976 | 186 | elseif(iabs(ipart).eq.23) then ! z boson | ||
1977 | 187 | if (ih.eq.3) then | ||
1978 | 188 | ppid = 11 | ||
1979 | 189 | elseif(ih.eq.4) then | ||
1980 | 190 | ppid = 13 | ||
1981 | 191 | elseif(ih.eq.2) then | ||
1982 | 192 | ppid = 2212 | ||
1983 | 193 | else | ||
1984 | 194 | write(*,*) "type of beam not yet supported for EWA" | ||
1985 | 195 | stop 4 | ||
1986 | 196 | endif | ||
1987 | 197 | hel = GET_NHEL(HEL_PICKED, beamid) | ||
1988 | 198 | pdg2pdf = ewa_zX_ByPID(x,q2max,hel,ppid) | ||
1989 | 199 | if (ABS(POL(beamid)).ne.1d0) then | ||
1990 | 200 | write(*,*) | ||
1991 | 201 | & 'beam polarization not supported for EWA with Z' | ||
1992 | 202 | stop 33 | ||
1993 | 203 | endif | ||
1994 | 204 | return | ||
1995 | 205 | elseif(ipart.eq.24) then ! w+ boson | ||
1996 | 206 | factor = 3d0 ! 3 to cancel the average over W helicities´ | ||
1997 | 207 | if (ih.eq.-3) then ! from e+ | ||
1998 | 208 | ppid = -11 | ||
1999 | 209 | elseif(ih.eq.-4) then ! from mu+ | ||
2000 | 210 | ppid = -13 | ||
2001 | 211 | elseif(ih.eq.2) then | ||
2002 | 212 | ppid = 2212 | ||
2003 | 213 | else | ||
2004 | 214 | write(*,*) "type of beam not yet supported for EWA" | ||
2005 | 215 | stop 4 | ||
2006 | 216 | endif | ||
2007 | 217 | hel = GET_NHEL(HEL_PICKED, beamid) | ||
2008 | 218 | pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid) | ||
2009 | 219 | if(pol(beamid).lt.0d0)then | ||
2010 | 220 | pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to right handed componenta | ||
2011 | 221 | else | ||
2012 | 222 | pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to right handed componenta | ||
2013 | 223 | endif | ||
2014 | 224 | return | ||
2015 | 225 | elseif(ipart.eq.-24) then ! w- boson | ||
2016 | 226 | factor = 3d0 ! 3 to cancel the average over W helicities´ | ||
2017 | 227 | if (ih.eq.3) then ! from e- | ||
2018 | 228 | ppid = 11 | ||
2019 | 229 | elseif(ih.eq.4) then ! from mu- | ||
2020 | 230 | ppid = 13 | ||
2021 | 231 | elseif(ih.eq.2) then | ||
2022 | 232 | ppid = -2212 | ||
2023 | 233 | else | ||
2024 | 234 | write(*,*) "type of beam not yet supported for EWA" | ||
2025 | 235 | stop 4 | ||
2026 | 236 | endif | ||
2027 | 237 | |||
2028 | 238 | hel = GET_NHEL(HEL_PICKED, beamid) | ||
2029 | 239 | pdg2pdf = factor*ewa_wX_ByPID(x,q2max,hel,ppid) | ||
2030 | 240 | if(pol(beamid)*lpp(beamid).lt.0d0)then | ||
2031 | 241 | pdg2pdf = pdg2pdf * ABS(POL(beamid))/2d0 ! couple only to left handed componenta | ||
2032 | 242 | else | ||
2033 | 243 | pdg2pdf = pdg2pdf * (2-ABS(POL(beamid)))/2d0 ! couple only to left handed componenta | ||
2034 | 244 | endif | ||
2035 | 245 | endif | ||
2036 | 146 | else | 246 | else |
2037 | 147 | write (*,*) 'beam type not supported in lhadpf' | 247 | write (*,*) 'beam type not supported in lhadpf' |
2038 | 148 | stop 1 | 248 | stop 1 |
2039 | 149 | 249 | ||
2040 | === modified file 'Template/LO/Source/kin_functions.f' | |||
2041 | --- Template/LO/Source/kin_functions.f 2016-02-10 14:56:17 +0000 | |||
2042 | +++ Template/LO/Source/kin_functions.f 2020-08-13 08:01:43 +0000 | |||
2043 | @@ -590,11 +590,13 @@ | |||
2044 | 590 | C 4-Vector Dot product | 590 | C 4-Vector Dot product |
2045 | 591 | C**************************************************************************** | 591 | C**************************************************************************** |
2046 | 592 | implicit none | 592 | implicit none |
2048 | 593 | double precision p1(0:3),p2(0:3) | 593 | double precision p1(0:3),p2(0:3), dot2 |
2049 | 594 | dot=p1(0)*p2(0)-p1(1)*p2(1)-p1(2)*p2(2)-p1(3)*p2(3) | 594 | dot=p1(0)*p2(0)-p1(1)*p2(1)-p1(2)*p2(2)-p1(3)*p2(3) |
2050 | 595 | 595 | ||
2053 | 596 | if(dabs(dot).lt.1d-6)then ! solve numerical problem | 596 | if(dabs(dot).lt.1d-6)then ! solve numerical problem |
2054 | 597 | dot=0d0 | 597 | dot2 = p1(0)*p2(0)+p1(1)*p2(1)+p1(2)*p2(2)+p1(3)*p2(3) |
2055 | 598 | dot2 = max(1e-99,dot2) | ||
2056 | 599 | if (dot/dot2.lt.1e-6) dot=0d0 | ||
2057 | 598 | endif | 600 | endif |
2058 | 599 | 601 | ||
2059 | 600 | end | 602 | end |
2060 | 601 | 603 | ||
2061 | === modified file 'Template/LO/Source/setrun.f' | |||
2062 | --- Template/LO/Source/setrun.f 2016-03-04 16:16:23 +0000 | |||
2063 | +++ Template/LO/Source/setrun.f 2020-08-13 08:01:43 +0000 | |||
2064 | @@ -83,12 +83,27 @@ | |||
2065 | 83 | q2fact(1) = sf1**2 ! fact scale**2 for pdf1 | 83 | q2fact(1) = sf1**2 ! fact scale**2 for pdf1 |
2066 | 84 | q2fact(2) = sf2**2 ! fact scale**2 for pdf2 | 84 | q2fact(2) = sf2**2 ! fact scale**2 for pdf2 |
2067 | 85 | 85 | ||
2068 | 86 | if(pb1.ne.0d0)then | ||
2069 | 87 | if (abs(lpp(1)).eq.1.or.abs(lpp(1)).eq.2)then | ||
2070 | 88 | write(*,*) 'proton/anti-proton beam polarization are not allowed' | ||
2071 | 89 | stop 1 | ||
2072 | 90 | endif | ||
2073 | 91 | pol(1)=sign(1+abs(pb1)/100d0,pb1) | ||
2074 | 92 | endif | ||
2075 | 93 | if(pb2.ne.0d0)then | ||
2076 | 94 | if (abs(lpp(2)).eq.1.or.abs(lpp(2)).eq.2)then | ||
2077 | 95 | write(*,*) 'proton/anti-proton beam polarization are not allowed' | ||
2078 | 96 | stop 1 | ||
2079 | 97 | endif | ||
2080 | 98 | pol(2)=sign(1+abs(pb2)/100d0,pb2) | ||
2081 | 99 | endif | ||
2082 | 100 | |||
2083 | 86 | if(pb1.ne.0d0.and.lpp(1).eq.0) pol(1)=sign(1+abs(pb1)/100d0,pb1) | 101 | if(pb1.ne.0d0.and.lpp(1).eq.0) pol(1)=sign(1+abs(pb1)/100d0,pb1) |
2084 | 87 | if(pb2.ne.0d0.and.lpp(2).eq.0) pol(2)=sign(1+abs(pb2)/100d0,pb2) | 102 | if(pb2.ne.0d0.and.lpp(2).eq.0) pol(2)=sign(1+abs(pb2)/100d0,pb2) |
2085 | 88 | 103 | ||
2086 | 89 | if(pb1.ne.0.or.pb2.ne.0) write(*,*) 'Setting beam polarization ', | 104 | if(pb1.ne.0.or.pb2.ne.0) write(*,*) 'Setting beam polarization ', |
2089 | 90 | $ sign((abs(pol(1))-1)*100,pol(1)), | 105 | $ pol(1), pol(2) |
2090 | 91 | $ sign((abs(pol(2))-1)*100,pol(2)) | 106 | |
2091 | 92 | 107 | ||
2092 | 93 | c !!! Default behavior changed (MH, Aug. 07) !!! | 108 | c !!! Default behavior changed (MH, Aug. 07) !!! |
2093 | 94 | c If no pdf, read the param_card and use the value from there and | 109 | c If no pdf, read the param_card and use the value from there and |
2094 | 95 | 110 | ||
2095 | === modified file 'Template/LO/SubProcesses/genps.f' | |||
2096 | --- Template/LO/SubProcesses/genps.f 2020-06-15 07:16:51 +0000 | |||
2097 | +++ Template/LO/SubProcesses/genps.f 2020-08-13 08:01:43 +0000 | |||
2098 | @@ -572,6 +572,9 @@ | |||
2099 | 572 | if (abs(lpp(2)) .eq. 1 .or. abs(lpp(2)) .eq. 2) m2 = 0.938d0 | 572 | if (abs(lpp(2)) .eq. 1 .or. abs(lpp(2)) .eq. 2) m2 = 0.938d0 |
2100 | 573 | if (abs(lpp(1)) .eq. 3) m1 = 0.000511d0 | 573 | if (abs(lpp(1)) .eq. 3) m1 = 0.000511d0 |
2101 | 574 | if (abs(lpp(2)) .eq. 3) m2 = 0.000511d0 | 574 | if (abs(lpp(2)) .eq. 3) m2 = 0.000511d0 |
2102 | 575 | if (abs(lpp(1)) .eq. 4) m1 = 0.000511d0 | ||
2103 | 576 | if (abs(lpp(1)) .eq. 4) m1 = 0.105658d0 | ||
2104 | 577 | if (abs(lpp(2)) .eq. 4) m2 = 0.105658d0 | ||
2105 | 575 | if (mass_ion(1).ge.0d0) m1 = mass_ion(1) | 578 | if (mass_ion(1).ge.0d0) m1 = mass_ion(1) |
2106 | 576 | if (mass_ion(2).ge.0d0) m2 = mass_ion(2) | 579 | if (mass_ion(2).ge.0d0) m2 = mass_ion(2) |
2107 | 577 | if(ebeam(1).lt.m1.and.lpp(1).ne.9) ebeam(1)=m1 | 580 | if(ebeam(1).lt.m1.and.lpp(1).ne.9) ebeam(1)=m1 |
2108 | 578 | 581 | ||
2109 | === modified file 'Template/LO/SubProcesses/reweight.f' | |||
2110 | --- Template/LO/SubProcesses/reweight.f 2020-05-24 20:16:56 +0000 | |||
2111 | +++ Template/LO/SubProcesses/reweight.f 2020-08-13 08:01:43 +0000 | |||
2112 | @@ -1738,9 +1738,9 @@ | |||
2113 | 1738 | if (btest(mlevel,3)) | 1738 | if (btest(mlevel,3)) |
2114 | 1739 | $ write(*,*)' set fact scales for PS to ', | 1739 | $ write(*,*)' set fact scales for PS to ', |
2115 | 1740 | $ sqrt(q2fact(1)),sqrt(q2fact(2)) | 1740 | $ sqrt(q2fact(1)),sqrt(q2fact(2)) |
2117 | 1741 | else if (abs(lpp(1)).eq.2.or.abs(lpp(1)).eq.3) then | 1741 | else if (abs(lpp(1)).ge.2.and.abs(lpp(1)).le.4) then |
2118 | 1742 | q2fact(1)=q2bck(1) | 1742 | q2fact(1)=q2bck(1) |
2120 | 1743 | else if (abs(lpp(2)).eq.2.or.abs(lpp(2)).eq.3) then | 1743 | else if (abs(lpp(2)).ge.2.or.abs(lpp(2)).le.4) then |
2121 | 1744 | q2fact(2)=q2bck(2) | 1744 | q2fact(2)=q2bck(2) |
2122 | 1745 | endif | 1745 | endif |
2123 | 1746 | 1746 | ||
2124 | 1747 | 1747 | ||
2125 | === modified file 'Template/LO/SubProcesses/unwgt.f' | |||
2126 | --- Template/LO/SubProcesses/unwgt.f 2020-05-20 11:52:45 +0000 | |||
2127 | +++ Template/LO/SubProcesses/unwgt.f 2020-08-13 08:01:43 +0000 | |||
2128 | @@ -145,10 +145,19 @@ | |||
2129 | 145 | C compute the boost for the requested transformation | 145 | C compute the boost for the requested transformation |
2130 | 146 | implicit none | 146 | implicit none |
2131 | 147 | double precision pin(0:3), pout(0:3) | 147 | double precision pin(0:3), pout(0:3) |
2133 | 148 | double precision denom | 148 | double precision denom, control |
2134 | 149 | 149 | ||
2135 | 150 | denom = pin(0)*pout(0) - pin(3)*pout(3) | 150 | denom = pin(0)*pout(0) - pin(3)*pout(3) |
2136 | 151 | if (denom.ne.0d0) then | 151 | if (denom.ne.0d0) then |
2137 | 152 | control = pin(0)*pout(0) + pin(3)*pout(3) | ||
2138 | 153 | if (denom/control.gt.1d-12)then | ||
2139 | 154 | get_betaz = (pin(3) * pout(0) - pout(3) * pin(0)) / denom | ||
2140 | 155 | c pass in massless case | ||
2141 | 156 | else if (abs(pin(0)+pin(3)).gt.abs(pin(0))) then | ||
2142 | 157 | get_betaz = (pin(0)**2 - pout(0)**2)/(pin(0)**2 + pout(0)**2) | ||
2143 | 158 | else | ||
2144 | 159 | get_betaz = (pout(0)**2 - pin(0)**2)/(pin(0)**2 + pout(0)**2) | ||
2145 | 160 | endif | ||
2146 | 152 | get_betaz = (pin(3) * pout(0) - pout(3) * pin(0)) / denom | 161 | get_betaz = (pin(3) * pout(0) - pout(3) * pin(0)) / denom |
2147 | 153 | else if (pin(0).eq.pin(3)) then | 162 | else if (pin(0).eq.pin(3)) then |
2148 | 154 | get_betaz = (pin(0)**2 - pout(0)**2)/(pin(0)**2 + pout(0)**2) | 163 | get_betaz = (pin(0)**2 - pout(0)**2)/(pin(0)**2 + pout(0)**2) |
2149 | 155 | 164 | ||
2150 | === modified file 'Template/MadWeight/src/setrun.f' | |||
2151 | --- Template/MadWeight/src/setrun.f 2018-04-27 21:01:37 +0000 | |||
2152 | +++ Template/MadWeight/src/setrun.f 2020-08-13 08:01:43 +0000 | |||
2153 | @@ -536,3 +536,11 @@ | |||
2154 | 536 | 536 | ||
2155 | 537 | return | 537 | return |
2156 | 538 | end | 538 | end |
2157 | 539 | |||
2158 | 540 | INTEGER FUNCTION GET_NHEL(HEL, IPART) | ||
2159 | 541 | implicit none | ||
2160 | 542 | integer hel | ||
2161 | 543 | integer ipart | ||
2162 | 544 | get_nhel = 99 | ||
2163 | 545 | return | ||
2164 | 546 | end | ||
2165 | 539 | 547 | ||
2166 | === modified file 'UpdateNotes.txt' | |||
2167 | --- UpdateNotes.txt 2020-06-21 12:17:36 +0000 | |||
2168 | +++ UpdateNotes.txt 2020-08-13 08:01:43 +0000 | |||
2169 | @@ -1,5 +1,23 @@ | |||
2170 | 1 | Update notes for MadGraph5_aMC@NLO (in reverse time order) | 1 | Update notes for MadGraph5_aMC@NLO (in reverse time order) |
2171 | 2 | 2 | ||
2172 | 3 | 2.8.0: | ||
2173 | 4 | OM: In madspin_card you can now replace the line "launch" | ||
2174 | 5 | by "launch -n NAME", this will allow to specify the name of the | ||
2175 | 6 | directory in EVENTS where that run is stored. | ||
2176 | 7 | OM: Change in the python interface of the standalone output. In top of the pdg of the particles, | ||
2177 | 8 | you can now use the process_id (the one specified with @X) to distinguish process with the same particle | ||
2178 | 9 | content. This parameter can be set to -1 and the function then ignore that parameter. | ||
2179 | 10 | OM: Adding new option in reweighting to allow the user to use the process_id in presence of ambiguous | ||
2180 | 11 | initial/final state. | ||
2181 | 12 | OM: For LO process, you can now set lpp1 and lpp2 to "4" for process with initial photon in order to get the | ||
2182 | 13 | effective photon approximation. This mode behaves like the "3" one: The cut-off scale of the approximation | ||
2183 | 14 | is taken from the fixed renormalization factorisation scale: "dsqrt_q2fact1/dsqrt_q2fact2" | ||
2184 | 15 | OM: Update the makefile of standalone interface to python to be able to compile in multicore. | ||
2185 | 16 | (thanks Matthias Komm) | ||
2186 | 17 | OM: Update of the auto-width code to support UFO form-factors | ||
2187 | 18 | OM: Fixing numerical issue at very low invariant mass and another numerical issue with the boost in EPA mode. | ||
2188 | 19 | |||
2189 | 20 | |||
2190 | 3 | 2.7.3(21/06/20) | 21 | 2.7.3(21/06/20) |
2191 | 4 | OM: Fixing some bug for read-only LO gridpacks (wrong cross-section and shape when generating events). | 22 | OM: Fixing some bug for read-only LO gridpacks (wrong cross-section and shape when generating events). |
2192 | 5 | Thanks to Congqiao Li for this | 23 | Thanks to Congqiao Li for this |
2193 | 6 | 24 | ||
2194 | === modified file 'aloha/aloha_writers.py' | |||
2195 | --- aloha/aloha_writers.py 2020-01-09 23:14:56 +0000 | |||
2196 | +++ aloha/aloha_writers.py 2020-08-13 08:01:43 +0000 | |||
2197 | @@ -1241,12 +1241,15 @@ | |||
2198 | 1241 | """ build the name for combined aloha function """ | 1241 | """ build the name for combined aloha function """ |
2199 | 1242 | 1242 | ||
2200 | 1243 | def myHash(target_string): | 1243 | def myHash(target_string): |
2201 | 1244 | suffix = '' | ||
2202 | 1245 | if '%(propa)s' in target_string: | ||
2203 | 1246 | target_string = target_string.replace('%(propa)s','') | ||
2204 | 1247 | suffix = '%(propa)s' | ||
2205 | 1248 | |||
2206 | 1244 | if len(target_string)<50: | 1249 | if len(target_string)<50: |
2210 | 1245 | return target_string | 1250 | return '%s%s' % (target_string, suffix) |
2208 | 1246 | if '%(propa)s' in target_string: | ||
2209 | 1247 | return 'ALOHA_'+(str(hash(target_string.lower()))).replace('-','m')+'%(propa)s' | ||
2211 | 1248 | else: | 1251 | else: |
2213 | 1249 | return 'ALOHA_'+(str(hash(target_string.lower()))).replace('-','m') | 1252 | return 'ALOHA_%s%s' % (str(hash(target_string.lower())).replace('-','m'), suffix) |
2214 | 1250 | 1253 | ||
2215 | 1251 | if tag and any(t.startswith('P') for t in tag[:-1]): | 1254 | if tag and any(t.startswith('P') for t in tag[:-1]): |
2216 | 1252 | # propagator need to be the last entry for the tag | 1255 | # propagator need to be the last entry for the tag |
2217 | 1253 | 1256 | ||
2218 | === modified file 'madgraph/core/base_objects.py' | |||
2219 | --- madgraph/core/base_objects.py 2020-05-07 13:47:24 +0000 | |||
2220 | +++ madgraph/core/base_objects.py 2020-08-13 08:01:43 +0000 | |||
2221 | @@ -1222,7 +1222,8 @@ | |||
2222 | 1222 | 1222 | ||
2223 | 1223 | if name == 'particles': | 1223 | if name == 'particles': |
2224 | 1224 | # Ensure no doublets in particle list | 1224 | # Ensure no doublets in particle list |
2226 | 1225 | make_unique(value) | 1225 | if value: |
2227 | 1226 | make_unique(value) | ||
2228 | 1226 | # Reset dictionaries | 1227 | # Reset dictionaries |
2229 | 1227 | self['particle_dict'] = {} | 1228 | self['particle_dict'] = {} |
2230 | 1228 | self['ref_dict_to0'] = {} | 1229 | self['ref_dict_to0'] = {} |
2231 | @@ -4053,7 +4054,7 @@ | |||
2232 | 4053 | is needed""" | 4054 | is needed""" |
2233 | 4054 | 4055 | ||
2234 | 4055 | assert isinstance(doubletlist, list), \ | 4056 | assert isinstance(doubletlist, list), \ |
2236 | 4056 | "Argument to make_unique must be list" | 4057 | "Argument to make_unique must be list not %s" % type(doubletlist) |
2237 | 4057 | 4058 | ||
2238 | 4058 | 4059 | ||
2239 | 4059 | uniquelist = [] | 4060 | uniquelist = [] |
2240 | 4060 | 4061 | ||
2241 | === modified file 'madgraph/interface/common_run_interface.py' | |||
2242 | --- madgraph/interface/common_run_interface.py 2020-06-17 07:23:03 +0000 | |||
2243 | +++ madgraph/interface/common_run_interface.py 2020-08-13 08:01:43 +0000 | |||
2244 | @@ -3704,11 +3704,21 @@ | |||
2245 | 3704 | 3704 | ||
2246 | 3705 | madspin_cmd.import_command_file(path) | 3705 | madspin_cmd.import_command_file(path) |
2247 | 3706 | 3706 | ||
2253 | 3707 | # create a new run_name directory for this output | 3707 | |
2254 | 3708 | i = 1 | 3708 | if not madspin_cmd.me_run_name: |
2255 | 3709 | while os.path.exists(pjoin(self.me_dir,'Events', '%s_decayed_%i' % (self.run_name,i))): | 3709 | # create a new run_name directory for this output |
2256 | 3710 | i+=1 | 3710 | i = 1 |
2257 | 3711 | new_run = '%s_decayed_%i' % (self.run_name,i) | 3711 | while os.path.exists(pjoin(self.me_dir,'Events', '%s_decayed_%i' % (self.run_name,i))): |
2258 | 3712 | i+=1 | ||
2259 | 3713 | new_run = '%s_decayed_%i' % (self.run_name,i) | ||
2260 | 3714 | else: | ||
2261 | 3715 | new_run = madspin_cmd.me_run_name | ||
2262 | 3716 | if os.path.exists(pjoin(self.me_dir,'Events', new_run)): | ||
2263 | 3717 | i = 1 | ||
2264 | 3718 | while os.path.exists(pjoin(self.me_dir,'Events', '%s_%i' % (new_run,i))): | ||
2265 | 3719 | i+=1 | ||
2266 | 3720 | new_run = '%s_%i' % (new_run,i) | ||
2267 | 3721 | |||
2268 | 3712 | evt_dir = pjoin(self.me_dir, 'Events') | 3722 | evt_dir = pjoin(self.me_dir, 'Events') |
2269 | 3713 | 3723 | ||
2270 | 3714 | os.mkdir(pjoin(evt_dir, new_run)) | 3724 | os.mkdir(pjoin(evt_dir, new_run)) |
2271 | @@ -5828,6 +5838,21 @@ | |||
2272 | 5828 | self.run_card['mass_ion1'] != self.run_card['mass_ion2']): | 5838 | self.run_card['mass_ion1'] != self.run_card['mass_ion2']): |
2273 | 5829 | raise Exception, "Heavy ion profile for both beam are different but the symmetry used forbids it. \n Please generate your process with \"set group_subprocesses False\"." | 5839 | raise Exception, "Heavy ion profile for both beam are different but the symmetry used forbids it. \n Please generate your process with \"set group_subprocesses False\"." |
2274 | 5830 | 5840 | ||
2275 | 5841 | # EWA mode should use MC over polarization and no systematics (due to pdf call inreweight) | ||
2276 | 5842 | if self.run_card['lpp1'] in [2,3,4,-3,-4] or self.run_card['lpp2'] in [2,3,4,-3,-4]: | ||
2277 | 5843 | if any(pdg in proc_charac['pdg_initial1']+ proc_charac['pdg_initial2'] | ||
2278 | 5844 | for pdg in [24, -24, 23]): | ||
2279 | 5845 | if self.run_card['nhel'] == 0: | ||
2280 | 5846 | logger.warning("only MC over polarization supported for EWA mode") | ||
2281 | 5847 | self.do_set('run_card nhel 1') | ||
2282 | 5848 | if self.run_card['use_syst']: | ||
2283 | 5849 | logger.warning("evaluation of systematics not allowed in EWA mode. set use_syst to False") | ||
2284 | 5850 | self.do_set('run_card use_syst False') | ||
2285 | 5851 | |||
2286 | 5852 | if self.run_card['lpp1'] in [4,-4] or self.run_card['lpp2'] in [4,-4]: | ||
2287 | 5853 | if 22 in proc_charac['pdg_initial1']+ proc_charac['pdg_initial2']: | ||
2288 | 5854 | raise Exception, "EPA not implemented from muon beam. (please open a ticket and we will do it)" | ||
2289 | 5855 | |||
2290 | 5831 | # check the status of small width status from LO | 5856 | # check the status of small width status from LO |
2291 | 5832 | for param in self.param_card['decay']: | 5857 | for param in self.param_card['decay']: |
2292 | 5833 | width = param.value | 5858 | width = param.value |
2293 | 5834 | 5859 | ||
2294 | === modified file 'madgraph/interface/madevent_interface.py' | |||
2295 | --- madgraph/interface/madevent_interface.py 2020-06-18 20:23:25 +0000 | |||
2296 | +++ madgraph/interface/madevent_interface.py 2020-08-13 08:01:43 +0000 | |||
2297 | @@ -5414,6 +5414,7 @@ | |||
2298 | 5414 | elif mode in [1,2]: | 5414 | elif mode in [1,2]: |
2299 | 5415 | exename = os.path.basename(exe) | 5415 | exename = os.path.basename(exe) |
2300 | 5416 | # For condor cluster, create the input/output files | 5416 | # For condor cluster, create the input/output files |
2301 | 5417 | misc.sprint(exename) | ||
2302 | 5417 | if 'ajob' in exename: | 5418 | if 'ajob' in exename: |
2303 | 5418 | input_files = ['madevent','input_app.txt','symfact.dat','iproc.dat','dname.mg', | 5419 | input_files = ['madevent','input_app.txt','symfact.dat','iproc.dat','dname.mg', |
2304 | 5419 | pjoin(self.me_dir, 'SubProcesses','randinit')] | 5420 | pjoin(self.me_dir, 'SubProcesses','randinit')] |
2305 | @@ -5509,7 +5510,7 @@ | |||
2306 | 5509 | #submitting | 5510 | #submitting |
2307 | 5510 | self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument, | 5511 | self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument, |
2308 | 5511 | input_files=input_files, output_files=output_files, | 5512 | input_files=input_files, output_files=output_files, |
2310 | 5512 | required_output=required_output, **opt) | 5513 | required_output=required_output, allow_array=True, **opt) |
2311 | 5513 | elif "refine_splitted.sh" in exename: | 5514 | elif "refine_splitted.sh" in exename: |
2312 | 5514 | input_files = ['madevent','symfact.dat','iproc.dat', 'dname.mg', | 5515 | input_files = ['madevent','symfact.dat','iproc.dat', 'dname.mg', |
2313 | 5515 | pjoin(self.me_dir, 'SubProcesses','randinit')] | 5516 | pjoin(self.me_dir, 'SubProcesses','randinit')] |
2314 | @@ -5533,7 +5534,7 @@ | |||
2315 | 5533 | #submitting | 5534 | #submitting |
2316 | 5534 | self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument, | 5535 | self.cluster.cluster_submit(exe, stdout=stdout, cwd=cwd, argument=argument, |
2317 | 5535 | input_files=input_files, output_files=output_files, | 5536 | input_files=input_files, output_files=output_files, |
2319 | 5536 | required_output=required_output, **opt) | 5537 | required_output=required_output,allow_array=True, **opt) |
2320 | 5537 | 5538 | ||
2321 | 5538 | 5539 | ||
2322 | 5539 | 5540 | ||
2323 | 5540 | 5541 | ||
2324 | === modified file 'madgraph/interface/madgraph_interface.py' | |||
2325 | --- madgraph/interface/madgraph_interface.py 2020-06-17 06:15:07 +0000 | |||
2326 | +++ madgraph/interface/madgraph_interface.py 2020-08-13 08:01:43 +0000 | |||
2327 | @@ -8353,7 +8353,7 @@ | |||
2328 | 8353 | decay_dir = pjoin(path,'temp_decay') | 8353 | decay_dir = pjoin(path,'temp_decay') |
2329 | 8354 | logger_mg.info('More info in temporary files:\n %s/index.html' % (decay_dir)) | 8354 | logger_mg.info('More info in temporary files:\n %s/index.html' % (decay_dir)) |
2330 | 8355 | with misc.MuteLogger(['madgraph','ALOHA','cmdprint','madevent'], [40,40,40,40]): | 8355 | with misc.MuteLogger(['madgraph','ALOHA','cmdprint','madevent'], [40,40,40,40]): |
2332 | 8356 | self.exec_cmd('output %s -f' % decay_dir,child=False) | 8356 | self.exec_cmd('output madevent %s -f' % decay_dir,child=False) |
2333 | 8357 | 8357 | ||
2334 | 8358 | #modify some parameter of the default run_card | 8358 | #modify some parameter of the default run_card |
2335 | 8359 | run_card = banner_module.RunCard(pjoin(decay_dir,'Cards','run_card.dat')) | 8359 | run_card = banner_module.RunCard(pjoin(decay_dir,'Cards','run_card.dat')) |
2336 | 8360 | 8360 | ||
2337 | === modified file 'madgraph/interface/reweight_interface.py' | |||
2338 | --- madgraph/interface/reweight_interface.py 2020-06-16 13:10:57 +0000 | |||
2339 | +++ madgraph/interface/reweight_interface.py 2020-08-13 08:01:43 +0000 | |||
2340 | @@ -111,6 +111,7 @@ | |||
2341 | 111 | self.rwgt_dir = None | 111 | self.rwgt_dir = None |
2342 | 112 | self.exitted = False # Flag to know if do_quit was already called. | 112 | self.exitted = False # Flag to know if do_quit was already called. |
2343 | 113 | self.keep_ordering = False | 113 | self.keep_ordering = False |
2344 | 114 | self.use_eventid = False | ||
2345 | 114 | if event_path: | 115 | if event_path: |
2346 | 115 | logger.info("Extracting the banner ...") | 116 | logger.info("Extracting the banner ...") |
2347 | 116 | self.do_import(event_path, allow_madspin=allow_madspin) | 117 | self.do_import(event_path, allow_madspin=allow_madspin) |
2348 | @@ -356,8 +357,8 @@ | |||
2349 | 356 | if self.has_standalone_dir: | 357 | if self.has_standalone_dir: |
2350 | 357 | self.terminate_fortran_executables() | 358 | self.terminate_fortran_executables() |
2351 | 358 | self.has_standalone_dir = False | 359 | self.has_standalone_dir = False |
2354 | 359 | elif args[0] == "keep_ordering": | 360 | elif args[0] in ["keep_ordering", "use_eventid"]: |
2355 | 360 | self.keep_ordering = banner.ConfigFile.format_variable(args[1], bool, "keep_ordering") | 361 | setattr(self, args[0], banner.ConfigFile.format_variable(args[1], bool, args[0])) |
2356 | 361 | elif args[0] == "allow_missing_finalstate": | 362 | elif args[0] == "allow_missing_finalstate": |
2357 | 362 | self.options["allow_missing_finalstate"] = banner.ConfigFile.format_variable(args[1], bool, "allow_missing_finalstate") | 363 | self.options["allow_missing_finalstate"] = banner.ConfigFile.format_variable(args[1], bool, "allow_missing_finalstate") |
2358 | 363 | elif args[0] == "process": | 364 | elif args[0] == "process": |
2359 | @@ -980,11 +981,12 @@ | |||
2360 | 980 | def calculate_weight(self, event): | 981 | def calculate_weight(self, event): |
2361 | 981 | """space defines where to find the calculator (in multicore)""" | 982 | """space defines where to find the calculator (in multicore)""" |
2362 | 982 | 983 | ||
2367 | 983 | if not hasattr(self,'pdf'): | 984 | |
2364 | 984 | lhapdf = misc.import_python_lhapdf(self.mg5cmd.options['lhapdf']) | ||
2365 | 985 | self.pdf = lhapdf.mkPDF(self.banner.run_card.get_lhapdf_id()) | ||
2366 | 986 | |||
2368 | 987 | if self.has_nlo and self.rwgt_mode != "LO": | 985 | if self.has_nlo and self.rwgt_mode != "LO": |
2369 | 986 | if not hasattr(self,'pdf'): | ||
2370 | 987 | lhapdf = misc.import_python_lhapdf(self.mg5cmd.options['lhapdf']) | ||
2371 | 988 | self.pdf = lhapdf.mkPDF(self.banner.run_card.get_lhapdf_id()) | ||
2372 | 989 | |||
2373 | 988 | return self.calculate_nlo_weight(event) | 990 | return self.calculate_nlo_weight(event) |
2374 | 989 | 991 | ||
2375 | 990 | event.parse_reweight() | 992 | event.parse_reweight() |
2376 | @@ -1206,7 +1208,7 @@ | |||
2377 | 1206 | # base = "rw_mevirt" | 1208 | # base = "rw_mevirt" |
2378 | 1207 | #else: | 1209 | #else: |
2379 | 1208 | # base = "rw_me" | 1210 | # base = "rw_me" |
2381 | 1209 | 1211 | ||
2382 | 1210 | if (not self.second_model and not self.second_process and not self.dedicated_path) or hypp_id==0: | 1212 | if (not self.second_model and not self.second_process and not self.dedicated_path) or hypp_id==0: |
2383 | 1211 | orig_order, Pdir, hel_dict = self.id_to_path[tag] | 1213 | orig_order, Pdir, hel_dict = self.id_to_path[tag] |
2384 | 1212 | else: | 1214 | else: |
2385 | @@ -1269,10 +1271,16 @@ | |||
2386 | 1269 | pold = list(p) | 1271 | pold = list(p) |
2387 | 1270 | p = self.invert_momenta(p) | 1272 | p = self.invert_momenta(p) |
2388 | 1271 | pdg = list(orig_order[0])+list(orig_order[1]) | 1273 | pdg = list(orig_order[0])+list(orig_order[1]) |
2390 | 1272 | 1274 | try: | |
2391 | 1275 | pid = event.ievent | ||
2392 | 1276 | except AttributeError: | ||
2393 | 1277 | pid = -1 | ||
2394 | 1278 | if not self.use_eventid: | ||
2395 | 1279 | pid = -1 | ||
2396 | 1280 | |||
2397 | 1273 | with misc.chdir(Pdir): | 1281 | with misc.chdir(Pdir): |
2398 | 1274 | with misc.stdchannel_redirected(sys.stdout, os.devnull): | 1282 | with misc.stdchannel_redirected(sys.stdout, os.devnull): |
2400 | 1275 | me_value = module.smatrixhel(pdg,p, event.aqcd, scale2, nhel) | 1283 | me_value = module.smatrixhel(pdg, pid, p, event.aqcd, scale2, nhel) |
2401 | 1276 | 1284 | ||
2402 | 1277 | # for loop we have also the stability status code | 1285 | # for loop we have also the stability status code |
2403 | 1278 | if isinstance(me_value, tuple): | 1286 | if isinstance(me_value, tuple): |
2404 | @@ -1387,10 +1395,12 @@ | |||
2405 | 1387 | nlo_order = nlo_order.replace('noborn', 'virt') | 1395 | nlo_order = nlo_order.replace('noborn', 'virt') |
2406 | 1388 | commandline += "add process %s [%s] %s;" % (base,nlo_order,post) | 1396 | commandline += "add process %s [%s] %s;" % (base,nlo_order,post) |
2407 | 1389 | commandline = commandline.replace('add process', 'generate',1) | 1397 | commandline = commandline.replace('add process', 'generate',1) |
2411 | 1390 | logger.info("RETRY with %s", commandline) | 1398 | if commandline: |
2412 | 1391 | mgcmd.exec_cmd(commandline, precmd=True) | 1399 | logger.info("RETRY with %s", commandline) |
2413 | 1392 | has_nlo = False | 1400 | mgcmd.exec_cmd(commandline, precmd=True) |
2414 | 1401 | has_nlo = False | ||
2415 | 1393 | except Exception, error: | 1402 | except Exception, error: |
2416 | 1403 | misc.sprint(type(error)) | ||
2417 | 1394 | raise | 1404 | raise |
2418 | 1395 | 1405 | ||
2419 | 1396 | commandline = 'output standalone_rw %s --prefix=int' % pjoin(path_me,data['paths'][0]) | 1406 | commandline = 'output standalone_rw %s --prefix=int' % pjoin(path_me,data['paths'][0]) |
2420 | @@ -1802,8 +1812,9 @@ | |||
2421 | 1802 | data = self.id_to_path_second | 1812 | data = self.id_to_path_second |
2422 | 1803 | 1813 | ||
2423 | 1804 | # get all the information | 1814 | # get all the information |
2426 | 1805 | all_pdgs = mymod.get_pdg_order() | 1815 | allids, all_pids = mymod.get_pdg_order() |
2427 | 1806 | all_pdgs = [[pdg for pdg in pdgs if pdg!=0] for pdgs in mymod.get_pdg_order()] | 1816 | all_pdgs = [[pdg for pdg in pdgs if pdg!=0] for pdgs in allids] |
2428 | 1817 | #all_pids = [pid for (pdgs, pid) in allids] | ||
2429 | 1807 | all_prefix = [''.join(j).strip().lower() for j in mymod.get_prefix()] | 1818 | all_prefix = [''.join(j).strip().lower() for j in mymod.get_prefix()] |
2430 | 1808 | prefix_set = set(all_prefix) | 1819 | prefix_set = set(all_prefix) |
2431 | 1809 | 1820 | ||
2432 | @@ -1826,7 +1837,7 @@ | |||
2433 | 1826 | misc.sprint(os.path.exists(pjoin(path_me,onedir,'SubProcesses','MadLoop5_resources', '%sHelConfigs.dat' % prefix.upper()))) | 1837 | misc.sprint(os.path.exists(pjoin(path_me,onedir,'SubProcesses','MadLoop5_resources', '%sHelConfigs.dat' % prefix.upper()))) |
2434 | 1827 | continue | 1838 | continue |
2435 | 1828 | 1839 | ||
2437 | 1829 | for i,pdg in enumerate(all_pdgs): | 1840 | for i,(pdg,pid) in enumerate(zip(all_pdgs,all_pids)): |
2438 | 1830 | if self.is_decay: | 1841 | if self.is_decay: |
2439 | 1831 | incoming = [pdg[0]] | 1842 | incoming = [pdg[0]] |
2440 | 1832 | outgoing = pdg[1:] | 1843 | outgoing = pdg[1:] |
2441 | 1833 | 1844 | ||
2442 | === modified file 'madgraph/iolibs/export_v4.py' | |||
2443 | --- madgraph/iolibs/export_v4.py 2020-06-20 21:10:10 +0000 | |||
2444 | +++ madgraph/iolibs/export_v4.py 2020-08-13 08:01:43 +0000 | |||
2445 | @@ -166,6 +166,7 @@ | |||
2446 | 166 | self.mgme_dir = MG5DIR | 166 | self.mgme_dir = MG5DIR |
2447 | 167 | self.dir_path = dir_path | 167 | self.dir_path = dir_path |
2448 | 168 | self.model = None | 168 | self.model = None |
2449 | 169 | self.beam_polarization = True | ||
2450 | 169 | 170 | ||
2451 | 170 | self.opt = dict(self.default_opt) | 171 | self.opt = dict(self.default_opt) |
2452 | 171 | if opt: | 172 | if opt: |
2453 | @@ -185,12 +186,48 @@ | |||
2454 | 185 | def export_processes(self, matrix_elements, fortran_model): | 186 | def export_processes(self, matrix_elements, fortran_model): |
2455 | 186 | """Make the switch between grouped and not grouped output""" | 187 | """Make the switch between grouped and not grouped output""" |
2456 | 187 | 188 | ||
2457 | 189 | |||
2458 | 188 | calls = 0 | 190 | calls = 0 |
2459 | 189 | if isinstance(matrix_elements, group_subprocs.SubProcessGroupList): | 191 | if isinstance(matrix_elements, group_subprocs.SubProcessGroupList): |
2460 | 192 | # check handling for the polarization | ||
2461 | 193 | for m in matrix_elements: | ||
2462 | 194 | for me in m.get('matrix_elements'): | ||
2463 | 195 | for p in me.get('processes'): | ||
2464 | 196 | for pid in p.get_initial_ids(): | ||
2465 | 197 | spin = p.get('model').get_particle(pid).get('spin') | ||
2466 | 198 | if spin != 2: | ||
2467 | 199 | self.beam_polarization = False | ||
2468 | 200 | break | ||
2469 | 201 | else: | ||
2470 | 202 | continue | ||
2471 | 203 | break | ||
2472 | 204 | else: | ||
2473 | 205 | continue | ||
2474 | 206 | break | ||
2475 | 207 | else: | ||
2476 | 208 | continue | ||
2477 | 209 | break | ||
2478 | 210 | |||
2479 | 190 | for (group_number, me_group) in enumerate(matrix_elements): | 211 | for (group_number, me_group) in enumerate(matrix_elements): |
2480 | 191 | calls = calls + self.generate_subprocess_directory(\ | 212 | calls = calls + self.generate_subprocess_directory(\ |
2481 | 192 | me_group, fortran_model, group_number) | 213 | me_group, fortran_model, group_number) |
2482 | 193 | else: | 214 | else: |
2483 | 215 | # check handling for the polarization | ||
2484 | 216 | self.beam_polarization = True | ||
2485 | 217 | for me in matrix_elements.get_matrix_elements(): | ||
2486 | 218 | for p in me.get('processes'): | ||
2487 | 219 | for pid in p.get_initial_ids(): | ||
2488 | 220 | spin = p.get('model').get_particle(pid).get('spin') | ||
2489 | 221 | if spin != 2: | ||
2490 | 222 | self.beam_polarization = False | ||
2491 | 223 | break | ||
2492 | 224 | else: | ||
2493 | 225 | continue | ||
2494 | 226 | break | ||
2495 | 227 | else: | ||
2496 | 228 | continue | ||
2497 | 229 | break | ||
2498 | 230 | |||
2499 | 194 | for me_number, me in enumerate(matrix_elements.get_matrix_elements()): | 231 | for me_number, me in enumerate(matrix_elements.get_matrix_elements()): |
2500 | 195 | calls = calls + self.generate_subprocess_directory(\ | 232 | calls = calls + self.generate_subprocess_directory(\ |
2501 | 196 | me, fortran_model, me_number) | 233 | me, fortran_model, me_number) |
2502 | @@ -2066,17 +2103,18 @@ | |||
2503 | 2066 | 2103 | ||
2504 | 2067 | template = """ | 2104 | template = """ |
2505 | 2068 | %(python_information)s | 2105 | %(python_information)s |
2507 | 2069 | subroutine smatrixhel(pdgs, npdg, p, ALPHAS, SCALE2, nhel, ANS) | 2106 | subroutine smatrixhel(pdgs, procid, npdg, p, ALPHAS, SCALE2, nhel, ANS) |
2508 | 2070 | IMPLICIT NONE | 2107 | IMPLICIT NONE |
2509 | 2071 | 2108 | ||
2510 | 2072 | CF2PY double precision, intent(in), dimension(0:3,npdg) :: p | 2109 | CF2PY double precision, intent(in), dimension(0:3,npdg) :: p |
2511 | 2073 | CF2PY integer, intent(in), dimension(npdg) :: pdgs | 2110 | CF2PY integer, intent(in), dimension(npdg) :: pdgs |
2512 | 2111 | CF2PY integer, intent(in):: procid | ||
2513 | 2074 | CF2PY integer, intent(in) :: npdg | 2112 | CF2PY integer, intent(in) :: npdg |
2514 | 2075 | CF2PY double precision, intent(out) :: ANS | 2113 | CF2PY double precision, intent(out) :: ANS |
2515 | 2076 | CF2PY double precision, intent(in) :: ALPHAS | 2114 | CF2PY double precision, intent(in) :: ALPHAS |
2516 | 2077 | CF2PY double precision, intent(in) :: SCALE2 | 2115 | CF2PY double precision, intent(in) :: SCALE2 |
2517 | 2078 | integer pdgs(*) | 2116 | integer pdgs(*) |
2519 | 2079 | integer npdg, nhel | 2117 | integer npdg, nhel, procid |
2520 | 2080 | double precision p(*) | 2118 | double precision p(*) |
2521 | 2081 | double precision ANS, ALPHAS, PI,SCALE2 | 2119 | double precision ANS, ALPHAS, PI,SCALE2 |
2522 | 2082 | include 'coupl.inc' | 2120 | include 'coupl.inc' |
2523 | @@ -2128,12 +2166,16 @@ | |||
2524 | 2128 | end | 2166 | end |
2525 | 2129 | 2167 | ||
2526 | 2130 | 2168 | ||
2528 | 2131 | subroutine get_pdg_order(PDG) | 2169 | subroutine get_pdg_order(PDG, ALLPROC) |
2529 | 2132 | IMPLICIT NONE | 2170 | IMPLICIT NONE |
2530 | 2133 | CF2PY INTEGER, intent(out) :: PDG(%(nb_me)i,%(maxpart)i) | 2171 | CF2PY INTEGER, intent(out) :: PDG(%(nb_me)i,%(maxpart)i) |
2531 | 2172 | CF2PY INTEGER, intent(out) :: ALLPROC(%(nb_me)i) | ||
2532 | 2134 | INTEGER PDG(%(nb_me)i,%(maxpart)i), PDGS(%(nb_me)i,%(maxpart)i) | 2173 | INTEGER PDG(%(nb_me)i,%(maxpart)i), PDGS(%(nb_me)i,%(maxpart)i) |
2533 | 2174 | INTEGER ALLPROC(%(nb_me)i),PIDs(%(nb_me)i) | ||
2534 | 2135 | DATA PDGS/ %(pdgs)s / | 2175 | DATA PDGS/ %(pdgs)s / |
2535 | 2176 | DATA PIDS/ %(pids)s / | ||
2536 | 2136 | PDG = PDGS | 2177 | PDG = PDGS |
2537 | 2178 | ALLPROC = PIDS | ||
2538 | 2137 | RETURN | 2179 | RETURN |
2539 | 2138 | END | 2180 | END |
2540 | 2139 | 2181 | ||
2541 | @@ -2151,31 +2193,33 @@ | |||
2542 | 2151 | 2193 | ||
2543 | 2152 | allids = self.prefix_info.keys() | 2194 | allids = self.prefix_info.keys() |
2544 | 2153 | allprefix = [self.prefix_info[key][0] for key in allids] | 2195 | allprefix = [self.prefix_info[key][0] for key in allids] |
2547 | 2154 | min_nexternal = min([len(ids) for ids in allids]) | 2196 | min_nexternal = min([len(ids[0]) for ids in allids]) |
2548 | 2155 | max_nexternal = max([len(ids) for ids in allids]) | 2197 | max_nexternal = max([len(ids[0]) for ids in allids]) |
2549 | 2156 | 2198 | ||
2550 | 2157 | info = [] | 2199 | info = [] |
2553 | 2158 | for key, (prefix, tag) in self.prefix_info.items(): | 2200 | for (key, pid), (prefix, tag) in self.prefix_info.items(): |
2554 | 2159 | info.append('#PY %s : %s # %s' % (tag, key, prefix)) | 2201 | info.append('#PY %s : %s # %s %s' % (tag, key, prefix, pid)) |
2555 | 2160 | 2202 | ||
2556 | 2161 | 2203 | ||
2557 | 2162 | text = [] | 2204 | text = [] |
2558 | 2163 | for n_ext in range(min_nexternal, max_nexternal+1): | 2205 | for n_ext in range(min_nexternal, max_nexternal+1): |
2561 | 2164 | current = [ids for ids in allids if len(ids)==n_ext] | 2206 | current_id = [ids[0] for ids in allids if len(ids[0])==n_ext] |
2562 | 2165 | if not current: | 2207 | current_pid = [ids[1] for ids in allids if len(ids[0])==n_ext] |
2563 | 2208 | if not current_id: | ||
2564 | 2166 | continue | 2209 | continue |
2565 | 2167 | if min_nexternal != max_nexternal: | 2210 | if min_nexternal != max_nexternal: |
2566 | 2168 | if n_ext == min_nexternal: | 2211 | if n_ext == min_nexternal: |
2567 | 2169 | text.append(' if (npdg.eq.%i)then' % n_ext) | 2212 | text.append(' if (npdg.eq.%i)then' % n_ext) |
2568 | 2170 | else: | 2213 | else: |
2569 | 2171 | text.append(' else if (npdg.eq.%i)then' % n_ext) | 2214 | text.append(' else if (npdg.eq.%i)then' % n_ext) |
2571 | 2172 | for ii,pdgs in enumerate(current): | 2215 | for ii,pdgs in enumerate(current_id): |
2572 | 2216 | pid = current_pid[ii] | ||
2573 | 2173 | condition = '.and.'.join(['%i.eq.pdgs(%i)' %(pdg, i+1) for i, pdg in enumerate(pdgs)]) | 2217 | condition = '.and.'.join(['%i.eq.pdgs(%i)' %(pdg, i+1) for i, pdg in enumerate(pdgs)]) |
2574 | 2174 | if ii==0: | 2218 | if ii==0: |
2576 | 2175 | text.append( ' if(%s) then ! %i' % (condition, i)) | 2219 | text.append( ' if(%s.and.(procid.le.0.or.procid.eq.%d)) then ! %i' % (condition, pid, i)) |
2577 | 2176 | else: | 2220 | else: |
2580 | 2177 | text.append( ' else if(%s) then ! %i' % (condition,i)) | 2221 | text.append( ' else if(%s.and.(procid.le.0.or.procid.eq.%d)) then ! %i' % (condition,pid,i)) |
2581 | 2178 | text.append(' call %ssmatrixhel(p, nhel, ans)' % self.prefix_info[pdgs][0]) | 2222 | text.append(' call %ssmatrixhel(p, nhel, ans)' % self.prefix_info[(pdgs,pid)][0]) |
2582 | 2179 | text.append(' endif') | 2223 | text.append(' endif') |
2583 | 2180 | #close the function | 2224 | #close the function |
2584 | 2181 | if min_nexternal != max_nexternal: | 2225 | if min_nexternal != max_nexternal: |
2585 | @@ -2192,8 +2236,9 @@ | |||
2586 | 2192 | 'maxpart': max_nexternal, | 2236 | 'maxpart': max_nexternal, |
2587 | 2193 | 'nb_me': len(allids), | 2237 | 'nb_me': len(allids), |
2588 | 2194 | 'pdgs': ','.join(str(pdg[i]) if i<len(pdg) else '0' | 2238 | 'pdgs': ','.join(str(pdg[i]) if i<len(pdg) else '0' |
2590 | 2195 | for i in range(max_nexternal) for pdg in allids), | 2239 | for i in range(max_nexternal) for (pdg,pid) in allids), |
2591 | 2196 | 'prefix':'\',\''.join(allprefix), | 2240 | 'prefix':'\',\''.join(allprefix), |
2592 | 2241 | 'pids': ','.join(str(pid) for (pdg,pid) in allids), | ||
2593 | 2197 | 'parameter_setup': '\n'.join(parameter_setup), | 2242 | 'parameter_setup': '\n'.join(parameter_setup), |
2594 | 2198 | } | 2243 | } |
2595 | 2199 | formatting['lenprefix'] = len(formatting['prefix']) | 2244 | formatting['lenprefix'] = len(formatting['prefix']) |
2596 | @@ -2311,7 +2356,7 @@ | |||
2597 | 2311 | raise Exception, '--prefix options supports only \'int\' and \'proc\'' | 2356 | raise Exception, '--prefix options supports only \'int\' and \'proc\'' |
2598 | 2312 | for proc in matrix_element.get('processes'): | 2357 | for proc in matrix_element.get('processes'): |
2599 | 2313 | ids = [l.get('id') for l in proc.get('legs_with_decays')] | 2358 | ids = [l.get('id') for l in proc.get('legs_with_decays')] |
2601 | 2314 | self.prefix_info[tuple(ids)] = [proc_prefix, proc.get_tag()] | 2359 | self.prefix_info[(tuple(ids), proc.get('id'))] = [proc_prefix, proc.get_tag()] |
2602 | 2315 | 2360 | ||
2603 | 2316 | calls = self.write_matrix_element_v4( | 2361 | calls = self.write_matrix_element_v4( |
2604 | 2317 | writers.FortranWriter(filename), | 2362 | writers.FortranWriter(filename), |
2605 | @@ -4186,11 +4231,24 @@ | |||
2606 | 4186 | split_orders if len(split_orders)>0 else ['ALL_ORDERS']) | 4231 | split_orders if len(split_orders)>0 else ['ALL_ORDERS']) |
2607 | 4187 | replace_dict['jamp_lines'] = '\n'.join(jamp_lines) | 4232 | replace_dict['jamp_lines'] = '\n'.join(jamp_lines) |
2608 | 4188 | 4233 | ||
2609 | 4234 | if self.beam_polarization: | ||
2610 | 4235 | replace_dict['beam_polarization'] = """ | ||
2611 | 4236 | DO JJ=1,nincoming | ||
2612 | 4237 | IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN | ||
2613 | 4238 | T=T*ABS(POL(JJ)) | ||
2614 | 4239 | ELSE IF(POL(JJ).NE.1d0)THEN | ||
2615 | 4240 | T=T*(2d0-ABS(POL(JJ))) | ||
2616 | 4241 | ENDIF | ||
2617 | 4242 | ENDDO | ||
2618 | 4243 | """ | ||
2619 | 4244 | else: | ||
2620 | 4245 | replace_dict['beam_polarization'] = "" | ||
2621 | 4246 | |||
2622 | 4247 | |||
2623 | 4189 | replace_dict['template_file'] = pjoin(_file_path, \ | 4248 | replace_dict['template_file'] = pjoin(_file_path, \ |
2624 | 4190 | 'iolibs/template_files/%s' % self.matrix_file) | 4249 | 'iolibs/template_files/%s' % self.matrix_file) |
2625 | 4191 | replace_dict['template_file2'] = pjoin(_file_path, \ | 4250 | replace_dict['template_file2'] = pjoin(_file_path, \ |
2628 | 4192 | 'iolibs/template_files/split_orders_helping_functions.inc') | 4251 | 'iolibs/template_files/split_orders_helping_functions.inc') |
2627 | 4193 | |||
2629 | 4194 | s1,s2 = matrix_element.get_spin_state_initial() | 4252 | s1,s2 = matrix_element.get_spin_state_initial() |
2630 | 4195 | replace_dict['nb_spin_state1'] = s1 | 4253 | replace_dict['nb_spin_state1'] = s1 |
2631 | 4196 | replace_dict['nb_spin_state2'] = s2 | 4254 | replace_dict['nb_spin_state2'] = s2 |
2632 | @@ -4297,14 +4355,21 @@ | |||
2633 | 4297 | replace_dict['define_subdiag_lines'] = "" | 4355 | replace_dict['define_subdiag_lines'] = "" |
2634 | 4298 | replace_dict['cutsdone'] = " cutsdone=.false.\n cutspassed=.false." | 4356 | replace_dict['cutsdone'] = " cutsdone=.false.\n cutspassed=.false." |
2635 | 4299 | 4357 | ||
2636 | 4358 | ncomb=matrix_element.get_helicity_combinations() | ||
2637 | 4359 | |||
2638 | 4360 | replace_dict['ncomb']= ncomb | ||
2639 | 4361 | helicity_lines = self.get_helicity_lines(matrix_element) | ||
2640 | 4362 | replace_dict['helicity_lines'] = helicity_lines | ||
2641 | 4363 | |||
2642 | 4300 | if not isinstance(self, ProcessExporterFortranMEGroup): | 4364 | if not isinstance(self, ProcessExporterFortranMEGroup): |
2643 | 4301 | ncomb=matrix_element.get_helicity_combinations() | ||
2644 | 4302 | replace_dict['read_write_good_hel'] = self.read_write_good_hel(ncomb) | 4365 | replace_dict['read_write_good_hel'] = self.read_write_good_hel(ncomb) |
2645 | 4303 | else: | 4366 | else: |
2646 | 4304 | replace_dict['read_write_good_hel'] = "" | 4367 | replace_dict['read_write_good_hel'] = "" |
2647 | 4368 | # Extract helicity lines | ||
2648 | 4305 | 4369 | ||
2649 | 4306 | context = {'read_write_good_hel':True} | 4370 | context = {'read_write_good_hel':True} |
2650 | 4307 | 4371 | ||
2651 | 4372 | |||
2652 | 4308 | if writer: | 4373 | if writer: |
2653 | 4309 | file = open(pjoin(_file_path, \ | 4374 | file = open(pjoin(_file_path, \ |
2654 | 4310 | 'iolibs/template_files/auto_dsig_v4.inc')).read() | 4375 | 'iolibs/template_files/auto_dsig_v4.inc')).read() |
2655 | 4311 | 4376 | ||
2656 | === modified file 'madgraph/iolibs/template_files/auto_dsig_v4.inc' | |||
2657 | --- madgraph/iolibs/template_files/auto_dsig_v4.inc 2019-06-10 19:05:58 +0000 | |||
2658 | +++ madgraph/iolibs/template_files/auto_dsig_v4.inc 2020-08-13 08:01:43 +0000 | |||
2659 | @@ -156,3 +156,18 @@ | |||
2660 | 156 | %(read_write_good_hel)s | 156 | %(read_write_good_hel)s |
2661 | 157 | 157 | ||
2662 | 158 | ## } | 158 | ## } |
2663 | 159 | |||
2664 | 160 | |||
2665 | 161 | integer FUNCTION GET_NHEL%(proc_id)s(hel, ipart) | ||
2666 | 162 | implicit none | ||
2667 | 163 | integer hel,i, ipart | ||
2668 | 164 | Include 'nexternal.inc' | ||
2669 | 165 | integer one_nhel(nexternal) | ||
2670 | 166 | INTEGER NCOMB | ||
2671 | 167 | PARAMETER ( NCOMB=%(ncomb)d) | ||
2672 | 168 | INTEGER NHEL(NEXTERNAL,NCOMB) | ||
2673 | 169 | %(helicity_lines)s | ||
2674 | 170 | |||
2675 | 171 | get_nhel%(proc_id)s = nhel(ipart, hel) | ||
2676 | 172 | return | ||
2677 | 173 | end | ||
2678 | 159 | 174 | ||
2679 | === modified file 'madgraph/iolibs/template_files/loop_optimized/check_sa_all.py.inc' | |||
2680 | --- madgraph/iolibs/template_files/loop_optimized/check_sa_all.py.inc 2016-10-20 23:12:29 +0000 | |||
2681 | +++ madgraph/iolibs/template_files/loop_optimized/check_sa_all.py.inc 2020-08-13 08:01:43 +0000 | |||
2682 | @@ -49,10 +49,10 @@ | |||
2683 | 49 | allmatrix2py.set_madloop_path(os.path.abspath(pjoin(root_path,'MadLoop5_resources'))) | 49 | allmatrix2py.set_madloop_path(os.path.abspath(pjoin(root_path,'MadLoop5_resources'))) |
2684 | 50 | # List all processes available in this module | 50 | # List all processes available in this module |
2685 | 51 | 51 | ||
2687 | 52 | all_procs_available = [[pdg for pdg in proc_pdgs if pdg!=0] for proc_pdgs in allmatrix2py.get_pdg_order()] | 52 | all_procs_available = [[(pdg,pids[i]) for i, pdg in enumerate(proc_pdgs) if pdg!=0] for (proc_pdgs, pids) in allmatrix2py.get_pdg_order()] |
2688 | 53 | print "Available processes are:" | 53 | print "Available processes are:" |
2689 | 54 | for process_pdgs in all_procs_available: | 54 | for process_pdgs in all_procs_available: |
2691 | 55 | print " --> %s"%str(process_pdgs) | 55 | print " --> %s: process id: %i "%str(process_pdgs[0], process_pdgs[1]) |
2692 | 56 | 56 | ||
2693 | 57 | def invert_momenta(p): | 57 | def invert_momenta(p): |
2694 | 58 | """ fortran/C-python do not order table in the same order""" | 58 | """ fortran/C-python do not order table in the same order""" |
2695 | @@ -62,7 +62,7 @@ | |||
2696 | 62 | 62 | ||
2697 | 63 | # The kinematic configuration in the convention (E, px, py, pz) and with particles ordered as in the process definition. | 63 | # The kinematic configuration in the convention (E, px, py, pz) and with particles ordered as in the process definition. |
2698 | 64 | # This is the structure of this dictionary. | 64 | # This is the structure of this dictionary. |
2700 | 65 | p= dict( (tuple(process_pdgs),[[None,]*4]*len(process_pdgs)) for process_pdgs in all_procs_available) | 65 | p= dict( (tuple(process_pdgs[0]),[[None,]*4]*len(process_pdgs[0])) for process_pdgs in all_procs_available) |
2701 | 66 | 66 | ||
2702 | 67 | if (p.values()[0])[0][0] is None: | 67 | if (p.values()[0])[0][0] is None: |
2703 | 68 | if not os.path.isfile(pjoin(root_path,'PS.input')): | 68 | if not os.path.isfile(pjoin(root_path,'PS.input')): |
2704 | @@ -120,7 +120,7 @@ | |||
2705 | 120 | # Choice of renormalization scale | 120 | # Choice of renormalization scale |
2706 | 121 | renormalization_scale = 91.188 | 121 | renormalization_scale = 91.188 |
2707 | 122 | 122 | ||
2709 | 123 | finite_loop_me, return_code = allmatrix2py.smatrixhel(pdgs=list(process_pdgs), | 123 | finite_loop_me, return_code = allmatrix2py.smatrixhel(pdgs=list(process_pdgs), procid=-1, |
2710 | 124 | p=P, alphas=alphas,scales2=renormalization_scale,nhel=nhel) | 124 | p=P, alphas=alphas,scales2=renormalization_scale,nhel=nhel) |
2711 | 125 | 125 | ||
2712 | 126 | print '* %-108s *'%' MadLoop evaluation for the process ' | 126 | print '* %-108s *'%' MadLoop evaluation for the process ' |
2713 | 127 | 127 | ||
2714 | === modified file 'madgraph/iolibs/template_files/loop_optimized/loop_matrix_standalone.inc' | |||
2715 | --- madgraph/iolibs/template_files/loop_optimized/loop_matrix_standalone.inc 2017-07-31 22:08:40 +0000 | |||
2716 | +++ madgraph/iolibs/template_files/loop_optimized/loop_matrix_standalone.inc 2020-08-13 08:01:43 +0000 | |||
2717 | @@ -2737,11 +2737,14 @@ | |||
2718 | 2737 | PARAMETER (NEXTERNAL=%(nexternal)d) | 2737 | PARAMETER (NEXTERNAL=%(nexternal)d) |
2719 | 2738 | INTEGER NSQUAREDSO | 2738 | INTEGER NSQUAREDSO |
2720 | 2739 | PARAMETER (NSQUAREDSO=%(nSquaredSO)d) | 2739 | PARAMETER (NSQUAREDSO=%(nSquaredSO)d) |
2721 | 2740 | %(get_nsqso_born)s | ||
2722 | 2740 | C | 2741 | C |
2723 | 2741 | C ARGUMENTS | 2742 | C ARGUMENTS |
2724 | 2742 | C | 2743 | C |
2725 | 2743 | %(real_dp_format)s P(0:3,NEXTERNAL) | 2744 | %(real_dp_format)s P(0:3,NEXTERNAL) |
2727 | 2744 | %(real_dp_format)s ANS(0:3,0:NSQUAREDSO) | 2745 | INTEGER ANS_DIMENSION |
2728 | 2746 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
2729 | 2747 | %(real_dp_format)s ANS(0:3,0:ANS_DIMENSION) | ||
2730 | 2745 | INTEGER HEL, USERHEL | 2748 | INTEGER HEL, USERHEL |
2731 | 2746 | common/%(proc_prefix)sUSERCHOICE/USERHEL | 2749 | common/%(proc_prefix)sUSERCHOICE/USERHEL |
2732 | 2747 | C ---------- | 2750 | C ---------- |
2733 | @@ -2764,7 +2767,10 @@ | |||
2734 | 2764 | C ARGUMENTS | 2767 | C ARGUMENTS |
2735 | 2765 | C | 2768 | C |
2736 | 2766 | %(real_dp_format)s P(0:3,NEXTERNAL) | 2769 | %(real_dp_format)s P(0:3,NEXTERNAL) |
2738 | 2767 | %(real_dp_format)s ANS(0:3,0:NSQUAREDSO) | 2770 | %(get_nsqso_born)s |
2739 | 2771 | INTEGER ANS_DIMENSION | ||
2740 | 2772 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
2741 | 2773 | %(real_dp_format)s ANS(0:3,0:ANS_DIMENSION) | ||
2742 | 2768 | INTEGER HEL, RET_CODE | 2774 | INTEGER HEL, RET_CODE |
2743 | 2769 | %(real_dp_format)s PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2775 | %(real_dp_format)s PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
2744 | 2770 | C | 2776 | C |
2745 | @@ -2875,7 +2881,10 @@ | |||
2746 | 2875 | C ARGUMENTS | 2881 | C ARGUMENTS |
2747 | 2876 | C | 2882 | C |
2748 | 2877 | %(real_dp_format)s P(0:3,NEXTERNAL) | 2883 | %(real_dp_format)s P(0:3,NEXTERNAL) |
2750 | 2878 | %(real_dp_format)s ANS(0:3,0:NSQUAREDSO) | 2884 | %(get_nsqso_born)s |
2751 | 2885 | INTEGER ANS_DIMENSION | ||
2752 | 2886 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
2753 | 2887 | %(real_dp_format)s ANS(0:3,0:ANS_DIMENSION) | ||
2754 | 2879 | %(real_dp_format)s PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2888 | %(real_dp_format)s PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
2755 | 2880 | INTEGER RET_CODE | 2889 | INTEGER RET_CODE |
2756 | 2881 | C | 2890 | C |
2757 | 2882 | 2891 | ||
2758 | === modified file 'madgraph/iolibs/template_files/makefile_sa_f2py' | |||
2759 | --- madgraph/iolibs/template_files/makefile_sa_f2py 2017-09-25 21:30:36 +0000 | |||
2760 | +++ madgraph/iolibs/template_files/makefile_sa_f2py 2020-08-13 08:01:43 +0000 | |||
2761 | @@ -2,7 +2,8 @@ | |||
2762 | 2 | SHELL = /bin/bash | 2 | SHELL = /bin/bash |
2763 | 3 | LIBDIR = ../lib/ | 3 | LIBDIR = ../lib/ |
2764 | 4 | PROG = check | 4 | PROG = check |
2766 | 5 | LINKLIBS = -L../lib/ -ldhelas -lmodel | 5 | LINKLIBS_ME = -L../lib/ -ldhelas -lmodel |
2767 | 6 | LINKLIBS_ALL = -L../lib/ -lmatrix -ldhelas -lmodel | ||
2768 | 6 | LIBS = $(LIBDIR)libdhelas.$(libext) $(LIBDIR)libmodel.$(libext) | 7 | LIBS = $(LIBDIR)libdhelas.$(libext) $(LIBDIR)libmodel.$(libext) |
2769 | 7 | PROCESS= allmatrix.o | 8 | PROCESS= allmatrix.o |
2770 | 8 | LIBRARY = libmatrix.a | 9 | LIBRARY = libmatrix.a |
2771 | @@ -12,12 +13,19 @@ | |||
2772 | 12 | MENUM=2 | 13 | MENUM=2 |
2773 | 13 | endif | 14 | endif |
2774 | 14 | 15 | ||
2781 | 15 | 16 | %$(MENUM)py.so: %/matrix.f | |
2782 | 16 | allmatrix$(MENUM)py.so: $(LIBDIR)/$(LIBRARY) all_matrix.o | 17 | $(F2PY) --f77exec=$(FC) $(LINKLIBS_ME) -c $^ -m $(patsubst %/matrix.f,%$(MENUM)py,$^) |
2783 | 17 | $(F2PY) --f77exec=$(FC) $(LINKLIBS) -lmatrix -c all_matrix.f */matrix.f -m allmatrix$(MENUM)py | 18 | |
2784 | 18 | 19 | all_matrix$(MENUM)py.so: $(LIBDIR)/$(LIBRARY) all_matrix.f | |
2785 | 19 | 20 | $(F2PY) --f77exec=$(FC) $(LINKLIBS_ALL) -c all_matrix.f -m all_matrix$(MENUM)py | |
2786 | 20 | 21 | ||
2787 | 22 | |||
2788 | 23 | allmatrix$(MENUM)py.so: $(patsubst %/matrix.f,%$(MENUM)py.so,$(wildcard */matrix.f)) all_matrix$(MENUM)py.so | ||
2789 | 24 | for lib in $(patsubst %.so,%,$^); do \ | ||
2790 | 25 | echo "from $$lib import *" >> allmatrix$(MENUM)py.py; \ | ||
2791 | 26 | done | ||
2792 | 27 | |||
2793 | 28 | |||
2794 | 21 | $(LIBDIR)/$(LIBRARY): $(patsubst %.f,%.o,$(wildcard */matrix.f)) all_matrix.o | 29 | $(LIBDIR)/$(LIBRARY): $(patsubst %.f,%.o,$(wildcard */matrix.f)) all_matrix.o |
2795 | 22 | $(call CREATELIB, $@, $^) | 30 | $(call CREATELIB, $@, $^) |
2796 | 23 | 31 | ||
2797 | 24 | 32 | ||
2798 | === modified file 'madgraph/iolibs/template_files/matrix_madevent_group_v4.inc' | |||
2799 | --- madgraph/iolibs/template_files/matrix_madevent_group_v4.inc 2019-06-26 10:35:18 +0000 | |||
2800 | +++ madgraph/iolibs/template_files/matrix_madevent_group_v4.inc 2020-08-13 08:01:43 +0000 | |||
2801 | @@ -123,13 +123,7 @@ | |||
2802 | 123 | DO I=1,NCOMB | 123 | DO I=1,NCOMB |
2803 | 124 | IF (GOODHEL(I,IMIRROR) .OR. NTRY(IMIRROR).LE.MAXTRIES.or.(ISUM_HEL.NE.0).or.THIS_NTRY(IMIRROR).le.2) THEN | 124 | IF (GOODHEL(I,IMIRROR) .OR. NTRY(IMIRROR).LE.MAXTRIES.or.(ISUM_HEL.NE.0).or.THIS_NTRY(IMIRROR).le.2) THEN |
2804 | 125 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) | 125 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) |
2812 | 126 | DO JJ=1,nincoming | 126 | %(beam_polarization)s |
2806 | 127 | IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN | ||
2807 | 128 | T=T*ABS(POL(JJ))*NB_SPIN_STATE_IN(JJ)/2d0 ! NB_SPIN_STATE(JJ)/2d0 is added for polarised beam | ||
2808 | 129 | ELSE IF(POL(JJ).NE.1d0)THEN | ||
2809 | 130 | T=T*(2d0-ABS(POL(JJ)))*NB_SPIN_STATE_IN(JJ)/2d0 | ||
2810 | 131 | ENDIF | ||
2811 | 132 | ENDDO | ||
2813 | 133 | IF (ISUM_HEL.NE.0.and.DS_get_dim_status('Helicity').eq.0.and.ALLOW_HELICITY_GRID_ENTRIES) then | 127 | IF (ISUM_HEL.NE.0.and.DS_get_dim_status('Helicity').eq.0.and.ALLOW_HELICITY_GRID_ENTRIES) then |
2814 | 134 | call DS_add_entry('Helicity',I,T) | 128 | call DS_add_entry('Helicity',I,T) |
2815 | 135 | endif | 129 | endif |
2816 | @@ -174,14 +168,7 @@ | |||
2817 | 174 | I = HEL_PICKED | 168 | I = HEL_PICKED |
2818 | 175 | 169 | ||
2819 | 176 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) | 170 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) |
2828 | 177 | 171 | %(beam_polarization)s | |
2821 | 178 | DO JJ=1,nincoming | ||
2822 | 179 | IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN | ||
2823 | 180 | T=T*ABS(POL(JJ)) | ||
2824 | 181 | ELSE IF(POL(JJ).NE.1d0)THEN | ||
2825 | 182 | T=T*(2d0-ABS(POL(JJ))) | ||
2826 | 183 | ENDIF | ||
2827 | 184 | ENDDO | ||
2829 | 185 | c Always one helicity at a time | 172 | c Always one helicity at a time |
2830 | 186 | ANS = T | 173 | ANS = T |
2831 | 187 | c Include the Jacobian from helicity sampling | 174 | c Include the Jacobian from helicity sampling |
2832 | 188 | 175 | ||
2833 | === modified file 'madgraph/iolibs/template_files/matrix_madevent_v4.inc' | |||
2834 | --- madgraph/iolibs/template_files/matrix_madevent_v4.inc 2019-09-26 11:09:58 +0000 | |||
2835 | +++ madgraph/iolibs/template_files/matrix_madevent_v4.inc 2020-08-13 08:01:43 +0000 | |||
2836 | @@ -103,13 +103,7 @@ | |||
2837 | 103 | DO I=1,NCOMB | 103 | DO I=1,NCOMB |
2838 | 104 | IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0)) THEN | 104 | IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0)) THEN |
2839 | 105 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) | 105 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) |
2847 | 106 | DO JJ=1,nincoming | 106 | %(beam_polarization)s |
2841 | 107 | IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN | ||
2842 | 108 | T=T*ABS(POL(JJ))*NB_SPIN_STATE(JJ)/2d0 ! NB_SPIN_STATE(JJ)/2d0 is added for polarised beam | ||
2843 | 109 | ELSE IF(POL(JJ).NE.1d0)THEN | ||
2844 | 110 | T=T*(2d0-ABS(POL(JJ)))*NB_SPIN_STATE(JJ)/2d0 | ||
2845 | 111 | ENDIF | ||
2846 | 112 | ENDDO | ||
2848 | 113 | IF (ISUM_HEL.NE.0) then | 107 | IF (ISUM_HEL.NE.0) then |
2849 | 114 | call DS_add_entry('Helicity',I,T) | 108 | call DS_add_entry('Helicity',I,T) |
2850 | 115 | endif | 109 | endif |
2851 | @@ -153,13 +147,7 @@ | |||
2852 | 153 | I = HEL_PICKED | 147 | I = HEL_PICKED |
2853 | 154 | 148 | ||
2854 | 155 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) | 149 | T=MATRIX%(proc_id)s(P ,NHEL(1,I),JC(1)) |
2862 | 156 | DO JJ=1,nincoming | 150 | %(beam_polarization)s |
2856 | 157 | IF(POL(JJ).NE.1d0.AND.NHEL(JJ,I).EQ.INT(SIGN(1d0,POL(JJ)))) THEN | ||
2857 | 158 | T=T*ABS(POL(JJ)) | ||
2858 | 159 | ELSE IF(POL(JJ).NE.1d0)THEN | ||
2859 | 160 | T=T*(2d0-ABS(POL(JJ))) | ||
2860 | 161 | ENDIF | ||
2861 | 162 | ENDDO | ||
2863 | 163 | c Always one helicity at a time | 151 | c Always one helicity at a time |
2864 | 164 | ANS = T | 152 | ANS = T |
2865 | 165 | c Include the Jacobian from helicity sampling | 153 | c Include the Jacobian from helicity sampling |
2866 | 166 | 154 | ||
2867 | === modified file 'madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc' | |||
2868 | --- madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc 2020-01-16 07:19:30 +0000 | |||
2869 | +++ madgraph/iolibs/template_files/super_auto_dsig_group_v4.inc 2020-08-13 08:01:43 +0000 | |||
2870 | @@ -506,5 +506,10 @@ | |||
2871 | 506 | C | 506 | C |
2872 | 507 | %(read_write_good_hel)s | 507 | %(read_write_good_hel)s |
2873 | 508 | 508 | ||
2876 | 509 | 509 | integer function get_nhel(hel, partid) | |
2877 | 510 | 510 | implicit none | |
2878 | 511 | integer hel, partid | ||
2879 | 512 | write(*,*) "do not support this type of pdf with group_subprocess=True" | ||
2880 | 513 | stop 1 | ||
2881 | 514 | return | ||
2882 | 515 | end | ||
2883 | 511 | 516 | ||
2884 | === modified file 'madgraph/loop/loop_exporters.py' | |||
2885 | --- madgraph/loop/loop_exporters.py 2020-06-20 21:10:10 +0000 | |||
2886 | +++ madgraph/loop/loop_exporters.py 2020-08-13 08:01:43 +0000 | |||
2887 | @@ -334,11 +334,12 @@ | |||
2888 | 334 | CALL SETMADLOOPPATH(PATH) | 334 | CALL SETMADLOOPPATH(PATH) |
2889 | 335 | END | 335 | END |
2890 | 336 | 336 | ||
2892 | 337 | subroutine smatrixhel(pdgs, npdg, p, ALPHAS, SCALES2, nhel, ANS, RETURNCODE) | 337 | subroutine smatrixhel(pdgs, procid, npdg, p, ALPHAS, SCALES2, nhel, ANS, RETURNCODE) |
2893 | 338 | IMPLICIT NONE | 338 | IMPLICIT NONE |
2894 | 339 | 339 | ||
2895 | 340 | CF2PY double precision, intent(in), dimension(0:3,npdg) :: p | 340 | CF2PY double precision, intent(in), dimension(0:3,npdg) :: p |
2896 | 341 | CF2PY integer, intent(in), dimension(npdg) :: pdgs | 341 | CF2PY integer, intent(in), dimension(npdg) :: pdgs |
2897 | 342 | CF2PY integer, intent(in):: procid | ||
2898 | 342 | CF2PY integer, intent(in) :: npdg | 343 | CF2PY integer, intent(in) :: npdg |
2899 | 343 | CF2PY double precision, intent(out) :: ANS | 344 | CF2PY double precision, intent(out) :: ANS |
2900 | 344 | CF2PY integer, intent(out) :: RETURNCODE | 345 | CF2PY integer, intent(out) :: RETURNCODE |
2901 | @@ -346,22 +347,25 @@ | |||
2902 | 346 | CF2PY double precision, intent(in) :: SCALES2 | 347 | CF2PY double precision, intent(in) :: SCALES2 |
2903 | 347 | 348 | ||
2904 | 348 | integer pdgs(*) | 349 | integer pdgs(*) |
2906 | 349 | integer npdg, nhel, RETURNCODE | 350 | integer npdg, nhel, RETURNCODE, procid |
2907 | 350 | double precision p(*) | 351 | double precision p(*) |
2908 | 351 | double precision ANS, ALPHAS, PI,SCALES2 | 352 | double precision ANS, ALPHAS, PI,SCALES2 |
2910 | 352 | 353 | 1 continue | |
2911 | 353 | %(smatrixhel)s | 354 | %(smatrixhel)s |
2912 | 354 | 355 | ||
2913 | 355 | return | 356 | return |
2914 | 356 | end | 357 | end |
2915 | 357 | 358 | ||
2917 | 358 | subroutine get_pdg_order(OUT) | 359 | subroutine get_pdg_order(OUT, ALLPROC) |
2918 | 359 | IMPLICIT NONE | 360 | IMPLICIT NONE |
2919 | 360 | CF2PY INTEGER, intent(out) :: OUT(%(nb_me)i,%(maxpart)i) | 361 | CF2PY INTEGER, intent(out) :: OUT(%(nb_me)i,%(maxpart)i) |
2921 | 361 | 362 | CF2PY INTEGER, intent(out) :: ALLPROC(%(nb_me)i) | |
2922 | 362 | INTEGER OUT(%(nb_me)i,%(maxpart)i), PDGS(%(nb_me)i,%(maxpart)i) | 363 | INTEGER OUT(%(nb_me)i,%(maxpart)i), PDGS(%(nb_me)i,%(maxpart)i) |
2923 | 364 | INTEGER ALLPROC(%(nb_me)i),PIDs(%(nb_me)i) | ||
2924 | 363 | DATA PDGS/ %(pdgs)s / | 365 | DATA PDGS/ %(pdgs)s / |
2925 | 366 | DATA PIDS/ %(pids)s / | ||
2926 | 364 | OUT=PDGS | 367 | OUT=PDGS |
2927 | 368 | ALLPROC = PIDS | ||
2928 | 365 | RETURN | 369 | RETURN |
2929 | 366 | END | 370 | END |
2930 | 367 | 371 | ||
2931 | @@ -378,31 +382,37 @@ | |||
2932 | 378 | 382 | ||
2933 | 379 | allids = self.prefix_info.keys() | 383 | allids = self.prefix_info.keys() |
2934 | 380 | allprefix = [self.prefix_info[key][0] for key in allids] | 384 | allprefix = [self.prefix_info[key][0] for key in allids] |
2937 | 381 | min_nexternal = min([len(ids) for ids in allids]) | 385 | min_nexternal = min([len(ids[0]) for ids in allids]) |
2938 | 382 | max_nexternal = max([len(ids) for ids in allids]) | 386 | max_nexternal = max([len(ids[0]) for ids in allids]) |
2939 | 383 | 387 | ||
2940 | 384 | info = [] | 388 | info = [] |
2943 | 385 | for key, (prefix, tag) in self.prefix_info.items(): | 389 | for (key,pid), (prefix, tag) in self.prefix_info.items(): |
2944 | 386 | info.append('#PY %s : %s # %s' % (tag, key, prefix)) | 390 | info.append('#PY %s : %s # %s %s' % (tag, key, prefix, pid)) |
2945 | 387 | 391 | ||
2946 | 388 | 392 | ||
2947 | 389 | text = [] | 393 | text = [] |
2948 | 390 | for n_ext in range(min_nexternal, max_nexternal+1): | 394 | for n_ext in range(min_nexternal, max_nexternal+1): |
2951 | 391 | current = [ids for ids in allids if len(ids)==n_ext] | 395 | current_id = [ids[0] for ids in allids if len(ids[0])==n_ext] |
2952 | 392 | if not current: | 396 | current_pid = [ids[1] for ids in allids if len(ids[0])==n_ext] |
2953 | 397 | if not current_id: | ||
2954 | 393 | continue | 398 | continue |
2955 | 394 | if min_nexternal != max_nexternal: | 399 | if min_nexternal != max_nexternal: |
2956 | 395 | if n_ext == min_nexternal: | 400 | if n_ext == min_nexternal: |
2957 | 396 | text.append(' if (npdg.eq.%i)then' % n_ext) | 401 | text.append(' if (npdg.eq.%i)then' % n_ext) |
2958 | 397 | else: | 402 | else: |
2959 | 398 | text.append(' else if (npdg.eq.%i)then' % n_ext) | 403 | text.append(' else if (npdg.eq.%i)then' % n_ext) |
2961 | 399 | for ii,pdgs in enumerate(current): | 404 | for ii,pdgs in enumerate(current_id): |
2962 | 405 | pid = current_pid[ii] | ||
2963 | 400 | condition = '.and.'.join(['%i.eq.pdgs(%i)' %(pdg, i+1) for i, pdg in enumerate(pdgs)]) | 406 | condition = '.and.'.join(['%i.eq.pdgs(%i)' %(pdg, i+1) for i, pdg in enumerate(pdgs)]) |
2964 | 401 | if ii==0: | 407 | if ii==0: |
2966 | 402 | text.append( ' if(%s) then ! %i' % (condition, i)) | 408 | text.append( ' if(%s.and.(procid.le.0.or.procid.eq.%d)) then ! %i' % (condition, pid, i)) |
2967 | 403 | else: | 409 | else: |
2970 | 404 | text.append( ' else if(%s) then ! %i' % (condition,i)) | 410 | text.append( ' else if(%s.and.(procid.le.0.or.procid.eq.%d)) then ! %i' % (condition,pid,i)) |
2971 | 405 | text.append(' call %sget_me(p, ALPHAS, DSQRT(SCALES2), NHEL, ANS, RETURNCODE)' % self.prefix_info[pdgs][0]) | 411 | text.append(' call %sget_me(p, ALPHAS, DSQRT(SCALES2), NHEL, ANS, RETURNCODE)' % self.prefix_info[(pdgs,pid)][0]) |
2972 | 412 | text.append( ' else if(procid.gt.0) then !') | ||
2973 | 413 | text.append( ' procid = -1' ) | ||
2974 | 414 | text.append( ' goto 1' ) | ||
2975 | 415 | |||
2976 | 406 | text.append(' endif') | 416 | text.append(' endif') |
2977 | 407 | #close the function | 417 | #close the function |
2978 | 408 | if min_nexternal != max_nexternal: | 418 | if min_nexternal != max_nexternal: |
2979 | @@ -422,9 +432,10 @@ | |||
2980 | 422 | 'nb_me': len(allids), | 432 | 'nb_me': len(allids), |
2981 | 423 | 'pdgs': ','.join([str(pdg[i]) if i<len(pdg) else '0' | 433 | 'pdgs': ','.join([str(pdg[i]) if i<len(pdg) else '0' |
2982 | 424 | for i in range(max_nexternal) \ | 434 | for i in range(max_nexternal) \ |
2984 | 425 | for pdg in allids]), | 435 | for (pdg,pid) in allids]), |
2985 | 426 | 'prefix':'\',\''.join(allprefix), | 436 | 'prefix':'\',\''.join(allprefix), |
2986 | 427 | 'parameter_setup': '\n'.join(parameter_setup), | 437 | 'parameter_setup': '\n'.join(parameter_setup), |
2987 | 438 | 'pids': ','.join(str(pid) for (pdg,pid) in allids), | ||
2988 | 428 | } | 439 | } |
2989 | 429 | 440 | ||
2990 | 430 | 441 | ||
2991 | @@ -1023,7 +1034,7 @@ | |||
2992 | 1023 | if 'prefix' in self.cmd_options and self.cmd_options['prefix'] in ['int','proc']: | 1034 | if 'prefix' in self.cmd_options and self.cmd_options['prefix'] in ['int','proc']: |
2993 | 1024 | for proc in matrix_element.get('processes'): | 1035 | for proc in matrix_element.get('processes'): |
2994 | 1025 | ids = [l.get('id') for l in proc.get('legs_with_decays')] | 1036 | ids = [l.get('id') for l in proc.get('legs_with_decays')] |
2996 | 1026 | self.prefix_info[tuple(ids)] = [dict['proc_prefix'], proc.get_tag()] | 1037 | self.prefix_info[tuple(ids),proc.get('id')] = [dict['proc_prefix'], proc.get_tag()] |
2997 | 1027 | 1038 | ||
2998 | 1028 | # The proc_id is used for MadEvent grouping, so none of our concern here | 1039 | # The proc_id is used for MadEvent grouping, so none of our concern here |
2999 | 1029 | # and it is simply set to an empty string. | 1040 | # and it is simply set to an empty string. |
3000 | @@ -3013,7 +3024,6 @@ | |||
3001 | 3013 | matrix_element.rep_dict['coef_construction']=replace_dict['coef_construction'] | 3024 | matrix_element.rep_dict['coef_construction']=replace_dict['coef_construction'] |
3002 | 3014 | 3025 | ||
3003 | 3015 | replace_dict['coef_merging']='\n'.join(coef_merging) | 3026 | replace_dict['coef_merging']='\n'.join(coef_merging) |
3004 | 3016 | |||
3005 | 3017 | file = file % replace_dict | 3027 | file = file % replace_dict |
3006 | 3018 | number_of_calls = len(filter(lambda call: call.find('CALL LOOP') != 0, \ | 3028 | number_of_calls = len(filter(lambda call: call.find('CALL LOOP') != 0, \ |
3007 | 3019 | loop_CT_calls)) | 3029 | loop_CT_calls)) |
3008 | 3020 | 3030 | ||
3009 | === modified file 'madgraph/various/banner.py' | |||
3010 | --- madgraph/various/banner.py 2020-05-25 21:16:05 +0000 | |||
3011 | +++ madgraph/various/banner.py 2020-08-13 08:01:43 +0000 | |||
3012 | @@ -24,6 +24,7 @@ | |||
3013 | 24 | import math | 24 | import math |
3014 | 25 | import StringIO | 25 | import StringIO |
3015 | 26 | import itertools | 26 | import itertools |
3016 | 27 | import time | ||
3017 | 27 | 28 | ||
3018 | 28 | 29 | ||
3019 | 29 | pjoin = os.path.join | 30 | pjoin = os.path.join |
3020 | @@ -2896,10 +2897,10 @@ | |||
3021 | 2896 | self.add_param("nevents", 10000) | 2897 | self.add_param("nevents", 10000) |
3022 | 2897 | self.add_param("iseed", 0) | 2898 | self.add_param("iseed", 0) |
3023 | 2898 | self.add_param("python_seed", -2, include=False, hidden=True, comment="controlling python seed [handling in particular the final unweighting].\n -1 means use default from random module.\n -2 means set to same value as iseed") | 2899 | self.add_param("python_seed", -2, include=False, hidden=True, comment="controlling python seed [handling in particular the final unweighting].\n -1 means use default from random module.\n -2 means set to same value as iseed") |
3028 | 2899 | self.add_param("lpp1", 1, fortran_name="lpp(1)", allowed=[-1,1,0,2,3,9, -2,-3], | 2900 | self.add_param("lpp1", 1, fortran_name="lpp(1)", allowed=[-1,1,0,2,3,4,9,-2,-3,-4], |
3029 | 2900 | comment='first beam energy distribution:\n 0: fixed energy\n 1: PDF from proton\n -1: PDF from anti-proton\n 2:photon from proton, 3:photon from electron, 9: PLUGIN MODE') | 2901 | comment='first beam energy distribution:\n 0: fixed energy\n 1: PDF from proton\n -1: PDF from anti-proton\n 2:photon from proton, 3:photon/W/Z from electron, 4:photon/W/Z from muon,\n 9: PLUGIN MODE') |
3030 | 2901 | self.add_param("lpp2", 1, fortran_name="lpp(2)", allowed=[-1,1,0,2,3,9], | 2902 | self.add_param("lpp2", 1, fortran_name="lpp(2)", allowed=[-1,1,0,2,3,4,9,-3,-4], |
3031 | 2902 | comment='first beam energy distribution:\n 0: fixed energy\n 1: PDF from proton\n -1: PDF from anti-proton\n 2:photon from proton, 3:photon from electron, 9: PLUGIN MODE') | 2903 | comment='first beam energy distribution:\n 0: fixed energy\n 1: PDF from proton\n -1: PDF from anti-proton\n 2:photon from proton, 3:photon/W/Z from electron, 4:photon/W/Z from muon,\n 9: PLUGIN MODE') |
3032 | 2903 | self.add_param("ebeam1", 6500.0, fortran_name="ebeam(1)") | 2904 | self.add_param("ebeam1", 6500.0, fortran_name="ebeam(1)") |
3033 | 2904 | self.add_param("ebeam2", 6500.0, fortran_name="ebeam(2)") | 2905 | self.add_param("ebeam2", 6500.0, fortran_name="ebeam(2)") |
3034 | 2905 | self.add_param("polbeam1", 0.0, fortran_name="pb1", hidden=True, | 2906 | self.add_param("polbeam1", 0.0, fortran_name="pb1", hidden=True, |
3035 | @@ -3182,7 +3183,6 @@ | |||
3036 | 3182 | if self['xqcut'] > 0: | 3183 | if self['xqcut'] > 0: |
3037 | 3183 | if self['ickkw'] == 0: | 3184 | if self['ickkw'] == 0: |
3038 | 3184 | logger.error('xqcut>0 but ickkw=0. Potentially not fully consistent setup. Be carefull') | 3185 | logger.error('xqcut>0 but ickkw=0. Potentially not fully consistent setup. Be carefull') |
3039 | 3185 | import time | ||
3040 | 3186 | time.sleep(5) | 3186 | time.sleep(5) |
3041 | 3187 | if self['drjj'] != 0: | 3187 | if self['drjj'] != 0: |
3042 | 3188 | if 'drjj' in self.user_set: | 3188 | if 'drjj' in self.user_set: |
3043 | @@ -3212,14 +3212,16 @@ | |||
3044 | 3212 | 3212 | ||
3045 | 3213 | # check if lpp = | 3213 | # check if lpp = |
3046 | 3214 | for i in [1,2]: | 3214 | for i in [1,2]: |
3052 | 3215 | if self['lpp%s' % i ] == 3 and self['dsqrt_q2fact%s'%i] > 4: | 3215 | if abs(self['lpp%s' % i ]) in [3,4] and self['dsqrt_q2fact%s'%i] == 91.188: |
3053 | 3216 | raise InvalidRunCard( "Photon from electron are using fixed scale value of muf [dsqrt_q2fact%s] as the cut off value of the approximation.\n" % i + \ | 3216 | logger.warning("Photon from lepton are using fixed scale value of muf [dsqrt_q2fact%s] as the cut of the EPA. Looks like you kept the default value (Mz). Is this really the cut-off of the EPA that you want to use?" % i) |
3054 | 3217 | "For EPA this number should be small (for HERA prediction it should be 2 at most)") | 3217 | time.sleep(5) |
3050 | 3218 | if self['lpp%s' % i ] == 2 and self['dsqrt_q2fact%s'%i] == 91.188: | ||
3051 | 3219 | raise InvalidRunCard("Since 2.7.1 Photon from proton are using fixed scale value of muf [dsqrt_q2fact%s] as the cut of th Improved Weizsaecker-Williams formula. Please edit it accordingly." % i) | ||
3055 | 3220 | 3218 | ||
3056 | 3219 | if abs(self['lpp%s' % i ]) == 2 and self['dsqrt_q2fact%s'%i] == 91.188: | ||
3057 | 3220 | logger.warning("Since 2.7.1 Photon from proton are using fixed scale value of muf [dsqrt_q2fact%s] as the cut of the Improved Weizsaecker-Williams formula. Please edit it accordingly." % i) | ||
3058 | 3221 | time.sleep(5) | ||
3059 | 3222 | |||
3060 | 3221 | # if both lpp1/2 are on PA mode -> force fixed factorization scale | 3223 | # if both lpp1/2 are on PA mode -> force fixed factorization scale |
3062 | 3222 | if self['lpp1'] in [2, 3] and self['lpp2'] in [2, 3] and not self['fixed_fac_scale']: | 3224 | if abs(self['lpp1']) in [2, 3,4] and abs(self['lpp2']) in [2, 3,4] and not self['fixed_fac_scale']: |
3063 | 3223 | raise InvalidRunCard("Having both beam in elastic photon mode requires fixec_fac_scale to be on True [since this is use as cutoff]") | 3225 | raise InvalidRunCard("Having both beam in elastic photon mode requires fixec_fac_scale to be on True [since this is use as cutoff]") |
3064 | 3224 | 3226 | ||
3065 | 3225 | 3227 | ||
3066 | @@ -3293,8 +3295,11 @@ | |||
3067 | 3293 | process 1->N all cut set on off. | 3295 | process 1->N all cut set on off. |
3068 | 3294 | loop_induced -> MC over helicity | 3296 | loop_induced -> MC over helicity |
3069 | 3295 | e+ e- beam -> lpp:0 ebeam:500 | 3297 | e+ e- beam -> lpp:0 ebeam:500 |
3070 | 3298 | P X beam (X: neutrino, lepton, EWA) | ||
3071 | 3299 | support of EWA beam [ZW] (from proton by default -> 100TeV) | ||
3072 | 3296 | p p beam -> set maxjetflavor automatically | 3300 | p p beam -> set maxjetflavor automatically |
3073 | 3297 | more than one multiplicity: ickkw=1 xqcut=30 use_syst=F | 3301 | more than one multiplicity: ickkw=1 xqcut=30 use_syst=F |
3074 | 3302 | interference module -> no systematics | ||
3075 | 3298 | """ | 3303 | """ |
3076 | 3299 | 3304 | ||
3077 | 3300 | if proc_characteristic['loop_induced']: | 3305 | if proc_characteristic['loop_induced']: |
3078 | @@ -3318,11 +3323,87 @@ | |||
3079 | 3318 | beam_id.add(leg['id']) | 3323 | beam_id.add(leg['id']) |
3080 | 3319 | 3324 | ||
3081 | 3320 | if any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]): | 3325 | if any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]): |
3083 | 3321 | maxjetflavor = max([4]+[abs(i) for i in beam_id if -7< i < 7]) | 3326 | maxjetflavor = max([3]+[abs(i) for i in beam_id if -7< i < 7]) |
3084 | 3322 | self['maxjetflavor'] = maxjetflavor | 3327 | self['maxjetflavor'] = maxjetflavor |
3085 | 3323 | self['asrwgtflavor'] = maxjetflavor | 3328 | self['asrwgtflavor'] = maxjetflavor |
3086 | 3324 | 3329 | ||
3088 | 3325 | if any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]): | 3330 | # check EWA case -> for pp at 100TeV or EWA-lepton (1+1 TeV) |
3089 | 3331 | if any(i in beam_id for i in [23,24,-24]): | ||
3090 | 3332 | |||
3091 | 3333 | self['use_syst'] = False | ||
3092 | 3334 | self['nhel'] = 1 | ||
3093 | 3335 | |||
3094 | 3336 | # check where the W/Z are (on which beam) | ||
3095 | 3337 | EWA_in1 = any(i in beam_id_split[0] for i in [23,24,-24]) | ||
3096 | 3338 | EWA_in2 = any(i in beam_id_split[1] for i in [23,24,-24]) | ||
3097 | 3339 | p_in1 = any(i in beam_id_split[0] for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21]) | ||
3098 | 3340 | p_in2 = any(i in beam_id_split[1] for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21]) | ||
3099 | 3341 | |||
3100 | 3342 | |||
3101 | 3343 | # case1 W W collision | ||
3102 | 3344 | if EWA_in1 and EWA_in2: | ||
3103 | 3345 | self['lpp1'] = 2 | ||
3104 | 3346 | self['lpp2'] = 2 | ||
3105 | 3347 | self['ebeam1'] = '50k' | ||
3106 | 3348 | self['ebeam2'] = '50k' | ||
3107 | 3349 | # case2 p W collision | ||
3108 | 3350 | elif p_in1 and EWA_in2: | ||
3109 | 3351 | self['lpp1'] = 1 | ||
3110 | 3352 | self['lpp2'] = 2 | ||
3111 | 3353 | self['ebeam1'] = '50k' | ||
3112 | 3354 | self['ebeam2'] = '50k' | ||
3113 | 3355 | # case3 W p collision | ||
3114 | 3356 | elif p_in2 and EWA_in1: | ||
3115 | 3357 | self['lpp1'] = 2 | ||
3116 | 3358 | self['lpp2'] = 1 | ||
3117 | 3359 | self['ebeam1'] = '50k' | ||
3118 | 3360 | self['ebeam2'] = '50k' | ||
3119 | 3361 | # case3 W X collision (mainly for X=lepton) | ||
3120 | 3362 | elif EWA_in1: | ||
3121 | 3363 | self['ebeam1'] = '1k' | ||
3122 | 3364 | self['ebeam2'] = '1k' | ||
3123 | 3365 | if 11 in beam_id_split[1]: | ||
3124 | 3366 | self['lpp1'] = -3 | ||
3125 | 3367 | self['lpp2'] = 0 | ||
3126 | 3368 | elif -11 in beam_id_split[1]: | ||
3127 | 3369 | self['lpp1'] = 3 | ||
3128 | 3370 | self['lpp2'] = 0 | ||
3129 | 3371 | elif 13 in beam_id_split[1]: | ||
3130 | 3372 | self['lpp1'] = -4 | ||
3131 | 3373 | self['lpp2'] = 0 | ||
3132 | 3374 | elif -13 in beam_id_split[1]: | ||
3133 | 3375 | self['lpp1'] = 4 | ||
3134 | 3376 | self['lpp2'] = 0 | ||
3135 | 3377 | else: | ||
3136 | 3378 | self['lpp1'] = 0 | ||
3137 | 3379 | self['lpp2'] = 0 | ||
3138 | 3380 | # case3 X W collision (mainly for X=lepton) | ||
3139 | 3381 | elif EWA_in2: | ||
3140 | 3382 | self['ebeam1'] = '1k' | ||
3141 | 3383 | self['ebeam2'] = '1k' | ||
3142 | 3384 | if 11 in beam_id_split[0]: | ||
3143 | 3385 | self['lpp1'] = 0 | ||
3144 | 3386 | self['lpp2'] = -3 | ||
3145 | 3387 | elif -11 in beam_id_split[0]: | ||
3146 | 3388 | self['lpp1'] = 0 | ||
3147 | 3389 | self['lpp2'] = 3 | ||
3148 | 3390 | elif 13 in beam_id_split[0]: | ||
3149 | 3391 | self['lpp1'] = 0 | ||
3150 | 3392 | self['lpp2'] = -4 | ||
3151 | 3393 | elif -13 in beam_id_split[0]: | ||
3152 | 3394 | self['lpp1'] = 0 | ||
3153 | 3395 | self['lpp2'] = 4 | ||
3154 | 3396 | else: | ||
3155 | 3397 | self['lpp1'] = 0 | ||
3156 | 3398 | self['lpp2'] = 0 | ||
3157 | 3399 | # anything else should it happen? | ||
3158 | 3400 | else: | ||
3159 | 3401 | self['nhel'] = 1 | ||
3160 | 3402 | self['lpp1'] = 0 | ||
3161 | 3403 | self['lpp2'] = 0 | ||
3162 | 3404 | self['ebeam1'] = '1k' | ||
3163 | 3405 | self['ebeam2'] = '1k' | ||
3164 | 3406 | elif any(i in beam_id for i in [1,-1,2,-2,3,-3,4,-4,5,-5,21,22]): | ||
3165 | 3326 | # check for e p collision | 3407 | # check for e p collision |
3166 | 3327 | if any(id in beam_id for id in [11,-11,13,-13]): | 3408 | if any(id in beam_id for id in [11,-11,13,-13]): |
3167 | 3328 | self.display_block.append('beam_pol') | 3409 | self.display_block.append('beam_pol') |
3168 | @@ -3336,20 +3417,25 @@ | |||
3169 | 3336 | self['lpp2'] = 0 | 3417 | self['lpp2'] = 0 |
3170 | 3337 | self['ebeam1'] = '6500' | 3418 | self['ebeam1'] = '6500' |
3171 | 3338 | self['ebeam2'] = '1k' | 3419 | self['ebeam2'] = '1k' |
3174 | 3339 | 3420 | ||
3175 | 3340 | elif 11 in beam_id or -11 in beam_id: | 3421 | elif any(id in beam_id for id in [11,-11,13,-13]): |
3176 | 3341 | self['lpp1'] = 0 | 3422 | self['lpp1'] = 0 |
3177 | 3342 | self['lpp2'] = 0 | 3423 | self['lpp2'] = 0 |
3178 | 3343 | self['ebeam1'] = 500 | 3424 | self['ebeam1'] = 500 |
3179 | 3344 | self['ebeam2'] = 500 | 3425 | self['ebeam2'] = 500 |
3180 | 3345 | self['use_syst'] = False | 3426 | self['use_syst'] = False |
3181 | 3427 | if beam_id_split[0] == beam_id_split[1]: | ||
3182 | 3428 | self.display_block.append('ecut') | ||
3183 | 3346 | self.display_block.append('beam_pol') | 3429 | self.display_block.append('beam_pol') |
3185 | 3347 | self.display_block.append('ecut') | 3430 | |
3186 | 3431 | if beam_id_split[0] == beam_id_split[1]: | ||
3187 | 3432 | self.display_block.append('ecut') | ||
3188 | 3348 | else: | 3433 | else: |
3189 | 3349 | self['lpp1'] = 0 | 3434 | self['lpp1'] = 0 |
3190 | 3350 | self['lpp2'] = 0 | 3435 | self['lpp2'] = 0 |
3191 | 3351 | self['use_syst'] = False | 3436 | self['use_syst'] = False |
3193 | 3352 | self.display_block.append('beam_pol') | 3437 | self.display_block.append('beam_pol') |
3194 | 3438 | self.display_block.append('ecut') | ||
3195 | 3353 | 3439 | ||
3196 | 3354 | # automatic polarisation of the beam if neutrino beam | 3440 | # automatic polarisation of the beam if neutrino beam |
3197 | 3355 | if any(id in beam_id for id in [12,-12,14,-14,16,-16]): | 3441 | if any(id in beam_id for id in [12,-12,14,-14,16,-16]): |
3198 | @@ -3358,25 +3444,25 @@ | |||
3199 | 3358 | self['lpp1'] = 0 | 3444 | self['lpp1'] = 0 |
3200 | 3359 | self['ebeam1'] = '1k' | 3445 | self['ebeam1'] = '1k' |
3201 | 3360 | self['polbeam1'] = -100 | 3446 | self['polbeam1'] = -100 |
3204 | 3361 | if not all(id in beam_id_split[0] for id in [12,14,16]): | 3447 | if not all(id in [12,14,16] for id in beam_id_split[0]): |
3205 | 3362 | logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam1].') | 3448 | logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam1]. %s') |
3206 | 3363 | elif any(id in beam_id_split[0] for id in [-12,-14,-16]): | 3449 | elif any(id in beam_id_split[0] for id in [-12,-14,-16]): |
3207 | 3364 | self['lpp1'] = 0 | 3450 | self['lpp1'] = 0 |
3208 | 3365 | self['ebeam1'] = '1k' | 3451 | self['ebeam1'] = '1k' |
3209 | 3366 | self['polbeam1'] = 100 | 3452 | self['polbeam1'] = 100 |
3211 | 3367 | if not all(id in beam_id_split[0] for id in [-12,-14,-16]): | 3453 | if not all(id in [-12,-14,-16] for id in beam_id_split[0]): |
3212 | 3368 | logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam1].') | 3454 | logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam1].') |
3213 | 3369 | if any(id in beam_id_split[1] for id in [12,14,16]): | 3455 | if any(id in beam_id_split[1] for id in [12,14,16]): |
3214 | 3370 | self['lpp2'] = 0 | 3456 | self['lpp2'] = 0 |
3215 | 3371 | self['ebeam2'] = '1k' | 3457 | self['ebeam2'] = '1k' |
3216 | 3372 | self['polbeam2'] = -100 | 3458 | self['polbeam2'] = -100 |
3218 | 3373 | if not all(id in beam_id_split[1] for id in [12,14,16]): | 3459 | if not all(id in [12,14,16] for id in beam_id_split[1]): |
3219 | 3374 | logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam2].') | 3460 | logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam2].') |
3220 | 3375 | if any(id in beam_id_split[1] for id in [-12,-14,-16]): | 3461 | if any(id in beam_id_split[1] for id in [-12,-14,-16]): |
3221 | 3376 | self['lpp2'] = 0 | 3462 | self['lpp2'] = 0 |
3222 | 3377 | self['ebeam2'] = '1k' | 3463 | self['ebeam2'] = '1k' |
3223 | 3378 | self['polbeam2'] = 100 | 3464 | self['polbeam2'] = 100 |
3225 | 3379 | if not all(id in beam_id_split[1] for id in [-12,-14,-16]): | 3465 | if not all(id in [-12,-14,-16] for id in beam_id_split[1]): |
3226 | 3380 | logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam2].') | 3466 | logger.warning('Issue with default beam setup of neutrino in the run_card. Please check it up [polbeam2].') |
3227 | 3381 | 3467 | ||
3228 | 3382 | # Check if need matching | 3468 | # Check if need matching |
3229 | @@ -4285,7 +4371,7 @@ | |||
3230 | 4285 | maxjetflavor = max([4]+[abs(i) for i in beam_id if -7< i < 7]) | 4371 | maxjetflavor = max([4]+[abs(i) for i in beam_id if -7< i < 7]) |
3231 | 4286 | self['maxjetflavor'] = maxjetflavor | 4372 | self['maxjetflavor'] = maxjetflavor |
3232 | 4287 | pass | 4373 | pass |
3234 | 4288 | elif 11 in beam_id or -11 in beam_id: | 4374 | elif any(id in beam_id for id in [11,-11,13,-13]): |
3235 | 4289 | self['lpp1'] = 0 | 4375 | self['lpp1'] = 0 |
3236 | 4290 | self['lpp2'] = 0 | 4376 | self['lpp2'] = 0 |
3237 | 4291 | self['ebeam1'] = 500 | 4377 | self['ebeam1'] = 500 |
3238 | 4292 | 4378 | ||
3239 | === modified file 'madgraph/various/cluster.py' | |||
3240 | --- madgraph/various/cluster.py 2017-11-17 14:15:01 +0000 | |||
3241 | +++ madgraph/various/cluster.py 2020-08-13 08:01:43 +0000 | |||
3242 | @@ -87,6 +87,7 @@ | |||
3243 | 87 | """Basic Class for all cluster type submission""" | 87 | """Basic Class for all cluster type submission""" |
3244 | 88 | name = 'mother class' | 88 | name = 'mother class' |
3245 | 89 | identifier_length = 14 | 89 | identifier_length = 14 |
3246 | 90 | allow_arrays = False | ||
3247 | 90 | 91 | ||
3248 | 91 | def __init__(self,*args, **opts): | 92 | def __init__(self,*args, **opts): |
3249 | 92 | """Init the cluster""" | 93 | """Init the cluster""" |
3250 | @@ -97,6 +98,8 @@ | |||
3251 | 97 | self.submitted_dirs = [] #HTCaaS | 98 | self.submitted_dirs = [] #HTCaaS |
3252 | 98 | self.submitted_exes = [] #HTCaaS | 99 | self.submitted_exes = [] #HTCaaS |
3253 | 99 | self.submitted_args = [] #HTCaaS | 100 | self.submitted_args = [] #HTCaaS |
3254 | 101 | self.waiting_array_job = [] # for job array submission | ||
3255 | 102 | |||
3256 | 100 | 103 | ||
3257 | 101 | if 'cluster_queue' in opts: | 104 | if 'cluster_queue' in opts: |
3258 | 102 | self.cluster_queue = opts['cluster_queue'] | 105 | self.cluster_queue = opts['cluster_queue'] |
3259 | @@ -122,7 +125,6 @@ | |||
3260 | 122 | """How to make one submission. Return status id on the cluster.""" | 125 | """How to make one submission. Return status id on the cluster.""" |
3261 | 123 | raise NotImplemented, 'No implementation of how to submit a job to cluster \'%s\'' % self.name | 126 | raise NotImplemented, 'No implementation of how to submit a job to cluster \'%s\'' % self.name |
3262 | 124 | 127 | ||
3263 | 125 | |||
3264 | 126 | @store_input() | 128 | @store_input() |
3265 | 127 | def submit2(self, prog, argument=[], cwd=None, stdout=None, stderr=None, | 129 | def submit2(self, prog, argument=[], cwd=None, stdout=None, stderr=None, |
3266 | 128 | log=None, input_files=[], output_files=[], required_output=[], | 130 | log=None, input_files=[], output_files=[], required_output=[], |
3267 | @@ -199,10 +201,15 @@ | |||
3268 | 199 | 201 | ||
3269 | 200 | def cluster_submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, | 202 | def cluster_submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, |
3270 | 201 | log=None, input_files=[], output_files=[], required_output=[], | 203 | log=None, input_files=[], output_files=[], required_output=[], |
3272 | 202 | nb_submit=0, packet_member=None): | 204 | nb_submit=0, packet_member=None, allow_array=False): |
3273 | 203 | """This function wrap the cluster submition with cluster independant | 205 | """This function wrap the cluster submition with cluster independant |
3274 | 204 | method should not be overwritten (but for DAG type submission)""" | 206 | method should not be overwritten (but for DAG type submission)""" |
3276 | 205 | 207 | ||
3277 | 208 | if allow_array and self.allow_array: | ||
3278 | 209 | self.add_into_array(prog, argument, cwd, stdout, stderr, log, input_files, | ||
3279 | 210 | output_files, required_output, nb_submit) | ||
3280 | 211 | return None | ||
3281 | 212 | |||
3282 | 206 | id = self.submit2(prog, argument, cwd, stdout, stderr, log, input_files, | 213 | id = self.submit2(prog, argument, cwd, stdout, stderr, log, input_files, |
3283 | 207 | output_files, required_output, nb_submit) | 214 | output_files, required_output, nb_submit) |
3284 | 208 | 215 | ||
3285 | @@ -458,7 +465,27 @@ | |||
3286 | 458 | self.submit2(**args) | 465 | self.submit2(**args) |
3287 | 459 | return 'resubmit' | 466 | return 'resubmit' |
3288 | 460 | return 'done' | 467 | return 'done' |
3290 | 461 | 468 | ||
3291 | 469 | def add_into_array(self,*args, **opts): | ||
3292 | 470 | """ """ | ||
3293 | 471 | raise NotImplemented, 'No implementation of how to submit with a job array to cluster \'%s\'' % self.name | ||
3294 | 472 | |||
3295 | 473 | def submit_array(self, list_of_args): | ||
3296 | 474 | """ """ | ||
3297 | 475 | raise NotImplemented, 'No implementation of how to submit with a job array to cluster \'%s\'' % self.name | ||
3298 | 476 | |||
3299 | 477 | |||
3300 | 478 | def release_array(self): | ||
3301 | 479 | |||
3302 | 480 | if not self.allow_arrays: | ||
3303 | 481 | if self.waiting_array_jobs: | ||
3304 | 482 | raise NotImplemented, 'No implementation of how to submit with a job array to cluster \'%s\'' % self.name | ||
3305 | 483 | return None | ||
3306 | 484 | elif self.waiting_array_jobs: | ||
3307 | 485 | return self.submit_array(self.waiting_array_jobs) | ||
3308 | 486 | else: | ||
3309 | 487 | return None | ||
3310 | 488 | |||
3311 | 462 | @check_interupt() | 489 | @check_interupt() |
3312 | 463 | def launch_and_wait(self, prog, argument=[], cwd=None, stdout=None, | 490 | def launch_and_wait(self, prog, argument=[], cwd=None, stdout=None, |
3313 | 464 | stderr=None, log=None, required_output=[], nb_submit=0, | 491 | stderr=None, log=None, required_output=[], nb_submit=0, |
3314 | @@ -1648,6 +1675,7 @@ | |||
3315 | 1648 | running_tag = ['R', 'CG'] | 1675 | running_tag = ['R', 'CG'] |
3316 | 1649 | complete_tag = ['C'] | 1676 | complete_tag = ['C'] |
3317 | 1650 | identifier_length = 8 | 1677 | identifier_length = 8 |
3318 | 1678 | allow_arrays = True | ||
3319 | 1651 | 1679 | ||
3320 | 1652 | @multiple_try() | 1680 | @multiple_try() |
3321 | 1653 | def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None, | 1681 | def submit(self, prog, argument=[], cwd=None, stdout=None, stderr=None, log=None, |
3322 | @@ -1692,6 +1720,42 @@ | |||
3323 | 1692 | self.submitted_ids.append(id) | 1720 | self.submitted_ids.append(id) |
3324 | 1693 | return id | 1721 | return id |
3325 | 1694 | 1722 | ||
3326 | 1723 | def add_into_array(prog, argument, cwd, stdout, stderr, log, input_files, | ||
3327 | 1724 | output_files, required_output, nb_submit): | ||
3328 | 1725 | |||
3329 | 1726 | self.waiting_array_job.append((prog, argument, cwd, stdout, stderr, log, input_files, | ||
3330 | 1727 | output_files, required_output, nb_submit)) | ||
3331 | 1728 | |||
3332 | 1729 | |||
3333 | 1730 | def submit_array(self, waiting_array_jobs): | ||
3334 | 1731 | """write a temporary file in order to submit an array of jobs""" | ||
3335 | 1732 | |||
3336 | 1733 | for arg in waiting_array_jobs): | ||
3337 | 1734 | print( arg) | ||
3338 | 1735 | misc.sprint(waiting_array_jobs) | ||
3339 | 1736 | template= """ | ||
3340 | 1737 | #SBATCH --job-name=%(job_name)s # Job name | ||
3341 | 1738 | #SBATCH --mail-type=NONE # Mail events (NONE, BEGIN, END, FAIL, ALL) | ||
3342 | 1739 | #SBATCH --mail-user=gatorlink@ufl.edu # Where to send mail | ||
3343 | 1740 | #SBATCH --nodes=1 # Use one node | ||
3344 | 1741 | #SBATCH --ntasks=1 # Run a single task | ||
3345 | 1742 | #SBATCH --output=array_%A-%a.out # Standard output and error log | ||
3346 | 1743 | #SBATCH --array=1-5 # Array range | ||
3347 | 1744 | """ | ||
3348 | 1745 | |||
3349 | 1746 | import os | ||
3350 | 1747 | import tempfile | ||
3351 | 1748 | |||
3352 | 1749 | fd, path = tempfile.mkstemp() | ||
3353 | 1750 | try: | ||
3354 | 1751 | with os.fdopen(fd, 'w') as tmp: | ||
3355 | 1752 | # do stuff with temp file | ||
3356 | 1753 | tmp.write('stuff') | ||
3357 | 1754 | finally: | ||
3358 | 1755 | os.remove(path) | ||
3359 | 1756 | |||
3360 | 1757 | |||
3361 | 1758 | |||
3362 | 1695 | @multiple_try() | 1759 | @multiple_try() |
3363 | 1696 | def control_one_job(self, id): | 1760 | def control_one_job(self, id): |
3364 | 1697 | """ control the status of a single job with it's cluster id """ | 1761 | """ control the status of a single job with it's cluster id """ |
3365 | 1698 | 1762 | ||
3366 | === modified file 'mg5decay/decay_objects.py' | |||
3367 | --- mg5decay/decay_objects.py 2018-06-01 08:46:21 +0000 | |||
3368 | +++ mg5decay/decay_objects.py 2020-08-13 08:01:43 +0000 | |||
3369 | @@ -4086,15 +4086,28 @@ | |||
3370 | 4086 | # Evaluate the coupling strength | 4086 | # Evaluate the coupling strength |
3371 | 4087 | vertex = model.get('interaction_dict')[abs(vert.get('id'))] | 4087 | vertex = model.get('interaction_dict')[abs(vert.get('id'))] |
3372 | 4088 | lorentz_factor = 0 | 4088 | lorentz_factor = 0 |
3373 | 4089 | |||
3374 | 4090 | for fct in model['functions']: | ||
3375 | 4091 | if ';' in fct.expr: | ||
3376 | 4092 | raise Exception('; is not allowed in function_library') | ||
3377 | 4093 | exec("mdl_%s = lambda %s: %s" %(fct.name, ','.join( fct.arguments), fct.expr)) | ||
3378 | 4094 | exec("%s = lambda %s: %s" %(fct.name, ','.join( fct.arguments), fct.expr)) | ||
3379 | 4095 | |||
3380 | 4089 | for key, v in vertex['couplings'].items(): | 4096 | for key, v in vertex['couplings'].items(): |
3381 | 4090 | if not hasattr(model, 'lorentz_dict'): | 4097 | if not hasattr(model, 'lorentz_dict'): |
3382 | 4091 | model.lorentz_dict = dict([(l.name, l) for l in model['lorentz']]) | 4098 | model.lorentz_dict = dict([(l.name, l) for l in model['lorentz']]) |
3383 | 4092 | self.init_regular_expression() | 4099 | self.init_regular_expression() |
3384 | 4100 | |||
3385 | 4101 | lorentz = model.lorentz_dict[vertex['lorentz'][key[1]]] | ||
3386 | 4102 | structure = lorentz.structure | ||
3387 | 4103 | if hasattr(lorentz, 'formfactors') and lorentz.formfactors: | ||
3388 | 4104 | for ff in lorentz.formfactors: | ||
3389 | 4105 | structure = structure.replace(ff.name, '(%s)' % ff.value) | ||
3390 | 4093 | 4106 | ||
3391 | 4094 | structure = model.lorentz_dict[vertex['lorentz'][key[1]]].structure | ||
3392 | 4095 | new_structure = self.lor_pattern.sub(self.simplify_lorentz, | 4107 | new_structure = self.lor_pattern.sub(self.simplify_lorentz, |
3393 | 4096 | structure) | 4108 | structure) |
3395 | 4097 | lor_value = eval(new_structure % q_dict_lor) | 4109 | |
3396 | 4110 | lor_value = eval(new_structure % q_dict_lor, locals(), globals()) | ||
3397 | 4098 | if lor_value == 0: | 4111 | if lor_value == 0: |
3398 | 4099 | new_structure = new_structure.replace('-','+') | 4112 | new_structure = new_structure.replace('-','+') |
3399 | 4100 | lor_value = eval(new_structure % q_dict_lor) | 4113 | lor_value = eval(new_structure % q_dict_lor) |
3400 | @@ -4131,6 +4144,12 @@ | |||
3401 | 4131 | # A quick estimate of the next-level decay of a off-shell decay | 4144 | # A quick estimate of the next-level decay of a off-shell decay |
3402 | 4132 | # Consider all legs are onshell. | 4145 | # Consider all legs are onshell. |
3403 | 4133 | else: | 4146 | else: |
3404 | 4147 | for fct in model['functions']: | ||
3405 | 4148 | if ';' in fct.expr: | ||
3406 | 4149 | raise Exception('; is not allowed in function_library') | ||
3407 | 4150 | exec("mdl_%s = lambda %s: %s" %(fct.name, ','.join( fct.arguments), fct.expr)) | ||
3408 | 4151 | exec("%s = lambda %s: %s" %(fct.name, ','.join( fct.arguments), fct.expr)) | ||
3409 | 4152 | |||
3410 | 4134 | M = abs(eval(ini_part.get('mass'))) | 4153 | M = abs(eval(ini_part.get('mass'))) |
3411 | 4135 | # The avg_E is lower by one more particle in the next-level. | 4154 | # The avg_E is lower by one more particle in the next-level. |
3412 | 4136 | avg_E = (M/(len(self.get_final_legs())+1.)) | 4155 | avg_E = (M/(len(self.get_final_legs())+1.)) |
3413 | 4137 | 4156 | ||
3414 | === modified file 'tests/acceptance_tests/test_cmd_reweight.py' | |||
3415 | --- tests/acceptance_tests/test_cmd_reweight.py 2020-06-20 21:10:10 +0000 | |||
3416 | +++ tests/acceptance_tests/test_cmd_reweight.py 2020-08-13 08:01:43 +0000 | |||
3417 | @@ -212,8 +212,12 @@ | |||
3418 | 212 | ff = open(pjoin(self.run_dir, 'Cards', 'reweight_card.dat'),'w') | 212 | ff = open(pjoin(self.run_dir, 'Cards', 'reweight_card.dat'),'w') |
3419 | 213 | ff.write(cmd_lines) | 213 | ff.write(cmd_lines) |
3420 | 214 | ff.close() | 214 | ff.close() |
3423 | 215 | 215 | mad_logger = logging.getLogger('madgraph') | |
3424 | 216 | with misc.stdchannel_redirected(sys.stdout, os.devnull): | 216 | |
3425 | 217 | if mad_logger.level > 20: | ||
3426 | 218 | with misc.stdchannel_redirected(sys.stdout, os.devnull): | ||
3427 | 219 | me_cmd.run_cmd('reweight run_01 --from_cards') | ||
3428 | 220 | else: | ||
3429 | 217 | me_cmd.run_cmd('reweight run_01 --from_cards') | 221 | me_cmd.run_cmd('reweight run_01 --from_cards') |
3430 | 218 | 222 | ||
3431 | 219 | lhe = lhe_parser.EventFile(pjoin(self.run_dir,'Events','run_01', 'events.lhe.gz')) | 223 | lhe = lhe_parser.EventFile(pjoin(self.run_dir,'Events','run_01', 'events.lhe.gz')) |
3432 | @@ -242,9 +246,12 @@ | |||
3433 | 242 | ff.write(cmd_lines) | 246 | ff.write(cmd_lines) |
3434 | 243 | ff.close() | 247 | ff.close() |
3435 | 244 | 248 | ||
3437 | 245 | if 1: #with misc.stdchannel_redirected(sys.stdout, os.devnull): | 249 | mad_logger = logging.getLogger('madgraph') |
3438 | 250 | if mad_logger.level > 20: | ||
3439 | 251 | with misc.stdchannel_redirected(sys.stdout, os.devnull): | ||
3440 | 252 | me_cmd.run_cmd('reweight run_01 --from_cards') | ||
3441 | 253 | else: | ||
3442 | 246 | me_cmd.run_cmd('reweight run_01 --from_cards') | 254 | me_cmd.run_cmd('reweight run_01 --from_cards') |
3443 | 247 | |||
3444 | 248 | #solutions = [41.511565, 41.930505, 41.511565, 41.511565, 41.586169, 41.511565, 41.511565, 41.511565, 41.511565, 42.046806, 41.511565, 44.164503, 41.511565, -41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.778368, 41.511565, 42.05448, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 42.115494, 41.511854, 41.511567, 41.511565, 42.00028, 42.120605, 41.514867, -41.511565, 41.511565, 45.125706, 41.511565, 42.180208, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.997509, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.513926, 41.511565, 41.882499, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 47.532736, 41.511565, 41.809063, 41.511565, 41.511565, 41.511565, 41.927695, 41.511565, 41.511565, 41.555692, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, -41.511565, 41.511565, 42.029675, 41.725129, 41.511565, 41.511565, 41.511778, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 42.050439, 41.511565, 41.511565, 41.511565, -41.511565, 42.071105, 41.511565, 41.511565] | 255 | #solutions = [41.511565, 41.930505, 41.511565, 41.511565, 41.586169, 41.511565, 41.511565, 41.511565, 41.511565, 42.046806, 41.511565, 44.164503, 41.511565, -41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.778368, 41.511565, 42.05448, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 42.115494, 41.511854, 41.511567, 41.511565, 42.00028, 42.120605, 41.514867, -41.511565, 41.511565, 45.125706, 41.511565, 42.180208, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.997509, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.513926, 41.511565, 41.882499, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 47.532736, 41.511565, 41.809063, 41.511565, 41.511565, 41.511565, 41.927695, 41.511565, 41.511565, 41.555692, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, -41.511565, 41.511565, 42.029675, 41.725129, 41.511565, 41.511565, 41.511778, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 42.050439, 41.511565, 41.511565, 41.511565, -41.511565, 42.071105, 41.511565, 41.511565] |
3445 | 249 | solutions = [41.511565, 41.75164, 41.511565, 41.511565, 41.557009, 41.511565, 41.511565, 41.511565, 41.511565, 41.759881, 41.511565, 44.717244, 41.511565, -41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 42.041827, 41.511565, 41.663092, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.920917, 41.511736, 41.511566, 41.511565, 205.29791, 42.538389, 41.513573, -41.511565, 41.511565, 44.650974, 41.511565, 42.549187, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.431553, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.513265, 41.511565, 43.902643, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 8853.0397, 41.511565, 333.38491, 41.511565, 41.511565, 41.511565, 75.701362, 41.511565, 41.511565, 41.54695, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, -41.511565, 41.511565, 41.454923, 41.53984, 41.511565, 41.511565, 41.511743, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.732627, 41.511565, 41.511565, 41.511565, -41.511565, 41.395865, 41.511565, 41.511565] | 256 | solutions = [41.511565, 41.75164, 41.511565, 41.511565, 41.557009, 41.511565, 41.511565, 41.511565, 41.511565, 41.759881, 41.511565, 44.717244, 41.511565, -41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 42.041827, 41.511565, 41.663092, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.920917, 41.511736, 41.511566, 41.511565, 205.29791, 42.538389, 41.513573, -41.511565, 41.511565, 44.650974, 41.511565, 42.549187, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.431553, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.513265, 41.511565, 43.902643, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 8853.0397, 41.511565, 333.38491, 41.511565, 41.511565, 41.511565, 75.701362, 41.511565, 41.511565, 41.54695, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, -41.511565, 41.511565, 41.454923, 41.53984, 41.511565, 41.511565, 41.511743, 41.511565, 41.511565, 41.511565, 41.511565, 41.511565, 41.732627, 41.511565, 41.511565, 41.511565, -41.511565, 41.395865, 41.511565, 41.511565] |
3446 | 250 | lhe = lhe_parser.EventFile(pjoin(self.run_dir,'Events','run_01', 'rwgt_events_tree_rwgt_1.lhe.gz')) | 257 | lhe = lhe_parser.EventFile(pjoin(self.run_dir,'Events','run_01', 'rwgt_events_tree_rwgt_1.lhe.gz')) |
3447 | 251 | 258 | ||
3448 | === modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_matrix.f' | |||
3449 | --- tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_matrix.f 2020-06-20 21:10:10 +0000 | |||
3450 | +++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_matrix.f 2020-08-13 08:01:43 +0000 | |||
3451 | @@ -2553,11 +2553,14 @@ | |||
3452 | 2553 | PARAMETER (NEXTERNAL=3) | 2553 | PARAMETER (NEXTERNAL=3) |
3453 | 2554 | INTEGER NSQUAREDSO | 2554 | INTEGER NSQUAREDSO |
3454 | 2555 | PARAMETER (NSQUAREDSO=1) | 2555 | PARAMETER (NSQUAREDSO=1) |
3455 | 2556 | INCLUDE 'nsqso_born.inc' | ||
3456 | 2556 | C | 2557 | C |
3457 | 2557 | C ARGUMENTS | 2558 | C ARGUMENTS |
3458 | 2558 | C | 2559 | C |
3459 | 2559 | REAL*8 P(0:3,NEXTERNAL) | 2560 | REAL*8 P(0:3,NEXTERNAL) |
3461 | 2560 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2561 | INTEGER ANS_DIMENSION |
3462 | 2562 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3463 | 2563 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3464 | 2561 | INTEGER HEL, USERHEL | 2564 | INTEGER HEL, USERHEL |
3465 | 2562 | COMMON/USERCHOICE/USERHEL | 2565 | COMMON/USERCHOICE/USERHEL |
3466 | 2563 | C ---------- | 2566 | C ---------- |
3467 | @@ -2581,7 +2584,10 @@ | |||
3468 | 2581 | C ARGUMENTS | 2584 | C ARGUMENTS |
3469 | 2582 | C | 2585 | C |
3470 | 2583 | REAL*8 P(0:3,NEXTERNAL) | 2586 | REAL*8 P(0:3,NEXTERNAL) |
3472 | 2584 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2587 | INCLUDE 'nsqso_born.inc' |
3473 | 2588 | INTEGER ANS_DIMENSION | ||
3474 | 2589 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3475 | 2590 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3476 | 2585 | INTEGER HEL, RET_CODE | 2591 | INTEGER HEL, RET_CODE |
3477 | 2586 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2592 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3478 | 2587 | C | 2593 | C |
3479 | @@ -2698,7 +2704,10 @@ | |||
3480 | 2698 | C ARGUMENTS | 2704 | C ARGUMENTS |
3481 | 2699 | C | 2705 | C |
3482 | 2700 | REAL*8 P(0:3,NEXTERNAL) | 2706 | REAL*8 P(0:3,NEXTERNAL) |
3484 | 2701 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2707 | INCLUDE 'nsqso_born.inc' |
3485 | 2708 | INTEGER ANS_DIMENSION | ||
3486 | 2709 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3487 | 2710 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3488 | 2702 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2711 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3489 | 2703 | INTEGER RET_CODE | 2712 | INTEGER RET_CODE |
3490 | 2704 | C | 2713 | C |
3491 | 2705 | 2714 | ||
3492 | === modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_matrix.f' | |||
3493 | --- tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_matrix.f 2020-06-20 21:10:10 +0000 | |||
3494 | +++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_udx_wp%V0_udx_wp%loop_matrix.f 2020-08-13 08:01:43 +0000 | |||
3495 | @@ -2553,11 +2553,14 @@ | |||
3496 | 2553 | PARAMETER (NEXTERNAL=3) | 2553 | PARAMETER (NEXTERNAL=3) |
3497 | 2554 | INTEGER NSQUAREDSO | 2554 | INTEGER NSQUAREDSO |
3498 | 2555 | PARAMETER (NSQUAREDSO=1) | 2555 | PARAMETER (NSQUAREDSO=1) |
3499 | 2556 | INCLUDE 'nsqso_born.inc' | ||
3500 | 2556 | C | 2557 | C |
3501 | 2557 | C ARGUMENTS | 2558 | C ARGUMENTS |
3502 | 2558 | C | 2559 | C |
3503 | 2559 | REAL*8 P(0:3,NEXTERNAL) | 2560 | REAL*8 P(0:3,NEXTERNAL) |
3505 | 2560 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2561 | INTEGER ANS_DIMENSION |
3506 | 2562 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3507 | 2563 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3508 | 2561 | INTEGER HEL, USERHEL | 2564 | INTEGER HEL, USERHEL |
3509 | 2562 | COMMON/USERCHOICE/USERHEL | 2565 | COMMON/USERCHOICE/USERHEL |
3510 | 2563 | C ---------- | 2566 | C ---------- |
3511 | @@ -2581,7 +2584,10 @@ | |||
3512 | 2581 | C ARGUMENTS | 2584 | C ARGUMENTS |
3513 | 2582 | C | 2585 | C |
3514 | 2583 | REAL*8 P(0:3,NEXTERNAL) | 2586 | REAL*8 P(0:3,NEXTERNAL) |
3516 | 2584 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2587 | INCLUDE 'nsqso_born.inc' |
3517 | 2588 | INTEGER ANS_DIMENSION | ||
3518 | 2589 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3519 | 2590 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3520 | 2585 | INTEGER HEL, RET_CODE | 2591 | INTEGER HEL, RET_CODE |
3521 | 2586 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2592 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3522 | 2587 | C | 2593 | C |
3523 | @@ -2698,7 +2704,10 @@ | |||
3524 | 2698 | C ARGUMENTS | 2704 | C ARGUMENTS |
3525 | 2699 | C | 2705 | C |
3526 | 2700 | REAL*8 P(0:3,NEXTERNAL) | 2706 | REAL*8 P(0:3,NEXTERNAL) |
3528 | 2701 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2707 | INCLUDE 'nsqso_born.inc' |
3529 | 2708 | INTEGER ANS_DIMENSION | ||
3530 | 2709 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3531 | 2710 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3532 | 2702 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2711 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3533 | 2703 | INTEGER RET_CODE | 2712 | INTEGER RET_CODE |
3534 | 2704 | C | 2713 | C |
3535 | 2705 | 2714 | ||
3536 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f' | |||
3537 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f 2019-06-17 21:29:56 +0000 | |||
3538 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/auto_dsig.f 2020-08-13 08:01:43 +0000 | |||
3539 | @@ -174,3 +174,33 @@ | |||
3540 | 174 | 174 | ||
3541 | 175 | 175 | ||
3542 | 176 | 176 | ||
3543 | 177 | |||
3544 | 178 | INTEGER FUNCTION GET_NHEL1(HEL, IPART) | ||
3545 | 179 | IMPLICIT NONE | ||
3546 | 180 | INTEGER HEL,I, IPART | ||
3547 | 181 | INCLUDE 'nexternal.inc' | ||
3548 | 182 | INTEGER ONE_NHEL(NEXTERNAL) | ||
3549 | 183 | INTEGER NCOMB | ||
3550 | 184 | PARAMETER ( NCOMB=16) | ||
3551 | 185 | INTEGER NHEL(NEXTERNAL,NCOMB) | ||
3552 | 186 | DATA (NHEL(I, 1),I=1,4) / 1,-1,-1, 1/ | ||
3553 | 187 | DATA (NHEL(I, 2),I=1,4) / 1,-1,-1,-1/ | ||
3554 | 188 | DATA (NHEL(I, 3),I=1,4) / 1,-1, 1, 1/ | ||
3555 | 189 | DATA (NHEL(I, 4),I=1,4) / 1,-1, 1,-1/ | ||
3556 | 190 | DATA (NHEL(I, 5),I=1,4) / 1, 1,-1, 1/ | ||
3557 | 191 | DATA (NHEL(I, 6),I=1,4) / 1, 1,-1,-1/ | ||
3558 | 192 | DATA (NHEL(I, 7),I=1,4) / 1, 1, 1, 1/ | ||
3559 | 193 | DATA (NHEL(I, 8),I=1,4) / 1, 1, 1,-1/ | ||
3560 | 194 | DATA (NHEL(I, 9),I=1,4) /-1,-1,-1, 1/ | ||
3561 | 195 | DATA (NHEL(I, 10),I=1,4) /-1,-1,-1,-1/ | ||
3562 | 196 | DATA (NHEL(I, 11),I=1,4) /-1,-1, 1, 1/ | ||
3563 | 197 | DATA (NHEL(I, 12),I=1,4) /-1,-1, 1,-1/ | ||
3564 | 198 | DATA (NHEL(I, 13),I=1,4) /-1, 1,-1, 1/ | ||
3565 | 199 | DATA (NHEL(I, 14),I=1,4) /-1, 1,-1,-1/ | ||
3566 | 200 | DATA (NHEL(I, 15),I=1,4) /-1, 1, 1, 1/ | ||
3567 | 201 | DATA (NHEL(I, 16),I=1,4) /-1, 1, 1,-1/ | ||
3568 | 202 | |||
3569 | 203 | GET_NHEL1 = NHEL(IPART, HEL) | ||
3570 | 204 | RETURN | ||
3571 | 205 | END | ||
3572 | 206 | |||
3573 | 177 | 207 | ||
3574 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f' | |||
3575 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f 2020-06-20 21:10:10 +0000 | |||
3576 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/matrix1.f 2020-08-13 08:01:43 +0000 | |||
3577 | @@ -150,6 +150,7 @@ | |||
3578 | 150 | $ .LE.MAXTRIES.OR.(ISUM_HEL.NE.0).OR.THIS_NTRY(IMIRROR).LE.2) | 150 | $ .LE.MAXTRIES.OR.(ISUM_HEL.NE.0).OR.THIS_NTRY(IMIRROR).LE.2) |
3579 | 151 | $ THEN | 151 | $ THEN |
3580 | 152 | T=MATRIX1(P ,NHEL(1,I),JC(1)) | 152 | T=MATRIX1(P ,NHEL(1,I),JC(1)) |
3581 | 153 | |||
3582 | 153 | DO JJ=1,NINCOMING | 154 | DO JJ=1,NINCOMING |
3583 | 154 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)) | 155 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)) |
3584 | 155 | $ )) THEN | 156 | $ )) THEN |
3585 | @@ -158,6 +159,7 @@ | |||
3586 | 158 | T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE_IN(JJ)/2D0 | 159 | T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE_IN(JJ)/2D0 |
3587 | 159 | ENDIF | 160 | ENDIF |
3588 | 160 | ENDDO | 161 | ENDDO |
3589 | 162 | |||
3590 | 161 | IF (ISUM_HEL.NE.0.AND.DS_GET_DIM_STATUS('Helicity') | 163 | IF (ISUM_HEL.NE.0.AND.DS_GET_DIM_STATUS('Helicity') |
3591 | 162 | $ .EQ.0.AND.ALLOW_HELICITY_GRID_ENTRIES) THEN | 164 | $ .EQ.0.AND.ALLOW_HELICITY_GRID_ENTRIES) THEN |
3592 | 163 | CALL DS_ADD_ENTRY('Helicity',I,T) | 165 | CALL DS_ADD_ENTRY('Helicity',I,T) |
3593 | @@ -216,6 +218,7 @@ | |||
3594 | 216 | T=T*(2D0-ABS(POL(JJ))) | 218 | T=T*(2D0-ABS(POL(JJ))) |
3595 | 217 | ENDIF | 219 | ENDIF |
3596 | 218 | ENDDO | 220 | ENDDO |
3597 | 221 | |||
3598 | 219 | C Always one helicity at a time | 222 | C Always one helicity at a time |
3599 | 220 | ANS = T | 223 | ANS = T |
3600 | 221 | C Include the Jacobian from helicity sampling | 224 | C Include the Jacobian from helicity sampling |
3601 | 222 | 225 | ||
3602 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f' | |||
3603 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f 2020-01-19 16:22:42 +0000 | |||
3604 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_group/super_auto_dsig.f 2020-08-13 08:01:43 +0000 | |||
3605 | @@ -595,6 +595,12 @@ | |||
3606 | 595 | 595 | ||
3607 | 596 | 596 | ||
3608 | 597 | 597 | ||
3611 | 598 | 598 | INTEGER FUNCTION GET_NHEL(HEL, PARTID) | |
3612 | 599 | 599 | IMPLICIT NONE | |
3613 | 600 | INTEGER HEL, PARTID | ||
3614 | 601 | WRITE(*,*) 'do not support this type of pdf with' | ||
3615 | 602 | $ //' group_subprocess=True' | ||
3616 | 603 | STOP 1 | ||
3617 | 604 | RETURN | ||
3618 | 605 | END | ||
3619 | 600 | 606 | ||
3620 | 601 | 607 | ||
3621 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f' | |||
3622 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f 2019-06-17 21:29:56 +0000 | |||
3623 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/auto_dsig.f 2020-08-13 08:01:43 +0000 | |||
3624 | @@ -221,3 +221,33 @@ | |||
3625 | 221 | 221 | ||
3626 | 222 | 222 | ||
3627 | 223 | 223 | ||
3628 | 224 | |||
3629 | 225 | INTEGER FUNCTION GET_NHEL(HEL, IPART) | ||
3630 | 226 | IMPLICIT NONE | ||
3631 | 227 | INTEGER HEL,I, IPART | ||
3632 | 228 | INCLUDE 'nexternal.inc' | ||
3633 | 229 | INTEGER ONE_NHEL(NEXTERNAL) | ||
3634 | 230 | INTEGER NCOMB | ||
3635 | 231 | PARAMETER ( NCOMB=16) | ||
3636 | 232 | INTEGER NHEL(NEXTERNAL,NCOMB) | ||
3637 | 233 | DATA (NHEL(I, 1),I=1,4) / 1,-1,-1,-1/ | ||
3638 | 234 | DATA (NHEL(I, 2),I=1,4) / 1,-1,-1, 1/ | ||
3639 | 235 | DATA (NHEL(I, 3),I=1,4) / 1,-1, 1,-1/ | ||
3640 | 236 | DATA (NHEL(I, 4),I=1,4) / 1,-1, 1, 1/ | ||
3641 | 237 | DATA (NHEL(I, 5),I=1,4) / 1, 1,-1,-1/ | ||
3642 | 238 | DATA (NHEL(I, 6),I=1,4) / 1, 1,-1, 1/ | ||
3643 | 239 | DATA (NHEL(I, 7),I=1,4) / 1, 1, 1,-1/ | ||
3644 | 240 | DATA (NHEL(I, 8),I=1,4) / 1, 1, 1, 1/ | ||
3645 | 241 | DATA (NHEL(I, 9),I=1,4) /-1,-1,-1,-1/ | ||
3646 | 242 | DATA (NHEL(I, 10),I=1,4) /-1,-1,-1, 1/ | ||
3647 | 243 | DATA (NHEL(I, 11),I=1,4) /-1,-1, 1,-1/ | ||
3648 | 244 | DATA (NHEL(I, 12),I=1,4) /-1,-1, 1, 1/ | ||
3649 | 245 | DATA (NHEL(I, 13),I=1,4) /-1, 1,-1,-1/ | ||
3650 | 246 | DATA (NHEL(I, 14),I=1,4) /-1, 1,-1, 1/ | ||
3651 | 247 | DATA (NHEL(I, 15),I=1,4) /-1, 1, 1,-1/ | ||
3652 | 248 | DATA (NHEL(I, 16),I=1,4) /-1, 1, 1, 1/ | ||
3653 | 249 | |||
3654 | 250 | GET_NHEL = NHEL(IPART, HEL) | ||
3655 | 251 | RETURN | ||
3656 | 252 | END | ||
3657 | 253 | |||
3658 | 224 | 254 | ||
3659 | === modified file 'tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f' | |||
3660 | --- tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f 2020-06-20 21:10:10 +0000 | |||
3661 | +++ tests/input_files/IOTestsComparison/IOExportV4IOTest/export_matrix_element_v4_madevent_nogroup/matrix.f 2020-08-13 08:01:43 +0000 | |||
3662 | @@ -122,6 +122,7 @@ | |||
3663 | 122 | IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0)) | 122 | IF (GOODHEL(I) .OR. NTRY .LE. MAXTRIES.OR.(ISUM_HEL.NE.0)) |
3664 | 123 | $ THEN | 123 | $ THEN |
3665 | 124 | T=MATRIX(P ,NHEL(1,I),JC(1)) | 124 | T=MATRIX(P ,NHEL(1,I),JC(1)) |
3666 | 125 | |||
3667 | 125 | DO JJ=1,NINCOMING | 126 | DO JJ=1,NINCOMING |
3668 | 126 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)) | 127 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)) |
3669 | 127 | $ )) THEN | 128 | $ )) THEN |
3670 | @@ -130,6 +131,7 @@ | |||
3671 | 130 | T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE(JJ)/2D0 | 131 | T=T*(2D0-ABS(POL(JJ)))*NB_SPIN_STATE(JJ)/2D0 |
3672 | 131 | ENDIF | 132 | ENDIF |
3673 | 132 | ENDDO | 133 | ENDDO |
3674 | 134 | |||
3675 | 133 | IF (ISUM_HEL.NE.0) THEN | 135 | IF (ISUM_HEL.NE.0) THEN |
3676 | 134 | CALL DS_ADD_ENTRY('Helicity',I,T) | 136 | CALL DS_ADD_ENTRY('Helicity',I,T) |
3677 | 135 | ENDIF | 137 | ENDIF |
3678 | @@ -175,6 +177,7 @@ | |||
3679 | 175 | I = HEL_PICKED | 177 | I = HEL_PICKED |
3680 | 176 | 178 | ||
3681 | 177 | T=MATRIX(P ,NHEL(1,I),JC(1)) | 179 | T=MATRIX(P ,NHEL(1,I),JC(1)) |
3682 | 180 | |||
3683 | 178 | DO JJ=1,NINCOMING | 181 | DO JJ=1,NINCOMING |
3684 | 179 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)))) | 182 | IF(POL(JJ).NE.1D0.AND.NHEL(JJ,I).EQ.INT(SIGN(1D0,POL(JJ)))) |
3685 | 180 | $ THEN | 183 | $ THEN |
3686 | @@ -183,6 +186,7 @@ | |||
3687 | 183 | T=T*(2D0-ABS(POL(JJ))) | 186 | T=T*(2D0-ABS(POL(JJ))) |
3688 | 184 | ENDIF | 187 | ENDIF |
3689 | 185 | ENDDO | 188 | ENDDO |
3690 | 189 | |||
3691 | 186 | C Always one helicity at a time | 190 | C Always one helicity at a time |
3692 | 187 | ANS = T | 191 | ANS = T |
3693 | 188 | C Include the Jacobian from helicity sampling | 192 | C Include the Jacobian from helicity sampling |
3694 | 189 | 193 | ||
3695 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_eq_4.f' | |||
3696 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_eq_4.f 2020-06-20 21:10:10 +0000 | |||
3697 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_eq_4.f 2020-08-13 08:01:43 +0000 | |||
3698 | @@ -2630,11 +2630,14 @@ | |||
3699 | 2630 | PARAMETER (NEXTERNAL=4) | 2630 | PARAMETER (NEXTERNAL=4) |
3700 | 2631 | INTEGER NSQUAREDSO | 2631 | INTEGER NSQUAREDSO |
3701 | 2632 | PARAMETER (NSQUAREDSO=3) | 2632 | PARAMETER (NSQUAREDSO=3) |
3702 | 2633 | INCLUDE 'nsqso_born.inc' | ||
3703 | 2633 | C | 2634 | C |
3704 | 2634 | C ARGUMENTS | 2635 | C ARGUMENTS |
3705 | 2635 | C | 2636 | C |
3706 | 2636 | REAL*8 P(0:3,NEXTERNAL) | 2637 | REAL*8 P(0:3,NEXTERNAL) |
3708 | 2637 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2638 | INTEGER ANS_DIMENSION |
3709 | 2639 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3710 | 2640 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3711 | 2638 | INTEGER HEL, USERHEL | 2641 | INTEGER HEL, USERHEL |
3712 | 2639 | COMMON/ML5_0_USERCHOICE/USERHEL | 2642 | COMMON/ML5_0_USERCHOICE/USERHEL |
3713 | 2640 | C ---------- | 2643 | C ---------- |
3714 | @@ -2658,7 +2661,10 @@ | |||
3715 | 2658 | C ARGUMENTS | 2661 | C ARGUMENTS |
3716 | 2659 | C | 2662 | C |
3717 | 2660 | REAL*8 P(0:3,NEXTERNAL) | 2663 | REAL*8 P(0:3,NEXTERNAL) |
3719 | 2661 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2664 | INCLUDE 'nsqso_born.inc' |
3720 | 2665 | INTEGER ANS_DIMENSION | ||
3721 | 2666 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3722 | 2667 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3723 | 2662 | INTEGER HEL, RET_CODE | 2668 | INTEGER HEL, RET_CODE |
3724 | 2663 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2669 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3725 | 2664 | C | 2670 | C |
3726 | @@ -2775,7 +2781,10 @@ | |||
3727 | 2775 | C ARGUMENTS | 2781 | C ARGUMENTS |
3728 | 2776 | C | 2782 | C |
3729 | 2777 | REAL*8 P(0:3,NEXTERNAL) | 2783 | REAL*8 P(0:3,NEXTERNAL) |
3731 | 2778 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2784 | INCLUDE 'nsqso_born.inc' |
3732 | 2785 | INTEGER ANS_DIMENSION | ||
3733 | 2786 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3734 | 2787 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3735 | 2779 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2788 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3736 | 2780 | INTEGER RET_CODE | 2789 | INTEGER RET_CODE |
3737 | 2781 | C | 2790 | C |
3738 | 2782 | 2791 | ||
3739 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_0_QEDAmpAndQEDsq_gt_2.f' | |||
3740 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_0_QEDAmpAndQEDsq_gt_2.f 2020-06-20 21:10:10 +0000 | |||
3741 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_0_QEDAmpAndQEDsq_gt_2.f 2020-08-13 08:01:43 +0000 | |||
3742 | @@ -2801,11 +2801,14 @@ | |||
3743 | 2801 | PARAMETER (NEXTERNAL=4) | 2801 | PARAMETER (NEXTERNAL=4) |
3744 | 2802 | INTEGER NSQUAREDSO | 2802 | INTEGER NSQUAREDSO |
3745 | 2803 | PARAMETER (NSQUAREDSO=3) | 2803 | PARAMETER (NSQUAREDSO=3) |
3746 | 2804 | INCLUDE 'nsqso_born.inc' | ||
3747 | 2804 | C | 2805 | C |
3748 | 2805 | C ARGUMENTS | 2806 | C ARGUMENTS |
3749 | 2806 | C | 2807 | C |
3750 | 2807 | REAL*8 P(0:3,NEXTERNAL) | 2808 | REAL*8 P(0:3,NEXTERNAL) |
3752 | 2808 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2809 | INTEGER ANS_DIMENSION |
3753 | 2810 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3754 | 2811 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3755 | 2809 | INTEGER HEL, USERHEL | 2812 | INTEGER HEL, USERHEL |
3756 | 2810 | COMMON/ML5_0_USERCHOICE/USERHEL | 2813 | COMMON/ML5_0_USERCHOICE/USERHEL |
3757 | 2811 | C ---------- | 2814 | C ---------- |
3758 | @@ -2829,7 +2832,10 @@ | |||
3759 | 2829 | C ARGUMENTS | 2832 | C ARGUMENTS |
3760 | 2830 | C | 2833 | C |
3761 | 2831 | REAL*8 P(0:3,NEXTERNAL) | 2834 | REAL*8 P(0:3,NEXTERNAL) |
3763 | 2832 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2835 | INCLUDE 'nsqso_born.inc' |
3764 | 2836 | INTEGER ANS_DIMENSION | ||
3765 | 2837 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3766 | 2838 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3767 | 2833 | INTEGER HEL, RET_CODE | 2839 | INTEGER HEL, RET_CODE |
3768 | 2834 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2840 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3769 | 2835 | C | 2841 | C |
3770 | @@ -2946,7 +2952,10 @@ | |||
3771 | 2946 | C ARGUMENTS | 2952 | C ARGUMENTS |
3772 | 2947 | C | 2953 | C |
3773 | 2948 | REAL*8 P(0:3,NEXTERNAL) | 2954 | REAL*8 P(0:3,NEXTERNAL) |
3775 | 2949 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2955 | INCLUDE 'nsqso_born.inc' |
3776 | 2956 | INTEGER ANS_DIMENSION | ||
3777 | 2957 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3778 | 2958 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3779 | 2950 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2959 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3780 | 2951 | INTEGER RET_CODE | 2960 | INTEGER RET_CODE |
3781 | 2952 | C | 2961 | C |
3782 | 2953 | 2962 | ||
3783 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_4.f' | |||
3784 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_4.f 2020-06-20 21:10:10 +0000 | |||
3785 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QCDsq_gt_4.f 2020-08-13 08:01:43 +0000 | |||
3786 | @@ -2567,11 +2567,14 @@ | |||
3787 | 2567 | PARAMETER (NEXTERNAL=4) | 2567 | PARAMETER (NEXTERNAL=4) |
3788 | 2568 | INTEGER NSQUAREDSO | 2568 | INTEGER NSQUAREDSO |
3789 | 2569 | PARAMETER (NSQUAREDSO=1) | 2569 | PARAMETER (NSQUAREDSO=1) |
3790 | 2570 | INCLUDE 'nsqso_born.inc' | ||
3791 | 2570 | C | 2571 | C |
3792 | 2571 | C ARGUMENTS | 2572 | C ARGUMENTS |
3793 | 2572 | C | 2573 | C |
3794 | 2573 | REAL*8 P(0:3,NEXTERNAL) | 2574 | REAL*8 P(0:3,NEXTERNAL) |
3796 | 2574 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2575 | INTEGER ANS_DIMENSION |
3797 | 2576 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3798 | 2577 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3799 | 2575 | INTEGER HEL, USERHEL | 2578 | INTEGER HEL, USERHEL |
3800 | 2576 | COMMON/ML5_0_USERCHOICE/USERHEL | 2579 | COMMON/ML5_0_USERCHOICE/USERHEL |
3801 | 2577 | C ---------- | 2580 | C ---------- |
3802 | @@ -2595,7 +2598,10 @@ | |||
3803 | 2595 | C ARGUMENTS | 2598 | C ARGUMENTS |
3804 | 2596 | C | 2599 | C |
3805 | 2597 | REAL*8 P(0:3,NEXTERNAL) | 2600 | REAL*8 P(0:3,NEXTERNAL) |
3807 | 2598 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2601 | INCLUDE 'nsqso_born.inc' |
3808 | 2602 | INTEGER ANS_DIMENSION | ||
3809 | 2603 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3810 | 2604 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3811 | 2599 | INTEGER HEL, RET_CODE | 2605 | INTEGER HEL, RET_CODE |
3812 | 2600 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2606 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3813 | 2601 | C | 2607 | C |
3814 | @@ -2712,7 +2718,10 @@ | |||
3815 | 2712 | C ARGUMENTS | 2718 | C ARGUMENTS |
3816 | 2713 | C | 2719 | C |
3817 | 2714 | REAL*8 P(0:3,NEXTERNAL) | 2720 | REAL*8 P(0:3,NEXTERNAL) |
3819 | 2715 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2721 | INCLUDE 'nsqso_born.inc' |
3820 | 2722 | INTEGER ANS_DIMENSION | ||
3821 | 2723 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3822 | 2724 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3823 | 2716 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2725 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3824 | 2717 | INTEGER RET_CODE | 2726 | INTEGER RET_CODE |
3825 | 2718 | C | 2727 | C |
3826 | 2719 | 2728 | ||
3827 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QEDsq_le_4.f' | |||
3828 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QEDsq_le_4.f 2020-06-20 21:10:10 +0000 | |||
3829 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_QEDsq_le_4.f 2020-08-13 08:01:43 +0000 | |||
3830 | @@ -2817,11 +2817,14 @@ | |||
3831 | 2817 | PARAMETER (NEXTERNAL=4) | 2817 | PARAMETER (NEXTERNAL=4) |
3832 | 2818 | INTEGER NSQUAREDSO | 2818 | INTEGER NSQUAREDSO |
3833 | 2819 | PARAMETER (NSQUAREDSO=4) | 2819 | PARAMETER (NSQUAREDSO=4) |
3834 | 2820 | INCLUDE 'nsqso_born.inc' | ||
3835 | 2820 | C | 2821 | C |
3836 | 2821 | C ARGUMENTS | 2822 | C ARGUMENTS |
3837 | 2822 | C | 2823 | C |
3838 | 2823 | REAL*8 P(0:3,NEXTERNAL) | 2824 | REAL*8 P(0:3,NEXTERNAL) |
3840 | 2824 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2825 | INTEGER ANS_DIMENSION |
3841 | 2826 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3842 | 2827 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3843 | 2825 | INTEGER HEL, USERHEL | 2828 | INTEGER HEL, USERHEL |
3844 | 2826 | COMMON/ML5_0_USERCHOICE/USERHEL | 2829 | COMMON/ML5_0_USERCHOICE/USERHEL |
3845 | 2827 | C ---------- | 2830 | C ---------- |
3846 | @@ -2845,7 +2848,10 @@ | |||
3847 | 2845 | C ARGUMENTS | 2848 | C ARGUMENTS |
3848 | 2846 | C | 2849 | C |
3849 | 2847 | REAL*8 P(0:3,NEXTERNAL) | 2850 | REAL*8 P(0:3,NEXTERNAL) |
3851 | 2848 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2851 | INCLUDE 'nsqso_born.inc' |
3852 | 2852 | INTEGER ANS_DIMENSION | ||
3853 | 2853 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3854 | 2854 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3855 | 2849 | INTEGER HEL, RET_CODE | 2855 | INTEGER HEL, RET_CODE |
3856 | 2850 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2856 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3857 | 2851 | C | 2857 | C |
3858 | @@ -2962,7 +2968,10 @@ | |||
3859 | 2962 | C ARGUMENTS | 2968 | C ARGUMENTS |
3860 | 2963 | C | 2969 | C |
3861 | 2964 | REAL*8 P(0:3,NEXTERNAL) | 2970 | REAL*8 P(0:3,NEXTERNAL) |
3863 | 2965 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2971 | INCLUDE 'nsqso_born.inc' |
3864 | 2972 | INTEGER ANS_DIMENSION | ||
3865 | 2973 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3866 | 2974 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3867 | 2966 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2975 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3868 | 2967 | INTEGER RET_CODE | 2976 | INTEGER RET_CODE |
3869 | 2968 | C | 2977 | C |
3870 | 2969 | 2978 | ||
3871 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_WGTsq_le_10_QEDAmpAndQEDsq_gt_2.f' | |||
3872 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_WGTsq_le_10_QEDAmpAndQEDsq_gt_2.f 2020-06-20 21:10:10 +0000 | |||
3873 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_WGTsq_le_10_QEDAmpAndQEDsq_gt_2.f 2020-08-13 08:01:43 +0000 | |||
3874 | @@ -2801,11 +2801,14 @@ | |||
3875 | 2801 | PARAMETER (NEXTERNAL=4) | 2801 | PARAMETER (NEXTERNAL=4) |
3876 | 2802 | INTEGER NSQUAREDSO | 2802 | INTEGER NSQUAREDSO |
3877 | 2803 | PARAMETER (NSQUAREDSO=3) | 2803 | PARAMETER (NSQUAREDSO=3) |
3878 | 2804 | INCLUDE 'nsqso_born.inc' | ||
3879 | 2804 | C | 2805 | C |
3880 | 2805 | C ARGUMENTS | 2806 | C ARGUMENTS |
3881 | 2806 | C | 2807 | C |
3882 | 2807 | REAL*8 P(0:3,NEXTERNAL) | 2808 | REAL*8 P(0:3,NEXTERNAL) |
3884 | 2808 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2809 | INTEGER ANS_DIMENSION |
3885 | 2810 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3886 | 2811 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3887 | 2809 | INTEGER HEL, USERHEL | 2812 | INTEGER HEL, USERHEL |
3888 | 2810 | COMMON/ML5_0_USERCHOICE/USERHEL | 2813 | COMMON/ML5_0_USERCHOICE/USERHEL |
3889 | 2811 | C ---------- | 2814 | C ---------- |
3890 | @@ -2829,7 +2832,10 @@ | |||
3891 | 2829 | C ARGUMENTS | 2832 | C ARGUMENTS |
3892 | 2830 | C | 2833 | C |
3893 | 2831 | REAL*8 P(0:3,NEXTERNAL) | 2834 | REAL*8 P(0:3,NEXTERNAL) |
3895 | 2832 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2835 | INCLUDE 'nsqso_born.inc' |
3896 | 2836 | INTEGER ANS_DIMENSION | ||
3897 | 2837 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3898 | 2838 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3899 | 2833 | INTEGER HEL, RET_CODE | 2839 | INTEGER HEL, RET_CODE |
3900 | 2834 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2840 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3901 | 2835 | C | 2841 | C |
3902 | @@ -2946,7 +2952,10 @@ | |||
3903 | 2946 | C ARGUMENTS | 2952 | C ARGUMENTS |
3904 | 2947 | C | 2953 | C |
3905 | 2948 | REAL*8 P(0:3,NEXTERNAL) | 2954 | REAL*8 P(0:3,NEXTERNAL) |
3907 | 2949 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2955 | INCLUDE 'nsqso_born.inc' |
3908 | 2956 | INTEGER ANS_DIMENSION | ||
3909 | 2957 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3910 | 2958 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3911 | 2950 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2959 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3912 | 2951 | INTEGER RET_CODE | 2960 | INTEGER RET_CODE |
3913 | 2952 | C | 2961 | C |
3914 | 2953 | 2962 | ||
3915 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_default.f' | |||
3916 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_default.f 2020-06-20 21:10:10 +0000 | |||
3917 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_default.f 2020-08-13 08:01:43 +0000 | |||
3918 | @@ -2630,11 +2630,14 @@ | |||
3919 | 2630 | PARAMETER (NEXTERNAL=4) | 2630 | PARAMETER (NEXTERNAL=4) |
3920 | 2631 | INTEGER NSQUAREDSO | 2631 | INTEGER NSQUAREDSO |
3921 | 2632 | PARAMETER (NSQUAREDSO=3) | 2632 | PARAMETER (NSQUAREDSO=3) |
3922 | 2633 | INCLUDE 'nsqso_born.inc' | ||
3923 | 2633 | C | 2634 | C |
3924 | 2634 | C ARGUMENTS | 2635 | C ARGUMENTS |
3925 | 2635 | C | 2636 | C |
3926 | 2636 | REAL*8 P(0:3,NEXTERNAL) | 2637 | REAL*8 P(0:3,NEXTERNAL) |
3928 | 2637 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2638 | INTEGER ANS_DIMENSION |
3929 | 2639 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3930 | 2640 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3931 | 2638 | INTEGER HEL, USERHEL | 2641 | INTEGER HEL, USERHEL |
3932 | 2639 | COMMON/ML5_0_USERCHOICE/USERHEL | 2642 | COMMON/ML5_0_USERCHOICE/USERHEL |
3933 | 2640 | C ---------- | 2643 | C ---------- |
3934 | @@ -2658,7 +2661,10 @@ | |||
3935 | 2658 | C ARGUMENTS | 2661 | C ARGUMENTS |
3936 | 2659 | C | 2662 | C |
3937 | 2660 | REAL*8 P(0:3,NEXTERNAL) | 2663 | REAL*8 P(0:3,NEXTERNAL) |
3939 | 2661 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2664 | INCLUDE 'nsqso_born.inc' |
3940 | 2665 | INTEGER ANS_DIMENSION | ||
3941 | 2666 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3942 | 2667 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3943 | 2662 | INTEGER HEL, RET_CODE | 2668 | INTEGER HEL, RET_CODE |
3944 | 2663 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2669 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3945 | 2664 | C | 2670 | C |
3946 | @@ -2775,7 +2781,10 @@ | |||
3947 | 2775 | C ARGUMENTS | 2781 | C ARGUMENTS |
3948 | 2776 | C | 2782 | C |
3949 | 2777 | REAL*8 P(0:3,NEXTERNAL) | 2783 | REAL*8 P(0:3,NEXTERNAL) |
3951 | 2778 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2784 | INCLUDE 'nsqso_born.inc' |
3952 | 2785 | INTEGER ANS_DIMENSION | ||
3953 | 2786 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3954 | 2787 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3955 | 2779 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2788 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3956 | 2780 | INTEGER RET_CODE | 2789 | INTEGER RET_CODE |
3957 | 2781 | C | 2790 | C |
3958 | 2782 | 2791 | ||
3959 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDpert_default.f' | |||
3960 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDpert_default.f 2020-06-20 21:10:10 +0000 | |||
3961 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDpert_default.f 2020-08-13 08:01:43 +0000 | |||
3962 | @@ -2567,11 +2567,14 @@ | |||
3963 | 2567 | PARAMETER (NEXTERNAL=4) | 2567 | PARAMETER (NEXTERNAL=4) |
3964 | 2568 | INTEGER NSQUAREDSO | 2568 | INTEGER NSQUAREDSO |
3965 | 2569 | PARAMETER (NSQUAREDSO=1) | 2569 | PARAMETER (NSQUAREDSO=1) |
3966 | 2570 | INCLUDE 'nsqso_born.inc' | ||
3967 | 2570 | C | 2571 | C |
3968 | 2571 | C ARGUMENTS | 2572 | C ARGUMENTS |
3969 | 2572 | C | 2573 | C |
3970 | 2573 | REAL*8 P(0:3,NEXTERNAL) | 2574 | REAL*8 P(0:3,NEXTERNAL) |
3972 | 2574 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2575 | INTEGER ANS_DIMENSION |
3973 | 2576 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3974 | 2577 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3975 | 2575 | INTEGER HEL, USERHEL | 2578 | INTEGER HEL, USERHEL |
3976 | 2576 | COMMON/ML5_0_USERCHOICE/USERHEL | 2579 | COMMON/ML5_0_USERCHOICE/USERHEL |
3977 | 2577 | C ---------- | 2580 | C ---------- |
3978 | @@ -2595,7 +2598,10 @@ | |||
3979 | 2595 | C ARGUMENTS | 2598 | C ARGUMENTS |
3980 | 2596 | C | 2599 | C |
3981 | 2597 | REAL*8 P(0:3,NEXTERNAL) | 2600 | REAL*8 P(0:3,NEXTERNAL) |
3983 | 2598 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2601 | INCLUDE 'nsqso_born.inc' |
3984 | 2602 | INTEGER ANS_DIMENSION | ||
3985 | 2603 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3986 | 2604 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3987 | 2599 | INTEGER HEL, RET_CODE | 2605 | INTEGER HEL, RET_CODE |
3988 | 2600 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2606 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
3989 | 2601 | C | 2607 | C |
3990 | @@ -2712,7 +2718,10 @@ | |||
3991 | 2712 | C ARGUMENTS | 2718 | C ARGUMENTS |
3992 | 2713 | C | 2719 | C |
3993 | 2714 | REAL*8 P(0:3,NEXTERNAL) | 2720 | REAL*8 P(0:3,NEXTERNAL) |
3995 | 2715 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2721 | INCLUDE 'nsqso_born.inc' |
3996 | 2722 | INTEGER ANS_DIMENSION | ||
3997 | 2723 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
3998 | 2724 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
3999 | 2716 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2725 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4000 | 2717 | INTEGER RET_CODE | 2726 | INTEGER RET_CODE |
4001 | 2718 | C | 2727 | C |
4002 | 2719 | 2728 | ||
4003 | === modified file 'tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QEDpert_default.f' | |||
4004 | --- tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QEDpert_default.f 2020-06-20 21:10:10 +0000 | |||
4005 | +++ tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QEDpert_default.f 2020-08-13 08:01:43 +0000 | |||
4006 | @@ -2565,11 +2565,14 @@ | |||
4007 | 2565 | PARAMETER (NEXTERNAL=4) | 2565 | PARAMETER (NEXTERNAL=4) |
4008 | 2566 | INTEGER NSQUAREDSO | 2566 | INTEGER NSQUAREDSO |
4009 | 2567 | PARAMETER (NSQUAREDSO=1) | 2567 | PARAMETER (NSQUAREDSO=1) |
4010 | 2568 | INCLUDE 'nsqso_born.inc' | ||
4011 | 2568 | C | 2569 | C |
4012 | 2569 | C ARGUMENTS | 2570 | C ARGUMENTS |
4013 | 2570 | C | 2571 | C |
4014 | 2571 | REAL*8 P(0:3,NEXTERNAL) | 2572 | REAL*8 P(0:3,NEXTERNAL) |
4016 | 2572 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2573 | INTEGER ANS_DIMENSION |
4017 | 2574 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4018 | 2575 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4019 | 2573 | INTEGER HEL, USERHEL | 2576 | INTEGER HEL, USERHEL |
4020 | 2574 | COMMON/ML5_0_USERCHOICE/USERHEL | 2577 | COMMON/ML5_0_USERCHOICE/USERHEL |
4021 | 2575 | C ---------- | 2578 | C ---------- |
4022 | @@ -2593,7 +2596,10 @@ | |||
4023 | 2593 | C ARGUMENTS | 2596 | C ARGUMENTS |
4024 | 2594 | C | 2597 | C |
4025 | 2595 | REAL*8 P(0:3,NEXTERNAL) | 2598 | REAL*8 P(0:3,NEXTERNAL) |
4027 | 2596 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2599 | INCLUDE 'nsqso_born.inc' |
4028 | 2600 | INTEGER ANS_DIMENSION | ||
4029 | 2601 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4030 | 2602 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4031 | 2597 | INTEGER HEL, RET_CODE | 2603 | INTEGER HEL, RET_CODE |
4032 | 2598 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2604 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4033 | 2599 | C | 2605 | C |
4034 | @@ -2710,7 +2716,10 @@ | |||
4035 | 2710 | C ARGUMENTS | 2716 | C ARGUMENTS |
4036 | 2711 | C | 2717 | C |
4037 | 2712 | REAL*8 P(0:3,NEXTERNAL) | 2718 | REAL*8 P(0:3,NEXTERNAL) |
4039 | 2713 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2719 | INCLUDE 'nsqso_born.inc' |
4040 | 2720 | INTEGER ANS_DIMENSION | ||
4041 | 2721 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4042 | 2722 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4043 | 2714 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2723 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4044 | 2715 | INTEGER RET_CODE | 2724 | INTEGER RET_CODE |
4045 | 2716 | C | 2725 | C |
4046 | 2717 | 2726 | ||
4047 | === modified file 'tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%loop_matrix.f' | |||
4048 | --- tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%loop_matrix.f 2020-06-20 21:10:10 +0000 | |||
4049 | +++ tests/input_files/IOTestsComparison/MadLoop_output_from_the_interface/TIR_output/%ggttx_IOTest%SubProcesses%P0_gg_ttx%loop_matrix.f 2020-08-13 08:01:43 +0000 | |||
4050 | @@ -2584,11 +2584,14 @@ | |||
4051 | 2584 | PARAMETER (NEXTERNAL=4) | 2584 | PARAMETER (NEXTERNAL=4) |
4052 | 2585 | INTEGER NSQUAREDSO | 2585 | INTEGER NSQUAREDSO |
4053 | 2586 | PARAMETER (NSQUAREDSO=1) | 2586 | PARAMETER (NSQUAREDSO=1) |
4054 | 2587 | INCLUDE 'nsqso_born.inc' | ||
4055 | 2587 | C | 2588 | C |
4056 | 2588 | C ARGUMENTS | 2589 | C ARGUMENTS |
4057 | 2589 | C | 2590 | C |
4058 | 2590 | REAL*8 P(0:3,NEXTERNAL) | 2591 | REAL*8 P(0:3,NEXTERNAL) |
4060 | 2591 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2592 | INTEGER ANS_DIMENSION |
4061 | 2593 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4062 | 2594 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4063 | 2592 | INTEGER HEL, USERHEL | 2595 | INTEGER HEL, USERHEL |
4064 | 2593 | COMMON/ML5_0_USERCHOICE/USERHEL | 2596 | COMMON/ML5_0_USERCHOICE/USERHEL |
4065 | 2594 | C ---------- | 2597 | C ---------- |
4066 | @@ -2612,7 +2615,10 @@ | |||
4067 | 2612 | C ARGUMENTS | 2615 | C ARGUMENTS |
4068 | 2613 | C | 2616 | C |
4069 | 2614 | REAL*8 P(0:3,NEXTERNAL) | 2617 | REAL*8 P(0:3,NEXTERNAL) |
4071 | 2615 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2618 | INCLUDE 'nsqso_born.inc' |
4072 | 2619 | INTEGER ANS_DIMENSION | ||
4073 | 2620 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4074 | 2621 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4075 | 2616 | INTEGER HEL, RET_CODE | 2622 | INTEGER HEL, RET_CODE |
4076 | 2617 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2623 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4077 | 2618 | C | 2624 | C |
4078 | @@ -2729,7 +2735,10 @@ | |||
4079 | 2729 | C ARGUMENTS | 2735 | C ARGUMENTS |
4080 | 2730 | C | 2736 | C |
4081 | 2731 | REAL*8 P(0:3,NEXTERNAL) | 2737 | REAL*8 P(0:3,NEXTERNAL) |
4083 | 2732 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2738 | INCLUDE 'nsqso_born.inc' |
4084 | 2739 | INTEGER ANS_DIMENSION | ||
4085 | 2740 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4086 | 2741 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4087 | 2733 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2742 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4088 | 2734 | INTEGER RET_CODE | 2743 | INTEGER RET_CODE |
4089 | 2735 | C | 2744 | C |
4090 | 2736 | 2745 | ||
4091 | === modified file 'tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f' | |||
4092 | --- tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f 2020-06-20 21:10:10 +0000 | |||
4093 | +++ tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%loop_matrix.f 2020-08-13 08:01:43 +0000 | |||
4094 | @@ -2574,11 +2574,14 @@ | |||
4095 | 2574 | PARAMETER (NEXTERNAL=4) | 2574 | PARAMETER (NEXTERNAL=4) |
4096 | 2575 | INTEGER NSQUAREDSO | 2575 | INTEGER NSQUAREDSO |
4097 | 2576 | PARAMETER (NSQUAREDSO=1) | 2576 | PARAMETER (NSQUAREDSO=1) |
4098 | 2577 | INCLUDE 'nsqso_born.inc' | ||
4099 | 2577 | C | 2578 | C |
4100 | 2578 | C ARGUMENTS | 2579 | C ARGUMENTS |
4101 | 2579 | C | 2580 | C |
4102 | 2580 | REAL*8 P(0:3,NEXTERNAL) | 2581 | REAL*8 P(0:3,NEXTERNAL) |
4104 | 2581 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2582 | INTEGER ANS_DIMENSION |
4105 | 2583 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4106 | 2584 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4107 | 2582 | INTEGER HEL, USERHEL | 2585 | INTEGER HEL, USERHEL |
4108 | 2583 | COMMON/MG5_1_USERCHOICE/USERHEL | 2586 | COMMON/MG5_1_USERCHOICE/USERHEL |
4109 | 2584 | C ---------- | 2587 | C ---------- |
4110 | @@ -2602,7 +2605,10 @@ | |||
4111 | 2602 | C ARGUMENTS | 2605 | C ARGUMENTS |
4112 | 2603 | C | 2606 | C |
4113 | 2604 | REAL*8 P(0:3,NEXTERNAL) | 2607 | REAL*8 P(0:3,NEXTERNAL) |
4115 | 2605 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2608 | INCLUDE 'nsqso_born.inc' |
4116 | 2609 | INTEGER ANS_DIMENSION | ||
4117 | 2610 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4118 | 2611 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4119 | 2606 | INTEGER HEL, RET_CODE | 2612 | INTEGER HEL, RET_CODE |
4120 | 2607 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2613 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4121 | 2608 | C | 2614 | C |
4122 | @@ -2719,7 +2725,10 @@ | |||
4123 | 2719 | C ARGUMENTS | 2725 | C ARGUMENTS |
4124 | 2720 | C | 2726 | C |
4125 | 2721 | REAL*8 P(0:3,NEXTERNAL) | 2727 | REAL*8 P(0:3,NEXTERNAL) |
4127 | 2722 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2728 | INCLUDE 'nsqso_born.inc' |
4128 | 2729 | INTEGER ANS_DIMENSION | ||
4129 | 2730 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4130 | 2731 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4131 | 2723 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2732 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4132 | 2724 | INTEGER RET_CODE | 2733 | INTEGER RET_CODE |
4133 | 2725 | C | 2734 | C |
4134 | 2726 | 2735 | ||
4135 | === modified file 'tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_matrix.f' | |||
4136 | --- tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_matrix.f 2020-06-20 21:10:10 +0000 | |||
4137 | +++ tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/loop_matrix.f 2020-08-13 08:01:43 +0000 | |||
4138 | @@ -2548,11 +2548,14 @@ | |||
4139 | 2548 | PARAMETER (NEXTERNAL=5) | 2548 | PARAMETER (NEXTERNAL=5) |
4140 | 2549 | INTEGER NSQUAREDSO | 2549 | INTEGER NSQUAREDSO |
4141 | 2550 | PARAMETER (NSQUAREDSO=0) | 2550 | PARAMETER (NSQUAREDSO=0) |
4142 | 2551 | INCLUDE 'nsqso_born.inc' | ||
4143 | 2551 | C | 2552 | C |
4144 | 2552 | C ARGUMENTS | 2553 | C ARGUMENTS |
4145 | 2553 | C | 2554 | C |
4146 | 2554 | REAL*8 P(0:3,NEXTERNAL) | 2555 | REAL*8 P(0:3,NEXTERNAL) |
4148 | 2555 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2556 | INTEGER ANS_DIMENSION |
4149 | 2557 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4150 | 2558 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4151 | 2556 | INTEGER HEL, USERHEL | 2559 | INTEGER HEL, USERHEL |
4152 | 2557 | COMMON/ML5_0_USERCHOICE/USERHEL | 2560 | COMMON/ML5_0_USERCHOICE/USERHEL |
4153 | 2558 | C ---------- | 2561 | C ---------- |
4154 | @@ -2576,7 +2579,10 @@ | |||
4155 | 2576 | C ARGUMENTS | 2579 | C ARGUMENTS |
4156 | 2577 | C | 2580 | C |
4157 | 2578 | REAL*8 P(0:3,NEXTERNAL) | 2581 | REAL*8 P(0:3,NEXTERNAL) |
4159 | 2579 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2582 | INCLUDE 'nsqso_born.inc' |
4160 | 2583 | INTEGER ANS_DIMENSION | ||
4161 | 2584 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4162 | 2585 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4163 | 2580 | INTEGER HEL, RET_CODE | 2586 | INTEGER HEL, RET_CODE |
4164 | 2581 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2587 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4165 | 2582 | C | 2588 | C |
4166 | @@ -2693,7 +2699,10 @@ | |||
4167 | 2693 | C ARGUMENTS | 2699 | C ARGUMENTS |
4168 | 2694 | C | 2700 | C |
4169 | 2695 | REAL*8 P(0:3,NEXTERNAL) | 2701 | REAL*8 P(0:3,NEXTERNAL) |
4171 | 2696 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2702 | INCLUDE 'nsqso_born.inc' |
4172 | 2703 | INTEGER ANS_DIMENSION | ||
4173 | 2704 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4174 | 2705 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4175 | 2697 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2706 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4176 | 2698 | INTEGER RET_CODE | 2707 | INTEGER RET_CODE |
4177 | 2699 | C | 2708 | C |
4178 | 2700 | 2709 | ||
4179 | === modified file 'tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_matrix.f' | |||
4180 | --- tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_matrix.f 2020-06-20 21:10:10 +0000 | |||
4181 | +++ tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/loop_matrix.f 2020-08-13 08:01:43 +0000 | |||
4182 | @@ -2548,11 +2548,14 @@ | |||
4183 | 2548 | PARAMETER (NEXTERNAL=5) | 2548 | PARAMETER (NEXTERNAL=5) |
4184 | 2549 | INTEGER NSQUAREDSO | 2549 | INTEGER NSQUAREDSO |
4185 | 2550 | PARAMETER (NSQUAREDSO=0) | 2550 | PARAMETER (NSQUAREDSO=0) |
4186 | 2551 | INCLUDE 'nsqso_born.inc' | ||
4187 | 2551 | C | 2552 | C |
4188 | 2552 | C ARGUMENTS | 2553 | C ARGUMENTS |
4189 | 2553 | C | 2554 | C |
4190 | 2554 | REAL*8 P(0:3,NEXTERNAL) | 2555 | REAL*8 P(0:3,NEXTERNAL) |
4192 | 2555 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2556 | INTEGER ANS_DIMENSION |
4193 | 2557 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4194 | 2558 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4195 | 2556 | INTEGER HEL, USERHEL | 2559 | INTEGER HEL, USERHEL |
4196 | 2557 | COMMON/ML5_0_USERCHOICE/USERHEL | 2560 | COMMON/ML5_0_USERCHOICE/USERHEL |
4197 | 2558 | C ---------- | 2561 | C ---------- |
4198 | @@ -2576,7 +2579,10 @@ | |||
4199 | 2576 | C ARGUMENTS | 2579 | C ARGUMENTS |
4200 | 2577 | C | 2580 | C |
4201 | 2578 | REAL*8 P(0:3,NEXTERNAL) | 2581 | REAL*8 P(0:3,NEXTERNAL) |
4203 | 2579 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2582 | INCLUDE 'nsqso_born.inc' |
4204 | 2583 | INTEGER ANS_DIMENSION | ||
4205 | 2584 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4206 | 2585 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4207 | 2580 | INTEGER HEL, RET_CODE | 2586 | INTEGER HEL, RET_CODE |
4208 | 2581 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2587 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4209 | 2582 | C | 2588 | C |
4210 | @@ -2693,7 +2699,10 @@ | |||
4211 | 2693 | C ARGUMENTS | 2699 | C ARGUMENTS |
4212 | 2694 | C | 2700 | C |
4213 | 2695 | REAL*8 P(0:3,NEXTERNAL) | 2701 | REAL*8 P(0:3,NEXTERNAL) |
4215 | 2696 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2702 | INCLUDE 'nsqso_born.inc' |
4216 | 2703 | INTEGER ANS_DIMENSION | ||
4217 | 2704 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4218 | 2705 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4219 | 2697 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2706 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4220 | 2698 | INTEGER RET_CODE | 2707 | INTEGER RET_CODE |
4221 | 2699 | C | 2708 | C |
4222 | 2700 | 2709 | ||
4223 | === modified file 'tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_matrix.f' | |||
4224 | --- tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_matrix.f 2020-06-20 21:10:10 +0000 | |||
4225 | +++ tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/loop_matrix.f 2020-08-13 08:01:43 +0000 | |||
4226 | @@ -2548,11 +2548,14 @@ | |||
4227 | 2548 | PARAMETER (NEXTERNAL=4) | 2548 | PARAMETER (NEXTERNAL=4) |
4228 | 2549 | INTEGER NSQUAREDSO | 2549 | INTEGER NSQUAREDSO |
4229 | 2550 | PARAMETER (NSQUAREDSO=0) | 2550 | PARAMETER (NSQUAREDSO=0) |
4230 | 2551 | INCLUDE 'nsqso_born.inc' | ||
4231 | 2551 | C | 2552 | C |
4232 | 2552 | C ARGUMENTS | 2553 | C ARGUMENTS |
4233 | 2553 | C | 2554 | C |
4234 | 2554 | REAL*8 P(0:3,NEXTERNAL) | 2555 | REAL*8 P(0:3,NEXTERNAL) |
4236 | 2555 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2556 | INTEGER ANS_DIMENSION |
4237 | 2557 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4238 | 2558 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4239 | 2556 | INTEGER HEL, USERHEL | 2559 | INTEGER HEL, USERHEL |
4240 | 2557 | COMMON/ML5_0_USERCHOICE/USERHEL | 2560 | COMMON/ML5_0_USERCHOICE/USERHEL |
4241 | 2558 | C ---------- | 2561 | C ---------- |
4242 | @@ -2576,7 +2579,10 @@ | |||
4243 | 2576 | C ARGUMENTS | 2579 | C ARGUMENTS |
4244 | 2577 | C | 2580 | C |
4245 | 2578 | REAL*8 P(0:3,NEXTERNAL) | 2581 | REAL*8 P(0:3,NEXTERNAL) |
4247 | 2579 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2582 | INCLUDE 'nsqso_born.inc' |
4248 | 2583 | INTEGER ANS_DIMENSION | ||
4249 | 2584 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4250 | 2585 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4251 | 2580 | INTEGER HEL, RET_CODE | 2586 | INTEGER HEL, RET_CODE |
4252 | 2581 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2587 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4253 | 2582 | C | 2588 | C |
4254 | @@ -2693,7 +2699,10 @@ | |||
4255 | 2693 | C ARGUMENTS | 2699 | C ARGUMENTS |
4256 | 2694 | C | 2700 | C |
4257 | 2695 | REAL*8 P(0:3,NEXTERNAL) | 2701 | REAL*8 P(0:3,NEXTERNAL) |
4259 | 2696 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2702 | INCLUDE 'nsqso_born.inc' |
4260 | 2703 | INTEGER ANS_DIMENSION | ||
4261 | 2704 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4262 | 2705 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4263 | 2697 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2706 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4264 | 2698 | INTEGER RET_CODE | 2707 | INTEGER RET_CODE |
4265 | 2699 | C | 2708 | C |
4266 | 2700 | 2709 | ||
4267 | === modified file 'tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_matrix.f' | |||
4268 | --- tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_matrix.f 2020-06-20 21:10:10 +0000 | |||
4269 | +++ tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/loop_matrix.f 2020-08-13 08:01:43 +0000 | |||
4270 | @@ -2548,11 +2548,14 @@ | |||
4271 | 2548 | PARAMETER (NEXTERNAL=4) | 2548 | PARAMETER (NEXTERNAL=4) |
4272 | 2549 | INTEGER NSQUAREDSO | 2549 | INTEGER NSQUAREDSO |
4273 | 2550 | PARAMETER (NSQUAREDSO=0) | 2550 | PARAMETER (NSQUAREDSO=0) |
4274 | 2551 | INCLUDE 'nsqso_born.inc' | ||
4275 | 2551 | C | 2552 | C |
4276 | 2552 | C ARGUMENTS | 2553 | C ARGUMENTS |
4277 | 2553 | C | 2554 | C |
4278 | 2554 | REAL*8 P(0:3,NEXTERNAL) | 2555 | REAL*8 P(0:3,NEXTERNAL) |
4280 | 2555 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2556 | INTEGER ANS_DIMENSION |
4281 | 2557 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4282 | 2558 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4283 | 2556 | INTEGER HEL, USERHEL | 2559 | INTEGER HEL, USERHEL |
4284 | 2557 | COMMON/ML5_0_USERCHOICE/USERHEL | 2560 | COMMON/ML5_0_USERCHOICE/USERHEL |
4285 | 2558 | C ---------- | 2561 | C ---------- |
4286 | @@ -2576,7 +2579,10 @@ | |||
4287 | 2576 | C ARGUMENTS | 2579 | C ARGUMENTS |
4288 | 2577 | C | 2580 | C |
4289 | 2578 | REAL*8 P(0:3,NEXTERNAL) | 2581 | REAL*8 P(0:3,NEXTERNAL) |
4291 | 2579 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2582 | INCLUDE 'nsqso_born.inc' |
4292 | 2583 | INTEGER ANS_DIMENSION | ||
4293 | 2584 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4294 | 2585 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4295 | 2580 | INTEGER HEL, RET_CODE | 2586 | INTEGER HEL, RET_CODE |
4296 | 2581 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2587 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4297 | 2582 | C | 2588 | C |
4298 | @@ -2693,7 +2699,10 @@ | |||
4299 | 2693 | C ARGUMENTS | 2699 | C ARGUMENTS |
4300 | 2694 | C | 2700 | C |
4301 | 2695 | REAL*8 P(0:3,NEXTERNAL) | 2701 | REAL*8 P(0:3,NEXTERNAL) |
4303 | 2696 | REAL*8 ANS(0:3,0:NSQUAREDSO) | 2702 | INCLUDE 'nsqso_born.inc' |
4304 | 2703 | INTEGER ANS_DIMENSION | ||
4305 | 2704 | PARAMETER(ANS_DIMENSION=MAX(NSQSO_BORN,NSQUAREDSO)) | ||
4306 | 2705 | REAL*8 ANS(0:3,0:ANS_DIMENSION) | ||
4307 | 2697 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) | 2706 | REAL*8 PREC_ASKED,PREC_FOUND(0:NSQUAREDSO) |
4308 | 2698 | INTEGER RET_CODE | 2707 | INTEGER RET_CODE |
4309 | 2699 | C | 2708 | C |
4310 | 2700 | 2709 | ||
4311 | === modified file 'tests/test_manager.py' | |||
4312 | --- tests/test_manager.py 2018-08-10 12:40:47 +0000 | |||
4313 | +++ tests/test_manager.py 2020-08-13 08:01:43 +0000 | |||
4314 | @@ -44,6 +44,7 @@ | |||
4315 | 44 | import time | 44 | import time |
4316 | 45 | import datetime | 45 | import datetime |
4317 | 46 | import shutil | 46 | import shutil |
4318 | 47 | import subprocess | ||
4319 | 47 | import glob | 48 | import glob |
4320 | 48 | from functools import wraps | 49 | from functools import wraps |
4321 | 49 | 50 | ||
4322 | @@ -973,7 +974,8 @@ | |||
4323 | 973 | 974 | ||
4324 | 974 | parser.add_option("-N", "--notification", default=45, | 975 | parser.add_option("-N", "--notification", default=45, |
4325 | 975 | help="Running time, below which no notification is raised. (-1 for no notification)") | 976 | help="Running time, below which no notification is raised. (-1 for no notification)") |
4327 | 976 | 977 | parser.add_option("", "--nocaffeinate", action="store_false", default=True, dest='nosleep', | |
4328 | 978 | help='For mac user, forbids to use caffeinate when running with a script') | ||
4329 | 977 | 979 | ||
4330 | 978 | (options, args) = parser.parse_args() | 980 | (options, args) = parser.parse_args() |
4331 | 979 | 981 | ||
4332 | @@ -1046,6 +1048,14 @@ | |||
4333 | 1046 | logging.getLogger('tutorial').setLevel('ERROR') | 1048 | logging.getLogger('tutorial').setLevel('ERROR') |
4334 | 1047 | except: | 1049 | except: |
4335 | 1048 | pass | 1050 | pass |
4336 | 1051 | |||
4337 | 1052 | if sys.platform == "darwin" and options.nosleep: | ||
4338 | 1053 | logging.getLogger('madgraph').warning("launching caffeinate to prevent idle sleep when MG5aMC is running. Run './bin/mg5_aMC -s' to prevent this.") | ||
4339 | 1054 | pid = os.getpid() | ||
4340 | 1055 | subprocess.Popen(['caffeinate', '-i', '-w', str(pid)]) | ||
4341 | 1056 | |||
4342 | 1057 | |||
4343 | 1058 | |||
4344 | 1049 | 1059 | ||
4345 | 1050 | if options.synchronize and IOTestManager._compress_ref_fodler: | 1060 | if options.synchronize and IOTestManager._compress_ref_fodler: |
4346 | 1051 | print "The tarball synchronization is not necessary since"+ \ | 1061 | print "The tarball synchronization is not necessary since"+ \ |