12 integer,
intent(in) :: ik
14 integer ist,jst,iw,i,nthd
18 complex(8) gs(nstsv),g(nstsv,nstsv),ge(4,nstsv,nstsv)
19 complex(8) evecsv(nstsv,nstsv),d(nstsv,nstsv),a(nstsv,nstsv)
21 complex(8),
allocatable :: se(:,:,:)
23 complex(8),
external :: gwtails
25 allocate(se(nstsv,nstsv,0:
nwfm))
28 d(1:nstsv,1:nstsv)=0.d0
40 gs(ist)=1.d0/(
wfm(iw)-e)
45 g(ist,1:nstsv)=z1*se(ist,1:nstsv,iw)
46 g(ist,ist)=g(ist,ist)+1.d0
53 g(1:nstsv,jst)=g(1:nstsv,jst)*z1
56 d(1:nstsv,1:nstsv)=d(1:nstsv,1:nstsv)+g(1:nstsv,1:nstsv)
63 if (i /= 0) ge(i,1:nstsv,1:nstsv)=g(1:nstsv,1:nstsv)
70 d(ist,jst)=d(ist,jst)+gwtails(ge(:,ist,jst))
75 d(1:nstsv,1:nstsv)=t1*d(1:nstsv,1:nstsv)
80 z1=0.5d0*(d(ist,jst)+conjg(d(jst,ist)))
84 d(ist,ist)=dble(d(ist,ist))
93 call zgemm(
'N',
'N',nstsv,nstsv,nstsv,
zone,evecsv,nstsv,d,nstsv,
zzero,a,nstsv)
subroutine getevecsv(fext, ikp, vpl, evecsv)
real(8), dimension(:,:), allocatable evalsv
subroutine getgwsefm(ik, se)
real(8), parameter kboltz
complex(8), parameter zone
subroutine eveqnzh(n, ld, a, w)
real(8), dimension(:,:), allocatable occsv
complex(8), parameter zzero
real(8), dimension(:,:), allocatable vkl
subroutine holdthd(nloop, nthd)
subroutine putevecsv(fext, ik, evecsv)
complex(8), dimension(:), allocatable wfm