6subroutine gendmatk(tspndg,tlmdg,lmin,lmax,ias,nst,idx,ngp,apwalm,evecfv, &
11logical,
intent(in) :: tspndg,tlmdg
12integer,
intent(in) :: lmin,lmax,ias
13integer,
intent(in) :: nst,idx(*),ngp(nspnfv)
14complex(8),
intent(in) :: apwalm(ngkmax,apwordmax,lmmaxapw,natmtot,nspnfv)
15complex(8),
intent(in) :: evecfv(nmatmax,nstfv,nspnfv),evecsv(nstsv,nstsv)
16integer,
intent(in) :: ld
17complex(8),
intent(out) :: dmat(ld,nspinor,ld,nspinor,nst)
19integer ispn,jspn,ist,is
21integer l,lma,lmb,lm1,lm2
22integer npci,ni,no,i1,i2
25complex(8),
allocatable :: wfmt(:,:,:)
28 write(*,
'("Error(gendmatk): lmin < 0 : ",I8)') lmin
34 write(*,
'("Error(gendmatk): lmax > lmaxo : ",2I8)') lmax,
lmaxo
47call wfmtsv(.true.,
lradstp,is,ias,nst,idx,ngp,apwalm,evecfv,evecsv,
npcmtmax, &
55 if (tspndg.and.(ispn /= jspn)) cycle
57 lma=l**2+1; lmb=lma+2*l
60 if (tlmdg.and.(lm1 /= lm2)) cycle
62 zsm=sum(wfmt(lm1:lm1+ni:
lmmaxi,ispn,ist) &
63 *conjg(wfmt(lm2:lm2+ni:
lmmaxi,jspn,ist))*
wr2cmt(1:nrci,is))
67 i1=npci+lm1; i2=npci+lm2
68 zsm=zsm+sum(wfmt(i1:i1+no:
lmmaxo,ispn,ist) &
69 *conjg(wfmt(i2:i2+no:
lmmaxo,jspn,ist))*
wr2cmt(irco:nrc,is))
70 dmat(lm1,ispn,lm2,jspn,ist)=zsm
subroutine gendmatk(tspndg, tlmdg, lmin, lmax, ias, nst, idx, ngp, apwalm, evecfv, evecsv, ld, dmat)
integer, dimension(maxspecies) npcmti
integer, dimension(maxspecies) nrcmt
integer, dimension(maxatoms *maxspecies) idxis
real(8), dimension(:,:), allocatable wr2cmt
integer, dimension(maxspecies) npcmt
integer, dimension(maxspecies) nrcmti
subroutine wfmtsv(tsh, lrstp, is, ias, nst, idx, ngp, apwalm, evecfv, evecsv, ld, wfmt)