11character(*),
intent(in) :: fext
12integer,
intent(in) :: ikp
13real(8),
intent(in) :: vpl(3)
14real(8),
intent(out) :: evalfv(nstfv,nspnfv)
18integer recl,nstfv_,nspnfv_
28fname=
'EVALFV'//trim(fext)
32 call getrd(fname,ik,tgs,v1=vkl_,n1=nstfv_,n2=nspnfv_,nrv=nstfv*nspnfv, &
37inquire(iolength=recl) vkl_,nstfv_,nspnfv_,evalfv
38open(200,
file=fname,form=
'UNFORMATTED',access=
'DIRECT',recl=recl)
39read(200,rec=ik) vkl_,nstfv_,nspnfv_,evalfv
43t1=abs(
vkl(1,ik)-vkl_(1))+abs(
vkl(2,ik)-vkl_(2))+abs(
vkl(3,ik)-vkl_(3))
46 write(*,
'("Error(getevalfv): differing vectors for k-point ",I8)') ik
47 write(*,
'(" current : ",3G18.10)')
vkl(:,ik)
48 write(*,
'(" EVALFV.OUT : ",3G18.10)') vkl_
52if (nstfv /= nstfv_)
then
54 write(*,
'("Error(getevalfv): differing nstfv for k-point ",I8)') ik
55 write(*,
'(" current : ",I8)') nstfv
56 write(*,
'(" EVALFV.OUT : ",I8)') nstfv_
60if (nspnfv /= nspnfv_)
then
62 write(*,
'("Error(getevalfv): differing nspnfv for k-point ",I8)') ik
63 write(*,
'(" current : ",I8)') nspnfv
64 write(*,
'(" EVALFV.OUT : ",I8)') nspnfv_
real(8), dimension(:,:), allocatable vkl
subroutine getrd(fname, irec, tgs, n1, n2, n3, v1, v2, nrv, rva, nzv, zva)