12integer,
intent(in) :: ik
13complex(8),
intent(out) :: se(nstsv,nstsv,0:nwfm)
16integer recl,nstsv_,nwfm_
21 call getrd(
'GWSEFM.OUT',ik,tgs,v1=vkl_,n1=nstsv_,n2=nwfm_, &
22 nzv=nstsv*nstsv*(nwfm+1),zva=se)
26inquire(iolength=recl) vkl_,nstsv_,nwfm_,se
27open(280,
file=
'GWSEFM.OUT',form=
'UNFORMATTED',access=
'DIRECT',recl=recl)
28read(280,rec=ik) vkl_,nstsv_,nwfm_,se
32t1=abs(
vkl(1,ik)-vkl_(1))+abs(
vkl(2,ik)-vkl_(2))+abs(
vkl(3,ik)-vkl_(3))
35 write(*,
'("Error(getgwsefm): differing vectors for k-point ",I8)') ik
36 write(*,
'(" current : ",3G18.10)')
vkl(:,ik)
37 write(*,
'(" GWSEFM.OUT : ",3G18.10)') vkl_
41if (nstsv /= nstsv_)
then
43 write(*,
'("Error(getgwsefm): differing nstsv for k-point ",I8)') ik
44 write(*,
'(" current : ",I8)') nstsv
45 write(*,
'(" GWSEFM.OUT : ",I8)') nstsv_
49if (nwfm /= nwfm_)
then
51 write(*,
'("Error(getgwsefm): differing nwfm for k-point ",I8)') ik
52 write(*,
'(" current : ",I8)') nwfm
53 write(*,
'(" GWSEFM.OUT : ",I8)') nwfm_
real(8), dimension(:,:), allocatable vkl
subroutine getrd(fname, irec, tgs, n1, n2, n3, v1, v2, nrv, rva, nzv, zva)