11real(8),
intent(in) :: zn
12character(*),
intent(in) :: symb
14integer,
parameter :: nit=4
18integer n(maxstsp),l(maxstsp),k(maxstsp)
19integer idx(maxstsp),iv(maxstsp)
22real(8) occ(maxstsp),eval(maxstsp),rv(maxstsp)
25real(8),
allocatable :: r(:),rho(:),vr(:),rwf(:,:,:)
27real(8),
external :: massnucl
28name=
'Fractional species'
46 if (ist == maxstsp)
then
49 write(*,
'("Error(genfspecies): too many states for fractional &
50 &species ",A)') trim(symb)
62rmin=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
143call 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 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)