11real(8),
intent(in) :: vpl(3)
12complex(8),
intent(out) :: pmat(nstsv,nstsv,3)
15integer isym,ik,ist,jst
17real(8) vkl_(3),sc(3,3)
25 call getrd(
'PMAT.OUT',ik,tgs,v1=vkl_,n1=nstsv_,nzv=nstsv*nstsv*3,zva=pmat)
29inquire(iolength=recl) vkl_,nstsv_,pmat
30open(230,
file=
'PMAT.OUT',form=
'UNFORMATTED',access=
'DIRECT',recl=recl)
31read(230,rec=ik) vkl_,nstsv_,pmat
35t1=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_
44if (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
72t1=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)
89real(8),
intent(in) :: a(3,3)
90complex(8),
intent(in) :: x(3)
91complex(8),
intent(out) :: y(3)
92y(1)=a(1,1)*x(1)+a(1,2)*x(2)+a(1,3)*x(3)
93y(2)=a(2,1)*x(1)+a(2,2)*x(2)+a(2,3)*x(3)
94y(3)=a(3,1)*x(1)+a(3,2)*x(2)+a(3,3)*x(3)
subroutine findkpt(vpl, isym, ik)
subroutine getpmat(vpl, pmat)
pure subroutine rz3mv(a, x, y)
real(8), dimension(3, 3, 48) symlatc
real(8), dimension(:,:), allocatable vkl
integer, dimension(maxsymcrys) lsplsymc
real(8), dimension(:,:), allocatable evalsv
type(file_t), dimension(:), allocatable, private file
subroutine getrd(fname, irec, tgs, n1, n2, n3, v1, v2, nrv, rva, nzv, zva)