JHUGen MELA  v2.4.1
Matrix element calculations as used in JHUGen. MELA is an important tool that was used for the Higgs boson discovery and for precise measurements of its structure and interactions. Please see the website https://spin.pha.jhu.edu/ and papers cited there for more details, and kindly cite those papers when using this code.
Functions/Subroutines | Variables
coli_stat Module Reference

Functions/Subroutines

subroutine initstatisticsa_coli
 
subroutine printstatistics_coli
 

Variables

integer, parameter nmethodc =7
 
integer, parameter nmethodd =7
 
integer, parameter kcountc =2**nmethodC
 
integer, parameter kcountd =2**nmethodD
 
integer, parameter ccountoffset0 =20
 
integer, parameter ccountoffset1 =CCountoffset0+kcountC
 
integer, parameter ccountoffset2 =Ccountoffset1+kcountC
 
integer, parameter ccountoffset3 =Ccountoffset2+kcountC
 
integer, parameter dcountoffset0 =20
 
integer, parameter dcountoffset1 =DCountoffset0+kcountD
 
integer, parameter dcountoffset2 =Dcountoffset1+kcountD
 
integer, parameter dcountoffset3 =Dcountoffset2+kcountD
 
integer, parameter ncountc =CCountoffset3+2**nmethodC
 
integer, parameter ncountd =DCountoffset3+2**nmethodD
 
integer(kind=8), dimension(0:ncountcccount
 
integer(kind=8), dimension(0:ncountddcount
 

Function/Subroutine Documentation

◆ initstatisticsa_coli()

subroutine coli_stat::initstatisticsa_coli

Definition at line 54 of file coli_stat.F90.

54 
55  ccount = 0
56  dcount = 0
57 

◆ printstatistics_coli()

subroutine coli_stat::printstatistics_coli

Definition at line 64 of file coli_stat.F90.

64 
65  use coli_aux2
66 
67  integer :: i
68  double precision :: normC,normD
69  character :: stringC(0:ncountC)*32 ! 4*nmethodC
70 #ifdef GM
71  character :: stringD(0:ncountD)*36 ! 4*nmethodD
72 #else
73 ! character :: stringD(0:ncountD)*24 ! 4*nmethodD
74  character :: stringD(0:ncountD)*32 ! 4*nmethodD
75 #endif
76 
77 ! if (nout.ne.0) then
78 ! call setnstatsoutcoli_cll(nout)
79 ! call setnstatsout_coli(nout)
80 ! if (nout.ne.6) then
81 ! call OpenStatisticsOutFileCOLI_cll('output_cll/StatisticsOut.coli')
82 ! end if
83 ! end if
84 
85  normc = dble(max(ccount(0),1))
86  normd = dble(max(dcount(0),1))
87 
88 ! write(*,*) 'printstat C',CCount
89 ! write(*,*) 'printstat D',DCount
90 
91 
92  stringc(0) = 'total '
93  stringc(2**nmethodc) = 'sum '
98  do i=1,2**nmethodc-1
99  stringc(i)= ' '
100  if (mod(i,2).eq.1) stringc(i)(1:4) = 'pv1 '
101  if (mod(i,4)-mod(i,2).eq.2) stringc(i)(5:8) = 'pv2 '
102  if (mod(i,8)-mod(i,4).eq.4) stringc(i)(9:12) = ' g '
103  if (mod(i,16)-mod(i,8).eq.8) stringc(i)(13:16) = ' gc '
104  if (mod(i,32)-mod(i,16).eq.16) stringc(i)(17:20) = ' sm '
105  if (mod(i,64)-mod(i,32).eq.32) stringc(i)(21:24) = ' gr '
106  if (mod(i,128)-mod(i,64).eq.64) stringc(i)(25:28) = 'smf '
111  end do
112 
113  stringd(0) = 'total '
114  stringd(2**nmethodd) = 'sum '
119  do i=1,2**nmethodd-1
120  stringd(i)= ' '
121  if (mod(i,2).eq.1) stringd(i)(1:4) = 'pv1 '
122  if (mod(i,4)-mod(i,2).eq.2) stringd(i)(5:8) = 'pv2 '
123  if (mod(i,8)-mod(i,4).eq.4) stringd(i)(9:12) = ' g '
124  if (mod(i,16)-mod(i,8).eq.8) stringd(i)(13:16) = ' gc '
125  if (mod(i,32)-mod(i,16).eq.16) stringd(i)(17:20) = ' sm '
126  if (mod(i,64)-mod(i,32).eq.32) stringd(i)(21:24) = ' gr '
127  if (mod(i,128)-mod(i,64).eq.64) stringd(i)(25:28) = 'smf '
128 #ifdef GM
129  if (mod(i,256)-mod(i,128).eq.128) stringd(i)(29:32) = ' gm '
130 #endif
135  end do
136 
137  ccount(19)=0
138  dcount(19)=0
139  do i=1,6
140  ccount(19)=ccount(19)+ccount(i)+ccount(10+i)
141  dcount(19)=dcount(19)+dcount(i)+dcount(10+i)
142  end do
143 
144  write(nstatsout_coli,100)
145 100 format (/' Collier: Numbers for calls of different branches in C and D reduction'/)
146 
147 
148  write(nstatsout_coli,300) (ccount(i),dble(ccount(i))/normc*1d2,i=1,nmethodc), &
149  ccount(8),dble(ccount(8))/normc*1d2, &
150  ccount(9),dble(ccount(9))/normc*1d2, &
151  (ccount(i),dble(ccount(i))/normc*1d2,i=11,10+nmethodc), &
152  ccount(19),dble(ccount(19))/normc*1d2, &
153  ccount(0),dble(ccount(0))/normc*1d2
154 
155 300 format(' #calls C pv1 1 = ',i20,' or ',f10.5,' %'/ &
156  & ' #calls C pv2 1 = ',i20,' or ',f10.5,' %'/ &
157  & ' #calls C g 1 = ',i20,' or ',f10.5,' %'/ &
158  & ' #calls C gc 1 = ',i20,' or ',f10.5,' %'/ &
159  & ' #calls C sm 1 = ',i20,' or ',f10.5,' %'/ &
160  & ' #calls C gr 1 = ',i20,' or ',f10.5,' %'/ &
161  & ' #calls C smf 1 = ',i20,' or ',f10.5,' %'/ &
162 ! & ' #calls C gm 1 = ',i20,' or ',F10.5,' %'/ &
163  & ' #calls C pvs+1 = ',i20,' or ',f10.5,' %'/ &
164  & ' #calls C pvs 1 = ',i20,' or ',f10.5,' %'/ &
165  & ' #calls C pv1 2 = ',i20,' or ',f10.5,' %'/ &
166  & ' #calls C pv2 2 = ',i20,' or ',f10.5,' %'/ &
167  & ' #calls C g 2 = ',i20,' or ',f10.5,' %'/ &
168  & ' #calls C gc 2 = ',i20,' or ',f10.5,' %'/ &
169  & ' #calls C sm 2 = ',i20,' or ',f10.5,' %'/ &
170  & ' #calls C gr 2 = ',i20,' or ',f10.5,' %'/ &
171  & ' #calls C smf 2 = ',i20,' or ',f10.5,' %'/ &
172 ! & ' #calls C gm 2 = ',i20,' or ',F10.5,' %'/ &
173  & ' #calls C all m = ',i20,' or ',f10.5,' %'/ &
174  & ' #calls C = ',i20,' or ',f10.5,' %'/)
175 
176  do i=1,2**nmethodc
177  if (ccount(i+ccountoffset0).ne.0.or.i.eq.2**nmethodc) then
178  write(nstatsout_coli,310) stringc(i),ccount(i+ccountoffset0),dble(ccount(i+ccountoffset0))/normc*1d2
179  end if
180  end do
181  write(nstatsout_coli,310) stringc(0),ccount(0),dble(ccount(0))/normc*1d2
182 
183 310 format(' #calls C ',a32 ,' = ',i16,' or ',f10.5,' %')
184 
185  write(nstatsout_coli,400) (dcount(i),dble(dcount(i))/normd*1d2,i=1,nmethodd), &
186  (dcount(i),dble(dcount(i))/normd*1d2,i=11,10+nmethodd), &
187  dcount(19),dble(dcount(19))/normd*1d2, &
188  dcount(0),dble(dcount(0))/normd*1d2
189 
190 400 format(/' #calls D pv1 1 = ',i20,' or ',f10.5,' %'/ &
191  & ' #calls D pv2 1 = ',i20,' or ',f10.5,' %'/ &
192  & ' #calls D g 1 = ',i20,' or ',f10.5,' %'/ &
193  & ' #calls D gc 1 = ',i20,' or ',f10.5,' %'/ &
194  & ' #calls D sm 1 = ',i20,' or ',f10.5,' %'/ &
195  & ' #calls D gr 1 = ',i20,' or ',f10.5,' %'/ &
196  & ' #calls D smf 1 = ',i20,' or ',f10.5,' %'/ &
197 #ifdef GM
198  & ' #calls D gm 1 = ',i20,' or ',f10.5,' %'/ &
199 #endif
200  & ' #calls D pv1 2 = ',i20,' or ',f10.5,' %'/ &
201  & ' #calls D pv2 2 = ',i20,' or ',f10.5,' %'/ &
202  & ' #calls D g 2 = ',i20,' or ',f10.5,' %'/ &
203  & ' #calls D gc 2 = ',i20,' or ',f10.5,' %'/ &
204  & ' #calls D sm 2 = ',i20,' or ',f10.5,' %'/ &
205  & ' #calls D gr 2 = ',i20,' or ',f10.5,' %'/ &
206  & ' #calls D smf 2 = ',i20,' or ',f10.5,' %'/ &
207 #ifdef GM
208  & ' #calls D gm 2 = ',i20,' or ',f10.5,' %'/ &
209 #endif
210  & ' #calls D all m = ',i20,' or ',f10.5,' %'/ &
211  & ' #calls D = ',i20,' or ',f10.5,' %'/)
212 
213 
214  do i=1,2**nmethodd
215  if (dcount(i+dcountoffset0).ne.0.or.i.eq.2**nmethodd) then
216  write(nstatsout_coli,410) stringd(i),dcount(i+dcountoffset0),dble(dcount(i+dcountoffset0))/normd*1d2
217  end if
218  end do
219  write(nstatsout_coli,410) stringd(0),dcount(0),dble(dcount(0))/normd*1d2
220 
221 #ifdef GM
222 410 format(' #calls D ',a36 ,' = ',i16,' or ',f10.5,' %')
223 #else
224 410 format(' #calls D ',a32 ,' = ',i16,' or ',f10.5,' %')
225 #endif
226 
227  write(nstatsout_coli,110) reqacc_coli
228 110 format (/' Collier: Numbers for calls of different branches in C and D reduction'/ &
229  ' with an accuracy worse than reqacc_coli =',es11.4/)
230 
231  do i=1,2**nmethodc
232  if (ccount(i+ccountoffset1).ne.0.or.i.eq.2**nmethodc) then
233  write(nstatsout_coli,310) stringc(i),ccount(i+ccountoffset1),dble(ccount(i+ccountoffset1))/normc*1d2
234  end if
235  end do
236  write(nstatsout_coli,310) stringc(0),ccount(0),dble(ccount(0))/normc*1d2
237  write(nstatsout_coli,*)
238 
239  do i=1,2**nmethodd
240  if (dcount(i+dcountoffset1).ne.0.or.i.eq.2**nmethodd) then
241  write(nstatsout_coli,410) stringd(i),dcount(i+dcountoffset1),dble(dcount(i+dcountoffset1))/normd*1d2
242  end if
243  end do
244  write(nstatsout_coli,410) stringd(0),dcount(0),dble(dcount(0))/normd*1d2
245 
246  write(nstatsout_coli,130) sqrt(reqacc_coli)
247 130 format (/' Collier: Numbers for calls of different branches in C and D reduction'/ &
248  ' with an accuracy worse than sqrt(reqacc_coli) =',es11.4/)
249 
250  do i=1,2**nmethodc
251  if (ccount(i+ccountoffset3).ne.0.or.i.eq.2**nmethodc) then
252  write(nstatsout_coli,310) stringc(i),ccount(i+ccountoffset3),dble(ccount(i+ccountoffset3))/normc*1d2
253  end if
254  end do
255  write(nstatsout_coli,310) stringc(0),ccount(0),dble(ccount(0))/normc*1d2
256  write(nstatsout_coli,*)
257 
258  do i=1,2**nmethodd
259  if (dcount(i+dcountoffset3).ne.0.or.i.eq.2**nmethodd) then
260  write(nstatsout_coli,410) stringd(i),dcount(i+dcountoffset3),dble(dcount(i+dcountoffset3))/normd*1d2
261  end if
262  end do
263  write(nstatsout_coli,410) stringd(0),dcount(0),dble(dcount(0))/normd*1d2
264 
265 
266  write(nstatsout_coli,120) critacc_coli
267 120 format (/' Collier: Numbers for calls of different branches in C and D reduction'/ &
268  ' with an accuracy worse than critacc_coli =',es11.4/)
269 
270  do i=1,2**nmethodc
271  if (ccount(i+ccountoffset2).ne.0.or.i.eq.2**nmethodc) then
272  write(nstatsout_coli,310) stringc(i),ccount(i+ccountoffset2),dble(ccount(i+ccountoffset2))/normc*1d2
273  end if
274  end do
275  write(nstatsout_coli,310) stringc(0),ccount(0),dble(ccount(0))/normc*1d2
276  write(nstatsout_coli,*)
277 
278  do i=1,2**nmethodd
279  if (dcount(i+dcountoffset2).ne.0.or.i.eq.2**nmethodd) then
280  write(nstatsout_coli,410) stringd(i),dcount(i+dcountoffset2),dble(dcount(i+dcountoffset2))/normd*1d2
281  end if
282  end do
283  write(nstatsout_coli,410) stringd(0),dcount(0),dble(dcount(0))/normd*1d2
284  write(nstatsout_coli,*)
285 

Variable Documentation

◆ ccount

integer (kind=8), dimension(0:ncountc) coli_stat::ccount

Definition at line 44 of file coli_stat.F90.

44  integer (kind=8) :: CCount(0:ncountC),DCount(0:ncountD)

◆ ccountoffset0

integer, parameter coli_stat::ccountoffset0 =20

Definition at line 34 of file coli_stat.F90.

34  integer, parameter :: CCountoffset0=20

◆ ccountoffset1

integer, parameter coli_stat::ccountoffset1 =CCountoffset0+kcountC

Definition at line 35 of file coli_stat.F90.

35  integer, parameter :: Ccountoffset1=ccountoffset0+kcountc

◆ ccountoffset2

integer, parameter coli_stat::ccountoffset2 =Ccountoffset1+kcountC

Definition at line 36 of file coli_stat.F90.

36  integer, parameter :: CCountoffset2=ccountoffset1+kcountc

◆ ccountoffset3

integer, parameter coli_stat::ccountoffset3 =Ccountoffset2+kcountC

Definition at line 37 of file coli_stat.F90.

37  integer, parameter :: CCountoffset3=ccountoffset2+kcountc

◆ dcount

integer (kind=8), dimension(0:ncountd) coli_stat::dcount

Definition at line 44 of file coli_stat.F90.

◆ dcountoffset0

integer, parameter coli_stat::dcountoffset0 =20

Definition at line 38 of file coli_stat.F90.

38  integer, parameter :: DCountoffset0=20

◆ dcountoffset1

integer, parameter coli_stat::dcountoffset1 =DCountoffset0+kcountD

Definition at line 39 of file coli_stat.F90.

39  integer, parameter :: Dcountoffset1=dcountoffset0+kcountd

◆ dcountoffset2

integer, parameter coli_stat::dcountoffset2 =Dcountoffset1+kcountD

Definition at line 40 of file coli_stat.F90.

40  integer, parameter :: DCountoffset2=dcountoffset1+kcountd

◆ dcountoffset3

integer, parameter coli_stat::dcountoffset3 =Dcountoffset2+kcountD

Definition at line 41 of file coli_stat.F90.

41  integer, parameter :: DCountoffset3=dcountoffset2+kcountd

◆ kcountc

integer, parameter coli_stat::kcountc =2**nmethodC

Definition at line 32 of file coli_stat.F90.

32  integer, parameter :: kcountC=2**nmethodc

◆ kcountd

integer, parameter coli_stat::kcountd =2**nmethodD

Definition at line 33 of file coli_stat.F90.

33  integer, parameter :: kcountD=2**nmethodd

◆ ncountc

integer, parameter coli_stat::ncountc =CCountoffset3+2**nmethodC

Definition at line 42 of file coli_stat.F90.

42  integer, parameter :: ncountC=ccountoffset3+2**nmethodc

◆ ncountd

integer, parameter coli_stat::ncountd =DCountoffset3+2**nmethodD

Definition at line 43 of file coli_stat.F90.

43  integer, parameter :: ncountD=dcountoffset3+2**nmethodd

◆ nmethodc

integer, parameter coli_stat::nmethodc =7

Definition at line 30 of file coli_stat.F90.

30  integer, parameter :: nmethodC=7, nmethodd=7

◆ nmethodd

integer, parameter coli_stat::nmethodd =7

Definition at line 30 of file coli_stat.F90.

coli_stat::dcountoffset3
integer, parameter dcountoffset3
Definition: coli_stat.F90:41
coli_stat::ccountoffset1
integer, parameter ccountoffset1
Definition: coli_stat.F90:35
coli_stat::dcountoffset1
integer, parameter dcountoffset1
Definition: coli_stat.F90:39
coli_stat::nmethodc
integer, parameter nmethodc
Definition: coli_stat.F90:30
coli_stat::ccountoffset2
integer, parameter ccountoffset2
Definition: coli_stat.F90:36
coli_stat::ccountoffset3
integer, parameter ccountoffset3
Definition: coli_stat.F90:37
coli_stat::dcountoffset0
integer, parameter dcountoffset0
Definition: coli_stat.F90:38
coli_aux2
Definition: coli_aux2.F90:23
coli_stat::ccountoffset0
integer, parameter ccountoffset0
Definition: coli_stat.F90:34
coli_stat::nmethodd
integer, parameter nmethodd
Definition: coli_stat.F90:30
coli_stat::ccount
integer(kind=8), dimension(0:ncountc) ccount
Definition: coli_stat.F90:44
coli_stat::dcountoffset2
integer, parameter dcountoffset2
Definition: coli_stat.F90:40
coli_stat::dcount
integer(kind=8), dimension(0:ncountd) dcount
Definition: coli_stat.F90:44