6subroutine genwfpw(vpl,ngp,igpig,vgpl,vgpc,gpc,sfacgp,nhp,vhpc,hpc,sfachp,wfpw)
11real(8),
intent(in) :: vpl(3)
12integer,
intent(in) :: ngp(nspnfv),igpig(ngkmax,nspnfv)
13real(8),
intent(in) :: vgpl(3,ngkmax,nspnfv),vgpc(3,ngkmax,nspnfv)
14real(8),
intent(in) :: gpc(ngkmax,nspnfv)
15complex(8),
intent(in) :: sfacgp(ngkmax,natmtot,nspnfv)
16integer,
intent(in) :: nhp(nspnfv)
17real(8),
intent(in) :: vhpc(3,nhkmax,nspnfv),hpc(nhkmax,nspnfv)
18complex(8),
intent(in) :: sfachp(nhkmax,natmtot,nspnfv)
19complex(8),
intent(out) :: wfpw(nhkmax,nspinor,nstsv)
21integer ispn0,ispn1,ispn,jspn
22integer ist,is,ia,ias,igp,ihp
23integer nrc,nrci,irco,irc
26complex(8) zsm,z1,z2,z3
28real(8) jl(0:lmaxo,nrcmtmax)
31complex(8),
allocatable :: apwalm(:,:,:,:,:),evecfv(:,:,:),evecsv(:,:)
32complex(8),
allocatable :: wfmt(:,:,:,:),wfgp(:,:,:)
34allocate(evecfv(
nmatmax,
nstfv,nspnfv),evecsv(nstsv,nstsv))
35allocate(wfmt(
npcmtmax,natmtot,nspinor,nstsv))
36allocate(wfgp(ngkmax,nspinor,nstsv))
42 call match(ngp(ispn),vgpc(:,:,ispn),gpc(:,ispn),sfacgp(:,:,ispn), &
46call genwfsv(.true.,.true.,nstsv,[0],
ngridg,
igfft,ngp,igpig,apwalm,evecfv, &
47 evecsv,wfmt,ngkmax,wfgp)
48deallocate(apwalm,evecfv,evecsv)
56 ispn0=jspn; ispn1=jspn
58 ispn0=1; ispn1=nspinor
62 v1=vhpc(1,ihp,jspn); v2=vhpc(2,ihp,jspn); v3=vhpc(3,ihp,jspn)
64 t1=abs(v1-vgpc(1,igp,jspn)) &
65 +abs(v2-vgpc(2,igp,jspn)) &
66 +abs(v3-vgpc(3,igp,jspn))
68 wfpw(ihp,ispn0:ispn1,:)=wfgp(igp,ispn0:ispn1,:)
82 ispn0=jspn; ispn1=jspn
84 ispn0=1; ispn1=nspinor
89 call genylmv(.true.,lmaxo,vgpc(:,igp,jspn),ylm)
97 t1=gpc(igp,jspn)*
rcmt(irc,is)
101 t1=gpc(igp,jspn)*
rcmt(irc,is)
102 call sbessel(lmaxo,t1,jl(:,irc))
107 z1=t0*sfacgp(igp,ias,jspn)
110 z2=z1*wfgp(igp,ispn,ist)
117 wfmt(i:i+n,ias,ispn,ist)=wfmt(i:i+n,ias,ispn,ist) &
127 wfmt(i:i+n,ias,ispn,ist)=wfmt(i:i+n,ias,ispn,ist) &
141 ispn0=jspn; ispn1=jspn
143 ispn0=1; ispn1=nspinor
148 call genylmv(.true.,lmaxo,vhpc(:,ihp,jspn),ylm)
155 t1=hpc(ihp,jspn)*
rcmt(irc,is)
159 t1=hpc(ihp,jspn)*
rcmt(irc,is)
160 call sbessel(lmaxo,t1,jl(:,irc))
165 z1=t0*conjg(sfachp(ihp,ias,jspn))
172 z2=jl(0,irc)*wfmt(i,ias,ispn,ist)*ylm(1)
177 z2=z2+jl(l,irc)*sum(wfmt(i:i+n,ias,ispn,ist)*ylm(lm:lm+n))
183 z2=jl(0,irc)*wfmt(i,ias,ispn,ist)*ylm(1)
188 z2=z2+jl(l,irc)*sum(wfmt(i:i+n,ias,ispn,ist)*ylm(lm:lm+n))
194 wfpw(ihp,ispn,ist)=wfpw(ihp,ispn,ist)+z1*zsm
integer, dimension(maxspecies) natoms
real(8), dimension(:,:), allocatable rcmt
integer, dimension(maxatoms, maxspecies) idxas
integer, dimension(maxspecies) nrcmt
real(8), dimension(:,:), allocatable wr2cmt
integer, dimension(:), allocatable igfft
integer, dimension(maxspecies) nrcmti