6 subroutine deveqnfv(ngp,ngpq,igpig,igpqig,vgpc,vgpqc,evalfv,apwalm,apwalmq, &
7 dapwalm,dapwalmq,evecfv,devalfvp,devecfv)
13 integer,
intent(in) :: ngp,ngpq
14 integer,
intent(in) :: igpig(ngkmax),igpqig(ngkmax)
15 real(8),
intent(in) :: vgpc(3,ngkmax),vgpqc(3,ngkmax)
16 real(8),
intent(in) :: evalfv(nstfv)
17 complex(8),
intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot)
18 complex(8),
intent(in) :: apwalmq(ngkmax,apwordmax,lmmaxapw,natmtot)
19 complex(8),
intent(in) :: dapwalm(ngkmax,apwordmax,lmmaxapw)
20 complex(8),
intent(in) :: dapwalmq(ngkmax,apwordmax,lmmaxapw)
21 complex(8),
intent(in) :: evecfv(nmatmax,nstfv)
22 real(8),
intent(out) :: devalfvp(nstfv)
23 complex(8),
intent(out) :: devecfv(nmatmax,nstfv)
30 real(8),
allocatable :: w(:)
31 complex(8),
allocatable :: h(:,:),o(:,:),dh(:,:),od(:,:),x(:),y(:)
33 real(8),
external :: ddot
37 allocate(h(nmq,nmq),o(nmq,nmq))
43 call hmlfv(nmq,ngpq,igpqig,vgpqc,apwalmq,h)
45 call olpfv(nmq,ngpq,igpqig,apwalmq,o)
53 allocate(dh(nmq,nm),od(nmq,nm))
59 call dhmlistl(ngp,ngpq,igpig,igpqig,vgpc,vgpqc,nmq,dh)
60 dh(ngpq+1:nmq,1:ngp)=0.d0
61 dh(1:nmq,ngp+1:nm)=0.d0
64 call dhmlaa(is,ias,ngp,ngpq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),dapwalm, &
66 call dhmlalo(is,ias,ngp,ngpq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),dapwalm, &
68 call dhmllolo(is,ias,ngp,ngpq,nmq,dh)
71 call dolpistl(ngp,ngpq,igpig,igpqig,nmq,od)
72 od(ngpq+1:nmq,1:ngp)=0.d0
73 od(1:nmq,ngp+1:nm)=0.d0
76 call dolpaa(is,ias,ngp,ngpq,apwalm(:,:,:,ias),apwalmq(:,:,:,ias),dapwalm, &
78 call dolpalo(is,ias,ngp,ngpq,dapwalm,dapwalmq,nmq,od)
82 allocate(x(nmq),y(nmq))
87 call zgemv(
'N',nmq,nm,z1,od,nmq,evecfv(:,jst),1,
zzero,x,1)
88 call zgemv(
'N',nmq,nm,
zone,dh,nmq,evecfv(:,jst),1,
zone,x,1)
91 devalfvp(jst)=ddot(2*nmq,evecfv(:,jst),1,x,1)
95 call zgemv(
'C',nmq,nmq,
zone,h,nmq,x,1,
zzero,y,1)
104 call zgemv(
'N',nmq,nmq,
zone,h,nmq,y,1,
zzero,devecfv(:,jst),1)
106 deallocate(w,h,dh,od,x,y)
pure subroutine dolpistl(ngp, ngpq, igpig, igpqig, ld, od)
subroutine dhmlaa(is, ias, ngp, ngpq, apwalm, apwalmq, dapwalm, dapwalmq, ld, dh)
subroutine olpfv(nmatp, ngp, igpig, apwalm, o)
complex(8), parameter zone
pure subroutine dhmlistl(ngp, ngpq, igpig, igpqig, vgpc, vgpqc, ld, dh)
subroutine dolpaa(is, ias, ngp, ngpq, apwalm, apwalmq, dapwalm, dapwalmq, ld, od)
complex(8), parameter zzero
integer, dimension(maxatoms *maxspecies) idxis
subroutine deveqnfv(ngp, ngpq, igpig, igpqig, vgpc, vgpqc, evalfv, apwalm, apwalmq, dapwalm, dapwalmq, evecfv, devalfvp, devecfv)
subroutine holdthd(nloop, nthd)
pure subroutine dhmllolo(is, ias, ngp, ngpq, ld, dh)
pure subroutine dolpalo(is, ias, ngp, ngpq, dapwalm, dapwalmq, ld, od)
subroutine zhegvdi(n, ld, a, b, w)
subroutine hmlfv(nmatp, ngp, igpig, vgpc, apwalm, h)
pure subroutine dhmlalo(is, ias, ngp, ngpq, apwalm, apwalmq, dapwalm, dapwalmq, ld, dh)