25 use,
intrinsic :: iso_fortran_env
39 integer,
parameter :: mask_n = 201
40 real(real64) :: mask_x(mask_n), mask_y(mask_n)
46 type(spline_t),
intent(inout) :: spl
47 integer,
intent(in) :: l
48 real(real64),
intent(in) :: qmax, alpha, beta_fs, rcut, beta_rs
49 real(real64),
intent(in) :: threshold
51 type(spline_t) :: splw
73 iunit =
io_open(trim(
conf%share)//
"/filter_mask.data", action=
'read', status=
'old')
76 read(iunit, *) mask_x(i), mask_y(i)
87 type(spline_t),
intent(inout) :: spl
88 integer,
intent(in) :: l
89 real(real64),
intent(in) :: rmax
90 real(real64),
intent(in) :: qmax
91 real(real64),
intent(in) :: alpha
92 real(real64),
intent(in) :: gamma
93 real(real64),
intent(in) :: threshold
95 type(spline_t) :: mask, splw
96 real(real64) :: local_mask_x(mask_n), rcut, beta
106 local_mask_x = mask_x*rcut
107 call spline_fit(mask_n, local_mask_x, mask_y, mask)
117 beta =
log(1.e5_real64)/(alpha -
m_one)**2
Some operations may be done for one spline-function, or for an array of them.
double log(double __x) __attribute__((__nothrow__
real(real64), parameter, public m_four
real(real64), parameter, public m_epsilon
type(conf_t), public conf
Global instance of Octopus configuration.
real(real64), parameter, public m_one
subroutine, public io_close(iunit, grp)
integer function, public io_open(file, namespace, action, status, form, position, die, recl, grp)
subroutine, public spline_filter_mask(spl, l, rmax, qmax, alpha, gamma, threshold)
subroutine, public spline_filter_mask_init()
subroutine, public spline_filter_bessel(spl, l, qmax, alpha, beta_fs, rcut, beta_rs, threshold)
subroutine, public spline_fit(nrc, rofi, ffit, spl, threshold)
subroutine, public spline_besselft(spl, splw, l, threshold, gmax)
subroutine, public spline_cut(spl, cutoff, beta, threshold)
subroutine, public spline_div(spla, splb, threshold)
Returns the values of spla divided by the values of splb.
subroutine, public spline_mult(spla, splb, threshold)