globals.f90 1.53 KB
Newer Older
1 2 3 4

MODULE globals
  implicit none

5

6
  integer, parameter :: prec = selected_real_kind(15,32)  
ulrich_y's avatar
ulrich_y committed
7 8
  real(kind=prec), parameter :: zero = 1e-15_prec     ! values smaller than this count as zero
  real(kind=prec), parameter :: pi = 3.14159265358979323846_prec
9

10
  ! The following parameters control the accuracy of the evaluation
ulrich_y's avatar
ulrich_y committed
11 12 13
  real(kind=prec), protected :: MPLdel = 1e-15_prec      ! if the MPL sum changes less then del it is truncated.
  integer, protected :: PolylogInfinity = 1000           ! expansion order for Polylogs
  real(kind=prec), protected :: HoelderCircle = 1.1_prec ! when to apply Hoelder convolution?
ulrich_y's avatar
ulrich_y committed
14 15
  integer, parameter :: PolyLogCacheSize(2) = (/ 5, 100 /)
        ! = (/ mmax, n /). At most n polylogs with weight mmax will be cached
16

ulrich_y's avatar
ulrich_y committed
17
  complex(kind=prec), parameter :: i_ = (0.,1._prec)
Luca's avatar
readme  
Luca committed
18
  integer :: verb = 0
Luca's avatar
Luca committed
19 20

CONTAINS 
21
  
ulrich_y's avatar
ulrich_y committed
22
#ifdef DEBUG
Luca's avatar
Luca committed
23 24 25 26 27 28 29 30 31 32 33
  SUBROUTINE parse_cmd_args
    integer :: i
    character(len=32) :: arg
    i = 0
    do
      call get_command_argument(i, arg)
      if (len_trim(arg) == 0) exit

      ! parse verbosity
      if(trim(arg) == '-verb') then
        call get_command_argument(i+1,arg)
Luca's avatar
readme  
Luca committed
34
        read(arg,*) verb               ! str to int
Luca's avatar
Luca committed
35 36 37 38 39
      end if

      i = i+1
    end do
  END SUBROUTINE parse_cmd_args
ulrich_y's avatar
ulrich_y committed
40
#endif
41

ulrich_y's avatar
ulrich_y committed
42 43 44 45
  SUBROUTINE SET_OPTIONS(mpldel, liinf, hcircle)
    real(kind=prec), optional :: hcircle, mpldel
    integer, optional :: liinf
    if (present(mpldel)) MPLdel = mpldel
ulrich_y's avatar
ulrich_y committed
46 47 48 49
    if (present(liinf)) PolyLogInfinity = liinf
    if (present(hcircle)) HoelderCircle = hcircle
  END SUBROUTINE

50
END MODULE globals