11integer,
intent(in) :: iqp,ikp
12complex(8),
intent(out) :: ephmat(nstsv,nstsv,nbph)
14integer isym,lspl,iq,ik,iv(3)
15integer recl,n,nstsv_,nbph_
16real(8) vql_(3),vkl_(3),t1
26 iv(:)=modulo(iv(:),
ngridk(:))
30inquire(iolength=recl) vql_,vkl_,nstsv_,nbph_,ephmat
34open(240,file=
'EPHMAT.OUT',form=
'UNFORMATTED',access=
'DIRECT',recl=recl)
35read(240,rec=n) vql_,vkl_,nstsv_,nbph_,ephmat
38t1=abs(
vql(1,iq)-vql_(1))+abs(
vql(2,iq)-vql_(2))+abs(
vql(3,iq)-vql_(3))
41 write(*,
'("Error(getephmat): differing vectors for q-point ",I8)') iq
42 write(*,
'(" current : ",3G18.10)')
vql(:,iq)
43 write(*,
'(" EPHMAT.OUT : ",3G18.10)') vql_
47t1=abs(
vkl(1,ik)-vkl_(1))+abs(
vkl(2,ik)-vkl_(2))+abs(
vkl(3,ik)-vkl_(3))
50 write(*,
'("Error(getephmat): differing vectors for k-point ",I8)') ik
51 write(*,
'(" current : ",3G18.10)')
vkl(:,ik)
52 write(*,
'(" EPHMAT.OUT : ",3G18.10)') vkl_
56if (nstsv /= nstsv_)
then
58 write(*,
'("Error(getephmat): differing nstsv for q-point, k-point ",2I8)') &
60 write(*,
'(" current : ",I8)') nstsv
61 write(*,
'(" EPHMAT.OUT : ",I8)') nstsv_
65if (nbph /= nbph_)
then
67 write(*,
'("Error(getephmat): differing nbph for q-point, k-point ",2I8)') &
69 write(*,
'(" current : ",I8)') nbph
70 write(*,
'(" EPHMAT.OUT : ",I8)') nbph_
subroutine findqpt(vpl, isym, iq)
subroutine getephmat(iqp, ikp, ephmat)
pure subroutine i3mtv(a, x, y)
integer, dimension(:,:), allocatable ivk
real(8), dimension(:,:), allocatable vql
integer, dimension(3) ngridk
real(8), dimension(:,:), allocatable vkl
integer, dimension(:,:,:), allocatable ivkiknr
integer, dimension(3, 3, 48) symlat
integer, dimension(maxsymcrys) lsplsymc