6 subroutine genwfsvp(tsh,tgp,nst,idx,ngridg_,igfft_,vpl,ngp,igpig,wfmt,ld,wfir)
10 logical,
intent(in) :: tsh,tgp
11 integer,
intent(in) :: nst,idx(*),ngridg_(3),igfft_(*)
12 real(8),
intent(in) :: vpl(3)
13 integer,
intent(out) :: ngp(nspnfv),igpig(ngkmax,nspnfv)
14 complex(8),
intent(out) :: wfmt(npcmtmax,natmtot,nspinor,nst)
15 integer,
intent(in) :: ld
16 complex(8),
intent(out) :: wfir(ld,nspinor,nst)
21 real(8) vgpl(3,ngkmax,nspnfv),vgpc(3,ngkmax),gpc(ngkmax)
23 complex(8),
allocatable :: sfacgp(:,:),apwalm(:,:,:,:,:)
24 complex(8),
allocatable :: evecfv(:,:,:),evecsv(:,:)
25 allocate(sfacgp(ngkmax,natmtot))
30 vc(1:3)=
bvec(1:3,1)*vpl(1)+
bvec(1:3,2)*vpl(2)+
bvec(1:3,3)*vpl(3)
34 vl(1:3)=vl(1:3)+0.5d0*
vqlss(1:3)
35 vc(1:3)=vc(1:3)+0.5d0*
vqcss(1:3)
37 vl(1:3)=vl(1:3)-0.5d0*
vqlss(1:3)
38 vc(1:3)=vc(1:3)-0.5d0*
vqcss(1:3)
42 call gengkvec(
ngvc,
ivg,
vgc,vl,vc,
gkmax,ngkmax,ngp(ispn),igpig(:,ispn), &
43 vgpl(:,:,ispn),vgpc,gpc)
45 call gensfacgp(ngp(ispn),vgpc,ngkmax,sfacgp)
47 call match(ngp(ispn),vgpc,gpc,sfacgp,apwalm(:,:,:,:,ispn))
55 call genwfsv(tsh,tgp,nst,idx,ngridg_,igfft_,ngp,igpig,apwalm,evecfv,evecsv, &
57 deallocate(apwalm,evecfv,evecsv)
subroutine getevecsv(fext, ikp, vpl, evecsv)
pure subroutine gensfacgp(ngp, vgpc, ld, sfacgp)
subroutine genwfsv(tsh, tgp, nst, idx, ngridg_, igfft_, ngp, igpig, apwalm, evecfv, evecsv, wfmt, ld, wfir)
subroutine getevecfv(fext, ikp, vpl, vgpl, evecfv)
subroutine match(ngp, vgpc, gpc, sfacgp, apwalm)
real(8), dimension(3) vqlss
real(8), dimension(:,:), allocatable vgc
real(8), dimension(3, 3) bvec
integer, dimension(:,:), allocatable ivg
real(8), dimension(3) vqcss
pure subroutine gengkvec(ngv, ivg, vgc, vkl, vkc, gkmax, ngkmax, ngk, igkig, vgkl, vgkc, gkc)
subroutine genwfsvp(tsh, tgp, nst, idx, ngridg_, igfft_, vpl, ngp, igpig, wfmt, ld, wfir)