11integer,
intent(in) :: fnum
13integer nz,nmax,nst,ist
14integer ne,nrm,nr,ir,it,i
15integer n(maxstsp),l(maxstsp),k(maxstsp)
16real(8) mass,zn,t1,t2,t3
18real(8) occ(maxstsp),eval(maxstsp)
19character(64) symb,name
21real(8),
allocatable :: r(:),rho(:),vr(:),rwf(:,:,:)
25 write(*,
'("Error(genspecies): nz < 1 : ",I8)') nz
29read(fnum,*,err=20) symb,name
30read(fnum,*,err=20) mass
34read(fnum,*,err=20) nst
35if ((nst < 1).or.(nst > maxstsp))
then
37 write(*,
'("Error(genspecies): nst out of range : ",I8)') nst
38 write(*,
'(" for species ",A)') trim(name)
45 read(fnum,*,err=20) n(ist),l(ist),k(ist),i
51 write(*,
'("Info(genspecies): running Z = ",I4,", (",A,")")') nz,trim(name)
54 write(*,
'("Warning(genspecies): atom not neutral, electron number : ",&
61rmin=2.d-6/sqrt(dble(nz))
72 allocate(r(nr),rho(nr),vr(nr),rwf(nr,2,nst))
76 r(ir)=rmin*exp(dble(ir-1)*t2)
79 call atom(
sol,.true.,zn,nst,n,l,k,occ,3,0,nr,r,eval,rho,vr,rwf)
82 if (rho(ir) > 1.d-20)
then
87 deallocate(r,rho,vr,rwf)
90call writespecies(symb,name,zn,mass,rmin,rm,rmax,nrm,nst,n,l,k,occ,eval)
94write(*,
'("Error(genspecies): error reading species data")')
subroutine atom(sol, ptnucl, zn, nst, n, l, k, occ, xctype, xcgrad, nr, r, eval, rho, vr, rwf)
subroutine writespecies(symb, name, zn, mass, rmin, rm, rmax, nrm, nst, n, l, k, occ, eval)