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 ",I0)') is
38 write(*,
'("Error(readspecies): rmt <= rminsp : ",2G18.10)')
rmt(is), &
40 write(*,
'(" for species ",I0)') is
46 write(*,
'("Error(readspecies): rmaxsp < rmt : ",2G18.10)')
rmaxsp(is), &
51 if (
nrmt(is) < 20)
then 53 write(*,
'("Error(readspecies): nrmt too small : ",I0)')
nrmt(is)
54 write(*,
'(" for species ",I0)') is
67 write(*,
'("Error(readspecies): nstsp out of range : ",I0)')
nstsp(is)
68 write(*,
'(" for species ",I0)') is
73 read(50,*)
nsp(ist,is),
lsp(ist,is),
ksp(ist,is),
occsp(ist,is),
spcore(ist,is)
74 if (
nsp(ist,is) < 1)
then 76 write(*,
'("Error(readspecies): nsp < 1 : ",I0)')
nsp(ist,is)
77 write(*,
'(" for species ",I0)') is
78 write(*,
'(" and state ",I0)') ist
82 if (
lsp(ist,is) < 0)
then 84 write(*,
'("Error(readspecies): lsp < 0 : ",I0)')
lsp(ist,is)
85 write(*,
'(" for species ",I0)') is
86 write(*,
'(" and state ",I0)') ist
90 if (
ksp(ist,is) < 1)
then 92 write(*,
'("Error(readspecies): ksp < 1 : ",I0)')
ksp(ist,is)
93 write(*,
'(" for species ",I0)') is
94 write(*,
'(" and state ",I0)') ist
98 if (
occsp(ist,is) < 0.d0)
then 100 write(*,
'("Error(readspecies): occsp < 0 : ",G18.10)')
occsp(ist,is)
101 write(*,
'(" for species ",I0)') is
102 write(*,
'(" and state ",I0)') ist
108 if (
apword(0,is) < 1)
then 110 write(*,
'("Error(readspecies): apword < 1 : ",I0)')
apword(0,is)
111 write(*,
'(" for species ",I0)') is
117 write(*,
'("Error(readspecies): apword too large : ",I0)')
apword(0,is)
118 write(*,
'(" for species ",I0)') is
119 write(*,
'("Adjust maxapword in modmain and recompile code")')
127 if (
apwdm(io,0,is) < 0)
then 129 write(*,
'("Error(readspecies): apwdm < 0 : ",I0)')
apwdm(io,0,is)
130 write(*,
'(" for species ",I0)') is
131 write(*,
'(" and order ",I0)') io
144 write(*,
'("Error(readspecies): nlx < 0 : ",I0)') nlx
145 write(*,
'(" for species ",I0)') is
153 write(*,
'("Error(readspecies): lx < 0 : ",I0)') lx
154 write(*,
'(" for species ",I0)') is
155 write(*,
'(" and exception number ",I0)') ilx
161 write(*,
'("Error(readspecies): lx > lmaxapw : ",I0)') lx
162 write(*,
'(" for species ",I0)') is
163 write(*,
'(" and exception number ",I0)') ilx
168 if (
apword(lx,is) < 1)
then 170 write(*,
'("Error(readspecies): apword < 1 : ",I0)')
apword(lx,is)
171 write(*,
'(" for species ",I0)') is
172 write(*,
'(" and exception number ",I0)') ilx
178 write(*,
'("Error(readspecies): apword too large : ",I0)')
apword(lx,is)
179 write(*,
'(" for species ",I0)') is
180 write(*,
'(" and exception number ",I0)') ilx
181 write(*,
'("Adjust maxapword in modmain and recompile code")')
187 if (
apwdm(io,lx,is) < 0)
then 189 write(*,
'("Error(readspecies): apwdm < 0 : ",I0)')
apwdm(io,lx,is)
190 write(*,
'(" for species ",I0)') is
191 write(*,
'(" exception number ",I0)') ilx
192 write(*,
'(" and order ",I0)') io
216 if (
nlorb(is) < 0)
then 218 write(*,
'("Error(readspecies): nlorb < 0 : ",I0)')
nlorb(is)
219 write(*,
'(" for species ",I0)') is
225 write(*,
'("Error(readspecies): nlorb too large : ",I0)')
nlorb(is)
226 write(*,
'(" for species ",I0)') is
227 write(*,
'("Adjust maxlorb in modmain and recompile code")')
233 if (
lorbl(ilo,is) < 0)
then 235 write(*,
'("Error(readspecies): lorbl < 0 : ",I0)')
lorbl(ilo,is)
236 write(*,
'(" for species ",I0)') is
237 write(*,
'(" and local-orbital ",I0)') ilo
243 write(*,
'("Error(readspecies): lorbl > lmaxo :",2(X,I0))')
lorbl(ilo,is),&
245 write(*,
'(" for species ",I0)') is
246 write(*,
'(" and local-orbital ",I0)') ilo
252 write(*,
'("Error(readspecies): lorbord < 2 : ",I0)')
lorbord(ilo,is)
253 write(*,
'(" for species ",I0)') is
254 write(*,
'(" and local-orbital ",I0)') ilo
260 write(*,
'("Error(readspecies): lorbord too large : ",I0)')
lorbord(ilo,is)
261 write(*,
'(" for species ",I0)') is
262 write(*,
'(" and local-orbital ",I0)') ilo
263 write(*,
'("Adjust maxlorbord in modmain and recompile code")')
269 if (
lorbdm(io,ilo,is) < 0)
then 271 write(*,
'("Error(readspecies): lorbdm < 0 : ",I0)')
lorbdm(io,ilo,is)
272 write(*,
'(" for species ",I0)') is
273 write(*,
'(" local-orbital ",I0)') ilo
274 write(*,
'(" and order ",I0)') io
286 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