11 real(8),
intent(in) :: vpl(3)
12 complex(8),
intent(out) :: pmat(nstsv,nstsv,3)
15 integer isym,ik,ist,jst
17 real(8) vkl_(3),sc(3,3)
19 complex(8) v1(3),v2(3)
25 call getrd(
'PMAT.OUT',ik,tgs,v1=vkl_,n1=nstsv_,nzv=nstsv*nstsv*3,zva=pmat)
29 inquire(iolength=recl) vkl_,nstsv_,pmat
30 open(230,
file=
'PMAT.OUT',form=
'UNFORMATTED',access=
'DIRECT',recl=recl)
31 read(230,rec=ik) vkl_,nstsv_,pmat
35 t1=abs(
vkl(1,ik)-vkl_(1))+abs(
vkl(2,ik)-vkl_(2))+abs(
vkl(3,ik)-vkl_(3))
38 write(*,
'("Error(getpmat): differing vectors for k-point ",I8)') ik
39 write(*,
'(" current : ",3G18.10)')
vkl(:,ik)
40 write(*,
'(" PMAT.OUT : ",3G18.10)') vkl_
44 if (nstsv /= nstsv_)
then 46 write(*,
'("Error(getpmat): differing nstsv for k-point ",I8)') ik
47 write(*,
'(" current : ",I8)') nstsv
48 write(*,
'(" PMAT.OUT : ",I8)') nstsv_
67 pmat(ist,jst,1:3)=pmat(ist,jst,1:3)*t1
72 t1=abs(vpl(1)-
vkl(1,ik))+abs(vpl(2)-
vkl(2,ik))+abs(vpl(3)-
vkl(3,ik))
78 v1(1:3)=pmat(ist,jst,1:3)
80 pmat(ist,jst,1:3)=v2(1:3)
86 pure subroutine rz3mv(a,x,y)
88 real(8),
intent(in) :: a(3,3)
89 complex(8),
intent(in) :: x(3)
90 complex(8),
intent(out) :: y(3)
91 y(1)=a(1,1)*x(1)+a(1,2)*x(2)+a(1,3)*x(3)
92 y(2)=a(2,1)*x(1)+a(2,2)*x(2)+a(2,3)*x(3)
93 y(3)=a(3,1)*x(1)+a(3,2)*x(2)+a(3,3)*x(3)
real(8), dimension(:,:), allocatable evalsv
subroutine getpmat(vpl, pmat)
type(file_t), dimension(:), allocatable, private file
pure subroutine rz3mv(a, x, y)
subroutine getrd(fname, irec, tgs, n1, n2, n3, v1, v2, nrv, rva, nzv, zva)
integer, dimension(maxsymcrys) lsplsymc
real(8), dimension(3, 3, 48) symlatc
real(8), dimension(:,:), allocatable vkl
subroutine findkpt(vpl, isym, ik)