JHUGen MELA  JHUGen v7.5.6, MELA v2.4.2
Matrix element calculations as used in JHUGen.
collier_init.F90
Go to the documentation of this file.
1 !!
2 !! File collier_init.F90 is part of COLLIER
3 !! - A Complex One-Loop Library In Extended Regularizations
4 !!
5 !! Copyright (C) 2015, 2016 Ansgar Denner, Stefan Dittmaier, Lars Hofer
6 !!
7 !! COLLIER is licenced under the GNU GPL version 3, see COPYING for details.
8 !!
9 
10 !#define CritPointsCOLI
11 
12 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
13 !
14 ! *************************
15 ! * module collier_init *
16 ! * by Lars Hofer *
17 ! *************************
18 !
19 ! functions and subroutines:
20 !
21 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
22 
23 
24 
25 
27 
28 
29  use collier_global
30  use collier_aux
31  use combinatorics
32  use cache
33  use coli_aux2
34  use coli_stat
35  use inittensors
36 
37  implicit none
38  interface setmaxcheck_cll
39  module procedure setmaxcheckn_cll,setmaxcheckarray_cll
40  end interface setmaxcheck_cll
43  end interface setmaxcritpoints_cll
44 
45 
46  character(len=80) :: foldername_cll
47 ! logical :: qopened_critcoli,qopened_crit,qopened_crit2,qopened_statscoli
48 
49 contains
50 
51 
52 
53  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
54  ! subroutine Init_cll(Nmax,rmax,folder_name,noreset)
55  !
56  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
57 
58  subroutine init_cll(Nmax,rmax,folder_name,noreset)
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
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
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 
396  end subroutine init_cll
397 
398 
399 
400 
401  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
402  ! subroutine Reset_cll
403  !
404  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
405 
406  subroutine reset_cll
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 
483  end subroutine reset_cll
484 
485 
486  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
487  ! subroutine InitEvent_cll(Ncache)
488  !
489  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
490 
491  subroutine initevent_cll(Ncache)
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
505  acceventcnt(1) = acceventcnt(1) + 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
515 
516  end subroutine initevent_cll
517 
518 
519 
520 
521 
522  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
523  ! subroutine GetVersionNumber_cll(version)
524  !
525  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
526 
527  subroutine getversionnumber_cll(version)
528 
529  character(len=5) :: version
530 
531  version = version_cll
532 
533  end subroutine getversionnumber_cll
534 
535 
536 
537 
538 
539  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
540  ! subroutine InitEventCnt_cll()
541  !
542  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
543 
544  subroutine initeventcnt_cll()
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 
552  end subroutine initeventcnt_cll
553 
554 
555 
556 
557 
558  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
559  ! subroutine GetEventCnt_cll(event)
560  !
561  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
562 
563  subroutine geteventcnt_cll(event)
564 
565  integer :: event
566 
567  event = eventcnt_cll
568 
569  end subroutine geteventcnt_cll
570 
571 
572 
573 
574 
575  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
576  ! subroutine SetMode_cll(mode)
577  !
578  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
579 
580  subroutine setmode_cll(mode)
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 
637  end subroutine setmode_cll
638 
639 
640 
641 
642 
643 
644  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
645  ! subroutine GetMode_cll(mode)
646  !
647  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
648 
649  subroutine getmode_cll(mode)
650 
651  integer, intent(out) :: mode
652 
653  mode = mode_cll
654 
655  end subroutine getmode_cll
656 
657 
658 
659 
660 
661 
662  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
663  ! subroutine SetMuUV2_cll(mu2)
664  !
665  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
666 
667  subroutine setmuuv2_cll(mu2)
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 
692  end subroutine setmuuv2_cll
693 
694 
695 
696 
697 
698  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
699  ! subroutine GetMuUV2_cll(mu2)
700  !
701  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
702 
703  subroutine getmuuv2_cll(mu2)
704 
705  double precision, intent(out) :: mu2
706 
707  mu2 = muuv2_cll
708 
709  end subroutine getmuuv2_cll
710 
711 
712 
713 
714 
715  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
716  ! subroutine SetMuIR2_cll(mu2)
717  !
718  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
719 
720  subroutine setmuir2_cll(mu2)
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 
744  end subroutine setmuir2_cll
745 
746 
747 
748 
749 
750  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
751  ! subroutine GetMuIR2_cll(mu2)
752  !
753  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
754 
755  subroutine getmuir2_cll(mu2)
756 
757  double precision, intent(out) :: mu2
758 
759  mu2 = muir2_cll
760 
761  end subroutine getmuir2_cll
762 
763 
764 
765 
766 
767 
768  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
769  ! subroutine SetDeltaUV_cll(delta)
770  !
771  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
772 
773  subroutine setdeltauv_cll(delta)
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 
808  end subroutine setdeltauv_cll
809 
810 
811 
812 
813 
814  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
815  ! subroutine GetDeltaUV_cll(delta)
816  !
817  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
818 
819  subroutine getdeltauv_cll(delta)
820 
821  double precision, intent(out) :: delta
822 
823  delta = deltauv_cll
824 
825  end subroutine getdeltauv_cll
826 
827 
828 
829 
830 
831 
832  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
833  ! subroutine SetDeltaIR_cll(delta1,delta2)
834  !
835  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
836 
837  subroutine setdeltair_cll(delta1,delta2)
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 
876  end subroutine setdeltair_cll
877 
878 
879 
880 
881 
882  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
883  ! subroutine GetDeltaIR_cll(delta1,delta2)
884  !
885  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
886 
887  subroutine getdeltair_cll(delta1,delta2)
888 
889  double precision, intent(out) :: delta1,delta2
890 
891  delta1 = deltair1_cll
892  delta2 = deltair2_cll
893 
894  end subroutine getdeltair_cll
895 
896 
897 
898 
899 
900 
901  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
902  ! subroutine AddMinf2_cll(m2)
903  !
904  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
905 
906  subroutine addminf2_cll(m2)
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 
975  end subroutine addminf2_cll
976 
977 
978 
979 
980 
981  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
982  ! subroutine clearminf2_cll
983  !
984  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
985 
986  subroutine clearminf2_cll
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 
1013  end subroutine clearminf2_cll
1014 
1015 
1016 
1017 
1018 
1019 
1020  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1021  ! subroutine Setminf2_cll(nminf,minf2)
1022  !
1023  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1024 
1025  subroutine setminf2_cll(nminf,minf2)
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 
1037  end subroutine setminf2_cll
1038 
1039 
1040 
1041 
1042 
1043  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1044  ! subroutine GetNminf_cll(nminf)
1045  !
1046  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1047 
1048  subroutine getnminf_cll(nminf)
1050  integer, intent(out) :: nminf
1051 
1052  nminf = nminf_cll
1053 
1054  end subroutine getnminf_cll
1055 
1056 
1057 
1058 
1059 
1060  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1061  ! subroutine Getminf2_cll(minf2)
1062  !
1063  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1064 
1065  subroutine getminf2_cll(minf2)
1067  double complex, intent(out) :: minf2(nminf_cll)
1068 
1069  minf2 = minf2_cll
1070 
1071  end subroutine getminf2_cll
1072 
1073 
1074 
1075 
1076 
1077  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1078  ! function Getminf2DD_cll(m2)
1079  !
1080  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1081 
1082  function getminf2dd_cll(m2) result(minf2DD)
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 
1095  end function getminf2dd_cll
1096 
1097 
1098 
1099 
1100 
1101  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1102  ! function GetNc_cll(N,r)
1103  !
1104  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1105 
1106  function getnc_cll(N,r) result(Nc)
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 
1120  end function getnc_cll
1121 
1122 
1123 
1124 
1125 
1126  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1127  ! function GetNt_cll(r)
1128  !
1129  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1130 
1131  function getnt_cll(r) result(Nt)
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 
1145  end function getnt_cll
1146 
1147 
1148 
1149 
1150 
1151  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1152  ! subroutine SwitchOffIRrational_cll()
1153  !
1154  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1155 
1156  subroutine switchoffirrational_cll()
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 
1166  end subroutine switchoffirrational_cll
1167 
1168 
1169 
1170 
1171 
1172  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1173  ! subroutine SwitchOnIRrational_cll()
1174  !
1175  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1176 
1177  subroutine switchonirrational_cll()
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 
1185  end subroutine switchonirrational_cll
1186 
1187 
1188 
1189 
1190 
1191  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1192  ! subroutine SwitchOffCalcUV_cll()
1193  !
1194  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1195 
1196  subroutine switchoffcalcuv_cll()
1198  calcuv_cll = .false.
1199  call switchoffcalcuv_ten()
1200 
1201  end subroutine switchoffcalcuv_cll
1202 
1203 
1204 
1205 
1206 
1207  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1208  ! subroutine SwitchOnCalcUV_cll()
1209  !
1210  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1211 
1212  subroutine switchoncalcuv_cll()
1214  calcuv_cll = .true.
1215  call switchoncalcuv_ten()
1216 
1217  end subroutine switchoncalcuv_cll
1218 
1219 
1220 
1221 
1222 
1223  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1224  ! subroutine GetCalcUV_cll()
1225  !
1226  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1227 
1228  subroutine getcalcuv_cll(CalcUV)
1230  logical, intent(out) :: CalcUV
1231 
1232  calcuv = calcuv_cll
1233 
1234  end subroutine getcalcuv_cll
1235 
1236 
1237 
1238 
1239 
1240  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1241  ! subroutine SetTenRed_cll(tenred)
1242  !
1243  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1244 
1245  subroutine settenred_cll(tenred)
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 
1263  end subroutine settenred_cll
1264 
1265 
1266 
1267 
1268 
1269  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1270  ! subroutine SwitchOnTenRed_cll()
1271  !
1272  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1273 
1274  subroutine switchontenred_cll()
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 
1281  end subroutine switchontenred_cll
1282 
1283 
1284 
1285 
1286 
1287  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1288  ! subroutine SwitchOffTenRed_cll()
1289  !
1290  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1291 
1292  subroutine switchofftenred_cll()
1294  logical :: infwri
1295 
1297  infwri = .false.
1298  if (infoutlev_cll.ge.2) call infout_cll('SwitchOffTenRed_cll','direct tensor reduction switched off',infwri)
1299 
1300  end subroutine switchofftenred_cll
1301 
1302 
1303 
1304 
1305 
1306  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1307  ! subroutine GetTenRed_cll()
1308  !
1309  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1310 
1311  subroutine gettenred_cll(tenred)
1313  integer, intent(out) :: tenred
1314 
1315  tenred = tenred_cll
1316 
1317  end subroutine gettenred_cll
1318 
1319 
1320 
1321 
1322 
1323  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1324  ! subroutine SwitchOffErrStop_cll()
1325  !
1326  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1327 
1328  subroutine switchofferrstop_cll()
1330  errorstop_cll = -20
1331 
1332  end subroutine switchofferrstop_cll
1333 
1334 
1335 
1336 
1337 
1338  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1339  ! subroutine SetErrStop_cll(errstop)
1340  !
1341  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1342 
1343  subroutine seterrstop_cll(errstop)
1344  integer :: errstop
1345 
1346  errorstop_cll = errstop
1347 
1348  end subroutine seterrstop_cll
1349 
1350 
1351 
1352  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1353  ! subroutine GetErrStop_cll(errstop)
1354  !
1355  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1356 
1357  subroutine geterrstop_cll(errstop)
1358  integer :: errstop
1359 
1360  errstop = errorstop_cll
1361 
1362  end subroutine geterrstop_cll
1363 
1364 
1365 
1366 
1367  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1368  ! subroutine SwitchOffFileOutput_cll
1369  !
1370  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1371 
1372  subroutine switchofffileoutput_cll
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 
1448 
1449  nofiles_cll = .true.
1450  call initoutchan_cll(.false.)
1451 
1452 
1453  end subroutine switchofffileoutput_cll
1454 
1455 
1456 
1457 
1458  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1459  ! subroutine SwitchOnFileOutput_cll
1460  !
1461  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1462 
1463  subroutine switchonfileoutput_cll
1465  logical :: qopened
1466 
1467  if(.not.nofiles_cll) return
1468  nofiles_cll = .false.
1469 
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
1477  end if
1478  end if
1479 
1482  inquire(nerroutcoli_cp_cll, opened=qopened)
1483  if (qopened) then
1484  call setnerroutcoli_cll
1485  else
1487  end if
1488  end if
1489 
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
1497  end if
1498  end if
1499 
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
1507  end if
1508  end if
1509 
1512  inquire(ninfoutcoli_cp_cll, opened=qopened)
1513  if (qopened) then
1514  call setninfoutcoli_cll
1515  else
1517  end if
1518  end if
1519 
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
1527  end if
1528  end if
1529 
1532  inquire(ncpoutcoli_cp_cll, opened=qopened)
1533  if (qopened) then
1534  call setncpoutcoli_cll
1535  else
1537  end if
1538  end if
1539 
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
1545  else
1547  end if
1548  end if
1549 
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
1555  else
1557  end if
1558  end if
1559 
1562  inquire(nstatsoutcoli_cp_cll, opened=qopened)
1563  if (qopened) then
1565  else
1567  end if
1568  end if
1569 
1570 
1571  end subroutine switchonfileoutput_cll
1572 
1573 
1574 
1575 
1576 
1577  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1578  ! subroutine SetInfoutlev_cll(infoutlev)
1579  !
1580  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1581 
1582  subroutine setinfoutlev_cll(infoutlev)
1584  integer, intent(in) :: infoutlev
1585 
1586  infoutlev_cll = infoutlev
1587  call setinfoutlev_cache(infoutlev)
1588 
1589  end subroutine setinfoutlev_cll
1590 
1591 
1592 
1593 
1594 
1595  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1596  ! subroutine GetInfoutlev_cll(infoutlev)
1597  !
1598  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1599 
1600  subroutine getinfoutlev_cll(infoutlev)
1602  integer, intent(out) :: infoutlev
1603 
1604  infoutlev = infoutlev_cll
1605 
1606  end subroutine getinfoutlev_cll
1607 
1608 
1609 
1610 
1611 
1612  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1613  ! subroutine SetErroutlev_cll(erroutlev)
1614  !
1615  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1616 
1617  subroutine seterroutlev_cll(erroutlev)
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 
1633  end subroutine seterroutlev_cll
1634 
1635 
1636 
1637 
1638 
1639  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1640  ! subroutine GetErroutlev_cll(erroutlev)
1641  !
1642  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1643 
1644  subroutine geterroutlev_cll(erroutlev)
1646  integer, intent(out) :: erroutlev
1647 
1648  erroutlev = erroutlev_cll
1649 
1650  end subroutine geterroutlev_cll
1651 
1652 
1653 
1654 
1655 
1656  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1657  ! subroutine InitGlobalDD_cll
1658  !
1659  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1660 
1661  subroutine initglobaldd_cll(nmax_cll,ritmax_cll)
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 
1683  end subroutine initglobaldd_cll
1684 
1685 
1686 
1687 
1688 
1689  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1690  ! subroutine GetCPUprec_cll
1691  !
1692  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1693 
1694  subroutine getcpuprec_cll
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 
1716  end subroutine getcpuprec_cll
1717 
1718 
1719 
1720 
1721 
1722  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1723  ! subroutine SetAccuracy(acc0,acc1,acc2)
1724  !
1725  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1726 
1727  subroutine setaccuracy_cll(acc0,acc1,acc2)
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 
1811  end subroutine setaccuracy_cll
1812 
1813 
1814 
1815 
1816 
1817  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1818  ! subroutine SetReqAcc_cll(acc)
1819  !
1820  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1821 
1822  subroutine setreqacc_cll(acc)
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 
1858  end subroutine setreqacc_cll
1859 
1860 
1861 
1862 
1863 
1864  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1865  ! subroutine GetReqAcc_cll(acc)
1866  !
1867  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1868 
1869  subroutine getreqacc_cll(acc)
1871  double precision, intent(out) :: acc
1872 
1873  acc = reqacc_cll
1874 
1875  end subroutine getreqacc_cll
1876 
1877 
1878 
1879 
1880  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1881  ! subroutine SetCritAcc_cll(acc)
1882  !
1883  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1884 
1885  subroutine setcritacc_cll(acc)
1887  double precision :: acc
1888  logical :: qopened,infwri
1889  character(len=*),parameter :: fmt93 = "(A13,Es17.10)"
1890  character(len=*),parameter :: fmt94 = "(A33,Es17.10)"
1891  character(len=*),parameter :: fmt95 = "(A45,Es17.10)"
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 
1941  end subroutine setcritacc_cll
1942 
1943 
1944 
1945 
1946 
1947  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1948  ! subroutine GetCritAcc_cll(acc)
1949  !
1950  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1951 
1952  subroutine getcritacc_cll(acc)
1954  double precision, intent(out) :: acc
1955 
1956  acc = critacc_cll
1957 
1958  end subroutine getcritacc_cll
1959 
1960 
1961 
1962 
1963 
1964  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1965  ! subroutine SetCheckAcc(acc)
1966  !
1967  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1968 
1969  subroutine setcheckacc_cll(acc)
1971  double precision :: acc
1972  logical :: qopened,infwri
1973  character(len=*),parameter :: fmt14 = "(A14,Es17.10)"
1974  character(len=*),parameter :: fmt30 = "(A31,Es17.10)"
1975  character(len=*),parameter :: fmt45 = "(A45,Es17.10)"
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 
2001  end subroutine setcheckacc_cll
2002 
2003 
2004 
2005 
2006 
2007  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2008  ! subroutine GetCheckAcc_cll(acc)
2009  !
2010  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2011 
2012  subroutine getcheckacc_cll(acc)
2014  double precision, intent(out) :: acc
2015 
2016  acc = checkacc_cll
2017 
2018  end subroutine getcheckacc_cll
2019 
2020 
2021 
2022 
2023 
2024  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2025  ! subroutine SetRitmax_cll(ritmax)
2026  !
2027  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2028 
2029  subroutine setritmax_cll(ritmax)
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 
2064  call getreqacc_cll(acc)
2065  call setreqacc_cll(acc)
2066  call getcritacc_cll(acc)
2067  call setcritacc_cll(acc)
2068 
2069  end subroutine setritmax_cll
2070 
2071 
2072 
2073 
2074 
2075  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2076  ! subroutine SetRitmaxBCD_cll(ritmax_B,ritmax_C,ritmax_D)
2077  !
2078  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2079 
2080  subroutine setritmaxbcd_cll(ritmax_B,ritmax_C,ritmax_D)
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
2110 
2111 
2112  end subroutine setritmaxbcd_cll
2113 
2114 
2115 
2116 
2117 
2118  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2119  ! subroutine GetRitmax_cll(ritmax)
2120  !
2121  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2122 
2123  subroutine getritmax_cll(ritmax)
2125  integer, intent(out) :: ritmax
2126 
2127  ritmax = ritmax_cll
2128 
2129  end subroutine getritmax_cll
2130 
2131 
2132 
2133 
2134 
2135  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2136  ! subroutine InitErrFlag_cll()
2137  !
2138  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2139 
2140  subroutine initerrflag_cll()
2142  call seterrflag_cll(0)
2143  call seterrflag_coli(0)
2144  call seterrflag_dd(0)
2145 
2146  end subroutine initerrflag_cll
2147 
2148 
2149 
2150 
2151 
2152  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2153  ! subroutine SetErrFlag_cll(val)
2154  !
2155  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2156 
2157  subroutine seterrflag_cll(val)
2159  integer, intent(in) :: val
2160 
2161  errflag_cll = val
2162 ! call SetErrFlag_coli(val)
2163 ! call SetErrFlag_dd(val)
2164 
2165  end subroutine seterrflag_cll
2166 
2167 
2168 
2169 
2170 
2171  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2172  ! subroutine GetErrFlag_cll(val)
2173  !
2174  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2175 
2176  subroutine geterrflag_cll(val)
2178  integer, intent(out) :: val
2179 
2180  val = errflag_cll
2181 
2182  end subroutine geterrflag_cll
2183 
2184 
2185 
2186 
2187 
2188  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2189  ! subroutine PropagateErrFlag_cll()
2190  !
2191  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2192 
2193  subroutine propagateerrflag_cll()
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 
2246  end subroutine propagateerrflag_cll
2247 
2248 
2249 
2250 
2251 
2252  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2253  ! subroutine SetMaxInfOut_cll(val)
2254  !
2255  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2256 
2257  subroutine setmaxinfout_cll(val)
2259  integer, intent(in) :: val
2260 
2261  maxinfout_cll = val
2262 
2263  end subroutine setmaxinfout_cll
2264 
2265 
2266 
2267 
2268 
2269  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2270  ! subroutine SetMaxErrOut_cll(val)
2271  !
2272  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2273 
2274  subroutine setmaxerrout_cll(val)
2276  integer, intent(in) :: val
2277 
2278  maxerrout_cll = val
2279 
2280  end subroutine setmaxerrout_cll
2281 
2282 
2283 
2284 
2285 
2286  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2287  ! subroutine InitInfCnt_cll(val)
2288  !
2289  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2290 
2291  subroutine initinfcnt_cll(val)
2293  integer, intent(in) :: val
2294 
2295  infcnt_cll = val
2296 
2297  end subroutine initinfcnt_cll
2298 
2299 
2300 
2301 
2302 
2303  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2304  ! subroutine InitErrCnt_cll(val)
2305  !
2306  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2307 
2308  subroutine initerrcnt_cll(val)
2310  integer, intent(in) :: val
2311 
2312  errcnt_cll = val
2313 
2314  end subroutine initerrcnt_cll
2315 
2316 
2317 
2318 
2319 
2320  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2321  ! subroutine InitErrCntCOLI_cll()
2322  !
2323  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2324 
2325  subroutine initerrcntcoli_cll()
2327 ! integer, intent(in) :: val
2328  integer :: val
2329 
2330  val = 0
2331  errcntcoli_cll = val
2332  call initerrcnt_coli(val)
2333 
2334  end subroutine initerrcntcoli_cll
2335 
2336 
2337 
2338 
2339 
2340  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2341  ! subroutine SetMaxErrOutCOLI_cll(val)
2342  !
2343  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2344 
2345  subroutine setmaxerroutcoli_cll(val)
2347  integer, intent(in) :: val
2348 
2349  maxerroutcoli_cll = val
2350  call setmaxerrout_coli(val)
2351 
2352  end subroutine setmaxerroutcoli_cll
2353 
2354 
2355 
2356 
2357 
2358  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2359  ! subroutine InitErrCntDD_cll()
2360  !
2361  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2362 
2363  subroutine initerrcntdd_cll()
2365 ! integer, intent(in) :: val
2366 
2367 ! ErrCntDD_cll = val
2368  errcntdd_cll = 0
2369  call ddresetcout()
2370 
2371  end subroutine initerrcntdd_cll
2372 
2373 
2374 
2375 
2376 
2377  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2378  ! subroutine SetMaxErrOutDD_cll(val)
2379  !
2380  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2381 
2382  subroutine setmaxerroutdd_cll(val)
2384  integer, intent(in) :: val
2385 
2386  maxerroutdd_cll = val
2387  call ddsetcoutmax(val)
2388 
2389  end subroutine setmaxerroutdd_cll
2390 
2391 
2392 
2393 
2394 
2395  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2396  ! subroutine InitAccFlag_cll()
2397  !
2398  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2399 
2400  subroutine initaccflag_cll()
2402  call setaccflag_cll(0)
2403 
2404  end subroutine initaccflag_cll
2405 
2406 
2407 
2408 
2409 
2410  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2411  ! subroutine SetAccFlag_cll(val)
2412  !
2413  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2414 
2415  subroutine setaccflag_cll(val)
2417  integer, intent(in) :: val
2418 
2419  accflag_cll = val
2420 
2421  end subroutine setaccflag_cll
2422 
2423 
2424 
2425 
2426 
2427  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2428  ! subroutine GetAccFlag_cll(val)
2429  !
2430  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2431 
2432  subroutine getaccflag_cll(val)
2434  integer, intent(out) :: val
2435 
2436  val = accflag_cll
2437 
2438  end subroutine getaccflag_cll
2439 
2440 
2441 
2442 
2443 
2444  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2445  ! subroutine PropagateAccFlag_cll(RelErrs,rmax)
2446  !
2447  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2448 
2449  subroutine propagateaccflag_cll(RelErrs,rmax)
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 
2465  end subroutine propagateaccflag_cll
2466 
2467 
2468 
2469 
2470 
2471  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2472  ! subroutine SetInfoutlev_coli(infoutlev)
2473  !
2474  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2475 
2476  subroutine setinfoutlevcoli_cll(infoutlev)
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 
2487  end subroutine setinfoutlevcoli_cll
2488 
2489 
2490 
2491 
2492 
2493  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2494  ! subroutine InitCritPointsCntCOLI_cll(val)
2495  !
2496  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2497 
2498  subroutine initcritpointscntcoli_cll(val)
2500  integer, intent(in) :: val
2501 
2502  critpointscntcoli_cll = val
2503  call initcritpointscnt_coli(val)
2504 
2505  end subroutine initcritpointscntcoli_cll
2506 
2507 
2508 
2509 
2510 
2511  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2512  ! subroutine InitPointsCnt_cll(noreset)
2513  !
2514  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2515 
2516  subroutine initpointscnt_cll(noreset)
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
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
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
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
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 
2755  end subroutine initpointscnt_cll
2756 
2757 
2758 
2759 
2760  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2761  ! subroutine InitMonitoring_cll
2762  !
2763  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2764 
2765  subroutine initmonitoring_cll()
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()
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
2794  call opencritpointsoutfilecoli_cll(trim(foldername_cll)//'/CritPointsOut.coli')
2795 #endif
2796 
2797  end subroutine initmonitoring_cll
2798 
2799 
2800 
2801 
2802 
2803  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2804  ! subroutine InitOutChan_cll(init_stdout)
2805  !
2806  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2807 
2808  subroutine initoutchan_cll(init_stdout)
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
2823  fname_errout_cll = ''
2824  end if
2825 
2826  if(stdflag.or.(nerroutcoli_cll.ne.stdout_cll)) then
2830  end if
2831 
2832  if(stdflag.or.(nerroutdd_cll.ne.stdout_cll)) then
2834  call ddgetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,outchannel_dd)
2835  call ddsetmode(cacc_dd,dacc_dd,mode34_dd,mode5_dd,mode6_dd,outlevel_dd,nerroutdd_cll)
2836  call ddsetcout_on(.false.)
2837  fname_erroutdd_cll = ''
2838  end if
2839 
2840  if(stdflag.or.(ninfout_cll.ne.stdout_cll)) then
2842  fname_infout_cll = ''
2843  end if
2844 
2845  if(stdflag.or.(ninfoutcoli_cll.ne.stdout_cll)) then
2849  end if
2850 
2851  if(stdflag.or.(ncheckout_cll.ne.stdout_cll)) then
2853  fname_checkout_cll = ''
2854  end if
2855 
2856  if(stdflag.or.(ncpoutcoli_cll.ne.stdout_cll)) then
2859  fname_cpoutcoli_cll = ''
2860  end if
2861 
2862  if(stdflag.or.(ncpout_cll.ne.stdout_cll)) then
2864  fname_cpout_cll = ''
2865  end if
2866 
2867  if(stdflag.or.(ncpout2_cll.ne.stdout_cll)) then
2869  fname_cpout2_cll = ''
2870  end if
2871 
2872  if(stdflag.or.(nstatsoutcoli_cll.ne.stdout_cll)) then
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 
2885  end subroutine initoutchan_cll
2886 
2887 
2888 
2889 
2890 
2891  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2892  ! subroutine InitOutChan_cp_cll
2893  !
2894  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2895 
2896  subroutine initoutchan_cp_cll
2899  fname_errout_cp_cll = ''
2903  fname_erroutdd_cp_cll = ''
2905  fname_infout_cp_cll = ''
2913  fname_cpout_cp_cll = ''
2915  fname_cpout2_cp_cll = ''
2918 
2919  end subroutine initoutchan_cp_cll
2920 
2921 
2922 
2923 
2924  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2925  ! subroutine Setninfout_cll(ninfout)
2926  !
2927  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2928 
2929  subroutine setninfout_cll(ninfout)
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
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 
2962  end subroutine setninfout_cll
2963 
2964 
2965 
2966 
2967 
2968  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2969  ! subroutine Getninfout_cll(ninfout)
2970  !
2971  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2972 
2973  subroutine getninfout_cll(ninfout)
2975  integer, intent(out) :: ninfout
2976 
2977  ninfout = ninfout_cll
2978 
2979  end subroutine getninfout_cll
2980 
2981 
2982 
2983 
2984 
2985  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2986  ! subroutine Setninfoutcoli_cll(ninfout)
2987  !
2988  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2989 
2990  subroutine setninfoutcoli_cll(ninfout)
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
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
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 
3025  end subroutine setninfoutcoli_cll
3026 
3027 
3028 
3029 
3030 
3031  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3032  ! subroutine GetninfoutCOLI_cll(ninfout)
3033  !
3034  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3035 
3036  subroutine getninfoutcoli_cll(ninfout)
3038  integer, intent(out) :: ninfout
3039 
3040  ninfout = ninfoutcoli_cll
3041 
3042  end subroutine getninfoutcoli_cll
3043 
3044 
3045 
3046 
3047 
3048  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3049  ! subroutine Setnerrout_cll(nerrout)
3050  !
3051  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3052 
3053  subroutine setnerrout_cll(nerrout)
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
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 
3085  end subroutine setnerrout_cll
3086 
3087 
3088 
3089 
3090 
3091  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3092  ! subroutine Getnerrout_cll(nerrout)
3093  !
3094  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3095 
3096  subroutine getnerrout_cll(nerrout)
3098  integer, intent(out) :: nerrout
3099 
3100  nerrout = nerrout_cll
3101 
3102  end subroutine getnerrout_cll
3103 
3104 
3105 
3106 
3107 
3108  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3109  ! subroutine SetnerroutCOLI_cll(nerrout)
3110  !
3111  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3112 
3113  subroutine setnerroutcoli_cll(nerrout)
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
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
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 
3148  end subroutine setnerroutcoli_cll
3149 
3150 
3151 
3152 
3153 
3154  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3155  ! subroutine GetnerroutCOLI_cll(nerrout)
3156  !
3157  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3158 
3159  subroutine getnerroutcoli_cll(nerrout)
3161  integer, intent(out) :: nerrout
3162 
3163  nerrout = nerroutcoli_cll
3164 
3165  end subroutine getnerroutcoli_cll
3166 
3167 
3168 
3169 
3170 
3171  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3172  ! subroutine SetnerroutDD_cll(nerrout)
3173  !
3174  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3175 
3176  subroutine setnerroutdd_cll(nerrout)
3178  integer, intent(in), optional :: nerrout
3179  integer :: outlevel_dd,outchannel_dd,mode34_dd,mode5_dd,mode6_dd
3180  double precision :: cacc_dd,dacc_dd
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
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 
3219  end subroutine setnerroutdd_cll
3220 
3221 
3222 
3223 
3224 
3225  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3226  ! subroutine GetnerroutDD_cll(nerrout)
3227  !
3228  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3229 
3230  subroutine getnerroutdd_cll(nerrout)
3232  integer, intent(out) :: nerrout
3233 
3234  nerrout = nerroutdd_cll
3235 
3236  end subroutine getnerroutdd_cll
3237 
3238 
3239 
3240 
3241 
3242  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3243  ! subroutine Setncheckout_cll(ncheckout)
3244  !
3245  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3246 
3247  subroutine setncheckout_cll(ncheckout)
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
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 
3279  end subroutine setncheckout_cll
3280 
3281 
3282 
3283 
3284 
3285  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3286  ! subroutine Getncheckout_cll(ncheckout)
3287  !
3288  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3289 
3290  subroutine getncheckout_cll(ncheckout)
3292  integer, intent(out) :: ncheckout
3293 
3294  ncheckout = ncheckout_cll
3295 
3296  end subroutine getncheckout_cll
3297 
3298 
3299 
3300 
3301 
3302  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3303  ! subroutine Setncpoutcoli_cll(ncpout)
3304  !
3305  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3306 
3307  subroutine setncpoutcoli_cll(ncpout)
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
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
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 
3340  end subroutine setncpoutcoli_cll
3341 
3342 
3343 
3344 
3345 
3346  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3347  ! subroutine GetncpoutCOLI_cll(ncpout)
3348  !
3349  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3350 
3351  subroutine getncpoutcoli_cll(ncpout)
3353  integer, intent(out) :: ncpout
3354 
3355  ncpout = ncpoutcoli_cll
3356 
3357  end subroutine getncpoutcoli_cll
3358 
3359 
3360 
3361 
3362 
3363  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3364  ! subroutine Setnstatsoutcoli_cll(nstatsout)
3365  !
3366  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3367 
3368  subroutine setnstatsoutcoli_cll(nstatsout)
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
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
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 
3403  end subroutine setnstatsoutcoli_cll
3404 
3405 
3406 
3407 
3408 
3409  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3410  ! subroutine GetstatsoutCOLI_cll(nstatsout)
3411  !
3412  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3413 
3414  subroutine getnstatsoutcoli_cll(nstatsout)
3416  integer, intent(out) :: nstatsout
3417 
3418  nstatsout = nstatsoutcoli_cll
3419 
3420  end subroutine getnstatsoutcoli_cll
3421 
3422 
3423 
3424 
3425 
3426  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3427  ! subroutine Setncritpointsout_cll(ncpout)
3428  !
3429  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3430 
3431  subroutine setncritpointsout_cll(ncpout)
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
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 
3462  end subroutine setncritpointsout_cll
3463 
3464 
3465 
3466 
3467 
3468  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3469  ! subroutine Getncritpointsout_cll(ncritpointsout)
3470  !
3471  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3472 
3473  subroutine getncritpointsout_cll(ncritpointsout)
3475  integer, intent(out) :: ncritpointsout
3476 
3477  ncritpointsout = ncpout_cll
3478 
3479  end subroutine getncritpointsout_cll
3480 
3481 
3482 
3483 
3484 
3485  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3486  ! subroutine Setncritpointsout_cll(ncpout)
3487  !
3488  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3489 
3490  subroutine setncritpointsout2_cll(ncpout)
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
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 
3521  end subroutine setncritpointsout2_cll
3522 
3523 
3524 
3525 
3526 
3527  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3528  ! subroutine SetOutputFolder_cll(fname)
3529  !
3530  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3531 
3532  subroutine setoutputfolder_cll(fname)
3534  character(len=*), intent(in) :: fname
3535 
3536  foldername_cll = fname
3537  fname_errout_cll = ''
3539  fname_erroutdd_cll = ''
3540  fname_infout_cll = ''
3542  fname_checkout_cll = ''
3543  fname_cpoutcoli_cll = ''
3544  fname_cpout_cll = ''
3545  fname_cpout2_cll = ''
3547 
3548  call execute_command_line('mkdir -p '//trim(foldername_cll))
3549 
3552 
3553  end subroutine setoutputfolder_cll
3554 
3555 
3556 
3557 
3558 
3559  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3560  ! subroutine GetOutputFolder_cll(fname)
3561  !
3562  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3563 
3564  subroutine getoutputfolder_cll(fname)
3566  character(len=*), intent(out) :: fname
3567 
3568  fname = foldername_cll
3569 
3570  end subroutine getoutputfolder_cll
3571 
3572 
3573 
3574 
3575 
3576  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3577  ! subroutine Getncritpointsout_cll(ncritpointsout2)
3578  !
3579  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3580 
3581  subroutine getncritpointsout2_cll(ncritpointsout2)
3583  integer, intent(out) :: ncritpointsout2
3584 
3585  ncritpointsout2 = ncpout2_cll
3586 
3587  end subroutine getncritpointsout2_cll
3588 
3589 
3590 
3591 
3592 
3593  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3594  ! subroutine GetOutChannels_cll(chans)
3595  !
3596  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3597 
3598  subroutine getoutchannels_cll(chans)
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 
3614  end subroutine getoutchannels_cll
3615 
3616 
3617 
3618 
3619 
3620  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3621  ! subroutine InitCheckCntDB_cll()
3622  !i
3623  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3624 
3625  subroutine initcheckcntdb_cll
3627  checkcntdb_cll = 0
3628  diffcntdb_cll = 0
3629 
3630  end subroutine initcheckcntdb_cll
3631 
3632 
3633 
3634 
3635 
3636  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3637  ! subroutine InitMaxCheckDB_cll()
3638  !
3639  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3640 
3641  subroutine initmaxcheckdb_cll
3643  maxcheckdb_cll = 50
3644 
3645  end subroutine initmaxcheckdb_cll
3646 
3647 
3648 
3649 
3650 
3651  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3652  ! subroutine SetMaxCheckDB_cll(npoints)
3653  !
3654  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3655 
3656  subroutine setmaxcheckdb_cll(npoints)
3658  integer, intent(in) :: npoints
3659 
3660  maxcheckdb_cll = npoints
3661 
3662  end subroutine setmaxcheckdb_cll
3663 
3664 
3665 
3666 
3667  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3668  ! subroutine InitCheckCnt_cll(noreset)
3669  !
3670  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3671 
3672  subroutine initcheckcnt_cll(noreset)
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 
3723  end subroutine initcheckcnt_cll
3724 
3725 
3726 
3727 
3728 
3729  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3730  ! subroutine InitMaxCheck_cll(noreset)
3731  !
3732  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3733 
3734  subroutine initmaxcheck_cll(noreset)
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 
3759  end subroutine initmaxcheck_cll
3760 
3761 
3762 
3763 
3764 
3765  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3766  ! subroutine SetMaxCheckN_cll(npoints,N)
3767  !
3768  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3769 
3770  subroutine setmaxcheckn_cll(npoints,N)
3772  integer, intent(in) :: npoints,N
3773 
3774  maxcheck_cll(n) = npoints
3775 
3776  end subroutine setmaxcheckn_cll
3777 
3778 
3779 
3780 
3781 
3782  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3783  ! subroutine SetMaxCheckArray_cll(npoints)
3784  !
3785  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3786 
3787  subroutine setmaxcheckarray_cll(npoints)
3789  integer, intent(in) :: npoints(Nmax_cll)
3790 
3791  maxcheck_cll = npoints
3792 
3793  end subroutine setmaxcheckarray_cll
3794 
3795 
3796 
3797 
3798 
3799  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3800  ! subroutine InitMaxCritPointsDB_cll()
3801  !
3802  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3803 
3804  subroutine initmaxcritpointsdb_cll
3807 
3808  end subroutine initmaxcritpointsdb_cll
3809 
3810 
3811 
3812 
3813 
3814  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3815  ! subroutine SetMaxCritPointsDB_cll(npoints)
3816  !
3817  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3818 
3819  subroutine setmaxcritpointsdb_cll(npoints)
3821  integer, intent(in) :: npoints
3822 
3823  noutcritpointsmaxdb_cll = npoints
3824 
3825  end subroutine setmaxcritpointsdb_cll
3826 
3827 
3828 
3829 
3830 
3831  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3832  ! subroutine InitMaxCritPoints_cll(noreset)
3833  !
3834  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3835 
3836  subroutine initmaxcritpoints_cll(noreset)
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))
3857  end if
3858 
3859  end subroutine initmaxcritpoints_cll
3860 
3861 
3862 
3863 
3864 
3865  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3866  ! subroutine SetMaxCritPointsN_cll(npoints,N)
3867  !
3868  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3869 
3870  subroutine setmaxcritpointsn_cll(npoints,N)
3872  integer, intent(in) :: npoints,N
3873 
3874  noutcritpointsmax_cll(n) = npoints
3875 
3876  end subroutine setmaxcritpointsn_cll
3877 
3878 
3879 
3880 
3881 
3882  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3883  ! subroutine SetMaxCritPointsArray_cll(npoints)
3884  !
3885  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3886 
3887  subroutine setmaxcritpointsarray_cll(npoints)
3889  integer, intent(in) :: npoints(Nmax_cll)
3890 
3891  noutcritpointsmax_cll = npoints
3892 
3893  end subroutine setmaxcritpointsarray_cll
3894 
3895 
3896 
3897 
3898 
3899  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3900  ! subroutine InfOut_cll(sub,inf,flag)
3901  !
3902  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3903 
3904 ! Suppression of output must be implemented in calling routines!
3905 
3906  subroutine infout_cll(sub,inf,flag)
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 
3938  end subroutine infout_cll
3939 
3940 
3941 
3942 
3943  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3944  ! function findFreeChannel_cll
3945  !
3946  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3947 
3948  function findfreechannel_cll() result(nchan)
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 
3962  end function findfreechannel_cll
3963 
3964 
3965 
3966 
3967 
3968  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3969  ! subroutine OpenErrOutFile_cll(filename,nchan)
3970  !
3971  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3972 
3973  subroutine openerroutfile_cll(filename,nchan)
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
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
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 
4018  end subroutine openerroutfile_cll
4019 
4020 
4021 
4022 
4023 
4024  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4025  ! subroutine OpenErrOutFileCOLI_cll(filename,nchan)
4026  !
4027  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4028 
4029  subroutine openerroutfilecoli_cll(filename,nchan)
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
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
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
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 
4076  end subroutine openerroutfilecoli_cll
4077 
4078 
4079 
4080 
4081 
4082  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4083  ! subroutine OpenErrOutFileDD_cll(filename,nchan)
4084  !
4085  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4086 
4087  subroutine openerroutfiledd_cll(filename,nchan)
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
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
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 
4144  end subroutine openerroutfiledd_cll
4145 
4146 
4147 
4148 
4149 
4150  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4151  ! subroutine OpenCritPointsOutFileCOLI_cll(filename,nchan)
4152  !
4153  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4154 
4155  subroutine opencritpointsoutfilecoli_cll(filename,nchan)
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
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
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
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 
4211  end subroutine opencritpointsoutfilecoli_cll
4212 
4213 
4214 
4215 
4216  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4217  ! subroutine OpenCritPointsOutFile_cll(filename,nchan)
4218  !
4219  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4220 
4221  subroutine opencritpointsoutfile_cll(filename,nchan)
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
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
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 
4274  end subroutine opencritpointsoutfile_cll
4275 
4276 
4277 
4278 
4279 
4280  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4281  ! subroutine OpenCritPointsOutFile2_cll(filename,nchan)
4282  !
4283  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4284 
4285  subroutine opencritpointsoutfile2_cll(filename,nchan)
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
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
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=*)
4337  end subroutine opencritpointsoutfile2_cll
4338 
4339 
4340 
4341 
4342 
4343  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4344  ! subroutine OpenCheckOutFile_cll(filename,nchan)
4345  !
4346  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4347 
4348  subroutine opencheckoutfile_cll(filename,nchan)
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
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
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 
4401  end subroutine opencheckoutfile_cll
4402 
4403 
4404 
4405 
4406 
4407  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4408  ! subroutine OpenInfOutFile_cll(filename,nchan)
4409  !
4410  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4411 
4412  subroutine openinfoutfile_cll(filename,nchan)
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
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
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 
4459  end subroutine openinfoutfile_cll
4460 
4461 
4462 
4463 
4464 
4465  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4466  ! subroutine OpenInfOutFileCOLI_cll(filename,nchan)
4467  !
4468  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4469 
4470  subroutine openinfoutfilecoli_cll(filename,nchan)
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
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
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
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 
4518  end subroutine openinfoutfilecoli_cll
4519 
4520 
4521 
4522 
4523  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4524  ! subroutine OpenStatisticsOutFileCOLI_cll(filename,nchan)
4525  !
4526  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4527 
4528  subroutine openstatisticsoutfilecoli_cll(filename,nchan)
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
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
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 
4578  end subroutine openstatisticsoutfilecoli_cll
4579 
4580 
4581 
4582  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4583  ! subroutine PrintStatisticscoli_cll(noutch)
4584  !
4585  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4586 
4587  subroutine printstatisticscoli_cll(noutch)
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 
4605 
4606 
4607  end subroutine printstatisticscoli_cll
4608 
4609 
4610 
4611 
4612  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4613  ! subroutine WriteIntro_cll(un)
4614  !
4615  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4616 
4617  subroutine writeintro_cll(un)
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 
4635  end subroutine writeintro_cll
4636 
4637 
4638 end module collier_init
collier_init::setncheckout_cll
subroutine setncheckout_cll(ncheckout)
Definition: collier_init.F90:3248
collier_init::foldername_cll
character(len=80) foldername_cll
Definition: collier_init.F90:46
collier_init::openinfoutfile_cll
subroutine openinfoutfile_cll(filename, nchan)
Definition: collier_init.F90:4413
collier_init::getoutchannels_cll
subroutine getoutchannels_cll(chans)
Definition: collier_init.F90:3599
collier_init::openerroutfile_cll
subroutine openerroutfile_cll(filename, nchan)
Definition: collier_init.F90:3974
collier_global::nofiles_cll
logical nofiles_cll
Definition: collier_global.F90:41
collier_global::fname_cpout_cp_cll
character(len=99) fname_cpout_cp_cll
Definition: collier_global.F90:114
collier_init::setncritpointsout_cll
subroutine setncritpointsout_cll(ncpout)
Definition: collier_init.F90:3432
coli_aux2::initcritpointscnt_coli
subroutine initcritpointscnt_coli(val)
Definition: coli_aux2.F90:112
collier_global::acceventcnt
integer, dimension(-2:1) acceventcnt
Definition: collier_global.F90:95
collier_init::geteventcnt_cll
subroutine geteventcnt_cll(event)
Definition: collier_init.F90:564
collier_init::setmaxerroutcoli_cll
subroutine setmaxerroutcoli_cll(val)
Definition: collier_init.F90:2346
collier_global::maxinfout_cll
integer maxinfout_cll
Definition: collier_global.F90:33
collier_global::qopened_check
logical qopened_check
Definition: collier_global.F90:64
collier_init::getninfoutcoli_cll
subroutine getninfoutcoli_cll(ninfout)
Definition: collier_init.F90:3037
collier_init::getaccflag_cll
subroutine getaccflag_cll(val)
Definition: collier_init.F90:2433
collier_init::setaccuracy_cll
subroutine setaccuracy_cll(acc0, acc1, acc2)
Definition: collier_init.F90:1728
collier_init::switchoncalcuv_cll
subroutine switchoncalcuv_cll()
Definition: collier_init.F90:1213
coli_aux2::setncpout_coli
subroutine setncpout_coli(ncpout)
Definition: coli_aux2.F90:193
collier_global::nerroutcoli_cp_cll
integer nerroutcoli_cp_cll
Definition: collier_global.F90:109
collier_init::initevent_cll
subroutine initevent_cll(Ncache)
Definition: collier_init.F90:492
collier_init::getmuuv2_cll
subroutine getmuuv2_cll(mu2)
Definition: collier_init.F90:704
collier_global::pointscntd_dd
integer pointscntd_dd
Definition: collier_global.F90:82
collier_global::maxcheck_cll
integer, dimension(:), allocatable maxcheck_cll
Definition: collier_global.F90:89
coli_aux2::setcritacc_coli
subroutine setcritacc_coli(critacc)
Definition: coli_aux2.F90:496
collier_init::switchofftenred_cll
subroutine switchofftenred_cll()
Definition: collier_init.F90:1293
collier_init::setmaxcheck_cll
Definition: collier_init.F90:38
collier_global::pointscntgten_cll
integer pointscntgten_cll
Definition: collier_global.F90:59
collier_global::pointscntg_dd
integer pointscntg_dd
Definition: collier_global.F90:82
collier_global::accpointscnte_cll
integer accpointscnte_cll
Definition: collier_global.F90:48
collier_global::critpointscntf2_cll
integer critpointscntf2_cll
Definition: collier_global.F90:66
collier_init::setmaxcheckdb_cll
subroutine setmaxcheckdb_cll(npoints)
Definition: collier_init.F90:3657
collier_global::accpointscntc_cll
integer accpointscntc_cll
Definition: collier_global.F90:48
collier_global::pointscntc_dd
integer pointscntc_dd
Definition: collier_global.F90:82
collier_global::accpointscntf_cll
integer accpointscntf_cll
Definition: collier_global.F90:48
collier_init::initmaxcheckdb_cll
subroutine initmaxcheckdb_cll
Definition: collier_init.F90:3642
collier_init::switchoffcalcuv_cll
subroutine switchoffcalcuv_cll()
Definition: collier_init.F90:1197
collier_init::opencritpointsoutfile_cll
subroutine opencritpointsoutfile_cll(filename, nchan)
Definition: collier_init.F90:4222
collier_init::gettenred_cll
subroutine gettenred_cll(tenred)
Definition: collier_init.F90:1312
collier_global::accpointscntc2_cll
integer accpointscntc2_cll
Definition: collier_global.F90:69
collier_global::never_tenred_cll
integer never_tenred_cll
Definition: collier_global.F90:40
collier_global::deltauv_cll
double precision deltauv_cll
Definition: collier_global.F90:28
collier_init
Definition: collier_init.F90:26
collier_init::findfreechannel_cll
integer function findfreechannel_cll()
Definition: collier_init.F90:3949
collier_global::pointscntdten_dd
integer pointscntdten_dd
Definition: collier_global.F90:85
collier_global::accpointscnte2_cll
integer accpointscnte2_cll
Definition: collier_global.F90:69
collier_global::ncpout_cp_cll
integer ncpout_cp_cll
Definition: collier_global.F90:111
collier_global::critpointscnta2_cll
integer critpointscnta2_cll
Definition: collier_global.F90:66
collier_init::switchofffileoutput_cll
subroutine switchofffileoutput_cll
Definition: collier_init.F90:1373
collier_global::deltair2_cll
double precision deltair2_cll
Definition: collier_global.F90:28
coli_aux2::initerrcnt_coli
subroutine initerrcnt_coli(val)
Definition: coli_aux2.F90:95
collier_init::setmuuv2_cll
subroutine setmuuv2_cll(mu2)
Definition: collier_init.F90:668
collier_global::fname_errout_cll
character(len=99) fname_errout_cll
Definition: collier_global.F90:104
collier_init::geterroutlev_cll
subroutine geterroutlev_cll(erroutlev)
Definition: collier_init.F90:1645
collier_init::setmaxcritpointsarray_cll
subroutine setmaxcritpointsarray_cll(npoints)
Definition: collier_init.F90:3888
collier_global::critpointscntdb2_cll
integer critpointscntdb2_cll
Definition: collier_global.F90:66
collier_global::ninfoutcoli_cll
integer ninfoutcoli_cll
Definition: collier_global.F90:102
collier_global::checkacc_cll
double precision checkacc_cll
Definition: collier_global.F90:30
collier_global::erroutlev_cll
integer erroutlev_cll
Definition: collier_global.F90:36
collier_global::nerroutcoli_cll
integer nerroutcoli_cll
Definition: collier_global.F90:101
collier_init::initerrcntcoli_cll
subroutine initerrcntcoli_cll()
Definition: collier_init.F90:2326
collier_global::critpointscntgten_cll
integer critpointscntgten_cll
Definition: collier_global.F90:53
collier_init::getnc_cll
integer function getnc_cll(N, r)
Definition: collier_init.F90:1107
coli_aux2::setnstatsout_coli
subroutine setnstatsout_coli(nstatsout)
Definition: coli_aux2.F90:235
collier_global::pointscntgten_coli
integer pointscntgten_coli
Definition: collier_global.F90:79
collier_global::critpointscntd2_cll
integer critpointscntd2_cll
Definition: collier_global.F90:66
collier_global::accpointscntb_cll
integer accpointscntb_cll
Definition: collier_global.F90:48
collier_global::deltair1_cll
double precision deltair1_cll
Definition: collier_global.F90:28
collier_global::pointscntdb_dd
integer pointscntdb_dd
Definition: collier_global.F90:82
collier_init::setaccflag_cll
subroutine setaccflag_cll(val)
Definition: collier_init.F90:2416
collier_global::nminf_cll
integer nminf_cll
Definition: collier_global.F90:27
collier_init::setnerroutcoli_cll
subroutine setnerroutcoli_cll(nerrout)
Definition: collier_init.F90:3114
collier_init::initaccflag_cll
subroutine initaccflag_cll()
Definition: collier_init.F90:2401
collier_global::rmax4_dd
integer rmax4_dd
Definition: collier_global.F90:31
collier_init::setmuir2_cll
subroutine setmuir2_cll(mu2)
Definition: collier_init.F90:721
collier_init::setinfoutlevcoli_cll
subroutine setinfoutlevcoli_cll(infoutlev)
Definition: collier_init.F90:2477
collier_init::switchonirrational_cll
subroutine switchonirrational_cll()
Definition: collier_init.F90:1178
collier_global::diffcntec_cll
integer diffcntec_cll
Definition: collier_global.F90:92
collier_init::getdeltair_cll
subroutine getdeltair_cll(delta1, delta2)
Definition: collier_init.F90:888
collier_init::initoutchan_cll
subroutine initoutchan_cll(init_stdout)
Definition: collier_init.F90:2809
collier_init::openstatisticsoutfilecoli_cll
subroutine openstatisticsoutfilecoli_cll(filename, nchan)
Definition: collier_init.F90:4529
collier_global::critpointscntcoli_cll
integer critpointscntcoli_cll
Definition: collier_global.F90:33
collier_global::pointscntbten_cll
integer pointscntbten_cll
Definition: collier_global.F90:59
collier_init::setmaxerrout_cll
subroutine setmaxerrout_cll(val)
Definition: collier_init.F90:2275
collier_init::seterrstop_cll
subroutine seterrstop_cll(errstop)
Definition: collier_init.F90:1344
collier_global::muuv2_cll
double precision muuv2_cll
Definition: collier_global.F90:28
collier_global::nerrout_cll
integer nerrout_cll
Definition: collier_global.F90:101
inittensors::rts
integer, dimension(:), allocatable rts
Definition: InitTensors.F90:39
collier_global::accpointscntgten_cll
integer accpointscntgten_cll
Definition: collier_global.F90:56
collier_init::geterrstop_cll
subroutine geterrstop_cll(errstop)
Definition: collier_init.F90:1358
collier_global::accflag_cll
integer accflag_cll
Definition: collier_global.F90:33
collier_global::rmax6_dd
integer rmax6_dd
Definition: collier_global.F90:31
collier_global::fname_infoutcoli_cp_cll
character(len=99) fname_infoutcoli_cp_cll
Definition: collier_global.F90:116
collier_global::checkcntten_cll
integer, dimension(:), allocatable checkcntten_cll
Definition: collier_global.F90:90
coli_aux2::initcoli_in_collier
subroutine initcoli_in_collier
Definition: coli_aux2.F90:51
collier_global::ncheckout_cll
integer ncheckout_cll
Definition: collier_global.F90:102
collier_global::pointscntbten_coli
integer pointscntbten_coli
Definition: collier_global.F90:79
collier_global::pointscntb_coli
integer pointscntb_coli
Definition: collier_global.F90:76
coli_aux2::setmaxerrout_coli
subroutine setmaxerrout_coli(errmax)
Definition: coli_aux2.F90:256
collier_global::errcntdd
integer, dimension(-10:0) errcntdd
Definition: collier_global.F90:94
coli_aux2
Definition: coli_aux2.F90:23
collier_global::checkcntdb_cll
integer checkcntdb_cll
Definition: collier_global.F90:91
coli_stat::printstatistics_coli
subroutine printstatistics_coli
Definition: coli_stat.F90:64
collier_global::critpointscntd_cll
integer critpointscntd_cll
Definition: collier_global.F90:45
collier_global::pointscnte_coli
integer pointscnte_coli
Definition: collier_global.F90:76
collier_init::getcritacc_cll
subroutine getcritacc_cll(acc)
Definition: collier_init.F90:1953
inittensors
Definition: InitTensors.F90:25
collier_global::fname_cpout_cll
character(len=99) fname_cpout_cll
Definition: collier_global.F90:106
collier_global::critpointscnta_cll
integer critpointscnta_cll
Definition: collier_global.F90:45
collier_global::critpointscntdten_cll
integer critpointscntdten_cll
Definition: collier_global.F90:53
collier_global::pointscntf_coli
integer pointscntf_coli
Definition: collier_global.F90:76
collier_init::opencheckoutfile_cll
subroutine opencheckoutfile_cll(filename, nchan)
Definition: collier_init.F90:4349
collier_init::printstatisticscoli_cll
subroutine printstatisticscoli_cll(noutch)
Definition: collier_init.F90:4588
collier_global::rmaxc_cll
integer rmaxc_cll
Definition: collier_global.F90:35
collier_global::fname_statsoutcoli_cll
character(len=99) fname_statsoutcoli_cll
Definition: collier_global.F90:108
collier_global
Definition: collier_global.F90:23
collier_init::setminf2_cll
subroutine setminf2_cll(nminf, minf2)
Definition: collier_init.F90:1026
collier_init::getcheckacc_cll
subroutine getcheckacc_cll(acc)
Definition: collier_init.F90:2013
collier_global::erreventcnt
integer, dimension(-10:1) erreventcnt
Definition: collier_global.F90:95
collier_global::dprec_cll
double precision dprec_cll
Definition: collier_global.F90:30
collier_global::pointscntg_coli
integer pointscntg_coli
Definition: collier_global.F90:76
collier_global::noutcritpointsmax_cll
integer, dimension(:), allocatable noutcritpointsmax_cll
Definition: collier_global.F90:97
collier_init::initmaxcritpoints_cll
subroutine initmaxcritpoints_cll(noreset)
Definition: collier_init.F90:3837
collier_global::accpointscntg_cll
integer accpointscntg_cll
Definition: collier_global.F90:48
collier_global::accpointscntdb_cll
integer accpointscntdb_cll
Definition: collier_global.F90:48
collier_init::openerroutfilecoli_cll
subroutine openerroutfilecoli_cll(filename, nchan)
Definition: collier_init.F90:4030
collier_global::pointscnta_cll
integer pointscnta_cll
Definition: collier_global.F90:51
collier_global::accpointscntdten_cll
integer accpointscntdten_cll
Definition: collier_global.F90:56
collier_global::ir_rational_terms_cll
logical ir_rational_terms_cll
Definition: collier_global.F90:39
collier_global::initialized_cll
logical initialized_cll
Definition: collier_global.F90:41
collier_global::pointscnttnten_coli
integer, dimension(:), allocatable pointscnttnten_coli
Definition: collier_global.F90:81
collier_init::opencritpointsoutfilecoli_cll
subroutine opencritpointsoutfilecoli_cll(filename, nchan)
Definition: collier_init.F90:4156
collier_global::version_cll
character(len=5) version_cll
Definition: collier_global.F90:26
collier_global::pointscntgten_dd
integer pointscntgten_dd
Definition: collier_global.F90:85
collier_global::pointscntcten_cll
integer pointscntcten_cll
Definition: collier_global.F90:59
collier_global::muir2_cll
double precision muir2_cll
Definition: collier_global.F90:28
collier_global::critpointscntb_cll
integer critpointscntb_cll
Definition: collier_global.F90:45
collier_init::setoutputfolder_cll
subroutine setoutputfolder_cll(fname)
Definition: collier_init.F90:3533
collier_global::nstatsoutcoli_cp_cll
integer nstatsoutcoli_cp_cll
Definition: collier_global.F90:111
collier_global::critpointscntdb_cll
integer critpointscntdb_cll
Definition: collier_global.F90:45
collier_global::rmaxd_cll
integer rmaxd_cll
Definition: collier_global.F90:35
collier_init::initerrcntdd_cll
subroutine initerrcntdd_cll()
Definition: collier_init.F90:2364
collier_aux::errout_cll
subroutine errout_cll(sub, err, flag, nomaster)
Definition: collier_aux.F90:1555
collier_global::rmax3_dd
integer rmax3_dd
Definition: collier_global.F90:31
collier_global::pointscnttn_dd
integer, dimension(:), allocatable pointscnttn_dd
Definition: collier_global.F90:84
coli_aux2::setritmax_coli
subroutine setritmax_coli(ritmax_B, ritmax_C, ritmax_D)
Definition: coli_aux2.F90:517
collier_init::getinfoutlev_cll
subroutine getinfoutlev_cll(infoutlev)
Definition: collier_init.F90:1601
collier_init::setncpoutcoli_cll
subroutine setncpoutcoli_cll(ncpout)
Definition: collier_init.F90:3308
collier_init::switchofferrstop_cll
subroutine switchofferrstop_cll()
Definition: collier_init.F90:1329
collier_global::critpointscntg_cll
integer critpointscntg_cll
Definition: collier_global.F90:45
coli_aux2::geterrflag_coli
subroutine geterrflag_coli(err)
Definition: coli_aux2.F90:155
collier_global::noutcritpointsmaxdb_cll
integer noutcritpointsmaxdb_cll
Definition: collier_global.F90:98
collier_global::pointscnttn2_cll
integer, dimension(:), allocatable pointscnttn2_cll
Definition: collier_global.F90:74
inittensors::switchoncalcuv_ten
subroutine switchoncalcuv_ten()
Definition: InitTensors.F90:364
collier_global::ncpoutcoli_cll
integer ncpoutcoli_cll
Definition: collier_global.F90:103
collier_init::setmaxcheckarray_cll
subroutine setmaxcheckarray_cll(npoints)
Definition: collier_init.F90:3788
collier_global::pointscnteten_dd
integer pointscnteten_dd
Definition: collier_global.F90:85
collier_init::getcalcuv_cll
subroutine getcalcuv_cll(CalcUV)
Definition: collier_init.F90:1229
collier_init::initerrcnt_cll
subroutine initerrcnt_cll(val)
Definition: collier_init.F90:2309
collier_global::nmax_dd
integer nmax_dd
Definition: collier_global.F90:31
collier_global::minf2_cll
double complex, dimension(:), allocatable minf2_cll
Definition: collier_global.F90:29
collier_global::pointscntc_coli
integer pointscntc_coli
Definition: collier_global.F90:76
collier_init::opencritpointsoutfile2_cll
subroutine opencritpointsoutfile2_cll(filename, nchan)
Definition: collier_init.F90:4286
collier_global::pointscntg_cll
integer pointscntg_cll
Definition: collier_global.F90:51
collier_global::fname_cpoutcoli_cll
character(len=99) fname_cpoutcoli_cll
Definition: collier_global.F90:105
collier_global::critpointscntc2_cll
integer critpointscntc2_cll
Definition: collier_global.F90:66
collier_init::getncritpointsout_cll
subroutine getncritpointsout_cll(ncritpointsout)
Definition: collier_init.F90:3474
collier_init::initmaxcheck_cll
subroutine initmaxcheck_cll(noreset)
Definition: collier_init.F90:3735
collier_global::critpointscntf_cll
integer critpointscntf_cll
Definition: collier_global.F90:45
collier_global::accpointscntdb2_cll
integer accpointscntdb2_cll
Definition: collier_global.F90:69
collier_global::pointscnteten_cll
integer pointscnteten_cll
Definition: collier_global.F90:59
collier_global::errcntcoli_cll
integer errcntcoli_cll
Definition: collier_global.F90:34
collier_global::rmax2_dd
integer rmax2_dd
Definition: collier_global.F90:31
collier_global::reqacc_cll
double precision reqacc_cll
Definition: collier_global.F90:30
collier_init::setnerroutdd_cll
subroutine setnerroutdd_cll(nerrout)
Definition: collier_init.F90:3177
collier_init::getncpoutcoli_cll
subroutine getncpoutcoli_cll(ncpout)
Definition: collier_init.F90:3352
collier_global::accpointscntdbten_cll
integer accpointscntdbten_cll
Definition: collier_global.F90:56
collier_init::initglobaldd_cll
subroutine initglobaldd_cll(nmax_cll, ritmax_cll)
Definition: collier_init.F90:1662
collier_global::accpointscntbten_cll
integer accpointscntbten_cll
Definition: collier_global.F90:56
collier_init::setdeltauv_cll
subroutine setdeltauv_cll(delta)
Definition: collier_init.F90:774
collier_global::maxerrout_cll
integer maxerrout_cll
Definition: collier_global.F90:34
collier_init::openinfoutfilecoli_cll
subroutine openinfoutfilecoli_cll(filename, nchan)
Definition: collier_init.F90:4471
coli_aux2::setreqacc_coli
subroutine setreqacc_coli(reqacc)
Definition: coli_aux2.F90:472
collier_global::rmaxb_cll
integer rmaxb_cll
Definition: collier_global.F90:35
collier_global::accpointscntd_cll
integer accpointscntd_cll
Definition: collier_global.F90:48
collier_global::diffcntdb_cll
integer diffcntdb_cll
Definition: collier_global.F90:91
collier_global::accpointscnttn_cll
integer, dimension(:), allocatable accpointscnttn_cll
Definition: collier_global.F90:61
collier_global::tenred_cll
integer tenred_cll
Definition: collier_global.F90:40
collier_global::pointscntb_cll
integer pointscntb_cll
Definition: collier_global.F90:51
collier_init::initmaxcritpointsdb_cll
subroutine initmaxcritpointsdb_cll
Definition: collier_init.F90:3805
collier_global::critpointscntc_cll
integer critpointscntc_cll
Definition: collier_global.F90:45
collier_global::infoutlev_cll
integer infoutlev_cll
Definition: collier_global.F90:36
collier_global::pointscntdbten_coli
integer pointscntdbten_coli
Definition: collier_global.F90:79
collier_init::setninfout_cll
subroutine setninfout_cll(ninfout)
Definition: collier_init.F90:2930
collier_global::pointscntften_dd
integer pointscntften_dd
Definition: collier_global.F90:85
collier_global::ncpout2_cll
integer ncpout2_cll
Definition: collier_global.F90:103
collier_init::setdeltair_cll
subroutine setdeltair_cll(delta1, delta2)
Definition: collier_init.F90:838
collier_init::setmode_cll
subroutine setmode_cll(mode)
Definition: collier_init.F90:581
collier_global::pointscntdb_cll
integer pointscntdb_cll
Definition: collier_global.F90:51
collier_global::nerroutdd_cp_cll
integer nerroutdd_cp_cll
Definition: collier_global.F90:109
collier_init::getreqacc_cll
subroutine getreqacc_cll(acc)
Definition: collier_init.F90:1870
collier_global::nerroutdd_cll
integer nerroutdd_cll
Definition: collier_global.F90:101
collier_init::setmaxinfout_cll
subroutine setmaxinfout_cll(val)
Definition: collier_init.F90:2258
collier_global::pointscnte_dd
integer pointscnte_dd
Definition: collier_global.F90:82
collier_global::ncpout_cll
integer ncpout_cll
Definition: collier_global.F90:103
collier_global::pointscnttn_cll
integer, dimension(:), allocatable pointscnttn_cll
Definition: collier_global.F90:61
collier_init::init_cll
subroutine init_cll(Nmax, rmax, folder_name, noreset)
Definition: collier_init.F90:59
collier_global::accpointscnttn2_cll
integer, dimension(:), allocatable accpointscnttn2_cll
Definition: collier_global.F90:74
collier_init::switchontenred_cll
subroutine switchontenred_cll()
Definition: collier_init.F90:1275
collier_global::ncheckout_cp_cll
integer ncheckout_cp_cll
Definition: collier_global.F90:110
collier_global::pointscntdbten_dd
integer pointscntdbten_dd
Definition: collier_global.F90:85
collier_global::critpointscnte_cll
integer critpointscnte_cll
Definition: collier_global.F90:45
collier_global::accpointscnta_cll
integer accpointscnta_cll
Definition: collier_global.F90:48
collier_global::fname_cpoutcoli_cp_cll
character(len=99) fname_cpoutcoli_cp_cll
Definition: collier_global.F90:113
collier_init::getminf2_cll
subroutine getminf2_cll(minf2)
Definition: collier_init.F90:1066
collier_global::pointscntdten_coli
integer pointscntdten_coli
Definition: collier_global.F90:79
collier_global::errorstop_cll
integer errorstop_cll
Definition: collier_global.F90:38
collier_global::critpointscnte2_cll
integer critpointscnte2_cll
Definition: collier_global.F90:66
collier_global::accpointscntcten_cll
integer accpointscntcten_cll
Definition: collier_global.F90:56
coli_aux2::setnerrout_coli
subroutine setnerrout_coli(nerrout)
Definition: coli_aux2.F90:172
collier_init::getnminf_cll
subroutine getnminf_cll(nminf)
Definition: collier_init.F90:1049
collier_global::pointscnte_cll
integer pointscnte_cll
Definition: collier_global.F90:51
collier_global::nstatsoutcoli_cll
integer nstatsoutcoli_cll
Definition: collier_global.F90:103
collier_global::critpointscntften_cll
integer critpointscntften_cll
Definition: collier_global.F90:53
collier_global::pointscnttnten_dd
integer, dimension(:), allocatable pointscnttnten_dd
Definition: collier_global.F90:87
collier_global::pointscnteten_coli
integer pointscnteten_coli
Definition: collier_global.F90:79
collier_global::fname_erroutdd_cll
character(len=99) fname_erroutdd_cll
Definition: collier_global.F90:105
collier_init::setritmax_cll
subroutine setritmax_cll(ritmax)
Definition: collier_init.F90:2030
inittensors::switchoffcalcuv_ten
subroutine switchoffcalcuv_ten()
Definition: InitTensors.F90:349
collier_global::monitoring
logical monitoring
Definition: collier_global.F90:64
collier_init::getninfout_cll
subroutine getninfout_cll(ninfout)
Definition: collier_init.F90:2974
collier_global::mode_cll
integer mode_cll
Definition: collier_global.F90:27
collier_init::openerroutfiledd_cll
subroutine openerroutfiledd_cll(filename, nchan)
Definition: collier_init.F90:4088
collier_init::getmuir2_cll
subroutine getmuir2_cll(mu2)
Definition: collier_init.F90:756
coli_aux2::setninfout_coli
subroutine setninfout_coli(ninfout)
Definition: coli_aux2.F90:214
collier_global::fname_errout_cp_cll
character(len=99) fname_errout_cp_cll
Definition: collier_global.F90:112
collier_global::ninfout_cp_cll
integer ninfout_cp_cll
Definition: collier_global.F90:110
collier_global::critpointscntaten_cll
integer critpointscntaten_cll
Definition: collier_global.F90:53
collier_global::eventcnt_cll
integer eventcnt_cll
Definition: collier_global.F90:36
collier_global::pointscntcten_dd
integer pointscntcten_dd
Definition: collier_global.F90:85
collier_init::setnerrout_cll
subroutine setnerrout_cll(nerrout)
Definition: collier_init.F90:3054
collier_init::setcheckacc_cll
subroutine setcheckacc_cll(acc)
Definition: collier_init.F90:1970
collier_init::geterrflag_cll
subroutine geterrflag_cll(val)
Definition: collier_init.F90:2177
collier_init::clearminf2_cll
subroutine clearminf2_cll
Definition: collier_init.F90:987
collier_init::propagateaccflag_cll
subroutine propagateaccflag_cll(RelErrs, rmax)
Definition: collier_init.F90:2450
collier_init::getnstatsoutcoli_cll
subroutine getnstatsoutcoli_cll(nstatsout)
Definition: collier_init.F90:3415
collier_init::infout_cll
subroutine infout_cll(sub, inf, flag)
Definition: collier_init.F90:3907
collier_global::fname_statsoutcoli_cp_cll
character(len=99) fname_statsoutcoli_cp_cll
Definition: collier_global.F90:116
collier_global::pointscntaten_coli
integer pointscntaten_coli
Definition: collier_global.F90:79
collier_global::pointscntd_coli
integer pointscntd_coli
Definition: collier_global.F90:76
collier_global::pointscntcten_coli
integer pointscntcten_coli
Definition: collier_global.F90:79
collier_init::writeintro_cll
subroutine writeintro_cll(un)
Definition: collier_init.F90:4618
collier_global::ritmax_cll
integer ritmax_cll
Definition: collier_global.F90:35
collier_global::critpointscnteten_cll
integer critpointscnteten_cll
Definition: collier_global.F90:53
collier_global::accpointscntaten_cll
integer accpointscntaten_cll
Definition: collier_global.F90:56
collier_init::settenred_cll
subroutine settenred_cll(tenred)
Definition: collier_init.F90:1246
collier_global::closed_cll
integer, parameter closed_cll
Definition: collier_global.F90:42
collier_global::pointscntdten_cll
integer pointscntdten_cll
Definition: collier_global.F90:59
collier_global::checkcnt_cll
integer, dimension(:), allocatable checkcnt_cll
Definition: collier_global.F90:89
collier_global::pointscntc_cll
integer pointscntc_cll
Definition: collier_global.F90:51
collier_init::getversionnumber_cll
subroutine getversionnumber_cll(version)
Definition: collier_init.F90:528
collier_init::getcpuprec_cll
subroutine getcpuprec_cll
Definition: collier_init.F90:1695
collier_init::getminf2dd_cll
double complex function getminf2dd_cll(m2)
Definition: collier_init.F90:1083
collier_init::initpointscnt_cll
subroutine initpointscnt_cll(noreset)
Definition: collier_init.F90:2517
collier_global::fname_infout_cp_cll
character(len=99) fname_infout_cp_cll
Definition: collier_global.F90:115
coli_stat
Definition: coli_stat.F90:22
collier_init::setncritpointsout2_cll
subroutine setncritpointsout2_cll(ncpout)
Definition: collier_init.F90:3491
collier_global::pointscntdb_coli
integer pointscntdb_coli
Definition: collier_global.F90:76
collier_global::fname_erroutcoli_cll
character(len=99) fname_erroutcoli_cll
Definition: collier_global.F90:104
collier_global::fname_erroutdd_cp_cll
character(len=99) fname_erroutdd_cp_cll
Definition: collier_global.F90:113
collier_global::fname_checkout_cll
character(len=99) fname_checkout_cll
Definition: collier_global.F90:107
collier_init::getncritpointsout2_cll
subroutine getncritpointsout2_cll(ncritpointsout2)
Definition: collier_init.F90:3582
collier_init::getritmax_cll
subroutine getritmax_cll(ritmax)
Definition: collier_init.F90:2124
collier_global::errcntdd_cll
integer errcntdd_cll
Definition: collier_global.F90:34
collier_init::switchonfileoutput_cll
subroutine switchonfileoutput_cll
Definition: collier_init.F90:1464
collier_init::initinfcnt_cll
subroutine initinfcnt_cll(val)
Definition: collier_init.F90:2292
collier_global::errflag_cll
integer errflag_cll
Definition: collier_global.F90:33
collier_global::ninfout_cll
integer ninfout_cll
Definition: collier_global.F90:102
collier_init::initeventcnt_cll
subroutine initeventcnt_cll()
Definition: collier_init.F90:545
collier_global::diffcntten_cll
integer, dimension(:), allocatable diffcntten_cll
Definition: collier_global.F90:90
collier_global::nerrout_cp_cll
integer nerrout_cp_cll
Definition: collier_global.F90:109
collier_global::pointscntf_cll
integer pointscntf_cll
Definition: collier_global.F90:51
collier_init::setinfoutlev_cll
subroutine setinfoutlev_cll(infoutlev)
Definition: collier_init.F90:1583
collier_global::fname_cpout2_cp_cll
character(len=99) fname_cpout2_cp_cll
Definition: collier_global.F90:114
collier_init::addminf2_cll
subroutine addminf2_cll(m2)
Definition: collier_init.F90:907
collier_global::pointscntaten_cll
integer pointscntaten_cll
Definition: collier_global.F90:59
collier_global::accpointscntften_cll
integer accpointscntften_cll
Definition: collier_global.F90:56
collier_global::pointscntd_cll
integer pointscntd_cll
Definition: collier_global.F90:51
collier_global::critpointscntb2_cll
integer critpointscntb2_cll
Definition: collier_global.F90:66
collier_global::maxerroutcoli_cll
integer maxerroutcoli_cll
Definition: collier_global.F90:34
collier_init::getnerroutdd_cll
subroutine getnerroutdd_cll(nerrout)
Definition: collier_init.F90:3231
collier_init::switchoffirrational_cll
subroutine switchoffirrational_cll()
Definition: collier_init.F90:1157
collier_global::critpointscnttn2_cll
integer, dimension(:), allocatable critpointscnttn2_cll
Definition: collier_global.F90:74
collier_global::stdout_cll
integer stdout_cll
Definition: collier_global.F90:37
collier_init::setmaxcheckn_cll
subroutine setmaxcheckn_cll(npoints, N)
Definition: collier_init.F90:3771
collier_global::maxcheckec_cll
integer maxcheckec_cll
Definition: collier_global.F90:92
collier_global::pointscntb_dd
integer pointscntb_dd
Definition: collier_global.F90:82
collier_global::critacc_cll
double precision critacc_cll
Definition: collier_global.F90:30
collier_global::rmax_dd
integer rmax_dd
Definition: collier_global.F90:31
collier_global::rmax5_dd
integer rmax5_dd
Definition: collier_global.F90:31
collier_init::setritmaxbcd_cll
subroutine setritmaxbcd_cll(ritmax_B, ritmax_C, ritmax_D)
Definition: collier_init.F90:2081
collier_global::pointscntften_cll
integer pointscntften_cll
Definition: collier_global.F90:59
collier_init::getnerrout_cll
subroutine getnerrout_cll(nerrout)
Definition: collier_init.F90:3097
collier_global::pointscntdbten_cll
integer pointscntdbten_cll
Definition: collier_global.F90:59
collier_init::seterrflag_cll
subroutine seterrflag_cll(val)
Definition: collier_init.F90:2158
collier_init::setmaxerroutdd_cll
subroutine setmaxerroutdd_cll(val)
Definition: collier_init.F90:2383
collier_global::accpointscnteten_cll
integer accpointscnteten_cll
Definition: collier_global.F90:56
collier_global::critpointscntg2_cll
integer critpointscntg2_cll
Definition: collier_global.F90:66
collier_global::pointscnta_coli
integer pointscnta_coli
Definition: collier_global.F90:76
collier_init::setmaxcritpointsn_cll
subroutine setmaxcritpointsn_cll(npoints, N)
Definition: collier_init.F90:3871
collier_init::getnerroutcoli_cll
subroutine getnerroutcoli_cll(nerrout)
Definition: collier_init.F90:3160
coli_aux2::setprec_coli
subroutine setprec_coli(dprec)
Definition: coli_aux2.F90:417
init_dd_global
subroutine init_dd_global(nmax_in, ritmax_in)
Definition: DD_global.F90:85
collier_global::accpointscnta2_cll
integer accpointscnta2_cll
Definition: collier_global.F90:69
collier_global::pointscntaten_dd
integer pointscntaten_dd
Definition: collier_global.F90:85
collier_global::critpointscntbten_cll
integer critpointscntbten_cll
Definition: collier_global.F90:53
collier_global::calcuv_cll
logical calcuv_cll
Definition: collier_global.F90:39
collier_global::fname_checkout_cp_cll
character(len=99) fname_checkout_cp_cll
Definition: collier_global.F90:115
collier_init::getoutputfolder_cll
subroutine getoutputfolder_cll(fname)
Definition: collier_init.F90:3565
collier_global::accpointscnttnten_cll
integer, dimension(:), allocatable accpointscnttnten_cll
Definition: collier_global.F90:62
collier_global::maxcheckdb_cll
integer maxcheckdb_cll
Definition: collier_global.F90:91
collier_global::errcnt
integer, dimension(-10:1) errcnt
Definition: collier_global.F90:94
collier_init::initerrflag_cll
subroutine initerrflag_cll()
Definition: collier_init.F90:2141
collier_global::ncpout2_cp_cll
integer ncpout2_cp_cll
Definition: collier_global.F90:111
collier_global::fname_infoutcoli_cll
character(len=99) fname_infoutcoli_cll
Definition: collier_global.F90:108
collier_global::ninfoutcoli_cp_cll
integer ninfoutcoli_cp_cll
Definition: collier_global.F90:110
collier_global::acccnt
integer, dimension(-2:1) acccnt
Definition: collier_global.F90:94
collier_init::setnstatsoutcoli_cll
subroutine setnstatsoutcoli_cll(nstatsout)
Definition: collier_init.F90:3369
collier_init::initcritpointscntcoli_cll
subroutine initcritpointscntcoli_cll(val)
Definition: collier_init.F90:2499
collier_init::setninfoutcoli_cll
subroutine setninfoutcoli_cll(ninfout)
Definition: collier_init.F90:2991
collier_aux
Definition: collier_aux.F90:23
collier_global::pointscnta_dd
integer pointscnta_dd
Definition: collier_global.F90:82
collier_init::seterroutlev_cll
subroutine seterroutlev_cll(erroutlev)
Definition: collier_init.F90:1618
collier_init::getncheckout_cll
subroutine getncheckout_cll(ncheckout)
Definition: collier_init.F90:3291
collier_global::critpointscnttnten_cll
integer, dimension(:), allocatable critpointscnttnten_cll
Definition: collier_global.F90:62
collier_global::accpointscntb2_cll
integer accpointscntb2_cll
Definition: collier_global.F90:69
coli_aux2::seterroutlev_coli
subroutine seterroutlev_coli(erroutlev)
Definition: coli_aux2.F90:277
collier_global::errcntcoli
integer, dimension(-10:0) errcntcoli
Definition: collier_global.F90:94
collier_init::initcheckcnt_cll
subroutine initcheckcnt_cll(noreset)
Definition: collier_init.F90:3673
collier_global::fname_infout_cll
character(len=99) fname_infout_cll
Definition: collier_global.F90:107
collier_init::setmaxcritpoints_cll
Definition: collier_init.F90:41
collier_global::critpointscnttn_cll
integer, dimension(:), allocatable critpointscnttn_cll
Definition: collier_global.F90:61
collier_global::fname_cpout2_cll
character(len=99) fname_cpout2_cll
Definition: collier_global.F90:106
collier_init::setreqacc_cll
subroutine setreqacc_cll(acc)
Definition: collier_init.F90:1823
collier_global::pointscnttnten_cll
integer, dimension(:), allocatable pointscnttnten_cll
Definition: collier_global.F90:62
collier_global::pointscntf_dd
integer pointscntf_dd
Definition: collier_global.F90:82
collier_init::setcritacc_cll
subroutine setcritacc_cll(acc)
Definition: collier_init.F90:1886
collier_global::critpointscntcten_cll
integer critpointscntcten_cll
Definition: collier_global.F90:53
collier_init::getdeltauv_cll
subroutine getdeltauv_cll(delta)
Definition: collier_init.F90:820
collier_global::ncpoutcoli_cp_cll
integer ncpoutcoli_cp_cll
Definition: collier_global.F90:111
collier_init::propagateerrflag_cll
subroutine propagateerrflag_cll()
Definition: collier_init.F90:2194
collier_global::accpointscntd2_cll
integer accpointscntd2_cll
Definition: collier_global.F90:69
collier_global::accpointscntg2_cll
integer accpointscntg2_cll
Definition: collier_global.F90:69
collier_global::errcnt_cll
integer errcnt_cll
Definition: collier_global.F90:33
coli_aux2::setacc_coli
subroutine setacc_coli(reqacc, critacc)
Definition: coli_aux2.F90:445
collier_global::pointscntften_coli
integer pointscntften_coli
Definition: collier_global.F90:79
collier_init::initmonitoring_cll
subroutine initmonitoring_cll()
Definition: collier_init.F90:2766
collier_init::setmaxcritpointsdb_cll
subroutine setmaxcritpointsdb_cll(npoints)
Definition: collier_init.F90:3820
collier_global::maxerroutdd_cll
integer maxerroutdd_cll
Definition: collier_global.F90:34
collier_global::diffcnt_cll
integer, dimension(:), allocatable diffcnt_cll
Definition: collier_global.F90:89
collier_global::infcnt_cll
integer infcnt_cll
Definition: collier_global.F90:33
collier_init::getnt_cll
integer function getnt_cll(r)
Definition: collier_init.F90:1132
collier_init::initcheckcntdb_cll
subroutine initcheckcntdb_cll
Definition: collier_init.F90:3626
collier_global::nmax_cll
integer nmax_cll
Definition: collier_global.F90:44
coli_aux2::seterrflag_coli
subroutine seterrflag_coli(err)
Definition: coli_aux2.F90:138
collier_global::critpointscntdbten_cll
integer critpointscntdbten_cll
Definition: collier_global.F90:53
collier_global::fname_erroutcoli_cp_cll
character(len=99) fname_erroutcoli_cp_cll
Definition: collier_global.F90:112
collier_global::pointscntbten_dd
integer pointscntbten_dd
Definition: collier_global.F90:85
collier_global::rmax_cll
integer rmax_cll
Definition: collier_global.F90:44
collier_global::pointscnttn_coli
integer, dimension(:), allocatable pointscnttn_coli
Definition: collier_global.F90:78
inittensors::init_tables2
subroutine init_tables2(Nm1, rmax)
Definition: InitTensors.F90:52
collier_init::getmode_cll
subroutine getmode_cll(mode)
Definition: collier_init.F90:650
collier_init::reset_cll
subroutine reset_cll
Definition: collier_init.F90:407
collier_global::accpointscntf2_cll
integer accpointscntf2_cll
Definition: collier_global.F90:69
collier_init::initoutchan_cp_cll
subroutine initoutchan_cp_cll
Definition: collier_init.F90:2897