13integer version_(3),ios
14integer natmtot_,npcmtmax_,ngtc_,ngtot_
15integer ndmag_,fsmtype_,nqpt_,nfqrz_
20integer,
allocatable :: ivq_(:,:),iqrzf_(:),map(:)
21complex(8),
allocatable :: zfmt(:,:),zfir(:)
22open(100,file=
'STATE_ULR.OUT',form=
'UNFORMATTED',action=
'READ',status=
'OLD', &
26 write(*,
'("Error(readstulr): error opening STATE_ULR.OUT")')
31if (version_(1) < 10)
then
33 write(*,
'("Error(readstulr): unable to read STATE_ULR.OUT from versions &
34 &earlier than 10.0.0")')
38if ((
version(1) /= version_(1)).or.(
version(2) /= version_(2)).or. &
39 (
version(3) /= version_(3)))
then
41 write(*,
'("Warning(readstulr): different versions")')
42 write(*,
'(" current : ",I0,".",I0,".",I0)')
version
43 write(*,
'(" STATE_ULR.OUT : ",I0,".",I0,".",I0)') version_
46if (natmtot /= natmtot_)
then
48 write(*,
'("Error(readstulr): differing natmtot")')
49 write(*,
'(" current : ",I6)') natmtot
50 write(*,
'(" STATE_ULR.OUT : ",I6)') natmtot_
57 write(*,
'("Error(readstulr): differing npcmtmax")')
58 write(*,
'(" current : ",I6)')
npcmtmax
59 write(*,
'(" STATE_ULR.OUT : ",I6)') npcmtmax_
64if (
ngtc /= ngtc_)
then
66 write(*,
'("Error(readstulr): differing ngtc")')
67 write(*,
'(" current : ",I8)')
ngtc
68 write(*,
'(" STATE_ULR.OUT : ",I8)') ngtc_
73if (
ngtot /= ngtot_)
then
75 write(*,
'("Error(readstulr): differing ngtot")')
76 write(*,
'(" current : ",I8)')
ngtot
77 write(*,
'(" STATE_ULR.OUT : ",I8)') ngtot_
82if (
ndmag /= ndmag_)
then
84 write(*,
'("Error(readstulr): differing ndmag")')
85 write(*,
'(" current : ",I1)')
ndmag
86 write(*,
'(" STATE_ULR.OUT : ",I1)') ndmag_
93 write(*,
'("Error(readstulr): differing fsmtype")')
94 write(*,
'(" current : ",I4)')
fsmtype
95 write(*,
'(" STATE_ULR.OUT : ",I4)') fsmtype_
102 write(*,
'("Error(readstulr): nqpt_ < 1 : ",I8)') nqpt_
109 write(*,
'("Error(readstulr): nfqrz_ < 1 : ",I8)') nfqrz_
113allocate(ivq_(3,nqpt_),iqrzf_(nfqrz_),map(nfqrz_))
121 i1=ivq_(1,iq); i2=ivq_(2,iq); i3=ivq_(3,iq)
122 if ((i1 >=
intq(1,1)).and.(i1 <=
intq(2,1)).and. &
123 (i2 >=
intq(1,2)).and.(i2 <=
intq(2,2)).and. &
124 (i3 >=
intq(1,3)).and.(i3 <=
intq(2,3)))
then
130deallocate(ivq_,iqrzf_)
142 read(100) zfir(1:
ngtc)
151 read(100)
vsqmt(:,:,jfq)
152 read(100)
vsqir(:,jfq)
176 read(100)
magqmt(:,:,idm,jfq)
177 read(100)
magqir(:,idm,jfq)
182 read(100) zfir(1:
ngtc)
192 read(100)
bsqmt(:,:,idm,jfq)
193 read(100)
bsqir(:,idm,jfq)
209 read(100)
bfcq(idm,jfq)
210 read(100)
bfcmtq(:,idm,jfq)
226deallocate(map,zfmt,zfir)
integer, dimension(2, 3) intq
real(8), dimension(:,:), allocatable bfsmcmt
integer, dimension(:,:,:), allocatable ivqiq
real(8), dimension(3) bfsmc
integer, dimension(:), allocatable ifqrz
integer, dimension(3), parameter version
complex(8), dimension(:), allocatable vclq
complex(8), dimension(:,:,:,:), pointer, contiguous bsqmt
complex(8), dimension(:,:), allocatable bfcq
complex(8), dimension(:,:,:), pointer, contiguous vsqmt
complex(8), dimension(:,:,:), allocatable magqir
complex(8), dimension(:,:,:), allocatable rhoqmt
complex(8), dimension(:,:,:), pointer, contiguous bsqir
complex(8), dimension(:,:), pointer, contiguous vsqir
complex(8), dimension(:,:,:,:), allocatable magqmt
complex(8), dimension(:,:), allocatable rhoqir
complex(8), dimension(:,:,:), allocatable bfcmtq