9 subroutine dos(fext,tocc,occsvp)
44 character(*),
intent(in) :: fext
45 logical,
intent(in) :: tocc
46 real(8),
intent(in) :: occsvp(nstsv,nkpt)
49 integer nsk(3),ik,jk,ist,iw
50 integer nsd,ispn,sps(2)
51 integer is,ia,ias,nthd
53 real(8) dw,vl(3),vc(3)
54 complex(8) su2(2,2),b(2,2)
58 real(4),
allocatable :: bc(:,:,:,:,:),sc(:,:,:)
59 real(8),
allocatable :: w(:),e(:,:,:),f(:,:),g(:)
60 real(8),
allocatable :: dt(:,:),dp(:,:,:),elm(:,:)
61 complex(8),
allocatable :: ulm(:,:,:),dmat(:,:,:,:,:),sdmat(:,:,:)
62 complex(8),
allocatable :: apwalm(:,:,:,:,:),evecfv(:,:,:),evecsv(:,:)
113 vl(:)=vl(:)+0.5d0*
vqlss(:)
114 vc(:)=vc(:)+0.5d0*
vqcss(:)
116 vl(:)=vl(:)-0.5d0*
vqlss(:)
117 vc(:)=vc(:)-0.5d0*
vqcss(:)
122 sfacgk(:,:,ispn,ik),apwalm(:,:,:,:,ispn))
130 call gendmatk(tspndg,tlmdg,0,
lmaxdb,ias,nstsv,[0],
ngk(:,ik),apwalm, &
133 if (.not.tlmdg)
call dmatulm(ulm(:,:,ias),dmat)
140 bc(lm,ispn,ias,ist,ik)=dmat(lm,ispn,lm,ispn,ist)%re
148 if (.not.tspndg)
then 150 call z2mm(su2,sdmat(:,:,ist),b)
151 call z2mmct(b,su2,sdmat(:,:,ist))
156 sc(ispn,ist,ik)=sdmat(ispn,ispn,ist)%re
161 deallocate(apwalm,evecfv,evecsv,dmat,sdmat)
169 w(iw)=dw*dble(iw-1)+
wplot(1)
187 f(ist,ik)=sc(ispn,ist,ik)
189 f(ist,ik)=f(ist,ik)*occsvp(ist,jk)
191 f(ist,ik)=f(ist,ik)*
occmax 196 call brzint(
nswplot,
ngridk,nsk,
ivkiknr,
nwplot,
wplot,nstsv,nstsv,e(:,:,ispn), &
206 open(50,file=
'TDOS'//trim(fext),form=
'FORMATTED',action=
'WRITE')
209 write(50,
'(2G18.10)') w(iw),dt(iw,ispn)*sps(ispn)
215 if (.not.
tpdos)
goto 10
235 do lm=l**2+1,(l+1)**2
239 f(ist,ik)=bc(lm,ispn,ias,ist,ik)
241 f(ist,ik)=f(ist,ik)*occsvp(ist,jk)
243 f(ist,ik)=f(ist,ik)*
occmax 251 dp(:,l,1)=dp(:,l,1)+g(:)
253 dp(:,l,ispn)=dp(:,l,ispn)+g(:)
257 dp(:,lm,1)=dp(:,lm,1)+g(:)
267 dt(:,ispn)=dt(:,ispn)-g(:)
276 write(fname,
'("PDOS_S",I2.2,"_A",I4.4)') is,ia
277 open(50,file=trim(fname)//trim(fext),form=
'FORMATTED',action=
'WRITE')
281 write(50,
'(2G18.10)') w(iw),dp(iw,l,ispn)*sps(ispn)
295 open(50,file=
'IDOS'//trim(fext),form=
'FORMATTED',action=
'WRITE')
298 write(50,
'(2G18.10)') w(iw),dt(iw,ispn)*sps(ispn)
306 deallocate(bc,sc,w,e,dt,dp)
307 if (
lmirep)
deallocate(elm,ulm)
subroutine writetest(id, descr, nv, iv, iva, tol, rv, rva, zv, zva)
pure subroutine gensdmat(evecsv, sdmat)
subroutine getevecsv(fext, ikp, vpl, evecsv)
real(8), dimension(:,:), allocatable evalsv
subroutine getevecfv(fext, ikp, vpl, vgpl, evecfv)
subroutine match(ngp, vgpc, gpc, sfacgp, apwalm)
subroutine dmatulm(ulm, dmat)
integer, dimension(:,:,:), allocatable ivkik
subroutine brzint(nsm, ngridk, nsk, ivkik, nw, wint, n, ld, e, f, g)
subroutine sqasu2(sqaxis, tsqaz, su2)
real(8), dimension(3) vqlss
complex(8), dimension(:,:,:,:), allocatable sfacgk
real(8), dimension(:,:), allocatable vkc
subroutine genlmirep(elm, ulm)
pure subroutine z2mm(a, b, c)
real(8), dimension(2) wplot
integer, dimension(:,:), allocatable ngk
real(8), dimension(3) sqaxis
pure subroutine z2mmct(a, b, c)
real(8), dimension(:,:,:,:), allocatable vgkl
integer, dimension(3) ngridk
subroutine dos(fext, tocc, occsvp)
real(8), dimension(:,:,:,:), allocatable vgkc
subroutine gendmatk(tspndg, tlmdg, lmin, lmax, ias, nst, idx, ngp, apwalm, evecfv, evecsv, ld, dmat)
real(8), dimension(:,:), allocatable vkl
real(8), dimension(3) vqcss
integer, dimension(maxatoms *maxspecies) idxis
real(8), dimension(:,:,:), allocatable gkc
subroutine writeelmirep(fext, elm)
subroutine holdthd(nloop, nthd)
integer, dimension(maxatoms *maxspecies) idxia
subroutine dmatsu2(lmmax, su2, dmat)
integer, dimension(:,:), allocatable ivk
integer, dimension(:,:,:), allocatable ivkiknr