6subroutine zfpts(np,vrl,zfmt,zfir,fp)
11integer,
intent(in) :: np
12real(8),
intent(in) :: vrl(3,np)
13complex(8),
intent(in) :: zfmt(npcmtmax,natmtot),zfir(ngtot)
14complex(8),
intent(out) :: fp(np)
18complex(8),
allocatable :: zfft(:)
21zfft(1:ngtot)=zfir(1:ngtot)
41integer,
intent(in) :: ip
43integer is,ias,nrc,nrci
44integer ir,irc,irc0,i0,j
45integer lmax,lmmax,lm,ig
49complex(8) ya(4,lmmaxo),ylm(lmmaxo)
60 else if (irc > nrc-2)
then
66 if (irc0 <= nrci)
then
78 i0=
lmmaxi*nrci+lmmaxo*(irc-nrci-1)
80 ya(j,1:lmmax)=zfmt(i0+1:i0+lmmax,ias)
91 v(1:3)=vrl(1,ip)*
avec(1:3,1)+vrl(2,ip)*
avec(1:3,2)+vrl(3,ip)*
avec(1:3,3)
95 t1=
vgc(1,ig)*v(1)+
vgc(2,ig)*v(2)+
vgc(3,ig)*v(3)
96 zsm=zsm+zfft(
igfft(ig))*cmplx(cos(t1),sin(t1),8)
102pure complex(8) function poly4(xa,ya,x)
105real(8),
intent(in) :: xa(4),x
106complex(8),
intent(in) :: ya(4)
108real(8) x0,x1,x2,x3,t0,t1,t2,t3,t4
109complex(8) y0,y1,y2,y3,z1,z2,z3,c1,c2,c3
112x1=xa(2)-x0; x2=xa(3)-x0; x3=xa(4)-x0
113t1=x1-x2; t2=x1-x3; t3=x2-x3
115y1=ya(2)-y0; y2=ya(3)-y0; y3=ya(4)-y0
116z1=x1*x2*y3; z2=x2*x3*y1; t4=x1*x3
117t0=1.d0/(x2*t1*t2*t3*t4)
120t1=x1**2; t2=x2**2; t3=x3**2
121c2=z1*(t2-t1)+z2*(t3-t2)+z3*(t1-t3)
122c1=z1*(x2*t1-x1*t2)+z2*(x3*t2-x2*t3)+z3*(x1*t3-x3*t1)
125poly4=y0+t0*t1*(c1+t1*(c2+c3*t1))
subroutine findmtpt(vrl, ias, ir, v, r)
pure subroutine genylmv(t4pil, lmax, v, ylm)
integer, dimension(3) ngridg
real(8), dimension(:,:), allocatable rcmt
integer, dimension(maxspecies) nrcmt
integer, dimension(maxatoms *maxspecies) idxis
real(8), dimension(3, 3) avec
integer, dimension(:), allocatable igfft
real(8), dimension(:,:), allocatable vgc
integer, dimension(maxspecies) nrcmti
subroutine holdthd(nloop, nthd)
pure real(8) function poly4(xa, ya, x)
subroutine zfftifc(nd, n, sgn, z)
subroutine zfpts(np, vrl, zfmt, zfir, fp)