14 real(8),
allocatable :: jlgqr(:,:)
15 complex(8),
allocatable :: ylmgq(:),sfacgq(:)
16 complex(8),
allocatable :: expmt(:,:),emat(:,:)
34 call genexpmt(1,jlgqr,ylmgq,1,sfacgq,expmt)
35 expmt(:,:)=
omega*expmt(:,:)
36 deallocate(jlgqr,ylmgq,sfacgq)
43 open(50,file=
'EXPIQR.OUT',form=
'FORMATTED')
45 write(50,
'("q-vector (lattice coordinates) :")')
46 write(50,
'(3G18.10)')
vecql 47 write(50,
'("q-vector (Cartesian coordinates) :")')
48 write(50,
'(3G18.10)')
vecqc 50 write(50,
'(I8," : number of k-points")') nk
51 write(50,
'(I6," : number of states per k-point")')
nstsv 59 if ((ik < 1).or.(ik >
nkpt))
then 61 write(*,
'("Error(writeexpiqr): k-point out of range : ",I8)') ik
66 write(50,
'(" k-point (lattice coordinates) :")')
67 write(50,
'(3G18.10)')
vkl(:,ik)
69 write(50,
'(" k-point (Cartesian coordinates) :")')
70 write(50,
'(3G18.10)')
vkc(:,ik)
74 write(50,
'(I6," : state i; state j, <...>, |<...>|² below")') i
78 write(50,
'(I6,3G18.10)') j,a,b,a**2+b**2
85 write(*,
'("Info(writeexpmat)")')
86 write(*,
'(" < i,k+q | exp(iq.r) | j,k > matrix elements written to & 88 write(*,
'(" for the q-vector in vecql and all k-points in kstlist")')
89 deallocate(expmt,emat)
subroutine genexpmat(vpl, expmt, emat)
subroutine gengqf(ng, vqpc, vgqc, gqc, jlgqr, ylmgq, sfacgq)
real(8), dimension(3) vecql
real(8), dimension(:,:), allocatable vkc
integer, dimension(2, maxkst) kstlist
subroutine genexpmt(ngp, jlgpr, ylmgp, ld, sfacgp, expmt)
real(8), dimension(:,:), allocatable vkl
real(8), dimension(3) vecqc