11character(*),
intent(in) :: fext
12integer,
intent(in) :: ikp
13real(8),
intent(in) :: vpl(3)
14complex(8),
intent(out) :: evecsv(nstsv,nstsv)
20real(8) vkl_(3),det,v(3),th,t1
21complex(8) su2(2,2),z1,z2
30fname=trim(
scrpath)//
'EVECSV'//trim(fext)
34 call getrd(fname,ik,tgs,v1=vkl_,n1=nstsv_,nzv=nstsv*nstsv,zva=evecsv)
38inquire(iolength=recl) vkl_,nstsv_,evecsv
39open(206,
file=fname,form=
'UNFORMATTED',access=
'DIRECT',recl=recl)
40read(206,rec=ik) vkl_,nstsv_,evecsv
44t1=abs(
vkl(1,ik)-vkl_(1))+abs(
vkl(2,ik)-vkl_(2))+abs(
vkl(3,ik)-vkl_(3))
47 write(*,
'("Error(getevecsv): differing vectors for k-point ",I8)') ik
48 write(*,
'(" current : ",3G18.10)')
vkl(:,ik)
49 write(*,
'(" EVECSV.OUT : ",3G18.10)') vkl_
53if (nstsv /= nstsv_)
then
55 write(*,
'("Error(getevecsv): differing nstsv for k-point ",I8)') ik
56 write(*,
'(" current : ",I8)') nstsv
57 write(*,
'(" EVECSV.OUT : ",I8)') nstsv_
76 z2=evecsv(ist+
nstfv,jst)
77 evecsv(ist,jst)=su2(1,1)*z1+su2(1,2)*z2
78 evecsv(ist+
nstfv,jst)=su2(2,1)*z1+su2(2,2)*z2
pure subroutine axangsu2(v, th, su2)
subroutine findkpt(vpl, isym, ik)
subroutine getevecsv(fext, ikp, vpl, evecsv)
real(8), dimension(3, 3, 48) symlatc
integer, dimension(maxsymcrys) lspnsymc
real(8), dimension(:,:), allocatable vkl
type(file_t), dimension(:), allocatable, private file
subroutine getrd(fname, irec, tgs, n1, n2, n3, v1, v2, nrv, rva, nzv, zva)
subroutine rotaxang(eps, rot, det, v, th)