23  use, 
intrinsic :: iso_fortran_env
 
   41    real(real64) function c_poisson_cutoff_3d_1d_finite(gx, gperp, xsize, rsize)
 
   42      use, 
intrinsic :: iso_fortran_env
 
   44      real(real64), 
intent(in) :: gx, gperp, rsize, xsize
 
   45    end function c_poisson_cutoff_3d_1d_finite
 
   49    real(real64) function c_poisson_cutoff_2d_0d(x, y)
 
   50      use, 
intrinsic :: iso_fortran_env
 
   52      real(real64), 
intent(in) :: x, y
 
   53    end function c_poisson_cutoff_2d_0d
 
   57    real(real64) function c_poisson_cutoff_2d_1d(gy, gx, r_c)
 
   58      use, 
intrinsic :: iso_fortran_env
 
   60      real(real64), 
intent(in) :: gy, gx, r_c
 
   61    end function c_poisson_cutoff_2d_1d
 
   65    real(real64) function c_poisson_cutoff_1d_0d(g, a, r_c)
 
   66      use, 
intrinsic :: iso_fortran_env
 
   68      real(real64), 
intent(in) :: g, a, r_c
 
   69    end function c_poisson_cutoff_1d_0d
 
   73    real(real64) function intcoslog(mu, gy, gx)
 
   74      use, 
intrinsic :: iso_fortran_env
 
   76      real(real64), 
intent(in) :: mu, gy, gx
 
   77    end function intcoslog
 
   85  real(real64) function poisson_cutoff_3D_0D(x, r) result(cutoff)
 
   86    real(real64), 
intent(in) ::  x, r
 
   90    cutoff = m_one - 
cos(x*r)
 
   97  real(real64) function poisson_cutoff_3D_1D(x, p, rmax) result(cutoff)
 
   98    real(real64), 
intent(in) ::  x, p, rmax
 
  101    real(real64) :: dr, r, sum
 
  103    integer, 
parameter :: nr = 1000_real64
 
  107    if (abs(x) < m_epsilon) 
then 
  109      dr = rmax/real(nr, real64)
 
  113        sum = sum - m_four*r*loct_bessel_j0(p*r)*
log(r)
 
  115        sum = sum - m_two*r*loct_bessel_j0(p*r)*
log(r)
 
  117      sum = sum - rmax*loct_bessel_j0(p*rmax)*
log(rmax)
 
  118      cutoff = (p**2)*m_third*sum*dr
 
  120      cutoff = m_one + p*rmax*loct_bessel_j1(p*rmax)*loct_bessel_k0(x*rmax) &
 
  121        - x*rmax*loct_bessel_j0(p*rmax)*loct_bessel_k1(x*rmax)
 
  127  real(real64) function poisson_cutoff_3D_2D(p, z, r) result(cutoff)
 
  128    real(real64), 
intent(in) ::  p, z, r
 
  132    if (abs(p) < m_epsilon) 
then 
  135      cutoff = m_one + 
exp(-p*r)*(z*
sin(z*r)/p-
cos(z*r))
 
double log(double __x) __attribute__((__nothrow__
 
double exp(double __x) __attribute__((__nothrow__
 
double sin(double __x) __attribute__((__nothrow__
 
double cos(double __x) __attribute__((__nothrow__
 
real(real64) function, public poisson_cutoff_3d_2d(p, z, r)
 
real(real64) function, public poisson_cutoff_3d_1d(x, p, rmax)
 
real(real64) function, public poisson_cutoff_3d_0d(x, r)