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)