6 subroutine zfpts(np,vrl,zfmt,zfir,fp)
11 integer,
intent(in) :: np
12 real(8),
intent(in) :: vrl(3,np)
13 complex(8),
intent(in) :: zfmt(npcmtmax,natmtot),zfir(ngtot)
14 complex(8),
intent(out) :: fp(np)
18 complex(8),
allocatable :: zfft(:)
21 zfft(1:ngtot)=zfir(1:ngtot)
40 integer,
intent(in) :: ip
42 integer is,ias,nrc,nrci
43 integer ir,irc,irc0,i0,j
44 integer lmax,lmmax,lm,ig
48 complex(8) ya(4,lmmaxo),ylm(lmmaxo)
59 else if (irc > nrc-2)
then 65 if (irc0 <= nrci)
then 77 i0=
lmmaxi*nrci+lmmaxo*(irc-nrci-1)
79 ya(j,1:lmmax)=zfmt(i0+1:i0+lmmax,ias)
90 v(1:3)=vrl(1,ip)*
avec(1:3,1)+vrl(2,ip)*
avec(1:3,2)+vrl(3,ip)*
avec(1:3,3)
94 t1=
vgc(1,ig)*v(1)+
vgc(2,ig)*v(2)+
vgc(3,ig)*v(3)
95 zsm=zsm+zfft(
igfft(ig))*cmplx(cos(t1),sin(t1),8)
101 pure complex(8) function poly4(xa,ya,x)
104 real(8),
intent(in) :: xa(4),x
105 complex(8),
intent(in) :: ya(4)
107 real(8) x0,x1,x2,x3,t0,t1,t2,t3,t4
108 complex(8) y0,y1,y2,y3,z1,z2,z3,c1,c2,c3
111 x1=xa(2)-x0; x2=xa(3)-x0; x3=xa(4)-x0
112 t1=x1-x2; t2=x1-x3; t3=x2-x3
114 y1=ya(2)-y0; y2=ya(3)-y0; y3=ya(4)-y0
115 z1=x1*x2*y3; z2=x2*x3*y1; t4=x1*x3
116 t0=1.d0/(x2*t1*t2*t3*t4)
119 t1=x1**2; t2=x2**2; t3=x3**2
120 c2=z1*(t2-t1)+z2*(t3-t2)+z3*(t1-t3)
121 c1=z1*(x2*t1-x1*t2)+z2*(x3*t2-x2*t3)+z3*(x1*t3-x3*t1)
124 poly4=y0+t0*t1*(c1+t1*(c2+c3*t1))
real(8), dimension(:,:), allocatable rcmt
integer, dimension(3) ngridg
subroutine findmtpt(vrl, ias, ir, v, r)
pure subroutine genylmv(t4pil, lmax, v, ylm)
real(8), dimension(:,:), allocatable vgc
subroutine zfftifc(nd, n, sgn, z)
subroutine zfpts(np, vrl, zfmt, zfir, fp)
integer, dimension(:), allocatable igfft
real(8), dimension(3, 3) avec
integer, dimension(maxatoms *maxspecies) idxis
subroutine holdthd(nloop, nthd)
integer, dimension(maxspecies) nrcmt
integer, dimension(maxspecies) nrcmti
pure real(8) function poly4(xa, ya, x)