Documentation for module atom_utils

Some basic routines for atomic calculations

source: atom_utils.F
Loading...

Generic procedures:

integrate_grid

public Subroutines/Functions:

...
SUBROUTINE
atom_completeness (basis, zv, iw)
...
SUBROUTINE
atom_condnumber (basis, crad, iw)
...
...
...
SUBROUTINE
atom_denmat (pmat, wfn, nbas, occ, maxl, maxn)
...
...
...
...
SUBROUTINE
atom_orbital_max (rmax, wfn, rcov, l, basis)
...
...
ZMP subroutine to read external density from linear grid of density matrix.
ZMP subroutine to read external v_xc in the atomic code
ZMP subroutine to read external restart file
...
SUBROUTINE
atom_solve (hmat, umat, orb, ener, nb, nv, maxl)
...
FUNCTION
REAL(dp)
atom_trace (opmat, pmat)
...
SUBROUTINE
atom_wfnr0 (value, wfn, basis)
...
ZMP subroutine to write external restart file
...
SUBROUTINE
contract2 (int, omat, cm)
...
SUBROUTINE
contract2add (int, omat, cm)
...
SUBROUTINE
contract4 (eri, omat, cm1, cm2)
...
...
...
...
...
...
...
FUNCTION
INTEGER
get_maxl_occ (occupation)
...
FUNCTION
INTEGER
get_maxn_occ (occupation)
...
SUBROUTINE
get_rho0 (atom, rho0)
...
...
...
...

Generic procedure integrate_grid

...

REAL(dp),
INTENT(in)
:: fun(:) ×
:: grid × × ×
REAL(dp),
INTENT(in)
:: fun1(:) × ×
REAL(dp),
INTENT(in)
:: fun2(:) × ×
REAL(dp),
INTENT(in)
:: fun3(:) ×

SUBROUTINEatom_basis_condnum(basis, rad, cnum)

...

Arguments:
:: basis ...
REAL(dp),
INTENT(in)
:: rad ...
REAL(dp),
INTENT(out)
:: cnum ...

SUBROUTINEatom_completeness(basis, zv, iw)

...

Arguments:
POINTER
:: basis ...
INTEGER,
INTENT(in)
:: zv ...
INTEGER,
INTENT(in)
:: iw ...

SUBROUTINEatom_condnumber(basis, crad, iw)

...

Arguments:
POINTER
:: basis ...
REAL(dp)
:: crad ...
INTEGER,
INTENT(in)
:: iw ...

FUNCTIONatom_consistent_method(method, multiplicity)

...

Return Value ::
LOGICAL
Arguments:
INTEGER,
INTENT(in)
:: method ...
INTEGER,
INTENT(in)
:: multiplicity ...

SUBROUTINEatom_core_density(corden, potential, typ, rr)

...

Arguments:
REAL(dp),
INTENT(inout)
:: corden(:) ...
INTENT(in)
:: potential ...
CHARACTER(*),
OPTIONAL
:: typ ...
REAL(dp),
INTENT(in)
:: rr(:) ...

SUBROUTINEatom_denmat(pmat, wfn, nbas, occ, maxl, maxn)

...

Arguments:
REAL(dp),
INTENT(inout)
:: pmat(:,:,0:) ...
REAL(dp),
INTENT(in)
:: wfn(:,:,0:) ...
INTEGER,
INTENT(in)
:: nbas(0:lmat) ...
REAL(dp),
INTENT(in)
:: occ(0:,:) ...
INTEGER,
INTENT(in)
:: maxl ...
INTEGER,
INTENT(in)
:: maxn(0:lmat) ...

SUBROUTINEatom_density(density, pmat, basis, maxl, typ, rr)

...

Arguments:
REAL(dp),
INTENT(out)
:: density(:) ...
REAL(dp),
INTENT(in)
:: pmat(:,:,0:) ...
INTENT(in)
:: basis ...
INTEGER,
INTENT(in)
:: maxl ...
CHARACTER(*),
OPTIONAL
:: typ ...
REAL(dp),
INTENT(in),
OPTIONAL
:: rr(:) ...

SUBROUTINEatom_local_potential(locpot, gthpot, rr)

...

Arguments:
REAL(dp),
INTENT(inout)
:: locpot(:) ...
INTENT(in)
:: gthpot ...
REAL(dp),
INTENT(in)
:: rr(:) ...

SUBROUTINEatom_orbital_charge(charge, wfn, rcov, l, basis)

...

Arguments:
REAL(dp),
INTENT(out)
:: charge ...
REAL(dp),
INTENT(in)
:: wfn(:) ...
REAL(dp),
INTENT(in)
:: rcov ...
INTEGER,
INTENT(in)
:: l ...
INTENT(in)
:: basis ...

SUBROUTINEatom_orbital_max(rmax, wfn, rcov, l, basis)

...

Arguments:
REAL(dp),
INTENT(out)
:: rmax ...
REAL(dp),
INTENT(in)
:: wfn(:) ...
REAL(dp),
INTENT(in)
:: rcov ...
INTEGER,
INTENT(in)
:: l ...
INTENT(in)
:: basis ...

SUBROUTINEatom_orbital_nodes(node, wfn, rcov, l, basis)

...

Arguments:
INTEGER,
INTENT(out)
:: node ...
REAL(dp),
INTENT(in)
:: wfn(:) ...
REAL(dp),
INTENT(in)
:: rcov ...
INTEGER,
INTENT(in)
:: l ...
INTENT(in)
:: basis ...

SUBROUTINEatom_read_external_density(density, atom, iw)

ZMP subroutine to read external density from linear grid of density matrix.

Arguments:
REAL(dp),
INTENT(out)
:: density(:) ...
TYPE(atom_type),
INTENT(inout)
:: atom ...
INTEGER,
INTENT(in)
:: iw ...

SUBROUTINEatom_read_external_vxc(vxc, atom, iw)

ZMP subroutine to read external v_xc in the atomic code

Arguments:
REAL(dp),
INTENT(out)
:: vxc(:) ...
TYPE(atom_type),
INTENT(inout)
:: atom ...
INTEGER,
INTENT(in)
:: iw ...

SUBROUTINEatom_read_zmp_restart(atom, doguess, iw)

ZMP subroutine to read external restart file

Arguments:
TYPE(atom_type),
INTENT(inout)
:: atom ...
LOGICAL,
INTENT(inout)
:: doguess ...
INTEGER,
INTENT(in)
:: iw ...

SUBROUTINEatom_set_occupation(ostring, occupation, wfnocc, multiplicity)

...

Arguments:
POINTER
:: ostring(:) ...
REAL(dp)
:: occupation(0:lmat,10) ...
REAL(dp)
:: wfnocc(0:lmat,10) ...
INTEGER,
INTENT(out),
OPTIONAL
:: multiplicity ...

SUBROUTINEatom_solve(hmat, umat, orb, ener, nb, nv, maxl)

...

Arguments:
REAL(dp),
INTENT(in)
:: hmat(:,:,0:) ...
REAL(dp),
INTENT(in)
:: umat(:,:,0:) ...
REAL(dp),
INTENT(inout)
:: orb(:,:,0:) ...
REAL(dp),
INTENT(inout)
:: ener(:,0:) ...
INTEGER,
INTENT(in)
:: nb(0:) ...
INTEGER,
INTENT(in)
:: nv(0:) ...
INTEGER,
INTENT(in)
:: maxl ...

FUNCTIONatom_trace(opmat, pmat)

...

Return Value ::
REAL(dp)
Arguments:
REAL(dp),
INTENT(in)
:: opmat(:,:,0:) ...
REAL(dp),
INTENT(in)
:: pmat(:,:,0:) ...

SUBROUTINEatom_wfnr0(value, wfn, basis)

...

Arguments:
REAL(dp),
INTENT(out)
:: value ...
REAL(dp),
INTENT(in)
:: wfn(:) ...
INTENT(in)
:: basis ...

SUBROUTINEatom_write_zmp_restart(atom)

ZMP subroutine to write external restart file

Arguments:
TYPE(atom_type),
INTENT(in)
:: atom ...

SUBROUTINEceri_contract(jmat, erint, pmat, nsize, all_nu)

...

Arguments:
REAL(dp),
INTENT(inout)
:: jmat(:,:,0:) ...
TYPE(eri),
INTENT(in)
:: erint(:) ...
REAL(dp),
INTENT(in)
:: pmat(:,:,0:) ...
INTEGER,
INTENT(in)
:: nsize(0:) ...
LOGICAL,
INTENT(in),
OPTIONAL
:: all_nu ...

SUBROUTINEcontract2(int, omat, cm)

...

Arguments:
REAL(dp),
INTENT(inout)
:: int(:,:) ...
REAL(dp),
INTENT(in)
:: omat(:,:) ...
REAL(dp),
INTENT(in)
:: cm(:,:) ...

SUBROUTINEcontract2add(int, omat, cm)

...

Arguments:
REAL(dp),
INTENT(inout)
:: int(:,:) ...
REAL(dp),
INTENT(in)
:: omat(:,:) ...
REAL(dp),
INTENT(in)
:: cm(:,:) ...

SUBROUTINEcontract4(eri, omat, cm1, cm2)

...

Arguments:
REAL(dp),
INTENT(inout)
:: eri(:,:) ...
REAL(dp),
INTENT(in)
:: omat(:,:) ...
REAL(dp),
INTENT(in)
:: cm1(:,:) ...
REAL(dp),
INTENT(in)
:: cm2(:,:) ...

SUBROUTINEcoulomb_potential_analytic(cpot, pmat, basis, grid, maxl)

...

Arguments:
REAL(dp),
INTENT(inout)
:: cpot(:) ...
REAL(dp),
INTENT(in)
:: pmat(:,:,0:) ...
INTENT(in)
:: basis ...
:: grid ...
INTEGER,
INTENT(in)
:: maxl ...

SUBROUTINEcoulomb_potential_numeric(cpot, density, grid)

...

Arguments:
REAL(dp),
INTENT(inout)
:: cpot(:) ...
REAL(dp),
INTENT(in)
:: density(:) ...
INTENT(in)
:: grid ...

SUBROUTINEeeri_contract(kmat, erint, pmat, nsize)

...

Arguments:
REAL(dp),
INTENT(inout)
:: kmat(:,:,0:) ...
TYPE(eri),
INTENT(in)
:: erint(:) ...
REAL(dp),
INTENT(in)
:: pmat(:,:,0:) ...
INTEGER,
INTENT(in)
:: nsize(0:) ...

SUBROUTINEerr_matrix(emat, demax, kmat, pmat, umat, upmat, nval, nbs)

...

Arguments:
REAL(dp),
INTENT(out)
:: emat(:,:,0:) ...
REAL(dp),
INTENT(out)
:: demax ...
REAL(dp),
INTENT(in)
:: kmat(:,:,0:) ...
REAL(dp),
INTENT(in)
:: pmat(:,:,0:) ...
REAL(dp),
INTENT(in)
:: umat(:,:,0:) ...
REAL(dp),
INTENT(in)
:: upmat(:,:,0:) ...
INTEGER,
INTENT(in)
:: nval(0:) ...
INTEGER,
INTENT(in)
:: nbs(0:) ...

SUBROUTINEexchange_numeric(kmat, state, occ, wfn, basis)

...

Arguments:
REAL(dp),
INTENT(inout)
:: kmat(:,:,0:) ...
TYPE(atom_state),
INTENT(in)
:: state ...
REAL(dp),
INTENT(in)
:: occ(0:,:) ...
REAL(dp),
POINTER
:: wfn(:,:,:) ...
INTENT(in)
:: basis ...

SUBROUTINEexchange_semi_analytic(kmat, state, occ, wfn, basis)

...

Arguments:
REAL(dp),
INTENT(inout)
:: kmat(:,:,0:) ...
TYPE(atom_state),
INTENT(in)
:: state ...
REAL(dp),
INTENT(in)
:: occ(0:,:) ...
REAL(dp),
POINTER
:: wfn(:,:,:) ...
INTENT(in)
:: basis ...

FUNCTIONget_maxl_occ(occupation)

...

Return Value ::
INTEGER
Arguments:
REAL(dp)
:: occupation(0:lmat,10) ...

FUNCTIONget_maxn_occ(occupation)

...

Return Value ::
INTEGER
Arguments:
REAL(dp)
:: occupation(0:lmat,10) ...

SUBROUTINEget_rho0(atom, rho0)

...

Arguments:
TYPE(atom_type),
INTENT(in)
:: atom ...
REAL(dp),
INTENT(out)
:: rho0 ...

SUBROUTINEnumpot_matrix(imat, cpot, basis, derivatives)

...

Arguments:
REAL(dp),
INTENT(inout)
:: imat(:,:,0:) ...
REAL(dp),
INTENT(in)
:: cpot(:) ...
INTENT(inout)
:: basis ...
INTEGER,
INTENT(in)
:: derivatives ...

SUBROUTINEslater_density(density1, density2, zcore, state, grid)

...

Arguments:
REAL(dp),
INTENT(out)
:: density1(:) ...
REAL(dp),
INTENT(out)
:: density2(:) ...
INTEGER,
INTENT(in)
:: zcore ...
TYPE(atom_state),
INTENT(in)
:: state ...
INTENT(in)
:: grid ...

SUBROUTINEwigner_slater_functional(rho, vxc)

...

Arguments:
REAL(dp),
INTENT(in)
:: rho(:) ...
REAL(dp),
INTENT(out)
:: vxc(:) ...

FUNCTIONintegrate_grid_function1(fun, grid)

...

Return Value ::
REAL(dp)
Arguments:
REAL(dp),
INTENT(in)
:: fun(:) ...
:: grid ...

FUNCTIONintegrate_grid_function2(fun1, fun2, grid)

...

Return Value ::
REAL(dp)
Arguments:
REAL(dp),
INTENT(in)
:: fun1(:) ...
REAL(dp),
INTENT(in)
:: fun2(:) ...
:: grid ...

FUNCTIONintegrate_grid_function3(fun1, fun2, fun3, grid)

...

Return Value ::
REAL(dp)
Arguments:
REAL(dp),
INTENT(in)
:: fun1(:) ...
REAL(dp),
INTENT(in)
:: fun2(:) ...
REAL(dp),
INTENT(in)
:: fun3(:) ...
:: grid ...