11integer,
intent(in) :: ik2
13integer ik1,ist1,ist2,jst1,jst2
14integer i1,i2,j1,j2,a1,a2,b1,b2
15integer iv(3),iq,ig,jg,nthd
16real(8) vl(3),vc(3),t0,t1,t2
21integer,
allocatable :: igpig(:,:)
22real(8),
allocatable :: vgqc(:,:),gqc(:),gclgq(:),jlgqr(:,:,:)
23complex(8),
allocatable :: ylmgq(:,:),sfacgq(:,:)
24complex(4),
allocatable :: wfmt1(:,:,:,:),wfir1(:,:,:)
25complex(4),
allocatable :: wfmt2(:,:,:,:),wfir2(:,:,:)
26complex(4),
allocatable :: crhomt(:,:),crhoir(:)
27complex(8),
allocatable :: zvv(:,:,:),zcc(:,:,:)
28complex(8),
allocatable :: zvc(:,:,:),zcv(:,:,:)
29complex(8),
allocatable :: epsi(:,:,:)
30allocate(igpig(
ngkmax,nspnfv))
43call genwfsvp_sp(.false.,.false.,
nstsv,[0],
ngdgc,
igfc,
vkl(:,ik2),ngp,igpig, &
48 call genwfsvp_sp(.false.,.false.,
nstsv,[0],
ngdgc,
igfc,
vkl(:,ik1),ngp,igpig, &
51 iv(:)=
ivk(:,ik1)-
ivk(:,ik2)
52 iv(:)=modulo(iv(:),
ngridk(:))
53 iq=
ivqiq(iv(1),iv(2),iv(3))
55 vl(:)=
vkl(:,ik1)-
vkl(:,ik2)
56 vc(:)=
vkc(:,ik1)-
vkc(:,ik2)
58 call gengqf(
ngrf,vc,vgqc,gqc,jlgqr,ylmgq,sfacgq)
62 gclgq(:)=sqrt(gclgq(:))
74 call gencrho(.true.,.true.,
ngtc,wfmt2(:,:,:,ist2),wfir2(:,:,ist2), &
75 wfmt1(:,:,:,ist1),wfir1(:,:,ist1),crhomt,crhoir)
76 call zftcf(
ngrf,jlgqr,ylmgq,
ngrf,sfacgq,crhomt,crhoir,zvv(:,i1,i2))
80 deallocate(crhomt,crhoir)
94 call gencrho(.true.,.true.,
ngtc,wfmt2(:,:,:,jst2),wfir2(:,:,jst2), &
95 wfmt1(:,:,:,jst1),wfir1(:,:,jst1),crhomt,crhoir)
96 call zftcf(
ngrf,jlgqr,ylmgq,
ngrf,sfacgq,crhomt,crhoir,zcc(:,j1,j2))
100 deallocate(crhomt,crhoir)
116 call gencrho(.true.,.true.,
ngtc,wfmt2(:,:,:,jst2),wfir2(:,:,jst2), &
117 wfmt1(:,:,:,ist1),wfir1(:,:,ist1),crhomt,crhoir)
118 call zftcf(
ngrf,jlgqr,ylmgq,
ngrf,sfacgq,crhomt,crhoir,zvc(:,i1,j2))
122 deallocate(crhomt,crhoir)
136 call gencrho(.true.,.true.,
ngtc,wfmt2(:,:,:,ist2),wfir2(:,:,ist2), &
137 wfmt1(:,:,:,jst1),wfir1(:,:,jst1),crhomt,crhoir)
138 call zftcf(
ngrf,jlgqr,ylmgq,
ngrf,sfacgq,crhomt,crhoir,zcv(:,j1,i2))
142 deallocate(crhomt,crhoir)
161 z1=z1+t2*epsi(ig,jg,1)*conjg(zcc(ig,j1,j2))*zvv(jg,i1,i2)
175 z1=z1+t2*epsi(ig,jg,1)*conjg(zcv(ig,j1,i2))*zvc(jg,i1,j2)
189deallocate(igpig,vgqc,gqc,gclgq,jlgqr)
190deallocate(ylmgq,sfacgq)
191deallocate(wfmt1,wfmt2,wfir1,wfir2)
192deallocate(zvv,zcc,epsi)
193if (
bsefull)
deallocate(zvc,zcv)
integer, dimension(:,:), allocatable istbse
integer, dimension(3) ngdgc
integer, dimension(:,:), allocatable ivk
complex(8), dimension(:,:), allocatable hmlbse
integer, dimension(:,:,:), allocatable ivqiq
integer, dimension(:), allocatable igfc
integer, dimension(:,:,:), allocatable ijkbse
integer, dimension(:,:), allocatable jstbse
integer, dimension(3) ngridk
real(8), dimension(:,:), allocatable vkl
real(8), dimension(:,:), allocatable vkc