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.
Data Types | Functions/Subroutines | Variables
collier_init Module Reference

Data Types

interface  setmaxcheck_cll
 
interface  setmaxcritpoints_cll
 

Functions/Subroutines

subroutine init_cll (Nmax, rmax, folder_name, noreset)
 
subroutine reset_cll
 
subroutine initevent_cll (Ncache)
 
subroutine getversionnumber_cll (version)
 
subroutine initeventcnt_cll ()
 
subroutine geteventcnt_cll (event)
 
subroutine setmode_cll (mode)
 
subroutine getmode_cll (mode)
 
subroutine setmuuv2_cll (mu2)
 
subroutine getmuuv2_cll (mu2)
 
subroutine setmuir2_cll (mu2)
 
subroutine getmuir2_cll (mu2)
 
subroutine setdeltauv_cll (delta)
 
subroutine getdeltauv_cll (delta)
 
subroutine setdeltair_cll (delta1, delta2)
 
subroutine getdeltair_cll (delta1, delta2)
 
subroutine addminf2_cll (m2)
 
subroutine clearminf2_cll
 
subroutine setminf2_cll (nminf, minf2)
 
subroutine getnminf_cll (nminf)
 
subroutine getminf2_cll (minf2)
 
double complex function getminf2dd_cll (m2)
 
integer function getnc_cll (N, r)
 
integer function getnt_cll (r)
 
subroutine switchoffirrational_cll ()
 
subroutine switchonirrational_cll ()
 
subroutine switchoffcalcuv_cll ()
 
subroutine switchoncalcuv_cll ()
 
subroutine getcalcuv_cll (CalcUV)
 
subroutine settenred_cll (tenred)
 
subroutine switchontenred_cll ()
 
subroutine switchofftenred_cll ()
 
subroutine gettenred_cll (tenred)
 
subroutine switchofferrstop_cll ()
 
subroutine seterrstop_cll (errstop)
 
subroutine geterrstop_cll (errstop)
 
subroutine switchofffileoutput_cll
 
subroutine switchonfileoutput_cll
 
subroutine setinfoutlev_cll (infoutlev)
 
subroutine getinfoutlev_cll (infoutlev)
 
subroutine seterroutlev_cll (erroutlev)
 
subroutine geterroutlev_cll (erroutlev)
 
subroutine initglobaldd_cll (nmax_cll, ritmax_cll)
 
subroutine getcpuprec_cll
 
subroutine setaccuracy_cll (acc0, acc1, acc2)
 
subroutine setreqacc_cll (acc)
 
subroutine getreqacc_cll (acc)
 
subroutine setcritacc_cll (acc)
 
subroutine getcritacc_cll (acc)
 
subroutine setcheckacc_cll (acc)
 
subroutine getcheckacc_cll (acc)
 
subroutine setritmax_cll (ritmax)
 
subroutine setritmaxbcd_cll (ritmax_B, ritmax_C, ritmax_D)
 
subroutine getritmax_cll (ritmax)
 
subroutine initerrflag_cll ()
 
subroutine seterrflag_cll (val)
 
subroutine geterrflag_cll (val)
 
subroutine propagateerrflag_cll ()
 
subroutine setmaxinfout_cll (val)
 
subroutine setmaxerrout_cll (val)
 
subroutine initinfcnt_cll (val)
 
subroutine initerrcnt_cll (val)
 
subroutine initerrcntcoli_cll ()
 
subroutine setmaxerroutcoli_cll (val)
 
subroutine initerrcntdd_cll ()
 
subroutine setmaxerroutdd_cll (val)
 
subroutine initaccflag_cll ()
 
subroutine setaccflag_cll (val)
 
subroutine getaccflag_cll (val)
 
subroutine propagateaccflag_cll (RelErrs, rmax)
 
subroutine setinfoutlevcoli_cll (infoutlev)
 
subroutine initcritpointscntcoli_cll (val)
 
subroutine initpointscnt_cll (noreset)
 
subroutine initmonitoring_cll ()
 
subroutine initoutchan_cll (init_stdout)
 
subroutine initoutchan_cp_cll
 
subroutine setninfout_cll (ninfout)
 
subroutine getninfout_cll (ninfout)
 
subroutine setninfoutcoli_cll (ninfout)
 
subroutine getninfoutcoli_cll (ninfout)
 
subroutine setnerrout_cll (nerrout)
 
subroutine getnerrout_cll (nerrout)
 
subroutine setnerroutcoli_cll (nerrout)
 
subroutine getnerroutcoli_cll (nerrout)
 
subroutine setnerroutdd_cll (nerrout)
 
subroutine getnerroutdd_cll (nerrout)
 
subroutine setncheckout_cll (ncheckout)
 
subroutine getncheckout_cll (ncheckout)
 
subroutine setncpoutcoli_cll (ncpout)
 
subroutine getncpoutcoli_cll (ncpout)
 
subroutine setnstatsoutcoli_cll (nstatsout)
 
subroutine getnstatsoutcoli_cll (nstatsout)
 
subroutine setncritpointsout_cll (ncpout)
 
subroutine getncritpointsout_cll (ncritpointsout)
 
subroutine setncritpointsout2_cll (ncpout)
 
subroutine setoutputfolder_cll (fname)
 
subroutine getoutputfolder_cll (fname)
 
subroutine getncritpointsout2_cll (ncritpointsout2)
 
subroutine getoutchannels_cll (chans)
 
subroutine initcheckcntdb_cll
 
subroutine initmaxcheckdb_cll
 
subroutine setmaxcheckdb_cll (npoints)
 
subroutine initcheckcnt_cll (noreset)
 
subroutine initmaxcheck_cll (noreset)
 
subroutine setmaxcheckn_cll (npoints, N)
 
subroutine setmaxcheckarray_cll (npoints)
 
subroutine initmaxcritpointsdb_cll
 
subroutine setmaxcritpointsdb_cll (npoints)
 
subroutine initmaxcritpoints_cll (noreset)
 
subroutine setmaxcritpointsn_cll (npoints, N)
 
subroutine setmaxcritpointsarray_cll (npoints)
 
subroutine infout_cll (sub, inf, flag)
 
integer function findfreechannel_cll ()
 
subroutine openerroutfile_cll (filename, nchan)
 
subroutine openerroutfilecoli_cll (filename, nchan)
 
subroutine openerroutfiledd_cll (filename, nchan)
 
subroutine opencritpointsoutfilecoli_cll (filename, nchan)
 
subroutine opencritpointsoutfile_cll (filename, nchan)
 
subroutine opencritpointsoutfile2_cll (filename, nchan)
 
subroutine opencheckoutfile_cll (filename, nchan)
 
subroutine openinfoutfile_cll (filename, nchan)
 
subroutine openinfoutfilecoli_cll (filename, nchan)
 
subroutine openstatisticsoutfilecoli_cll (filename, nchan)
 
subroutine printstatisticscoli_cll (noutch)
 
subroutine writeintro_cll (un)
 

Variables

character(len=80) foldername_cll
 

Function/Subroutine Documentation

◆ addminf2_cll()

subroutine collier_init::addminf2_cll ( double complex, intent(in)  m2)

Definition at line 907 of file collier_init.F90.

907 
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)
913  integer :: i
914  logical :: infwri
915  character(len=*),parameter :: fmt92 = "(A10,I3,A4,'dcmplx(',d25.18,' ,',d25.18,' )')"
916 
917  if(m2.eq.0d0) then
918  if (infoutlev_cll.ge.1) call infout_cll('AddMinf2_cll','zero cannot be added to list of infinitesimal masses:',infwri)
919  return
920  end if
921 
922  if (nminf_cll.eq.0) then
923  nminf_cll = 1
924  if (allocated(minf2_cll)) then
925  deallocate(minf2_cll)
926  end if
927  allocate(minf2_cll(nminf_cll))
928 
929  minf2_cll(1) = m2
930 
931  else
932  do i=1,nminf_cll
933  if (m2.eq.minf2_cll(i)) return
934  end do
935 
936  allocate(minf2_cp(nminf_cll))
937  minf2_cp = minf2_cll
938 
939  nminf_cll = nminf_cll+1
940  if (allocated(minf2_cll)) then
941  deallocate(minf2_cll)
942  end if
943 
944  allocate(minf2_cll(nminf_cll))
945  minf2_cll(1:nminf_cll-1) = minf2_cp
946  minf2_cll(nminf_cll) = m2
947 
948  end if
949 
950  ! add m2 to small masses in COLI
951  call setminf2_coli(minf2_cll(nminf_cll))
952 
953  ! add m2 to small masses in DD
954  if (nminf_cll.gt.nminf_colidd) then
955  if (erroutlev_cll.ge.1) then
956  write(nerrout_cll,*) 'COLLIER: more than' , nminf_colidd,' different infinitesimal masses not supported by DD'
957  end if
958  if (errorstop_cll.ge.-10) stop
959  end if
960 
961  xmx2 = 0d0
962  do i=1,nminf_cll
963  xmx2(i) = dreal(minf2_cll(i))
964  end do
965 
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)
970 
971  infwri = .false.
972  if (infoutlev_cll.ge.2) call infout_cll('AddMinf2_cll','added to list of infinitesimal masses:',infwri)
973  if(infwri) write(ninfout_cll,fmt92) ' minf2(',nminf_cll,') = ',minf2_cll(nminf_cll)
974 

◆ clearminf2_cll()

subroutine collier_init::clearminf2_cll

Definition at line 987 of file collier_init.F90.

987 
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)
991  integer :: i
992  logical :: infwri
993 
994  nminf_cll = 0
995  if (allocated(minf2_cll)) then
996  deallocate(minf2_cll)
997  end if
998 
999  ! clear list of small masses in COLI
1000  call clearcoliminf2
1001 
1002  ! clear list of small masses in DD
1003  xmx2 = 0d0
1004 
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)
1009 
1010  if (infoutlev_cll.ge.2) call infout_cll('clearminf2_cll','list of infinitesimal masses cleared',infwri)
1011 
1012 

◆ findfreechannel_cll()

integer function collier_init::findfreechannel_cll

Definition at line 3949 of file collier_init.F90.

3949 
3950  integer :: nchan
3951  integer :: i
3952  logical :: qopened
3953 
3954  qopened = .true.
3955  i = 100
3956  do while (qopened.and.(i.le.1000))
3957  i=i+1
3958  inquire(i, opened=qopened)
3959  end do
3960  nchan = i
3961 

◆ getaccflag_cll()

subroutine collier_init::getaccflag_cll ( integer, intent(out)  val)

Definition at line 2433 of file collier_init.F90.

2433 
2434  integer, intent(out) :: val
2435 
2436  val = accflag_cll
2437 

◆ getcalcuv_cll()

subroutine collier_init::getcalcuv_cll ( logical, intent(out)  CalcUV)

Definition at line 1229 of file collier_init.F90.

1229 
1230  logical, intent(out) :: CalcUV
1231 
1232  calcuv = calcuv_cll
1233 

◆ getcheckacc_cll()

subroutine collier_init::getcheckacc_cll ( double precision, intent(out)  acc)

Definition at line 2013 of file collier_init.F90.

2013 
2014  double precision, intent(out) :: acc
2015 
2016  acc = checkacc_cll
2017 

◆ getcpuprec_cll()

subroutine collier_init::getcpuprec_cll

Definition at line 1695 of file collier_init.F90.

1695 
1696  double precision :: dprec, dres_old, dres
1697  integer :: i
1698  logical :: infwri
1699 
1700  dprec = 1d0
1701  dres_old = 2d0
1702  do i=1,1000
1703  dprec = dprec/2d0
1704  dres = exp(log(1d0+dprec))
1705  if (abs(dres).ge.abs(dres_old)) exit
1706  dres_old = dres
1707  end do
1708  dprec_cll = dprec*8d0
1709 
1710  call setprec_coli(dprec_cll)
1711 
1712  infwri = .false.
1713  if (infoutlev_cll.ge.2) call infout_cll('GetCPUprec_cll','estimator of CPU double precision set to',infwri)
1714  if(infwri) write(ninfout_cll,*) ' dprec =', dprec_cll
1715 

◆ getcritacc_cll()

subroutine collier_init::getcritacc_cll ( double precision, intent(out)  acc)

Definition at line 1953 of file collier_init.F90.

1953 
1954  double precision, intent(out) :: acc
1955 
1956  acc = critacc_cll
1957 

◆ getdeltair_cll()

subroutine collier_init::getdeltair_cll ( double precision, intent(out)  delta1,
double precision, intent(out)  delta2 
)

Definition at line 888 of file collier_init.F90.

888 
889  double precision, intent(out) :: delta1,delta2
890 
891  delta1 = deltair1_cll
892  delta2 = deltair2_cll
893 

◆ getdeltauv_cll()

subroutine collier_init::getdeltauv_cll ( double precision, intent(out)  delta)

Definition at line 820 of file collier_init.F90.

820 
821  double precision, intent(out) :: delta
822 
823  delta = deltauv_cll
824 

◆ geterrflag_cll()

subroutine collier_init::geterrflag_cll ( integer, intent(out)  val)

Definition at line 2177 of file collier_init.F90.

2177 
2178  integer, intent(out) :: val
2179 
2180  val = errflag_cll
2181 

◆ geterroutlev_cll()

subroutine collier_init::geterroutlev_cll ( integer, intent(out)  erroutlev)

Definition at line 1645 of file collier_init.F90.

1645 
1646  integer, intent(out) :: erroutlev
1647 
1648  erroutlev = erroutlev_cll
1649 

◆ geterrstop_cll()

subroutine collier_init::geterrstop_cll ( integer  errstop)

Definition at line 1358 of file collier_init.F90.

1358  integer :: errstop
1359 
1360  errstop = errorstop_cll
1361 

◆ geteventcnt_cll()

subroutine collier_init::geteventcnt_cll ( integer  event)

Definition at line 564 of file collier_init.F90.

564 
565  integer :: event
566 
567  event = eventcnt_cll
568 

◆ getinfoutlev_cll()

subroutine collier_init::getinfoutlev_cll ( integer, intent(out)  infoutlev)

Definition at line 1601 of file collier_init.F90.

1601 
1602  integer, intent(out) :: infoutlev
1603 
1604  infoutlev = infoutlev_cll
1605 

◆ getminf2_cll()

subroutine collier_init::getminf2_cll ( double complex, dimension(nminf_cll), intent(out)  minf2)

Definition at line 1066 of file collier_init.F90.

1066 
1067  double complex, intent(out) :: minf2(nminf_cll)
1068 
1069  minf2 = minf2_cll
1070 

◆ getminf2dd_cll()

double complex function collier_init::getminf2dd_cll ( double complex  m2)

Definition at line 1083 of file collier_init.F90.

1083 
1084  double complex :: m2, minf2DD
1085  integer :: i
1086 
1087  do i=1,nminf_cll
1088  if (m2.eq.minf2_cll(i)) then
1089  minf2dd = i*1d-20
1090  return
1091  end if
1092  end do
1093  minf2dd = m2
1094 

◆ getmode_cll()

subroutine collier_init::getmode_cll ( integer, intent(out)  mode)

Definition at line 650 of file collier_init.F90.

650 
651  integer, intent(out) :: mode
652 
653  mode = mode_cll
654 

◆ getmuir2_cll()

subroutine collier_init::getmuir2_cll ( double precision, intent(out)  mu2)

Definition at line 756 of file collier_init.F90.

756 
757  double precision, intent(out) :: mu2
758 
759  mu2 = muir2_cll
760 

◆ getmuuv2_cll()

subroutine collier_init::getmuuv2_cll ( double precision, intent(out)  mu2)

Definition at line 704 of file collier_init.F90.

704 
705  double precision, intent(out) :: mu2
706 
707  mu2 = muuv2_cll
708 

◆ getnc_cll()

integer function collier_init::getnc_cll ( integer  N,
integer  r 
)

Definition at line 1107 of file collier_init.F90.

1107 
1108  integer :: Nc
1109  integer :: N,r
1110 
1111  if ((n.gt.nmax_cll).or.(n.lt.1).or.(r.gt.rmaxb_cll).or.(r.lt.1)) then
1112  if (erroutlev_cll.ge.1) then
1113  write(nerrout_cll,*) 'GetNc: argument N=',n,' or r=',r,' out of bound'
1114  end if
1115  nc=0
1116  return
1117  end if
1118  nc = ncoefs(r,n)
1119 

◆ getncheckout_cll()

subroutine collier_init::getncheckout_cll ( integer, intent(out)  ncheckout)

Definition at line 3291 of file collier_init.F90.

3291 
3292  integer, intent(out) :: ncheckout
3293 
3294  ncheckout = ncheckout_cll
3295 

◆ getncpoutcoli_cll()

subroutine collier_init::getncpoutcoli_cll ( integer, intent(out)  ncpout)

Definition at line 3352 of file collier_init.F90.

3352 
3353  integer, intent(out) :: ncpout
3354 
3355  ncpout = ncpoutcoli_cll
3356 

◆ getncritpointsout2_cll()

subroutine collier_init::getncritpointsout2_cll ( integer, intent(out)  ncritpointsout2)

Definition at line 3582 of file collier_init.F90.

3582 
3583  integer, intent(out) :: ncritpointsout2
3584 
3585  ncritpointsout2 = ncpout2_cll
3586 

◆ getncritpointsout_cll()

subroutine collier_init::getncritpointsout_cll ( integer, intent(out)  ncritpointsout)

Definition at line 3474 of file collier_init.F90.

3474 
3475  integer, intent(out) :: ncritpointsout
3476 
3477  ncritpointsout = ncpout_cll
3478 

◆ getnerrout_cll()

subroutine collier_init::getnerrout_cll ( integer, intent(out)  nerrout)

Definition at line 3097 of file collier_init.F90.

3097 
3098  integer, intent(out) :: nerrout
3099 
3100  nerrout = nerrout_cll
3101 

◆ getnerroutcoli_cll()

subroutine collier_init::getnerroutcoli_cll ( integer, intent(out)  nerrout)

Definition at line 3160 of file collier_init.F90.

3160 
3161  integer, intent(out) :: nerrout
3162 
3163  nerrout = nerroutcoli_cll
3164 

◆ getnerroutdd_cll()

subroutine collier_init::getnerroutdd_cll ( integer, intent(out)  nerrout)

Definition at line 3231 of file collier_init.F90.

3231 
3232  integer, intent(out) :: nerrout
3233 
3234  nerrout = nerroutdd_cll
3235 

◆ getninfout_cll()

subroutine collier_init::getninfout_cll ( integer, intent(out)  ninfout)

Definition at line 2974 of file collier_init.F90.

2974 
2975  integer, intent(out) :: ninfout
2976 
2977  ninfout = ninfout_cll
2978 

◆ getninfoutcoli_cll()

subroutine collier_init::getninfoutcoli_cll ( integer, intent(out)  ninfout)

Definition at line 3037 of file collier_init.F90.

3037 
3038  integer, intent(out) :: ninfout
3039 
3040  ninfout = ninfoutcoli_cll
3041 

◆ getnminf_cll()

subroutine collier_init::getnminf_cll ( integer, intent(out)  nminf)

Definition at line 1049 of file collier_init.F90.

1049 
1050  integer, intent(out) :: nminf
1051 
1052  nminf = nminf_cll
1053 

◆ getnstatsoutcoli_cll()

subroutine collier_init::getnstatsoutcoli_cll ( integer, intent(out)  nstatsout)

Definition at line 3415 of file collier_init.F90.

3415 
3416  integer, intent(out) :: nstatsout
3417 
3418  nstatsout = nstatsoutcoli_cll
3419 

◆ getnt_cll()

integer function collier_init::getnt_cll ( integer  r)

Definition at line 1132 of file collier_init.F90.

1132 
1133  integer :: Nt
1134  integer :: r
1135 
1136  if ((r.gt.rmaxb_cll).or.(r.lt.1)) then
1137  if (erroutlev_cll.ge.1) then
1138  write(nerrout_cll,*) 'GetNt: argument r=',r,' out of bound'
1139  end if
1140  nt=0
1141  return
1142  end if
1143  nt = rts(r)
1144 

◆ getoutchannels_cll()

subroutine collier_init::getoutchannels_cll ( integer, dimension(10), intent(out)  chans)

Definition at line 3599 of file collier_init.F90.

3599 
3600  integer, intent(out) :: chans(10)
3601 
3602  call getninfout_cll(chans(1))
3603  call getninfoutcoli_cll(chans(2))
3604  call getnerrout_cll(chans(3))
3605  call getnerroutcoli_cll(chans(4))
3606  call getnerroutdd_cll(chans(5))
3607  call getncheckout_cll(chans(6))
3608  call getncritpointsout_cll(chans(7))
3609  call getncritpointsout2_cll(chans(8))
3610  call getncpoutcoli_cll(chans(9))
3611  call getnstatsoutcoli_cll(chans(10))
3612 
3613 

◆ getoutputfolder_cll()

subroutine collier_init::getoutputfolder_cll ( character(len=*), intent(out)  fname)

Definition at line 3565 of file collier_init.F90.

3565 
3566  character(len=*), intent(out) :: fname
3567 
3568  fname = foldername_cll
3569 

◆ getreqacc_cll()

subroutine collier_init::getreqacc_cll ( double precision, intent(out)  acc)

Definition at line 1870 of file collier_init.F90.

1870 
1871  double precision, intent(out) :: acc
1872 
1873  acc = reqacc_cll
1874 

◆ getritmax_cll()

subroutine collier_init::getritmax_cll ( integer, intent(out)  ritmax)

Definition at line 2124 of file collier_init.F90.

2124 
2125  integer, intent(out) :: ritmax
2126 
2127  ritmax = ritmax_cll
2128 

◆ gettenred_cll()

subroutine collier_init::gettenred_cll ( integer, intent(out)  tenred)

Definition at line 1312 of file collier_init.F90.

1312 
1313  integer, intent(out) :: tenred
1314 
1315  tenred = tenred_cll
1316 

◆ getversionnumber_cll()

subroutine collier_init::getversionnumber_cll ( character(len=5)  version)

Definition at line 528 of file collier_init.F90.

528 
529  character(len=5) :: version
530 
531  version = version_cll
532 

◆ infout_cll()

subroutine collier_init::infout_cll ( character(len=*), intent(in)  sub,
character(len=*), intent(in)  inf,
logical, intent(out)  flag 
)

Definition at line 3907 of file collier_init.F90.

3907 
3908  character(len=*), intent(in) :: sub, inf
3909  logical, intent(out) :: flag
3910 ! integer, parameter :: maxErrOut=100
3911 
3912  flag = .false.
3913  if (infoutlev_cll.eq.0) return
3914 
3915  infcnt_cll = infcnt_cll + 1
3916  if(ninfout_cll.ne.closed_cll) then
3917  if (infcnt_cll.le.maxinfout_cll) then
3918  write(ninfout_cll,*)
3919  write(ninfout_cll,*)
3920  write(ninfout_cll,*)
3921  write(ninfout_cll,*) '***********************************************************'
3922  write(ninfout_cll,*) 'Info-output NO.', infcnt_cll
3923  write(ninfout_cll,*) 'in routine: ', trim(sub)
3924  write(ninfout_cll,*) trim(inf)
3925 ! call WriteMaster_cll(nerrout_cll)
3926  flag=.true.
3927  elseif (infcnt_cll.eq.maxinfout_cll+1) then
3928  write(ninfout_cll,*)
3929  write(ninfout_cll,*)
3930  write(ninfout_cll,*)
3931  write(ninfout_cll,*) '***********************************************************'
3932  write(ninfout_cll,*)
3933  write(ninfout_cll,*) ' Further output of information will be suppressed '
3934  write(ninfout_cll,*)
3935  endif
3936  endif
3937 

◆ init_cll()

subroutine collier_init::init_cll ( integer, intent(in)  Nmax,
integer, intent(in), optional  rmax,
character(len=*), intent(in), optional  folder_name,
logical, intent(in), optional  noreset 
)

Definition at line 59 of file collier_init.F90.

59 
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
71  logical :: reset
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')"
81 
82  if (present(noreset)) then
83  if(noreset) then
84  reset = .false.
85  if (.not.initialized_cll) then
86  reset = .true.
87  else
88  if (present(folder_name)) then
89  if (nofiles_cll) then
90  if (len(trim(folder_name)).ne.0) then
91  reset = .true.
92  call reset_cll
93  end if
94  else
95  if (len(trim(folder_name)).eq.0) then
96  reset = .true.
97  call reset_cll
98  end if
99  end if
100  end if
101  end if
102  else
103  if (initialized_cll) call reset_cll
104  reset = .true.
105  end if
106  else
107  if (initialized_cll) call reset_cll
108  reset = .true.
109  end if
110 
111  if (reset) then
112  if (present(folder_name)) then
113  if (len(trim(folder_name)).eq.0) then
114  erroutlev = 0
115  infoutlev = 0
116  nofiles_cll = .true.
117  else
118  erroutlev = 1
119  infoutlev = 2
120  foldername_cll = trim(folder_name)
121  nofiles_cll = .false.
122  end if
123  else
124  erroutlev = 1
125  infoutlev = 2
126  foldername_cll = "output_cll"
127  nofiles_cll = .false.
128  end if
129  else
130  call geterroutlev_cll(erroutlev)
131  call getinfoutlev_cll(infoutlev)
132  end if
133 
134  nmax_cll = nmax
135  if(present(rmax)) then
136  rmax0 = rmax
137  else
138  rmax0 = nmax
139  end if
140  rmax_cll = rmax0
141 
142  call setinfoutlev_cll(0)
143  call seterroutlev_cll(0)
144 
145  call initcheckcnt_cll(.not.reset)
146  call initmaxcheck_cll(.not.reset)
147  if(.not.reset) then
148  if (monitoring) then
149  call initpointscnt_cll(.not.reset)
150  call initmaxcritpoints_cll(.not.reset)
151  end if
152  else
153  monitoring=.false.
154  end if
155 
156  if (reset) then
157  call initoutchan_cp_cll
158  call initoutchan_cll
159 
160  call initcheckcntdb_cll
161  call initmaxcheckdb_cll
162 
163  call setmaxerrout_cll(100)
164  call setmaxerroutcoli_cll(100)
165  call setmaxerroutdd_cll(100)
166  call setmaxinfout_cll(1000)
167 
168  if (erroutlev.ge.1) then
169 ! set output-file for potential errors
170  call execute_command_line('mkdir -p '//trim(foldername_cll))
171 
172  call initerrcnt_cll(0)
173  call openerroutfile_cll(trim(foldername_cll)//'/ErrOut.cll')
174 
175  call initerrcntcoli_cll()
176 ! call OpenErrOutFileCOLI_cll(trim(foldername_cll)//'/ErrOut.coli')
177 !
178  call initerrcntdd_cll()
179 ! call OpenErrOutFileDD_cll(trim(foldername_cll)//'/ErrOut.dd')
180  end if
181 
182  if (infoutlev.ge.1) then
183  call openinfoutfile_cll(trim(foldername_cll)//'/InfOut.cll')
184 
185 ! no output from COLI (comes via COLLIER)
186  call setinfoutlevcoli_cll(0)
187 
188  call initinfcnt_cll(0)
189 
190  end if
191  end if
192 
193 
194  ! default values.
195  mode = 1
196 
197  muuv2 = 1d0
198  muir2 = 1d0
199 
200  deltauv = 0d0
201  deltair1 = 0d0
202  deltair2 = 0d0
203 
204  ritmax = max(14,rmax0+4-nmax)
205  ritmaxd = ritmax
206  ritmaxc = ritmax+2
207  ritmaxb = ritmax+4
208 
209  ! initialise COLI
210  call initcoli_in_collier()
211  ! set global parameters for DD
212  call initglobaldd_cll(nmax,ritmax)
213  call ddsetcout_on(.false.)
214 
215  nminf = 0
216  if (allocated(minf2)) then
217  deallocate(minf2)
218  end if
219  allocate(minf2(nminf))
220 
221 ! required accuracy
222  acc0 = 1d-8
223 ! critical accuracy
224  acc1 = 1d-1 !CritPoints
225 ! check accuracy
226  acc2 = 1d-2
227 
228 
229  ! COLLIER mode
230  call setmode_cll(mode)
231 
232  ! set UV and IR parameters
233  call setmuuv2_cll(muuv2)
234  call setmuir2_cll(muir2)
235  call setdeltauv_cll(deltauv)
236  call setdeltair_cll(deltair1,deltair2)
237 
238  ! specify infinitesimal mass regulators
239  call setminf2_cll(nminf,minf2)
240 
241  ! CPU precision and accuracy
242  call getcpuprec_cll()
243  ! call SetAccuracy_cll(acc0,acc1,acc2)
244  call setreqacc_cll(acc0)
245  call setcritacc_cll(acc1)
246  call setcheckacc_cll(acc2)
247 
248  ! set maximum number of rank
249  call setritmax_cll(ritmax)
250 
251  ! initialize Cache-system
252  call initcachesystem_cll(0,nmax)
253 
254  ! initialize table of binomial coefficients
255  call setbinomtable(rmax0+max(nmax-2,4))
256 
257  ! initialization for tensors
258  call setindcombiseq(nmax-1,rmax0)
259  call setaddtocind(nmax-1,rmax0)
260  call setdropcind(nmax-1,rmax0)
261  call setdropcind2(nmax-1,rmax0)
262  call init_tables2(nmax-1,rmax0)
263 
264 ! ! initialize table of binomial coefficients
265 ! call SetBinomTable(2*Nmax)
266 !
267 ! ! initialization for tensors
268 ! call SetIndCombisEq(Nmax,Nmax)
269 ! call SetAddToCInd(Nmax,Nmax)
270 ! call SetDropCInd(Nmax,Nmax)
271 ! call SetDropCInd2(Nmax,Nmax)
272 ! call init_tables2(Nmax,Nmax)
273 
274  ! choose if UV poles are calculated completely
275  ! call SwitchOffCalcUV_cll()
276  call switchoncalcuv_cll()
277 
278  ! choose to include IR rational terms
279  call switchonirrational_cll()
280 
281  ! choose direct tensor reduction for N>=6
282  call switchontenred_cll()
283 
284  ! initialize counter PS points
285  call initeventcnt_cll()
286 
287  ! stop if fatal error occurs
288  call seterrstop_cll(-8)
289 
290 
291 ! call AddMinf2_cll(dcmplx(0.001d0))
292 
293  ! COLLIER has been initialized
294  initialized_cll = .true.
295  call setinfoutlev_cll(infoutlev)
296  call seterroutlev_cll(erroutlev)
297 
298  if (reset) then
299 
300  ! set standard output for infos
301  call writeintro_cll(stdout_cll)
302  if (infoutlev.ge.1) then
303  write(unit=stdout_cll,fmt=*) ' '
304  write(unit=stdout_cll,fmt=*) '***********************************************************'
305  write(unit=stdout_cll,fmt=*) ' '
306  write(unit=stdout_cll,fmt=*) ' COLLIER: information on settings and internal parameters '
307  write(unit=stdout_cll,fmt=*) ' is written to the file ',trim(foldername_cll)//'/InfOut.cll'
308  write(unit=stdout_cll,fmt=*) ' '
309  write(unit=stdout_cll,fmt=*) '***********************************************************'
310  write(unit=stdout_cll,fmt=*) ' '
311 
312  ! add here all the output for the default initialisation
313  write(unit=ninfout_cll,fmt=*) ' '
314  write(unit=ninfout_cll,fmt=*) '***********************************************************'
315  write(unit=ninfout_cll,fmt=*) ' Default initialization of COLLIER: '
316  write(unit=ninfout_cll,fmt=fmt90) ' COLLIER mode: mode_cll = ',mode_cll
317  select case (mode_cll)
318  case (1)
319  write(ninfout_cll,*) ' -> use COLI implementation'
320  case (2)
321  write(ninfout_cll,*) ' -> use DD implementation'
322  case (3)
323  write(ninfout_cll,*) ' -> check COLI against DD implementation'
324  end select
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
333  write(unit=ninfout_cll,fmt=fmt91) ' target precision: reqacc_cll = ',reqacc_cll
334  write(unit=ninfout_cll,fmt=fmt91) ' critical precision: critacc_cll = ',critacc_cll
335  write(unit=ninfout_cll,fmt=fmt91) ' check precision: checkacc_cll = ',checkacc_cll
336  write(unit=ninfout_cll,fmt=fmt91) ' est. CPU precision: dprec_cll = ',dprec_cll
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
340  write(unit=ninfout_cll,fmt=fmt90) ' stop forced for ErrorStop_cll <= ',errorstop_cll
341  write(unit=ninfout_cll,fmt=*) '-----------------------------------------------------------'
342 
343  if (allocated(minf2_cll)) then
344  write(unit=ninfout_cll,fmt=*) ' list of infinitesimal masses:'
345  do i=1,size(minf2_cll)
346  write(unit=ninfout_cll,fmt=fmt98) i,real(minf2_cll(i))
347  end do
348  end if
349 
350 
351  if (.not.allocated(minf2_cll)) then
352  write(unit=ninfout_cll,fmt=*) ' list of infinitesimal masses cleared'
353  end if
354 
355 
356  if (ir_rational_terms_cll) then
357  write(unit=ninfout_cll,fmt=*) ' IR rational terms switched on'
358  else
359  write(unit=ninfout_cll,fmt=*) ' IR rational terms switched off'
360  end if
361 
362  if (calcuv_cll) then
363  write(unit=ninfout_cll,fmt=*) ' UV terms for tensors switched on'
364  else
365  write(unit=ninfout_cll,fmt=*) ' UV terms for tensors switched off'
366  end if
367 
368  if (tenred_cll.eq.never_tenred_cll) then
369  write(unit=ninfout_cll,fmt=*) ' direct tensor reduction switched off'
370  else
371  write(unit=ninfout_cll,fmt=fmt90) ' direct tensor reduction for N >= ',tenred_cll
372  end if
373 
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
378  do i=1,ncache_max
379  if (cache_mode(i).eq.-1) then
380  write(unit=ninfout_cll,fmt=fmt96) i
381  else
382  write(unit=ninfout_cll,fmt=fmt97) i
383  end if
384  end do
385  else
386  write(unit=ninfout_cll,fmt=*) ' cache system switched off'
387  end if
388 
389  write(unit=ninfout_cll,fmt=*) ' '
390  write(unit=ninfout_cll,fmt=*) '***********************************************************'
391  write(unit=ninfout_cll,fmt=*) ' '
392  end if
393 
394  end if
395 

◆ initaccflag_cll()

subroutine collier_init::initaccflag_cll

Definition at line 2401 of file collier_init.F90.

2401 
2402  call setaccflag_cll(0)
2403 

◆ initcheckcnt_cll()

subroutine collier_init::initcheckcnt_cll ( logical, optional  noreset)

Definition at line 3673 of file collier_init.F90.

3673  logical, optional :: noreset
3674  integer :: Nold
3675  integer, allocatable :: saveCnt(:)
3676 
3677 
3678  if (present(noreset).and.noreset) then
3679  nold = size(checkcnt_cll)
3680  if (nold.lt.nmax_cll) then
3681  allocate(savecnt(nold))
3682 
3683  savecnt = checkcnt_cll
3684  deallocate(checkcnt_cll)
3685  allocate(checkcnt_cll(nmax_cll))
3686  checkcnt_cll(1:nold) = savecnt
3687  checkcnt_cll(nold+1:nmax_cll) = 0
3688 
3689  savecnt = diffcnt_cll
3690  deallocate(diffcnt_cll)
3691  allocate(diffcnt_cll(nmax_cll))
3692  diffcnt_cll(1:nold) = savecnt
3693  diffcnt_cll(nold+1:nmax_cll) = 0
3694 
3695  savecnt = checkcntten_cll
3696  deallocate(checkcntten_cll)
3697  allocate(checkcntten_cll(nmax_cll))
3698  checkcntten_cll(1:nold) = savecnt
3699  checkcntten_cll(nold+1:nmax_cll) = 0
3700 
3701  savecnt = diffcntten_cll
3702  deallocate(diffcntten_cll)
3703  allocate(diffcntten_cll(nmax_cll))
3704  diffcntten_cll(1:nold) = savecnt
3705  diffcntten_cll(nold+1:nmax_cll) = 0
3706  end if
3707  else
3708  if (allocated(checkcnt_cll)) deallocate(checkcnt_cll)
3709  allocate(checkcnt_cll(nmax_cll))
3710  checkcnt_cll = 0
3711  if (allocated(diffcnt_cll)) deallocate(diffcnt_cll)
3712  allocate(diffcnt_cll(nmax_cll))
3713  diffcnt_cll = 0
3714  diffcntec_cll = 0
3715  if (allocated(checkcntten_cll)) deallocate(checkcntten_cll)
3716  allocate(checkcntten_cll(nmax_cll))
3717  checkcntten_cll = 0
3718  if (allocated(diffcntten_cll)) deallocate(diffcntten_cll)
3719  allocate(diffcntten_cll(nmax_cll))
3720  diffcntten_cll = 0
3721  endif
3722 

◆ initcheckcntdb_cll()

subroutine collier_init::initcheckcntdb_cll

Definition at line 3626 of file collier_init.F90.

3626 
3627  checkcntdb_cll = 0
3628  diffcntdb_cll = 0
3629 

◆ initcritpointscntcoli_cll()

subroutine collier_init::initcritpointscntcoli_cll ( integer, intent(in)  val)

Definition at line 2499 of file collier_init.F90.

2499 
2500  integer, intent(in) :: val
2501 
2502  critpointscntcoli_cll = val
2503  call initcritpointscnt_coli(val)
2504 

◆ initerrcnt_cll()

subroutine collier_init::initerrcnt_cll ( integer, intent(in)  val)

Definition at line 2309 of file collier_init.F90.

2309 
2310  integer, intent(in) :: val
2311 
2312  errcnt_cll = val
2313 

◆ initerrcntcoli_cll()

subroutine collier_init::initerrcntcoli_cll

Definition at line 2326 of file collier_init.F90.

2326 
2327 ! integer, intent(in) :: val
2328  integer :: val
2329 
2330  val = 0
2331  errcntcoli_cll = val
2332  call initerrcnt_coli(val)
2333 

◆ initerrcntdd_cll()

subroutine collier_init::initerrcntdd_cll

Definition at line 2364 of file collier_init.F90.

2364 
2365 ! integer, intent(in) :: val
2366 
2367 ! ErrCntDD_cll = val
2368  errcntdd_cll = 0
2369  call ddresetcout()
2370 

◆ initerrflag_cll()

subroutine collier_init::initerrflag_cll

Definition at line 2141 of file collier_init.F90.

2141 
2142  call seterrflag_cll(0)
2143  call seterrflag_coli(0)
2144  call seterrflag_dd(0)
2145 

◆ initevent_cll()

subroutine collier_init::initevent_cll ( integer, intent(in), optional  Ncache)

Definition at line 492 of file collier_init.F90.

492 
493  integer, optional, intent(in) :: Ncache
494  integer :: nc,errflag
495 
496  if (present(ncache)) then
497  nc = ncache
498  else
499  nc = 1
500  end if
501 
502  if (monitoring) then
503  erreventcnt(1) = erreventcnt(1) + 1
504  erreventcnt(errflag_cll) = erreventcnt(errflag_cll) + 1
505  acceventcnt(1) = acceventcnt(1) + 1
506  acceventcnt(accflag_cll) = acceventcnt(accflag_cll) + 1
507  end if
508 
509  if (use_cache_system) then
510  call initcache_cll(nc)
511  end if
512  call initerrflag_cll
513  call initaccflag_cll
514  eventcnt_cll = eventcnt_cll+1
515 

◆ initeventcnt_cll()

subroutine collier_init::initeventcnt_cll

Definition at line 545 of file collier_init.F90.

545 
546  logical :: infwri
547 
548  eventcnt_cll = 0
549 
550  if (infoutlev_cll.ge.2) call infout_cll('InitEventCnt_cll','phase-space point counter set to zero',infwri)
551 

◆ initglobaldd_cll()

subroutine collier_init::initglobaldd_cll ( integer, intent(in)  nmax_cll,
integer, intent(in)  ritmax_cll 
)

Definition at line 1662 of file collier_init.F90.

1662 
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
1667 
1668  call init_dd_global(nmax_cll,ritmax_cll)
1669 
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, &
1673  rmax4,rmax5,rmax6)
1674 
1675  nmax_dd = nmax
1676  rmax_dd = rmax
1677  rmax2_dd = rmax2
1678  rmax3_dd = rmax3
1679  rmax4_dd = rmax4
1680  rmax5_dd = rmax5
1681  rmax6_dd = rmax6
1682 

◆ initinfcnt_cll()

subroutine collier_init::initinfcnt_cll ( integer, intent(in)  val)

Definition at line 2292 of file collier_init.F90.

2292 
2293  integer, intent(in) :: val
2294 
2295  infcnt_cll = val
2296 

◆ initmaxcheck_cll()

subroutine collier_init::initmaxcheck_cll ( logical, optional  noreset)

Definition at line 3735 of file collier_init.F90.

3735  logical, optional :: noreset
3736  integer :: Nold
3737  integer, allocatable :: saveMax(:)
3738 
3739  if (present(noreset).and.noreset) then
3740  nold = size(maxcheck_cll)
3741  if (nold.lt.nmax_cll) then
3742  allocate(savemax(nold))
3743 
3744  savemax = maxcheck_cll
3745  deallocate(maxcheck_cll)
3746  allocate(maxcheck_cll(nmax_cll))
3747  maxcheck_cll(1:nold) = savemax
3748  maxcheck_cll(nold+1:nmax_cll) = 50
3749  end if
3750 
3751  else
3752  if (allocated(maxcheck_cll)) deallocate(maxcheck_cll)
3753  allocate(maxcheck_cll(nmax_cll))
3754  maxcheck_cll = 50
3755  end if
3756 
3757  maxcheckec_cll = 50
3758 

◆ initmaxcheckdb_cll()

subroutine collier_init::initmaxcheckdb_cll

Definition at line 3642 of file collier_init.F90.

3642 
3643  maxcheckdb_cll = 50
3644 

◆ initmaxcritpoints_cll()

subroutine collier_init::initmaxcritpoints_cll ( logical, optional  noreset)

Definition at line 3837 of file collier_init.F90.

3837 
3838  logical, optional :: noreset
3839  integer :: Nold
3840  integer, allocatable :: saveMax(:)
3841 
3842  if (present(noreset).and.noreset) then
3843  nold = size(noutcritpointsmax_cll)
3844  if (nold.lt.nmax_cll) then
3845  allocate(savemax(nold))
3846  savemax = noutcritpointsmax_cll
3847  deallocate(noutcritpointsmax_cll)
3848  allocate(noutcritpointsmax_cll(nmax_cll))
3849  noutcritpointsmax_cll(1:nold) = savemax
3850  noutcritpointsmax_cll(nold+1:nmax_cll) = 50
3851  end if
3852 
3853  else
3854  if (allocated(noutcritpointsmax_cll)) deallocate(noutcritpointsmax_cll)
3855  allocate(noutcritpointsmax_cll(nmax_cll))
3856  noutcritpointsmax_cll = 50
3857  end if
3858 

◆ initmaxcritpointsdb_cll()

subroutine collier_init::initmaxcritpointsdb_cll

Definition at line 3805 of file collier_init.F90.

3805 
3806  noutcritpointsmaxdb_cll = 50
3807 

◆ initmonitoring_cll()

subroutine collier_init::initmonitoring_cll

Definition at line 2766 of file collier_init.F90.

2766 
2767  logical :: infwri
2768 
2769 ! changed 29.02.2016 AD
2770 ! if (Monitoring) then
2771 ! if (infoutlev_cll.ge.2) call InfOut_cll('InitMonitoring_cll','CritPointsMonitor already initialized',infwri)
2772 ! return
2773 ! endif
2774 
2775  if (monitoring) then
2776  if (infoutlev_cll.ge.2) call infout_cll('InitMonitoring_cll','CritPointsMonitor re-initialized',infwri)
2777  else
2778  if (infoutlev_cll.ge.2) call infout_cll('InitMonitoring_cll','CritPointsMonitor initialized',infwri)
2779  endif
2780 
2781  monitoring = .true.
2782 
2783  call initpointscnt_cll()
2784  call initmaxcritpoints_cll
2785  call initmaxcritpointsdb_cll
2786  call opencritpointsoutfile_cll(trim(foldername_cll)//'/CritPointsOut.cll')
2787 
2788 #ifdef CritPoints2
2789  call opencritpointsoutfile2_cll(trim(foldername_cll)//'/CritPointsOut2.cll')
2790 #endif
2791 
2792 #ifdef CritPointsCOLI
2793  call initcritpointscntcoli_cll(0)
2794  call opencritpointsoutfilecoli_cll(trim(foldername_cll)//'/CritPointsOut.coli')
2795 #endif
2796 

◆ initoutchan_cll()

subroutine collier_init::initoutchan_cll ( logical, optional  init_stdout)

Definition at line 2809 of file collier_init.F90.

2809 
2810  logical, optional :: init_stdout
2811  integer :: outlevel_dd,outchannel_dd,mode34_dd,mode5_dd,mode6_dd
2812  double precision :: cacc_dd,dacc_dd
2813  logical :: stdflag
2814 
2815  if(present(init_stdout)) then
2816  stdflag=init_stdout
2817  else
2818  stdflag=.true.
2819  end if
2820 
2821  if(stdflag.or.(nerrout_cll.ne.stdout_cll)) then
2822  nerrout_cll = closed_cll
2823  fname_errout_cll = ''
2824  end if
2825 
2826  if(stdflag.or.(nerroutcoli_cll.ne.stdout_cll)) then
2827  nerroutcoli_cll = closed_cll
2828  call setnerrout_coli(nerroutcoli_cll)
2829  fname_erroutcoli_cll = ''
2830  end if
2831 
2832  if(stdflag.or.(nerroutdd_cll.ne.stdout_cll)) then
2833  nerroutdd_cll = closed_cll
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.)
2837  fname_erroutdd_cll = ''
2838  end if
2839 
2840  if(stdflag.or.(ninfout_cll.ne.stdout_cll)) then
2841  ninfout_cll = closed_cll
2842  fname_infout_cll = ''
2843  end if
2844 
2845  if(stdflag.or.(ninfoutcoli_cll.ne.stdout_cll)) then
2846  ninfoutcoli_cll = closed_cll
2847  call setninfout_coli(ninfoutcoli_cll)
2848  fname_infoutcoli_cll = ''
2849  end if
2850 
2851  if(stdflag.or.(ncheckout_cll.ne.stdout_cll)) then
2852  ncheckout_cll = closed_cll
2853  fname_checkout_cll = ''
2854  end if
2855 
2856  if(stdflag.or.(ncpoutcoli_cll.ne.stdout_cll)) then
2857  ncpoutcoli_cll = closed_cll
2858  call setncpout_coli(ncpoutcoli_cll)
2859  fname_cpoutcoli_cll = ''
2860  end if
2861 
2862  if(stdflag.or.(ncpout_cll.ne.stdout_cll)) then
2863  ncpout_cll = closed_cll
2864  fname_cpout_cll = ''
2865  end if
2866 
2867  if(stdflag.or.(ncpout2_cll.ne.stdout_cll)) then
2868  ncpout2_cll = closed_cll
2869  fname_cpout2_cll = ''
2870  end if
2871 
2872  if(stdflag.or.(nstatsoutcoli_cll.ne.stdout_cll)) then
2873  nstatsoutcoli_cll = closed_cll
2874  call setnstatsout_coli(nstatsoutcoli_cll)
2875  fname_statsoutcoli_cll = ''
2876  end if
2877 
2878 ! qopened_critcoli = .false.
2879 ! qopened_crit = .false.
2880 ! qopened_crit2 = .false.
2881 ! qopened_check = .false.
2882 ! qopened_statscoli = .false.
2883 
2884 

◆ initoutchan_cp_cll()

subroutine collier_init::initoutchan_cp_cll

Definition at line 2897 of file collier_init.F90.

2897 
2898  nerrout_cp_cll = closed_cll
2899  fname_errout_cp_cll = ''
2900  nerroutcoli_cp_cll = closed_cll
2901  fname_erroutcoli_cp_cll = ''
2902  nerroutdd_cp_cll = closed_cll
2903  fname_erroutdd_cp_cll = ''
2904  ninfout_cp_cll = closed_cll
2905  fname_infout_cp_cll = ''
2906  ninfoutcoli_cp_cll = closed_cll
2907  fname_infoutcoli_cp_cll = ''
2908  ncheckout_cp_cll = closed_cll
2909  fname_checkout_cp_cll = ''
2910  ncpoutcoli_cp_cll = closed_cll
2911  fname_cpoutcoli_cp_cll = ''
2912  ncpout_cp_cll = closed_cll
2913  fname_cpout_cp_cll = ''
2914  ncpout2_cp_cll = closed_cll
2915  fname_cpout2_cp_cll = ''
2916  nstatsoutcoli_cp_cll = closed_cll
2917  fname_statsoutcoli_cp_cll = ''
2918 

◆ initpointscnt_cll()

subroutine collier_init::initpointscnt_cll ( logical, optional  noreset)

Definition at line 2517 of file collier_init.F90.

2517 
2518  logical, optional :: noreset
2519  integer :: Nold
2520  integer, allocatable :: saveCnt(:)
2521 
2522 
2523  if (present(noreset).and.noreset) then
2524  nold = size(checkcnt_cll)
2525  if (nold.lt.nmax_cll) then
2526  allocate(savecnt(nold))
2527 
2528  savecnt = pointscnttn_cll
2529  deallocate(pointscnttn_cll)
2530  allocate(pointscnttn_cll(nmax_cll))
2531  pointscnttn_cll(1:nold) = savecnt
2532  pointscnttn_cll(nold+1:nmax_cll) = 0
2533 
2534  savecnt = accpointscnttn_cll
2535  deallocate(accpointscnttn_cll)
2536  allocate(accpointscnttn_cll(nmax_cll))
2537  accpointscnttn_cll(1:nold) = savecnt
2538  accpointscnttn_cll(nold+1:nmax_cll) = 0
2539 
2540  savecnt = critpointscnttn_cll
2541  deallocate(critpointscnttn_cll)
2542  allocate(critpointscnttn_cll(nmax_cll))
2543  critpointscnttn_cll(1:nold) = savecnt
2544  critpointscnttn_cll(nold+1:nmax_cll) = 0
2545 
2546  savecnt = accpointscnttn2_cll
2547  deallocate(accpointscnttn2_cll)
2548  allocate(accpointscnttn2_cll(nmax_cll))
2549  accpointscnttn2_cll(1:nold) = savecnt
2550  accpointscnttn2_cll(nold+1:nmax_cll) = 0
2551 
2552  savecnt = critpointscnttn2_cll
2553  deallocate(critpointscnttn2_cll)
2554  allocate(critpointscnttn2_cll(nmax_cll))
2555  critpointscnttn2_cll(1:nold) = savecnt
2556  critpointscnttn2_cll(nold+1:nmax_cll) = 0
2557 
2558  savecnt = pointscnttn_coli
2559  deallocate(pointscnttn_coli)
2560  allocate(pointscnttn_coli(nmax_cll))
2561  pointscnttn_coli(1:nold) = savecnt
2562  pointscnttn_coli(nold+1:nmax_cll) = 0
2563 
2564  savecnt = pointscnttn_dd
2565  deallocate(pointscnttn_dd)
2566  allocate(pointscnttn_dd(nmax_cll))
2567  pointscnttn_dd(1:nold) = savecnt
2568  pointscnttn_dd(nold+1:nmax_cll) = 0
2569 
2570  savecnt = pointscnttnten_cll
2571  deallocate(pointscnttnten_cll)
2572  allocate(pointscnttnten_cll(nmax_cll))
2573  pointscnttnten_cll(1:nold) = savecnt
2574  pointscnttnten_cll(nold+1:nmax_cll) = 0
2575 
2576  savecnt = accpointscnttnten_cll
2577  deallocate(accpointscnttnten_cll)
2578  allocate(accpointscnttn_cll(nmax_cll))
2579  accpointscnttn_cll(1:nold) = savecnt
2580  accpointscnttn_cll(nold+1:nmax_cll) = 0
2581 
2582  savecnt = critpointscnttnten_cll
2583  deallocate(critpointscnttnten_cll)
2584  allocate(critpointscnttnten_cll(nmax_cll))
2585  critpointscnttnten_cll(1:nold) = savecnt
2586  critpointscnttnten_cll(nold+1:nmax_cll) = 0
2587 
2588  savecnt = pointscnttnten_coli
2589  deallocate(pointscnttnten_coli)
2590  allocate(pointscnttnten_coli(nmax_cll))
2591  pointscnttnten_coli(1:nold) = savecnt
2592  pointscnttnten_coli(nold+1:nmax_cll) = 0
2593 
2594  savecnt = pointscnttnten_dd
2595  deallocate(pointscnttnten_dd)
2596  allocate(pointscnttnten_dd(nmax_cll))
2597  pointscnttnten_dd(1:nold) = savecnt
2598  pointscnttnten_dd(nold+1:nmax_cll) = 0
2599 
2600  end if
2601 
2602  else
2603  if(allocated(pointscnttn_cll)) deallocate(pointscnttn_cll)
2604  if(allocated(accpointscnttn_cll)) deallocate(accpointscnttn_cll)
2605  if(allocated(critpointscnttn_cll)) deallocate(critpointscnttn_cll)
2606  if(allocated(accpointscnttn2_cll)) deallocate(accpointscnttn2_cll)
2607  if(allocated(critpointscnttn2_cll)) deallocate(critpointscnttn2_cll)
2608  if(allocated(pointscnttn_coli)) deallocate(pointscnttn_coli)
2609  if(allocated(pointscnttn_dd)) deallocate(pointscnttn_dd)
2610  if(allocated(pointscnttnten_cll)) deallocate(pointscnttnten_cll)
2611  if(allocated(accpointscnttnten_cll)) deallocate(accpointscnttnten_cll)
2612  if(allocated(critpointscnttnten_cll)) deallocate(critpointscnttnten_cll)
2613  if(allocated(pointscnttnten_coli)) deallocate(pointscnttnten_coli)
2614  if(allocated(pointscnttnten_dd)) deallocate(pointscnttnten_dd)
2615 
2616  ! re-allocate Counters for Critical Points
2617  allocate(pointscnttn_cll(nmax_cll))
2618  allocate(accpointscnttn_cll(nmax_cll))
2619  allocate(critpointscnttn_cll(nmax_cll))
2620  allocate(accpointscnttn2_cll(nmax_cll))
2621  allocate(critpointscnttn2_cll(nmax_cll))
2622  allocate(pointscnttn_coli(nmax_cll))
2623  allocate(pointscnttn_dd(nmax_cll))
2624  allocate(pointscnttnten_cll(nmax_cll))
2625  allocate(accpointscnttnten_cll(nmax_cll))
2626  allocate(critpointscnttnten_cll(nmax_cll))
2627  allocate(pointscnttnten_coli(nmax_cll))
2628  allocate(pointscnttnten_dd(nmax_cll))
2629 
2630  pointscnta_cll = 0
2631  pointscntb_cll = 0
2632  pointscntc_cll = 0
2633  pointscntd_cll = 0
2634  pointscnte_cll = 0
2635  pointscntf_cll = 0
2636  pointscntg_cll = 0
2637  pointscnttn_cll = 0
2638  pointscntdb_cll = 0
2639  accpointscnta_cll = 0
2640  accpointscntb_cll = 0
2641  accpointscntc_cll = 0
2642  accpointscntd_cll = 0
2643  accpointscnte_cll = 0
2644  accpointscntf_cll = 0
2645  accpointscntg_cll = 0
2646  accpointscnttn_cll = 0
2647  accpointscntdb_cll = 0
2648  critpointscnta_cll = 0
2649  critpointscntb_cll = 0
2650  critpointscntc_cll = 0
2651  critpointscntd_cll = 0
2652  critpointscnte_cll = 0
2653  critpointscntf_cll = 0
2654  critpointscntg_cll = 0
2655  critpointscnttn_cll = 0
2656  critpointscntdb_cll = 0
2657 
2658  accpointscnta2_cll = 0
2659  accpointscntb2_cll = 0
2660  accpointscntc2_cll = 0
2661  accpointscntd2_cll = 0
2662  accpointscnte2_cll = 0
2663  accpointscntf2_cll = 0
2664  accpointscntg2_cll = 0
2665  accpointscnttn2_cll = 0
2666  accpointscntdb2_cll = 0
2667  critpointscnta2_cll = 0
2668  critpointscntb2_cll = 0
2669  critpointscntc2_cll = 0
2670  critpointscntd2_cll = 0
2671  critpointscnte2_cll = 0
2672  critpointscntf2_cll = 0
2673  critpointscntg2_cll = 0
2674  critpointscnttn2_cll = 0
2675  critpointscntdb2_cll = 0
2676 
2677  pointscnta_coli = 0
2678  pointscntb_coli = 0
2679  pointscntc_coli = 0
2680  pointscntd_coli = 0
2681  pointscnte_coli = 0
2682  pointscntf_coli = 0
2683  pointscntg_coli = 0
2684  pointscnttn_coli = 0
2685  pointscntdb_coli = 0
2686 
2687  pointscnta_dd = 0
2688  pointscntb_dd = 0
2689  pointscntc_dd = 0
2690  pointscntd_dd = 0
2691  pointscnte_dd = 0
2692  pointscntf_dd = 0
2693  pointscntg_dd = 0
2694  pointscnttn_dd = 0
2695  pointscntdb_dd = 0
2696 
2697  pointscntaten_cll = 0
2698  pointscntbten_cll = 0
2699  pointscntcten_cll = 0
2700  pointscntdten_cll = 0
2701  pointscnteten_cll = 0
2702  pointscntften_cll = 0
2703  pointscntgten_cll = 0
2704  pointscnttnten_cll = 0
2705  pointscntdbten_cll = 0
2706  accpointscntaten_cll = 0
2707  accpointscntbten_cll = 0
2708  accpointscntcten_cll = 0
2709  accpointscntdten_cll = 0
2710  accpointscnteten_cll = 0
2711  accpointscntften_cll = 0
2712  accpointscntgten_cll = 0
2713  accpointscnttnten_cll = 0
2714  accpointscntdbten_cll = 0
2715  critpointscntaten_cll = 0
2716  critpointscntbten_cll = 0
2717  critpointscntcten_cll = 0
2718  critpointscntdten_cll = 0
2719  critpointscnteten_cll = 0
2720  critpointscntften_cll = 0
2721  critpointscntgten_cll = 0
2722  critpointscnttnten_cll = 0
2723  critpointscntdbten_cll = 0
2724 
2725 
2726  pointscntaten_coli = 0
2727  pointscntbten_coli = 0
2728  pointscntcten_coli = 0
2729  pointscntdten_coli = 0
2730  pointscnteten_coli = 0
2731  pointscntften_coli = 0
2732  pointscntgten_coli = 0
2733  pointscnttnten_coli = 0
2734  pointscntdbten_coli = 0
2735 
2736  pointscntaten_dd = 0
2737  pointscntbten_dd = 0
2738  pointscntcten_dd = 0
2739  pointscntdten_dd = 0
2740  pointscnteten_dd = 0
2741  pointscntften_dd = 0
2742  pointscntgten_dd = 0
2743  pointscnttnten_dd = 0
2744  pointscntdbten_dd = 0
2745 
2746  errcntcoli = 0
2747  errcntdd = 0
2748  errcnt = 0
2749  acccnt = 0
2750  erreventcnt = 0
2751  acceventcnt = 0
2752 
2753  end if
2754 

◆ opencheckoutfile_cll()

subroutine collier_init::opencheckoutfile_cll ( character(len=*), intent(in)  filename,
integer, intent(in), optional  nchan 
)

Definition at line 4349 of file collier_init.F90.

4349 
4350  character(len=*), intent(in) :: filename
4351  integer, optional, intent(in) :: nchan
4352  character(len=8) :: da
4353  character(len=10) :: ti
4354  logical :: qopened
4355 
4356  ! return if output into files is suppressed
4357  if (nofiles_cll) return
4358 
4359  ! close channel used so far
4360  if(ncheckout_cll.ne.closed_cll) then
4361  inquire(ncheckout_cll, opened=qopened)
4362  if(qopened.and.ncheckout_cll.ne.stdout_cll) close(unit=ncheckout_cll)
4363  end if
4364 
4365  ! set new channel and close if open
4366  if (present(nchan)) then
4367  ncheckout_cll = nchan
4368  ! return if output shall be written as standard output
4369  if (ncheckout_cll.eq.stdout_cll) return
4370  inquire(ncheckout_cll, opened=qopened)
4371  if(qopened) close(unit=ncheckout_cll)
4372  else
4373  ncheckout_cll = findfreechannel_cll()
4374  end if
4375 
4376  ! open file 'filename' as unit ncheckout_cll
4377  fname_checkout_cll = trim(filename)
4378  open(unit=ncheckout_cll,file=trim(fname_checkout_cll),form='formatted',access='sequential',status='replace')
4379  qopened_check=.true.
4380 
4381  ! write intro
4382  call writeintro_cll(ncheckout_cll)
4383  call date_and_time(date=da,time=ti)
4384  write(unit=ncheckout_cll,fmt=*) ' '
4385  write(unit=ncheckout_cll,fmt=*) '***********************************************************'
4386  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 '
4389  write(unit=ncheckout_cll,fmt=*) ' '
4390  write(unit=ncheckout_cll,fmt=*) ' created ', da(7:8), '/', da(5:6), '/', da(1:4), &
4391  ' ', ti(1:2), ':', ti(3:4)
4392  write(unit=ncheckout_cll,fmt=*) ' '
4393  write(unit=ncheckout_cll,fmt=*) '***********************************************************'
4394  write(unit=ncheckout_cll,fmt=*) ' '
4395  write(unit=ncheckout_cll,fmt='(A28,Es15.8)') &
4396  ' Check precision: checkacc =',checkacc_cll
4397  write(unit=ncheckout_cll,fmt=*) ' '
4398  write(unit=ncheckout_cll,fmt=*) '***********************************************************'
4399  write(unit=ncheckout_cll,fmt=*) ' '
4400 

◆ opencritpointsoutfile2_cll()

subroutine collier_init::opencritpointsoutfile2_cll ( character(len=*), intent(in)  filename,
integer, intent(in), optional  nchan 
)

Definition at line 4286 of file collier_init.F90.

4286 
4287  character(len=*), intent(in) :: filename
4288  integer, optional, intent(in) :: nchan
4289  character(len=8) :: da
4290  character(len=10) :: ti
4291  logical :: qopened
4292 
4293  ! return if output into files is suppressed
4294  if (nofiles_cll) return
4295 
4296  ! close channel used so far
4297  if(ncpout2_cll.ne.closed_cll) then
4298  inquire(ncpout2_cll, opened=qopened)
4299  if(qopened.and.ncpout2_cll.ne.stdout_cll) close(unit=ncpout2_cll)
4300  end if
4301 
4302  ! set new channel and close if open
4303  if (present(nchan)) then
4304  ncpout2_cll = nchan
4305  ! return if output shall be written as standard output
4306  if (ncpout2_cll.eq.stdout_cll) return
4307  inquire(ncpout2_cll, opened=qopened)
4308  if(qopened) close(unit=ncpout2_cll)
4309  else
4310  ncpout2_cll = findfreechannel_cll()
4311  end if
4312 
4313  ! open file 'filename' as unit ncpout2_cll
4314  fname_cpout2_cll = trim(filename)
4315  open(unit=ncpout2_cll,file=trim(fname_cpout2_cll),form='formatted',access='sequential',status='replace')
4316 ! qopened_crit2=.true.
4317 
4318  ! write intro
4319  call writeintro_cll(ncpout2_cll)
4320  call date_and_time(date=da,time=ti)
4321  write(unit=ncpout2_cll,fmt=*) ' '
4322  write(unit=ncpout2_cll,fmt=*) '***********************************************************'
4323  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 '
4326  write(unit=ncpout2_cll,fmt=*) ' '
4327  write(unit=ncpout2_cll,fmt=*) ' created ', da(7:8), '/', da(5:6), '/', da(1:4), &
4328  ' ', ti(1:2), ':', ti(3:4)
4329  write(unit=ncpout2_cll,fmt=*) ' '
4330  write(unit=ncpout2_cll,fmt=*) '***********************************************************'
4331  write(unit=ncpout2_cll,fmt=*) ' '
4332  write(unit=ncpout2_cll,fmt='(A30,Es15.8)') &
4333  ' Critical precision: critacc =',critacc_cll
4334  write(unit=ncpout2_cll,fmt=*) ' '
4335  write(unit=ncpout2_cll,fmt=*) '***********************************************************'
4336  write(unit=ncpout2_cll,fmt=*)

◆ opencritpointsoutfile_cll()

subroutine collier_init::opencritpointsoutfile_cll ( character(len=*), intent(in)  filename,
integer, intent(in), optional  nchan 
)

Definition at line 4222 of file collier_init.F90.

4222 
4223  character(len=*), intent(in) :: filename
4224  integer, optional, intent(in) :: nchan
4225  character(len=8) :: da
4226  character(len=10) :: ti
4227  logical :: qopened
4228 
4229  ! return if output into files is suppressed
4230  if (nofiles_cll) return
4231 
4232  ! close channel used so far
4233  if(ncpout_cll.ne.closed_cll) then
4234  inquire(ncpout_cll, opened=qopened)
4235  if(qopened.and.ncpout_cll.ne.stdout_cll) close(unit=ncpout_cll)
4236  end if
4237 
4238  ! set new channel and close if open
4239  if (present(nchan)) then
4240  ncpout_cll = nchan
4241  ! return if output shall be written as standard output
4242  if (ncpout_cll.eq.stdout_cll) return
4243  inquire(ncpout_cll, opened=qopened)
4244  if(qopened) close(unit=ncpout_cll)
4245  else
4246  ncpout_cll = findfreechannel_cll()
4247  end if
4248 
4249  ! open file 'filename' as unit ncpout_cll
4250  fname_cpout_cll = trim(filename)
4251  open(unit=ncpout_cll,file=trim(fname_cpout_cll),form='formatted',access='sequential',status='replace')
4252 ! qopened_crit=.true.
4253 
4254  ! write intro
4255  call writeintro_cll(ncpout_cll)
4256  call date_and_time(date=da,time=ti)
4257  write(unit=ncpout_cll,fmt=*) ' '
4258  write(unit=ncpout_cll,fmt=*) '***********************************************************'
4259  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 '
4262  write(unit=ncpout_cll,fmt=*) ' '
4263  write(unit=ncpout_cll,fmt=*) ' created ', da(7:8), '/', da(5:6), '/', da(1:4), &
4264  ' ', ti(1:2), ':', ti(3:4)
4265  write(unit=ncpout_cll,fmt=*) ' '
4266  write(unit=ncpout_cll,fmt=*) '***********************************************************'
4267  write(unit=ncpout_cll,fmt=*) ' '
4268  write(unit=ncpout_cll,fmt='(A30,Es15.8)') &
4269  ' Critical precision: critacc =',critacc_cll
4270  write(unit=ncpout_cll,fmt=*) ' '
4271  write(unit=ncpout_cll,fmt=*) '***********************************************************'
4272  write(unit=ncpout_cll,fmt=*)
4273 

◆ opencritpointsoutfilecoli_cll()

subroutine collier_init::opencritpointsoutfilecoli_cll ( character(len=*), intent(in)  filename,
integer, intent(in), optional  nchan 
)

Definition at line 4156 of file collier_init.F90.

4156 
4157  character(len=*), intent(in) :: filename
4158  integer, optional, intent(in) :: nchan
4159  character(len=8) :: da
4160  character(len=10) :: ti
4161  logical :: qopened
4162 
4163  ! return if output into files is suppressed
4164  if (nofiles_cll) return
4165 
4166  ! close channel used so far
4167  if(ncpoutcoli_cll.ne.closed_cll) then
4168  inquire(ncpoutcoli_cll, opened=qopened)
4169  if(qopened.and.ncpoutcoli_cll.ne.stdout_cll) close(unit=ncpoutcoli_cll)
4170  end if
4171 
4172  ! set new channel and close if open
4173  if (present(nchan)) then
4174  ncpoutcoli_cll = nchan
4175  call setncpout_coli(ncpoutcoli_cll)
4176  ! return if output shall be written as standard output
4177  if (ncpoutcoli_cll.eq.stdout_cll) return
4178  inquire(ncpoutcoli_cll, opened=qopened)
4179  if(qopened) close(unit=ncpoutcoli_cll)
4180  else
4181  ncpoutcoli_cll = findfreechannel_cll()
4182  call setncpout_coli(ncpoutcoli_cll)
4183  end if
4184 
4185  ! open file 'filename' as unit unit=ncpoutcoli_cll
4186  fname_cpoutcoli_cll = trim(filename)
4187  open(unit=ncpoutcoli_cll,file=trim(fname_cpoutcoli_cll),form='formatted',access='sequential',status='replace')
4188 ! qopened_critcoli=.true.
4189 
4190  ! write intro
4191  call writeintro_cll(ncpoutcoli_cll)
4192  call date_and_time(date=da,time=ti)
4193  write(unit=ncpoutcoli_cll,fmt=*) ' '
4194  write(unit=ncpoutcoli_cll,fmt=*) '***********************************************************'
4195  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 '
4198  write(unit=ncpoutcoli_cll,fmt=*) ' '
4199  write(unit=ncpoutcoli_cll,fmt=*) ' created ', da(7:8), '/', da(5:6), '/', da(1:4), &
4200  ' ', ti(1:2), ':', ti(3:4)
4201  write(unit=ncpoutcoli_cll,fmt=*) ' '
4202  write(unit=ncpoutcoli_cll,fmt=*) '***********************************************************'
4203  write(unit=ncpoutcoli_cll,fmt=*) ' '
4204  write(unit=ncpoutcoli_cll,fmt='(A30,Es15.8)') &
4205  ' Critical precision: critacc =',critacc_cll
4206  write(unit=ncpoutcoli_cll,fmt=*) ' '
4207  write(unit=ncpoutcoli_cll,fmt=*) '***********************************************************'
4208  write(unit=ncpoutcoli_cll,fmt=*) ' '
4209 
4210 

◆ openerroutfile_cll()

subroutine collier_init::openerroutfile_cll ( character(len=*), intent(in)  filename,
integer, intent(in), optional  nchan 
)

Definition at line 3974 of file collier_init.F90.

3974 
3975  character(len=*), intent(in) :: filename
3976  integer, optional, intent(in) :: nchan
3977  character(len=8) :: da
3978  character(len=10) :: ti
3979  logical :: qopened
3980 
3981  ! return if output into files is suppressed
3982  if (nofiles_cll) return
3983 
3984  ! close channel used so far
3985  if(nerrout_cll.ne.closed_cll) then
3986  inquire(nerrout_cll, opened=qopened)
3987  if(qopened.and.nerrout_cll.ne.stdout_cll) close(unit=nerrout_cll)
3988  end if
3989 
3990  ! set new channel and close if open
3991  if (present(nchan)) then
3992  nerrout_cll = nchan
3993  ! return if output shall be written as standard output
3994  if (nerrout_cll.eq.stdout_cll) return
3995  inquire(nerrout_cll, opened=qopened)
3996  if(qopened) close(unit=nerrout_cll)
3997  else
3998  nerrout_cll = findfreechannel_cll()
3999  end if
4000 
4001  ! open file 'filename' as unit nerrout_cll
4002  fname_errout_cll = trim(filename)
4003  open(unit=nerrout_cll,file=trim(fname_errout_cll),form='formatted',access='sequential',status='replace')
4004 
4005  ! write intro
4006  call writeintro_cll(nerrout_cll)
4007  call date_and_time(date=da,time=ti)
4008  write(unit=nerrout_cll,fmt=*) ' '
4009  write(unit=nerrout_cll,fmt=*) '***********************************************************'
4010  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)
4014  write(unit=nerrout_cll,fmt=*) ' '
4015  write(unit=nerrout_cll,fmt=*) '***********************************************************'
4016  write(unit=nerrout_cll,fmt=*) ' '
4017 

◆ openerroutfilecoli_cll()

subroutine collier_init::openerroutfilecoli_cll ( character(len=*), intent(in)  filename,
integer, intent(in), optional  nchan 
)

Definition at line 4030 of file collier_init.F90.

4030 
4031  character(len=*), intent(in) :: filename
4032  integer, optional, intent(in) :: nchan
4033  character(len=8) :: da
4034  character(len=10) :: ti
4035  logical :: qopened
4036 
4037  ! return if output into files is suppressed
4038  if (nofiles_cll) return
4039 
4040  ! close channel used so far
4041  if(nerroutcoli_cll.ne.closed_cll) then
4042  inquire(nerroutcoli_cll, opened=qopened)
4043  if(qopened.and.nerroutcoli_cll.ne.stdout_cll) close(unit=nerroutcoli_cll)
4044  end if
4045 
4046  ! set new channel and close if open
4047  if (present(nchan)) then
4048  nerroutcoli_cll = nchan
4049  call setnerrout_coli(nerroutcoli_cll)
4050  ! return if output shall be written as standard output
4051  if (nerroutcoli_cll.eq.stdout_cll) return
4052  inquire(nerroutcoli_cll, opened=qopened)
4053  if(qopened) close(unit=nerroutcoli_cll)
4054  else
4055  nerroutcoli_cll = findfreechannel_cll()
4056  call setnerrout_coli(nerroutcoli_cll)
4057  end if
4058 
4059  ! open file 'filename' as unit nerroutcoli_cll
4060  fname_erroutcoli_cll = trim(filename)
4061  open(unit=nerroutcoli_cll,file=trim(fname_erroutcoli_cll),form='formatted',access='sequential',status='replace')
4062 
4063  ! write intro
4064  call writeintro_cll(nerroutcoli_cll)
4065  call date_and_time(date=da,time=ti)
4066  write(unit=nerroutcoli_cll,fmt=*) ' '
4067  write(unit=nerroutcoli_cll,fmt=*) '***********************************************************'
4068  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)
4072  write(unit=nerroutcoli_cll,fmt=*) ' '
4073  write(unit=nerroutcoli_cll,fmt=*) '***********************************************************'
4074  write(unit=nerroutcoli_cll,fmt=*) ' '
4075 

◆ openerroutfiledd_cll()

subroutine collier_init::openerroutfiledd_cll ( character(len=*), intent(in)  filename,
integer, intent(in), optional  nchan 
)

Definition at line 4088 of file collier_init.F90.

4088 
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
4095  logical :: qopened
4096 
4097  ! return if output into files is suppressed
4098  if (nofiles_cll) return
4099 
4100  ! close channel used so far
4101  if(nerroutdd_cll.ne.closed_cll) then
4102  inquire(nerroutdd_cll, opened=qopened)
4103  if(qopened.and.nerroutdd_cll.ne.stdout_cll) close(unit=nerroutdd_cll)
4104  end if
4105 
4106  ! set new channel and close if open
4107  if (present(nchan)) then
4108  nerroutdd_cll = nchan
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)
4111  if (erroutlev_cll.gt.0) then
4112  call ddsetcout_on(.true.)
4113  end if
4114  ! return if output shall be written as standard output
4115  if (nerroutdd_cll.eq.stdout_cll) return
4116  inquire(nerroutdd_cll, opened=qopened)
4117  if(qopened) close(unit=nerroutdd_cll)
4118  else
4119  nerroutdd_cll = findfreechannel_cll()
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)
4122  if (erroutlev_cll.gt.0) then
4123  call ddsetcout_on(.true.)
4124  end if
4125  end if
4126 
4127  ! open file 'filename' as unit nerroutdd_cll
4128  fname_erroutdd_cll = trim(filename)
4129  open(unit=nerroutdd_cll,file=trim(fname_erroutdd_cll),form='formatted',access='sequential',status='replace')
4130 
4131  ! write intro
4132  call writeintro_cll(nerroutdd_cll)
4133  call date_and_time(date=da,time=ti)
4134  write(unit=nerroutdd_cll,fmt=*) ' '
4135  write(unit=nerroutdd_cll,fmt=*) '***********************************************************'
4136  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)
4140  write(unit=nerroutdd_cll,fmt=*) ' '
4141  write(unit=nerroutdd_cll,fmt=*) '***********************************************************'
4142  write(unit=nerroutdd_cll,fmt=*) ' '
4143 

◆ openinfoutfile_cll()

subroutine collier_init::openinfoutfile_cll ( character(len=*), intent(in)  filename,
integer, intent(in), optional  nchan 
)

Definition at line 4413 of file collier_init.F90.

4413 
4414  character(len=*), intent(in) :: filename
4415  integer, optional, intent(in) :: nchan
4416  character(len=8) :: da
4417  character(len=10) :: ti
4418  logical :: qopened
4419 
4420  ! return if output into files is suppressed
4421  if (nofiles_cll) return
4422 
4423  ! close channel used so far
4424  if(ninfout_cll.ne.closed_cll) then
4425  inquire(ninfout_cll, opened=qopened)
4426  if(qopened.and.ninfout_cll.ne.stdout_cll) close(unit=ninfout_cll)
4427  end if
4428 
4429  ! set new channel and close if open
4430  if (present(nchan)) then
4431  ninfout_cll = nchan
4432  call setninfout_cache(ninfout_cll)
4433  ! return if output shall be written as standard output
4434  if (ninfout_cll.eq.stdout_cll) return
4435  inquire(ninfout_cll, opened=qopened)
4436  if(qopened) close(unit=ninfout_cll)
4437  else
4438  ninfout_cll = findfreechannel_cll()
4439  call setninfout_cache(ninfout_cll)
4440  end if
4441 
4442  ! open file 'filename' as unit ninfout_cll
4443  fname_infout_cll = trim(filename)
4444  open(unit=ninfout_cll,file=trim(fname_infout_cll),form='formatted',access='sequential',status='replace')
4445 
4446  ! write intro
4447  call writeintro_cll(ninfout_cll)
4448  call date_and_time(date=da,time=ti)
4449  write(unit=ninfout_cll,fmt=*) ' '
4450  write(unit=ninfout_cll,fmt=*) '***********************************************************'
4451  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)
4455  write(unit=ninfout_cll,fmt=*) ' '
4456  write(unit=ninfout_cll,fmt=*) '***********************************************************'
4457  write(unit=ninfout_cll,fmt=*) ' '
4458 

◆ openinfoutfilecoli_cll()

subroutine collier_init::openinfoutfilecoli_cll ( character(len=*), intent(in)  filename,
integer, intent(in), optional  nchan 
)

Definition at line 4471 of file collier_init.F90.

4471 
4472  character(len=*), intent(in) :: filename
4473  integer, optional, intent(in) ::nchan
4474  character(len=8) :: da
4475  character(len=10) :: ti
4476  logical :: qopened
4477 
4478  ! return if output into files is suppressed
4479  if (nofiles_cll) return
4480 
4481  ! close channel used so far
4482  if(ninfoutcoli_cll.ne.closed_cll) then
4483  inquire(ninfoutcoli_cll, opened=qopened)
4484  if(qopened.and.ninfoutcoli_cll.ne.stdout_cll) close(unit=ninfoutcoli_cll)
4485  end if
4486 
4487  ! set new channel and close if open
4488  if (present(nchan)) then
4489  ninfoutcoli_cll = nchan
4490  call setninfout_coli(ninfoutcoli_cll)
4491  ! return if output shall be written as standard output
4492  if (ninfoutcoli_cll.eq.stdout_cll) return
4493  inquire(ninfoutcoli_cll, opened=qopened)
4494  if(qopened) close(unit=ninfoutcoli_cll)
4495  else
4496  ninfoutcoli_cll = findfreechannel_cll()
4497  call setninfout_coli(ninfoutcoli_cll)
4498  end if
4499 
4500  ! open file 'filename' as unit ninfoutcoli_cll
4501  fname_infoutcoli_cll = trim(filename)
4502  open(unit=ninfoutcoli_cll,file=trim(fname_infoutcoli_cll),form='formatted',access='sequential')
4503 
4504  ! write intro
4505  call writeintro_cll(ninfoutcoli_cll)
4506  call date_and_time(date=da,time=ti)
4507  write(unit=ninfoutcoli_cll,fmt=*) ' '
4508  write(unit=ninfoutcoli_cll,fmt=*) '***********************************************************'
4509  write(unit=ninfoutcoli_cll,fmt=*) ' '
4510  write(unit=ninfoutcoli_cll,fmt=*) ' file containing info output of COLI '
4511  write(unit=ninfoutcoli_cll,fmt=*) ' '
4512  write(unit=ninfoutcoli_cll,fmt=*) ' created ', da(7:8), '/', da(5:6), '/', da(1:4), &
4513  ' ', ti(1:2), ':', ti(3:4)
4514  write(unit=ninfoutcoli_cll,fmt=*) ' '
4515  write(unit=ninfoutcoli_cll,fmt=*) '***********************************************************'
4516  write(unit=ninfoutcoli_cll,fmt=*) ' '
4517 

◆ openstatisticsoutfilecoli_cll()

subroutine collier_init::openstatisticsoutfilecoli_cll ( character(len=*), intent(in)  filename,
integer, intent(in), optional  nchan 
)

Definition at line 4529 of file collier_init.F90.

4529 
4530  character(len=*), intent(in) :: filename
4531  integer, optional, intent(in) :: nchan
4532  character(len=8) :: da
4533  character(len=10) :: ti
4534  logical :: qopened
4535 
4536  ! return if output into files is suppressed
4537  if (nofiles_cll) return
4538 
4539  ! close channel used so far
4540  if(nstatsoutcoli_cll.ne.closed_cll) then
4541  inquire(nstatsoutcoli_cll, opened=qopened)
4542  if(qopened.and.nstatsoutcoli_cll.ne.stdout_cll) close(unit=nstatsoutcoli_cll)
4543  end if
4544 
4545  ! set new channel and close if open
4546  if (present(nchan)) then
4547  nstatsoutcoli_cll = nchan
4548  call setnstatsout_coli(nstatsoutcoli_cll)
4549  ! return if output shall be written as standard output
4550  if (nstatsoutcoli_cll.eq.stdout_cll) return
4551  inquire(nstatsoutcoli_cll, opened=qopened)
4552  if(qopened) close(unit=nstatsoutcoli_cll)
4553  else
4554  nstatsoutcoli_cll = findfreechannel_cll()
4555  call setnstatsout_coli(nstatsoutcoli_cll)
4556  end if
4557 
4558  ! open file 'filename' as unit nstatsoutcoli_cll
4559  fname_statsoutcoli_cll = trim(filename)
4560  open(unit=nstatsoutcoli_cll,file=trim(fname_statsoutcoli_cll),form='formatted',access='sequential',status='replace')
4561 ! qopened_statscoli=.true.
4562 
4563  ! write intro
4564  ! call WriteIntro_cll(nstatsoutcoli_cll)
4565  call date_and_time(date=da,time=ti)
4566  write(unit=nstatsoutcoli_cll,fmt=*) ' '
4567  write(unit=nstatsoutcoli_cll,fmt=*) '***********************************************************'
4568  write(unit=nstatsoutcoli_cll,fmt=*) ' '
4569  write(unit=nstatsoutcoli_cll,fmt=*) ' file containing statistics of calls in COLI '
4570  write(unit=nstatsoutcoli_cll,fmt=*) ' of C and D integral reduction functions '
4571  write(unit=nstatsoutcoli_cll,fmt=*) ' '
4572  write(unit=nstatsoutcoli_cll,fmt=*) ' created ', da(7:8), '/', da(5:6), '/', da(1:4), &
4573  ' ', ti(1:2), ':', ti(3:4)
4574  write(unit=nstatsoutcoli_cll,fmt=*) ' '
4575  write(unit=nstatsoutcoli_cll,fmt=*) '***********************************************************'
4576  write(unit=nstatsoutcoli_cll,fmt=*) ' '
4577 

◆ printstatisticscoli_cll()

subroutine collier_init::printstatisticscoli_cll ( integer, intent(in)  noutch)

Definition at line 4588 of file collier_init.F90.

4588 
4589  integer, intent(in) :: noutch
4590 
4591 ! if (nout.ne.0) then
4592 ! call Setnstatsoutcoli_cll(nout)
4593 ! call Setnstatsout_coli(nout)
4594 ! if (nout.ne.6) then
4595 ! call OpenStatisticsOutFileCOLI_cll('output_cll/StatisticsOut.coli')
4596 ! end if
4597 ! end if
4598 
4599  ! return if output into files is suppressed
4600  if (nofiles_cll) return
4601 
4602  call openstatisticsoutfilecoli_cll(trim(foldername_cll)//'/StatisticsOut.coli',noutch)
4603 
4604  call printstatistics_coli
4605 
4606 

◆ propagateaccflag_cll()

subroutine collier_init::propagateaccflag_cll ( double precision, dimension(0:rmax), intent(in)  RelErrs,
integer, intent(in)  rmax 
)

Definition at line 2450 of file collier_init.F90.

2450 
2451  integer, intent(in) :: rmax
2452  double precision, intent(in) :: RelErrs(0:rmax)
2453  integer :: loaf
2454 
2455  loaf = 0
2456  if (maxval(relerrs).gt.reqacc_cll) loaf=-1
2457  if (maxval(relerrs).gt.critacc_cll) loaf=-2
2458  accflag_cll = min(accflag_cll,loaf)
2459 
2460  if (monitoring) then
2461  acccnt(1) = acccnt(1) + 1
2462  acccnt(loaf) = acccnt(loaf) + 1
2463  end if
2464 

◆ propagateerrflag_cll()

subroutine collier_init::propagateerrflag_cll

Definition at line 2194 of file collier_init.F90.

2194 
2195  integer :: efcoli,efdd,efcll,ef
2196 
2197 
2198  ! error flags in COLI
2199  ! -1 internal Check failed
2200  ! -4 argument on cut in log or dilog
2201  ! -5 crit event (error > critical error) excluded!
2202  ! -5 wrong exit of rloop
2203  ! -6 no reduction method works for C or D
2204  ! -6 inconsistent input momenta (not 4-dimensional)
2205  ! -7 specific numerical problem
2206  ! -9 internal inconsistency (e.g. with cache or max. tensor rank)
2207  ! -10 case not supported/implemented
2208 
2209  ! default for ErrorStopFlag: -8
2210 
2211 
2212  ! changed AD 31.07.2017
2213 
2214  call geterrflag_coli(efcoli)
2215  call geterrflag_dd(efdd)
2216  call geterrflag_cll(efcll)
2217  ef = min(efcoli,efdd,efcll)
2218 
2219  ! added AD 19.10.2017
2220  errflag_cll = ef
2221 
2222  if (ef.le.errorstop_cll) then
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'
2235  end if
2236  stop
2237  end if
2238 
2239  if (monitoring) then
2240  errcnt(1) = errcnt(1) + 1
2241  errcntcoli(efcoli) = errcntcoli(efcoli) + 1
2242  errcntdd(efdd ) = errcntdd(efdd) + 1
2243  errcnt(ef) = errcnt(ef) + 1
2244  end if
2245 

◆ reset_cll()

subroutine collier_init::reset_cll

Definition at line 407 of file collier_init.F90.

407  logical :: qopened
408 
409 
410  if (.not.nofiles_cll) then
411  if(ninfout_cll.ne.closed_cll) then
412  inquire(ninfout_cll, opened=qopened)
413  if(qopened.and.ninfout_cll.ne.stdout_cll) close(unit=ninfout_cll)
414  end if
415 
416  if(ninfoutcoli_cll.ne.closed_cll) then
417  inquire(ninfoutcoli_cll, opened=qopened)
418  if(qopened.and.ninfoutcoli_cll.ne.stdout_cll) close(unit=ninfoutcoli_cll)
419  end if
420 
421  if(nerrout_cll.ne.closed_cll) then
422  inquire(nerrout_cll, opened=qopened)
423  if(qopened.and.nerrout_cll.ne.stdout_cll) close(unit=nerrout_cll)
424  end if
425 
426  if(nerroutcoli_cll.ne.closed_cll) then
427  inquire(nerroutcoli_cll, opened=qopened)
428  if(qopened.and.nerroutcoli_cll.ne.stdout_cll) close(unit=nerroutcoli_cll)
429  end if
430 
431  if(nerroutdd_cll.ne.closed_cll) then
432  inquire(nerroutdd_cll, opened=qopened)
433  if(qopened.and.nerroutdd_cll.ne.stdout_cll) close(unit=nerroutdd_cll)
434  end if
435 
436  if(ncheckout_cll.ne.closed_cll) then
437  inquire(ncheckout_cll, opened=qopened)
438  if(qopened.and.ncheckout_cll.ne.stdout_cll) close(unit=ncheckout_cll)
439  end if
440 
441  if(ncpout_cll.ne.closed_cll) then
442  inquire(ncpout_cll, opened=qopened)
443  if(qopened.and.ncpout_cll.ne.stdout_cll) close(unit=ncpout_cll)
444  end if
445 
446  if(ncpout2_cll.ne.closed_cll) then
447  inquire(ncpout2_cll, opened=qopened)
448  if(qopened.and.ncpout2_cll.ne.stdout_cll) close(unit=ncpout2_cll)
449  end if
450 
451  if(ncpoutcoli_cll.ne.closed_cll) then
452  inquire(ncpoutcoli_cll, opened=qopened)
453  if(qopened.and.ncpoutcoli_cll.ne.stdout_cll) close(unit=ncpoutcoli_cll)
454  end if
455 
456  if(nstatsoutcoli_cll.ne.closed_cll) then
457  inquire(nstatsoutcoli_cll, opened=qopened)
458  if(qopened.and.nstatsoutcoli_cll.ne.stdout_cll) close(unit=nstatsoutcoli_cll)
459  end if
460  end if
461 
462  if(allocated(minf2_cll)) deallocate(minf2_cll)
463  if(allocated(pointscnttn_cll)) deallocate(pointscnttn_cll)
464  if(allocated(critpointscnttn_cll)) deallocate(critpointscnttn_cll)
465  if(allocated(accpointscnttn_cll)) deallocate(accpointscnttn_cll)
466  if(allocated(pointscnttn2_cll)) deallocate(pointscnttn2_cll)
467  if(allocated(critpointscnttn2_cll)) deallocate(critpointscnttn2_cll)
468  if(allocated(accpointscnttn2_cll)) deallocate(accpointscnttn2_cll)
469  if(allocated(pointscnttnten_cll)) deallocate(pointscnttnten_cll)
470  if(allocated(critpointscnttnten_cll)) deallocate(critpointscnttnten_cll)
471  if(allocated(accpointscnttnten_cll)) deallocate(accpointscnttnten_cll)
472  if(allocated(pointscnttn_coli)) deallocate(pointscnttn_coli)
473  if(allocated(pointscnttn_dd)) deallocate(pointscnttn_dd)
474  if(allocated(pointscnttnten_coli)) deallocate(pointscnttnten_coli)
475  if(allocated(pointscnttnten_dd)) deallocate(pointscnttnten_dd)
476  if(allocated(maxcheck_cll)) deallocate(maxcheck_cll)
477  if(allocated(checkcnt_cll)) deallocate(checkcnt_cll)
478  if(allocated(diffcnt_cll)) deallocate(diffcnt_cll)
479  if(allocated(checkcntten_cll)) deallocate(checkcntten_cll)
480  if(allocated(diffcntten_cll)) deallocate(diffcntten_cll)
481 
482 

◆ setaccflag_cll()

subroutine collier_init::setaccflag_cll ( integer, intent(in)  val)

Definition at line 2416 of file collier_init.F90.

2416 
2417  integer, intent(in) :: val
2418 
2419  accflag_cll = val
2420 

◆ setaccuracy_cll()

subroutine collier_init::setaccuracy_cll ( double precision  acc0,
double precision  acc1,
double precision  acc2 
)

Definition at line 1728 of file collier_init.F90.

1728 
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)"
1737 
1738  reqacc_cll = acc0
1739  critacc_cll = acc1
1740  checkacc_cll = acc2
1741 
1742  call ddgetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,outchannel_dd)
1743  call ddsetmode(reqacc_cll,reqacc_cll,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,outchannel_dd)
1744  call setacc_coli(acc0,acc1)
1745 
1746  if (infoutlev_cll.ge.2) then
1747  infwri = .false.
1748  if (infoutlev_cll.ge.2) call infout_cll('SetAccuracy_cll','precisions set to',infwri)
1749  if(infwri) write(ninfout_cll,fmt31) 'target precision: acc0 =', reqacc_cll
1750  if(infwri) write(ninfout_cll,fmt31) 'critical precision: acc1 =', critacc_cll
1751  if(infwri) write(ninfout_cll,fmt31) 'check precision: acc2 =', checkacc_cll
1752  end if
1753 
1754  if(ncpout_cll.ne.closed_cll) then
1755  inquire(ncpout_cll, opened=qopened)
1756  if(qopened) then
1757  write(unit=ncpout_cll,fmt=*) ' '
1758  write(unit=ncpout_cll,fmt=*) '***********************************************************'
1759  write(unit=ncpout_cll,fmt=*) ' critical precision set to critacc =', critacc_cll
1760  write(unit=ncpout_cll,fmt=*) '***********************************************************'
1761  write(unit=ncpout_cll,fmt=*) ' '
1762  endif
1763  end if
1764 
1765  if(ncpout2_cll.ne.closed_cll) then
1766  inquire(ncpout2_cll, opened=qopened)
1767  if(qopened) then
1768  write(unit=ncpout2_cll,fmt=*) ' '
1769  write(unit=ncpout2_cll,fmt=*) '***********************************************************'
1770  write(unit=ncpout2_cll,fmt=*) ' critical precision set to critacc =', critacc_cll
1771  write(unit=ncpout2_cll,fmt=*) '***********************************************************'
1772  write(unit=ncpout2_cll,fmt=*) ' '
1773  endif
1774  end if
1775 
1776  if(ncpoutcoli_cll.ne.closed_cll) then
1777  inquire(ncpoutcoli_cll, opened=qopened)
1778  if(qopened) then
1779  write(unit=ncpoutcoli_cll,fmt=*) ' '
1780  write(unit=ncpoutcoli_cll,fmt=*) '***********************************************************'
1781  write(unit=ncpoutcoli_cll,fmt=*) ' critical precision set to critacc =', critacc_cll
1782  write(unit=ncpoutcoli_cll,fmt=*) '***********************************************************'
1783  write(unit=ncpoutcoli_cll,fmt=*) ' '
1784  endif
1785  end if
1786 
1787  if(ncheckout_cll.ne.closed_cll) then
1788  inquire(ncheckout_cll, opened=qopened)
1789  if(qopened) then
1790  write(unit=ncheckout_cll,fmt=*) ' '
1791  write(unit=ncheckout_cll,fmt=*) '***********************************************************'
1792  write(unit=ncheckout_cll,fmt=*) ' check precision set to checkacc =', checkacc_cll
1793  write(unit=ncheckout_cll,fmt=*) '***********************************************************'
1794  write(unit=ncheckout_cll,fmt=*) ' '
1795  end if
1796  end if
1797 
1798  if (infoutlev_cll.ge.1.and.critacc_cll.lt.reqacc_cll) then
1799  call infout_cll('SetAccuracy_cll','WARNING',infwri)
1800  if(infwri) write(ninfout_cll,fmt33) ' critical precision critacc =', critacc_cll
1801  if(infwri) write(ninfout_cll,fmt45) ' smaller than required precision reqacc =', reqacc_cll
1802  end if
1803 
1804  if (infoutlev_cll.ge.1.and.checkacc_cll.lt.reqacc_cll) then
1805  call infout_cll('SetAccuracy_cll','WARNING',infwri)
1806  if(infwri) write(ninfout_cll,fmt31) ' check precision checkacc =', checkacc_cll
1807  if(infwri) write(ninfout_cll,fmt45) ' smaller than required precision reqacc =', reqacc_cll
1808  end if
1809 
1810 

◆ setcheckacc_cll()

subroutine collier_init::setcheckacc_cll ( double precision  acc)

Definition at line 1970 of file collier_init.F90.

1970 
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)"
1976 
1977  checkacc_cll = acc
1978 
1979  if(ncheckout_cll.ne.closed_cll) then
1980  inquire(ncheckout_cll, opened=qopened)
1981  if (qopened) then
1982  write(unit=ncheckout_cll,fmt=*) ' '
1983  write(unit=ncheckout_cll,fmt=*) '***********************************************************'
1984  write(unit=ncheckout_cll,fmt=*) ' check precision set to checkacc =', checkacc_cll
1985  write(unit=ncheckout_cll,fmt=*) '***********************************************************'
1986  write(unit=ncheckout_cll,fmt=*) ' '
1987  end if
1988  end if
1989 
1990  infwri = .false.
1991  if (infoutlev_cll.ge.2) call infout_cll('SetCheckAcc_cll','check precision set to',infwri)
1992  if(infwri) write(ninfout_cll,fmt14) ' checkacc =', checkacc_cll
1993 
1994  if (infoutlev_cll.ge.1.and.checkacc_cll.lt.reqacc_cll) then
1995  call infout_cll('SetCheckAcc_cll','WARNING',infwri)
1996  if(infwri) write(ninfout_cll,fmt30) ' check precision checkacc =', checkacc_cll
1997  if(infwri) write(ninfout_cll,fmt45) ' smaller than required precision reqacc =', reqacc_cll
1998  end if
1999 
2000 

◆ setcritacc_cll()

subroutine collier_init::setcritacc_cll ( double precision  acc)

Definition at line 1886 of file collier_init.F90.

1886 
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)"
1892 
1893  critacc_cll = acc
1894 
1895 
1896  call ddseterrthr(critacc_cll)
1897 
1898  call setcritacc_coli(acc)
1899 
1900  if(ncpoutcoli_cll.ne.closed_cll) then
1901  inquire(ncpoutcoli_cll, opened=qopened)
1902  if(qopened) then
1903  write(unit=ncpoutcoli_cll,fmt=*) ' '
1904  write(unit=ncpoutcoli_cll,fmt=*) '***********************************************************'
1905  write(unit=ncpoutcoli_cll,fmt=*) ' critical precision set to critacc =', critacc_cll
1906  write(unit=ncpoutcoli_cll,fmt=*) '***********************************************************'
1907  write(unit=ncpoutcoli_cll,fmt=*) ' '
1908  endif
1909  end if
1910  if(ncpout_cll.ne.closed_cll) then
1911  inquire(ncpout_cll, opened=qopened)
1912  if(qopened) then
1913  write(unit=ncpout_cll,fmt=*) ' '
1914  write(unit=ncpout_cll,fmt=*) '***********************************************************'
1915  write(unit=ncpout_cll,fmt=*) ' critical precision set to critacc =', critacc_cll
1916  write(unit=ncpout_cll,fmt=*) '***********************************************************'
1917  write(unit=ncpout_cll,fmt=*) ' '
1918  endif
1919  end if
1920  if(ncpout2_cll.ne.closed_cll) then
1921  inquire(ncpout2_cll, opened=qopened)
1922  if(qopened) then
1923  write(unit=ncpout2_cll,fmt=*) ' '
1924  write(unit=ncpout2_cll,fmt=*) '***********************************************************'
1925  write(unit=ncpout2_cll,fmt=*) ' critical precision set to critacc =', critacc_cll
1926  write(unit=ncpout2_cll,fmt=*) '***********************************************************'
1927  write(unit=ncpout2_cll,fmt=*) ' '
1928  endif
1929  end if
1930 
1931  infwri = .false.
1932  if (infoutlev_cll.ge.2) call infout_cll('SetCritAcc_cll','critical precision set to',infwri)
1933  if(infwri) write(ninfout_cll,fmt93) ' critacc =', critacc_cll
1934 
1935  if (infoutlev_cll.ge.1.and.critacc_cll.lt.reqacc_cll) then
1936  call infout_cll('SetCritAcc_cll','WARNING',infwri)
1937  if(infwri) write(ninfout_cll,*) ' critical precision critacc =', critacc_cll
1938  if(infwri) write(ninfout_cll,*) ' smaller than required precision reqacc =', reqacc_cll
1939  end if
1940 

◆ setdeltair_cll()

subroutine collier_init::setdeltair_cll ( double precision, intent(in)  delta1,
double precision, intent(in)  delta2 
)

Definition at line 838 of file collier_init.F90.

838 
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)
842  integer :: i
843  logical :: infwri
844  character(len=*),parameter :: fmt14 = "(A14,d25.18)"
845 #include "COLI/global_coli.h"
846 
847 #ifdef SING
848  deltair1_cll = delta1
849  deltair2_cll = delta2
850 #else
851  deltair1_cll = 0d0
852  deltair2_cll = 0d0
853  if (erroutlev_cll.ge.1) then
854  write(nerrout_cll,*) 'preprocessor flag SING = false'
855  write(nerrout_cll,*) 'call of SetDeltaUV_cll without effect'
856  end if
857 #endif
858 
859 #ifdef SING
860  ! set deltauv in COLI
861  call setdeltair_coli(deltair1_cll,deltair2_cll)
862 #endif
863  ! set deltauv in DD
864  call ddgetparam(deltauv_dd,muuv2_dd,deltair2_dd, &
865  deltair1_dd,muir2_dd,xmx2_dd)
866  call ddsetparam(deltauv_dd,muuv2_dd,deltair2_cll, &
867  deltair1_cll,muir2_dd,xmx2_dd)
868 
869  infwri = .false.
870  if (infoutlev_cll.ge.2) call infout_cll('SetDeltaIR_cll','IR single and double pole set to',infwri)
871  if(infwri) then
872  write(ninfout_cll,fmt14) ' deltaIR1 =', deltair1_cll
873  write(ninfout_cll,fmt14) ' deltaIR2 =', deltair2_cll
874  end if
875 

◆ setdeltauv_cll()

subroutine collier_init::setdeltauv_cll ( double precision, intent(in)  delta)

Definition at line 774 of file collier_init.F90.

774 
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)
778  integer :: i
779  logical :: infwri
780  character(len=*),parameter :: fmt13 = "(A13,d25.18)"
781 #include "COLI/global_coli.h"
782 
783 #ifdef SING
784  deltauv_cll = delta
785 #else
786  deltauv_cll = 0d0
787  if (erroutlev_cll.ge.1) then
788  write(nerrout_cll,*) 'preprocessor flag SING = false'
789  write(nerrout_cll,*) 'call of SetDeltaUV_cll without effect'
790  end if
791 #endif
792 
793 #ifdef SING
794  ! set deltauv in COLI
795  call setdeltauv_coli(deltauv_cll)
796 #endif
797 
798  ! set deltauv in DD
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)
803 
804  infwri = .false.
805  if (infoutlev_cll.ge.2) call infout_cll('SetDeltaUV_cll','UV pole set to',infwri)
806  if(infwri) write(ninfout_cll,fmt13) ' deltaUV =', deltauv_cll
807 

◆ seterrflag_cll()

subroutine collier_init::seterrflag_cll ( integer, intent(in)  val)

Definition at line 2158 of file collier_init.F90.

2158 
2159  integer, intent(in) :: val
2160 
2161  errflag_cll = val
2162 ! call SetErrFlag_coli(val)
2163 ! call SetErrFlag_dd(val)
2164 

◆ seterroutlev_cll()

subroutine collier_init::seterroutlev_cll ( integer, intent(in)  erroutlev)

Definition at line 1618 of file collier_init.F90.

1618 
1619  integer, intent(in) :: erroutlev
1620 
1621  if (erroutlev.eq.0) then
1622  call ddsetcout_on(.false.)
1623  else if(erroutlev.eq.1) then
1624  if(nerroutdd_cll.ne.closed_cll) then
1625  call ddsetcout_on(.true.)
1626  end if
1627  else
1628  return
1629  end if
1630  erroutlev_cll = erroutlev
1631  call seterroutlev_coli(erroutlev)
1632 

◆ seterrstop_cll()

subroutine collier_init::seterrstop_cll ( integer  errstop)

Definition at line 1344 of file collier_init.F90.

1344  integer :: errstop
1345 
1346  errorstop_cll = errstop
1347 

◆ setinfoutlev_cll()

subroutine collier_init::setinfoutlev_cll ( integer, intent(in)  infoutlev)

Definition at line 1583 of file collier_init.F90.

1583 
1584  integer, intent(in) :: infoutlev
1585 
1586  infoutlev_cll = infoutlev
1587  call setinfoutlev_cache(infoutlev)
1588 

◆ setinfoutlevcoli_cll()

subroutine collier_init::setinfoutlevcoli_cll ( integer, intent(in)  infoutlev)

Definition at line 2477 of file collier_init.F90.

2477 
2478  integer, intent(in) :: infoutlev
2479 
2480  if(infoutlev.eq.0) then
2481  call unsetinfo_coli
2482  else
2483  call openinfoutfilecoli_cll(trim(foldername_cll)//'/InfOut.coli')
2484  call setinfo_coli
2485  endif
2486 

◆ setmaxcheckarray_cll()

subroutine collier_init::setmaxcheckarray_cll ( integer, dimension(nmax_cll), intent(in)  npoints)

Definition at line 3788 of file collier_init.F90.

3788 
3789  integer, intent(in) :: npoints(Nmax_cll)
3790 
3791  maxcheck_cll = npoints
3792 

◆ setmaxcheckdb_cll()

subroutine collier_init::setmaxcheckdb_cll ( integer, intent(in)  npoints)

Definition at line 3657 of file collier_init.F90.

3657 
3658  integer, intent(in) :: npoints
3659 
3660  maxcheckdb_cll = npoints
3661 

◆ setmaxcheckn_cll()

subroutine collier_init::setmaxcheckn_cll ( integer, intent(in)  npoints,
integer, intent(in)  N 
)

Definition at line 3771 of file collier_init.F90.

3771 
3772  integer, intent(in) :: npoints,N
3773 
3774  maxcheck_cll(n) = npoints
3775 

◆ setmaxcritpointsarray_cll()

subroutine collier_init::setmaxcritpointsarray_cll ( integer, dimension(nmax_cll), intent(in)  npoints)

Definition at line 3888 of file collier_init.F90.

3888 
3889  integer, intent(in) :: npoints(Nmax_cll)
3890 
3891  noutcritpointsmax_cll = npoints
3892 

◆ setmaxcritpointsdb_cll()

subroutine collier_init::setmaxcritpointsdb_cll ( integer, intent(in)  npoints)

Definition at line 3820 of file collier_init.F90.

3820 
3821  integer, intent(in) :: npoints
3822 
3823  noutcritpointsmaxdb_cll = npoints
3824 

◆ setmaxcritpointsn_cll()

subroutine collier_init::setmaxcritpointsn_cll ( integer, intent(in)  npoints,
integer, intent(in)  N 
)

Definition at line 3871 of file collier_init.F90.

3871 
3872  integer, intent(in) :: npoints,N
3873 
3874  noutcritpointsmax_cll(n) = npoints
3875 

◆ setmaxerrout_cll()

subroutine collier_init::setmaxerrout_cll ( integer, intent(in)  val)

Definition at line 2275 of file collier_init.F90.

2275 
2276  integer, intent(in) :: val
2277 
2278  maxerrout_cll = val
2279 

◆ setmaxerroutcoli_cll()

subroutine collier_init::setmaxerroutcoli_cll ( integer, intent(in)  val)

Definition at line 2346 of file collier_init.F90.

2346 
2347  integer, intent(in) :: val
2348 
2349  maxerroutcoli_cll = val
2350  call setmaxerrout_coli(val)
2351 

◆ setmaxerroutdd_cll()

subroutine collier_init::setmaxerroutdd_cll ( integer, intent(in)  val)

Definition at line 2383 of file collier_init.F90.

2383 
2384  integer, intent(in) :: val
2385 
2386  maxerroutdd_cll = val
2387  call ddsetcoutmax(val)
2388 

◆ setmaxinfout_cll()

subroutine collier_init::setmaxinfout_cll ( integer, intent(in)  val)

Definition at line 2258 of file collier_init.F90.

2258 
2259  integer, intent(in) :: val
2260 
2261  maxinfout_cll = val
2262 

◆ setminf2_cll()

subroutine collier_init::setminf2_cll ( integer, intent(in)  nminf,
double complex, dimension(nminf), intent(in)  minf2 
)

Definition at line 1026 of file collier_init.F90.

1026 
1027  integer, intent(in) :: nminf
1028  double complex, intent(in) :: minf2(nminf)
1029  integer :: i
1030 
1031  call clearminf2_cll
1032 
1033  do i=1,nminf
1034  call addminf2_cll(minf2(i))
1035  end do
1036 

◆ setmode_cll()

subroutine collier_init::setmode_cll ( integer, intent(in)  mode)

Definition at line 581 of file collier_init.F90.

581 
582  integer, intent(in) :: mode
583  integer :: ritmax
584  logical :: infwri
585 
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'
588  write(nerrout_cll,*) '1: use COLI-implementation'
589  write(nerrout_cll,*) '2: use DD-implementation'
590  write(nerrout_cll,*) '3: check COLI- against DD-implementation'
591  if (errorstop_cll.ge.-10) stop
592 
593  end if
594 
595  mode_cll = mode
596 
597  infwri = .false.
598  if (infoutlev_cll.ge.1) call infout_cll('SetMode_cll','mode_cll set to',infwri)
599 
600  select case (mode_cll)
601  case (1)
602  if (infwri) write(ninfout_cll,*) ' 1 --> use COLI implementation'
603 
604  if (nerroutcoli_cll.eq.closed_cll) then
605  call openerroutfilecoli_cll(trim(foldername_cll)//'/ErrOut.coli')
606  end if
607 
608  case (2)
609  if (infwri) write(ninfout_cll,*) ' 2 --> use DD implementation'
610 
611  if (nerroutdd_cll.eq.closed_cll) then
612  call openerroutfiledd_cll(trim(foldername_cll)//'/ErrOut.dd')
613  call getritmax_cll(ritmax)
614  call setritmax_cll(ritmax)
615  end if
616 
617  case (3)
618 
619  if (infwri) write(ninfout_cll,*) ' 3 --> check COLI against DD implementation'
620 
621  if (nerroutcoli_cll.eq.closed_cll) then
622  call openerroutfilecoli_cll(trim(foldername_cll)//'/ErrOut.coli')
623  end if
624 
625  if (nerroutdd_cll.eq.closed_cll) then
626  call openerroutfiledd_cll(trim(foldername_cll)//'/ErrOut.dd')
627  call getritmax_cll(ritmax)
628  call setritmax_cll(ritmax)
629  end if
630 
631  if (ncheckout_cll.eq.closed_cll) then
632  call opencheckoutfile_cll(trim(foldername_cll)//'/CheckOut.cll')
633  endif
634 
635  end select
636 

◆ setmuir2_cll()

subroutine collier_init::setmuir2_cll ( double precision, intent(in)  mu2)

Definition at line 721 of file collier_init.F90.

721 
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)
725  integer :: i
726  logical :: infwri
727  character(len=*),parameter :: fmt11 = "(A11,d25.18)"
728 
729  muir2_cll = mu2
730 
731  ! set muir2 in COLI
732  call setmuir2_coli(muir2_cll)
733 
734  ! set muir2 in DD
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, &
738  deltair1_dd,muir2_cll,xmx2_dd)
739 
740  infwri = .false.
741  if (infoutlev_cll.ge.2) call infout_cll('SetMuIR2_cll','IR scale set to',infwri)
742  if(infwri) write(ninfout_cll,fmt11) ' muIR2 =', muir2_cll
743 

◆ setmuuv2_cll()

subroutine collier_init::setmuuv2_cll ( double precision, intent(in)  mu2)

Definition at line 668 of file collier_init.F90.

668 
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)
672  integer :: i
673  logical :: infwri
674  character(len=*),parameter :: fmt11 = "(A11,d25.18)"
675 
676  muuv2_cll = mu2
677 
678  ! set muuv2 in COLI
679  call setmuuv2_coli(muuv2_cll)
680 
681  ! set muv2 in DD
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)
686 
687  infwri = .false.
688  if (infoutlev_cll.ge.2) call infout_cll('SetMuUV2_cll','UV scale set to',infwri)
689  if(infwri) write(ninfout_cll,fmt11) ' muUV2 =', muuv2_cll
690 
691 

◆ setncheckout_cll()

subroutine collier_init::setncheckout_cll ( integer, intent(in), optional  ncheckout)

Definition at line 3248 of file collier_init.F90.

3248 
3249  integer, intent(in), optional :: ncheckout
3250  logical :: qopened
3251 
3252  ! return if output into files is suppressed
3253  if (nofiles_cll) return
3254 
3255  if(ncheckout_cll.ne.closed_cll) then
3256  inquire(ncheckout_cll, opened=qopened)
3257  if(qopened.and.(ncheckout_cll.ne.stdout_cll)) close(unit=ncheckout_cll)
3258  end if
3259 
3260  if (present(ncheckout)) then
3261  if (len(trim(fname_checkout_cll)).eq.0) then
3262  call opencheckoutfile_cll(trim(foldername_cll)//'/CheckOut.cll',ncheckout)
3263  else if (ncheckout.ne.stdout_cll) then
3264  inquire(ncheckout, opened=qopened)
3265  if(qopened) close(unit=ncheckout)
3266  ncheckout_cll = ncheckout
3267  open(unit=ncheckout_cll,file=trim(fname_checkout_cll),form='formatted',access='sequential',position='append',status='old')
3268  end if
3269  else
3270  if (len(trim(fname_checkout_cll)).eq.0) then
3271  call opencheckoutfile_cll(trim(foldername_cll)//'/CheckOut.cll')
3272  else
3273  ncheckout_cll = findfreechannel_cll()
3274  open(unit=ncheckout_cll,file=trim(fname_checkout_cll),form='formatted',access='sequential',position='append',status='old')
3275  end if
3276  end if
3277 
3278 

◆ setncpoutcoli_cll()

subroutine collier_init::setncpoutcoli_cll ( integer, intent(in), optional  ncpout)

Definition at line 3308 of file collier_init.F90.

3308 
3309  integer, intent(in), optional :: ncpout
3310  logical :: qopened
3311 
3312  ! return if output into files is suppressed
3313  if (nofiles_cll) return
3314 
3315  if(ncpoutcoli_cll.ne.closed_cll) then
3316  inquire(ncpoutcoli_cll, opened=qopened)
3317  if(qopened.and.(ncpoutcoli_cll.ne.stdout_cll)) close(unit=ncpoutcoli_cll)
3318  end if
3319 
3320  if (present(ncpout)) then
3321  if (len(trim(fname_cpoutcoli_cll)).eq.0) then
3322  call opencritpointsoutfilecoli_cll(trim(foldername_cll)//'/CritPointsOut.coli',ncpout)
3323  else if (ncpout.ne.stdout_cll) then
3324  inquire(ncpout, opened=qopened)
3325  if(qopened) close(unit=ncpout)
3326  ncpoutcoli_cll = ncpout
3327  call setncpout_coli(ncpoutcoli_cll)
3328  open(unit=ncpoutcoli_cll,file=trim(fname_cpoutcoli_cll),form='formatted',access='sequential',position='append',status='old')
3329  end if
3330  else
3331  if (len(trim(fname_cpoutcoli_cll)).eq.0) then
3332  call opencritpointsoutfilecoli_cll(trim(foldername_cll)//'/CritPointsOut.coli')
3333  else
3334  ncpoutcoli_cll = findfreechannel_cll()
3335  call setncpout_coli(ncpoutcoli_cll)
3336  open(unit=ncpoutcoli_cll,file=trim(fname_cpoutcoli_cll),form='formatted',access='sequential',position='append',status='old')
3337  end if
3338  end if
3339 

◆ setncritpointsout2_cll()

subroutine collier_init::setncritpointsout2_cll ( integer, intent(in), optional  ncpout)

Definition at line 3491 of file collier_init.F90.

3491 
3492  integer, intent(in), optional :: ncpout
3493  logical :: qopened
3494 
3495  ! return if output into files is suppressed
3496  if (nofiles_cll) return
3497 
3498  if(ncpout2_cll.ne.closed_cll) then
3499  inquire(ncpout2_cll, opened=qopened)
3500  if(qopened.and.(ncpout2_cll.ne.stdout_cll)) close(unit=ncpout2_cll)
3501  end if
3502 
3503  if (present(ncpout)) then
3504  if (len(trim(fname_cpout2_cll)).eq.0) then
3505  call opencritpointsoutfile2_cll(trim(foldername_cll)//'/CritPointsOut2.cll',ncpout)
3506  else if (ncpout.ne.stdout_cll) then
3507  inquire(ncpout, opened=qopened)
3508  if(qopened) close(unit=ncpout)
3509  ncpout2_cll = ncpout
3510  open(unit=ncpout2_cll,file=trim(fname_cpout2_cll),form='formatted',access='sequential',position='append',status='old')
3511  end if
3512  else
3513  if (len(trim(fname_cpout2_cll)).eq.0) then
3514  call opencritpointsoutfile2_cll(trim(foldername_cll)//'/CritPointsOut2.cll')
3515  else
3516  ncpout2_cll = findfreechannel_cll()
3517  open(unit=ncpout2_cll,file=trim(fname_cpout2_cll),form='formatted',access='sequential',position='append',status='old')
3518  end if
3519  end if
3520 

◆ setncritpointsout_cll()

subroutine collier_init::setncritpointsout_cll ( integer, intent(in), optional  ncpout)

Definition at line 3432 of file collier_init.F90.

3432 
3433  integer, intent(in), optional :: ncpout
3434  logical :: qopened
3435 
3436  ! return if output into files is suppressed
3437  if (nofiles_cll) return
3438 
3439  if(ncpout_cll.ne.closed_cll) then
3440  inquire(ncpout_cll, opened=qopened)
3441  if(qopened.and.(ncpout_cll.ne.stdout_cll)) close(unit=ncpout_cll)
3442  end if
3443 
3444  if (present(ncpout)) then
3445  if (len(trim(fname_cpout_cll)).eq.0) then
3446  call opencritpointsoutfile_cll(trim(foldername_cll)//'/CritPointsOut.cll',ncpout)
3447  else if (ncpout.ne.stdout_cll) then
3448  inquire(ncpout, opened=qopened)
3449  if(qopened) close(unit=ncpout)
3450  ncpout_cll = ncpout
3451  open(unit=ncpout_cll,file=trim(fname_cpout_cll),form='formatted',access='sequential',position='append',status='old')
3452  end if
3453  else
3454  if (len(trim(fname_cpout_cll)).eq.0) then
3455  call opencritpointsoutfile_cll(trim(foldername_cll)//'/CritPointsOut.cll')
3456  else
3457  ncpout_cll = findfreechannel_cll()
3458  open(unit=ncpout_cll,file=trim(fname_cpout_cll),form='formatted',access='sequential',position='append',status='old')
3459  end if
3460  end if
3461 

◆ setnerrout_cll()

subroutine collier_init::setnerrout_cll ( integer, intent(in), optional  nerrout)

Definition at line 3054 of file collier_init.F90.

3054 
3055  integer, intent(in), optional :: nerrout
3056  logical :: qopened
3057 
3058  ! return if output into files is suppressed
3059  if (nofiles_cll) return
3060 
3061  if(nerrout_cll.ne.closed_cll) then
3062  inquire(nerrout_cll, opened=qopened)
3063  if(qopened.and.(nerrout_cll.ne.stdout_cll)) close(unit=nerrout_cll)
3064  end if
3065 
3066  if (present(nerrout)) then
3067  if (len(trim(fname_errout_cll)).eq.0) then
3068  call openerroutfile_cll(trim(foldername_cll)//'/ErrOut.cll',nerrout)
3069  else if (nerrout.ne.stdout_cll) then
3070  inquire(nerrout, opened=qopened)
3071  if(qopened) close(unit=nerrout)
3072  nerrout_cll = nerrout
3073  open(unit=nerrout_cll,file=trim(fname_errout_cll),form='formatted',access='sequential',position='append',status='old')
3074  end if
3075  else
3076  if (len(trim(fname_errout_cll)).eq.0) then
3077  call openerroutfile_cll(trim(foldername_cll)//'/ErrOut.cll')
3078  else
3079  nerrout_cll = findfreechannel_cll()
3080  open(unit=nerrout_cll,file=trim(fname_errout_cll),form='formatted',access='sequential',position='append',status='old')
3081  end if
3082  end if
3083 
3084 

◆ setnerroutcoli_cll()

subroutine collier_init::setnerroutcoli_cll ( integer, intent(in), optional  nerrout)

Definition at line 3114 of file collier_init.F90.

3114 
3115  integer, intent(in), optional :: nerrout
3116  logical :: qopened
3117 
3118  ! return if output into files is suppressed
3119  if (nofiles_cll) return
3120 
3121  if(nerroutcoli_cll.ne.closed_cll) then
3122  inquire(nerroutcoli_cll, opened=qopened)
3123  if(qopened.and.(nerroutcoli_cll.ne.stdout_cll)) close(unit=nerroutcoli_cll)
3124  end if
3125 
3126  if (present(nerrout)) then
3127  if (len(trim(fname_erroutcoli_cll)).eq.0) then
3128  call openerroutfilecoli_cll(trim(foldername_cll)//'/ErrOut.coli',nerrout)
3129  else if (nerrout.ne.stdout_cll) then
3130  inquire(nerrout, opened=qopened)
3131  if(qopened) close(unit=nerrout)
3132  nerroutcoli_cll = nerrout
3133  call setnerrout_coli(nerroutcoli_cll)
3134  open(unit=nerroutcoli_cll,file=trim(fname_erroutcoli_cll),form='formatted', &
3135  access='sequential',position='append',status='old')
3136  end if
3137  else
3138  if (len(trim(fname_erroutcoli_cll)).eq.0) then
3139  call openerroutfilecoli_cll(trim(foldername_cll)//'/ErrOut.cll')
3140  else
3141  nerroutcoli_cll = findfreechannel_cll()
3142  call setnerrout_coli(nerroutcoli_cll)
3143  open(unit=nerroutcoli_cll,file=trim(fname_erroutcoli_cll),form='formatted', &
3144  access='sequential',position='append',status='old')
3145  end if
3146  end if
3147 

◆ setnerroutdd_cll()

subroutine collier_init::setnerroutdd_cll ( integer, intent(in), optional  nerrout)

Definition at line 3177 of file collier_init.F90.

3177 
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
3181  logical :: qopened
3182 
3183  ! return if output into files is suppressed
3184  if (nofiles_cll) return
3185 
3186  if(nerroutdd_cll.ne.closed_cll) then
3187  inquire(nerroutdd_cll, opened=qopened)
3188  if(qopened.and.(nerroutdd_cll.ne.stdout_cll)) close(unit=nerroutdd_cll)
3189  end if
3190 
3191  if (present(nerrout)) then
3192  if (len(trim(fname_erroutdd_cll)).eq.0) then
3193  call openerroutfiledd_cll(trim(foldername_cll)//'/ErrOut.dd',nerrout)
3194  else if (nerrout.ne.stdout_cll) then
3195  inquire(nerrout, opened=qopened)
3196  if(qopened) close(unit=nerrout)
3197  nerroutdd_cll = 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)
3200  if (erroutlev_cll.gt.0) then
3201  call ddsetcout_on(.true.)
3202  end if
3203  open(unit=nerroutdd_cll,file=trim(fname_erroutdd_cll),form='formatted',access='sequential',position='append',status='old')
3204  end if
3205  else
3206  if (len(trim(fname_erroutdd_cll)).eq.0) then
3207  call openerroutfiledd_cll(trim(foldername_cll)//'/ErrOut.dd')
3208  else
3209  nerroutdd_cll = findfreechannel_cll()
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)
3212  if (erroutlev_cll.gt.0) then
3213  call ddsetcout_on(.true.)
3214  end if
3215  open(unit=nerroutdd_cll,file=trim(fname_erroutdd_cll),form='formatted',access='sequential',position='append',status='old')
3216  end if
3217  end if
3218 

◆ setninfout_cll()

subroutine collier_init::setninfout_cll ( integer, intent(in), optional  ninfout)

Definition at line 2930 of file collier_init.F90.

2930 
2931  integer, intent(in), optional :: ninfout
2932  logical :: qopened
2933 
2934  ! return if output into files is suppressed
2935  if (nofiles_cll) return
2936 
2937  if(ninfout_cll.ne.closed_cll) then
2938  inquire(ninfout_cll, opened=qopened)
2939  if(qopened.and.(ninfout_cll.ne.stdout_cll)) close(unit=ninfout_cll)
2940  end if
2941 
2942  if (present(ninfout)) then
2943  if (len(trim(fname_infout_cll)).eq.0) then
2944  call openinfoutfile_cll(trim(foldername_cll)//'/InfOut.cll',ninfout)
2945  else if (ninfout.ne.stdout_cll) then
2946  inquire(ninfout, opened=qopened)
2947  if(qopened) close(unit=ninfout)
2948  ninfout_cll = ninfout
2949  call setninfout_cache(ninfout_cll)
2950  open(unit=ninfout_cll,file=trim(fname_infout_cll),form='formatted',access='sequential',position='append',status='old')
2951  end if
2952  else
2953  if (len(trim(fname_infout_cll)).eq.0) then
2954  call openinfoutfile_cll(trim(foldername_cll)//'/InfOut.cll')
2955  else
2956  ninfout_cll = findfreechannel_cll()
2957  call setninfout_cache(ninfout_cll)
2958  open(unit=ninfout_cll,file=trim(fname_infout_cll),form='formatted',access='sequential',position='append',status='old')
2959  end if
2960  end if
2961 

◆ setninfoutcoli_cll()

subroutine collier_init::setninfoutcoli_cll ( integer, intent(in), optional  ninfout)

Definition at line 2991 of file collier_init.F90.

2991 
2992  integer, intent(in), optional :: ninfout
2993  logical :: qopened
2994 
2995  ! return if output into files is suppressed
2996  if (nofiles_cll) return
2997 
2998  if(ninfoutcoli_cll.ne.closed_cll) then
2999  inquire(ninfoutcoli_cll, opened=qopened)
3000  if(qopened.and.(ninfoutcoli_cll.ne.stdout_cll)) close(unit=ninfoutcoli_cll)
3001  end if
3002 
3003  if (present(ninfout)) then
3004  if (len(trim(fname_infoutcoli_cll)).eq.0) then
3005  call openinfoutfilecoli_cll(trim(foldername_cll)//'/InfOut.coli',ninfout)
3006  else if (ninfout.ne.stdout_cll) then
3007  inquire(ninfout, opened=qopened)
3008  if(qopened) close(unit=ninfout)
3009  ninfoutcoli_cll = ninfout
3010  call setninfout_coli(ninfoutcoli_cll)
3011  open(unit=ninfoutcoli_cll,file=trim(fname_infoutcoli_cll),form='formatted',access='sequential', &
3012  position='append',status='old')
3013  end if
3014  else
3015  if (len(trim(fname_infoutcoli_cll)).eq.0) then
3016  call openinfoutfilecoli_cll(trim(foldername_cll)//'/InfOut.coli')
3017  else
3018  ninfoutcoli_cll = findfreechannel_cll()
3019  call setninfout_coli(ninfoutcoli_cll)
3020  open(unit=ninfoutcoli_cll,file=trim(fname_infoutcoli_cll),form='formatted',access='sequential', &
3021  position='append',status='old')
3022  end if
3023  end if
3024 

◆ setnstatsoutcoli_cll()

subroutine collier_init::setnstatsoutcoli_cll ( integer, intent(in), optional  nstatsout)

Definition at line 3369 of file collier_init.F90.

3369 
3370  integer, intent(in), optional :: nstatsout
3371  logical :: qopened
3372 
3373  ! return if output into files is suppressed
3374  if (nofiles_cll) return
3375 
3376  if(nstatsoutcoli_cll.ne.closed_cll) then
3377  inquire(nstatsoutcoli_cll, opened=qopened)
3378  if(qopened.and.(nstatsoutcoli_cll.ne.stdout_cll)) close(unit=nstatsoutcoli_cll)
3379  end if
3380 
3381  if (present(nstatsout)) then
3382  if (len(trim(fname_statsoutcoli_cll)).eq.0) then
3383  call openstatisticsoutfilecoli_cll(trim(foldername_cll)//'/StatisticsOut.coli',nstatsout)
3384  else if (nstatsout.ne.stdout_cll) then
3385  inquire(nstatsout, opened=qopened)
3386  if(qopened) close(unit=nstatsout)
3387  nstatsoutcoli_cll = nstatsout
3388  call setnstatsout_coli(nstatsoutcoli_cll)
3389  open(unit=nstatsoutcoli_cll,file=trim(fname_statsoutcoli_cll),form='formatted',access='sequential', &
3390  position='append',status='old')
3391  end if
3392  else
3393  if (len(trim(fname_statsoutcoli_cll)).eq.0) then
3394  call openstatisticsoutfilecoli_cll(trim(foldername_cll)//'/StatisticsOut.coli')
3395  else
3396  nstatsoutcoli_cll = findfreechannel_cll()
3397  call setnstatsout_coli(nstatsoutcoli_cll)
3398  open(unit=nstatsoutcoli_cll,file=trim(fname_statsoutcoli_cll),form='formatted',access='sequential', &
3399  position='append',status='old')
3400  end if
3401  end if
3402 

◆ setoutputfolder_cll()

subroutine collier_init::setoutputfolder_cll ( character(len=*), intent(in)  fname)

Definition at line 3533 of file collier_init.F90.

3533 
3534  character(len=*), intent(in) :: fname
3535 
3536  foldername_cll = fname
3537  fname_errout_cll = ''
3538  fname_erroutcoli_cll = ''
3539  fname_erroutdd_cll = ''
3540  fname_infout_cll = ''
3541  fname_infoutcoli_cll = ''
3542  fname_checkout_cll = ''
3543  fname_cpoutcoli_cll = ''
3544  fname_cpout_cll = ''
3545  fname_cpout2_cll = ''
3546  fname_statsoutcoli_cll = ''
3547 
3548  call execute_command_line('mkdir -p '//trim(foldername_cll))
3549 
3550  call switchofffileoutput_cll
3551  call switchonfileoutput_cll
3552 

◆ setreqacc_cll()

subroutine collier_init::setreqacc_cll ( double precision  acc)

Definition at line 1823 of file collier_init.F90.

1823 
1824  double precision :: acc
1825  integer :: outlevel_dd,outchannel_dd,mode34_dd,mode5_dd,mode6_dd
1826  double precision :: cacc_dd,dacc_dd
1827  logical :: infwri
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)"
1832 
1833  reqacc_cll = acc
1834 
1835  call ddgetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,outchannel_dd)
1836  call ddsetmode(reqacc_cll,reqacc_cll,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,outchannel_dd)
1837  call ddsetaccthr(reqacc_cll)
1838  call setreqacc_coli(acc)
1839 
1840  if (infoutlev_cll.ge.2) then
1841  infwri = .false.
1842  if (infoutlev_cll.ge.2) call infout_cll('SetReqAcc_cll','target precision set to',infwri)
1843  if(infwri) write(ninfout_cll,fmt12) ' reqacc =', reqacc_cll
1844  end if
1845 
1846  if (infoutlev_cll.ge.1.and.critacc_cll.lt.reqacc_cll) then
1847  call infout_cll('SetReqAcc_cll','WARNING',infwri)
1848  if(infwri) write(ninfout_cll,fmt32) ' required precision reqacc =', reqacc_cll
1849  if(infwri) write(ninfout_cll,fmt48) ' larger than critical precision critacc =', critacc_cll
1850  end if
1851 
1852  if (infoutlev_cll.ge.1.and.checkacc_cll.lt.reqacc_cll) then
1853  call infout_cll('SetReqAcc_cll','WARNING',infwri)
1854  if(infwri) write(ninfout_cll,fmt32) ' required precision reqacc =', reqacc_cll
1855  if(infwri) write(ninfout_cll,fmt43) ' larger than check precision checkacc =', checkacc_cll
1856  end if
1857 

◆ setritmax_cll()

subroutine collier_init::setritmax_cll ( integer, intent(in)  ritmax)

Definition at line 2030 of file collier_init.F90.

2030 
2031  double precision :: acc
2032  integer, intent(in) :: ritmax
2033  integer :: ritmaxB,ritmaxC,ritmaxD
2034  logical :: infwri
2035  character(len=*),parameter :: fmt12 = "(A12,i3)"
2036 
2037  infwri = .false.
2038  if (infoutlev_cll.ge.2) call infout_cll('SetRitmax_cll','maximum rank for expansions set to',infwri)
2039  if(infwri) write(ninfout_cll,fmt12) ' ritmax =', ritmax
2040 
2041  if (ritmax.lt.max(7,rmax_cll+4-nmax_cll)) then
2042  ritmaxd = max(7,rmax_cll+4-nmax_cll)
2043  if (infoutlev_cll.ge.1) then
2044  if (rmax_cll+4-nmax_cll.gt.7) then
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)
2047  else
2048  call infout_cll('SetRitmax_cll','ritmax has to be at least 7 --> it is set to 7',infwri)
2049  end if
2050  end if
2051  else
2052  ritmaxd = ritmax
2053  end if
2054 
2055  ritmax_cll = ritmaxd
2056  ritmaxc = ritmaxd+2
2057  ritmaxb = ritmaxd+4
2058  call setncoefs(nmax_cll,ritmaxb)
2059  call setncoefsg(nmax_cll,ritmaxb)
2060 
2061  call setritmaxbcd_cll(ritmaxb,ritmaxc,ritmaxd)
2062 
2063  call initglobaldd_cll(nmax_cll,ritmax_cll)
2064  call getreqacc_cll(acc)
2065  call setreqacc_cll(acc)
2066  call getcritacc_cll(acc)
2067  call setcritacc_cll(acc)
2068 

◆ setritmaxbcd_cll()

subroutine collier_init::setritmaxbcd_cll ( integer, intent(in)  ritmax_B,
integer, intent(in)  ritmax_C,
integer, intent(in)  ritmax_D 
)

Definition at line 2081 of file collier_init.F90.

2081 
2082  integer, intent(in) :: ritmax_B, ritmax_C, ritmax_D
2083  logical :: infwri
2084 
2085  if (ritmax_d.lt.4) then
2086  rmaxd_cll = 4
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)
2088  else
2089  rmaxd_cll = ritmax_d
2090  end if
2091 
2092  if (ritmax_c.le.rmaxd_cll) then
2093  rmaxc_cll = rmaxd_cll+1
2094  if (infoutlev_cll.ge.1) call infout_cll('SetRitmaxBCD_cll', &
2095  'ritmax_C has to be larger than ritmax_C --> it is set to ritmax_D+1',infwri)
2096  else
2097  rmaxc_cll = ritmax_c
2098  end if
2099 
2100  if (ritmax_b.le.rmaxc_cll) then
2101  rmaxb_cll = rmaxc_cll+1
2102  if (infoutlev_cll.ge.1) call infout_cll('SetRitmaxBCD_cll', &
2103  'ritmax_B has to be larger than ritmax_C --> it is set to ritmax_C+1',infwri)
2104  else
2105  rmaxb_cll = ritmax_b
2106  end if
2107 
2108  ! set maximum rank in COLI
2109  call setritmax_coli(rmaxb_cll,rmaxc_cll,rmaxd_cll)
2110 
2111 

◆ settenred_cll()

subroutine collier_init::settenred_cll ( integer, intent(in)  tenred)

Definition at line 1246 of file collier_init.F90.

1246 
1247  integer, intent(in) :: tenred
1248  logical :: infwri,fla
1249 
1250  if (tenred.le.5) then
1251  call errout_cll('SetTenRed_cll','Ntenred cannot be chosen smaller than 6',fla,.true.)
1252  if (fla) then
1253  write(nerrout_cll,*) 'Ntenred is set to Ntenred = 6'
1254  end if
1255  tenred_cll = 6
1256  else
1257  tenred_cll = tenred
1258  end if
1259  infwri = .false.
1260  if (infoutlev_cll.ge.2) call infout_cll('SetTenRed_cll','direct tensor reduction switched on for',infwri)
1261  if(infwri) write(ninfout_cll,*) ' N >= ',tenred
1262 

◆ switchoffcalcuv_cll()

subroutine collier_init::switchoffcalcuv_cll

Definition at line 1197 of file collier_init.F90.

1197 
1198  calcuv_cll = .false.
1199  call switchoffcalcuv_ten()
1200 

◆ switchofferrstop_cll()

subroutine collier_init::switchofferrstop_cll

Definition at line 1329 of file collier_init.F90.

1329 
1330  errorstop_cll = -20
1331 

◆ switchofffileoutput_cll()

subroutine collier_init::switchofffileoutput_cll

Definition at line 1373 of file collier_init.F90.

1373  logical :: qopened
1374 
1375  if(nofiles_cll) return
1376 
1377  if(ninfout_cll.ne.closed_cll) then
1378  inquire(ninfout_cll, opened=qopened)
1379  if(qopened.and.ninfout_cll.ne.stdout_cll) close(unit=ninfout_cll)
1380  end if
1381 
1382  if(ninfoutcoli_cll.ne.closed_cll) then
1383  inquire(ninfoutcoli_cll, opened=qopened)
1384  if(qopened.and.ninfoutcoli_cll.ne.stdout_cll) close(unit=ninfoutcoli_cll)
1385  end if
1386 
1387  if(nerrout_cll.ne.closed_cll) then
1388  inquire(nerrout_cll, opened=qopened)
1389  if(qopened.and.nerrout_cll.ne.stdout_cll) close(unit=nerrout_cll)
1390  end if
1391 
1392  if(nerroutcoli_cll.ne.closed_cll) then
1393  inquire(nerroutcoli_cll, opened=qopened)
1394  if(qopened.and.nerroutcoli_cll.ne.stdout_cll) close(unit=nerroutcoli_cll)
1395  end if
1396 
1397  if(nerroutdd_cll.ne.closed_cll) then
1398  inquire(nerroutdd_cll, opened=qopened)
1399  if(qopened.and.nerroutdd_cll.ne.stdout_cll) close(unit=nerroutdd_cll)
1400  end if
1401 
1402  if(ncheckout_cll.ne.closed_cll) then
1403  inquire(ncheckout_cll, opened=qopened)
1404  if(qopened.and.ncheckout_cll.ne.stdout_cll) close(unit=ncheckout_cll)
1405  end if
1406 
1407  if(ncpout_cll.ne.closed_cll) then
1408  inquire(ncpout_cll, opened=qopened)
1409  if(qopened.and.ncpout_cll.ne.stdout_cll) close(unit=ncpout_cll)
1410  end if
1411 
1412  if(ncpout2_cll.ne.closed_cll) then
1413  inquire(ncpout2_cll, opened=qopened)
1414  if(qopened.and.ncpout2_cll.ne.stdout_cll) close(unit=ncpout2_cll)
1415  end if
1416 
1417  if(ncpoutcoli_cll.ne.closed_cll) then
1418  inquire(ncpoutcoli_cll, opened=qopened)
1419  if(qopened.and.ncpoutcoli_cll.ne.stdout_cll) close(unit=ncpoutcoli_cll)
1420  end if
1421 
1422  if(nstatsoutcoli_cll.ne.closed_cll) then
1423  inquire(nstatsoutcoli_cll, opened=qopened)
1424  if(qopened.and.nstatsoutcoli_cll.ne.stdout_cll) close(unit=nstatsoutcoli_cll)
1425  end if
1426 
1427 
1428  nerrout_cp_cll = nerrout_cll
1429  fname_errout_cp_cll = fname_errout_cll
1430  nerroutcoli_cp_cll = nerroutcoli_cll
1431  fname_erroutcoli_cp_cll = fname_erroutcoli_cll
1432  nerroutdd_cp_cll = nerroutdd_cll
1433  fname_erroutdd_cp_cll = fname_erroutdd_cll
1434  ninfout_cp_cll = ninfout_cll
1435  fname_infout_cp_cll = fname_infout_cll
1436  ninfoutcoli_cp_cll = ninfoutcoli_cll
1437  fname_infoutcoli_cp_cll = fname_infoutcoli_cll
1438  ncheckout_cp_cll = ncheckout_cll
1439  fname_checkout_cp_cll = fname_checkout_cll
1440  ncpoutcoli_cp_cll = ncpoutcoli_cll
1441  fname_cpoutcoli_cp_cll = fname_cpoutcoli_cll
1442  ncpout_cp_cll = ncpout_cll
1443  fname_cpout_cp_cll = fname_cpout_cll
1444  ncpout2_cp_cll = ncpout2_cll
1445  fname_cpout2_cp_cll = fname_cpout2_cll
1446  nstatsoutcoli_cp_cll = nstatsoutcoli_cll
1447  fname_statsoutcoli_cp_cll = fname_statsoutcoli_cll
1448 
1449  nofiles_cll = .true.
1450  call initoutchan_cll(.false.)
1451 
1452 

◆ switchoffirrational_cll()

subroutine collier_init::switchoffirrational_cll

Definition at line 1157 of file collier_init.F90.

1157 
1158  logical :: infwri
1159 
1160  ir_rational_terms_cll = .false.
1161  call unsetirratterms_coli
1162 
1163  if (infoutlev_cll.ge.2) call infout_cll('SwitchOffIRrational_cll','IR rational terms switched off in COLI',infwri)
1164 
1165 

◆ switchofftenred_cll()

subroutine collier_init::switchofftenred_cll

Definition at line 1293 of file collier_init.F90.

1293 
1294  logical :: infwri
1295 
1296  tenred_cll = never_tenred_cll
1297  infwri = .false.
1298  if (infoutlev_cll.ge.2) call infout_cll('SwitchOffTenRed_cll','direct tensor reduction switched off',infwri)
1299 

◆ switchoncalcuv_cll()

subroutine collier_init::switchoncalcuv_cll

Definition at line 1213 of file collier_init.F90.

1213 
1214  calcuv_cll = .true.
1215  call switchoncalcuv_ten()
1216 

◆ switchonfileoutput_cll()

subroutine collier_init::switchonfileoutput_cll

Definition at line 1464 of file collier_init.F90.

1464 
1465  logical :: qopened
1466 
1467  if(.not.nofiles_cll) return
1468  nofiles_cll = .false.
1469 
1470  fname_errout_cll = fname_errout_cp_cll
1471  if ((nerrout_cp_cll.ne.closed_cll).and.(nerrout_cp_cll.ne.stdout_cll)) then
1472  inquire(nerrout_cp_cll, opened=qopened)
1473  if (qopened) then
1474  call setnerrout_cll
1475  else
1476  call setnerrout_cll(nerrout_cp_cll)
1477  end if
1478  end if
1479 
1480  fname_erroutcoli_cll = fname_erroutcoli_cp_cll
1481  if ((nerroutcoli_cp_cll.ne.closed_cll).and.(nerroutcoli_cp_cll.ne.stdout_cll)) then
1482  inquire(nerroutcoli_cp_cll, opened=qopened)
1483  if (qopened) then
1484  call setnerroutcoli_cll
1485  else
1486  call setnerroutcoli_cll(nerroutcoli_cp_cll)
1487  end if
1488  end if
1489 
1490  fname_erroutdd_cll = fname_erroutdd_cp_cll
1491  if ((nerroutdd_cp_cll.ne.closed_cll).and.(nerroutdd_cp_cll.ne.stdout_cll)) then
1492  inquire(nerroutdd_cp_cll, opened=qopened)
1493  if (qopened) then
1494  call setnerroutdd_cll
1495  else
1496  call setnerroutdd_cll(nerroutdd_cp_cll)
1497  end if
1498  end if
1499 
1500  fname_infout_cll = fname_infout_cp_cll
1501  if ((ninfout_cp_cll.ne.closed_cll).and.(ninfout_cp_cll.ne.stdout_cll)) then
1502  inquire(ninfout_cp_cll, opened=qopened)
1503  if (qopened) then
1504  call setninfout_cll
1505  else
1506  call setninfout_cll(ninfout_cp_cll)
1507  end if
1508  end if
1509 
1510  fname_infoutcoli_cll = fname_infoutcoli_cp_cll
1511  if ((ninfoutcoli_cp_cll.ne.closed_cll).and.(ninfoutcoli_cp_cll.ne.stdout_cll)) then
1512  inquire(ninfoutcoli_cp_cll, opened=qopened)
1513  if (qopened) then
1514  call setninfoutcoli_cll
1515  else
1516  call setninfoutcoli_cll(ninfoutcoli_cp_cll)
1517  end if
1518  end if
1519 
1520  fname_checkout_cll = fname_checkout_cp_cll
1521  if ((ncheckout_cp_cll.ne.closed_cll).and.(ncheckout_cp_cll.ne.stdout_cll)) then
1522  inquire(ncheckout_cp_cll, opened=qopened)
1523  if (qopened) then
1524  call setncheckout_cll
1525  else
1526  call setncheckout_cll(ncheckout_cp_cll)
1527  end if
1528  end if
1529 
1530  fname_cpoutcoli_cll = fname_cpoutcoli_cp_cll
1531  if ((ncpoutcoli_cp_cll.ne.closed_cll).and.(ncpoutcoli_cp_cll.ne.stdout_cll)) then
1532  inquire(ncpoutcoli_cp_cll, opened=qopened)
1533  if (qopened) then
1534  call setncpoutcoli_cll
1535  else
1536  call setncpoutcoli_cll(ncpoutcoli_cp_cll)
1537  end if
1538  end if
1539 
1540  fname_cpout_cll = fname_cpout_cp_cll
1541  if ((ncpout_cp_cll.ne.closed_cll).and.(ncpout_cp_cll.ne.stdout_cll)) then
1542  inquire(ncpout_cp_cll, opened=qopened)
1543  if (qopened) then
1544  call setncritpointsout_cll
1545  else
1546  call setncritpointsout_cll(ncpout_cp_cll)
1547  end if
1548  end if
1549 
1550  fname_cpout2_cll = fname_cpout2_cp_cll
1551  if ((ncpout2_cp_cll.ne.closed_cll).and.(ncpout2_cp_cll.ne.stdout_cll)) then
1552  inquire(ncpout2_cp_cll, opened=qopened)
1553  if (qopened) then
1554  call setncritpointsout2_cll
1555  else
1556  call setncritpointsout2_cll(ncpout2_cp_cll)
1557  end if
1558  end if
1559 
1560  fname_statsoutcoli_cll = fname_statsoutcoli_cp_cll
1561  if ((nstatsoutcoli_cp_cll.ne.closed_cll).and.(nstatsoutcoli_cp_cll.ne.stdout_cll)) then
1562  inquire(nstatsoutcoli_cp_cll, opened=qopened)
1563  if (qopened) then
1564  call setnstatsoutcoli_cll
1565  else
1566  call setnstatsoutcoli_cll(nstatsoutcoli_cp_cll)
1567  end if
1568  end if
1569 
1570 

◆ switchonirrational_cll()

subroutine collier_init::switchonirrational_cll

Definition at line 1178 of file collier_init.F90.

1178 
1179  ir_rational_terms_cll = .true.
1180  call setirratterms_coli
1181  if (infoutlev_cll.ge.2) then
1182  write(ninfout_cll,*) 'COLLIER: IR rational terms switched on'
1183  end if
1184 

◆ switchontenred_cll()

subroutine collier_init::switchontenred_cll

Definition at line 1275 of file collier_init.F90.

1275 
1276  logical :: infwri
1277 
1278  tenred_cll = 6
1279  if (infoutlev_cll.ge.2) call infout_cll('SwitchOnTenRed_cll','direct tensor reduction switched on for N >= 6',infwri)
1280 

◆ writeintro_cll()

subroutine collier_init::writeintro_cll ( integer, intent(in)  un)

Definition at line 4618 of file collier_init.F90.

4618 
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=*) ' * * '
4629 ! write(unit=un,fmt=*) ' * version 1.1.x * '
4630  write(unit=un,fmt=*) ' * version '//version_cll//' * '
4631  write(unit=un,fmt=*) ' * * '
4632  write(unit=un,fmt=*) ' ******************************************* '
4633  write(unit=un,fmt=*) ' '
4634 

Variable Documentation

◆ foldername_cll

character(len=80) collier_init::foldername_cll

Definition at line 46 of file collier_init.F90.

46  character(len=80) :: foldername_cll
init_dd_global
subroutine init_dd_global(nmax_in, ritmax_in)
Definition: DD_global.F90:85