11 real(8),
intent(in) :: zn
12 character(*),
intent(in) :: symb
14 integer,
parameter :: nit=4
18 integer n(maxstsp),l(maxstsp),k(maxstsp)
19 integer idx(maxstsp),iv(maxstsp)
22 real(8) occ(maxstsp),eval(maxstsp),rv(maxstsp)
25 real(8),
allocatable :: r(:),rho(:),vr(:),rwf(:,:,:)
27 real(8),
external :: massnucl
28 name=
'Fractional species' 46 if (ist == maxstsp)
then 49 write(*,
'("Error(genfspecies): too many states for fractional & 50 &species ",A)') trim(symb)
62 rmin=2.d-6/sqrt(abs(zn))
76 allocate(r(nr),rho(nr),vr(nr),rwf(nr,2,maxstsp))
80 r(ir)=rmin*exp(dble(ir-1)*t2)
83 call atom(
sol,.true.,zn,maxstsp,n,l,k,occ,3,0,nr,r,eval,rho,vr,rwf)
86 if (eval(ist) < eval(1)) eval(ist)=1.d6
90 if (rho(ir) > 1.d-20)
then 97 if (rho(ir) > 2.d-2)
then 102 if (rm < 1.d0) rm=1.d0
103 if (rm > 3.2d0) rm=3.2d0
117 deallocate(r,rho,vr,rwf)
133 if (occ(ist) <
epsocc)
then 143 call writespecies(symb,name,zn,mass,rmin,rm,rmax,nrm,nst,n,l,k,occ,eval)
145 write(*,
'("Info(genfspecies): wrote fractional species file ",A,".in")') &
subroutine genfspecies(zn, symb)
subroutine writespecies(symb, name, zn, mass, rmin, rm, rmax, nrm, nst, n, l, k, occ, eval)
subroutine atom(sol, ptnucl, zn, nst, n, l, k, occ, xctype, xcgrad, nr, r, eval, rho, vr, rwf)
pure subroutine sortidx(n, x, idx)