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.
|
Go to the documentation of this file.
58 subroutine init_cll(Nmax,rmax,folder_name,noreset)
60 integer,
intent(in) :: Nmax
61 integer,
optional,
intent(in) :: rmax
62 character(len=*),
optional,
intent(in) :: folder_name
63 logical,
optional,
intent(in) :: noreset
64 integer :: mode,erroutlev,infoutlev,nminf,ritmax
65 integer :: ritmaxB,ritmaxC,ritmaxD
66 double precision :: muUV2, muIR2
67 double precision :: deltaUV, deltaIR1, deltaIR2
68 double complex,
allocatable :: minf2(:)
69 double precision :: acc0, acc1, acc2
70 integer :: i,tenred,nchan,rmax0
72 character(len=*),
parameter :: fmt90 =
"(A40,I10)"
73 character(len=*),
parameter :: fmt91 =
"(A40,Es17.10)"
74 character(len=*),
parameter :: fmt95 =
"(A47,I10)"
75 character(len=*),
parameter :: fmt98 = &
76 "(7x,'minf2_cll(',i2,') = ',Es17.10)"
77 character(len=*),
parameter :: fmt96 = &
78 "(7x,'cache no.',i2,': only internal calls cached')"
79 character(len=*),
parameter :: fmt97 = &
80 "(7x,'cache no.',i2,': external and internal calls cached')"
82 if (
present(noreset))
then
88 if (
present(folder_name))
then
90 if (len(trim(folder_name)).ne.0)
then
95 if (len(trim(folder_name)).eq.0)
then
112 if (
present(folder_name))
then
113 if (len(trim(folder_name)).eq.0)
then
135 if(
present(rmax))
then
168 if (erroutlev.ge.1)
then
182 if (infoutlev.ge.1)
then
204 ritmax = max(14,rmax0+4-nmax)
213 call ddsetcout_on(.false.)
216 if (
allocated(minf2))
then
219 allocate(minf2(nminf))
252 call initcachesystem_cll(0,nmax)
255 call setbinomtable(rmax0+max(nmax-2,4))
258 call setindcombiseq(nmax-1,rmax0)
259 call setaddtocind(nmax-1,rmax0)
260 call setdropcind(nmax-1,rmax0)
261 call setdropcind2(nmax-1,rmax0)
302 if (infoutlev.ge.1)
then
304 write(unit=
stdout_cll,fmt=*)
'***********************************************************'
306 write(unit=
stdout_cll,fmt=*)
' COLLIER: information on settings and internal parameters '
309 write(unit=
stdout_cll,fmt=*)
'***********************************************************'
314 write(unit=
ninfout_cll,fmt=*)
'***********************************************************'
315 write(unit=
ninfout_cll,fmt=*)
' Default initialization of COLLIER: '
323 write(
ninfout_cll,*)
' -> check COLI against DD implementation'
325 write(unit=
ninfout_cll,fmt=*)
'-----------------------------------------------------------'
326 write(unit=
ninfout_cll,fmt=*)
' internal parameters: '
327 write(unit=
ninfout_cll,fmt=fmt90)
' maximal degree: Nmax = ',nmax
328 write(unit=
ninfout_cll,fmt=fmt91)
' UV scale: muUV2 = ',muuv2
329 write(unit=
ninfout_cll,fmt=fmt91)
' IR scale: muIR2 = ',muir2
330 write(unit=
ninfout_cll,fmt=fmt91)
' UV pole: deltaUV = ',deltauv
331 write(unit=
ninfout_cll,fmt=fmt91)
' single IR pole: deltaIR1 = ',deltair1
332 write(unit=
ninfout_cll,fmt=fmt91)
' double IR pole: deltaIR2 = ',deltair2
337 write(unit=
ninfout_cll,fmt=fmt90)
' maximal rank of Bs: ritmaxB = ',ritmaxb
338 write(unit=
ninfout_cll,fmt=fmt90)
' maximal rank of Cs: ritmaxC = ',ritmaxc
339 write(unit=
ninfout_cll,fmt=fmt90)
' maximal rank of Ds: ritmaxD = ',ritmaxd
341 write(unit=
ninfout_cll,fmt=*)
'-----------------------------------------------------------'
344 write(unit=
ninfout_cll,fmt=*)
' list of infinitesimal masses:'
352 write(unit=
ninfout_cll,fmt=*)
' list of infinitesimal masses cleared'
357 write(unit=
ninfout_cll,fmt=*)
' IR rational terms switched on'
359 write(unit=
ninfout_cll,fmt=*)
' IR rational terms switched off'
363 write(unit=
ninfout_cll,fmt=*)
' UV terms for tensors switched on'
365 write(unit=
ninfout_cll,fmt=*)
' UV terms for tensors switched off'
369 write(unit=
ninfout_cll,fmt=*)
' direct tensor reduction switched off'
374 write(unit=
ninfout_cll,fmt=*)
'-----------------------------------------------------------'
375 if (use_cache_system)
then
376 write(unit=
ninfout_cll,fmt=*)
' cache system switched on'
377 write(unit=
ninfout_cll,fmt=fmt90)
' initialized caches: ncache_max = ',ncache_max
379 if (cache_mode(i).eq.-1)
then
386 write(unit=
ninfout_cll,fmt=*)
' cache system switched off'
390 write(unit=
ninfout_cll,fmt=*)
'***********************************************************'
493 integer,
optional,
intent(in) :: Ncache
494 integer :: nc,errflag
496 if (
present(ncache))
then
509 if (use_cache_system)
then
510 call initcache_cll(nc)
529 character(len=5) :: version
582 integer,
intent(in) :: mode
586 if ((mode.lt.1).or.(mode.gt.3))
then
587 write(
nerrout_cll,*)
'COLLIER: mode_cll must be set to one of the following values'
590 write(
nerrout_cll,*)
'3: check COLI- against DD-implementation'
602 if (infwri)
write(
ninfout_cll,*)
' 1 --> use COLI implementation'
609 if (infwri)
write(
ninfout_cll,*)
' 2 --> use DD implementation'
619 if (infwri)
write(
ninfout_cll,*)
' 3 --> check COLI against DD implementation'
651 integer,
intent(out) :: mode
669 double precision,
intent(in) :: mu2
670 double precision :: DeltaUV_dd,DeltaIR2_dd,DeltaIR1_dd
671 double precision :: muUV2_dd,muIR2_dd,xmx2_dd(nminf_colidd)
674 character(len=*),
parameter :: fmt11 =
"(A11,d25.18)"
682 call ddgetparam(deltauv_dd,muuv2_dd,deltair2_dd, &
683 deltair1_dd,muir2_dd,xmx2_dd)
684 call ddsetparam(deltauv_dd,
muuv2_cll,deltair2_dd, &
685 deltair1_dd,muir2_dd,xmx2_dd)
705 double precision,
intent(out) :: mu2
722 double precision,
intent(in) :: mu2
723 double precision :: DeltaUV_dd,DeltaIR2_dd,DeltaIR1_dd
724 double precision :: muUV2_dd,muIR2_dd,xmx2_dd(nminf_colidd)
727 character(len=*),
parameter :: fmt11 =
"(A11,d25.18)"
735 call ddgetparam(deltauv_dd,muuv2_dd,deltair2_dd, &
736 deltair1_dd,muir2_dd,xmx2_dd)
737 call ddsetparam(deltauv_dd,muuv2_dd,deltair2_dd, &
757 double precision,
intent(out) :: mu2
775 double precision,
intent(in) :: delta
776 double precision :: DeltaUV_dd,DeltaIR2_dd,DeltaIR1_dd
777 double precision :: muUV2_dd,muIR2_dd,xmx2_dd(nminf_colidd)
780 character(len=*),
parameter :: fmt13 =
"(A13,d25.18)"
781 #include "COLI/global_coli.h"
788 write(
nerrout_cll,*)
'preprocessor flag SING = false'
789 write(
nerrout_cll,*)
'call of SetDeltaUV_cll without effect'
799 call ddgetparam(deltauv_dd,muuv2_dd,deltair2_dd, &
800 deltair1_dd,muir2_dd,xmx2_dd)
801 call ddsetparam(
deltauv_cll,muuv2_dd,deltair2_dd, &
802 deltair1_dd,muir2_dd,xmx2_dd)
821 double precision,
intent(out) :: delta
839 double precision,
intent(in) :: delta1,delta2
840 double precision :: DeltaUV_dd,DeltaIR2_dd,DeltaIR1_dd
841 double precision :: muUV2_dd,muIR2_dd,xmx2_dd(nminf_colidd)
844 character(len=*),
parameter :: fmt14 =
"(A14,d25.18)"
845 #include "COLI/global_coli.h"
854 write(
nerrout_cll,*)
'preprocessor flag SING = false'
855 write(
nerrout_cll,*)
'call of SetDeltaUV_cll without effect'
864 call ddgetparam(deltauv_dd,muuv2_dd,deltair2_dd, &
865 deltair1_dd,muir2_dd,xmx2_dd)
889 double precision,
intent(out) :: delta1,delta2
908 double complex,
intent(in) :: m2
909 double complex,
allocatable :: minf2_cp(:)
910 double precision :: DeltaUV_dd,DeltaIR2_dd,DeltaIR1_dd
911 double precision :: muUV2_dd,muIR2_dd,xmx2_dd(nminf_colidd)
912 double precision :: xmx2(nminf_colidd)
915 character(len=*),
parameter :: fmt92 =
"(A10,I3,A4,'dcmplx(',d25.18,' ,',d25.18,' )')"
918 if (
infoutlev_cll.ge.1)
call infout_cll(
'AddMinf2_cll',
'zero cannot be added to list of infinitesimal masses:',infwri)
956 write(
nerrout_cll,*)
'COLLIER: more than' , nminf_colidd,
' different infinitesimal masses not supported by DD'
966 call ddgetparam(deltauv_dd,muuv2_dd,deltair2_dd, &
967 deltair1_dd,muir2_dd,xmx2_dd)
968 call ddsetparam(deltauv_dd,muuv2_dd,deltair2_dd, &
969 deltair1_dd,muir2_dd,xmx2)
988 double precision :: xmx2(nminf_colidd)
989 double precision :: DeltaUV_dd,DeltaIR2_dd,DeltaIR1_dd
990 double precision :: muUV2_dd,muIR2_dd,xmx2_dd(nminf_colidd)
1005 call ddgetparam(deltauv_dd,muuv2_dd,deltair2_dd, &
1006 deltair1_dd,muir2_dd,xmx2_dd)
1007 call ddsetparam(deltauv_dd,muuv2_dd,deltair2_dd, &
1008 deltair1_dd,muir2_dd,xmx2)
1027 integer,
intent(in) :: nminf
1028 double complex,
intent(in) :: minf2(nminf)
1050 integer,
intent(out) :: nminf
1067 double complex,
intent(out) :: minf2(nminf_cll)
1084 double complex :: m2, minf2dd
1113 write(
nerrout_cll,*)
'GetNc: argument N=',n,
' or r=',r,
' out of bound'
1138 write(
nerrout_cll,*)
'GetNt: argument r=',r,
' out of bound'
1161 call unsetirratterms_coli
1163 if (
infoutlev_cll.ge.2)
call infout_cll(
'SwitchOffIRrational_cll',
'IR rational terms switched off in COLI',infwri)
1180 call setirratterms_coli
1182 write(
ninfout_cll,*)
'COLLIER: IR rational terms switched on'
1230 logical,
intent(out) :: CalcUV
1247 integer,
intent(in) :: tenred
1248 logical :: infwri,fla
1250 if (tenred.le.5)
then
1251 call errout_cll(
'SetTenRed_cll',
'Ntenred cannot be chosen smaller than 6',fla,.true.)
1253 write(
nerrout_cll,*)
'Ntenred is set to Ntenred = 6'
1279 if (
infoutlev_cll.ge.2)
call infout_cll(
'SwitchOnTenRed_cll',
'direct tensor reduction switched on for N >= 6',infwri)
1313 integer,
intent(out) :: tenred
1584 integer,
intent(in) :: infoutlev
1587 call setinfoutlev_cache(infoutlev)
1602 integer,
intent(out) :: infoutlev
1619 integer,
intent(in) :: erroutlev
1621 if (erroutlev.eq.0)
then
1622 call ddsetcout_on(.false.)
1623 else if(erroutlev.eq.1)
then
1625 call ddsetcout_on(.true.)
1646 integer,
intent(out) :: erroutlev
1663 integer,
intent(in) :: nmax_cll,ritmax_cll
1664 integer :: nmax,rmax,rmax2,rmax3,rmax4,rmax5,rmax6
1665 integer :: outlevel_dd,outchannel_dd,mode34_dd,mode5_dd,mode6_dd
1666 double precision :: cacc_dd,dacc_dd
1670 call ddgetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,outchannel_dd)
1671 call ddsetmode(cacc_dd,dacc_dd,2,0,0,0,outchannel_dd)
1672 call ddgetglobal(nmax,rmax,rmax2,rmax3, &
1696 double precision :: dprec, dres_old, dres
1704 dres = exp(log(1d0+dprec))
1705 if (abs(dres).ge.abs(dres_old))
exit
1729 double precision :: acc0, acc1, acc2
1730 integer :: outlevel_dd,outchannel_dd,mode34_dd,mode5_dd,mode6_dd
1731 double precision :: cacc_dd,dacc_dd
1732 logical :: qopened,infwri
1733 character(len=*),
parameter :: fmt27 =
"(A27,Es17.10)"
1734 character(len=*),
parameter :: fmt31 =
"(A31,Es17.10)"
1735 character(len=*),
parameter :: fmt33 =
"(A33,Es17.10)"
1736 character(len=*),
parameter :: fmt45 =
"(A45,Es17.10)"
1742 call ddgetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,outchannel_dd)
1758 write(unit=
ncpout_cll,fmt=*)
'***********************************************************'
1760 write(unit=
ncpout_cll,fmt=*)
'***********************************************************'
1769 write(unit=
ncpout2_cll,fmt=*)
'***********************************************************'
1771 write(unit=
ncpout2_cll,fmt=*)
'***********************************************************'
1780 write(unit=
ncpoutcoli_cll,fmt=*)
'***********************************************************'
1782 write(unit=
ncpoutcoli_cll,fmt=*)
'***********************************************************'
1791 write(unit=
ncheckout_cll,fmt=*)
'***********************************************************'
1793 write(unit=
ncheckout_cll,fmt=*)
'***********************************************************'
1799 call infout_cll(
'SetAccuracy_cll',
'WARNING',infwri)
1805 call infout_cll(
'SetAccuracy_cll',
'WARNING',infwri)
1824 double precision :: acc
1825 integer :: outlevel_dd,outchannel_dd,mode34_dd,mode5_dd,mode6_dd
1826 double precision :: cacc_dd,dacc_dd
1828 character(len=*),
parameter :: fmt12 =
"(A12,Es17.10)"
1829 character(len=*),
parameter :: fmt32 =
"(A32,Es17.10)"
1830 character(len=*),
parameter :: fmt43 =
"(A43,Es17.10)"
1831 character(len=*),
parameter :: fmt48 =
"(A48,Es17.10)"
1835 call ddgetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,outchannel_dd)
1847 call infout_cll(
'SetReqAcc_cll',
'WARNING',infwri)
1853 call infout_cll(
'SetReqAcc_cll',
'WARNING',infwri)
1871 double precision,
intent(out) :: acc
1887 double precision :: acc
1888 logical :: qopened,infwri
1889 character(len=*),
parameter :: fmt93 =
"(A13,Es17.10)"
1890 character(len=*),
parameter :: fmt94 =
"(A33,Es17.10)"
1891 character(len=*),
parameter :: fmt95 =
"(A45,Es17.10)"
1904 write(unit=
ncpoutcoli_cll,fmt=*)
'***********************************************************'
1906 write(unit=
ncpoutcoli_cll,fmt=*)
'***********************************************************'
1914 write(unit=
ncpout_cll,fmt=*)
'***********************************************************'
1916 write(unit=
ncpout_cll,fmt=*)
'***********************************************************'
1924 write(unit=
ncpout2_cll,fmt=*)
'***********************************************************'
1926 write(unit=
ncpout2_cll,fmt=*)
'***********************************************************'
1936 call infout_cll(
'SetCritAcc_cll',
'WARNING',infwri)
1954 double precision,
intent(out) :: acc
1971 double precision :: acc
1972 logical :: qopened,infwri
1973 character(len=*),
parameter :: fmt14 =
"(A14,Es17.10)"
1974 character(len=*),
parameter :: fmt30 =
"(A31,Es17.10)"
1975 character(len=*),
parameter :: fmt45 =
"(A45,Es17.10)"
1983 write(unit=
ncheckout_cll,fmt=*)
'***********************************************************'
1985 write(unit=
ncheckout_cll,fmt=*)
'***********************************************************'
1995 call infout_cll(
'SetCheckAcc_cll',
'WARNING',infwri)
2014 double precision,
intent(out) :: acc
2031 double precision :: acc
2032 integer,
intent(in) :: ritmax
2033 integer :: ritmaxB,ritmaxC,ritmaxD
2035 character(len=*),
parameter :: fmt12 =
"(A12,i3)"
2039 if(infwri)
write(
ninfout_cll,fmt12)
' ritmax =', ritmax
2045 call infout_cll(
'SetRitmax_cll',
'ritmax has to be at least rmax_cll + 4 - Nmax_cll'// &
2046 ' --> it is set to rmax_cll + 4 - Nmax_cll',infwri)
2048 call infout_cll(
'SetRitmax_cll',
'ritmax has to be at least 7 --> it is set to 7',infwri)
2082 integer,
intent(in) :: ritmax_B, ritmax_C, ritmax_D
2085 if (ritmax_d.lt.4)
then
2087 if (
infoutlev_cll.ge.1)
call infout_cll(
'SetRitmaxBCD_cll',
'ritmax_D has to be at least 4 --> it is set to 4',infwri)
2095 'ritmax_C has to be larger than ritmax_C --> it is set to ritmax_D+1',infwri)
2103 'ritmax_B has to be larger than ritmax_C --> it is set to ritmax_C+1',infwri)
2125 integer,
intent(out) :: ritmax
2144 call seterrflag_dd(0)
2159 integer,
intent(in) :: val
2178 integer,
intent(out) :: val
2195 integer :: efcoli,efdd,efcll,ef
2215 call geterrflag_dd(efdd)
2217 ef = min(efcoli,efdd,efcll)
2223 if (efcoli.eq.ef)
then
2224 write(
stdout_cll,*)
'COLLIER: fatal error in COLI: ',efcoli
2225 write(
stdout_cll,*)
'execution of program stopped'
2226 write(
stdout_cll,*)
'error output written to the file ErrOut.coli'
2227 else if (efdd.eq.ef)
then
2228 write(
stdout_cll,*)
'COLLIER: fatal error in DD: ',efdd
2229 write(
stdout_cll,*)
'execution of program stopped'
2230 write(
stdout_cll,*)
'error output written to the file ErrOut.dd'
2231 else if (efcll.eq.ef)
then
2232 write(
stdout_cll,*)
'COLLIER: fatal error in COLLIER: ',efcll
2233 write(
stdout_cll,*)
'execution of program stopped'
2234 write(
stdout_cll,*)
'error output written to the file ErrOut.cll'
2259 integer,
intent(in) :: val
2276 integer,
intent(in) :: val
2293 integer,
intent(in) :: val
2310 integer,
intent(in) :: val
2347 integer,
intent(in) :: val
2384 integer,
intent(in) :: val
2387 call ddsetcoutmax(val)
2417 integer,
intent(in) :: val
2434 integer,
intent(out) :: val
2451 integer,
intent(in) :: rmax
2452 double precision,
intent(in) :: RelErrs(0:rmax)
2478 integer,
intent(in) :: infoutlev
2480 if(infoutlev.eq.0)
then
2500 integer,
intent(in) :: val
2518 logical,
optional :: noreset
2520 integer,
allocatable :: saveCnt(:)
2523 if (
present(noreset).and.noreset)
then
2526 allocate(savecnt(nold))
2792 #ifdef CritPointsCOLI
2810 logical,
optional :: init_stdout
2811 integer :: outlevel_dd,outchannel_dd,mode34_dd,mode5_dd,mode6_dd
2812 double precision :: cacc_dd,dacc_dd
2815 if(
present(init_stdout))
then
2834 call ddgetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,outchannel_dd)
2835 call ddsetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,
nerroutdd_cll)
2836 call ddsetcout_on(.false.)
2931 integer,
intent(in),
optional :: ninfout
2942 if (
present(ninfout))
then
2946 inquire(ninfout, opened=qopened)
2947 if(qopened)
close(unit=ninfout)
2975 integer,
intent(out) :: ninfout
2992 integer,
intent(in),
optional :: ninfout
3003 if (
present(ninfout))
then
3007 inquire(ninfout, opened=qopened)
3008 if(qopened)
close(unit=ninfout)
3012 position=
'append',status=
'old')
3021 position=
'append',status=
'old')
3038 integer,
intent(out) :: ninfout
3055 integer,
intent(in),
optional :: nerrout
3066 if (
present(nerrout))
then
3070 inquire(nerrout, opened=qopened)
3071 if(qopened)
close(unit=nerrout)
3098 integer,
intent(out) :: nerrout
3115 integer,
intent(in),
optional :: nerrout
3126 if (
present(nerrout))
then
3130 inquire(nerrout, opened=qopened)
3131 if(qopened)
close(unit=nerrout)
3135 access=
'sequential',position=
'append',status=
'old')
3144 access=
'sequential',position=
'append',status=
'old')
3161 integer,
intent(out) :: nerrout
3178 integer,
intent(in),
optional :: nerrout
3179 integer :: outlevel_dd,outchannel_dd,mode34_dd,mode5_dd,mode6_dd
3180 double precision :: cacc_dd,dacc_dd
3191 if (
present(nerrout))
then
3195 inquire(nerrout, opened=qopened)
3196 if(qopened)
close(unit=nerrout)
3198 call ddgetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,outchannel_dd)
3199 call ddsetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,
nerroutdd_cll)
3201 call ddsetcout_on(.true.)
3210 call ddgetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,outchannel_dd)
3211 call ddsetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,
nerroutdd_cll)
3213 call ddsetcout_on(.true.)
3232 integer,
intent(out) :: nerrout
3249 integer,
intent(in),
optional :: ncheckout
3260 if (
present(ncheckout))
then
3264 inquire(ncheckout, opened=qopened)
3265 if(qopened)
close(unit=ncheckout)
3292 integer,
intent(out) :: ncheckout
3309 integer,
intent(in),
optional :: ncpout
3320 if (
present(ncpout))
then
3324 inquire(ncpout, opened=qopened)
3325 if(qopened)
close(unit=ncpout)
3353 integer,
intent(out) :: ncpout
3370 integer,
intent(in),
optional :: nstatsout
3381 if (
present(nstatsout))
then
3385 inquire(nstatsout, opened=qopened)
3386 if(qopened)
close(unit=nstatsout)
3390 position=
'append',status=
'old')
3399 position=
'append',status=
'old')
3416 integer,
intent(out) :: nstatsout
3433 integer,
intent(in),
optional :: ncpout
3444 if (
present(ncpout))
then
3448 inquire(ncpout, opened=qopened)
3449 if(qopened)
close(unit=ncpout)
3475 integer,
intent(out) :: ncritpointsout
3492 integer,
intent(in),
optional :: ncpout
3503 if (
present(ncpout))
then
3507 inquire(ncpout, opened=qopened)
3508 if(qopened)
close(unit=ncpout)
3534 character(len=*),
intent(in) :: fname
3566 character(len=*),
intent(out) :: fname
3583 integer,
intent(out) :: ncritpointsout2
3600 integer,
intent(out) :: chans(10)
3658 integer,
intent(in) :: npoints
3673 logical,
optional :: noreset
3675 integer,
allocatable :: saveCnt(:)
3678 if (
present(noreset).and.noreset)
then
3681 allocate(savecnt(nold))
3735 logical,
optional :: noreset
3737 integer,
allocatable :: saveMax(:)
3739 if (
present(noreset).and.noreset)
then
3742 allocate(savemax(nold))
3772 integer,
intent(in) :: npoints,N
3789 integer,
intent(in) :: npoints(Nmax_cll)
3821 integer,
intent(in) :: npoints
3838 logical,
optional :: noreset
3840 integer,
allocatable :: saveMax(:)
3842 if (
present(noreset).and.noreset)
then
3845 allocate(savemax(nold))
3872 integer,
intent(in) :: npoints,N
3889 integer,
intent(in) :: npoints(Nmax_cll)
3908 character(len=*),
intent(in) :: sub, inf
3909 logical,
intent(out) :: flag
3921 write(
ninfout_cll,*)
'***********************************************************'
3931 write(
ninfout_cll,*)
'***********************************************************'
3933 write(
ninfout_cll,*)
' Further output of information will be suppressed '
3956 do while (qopened.and.(i.le.1000))
3958 inquire(i, opened=qopened)
3975 character(len=*),
intent(in) :: filename
3976 integer,
optional,
intent(in) :: nchan
3977 character(len=8) :: da
3978 character(len=10) :: ti
3991 if (
present(nchan))
then
4007 call date_and_time(date=da,time=ti)
4009 write(unit=
nerrout_cll,fmt=*)
'***********************************************************'
4011 write(unit=
nerrout_cll,fmt=*)
' file containing the error output of COLLIER interface '
4012 write(unit=
nerrout_cll,fmt=*)
' created ', da(7:8),
'/', da(5:6),
'/', da(1:4), &
4013 ' ', ti(1:2),
':', ti(3:4)
4015 write(unit=
nerrout_cll,fmt=*)
'***********************************************************'
4031 character(len=*),
intent(in) :: filename
4032 integer,
optional,
intent(in) :: nchan
4033 character(len=8) :: da
4034 character(len=10) :: ti
4047 if (
present(nchan))
then
4065 call date_and_time(date=da,time=ti)
4067 write(unit=
nerroutcoli_cll,fmt=*)
'***********************************************************'
4069 write(unit=
nerroutcoli_cll,fmt=*)
' file containing the error output of COLI '
4070 write(unit=
nerroutcoli_cll,fmt=*)
' created ', da(7:8),
'/', da(5:6),
'/', da(1:4), &
4071 ' ', ti(1:2),
':', ti(3:4)
4073 write(unit=
nerroutcoli_cll,fmt=*)
'***********************************************************'
4089 character(len=*),
intent(in) :: filename
4090 integer,
optional,
intent(in) :: nchan
4091 character(len=8) :: da
4092 character(len=10) :: ti
4093 integer :: outlevel_dd,outchannel_dd,mode34_dd,mode5_dd,mode6_dd
4094 double precision :: cacc_dd,dacc_dd
4107 if (
present(nchan))
then
4109 call ddgetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,outchannel_dd)
4110 call ddsetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,
nerroutdd_cll)
4112 call ddsetcout_on(.true.)
4120 call ddgetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,outchannel_dd)
4121 call ddsetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,
nerroutdd_cll)
4123 call ddsetcout_on(.true.)
4133 call date_and_time(date=da,time=ti)
4135 write(unit=
nerroutdd_cll,fmt=*)
'***********************************************************'
4137 write(unit=
nerroutdd_cll,fmt=*)
' file containing the error output of DD '
4138 write(unit=
nerroutdd_cll,fmt=*)
' created ', da(7:8),
'/', da(5:6),
'/', da(1:4), &
4139 ' ', ti(1:2),
':', ti(3:4)
4141 write(unit=
nerroutdd_cll,fmt=*)
'***********************************************************'
4157 character(len=*),
intent(in) :: filename
4158 integer,
optional,
intent(in) :: nchan
4159 character(len=8) :: da
4160 character(len=10) :: ti
4173 if (
present(nchan))
then
4192 call date_and_time(date=da,time=ti)
4194 write(unit=
ncpoutcoli_cll,fmt=*)
'***********************************************************'
4196 write(unit=
ncpoutcoli_cll,fmt=*)
' file containing problematic integrals of COLI '
4197 write(unit=
ncpoutcoli_cll,fmt=*)
' with errors estimated to be above a given limit '
4199 write(unit=
ncpoutcoli_cll,fmt=*)
' created ', da(7:8),
'/', da(5:6),
'/', da(1:4), &
4200 ' ', ti(1:2),
':', ti(3:4)
4202 write(unit=
ncpoutcoli_cll,fmt=*)
'***********************************************************'
4207 write(unit=
ncpoutcoli_cll,fmt=*)
'***********************************************************'
4223 character(len=*),
intent(in) :: filename
4224 integer,
optional,
intent(in) :: nchan
4225 character(len=8) :: da
4226 character(len=10) :: ti
4239 if (
present(nchan))
then
4256 call date_and_time(date=da,time=ti)
4258 write(unit=
ncpout_cll,fmt=*)
'***********************************************************'
4260 write(unit=
ncpout_cll,fmt=*)
' file containing problematic integrals with '
4261 write(unit=
ncpout_cll,fmt=*)
' errors estimated to be above a given limit '
4263 write(unit=
ncpout_cll,fmt=*)
' created ', da(7:8),
'/', da(5:6),
'/', da(1:4), &
4264 ' ', ti(1:2),
':', ti(3:4)
4266 write(unit=
ncpout_cll,fmt=*)
'***********************************************************'
4271 write(unit=
ncpout_cll,fmt=*)
'***********************************************************'
4287 character(len=*),
intent(in) :: filename
4288 integer,
optional,
intent(in) :: nchan
4289 character(len=8) :: da
4290 character(len=10) :: ti
4303 if (
present(nchan))
then
4320 call date_and_time(date=da,time=ti)
4322 write(unit=
ncpout2_cll,fmt=*)
'***********************************************************'
4324 write(unit=
ncpout2_cll,fmt=*)
' file containing problematic integrals with '
4325 write(unit=
ncpout2_cll,fmt=*)
' errors estimated to be above a given limit '
4327 write(unit=
ncpout2_cll,fmt=*)
' created ', da(7:8),
'/', da(5:6),
'/', da(1:4), &
4328 ' ', ti(1:2),
':', ti(3:4)
4330 write(unit=
ncpout2_cll,fmt=*)
'***********************************************************'
4335 write(unit=
ncpout2_cll,fmt=*)
'***********************************************************'
4350 character(len=*),
intent(in) :: filename
4351 integer,
optional,
intent(in) :: nchan
4352 character(len=8) :: da
4353 character(len=10) :: ti
4366 if (
present(nchan))
then
4383 call date_and_time(date=da,time=ti)
4385 write(unit=
ncheckout_cll,fmt=*)
'***********************************************************'
4387 write(unit=
ncheckout_cll,fmt=*)
' file containing integrals which lead to '
4388 write(unit=
ncheckout_cll,fmt=*)
' different results in COLI and DD '
4390 write(unit=
ncheckout_cll,fmt=*)
' created ', da(7:8),
'/', da(5:6),
'/', da(1:4), &
4391 ' ', ti(1:2),
':', ti(3:4)
4393 write(unit=
ncheckout_cll,fmt=*)
'***********************************************************'
4398 write(unit=
ncheckout_cll,fmt=*)
'***********************************************************'
4414 character(len=*),
intent(in) :: filename
4415 integer,
optional,
intent(in) :: nchan
4416 character(len=8) :: da
4417 character(len=10) :: ti
4430 if (
present(nchan))
then
4448 call date_and_time(date=da,time=ti)
4450 write(unit=
ninfout_cll,fmt=*)
'***********************************************************'
4452 write(unit=
ninfout_cll,fmt=*)
' file containing the info output of COLLIER '
4453 write(unit=
ninfout_cll,fmt=*)
' created ', da(7:8),
'/', da(5:6),
'/', da(1:4), &
4454 ' ', ti(1:2),
':', ti(3:4)
4456 write(unit=
ninfout_cll,fmt=*)
'***********************************************************'
4472 character(len=*),
intent(in) :: filename
4473 integer,
optional,
intent(in) ::nchan
4474 character(len=8) :: da
4475 character(len=10) :: ti
4488 if (
present(nchan))
then
4506 call date_and_time(date=da,time=ti)
4508 write(unit=
ninfoutcoli_cll,fmt=*)
'***********************************************************'
4510 write(unit=
ninfoutcoli_cll,fmt=*)
' file containing info output of COLI '
4512 write(unit=
ninfoutcoli_cll,fmt=*)
' created ', da(7:8),
'/', da(5:6),
'/', da(1:4), &
4513 ' ', ti(1:2),
':', ti(3:4)
4515 write(unit=
ninfoutcoli_cll,fmt=*)
'***********************************************************'
4530 character(len=*),
intent(in) :: filename
4531 integer,
optional,
intent(in) :: nchan
4532 character(len=8) :: da
4533 character(len=10) :: ti
4546 if (
present(nchan))
then
4565 call date_and_time(date=da,time=ti)
4567 write(unit=
nstatsoutcoli_cll,fmt=*)
'***********************************************************'
4569 write(unit=
nstatsoutcoli_cll,fmt=*)
' file containing statistics of calls in COLI '
4572 write(unit=
nstatsoutcoli_cll,fmt=*)
' created ', da(7:8),
'/', da(5:6),
'/', da(1:4), &
4573 ' ', ti(1:2),
':', ti(3:4)
4575 write(unit=
nstatsoutcoli_cll,fmt=*)
'***********************************************************'
4589 integer,
intent(in) :: noutch
4619 integer,
intent(in) :: un
4620 write(unit=un,fmt=*)
' '
4621 write(unit=un,fmt=*)
' ******************************************* '
4622 write(unit=un,fmt=*)
' * C O L L I E R * '
4623 write(unit=un,fmt=*)
' * * '
4624 write(unit=un,fmt=*)
' * Complex One-Loop Library * '
4625 write(unit=un,fmt=*)
' * In Extended Regularizations * '
4626 write(unit=un,fmt=*)
' * * '
4627 write(unit=un,fmt=*)
' * by A.Denner, S.Dittmaier, L.Hofer * '
4628 write(unit=un,fmt=*)
' * * '
4630 write(unit=un,fmt=*)
' * version '//
version_cll//
' * '
4631 write(unit=un,fmt=*)
' * * '
4632 write(unit=un,fmt=*)
' ******************************************* '
4633 write(unit=un,fmt=*)
' '
subroutine setncheckout_cll(ncheckout)
character(len=80) foldername_cll
subroutine openinfoutfile_cll(filename, nchan)
subroutine getoutchannels_cll(chans)
subroutine openerroutfile_cll(filename, nchan)
character(len=99) fname_cpout_cp_cll
subroutine setncritpointsout_cll(ncpout)
subroutine initcritpointscnt_coli(val)
integer, dimension(-2:1) acceventcnt
subroutine geteventcnt_cll(event)
subroutine setmaxerroutcoli_cll(val)
subroutine getninfoutcoli_cll(ninfout)
subroutine getaccflag_cll(val)
subroutine setaccuracy_cll(acc0, acc1, acc2)
subroutine switchoncalcuv_cll()
subroutine setncpout_coli(ncpout)
integer nerroutcoli_cp_cll
subroutine initevent_cll(Ncache)
subroutine getmuuv2_cll(mu2)
integer, dimension(:), allocatable maxcheck_cll
subroutine setcritacc_coli(critacc)
subroutine switchofftenred_cll()
integer pointscntgten_cll
integer accpointscnte_cll
integer critpointscntf2_cll
subroutine setmaxcheckdb_cll(npoints)
integer accpointscntc_cll
integer accpointscntf_cll
subroutine initmaxcheckdb_cll
subroutine switchoffcalcuv_cll()
subroutine opencritpointsoutfile_cll(filename, nchan)
subroutine gettenred_cll(tenred)
integer accpointscntc2_cll
double precision deltauv_cll
integer function findfreechannel_cll()
integer accpointscnte2_cll
integer critpointscnta2_cll
subroutine switchofffileoutput_cll
double precision deltair2_cll
subroutine initerrcnt_coli(val)
subroutine setmuuv2_cll(mu2)
character(len=99) fname_errout_cll
subroutine geterroutlev_cll(erroutlev)
subroutine setmaxcritpointsarray_cll(npoints)
integer critpointscntdb2_cll
double precision checkacc_cll
subroutine initerrcntcoli_cll()
integer critpointscntgten_cll
integer function getnc_cll(N, r)
subroutine setnstatsout_coli(nstatsout)
integer pointscntgten_coli
integer critpointscntd2_cll
integer accpointscntb_cll
double precision deltair1_cll
subroutine setaccflag_cll(val)
subroutine setnerroutcoli_cll(nerrout)
subroutine initaccflag_cll()
subroutine setmuir2_cll(mu2)
subroutine setinfoutlevcoli_cll(infoutlev)
subroutine switchonirrational_cll()
subroutine getdeltair_cll(delta1, delta2)
subroutine initoutchan_cll(init_stdout)
subroutine openstatisticsoutfilecoli_cll(filename, nchan)
integer critpointscntcoli_cll
integer pointscntbten_cll
subroutine setmaxerrout_cll(val)
subroutine seterrstop_cll(errstop)
double precision muuv2_cll
integer, dimension(:), allocatable rts
integer accpointscntgten_cll
subroutine geterrstop_cll(errstop)
character(len=99) fname_infoutcoli_cp_cll
integer, dimension(:), allocatable checkcntten_cll
subroutine initcoli_in_collier
integer pointscntbten_coli
subroutine setmaxerrout_coli(errmax)
integer, dimension(-10:0) errcntdd
subroutine printstatistics_coli
integer critpointscntd_cll
subroutine getcritacc_cll(acc)
character(len=99) fname_cpout_cll
integer critpointscnta_cll
integer critpointscntdten_cll
subroutine opencheckoutfile_cll(filename, nchan)
subroutine printstatisticscoli_cll(noutch)
character(len=99) fname_statsoutcoli_cll
subroutine setminf2_cll(nminf, minf2)
subroutine getcheckacc_cll(acc)
integer, dimension(-10:1) erreventcnt
double precision dprec_cll
integer, dimension(:), allocatable noutcritpointsmax_cll
subroutine initmaxcritpoints_cll(noreset)
integer accpointscntg_cll
integer accpointscntdb_cll
subroutine openerroutfilecoli_cll(filename, nchan)
integer accpointscntdten_cll
logical ir_rational_terms_cll
integer, dimension(:), allocatable pointscnttnten_coli
subroutine opencritpointsoutfilecoli_cll(filename, nchan)
character(len=5) version_cll
integer pointscntcten_cll
double precision muir2_cll
integer critpointscntb_cll
subroutine setoutputfolder_cll(fname)
integer nstatsoutcoli_cp_cll
integer critpointscntdb_cll
subroutine initerrcntdd_cll()
subroutine errout_cll(sub, err, flag, nomaster)
integer, dimension(:), allocatable pointscnttn_dd
subroutine setritmax_coli(ritmax_B, ritmax_C, ritmax_D)
subroutine getinfoutlev_cll(infoutlev)
subroutine setncpoutcoli_cll(ncpout)
subroutine switchofferrstop_cll()
integer critpointscntg_cll
subroutine geterrflag_coli(err)
integer noutcritpointsmaxdb_cll
integer, dimension(:), allocatable pointscnttn2_cll
subroutine switchoncalcuv_ten()
subroutine setmaxcheckarray_cll(npoints)
subroutine getcalcuv_cll(CalcUV)
subroutine initerrcnt_cll(val)
double complex, dimension(:), allocatable minf2_cll
subroutine opencritpointsoutfile2_cll(filename, nchan)
character(len=99) fname_cpoutcoli_cll
integer critpointscntc2_cll
subroutine getncritpointsout_cll(ncritpointsout)
subroutine initmaxcheck_cll(noreset)
integer critpointscntf_cll
integer accpointscntdb2_cll
integer pointscnteten_cll
double precision reqacc_cll
subroutine setnerroutdd_cll(nerrout)
subroutine getncpoutcoli_cll(ncpout)
integer accpointscntdbten_cll
subroutine initglobaldd_cll(nmax_cll, ritmax_cll)
integer accpointscntbten_cll
subroutine setdeltauv_cll(delta)
subroutine openinfoutfilecoli_cll(filename, nchan)
subroutine setreqacc_coli(reqacc)
integer accpointscntd_cll
integer, dimension(:), allocatable accpointscnttn_cll
subroutine initmaxcritpointsdb_cll
integer critpointscntc_cll
integer pointscntdbten_coli
subroutine setninfout_cll(ninfout)
subroutine setdeltair_cll(delta1, delta2)
subroutine setmode_cll(mode)
subroutine getreqacc_cll(acc)
subroutine setmaxinfout_cll(val)
integer, dimension(:), allocatable pointscnttn_cll
subroutine init_cll(Nmax, rmax, folder_name, noreset)
integer, dimension(:), allocatable accpointscnttn2_cll
subroutine switchontenred_cll()
integer pointscntdbten_dd
integer critpointscnte_cll
integer accpointscnta_cll
character(len=99) fname_cpoutcoli_cp_cll
subroutine getminf2_cll(minf2)
integer pointscntdten_coli
integer critpointscnte2_cll
integer accpointscntcten_cll
subroutine setnerrout_coli(nerrout)
subroutine getnminf_cll(nminf)
integer nstatsoutcoli_cll
integer critpointscntften_cll
integer, dimension(:), allocatable pointscnttnten_dd
integer pointscnteten_coli
character(len=99) fname_erroutdd_cll
subroutine setritmax_cll(ritmax)
subroutine switchoffcalcuv_ten()
subroutine getninfout_cll(ninfout)
subroutine openerroutfiledd_cll(filename, nchan)
subroutine getmuir2_cll(mu2)
subroutine setninfout_coli(ninfout)
character(len=99) fname_errout_cp_cll
integer critpointscntaten_cll
subroutine setnerrout_cll(nerrout)
subroutine setcheckacc_cll(acc)
subroutine geterrflag_cll(val)
subroutine clearminf2_cll
subroutine propagateaccflag_cll(RelErrs, rmax)
subroutine getnstatsoutcoli_cll(nstatsout)
subroutine infout_cll(sub, inf, flag)
character(len=99) fname_statsoutcoli_cp_cll
integer pointscntaten_coli
integer pointscntcten_coli
subroutine writeintro_cll(un)
integer critpointscnteten_cll
integer accpointscntaten_cll
subroutine settenred_cll(tenred)
integer, parameter closed_cll
integer pointscntdten_cll
integer, dimension(:), allocatable checkcnt_cll
subroutine getversionnumber_cll(version)
subroutine getcpuprec_cll
double complex function getminf2dd_cll(m2)
subroutine initpointscnt_cll(noreset)
character(len=99) fname_infout_cp_cll
subroutine setncritpointsout2_cll(ncpout)
character(len=99) fname_erroutcoli_cll
character(len=99) fname_erroutdd_cp_cll
character(len=99) fname_checkout_cll
subroutine getncritpointsout2_cll(ncritpointsout2)
subroutine getritmax_cll(ritmax)
subroutine switchonfileoutput_cll
subroutine initinfcnt_cll(val)
subroutine initeventcnt_cll()
integer, dimension(:), allocatable diffcntten_cll
subroutine setinfoutlev_cll(infoutlev)
character(len=99) fname_cpout2_cp_cll
subroutine addminf2_cll(m2)
integer pointscntaten_cll
integer accpointscntften_cll
integer critpointscntb2_cll
integer maxerroutcoli_cll
subroutine getnerroutdd_cll(nerrout)
subroutine switchoffirrational_cll()
integer, dimension(:), allocatable critpointscnttn2_cll
subroutine setmaxcheckn_cll(npoints, N)
double precision critacc_cll
subroutine setritmaxbcd_cll(ritmax_B, ritmax_C, ritmax_D)
integer pointscntften_cll
subroutine getnerrout_cll(nerrout)
integer pointscntdbten_cll
subroutine seterrflag_cll(val)
subroutine setmaxerroutdd_cll(val)
integer accpointscnteten_cll
integer critpointscntg2_cll
subroutine setmaxcritpointsn_cll(npoints, N)
subroutine getnerroutcoli_cll(nerrout)
subroutine setprec_coli(dprec)
subroutine init_dd_global(nmax_in, ritmax_in)
integer accpointscnta2_cll
integer critpointscntbten_cll
character(len=99) fname_checkout_cp_cll
subroutine getoutputfolder_cll(fname)
integer, dimension(:), allocatable accpointscnttnten_cll
integer, dimension(-10:1) errcnt
subroutine initerrflag_cll()
character(len=99) fname_infoutcoli_cll
integer ninfoutcoli_cp_cll
integer, dimension(-2:1) acccnt
subroutine setnstatsoutcoli_cll(nstatsout)
subroutine initcritpointscntcoli_cll(val)
subroutine setninfoutcoli_cll(ninfout)
subroutine seterroutlev_cll(erroutlev)
subroutine getncheckout_cll(ncheckout)
integer, dimension(:), allocatable critpointscnttnten_cll
integer accpointscntb2_cll
subroutine seterroutlev_coli(erroutlev)
integer, dimension(-10:0) errcntcoli
subroutine initcheckcnt_cll(noreset)
character(len=99) fname_infout_cll
integer, dimension(:), allocatable critpointscnttn_cll
character(len=99) fname_cpout2_cll
subroutine setreqacc_cll(acc)
integer, dimension(:), allocatable pointscnttnten_cll
subroutine setcritacc_cll(acc)
integer critpointscntcten_cll
subroutine getdeltauv_cll(delta)
integer ncpoutcoli_cp_cll
subroutine propagateerrflag_cll()
integer accpointscntd2_cll
integer accpointscntg2_cll
subroutine setacc_coli(reqacc, critacc)
integer pointscntften_coli
subroutine initmonitoring_cll()
subroutine setmaxcritpointsdb_cll(npoints)
integer, dimension(:), allocatable diffcnt_cll
integer function getnt_cll(r)
subroutine initcheckcntdb_cll
subroutine seterrflag_coli(err)
integer critpointscntdbten_cll
character(len=99) fname_erroutcoli_cp_cll
integer, dimension(:), allocatable pointscnttn_coli
subroutine init_tables2(Nm1, rmax)
subroutine getmode_cll(mode)
integer accpointscntf2_cll
subroutine initoutchan_cp_cll