12integer ik,jk,ikq,isym,nsk(3)
13integer ist,jst,iw,n,nthd
18real(8),
allocatable :: jlgqr(:,:),ddcs(:)
19real(8),
allocatable :: e(:,:,:),f(:,:,:)
20complex(8),
allocatable :: ylmgq(:),sfacgq(:)
21complex(8),
allocatable :: expmt(:,:),emat(:,:)
28v(:)=abs(v(:)-nint(v(:)))
31 write(*,
'("Error(elnes): q-vector incommensurate with k-point grid")')
32 write(*,
'(" ngridk : ",3I6)')
ngridk
33 write(*,
'(" vecql : ",3G18.10)')
vecql
55call genexpmt(1,jlgqr,ylmgq,1,sfacgq,expmt)
56deallocate(jlgqr,ylmgq,sfacgq)
70 write(*,
'("Info(elnes): ",I6," of ",I6," k-points")') ik,
nkptnr
85 t1=dble(emat(ist,jst))**2+aimag(emat(ist,jst))**2
100call brzint(
nswplot,
ngridk,nsk,
ivkiknr,
nwplot,
wplot,n,n,e,f,ddcs)
105open(50,file=
'ELNES.OUT',form=
'FORMATTED')
109 w=dw*dble(iw-1)+
wplot(1)
110 write(50,
'(2G18.10)') w,ddcs(iw)
114write(*,
'("Info(elnes):")')
115write(*,
'(" ELNES double differential cross-section written to ELNES.OUT")')
118deallocate(e,f,ddcs,expmt)
subroutine brzint(nsm, ngridk, nsk, ivkik, nw, wint, n, ld, e, f, g)
subroutine findkpt(vpl, isym, ik)
subroutine genexpmat(vpl, expmt, emat)
subroutine genexpmt(ngp, jlgpr, ylmgp, ld, sfacgp, expmt)
subroutine gengqf(ng, vqpc, vgqc, gqc, jlgqr, ylmgq, sfacgq)
subroutine getevalsv(fext, ikp, vpl, evalsv_)
subroutine getoccsv(fext, ikp, vpl, occsvp)
real(8), dimension(3) vecql
real(8), dimension(3) vecqc
integer, dimension(:,:), allocatable ivk
real(8), dimension(2) wplot
integer, dimension(3) ngridk
real(8), dimension(:,:), allocatable vkl
integer, dimension(:,:,:), allocatable ivkiknr
integer, dimension(:,:,:), allocatable ivkik
real(8), dimension(:,:), allocatable occsv
real(8), dimension(:,:), allocatable evalsv
subroutine holdthd(nloop, nthd)
subroutine writetest(id, descr, nv, iv, iva, tol, rv, rva, zv, zva)