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