|
JHUGen MELA
JHUGen v7.5.6, MELA v2.4.2
Matrix element calculations as used in JHUGen.
|
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