11 integer nlx,ilx,lx,ilo
12 integer io,jo,ko,l,i,j
15 open(50,file=trim(
sppath)//trim(
spfname(is)),status=
'OLD',form=
'FORMATTED', &
16 action=
'READ',iostat=ios)
19 write(*,
'("Error(readspecies): error opening species file ",A)') &
29 if (
rminsp(is) <= 0.d0)
then 31 write(*,
'("Error(readspecies): rminsp <= 0 : ",G18.10)')
rminsp(is)
32 write(*,
'(" for species ",I4)') is
38 write(*,
'("Error(readspecies): rmt <= rminsp : ",2G18.10)')
rmt(is), &
40 write(*,
'(" for species ",I4)') is
46 write(*,
'("Error(readspecies): rmaxsp < rmt : ",2G18.10)')
rmaxsp(is), &
51 if (
nrmt(is) < 20)
then 53 write(*,
'("Error(readspecies): nrmt too small : ",I8)')
nrmt(is)
54 write(*,
'(" for species ",I4)') is
65 write(*,
'("Error(readspecies): nstsp out of range : ",I8)')
nstsp(is)
66 write(*,
'(" for species ",I4)') is
71 read(50,*)
nsp(ist,is),
lsp(ist,is),
ksp(ist,is),
occsp(ist,is),
spcore(ist,is)
72 if (
nsp(ist,is) < 1)
then 74 write(*,
'("Error(readspecies): nsp < 1 : ",I8)')
nsp(ist,is)
75 write(*,
'(" for species ",I4)') is
76 write(*,
'(" and state ",I4)') ist
80 if (
lsp(ist,is) < 0)
then 82 write(*,
'("Error(readspecies): lsp < 0 : ",I8)')
lsp(ist,is)
83 write(*,
'(" for species ",I4)') is
84 write(*,
'(" and state ",I4)') ist
88 if (
ksp(ist,is) < 1)
then 90 write(*,
'("Error(readspecies): ksp < 1 : ",I8)')
ksp(ist,is)
91 write(*,
'(" for species ",I4)') is
92 write(*,
'(" and state ",I4)') ist
96 if (
occsp(ist,is) < 0.d0)
then 98 write(*,
'("Error(readspecies): occsp < 0 : ",G18.10)')
occsp(ist,is)
99 write(*,
'(" for species ",I4)') is
100 write(*,
'(" and state ",I4)') ist
106 if (
apword(0,is) < 1)
then 108 write(*,
'("Error(readspecies): apword < 1 : ",I8)')
apword(0,is)
109 write(*,
'(" for species ",I4)') is
115 write(*,
'("Error(readspecies): apword too large : ",I8)')
apword(0,is)
116 write(*,
'(" for species ",I4)') is
117 write(*,
'("Adjust maxapword in modmain and recompile code")')
125 if (
apwdm(io,0,is) < 0)
then 127 write(*,
'("Error(readspecies): apwdm < 0 : ",I8)')
apwdm(io,0,is)
128 write(*,
'(" for species ",I4)') is
129 write(*,
'(" and order ",I4)') io
142 write(*,
'("Error(readspecies): nlx < 0 : ",I8)') nlx
143 write(*,
'(" for species ",I4)') is
151 write(*,
'("Error(readspecies): lx < 0 : ",I8)') lx
152 write(*,
'(" for species ",I4)') is
153 write(*,
'(" and exception number ",I4)') ilx
159 write(*,
'("Error(readspecies): lx > lmaxapw : ",I8)') lx
160 write(*,
'(" for species ",I4)') is
161 write(*,
'(" and exception number ",I4)') ilx
166 if (
apword(lx,is) < 1)
then 168 write(*,
'("Error(readspecies): apword < 1 : ",I8)')
apword(lx,is)
169 write(*,
'(" for species ",I4)') is
170 write(*,
'(" and exception number ",I4)') ilx
176 write(*,
'("Error(readspecies): apword too large : ",I8)')
apword(lx,is)
177 write(*,
'(" for species ",I4)') is
178 write(*,
'(" and exception number ",I4)') ilx
179 write(*,
'("Adjust maxapword in modmain and recompile code")')
185 if (
apwdm(io,lx,is) < 0)
then 187 write(*,
'("Error(readspecies): apwdm < 0 : ",I8)')
apwdm(io,lx,is)
188 write(*,
'(" for species ",I4)') is
189 write(*,
'(" exception number ",I4)') ilx
190 write(*,
'(" and order ",I4)') io
214 if (
nlorb(is) < 0)
then 216 write(*,
'("Error(readspecies): nlorb < 0 : ",I8)')
nlorb(is)
217 write(*,
'(" for species ",I4)') is
223 write(*,
'("Error(readspecies): nlorb too large : ",I8)')
nlorb(is)
224 write(*,
'(" for species ",I4)') is
225 write(*,
'("Adjust maxlorb in modmain and recompile code")')
231 if (
lorbl(ilo,is) < 0)
then 233 write(*,
'("Error(readspecies): lorbl < 0 : ",I8)')
lorbl(ilo,is)
234 write(*,
'(" for species ",I4)') is
235 write(*,
'(" and local-orbital ",I4)') ilo
241 write(*,
'("Error(readspecies): lorbl > lmaxo : ",2I8)')
lorbl(ilo,is), &
243 write(*,
'(" for species ",I4)') is
244 write(*,
'(" and local-orbital ",I4)') ilo
250 write(*,
'("Error(readspecies): lorbord < 2 : ",I8)')
lorbord(ilo,is)
251 write(*,
'(" for species ",I4)') is
252 write(*,
'(" and local-orbital ",I4)') ilo
258 write(*,
'("Error(readspecies): lorbord too large : ",I8)')
lorbord(ilo,is)
259 write(*,
'(" for species ",I4)') is
260 write(*,
'(" and local-orbital ",I4)') ilo
261 write(*,
'("Adjust maxlorbord in modmain and recompile code")')
267 if (
lorbdm(io,ilo,is) < 0)
then 269 write(*,
'("Error(readspecies): lorbdm < 0 : ",I8)')
lorbdm(io,ilo,is)
270 write(*,
'(" for species ",I4)') is
271 write(*,
'(" local-orbital ",I4)') ilo
272 write(*,
'(" and order ",I4)') io
284 if (
lorbe0(io,ilo,is) < 0.d0)
goto 10
real(8), dimension(maxstsp, maxspecies) occsp
integer, dimension(maxstsp, maxspecies) ksp
integer, parameter maxapword
integer, dimension(maxspecies) nlorb
integer, dimension(maxstsp, maxspecies) lsp
real(8), dimension(maxspecies) rmaxsp
real(8), dimension(maxlorbord, maxlorb, maxspecies) lorbe0
character(256), dimension(maxspecies) spfname
integer, dimension(maxapword, 0:maxlapw, maxspecies) apwdm
logical, dimension(maxstsp, maxspecies) spcore
integer, parameter maxlorbord
logical, dimension(maxlorbord, maxlorb, maxspecies) lorbve
real(8), dimension(maxapword, 0:maxlapw, maxspecies) apwe0
real(8), dimension(maxspecies) spmass
integer, dimension(0:maxlapw, maxspecies) apword
real(8), dimension(maxspecies) rmt
real(8), dimension(maxspecies) rmt0
integer, dimension(maxstsp, maxspecies) nsp
logical, dimension(maxapword, 0:maxlapw, maxspecies) apwve
character(64), dimension(maxspecies) spname
integer, dimension(maxlorb, maxspecies) lorbord
real(8), dimension(maxspecies) rminsp
integer, dimension(maxspecies) nstsp
real(8), dimension(maxspecies) spzn
integer, parameter maxlorb
integer, dimension(maxlorb, maxspecies) lorbl
integer, parameter maxstsp
character(64), dimension(maxspecies) spsymb
integer, dimension(maxlorbord, maxlorb, maxspecies) lorbdm
integer, dimension(maxspecies) nrmt