23 use,
intrinsic :: iso_fortran_env
47 integer,
intent(in) :: itype
48 integer,
intent(in) :: nd
49 integer,
intent(out) :: nrange
50 real(real64),
dimension(0:nd),
intent(out) :: a,x
52 real(real64),
dimension(:),
allocatable :: y
60 message(1) =
"Only interpolating functions 8, 14, 16, 20, 24, 30, 40, 50, 60, 100."
93 a(i) = 1._real64 * i * ni / nd - (.5_real64 * ni - 1._real64)
112 subroutine scf_recursion(itype,n_iter,n_range,kernel_scf,kern_1_scf)
113 integer,
intent(in) :: itype,n_iter,n_range
114 real(kind=8), intent(inout) :: kernel_scf(-n_range:n_range)
115 real(kind=8), intent(out) :: kern_1_scf(-n_range:n_range)
122 message(1) =
"Only interpolating functions 8, 14, 16, 20, 24, 30, 40, 50, 60, 100."
148 integer,
intent(in) :: nd,nt
149 real(kind=8), intent(in) :: x(0:nd-1)
150 real(kind=8), intent(out) :: y(0:nd-1)
155#include "lazy_8_inc.F90"
170 if (ind >= nt/2)
then
177 y(2*i+0)=y(2*i+0) + ch(2*j-0)*x(ind)+cg(2*j-0)*x(ind+nt/2)
178 y(2*i+1)=y(2*i+1) + ch(2*j+1)*x(ind)+cg(2*j+1)*x(ind+nt/2)
197 integer,
intent(in) :: n_iter,n_range
198 real(kind=8), intent(inout) :: kernel_scf(-n_range:n_range)
199 real(kind=8), intent(out) :: kern_1_scf(-n_range:n_range)
201 real(kind=8) :: kern,kern_tot
202 integer :: i_iter,i,j,ind
205#include "lazy_8_inc.F90"
208 loop_iter_scf:
do i_iter=1,n_iter
209 kern_1_scf(:) = kernel_scf(:)
210 kernel_scf(:) = 0._real64
211 loop_iter_i:
do i=0,n_range
215 if (abs(ind) > n_range)
then
218 kern = kern_1_scf(ind)
220 kern_tot = kern_tot + ch(j)*kern
222 if (abs(kern_tot) <= 1d-150)
then
226 kernel_scf( i) = 0.5_real64*kern_tot
227 kernel_scf(-i) = kernel_scf(i)
--------------— copy ---------------— Copies a vector, x, to a vector, y.
This module contains interfaces for BLAS routines You should not use these routines directly....
character(len=256), dimension(max_lines), public message
to be output by fatal, warning
subroutine, public messages_fatal(no_lines, only_root_writes, namespace)
subroutine scf_recursion_8(n_iter, n_range, kernel_scf, kern_1_scf)
subroutine back_trans_8(nd, nt, x, y)
subroutine, public scaling_function(itype, nd, nrange, a, x)
subroutine, public scf_recursion(itype, n_iter, n_range, kernel_scf, kern_1_scf)