13 integer version_(3),ios
14 integer natmtot_,npcmtmax_,ngtc_,ngtot_
15 integer ndmag_,fsmtype_,nqpt_,nfqrz_
18 complex(8) zv(natmtot)
20 integer,
allocatable :: ivq_(:,:),iqrzf_(:),map(:)
21 complex(8),
allocatable :: zfmt(:,:),zfir(:)
22 open(100,file=
'STATE_ULR.OUT',form=
'UNFORMATTED',action=
'READ',status=
'OLD', &
26 write(*,
'("Error(readstulr): error opening STATE_ULR.OUT")')
31 if (version_(1) < 10)
then 33 write(*,
'("Error(readstulr): unable to read STATE_ULR.OUT from versions & 34 &earlier than 10.0.0")')
38 if ((
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_
46 if (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_
64 if (
ngtc /= ngtc_)
then 66 write(*,
'("Error(readstulr): differing ngtc")')
67 write(*,
'(" current : ",I8)')
ngtc 68 write(*,
'(" STATE_ULR.OUT : ",I8)') ngtc_
73 if (
ngtot /= ngtot_)
then 75 write(*,
'("Error(readstulr): differing ngtot")')
76 write(*,
'(" current : ",I8)')
ngtot 77 write(*,
'(" STATE_ULR.OUT : ",I8)') ngtot_
82 if (
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_
113 allocate(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 130 deallocate(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)
226 deallocate(map,zfmt,zfir)
complex(8), dimension(:,:,:), pointer, contiguous vsqmt
complex(8), dimension(:,:), pointer, contiguous vsqir
real(8), dimension(3) bfsmc
complex(8), dimension(:,:,:,:), allocatable magqmt
complex(8), dimension(:,:,:), pointer, contiguous bsqir
complex(8), dimension(:,:,:), allocatable magqir
complex(8), dimension(:), allocatable vclq
integer, dimension(:,:,:), allocatable ivqiq
complex(8), dimension(:,:,:,:), pointer, contiguous bsqmt
integer, dimension(2, 3) intq
complex(8), dimension(:,:,:), allocatable bfcmtq
real(8), dimension(:,:), allocatable bfsmcmt
integer, dimension(:), allocatable ifqrz
integer, dimension(3), parameter version
complex(8), dimension(:,:,:), allocatable rhoqmt
complex(8), dimension(:,:), allocatable bfcq
complex(8), dimension(:,:), allocatable rhoqir