Documentation for module atom_types

Define the atom type and its sub types

source: atom_types.F
Loading...

Forwarded symbols:

ecp_pseudo
input_constants::ecp_pseudo
...
gth_pseudo
input_constants::gth_pseudo
...
no_pseudo
input_constants::no_pseudo
...
sgp_pseudo
input_constants::sgp_pseudo
...
upf_pseudo
input_constants::upf_pseudo
...

public Types:

atom_potential_type
...
atom_ecppot_type
...
atom_state
Provides all information on states and occupation
atom_orbitals
Holds atomic orbitals and energies
opgrid_type
Operator grids
atom_gthpot_type
Provides all information about a pseudopotential
atom_integrals
...
atom_basis_type
Provides all information about a basis set
opmat_type
Operator matrices
atom_p_type
...
eri
Holds atomic integrals
atom_optimization_type
Information on optimization procedure
atom_type
Provides all information about an atomic kind

public Subroutines/Functions:

...
FUNCTION
LOGICAL
atom_compare_grids (grid1, grid2)
...
...
SUBROUTINE
create_atom_orbs (orbs, mbas, mo)
...
SUBROUTINE
create_atom_type (atom)
...
SUBROUTINE
create_opgrid (opgrid, grid)
...
SUBROUTINE
create_opmat (opmat, n, lmax)
...
Initialize the basis for the atomic code
...
...
...
...
...
SUBROUTINE
release_atom_orbs (orbs)
...
...
SUBROUTINE
release_atom_type (atom)
...
SUBROUTINE
release_opgrid (opgrid)
...
SUBROUTINE
release_opmat (opmat)
...
...

Parameters:

INTEGER
:: cgto_basis = 101
INTEGER
:: gto_basis = 100
INTEGER
:: lmat = 5
INTEGER
:: num_basis = 103
INTEGER
:: sto_basis = 102

public Types:

TYPE :: atom_basis_type

Provides all information about a basis set


INTEGER
:: basis_type ...
INTEGER,
DIMENSION(0:LMAT) :: nbas ...
INTEGER,
DIMENSION(0:LMAT) :: nprim ...
REAL(dp),
DIMENSION(:,:), POINTER :: am ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: cm ...
REAL(dp),
DIMENSION(:,:), POINTER :: as ...
INTEGER,
DIMENSION(:,:), POINTER :: ns ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: bf ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: dbf ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: ddbf ...
REAL(dp)
:: eps_eig ...
POINTER :: grid ...
LOGICAL
:: geometrical ...
REAL(dp)
:: aval ...
REAL(dp)
:: cval ...
INTEGER,
DIMENSION(0:LMAT) :: start ...

TYPE :: atom_ecppot_type

...


CHARACTER(2)
:: symbol ...
:: pname ...
INTEGER,
DIMENSION(0:LMAT) :: econf ...
REAL(dp)
:: zion ...
INTEGER
:: lmax ...
INTEGER
:: nloc ...
INTEGER,
DIMENSION(1:10) :: nrloc ...
REAL(dp),
DIMENSION(1:10) :: aloc ...
REAL(dp),
DIMENSION(1:10) :: bloc ...
INTEGER,
DIMENSION(0:10) :: npot ...
INTEGER,
DIMENSION(1:10,0:10) :: nrpot ...
REAL(dp),
DIMENSION(1:10,0:10) :: apot ...
REAL(dp),
DIMENSION(1:10,0:10) :: bpot ...

TYPE :: atom_gthpot_type

Provides all information about a pseudopotential


CHARACTER(2)
:: symbol ...
:: pname ...
INTEGER,
DIMENSION(0:LMAT) :: econf ...
REAL(dp)
:: zion ...
REAL(dp)
:: rc ...
INTEGER
:: ncl ...
REAL(dp),
DIMENSION(5) :: cl ...
INTEGER,
DIMENSION(0:LMAT) :: nl ...
REAL(dp),
DIMENSION(0:LMAT) :: rcnl ...
REAL(dp),
DIMENSION(4,4,0:LMAT) :: hnl ...
LOGICAL
:: nlcc ...
INTEGER
:: nexp_nlcc ...
REAL(dp),
DIMENSION(10) :: alpha_nlcc ...
INTEGER,
DIMENSION(10) :: nct_nlcc ...
REAL(dp),
DIMENSION(4,10) :: cval_nlcc ...
LOGICAL
:: lsdpot ...
INTEGER
:: nexp_lsd ...
REAL(dp),
DIMENSION(10) :: alpha_lsd ...
INTEGER,
DIMENSION(10) :: nct_lsd ...
REAL(dp),
DIMENSION(4,10) :: cval_lsd ...
LOGICAL
:: lpotextended ...
INTEGER
:: nexp_lpot ...
REAL(dp),
DIMENSION(10) :: alpha_lpot ...
INTEGER,
DIMENSION(10) :: nct_lpot ...
REAL(dp),
DIMENSION(4,10) :: cval_lpot ...

TYPE :: atom_integrals

...


INTEGER
:: status = 0 ...
INTEGER
:: ppstat = 0 ...
LOGICAL
:: eri_coulomb ...
LOGICAL
:: eri_exchange ...
LOGICAL
:: all_nu ...
INTEGER,
DIMENSION(0:LMAT) :: n ...
INTEGER,
DIMENSION(0:LMAT) :: nne ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: ovlp ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: kin ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: core ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: clsd ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: utrans ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: uptrans ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: hnl ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: conf ...
TYPE(eri),
DIMENSION(100) :: ceri ...
TYPE(eri),
DIMENSION(100) :: eeri ...
INTEGER
:: dkhstat = 0 ...
INTEGER
:: zorastat = 0 ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: tzora ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: hdkh ...

TYPE :: atom_optimization_type

Information on optimization procedure


REAL(dp)
:: damping ...
REAL(dp)
:: eps_scf ...
REAL(dp)
:: eps_diis ...
INTEGER
:: max_iter ...
INTEGER
:: n_diis ...

TYPE :: atom_orbitals

Holds atomic orbitals and energies


REAL(dp),
DIMENSION(:,:,:), POINTER :: wfn ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: wfna ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: wfnb ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: pmat ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: pmata ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: pmatb ...
REAL(dp),
DIMENSION(:,:), POINTER :: ener ...
REAL(dp),
DIMENSION(:,:), POINTER :: enera ...
REAL(dp),
DIMENSION(:,:), POINTER :: enerb ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: refene ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: refchg ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: refnod ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: wrefene ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: wrefchg ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: wrefnod ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: crefene ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: crefchg ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: crefnod ...
REAL(dp),
DIMENSION(:,:), POINTER :: wpsir0 ...
REAL(dp),
DIMENSION(:,:), POINTER :: tpsir0 ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: rcmax ...
CHARACTER(2),
DIMENSION(:,:,:), POINTER :: reftype ...

TYPE :: atom_potential_type

...


INTEGER
:: ppot_type ...
LOGICAL
:: confinement ...
INTEGER
:: conf_type ...
REAL(dp)
:: acon ...
REAL(dp)
:: rcon ...
REAL(dp)
:: scon ...
:: gth_pot ...
:: ecp_pot ...
:: upf_pot ...
:: sgp_pot ...

TYPE :: atom_p_type

...


TYPE(atom_type),
POINTER :: atom ...

TYPE :: atom_state

Provides all information on states and occupation


REAL(dp),
DIMENSION(0:LMAT,10) :: occ ...
REAL(dp),
DIMENSION(0:LMAT,10) :: core ...
REAL(dp),
DIMENSION(0:LMAT,10) :: occupation ...
INTEGER
:: maxl_occ ...
INTEGER,
DIMENSION(0:LMAT) :: maxn_occ ...
INTEGER
:: maxl_calc ...
INTEGER,
DIMENSION(0:LMAT) :: maxn_calc ...
INTEGER
:: multiplicity ...
REAL(dp),
DIMENSION(0:LMAT,10) :: occa = 0.0_DP ...
REAL(dp),
DIMENSION(0:LMAT,10) :: occb = 0.0_DP ...

TYPE :: atom_type

Provides all information about an atomic kind


INTEGER
:: z ...
INTEGER
:: zcore ...
LOGICAL
:: pp_calc ...
LOGICAL
:: do_zmp ...
LOGICAL
:: doread ...
LOGICAL
:: read_vxc ...
LOGICAL
:: dm ...
:: ext_file ...
:: ext_vxc_file ...
:: zmp_restart_file ...
INTEGER
:: method_type ...
INTEGER
:: relativistic ...
INTEGER
:: coulomb_integral_type ...
INTEGER
:: exchange_integral_type ...
REAL(dp)
:: lambda ...
REAL(dp)
:: rho_diff_integral ...
REAL(dp)
:: weight ...
REAL(dp)
:: zmpgrid_tol ...
REAL(dp)
:: zmpvxcgrid_tol ...
POINTER :: basis ...
POINTER :: potential ...
TYPE(atom_state),
POINTER :: state ...
POINTER :: integrals ...
POINTER :: orbitals ...
:: energy ...
:: optimization ...
POINTER :: xc_section ...
POINTER :: zmp_section ...
TYPE(opmat_type),
POINTER :: fmat ...

TYPE :: eri

Holds atomic integrals


REAL(dp),
DIMENSION(:,:), POINTER :: int ...

TYPE :: opgrid_type

Operator grids


REAL(dp),
DIMENSION(:), POINTER :: op ...
POINTER :: grid ...

TYPE :: opmat_type

Operator matrices


INTEGER,
DIMENSION(0:LMAT) :: n ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: op ...

SUBROUTINEatom_basis_gridrep(basis, gbasis, r, rab)

...

Arguments:
INTENT(in)
:: basis ...
INTENT(inout)
:: gbasis ...
REAL(dp),
INTENT(in)
:: r(:) ...
REAL(dp),
INTENT(in)
:: rab(:) ...

FUNCTIONatom_compare_grids(grid1, grid2)

...

Return Value ::
LOGICAL
Arguments:
:: grid1 ...
:: grid2 ...

SUBROUTINEclementi_geobas(zval, cval, aval, ngto, ival)

...

Arguments:
INTEGER,
INTENT(in)
:: zval ...
REAL(dp),
INTENT(out)
:: cval ...
REAL(dp),
INTENT(out)
:: aval ...
INTEGER,
INTENT(out)
:: ngto(0:lmat) ...
INTEGER,
INTENT(out)
:: ival(0:lmat) ...

SUBROUTINEcreate_atom_orbs(orbs, mbas, mo)

...

Arguments:
POINTER
:: orbs ...
INTEGER,
INTENT(in)
:: mbas ...
INTEGER,
INTENT(in)
:: mo ...

SUBROUTINEcreate_atom_type(atom)

...

Arguments:
TYPE(atom_type),
POINTER
:: atom ...

SUBROUTINEcreate_opgrid(opgrid, grid)

...

Arguments:
POINTER
:: opgrid ...
POINTER
:: grid ...

SUBROUTINEcreate_opmat(opmat, n, lmax)

...

Arguments:
TYPE(opmat_type),
POINTER
:: opmat ...
INTEGER,
INTENT(in)
:: n(0:lmat) ...
INTEGER,
INTENT(in),
OPTIONAL
:: lmax ...

SUBROUTINEinit_atom_basis(basis, basis_section, zval, btyp)

Initialize the basis for the atomic code

Arguments:
INTENT(inout)
:: basis ...
POINTER
:: basis_section ...
INTEGER,
INTENT(in)
:: zval ...
CHARACTER(2)
:: btyp ...

SUBROUTINEinit_atom_basis_default_pp(basis)

...

Arguments:
INTENT(inout)
:: basis ...

SUBROUTINEinit_atom_potential(potential, potential_section, zval)

...

Arguments:
INTENT(inout)
:: potential ...
POINTER
:: potential_section ...
INTEGER,
INTENT(in)
:: zval ...

SUBROUTINEread_atom_opt_section(optimization, opt_section)

...

Arguments:
INTENT(inout)
:: optimization ...
POINTER
:: opt_section ...

SUBROUTINEread_ecp_potential(element_symbol, potential, pseudo_name, pseudo_file, potential_section)

...

Arguments:
CHARACTER(*),
INTENT(in)
:: element_symbol ...
INTENT(inout)
:: potential ...
CHARACTER(*),
INTENT(in)
:: pseudo_name ...
CHARACTER(*),
INTENT(in)
:: pseudo_file ...
POINTER
:: potential_section ...

SUBROUTINErelease_atom_basis(basis)

...

Arguments:
INTENT(inout)
:: basis ...

SUBROUTINErelease_atom_orbs(orbs)

...

Arguments:
POINTER
:: orbs ...

SUBROUTINErelease_atom_potential(potential)

...

Arguments:
INTENT(inout)
:: potential ...

SUBROUTINErelease_atom_type(atom)

...

Arguments:
TYPE(atom_type),
POINTER
:: atom ...

SUBROUTINErelease_opgrid(opgrid)

...

Arguments:
POINTER
:: opgrid ...

SUBROUTINErelease_opmat(opmat)

...

Arguments:
TYPE(opmat_type),
POINTER
:: opmat ...

SUBROUTINEset_atom(atom, basis, state, integrals, orbitals, potential, zcore, pp_calc, do_zmp, doread, read_vxc, method_type, relativistic, coulomb_integral_type, exchange_integral_type, fmat)

...

Arguments:
TYPE(atom_type),
POINTER
:: atom ...
OPTIONAL, POINTER
:: basis ...
TYPE(atom_state),
OPTIONAL, POINTER
:: state ...
OPTIONAL, POINTER
:: integrals ...
OPTIONAL, POINTER
:: orbitals ...
OPTIONAL, POINTER
:: potential ...
INTEGER,
INTENT(in),
OPTIONAL
:: zcore ...
LOGICAL,
INTENT(in),
OPTIONAL
:: pp_calc ...
LOGICAL,
INTENT(in),
OPTIONAL
:: do_zmp ...
LOGICAL,
INTENT(in),
OPTIONAL
:: doread ...
LOGICAL,
INTENT(in),
OPTIONAL
:: read_vxc ...
INTEGER,
INTENT(in),
OPTIONAL
:: method_type ...
INTEGER,
INTENT(in),
OPTIONAL
:: relativistic ...
INTEGER,
INTENT(in),
OPTIONAL
:: coulomb_integral_type ...
INTEGER,
INTENT(in),
OPTIONAL
:: exchange_integral_type ...
TYPE(opmat_type),
OPTIONAL, POINTER
:: fmat ...

private Parameters/Types:

private Types:

TYPE :: atom_energy_type

All energies


REAL(dp)
:: etot ...
REAL(dp)
:: eband ...
REAL(dp)
:: ekin ...
REAL(dp)
:: epot ...
REAL(dp)
:: ecore ...
REAL(dp)
:: elsd ...
REAL(dp)
:: epseudo ...
REAL(dp)
:: eploc ...
REAL(dp)
:: epnl ...
REAL(dp)
:: exc ...
REAL(dp)
:: ecoulomb ...
REAL(dp)
:: eexchange ...
REAL(dp)
:: econfinement ...

TYPE :: atom_sgppot_type

...


CHARACTER(2)
:: symbol ...
:: pname ...
INTEGER,
DIMENSION(0:LMAT) :: econf ...
REAL(dp)
:: zion ...
INTEGER
:: lmax ...
LOGICAL
:: has_nonlocal ...
INTEGER
:: n_nonlocal ...
LOGICAL,
DIMENSION(0:5) :: is_nonlocal = .FALSE. ...
REAL(dp),
DIMENSION(NMAX) :: a_nonlocal ...
REAL(dp),
DIMENSION(NMAX,0:LMAT) :: h_nonlocal ...
REAL(dp),
DIMENSION(NMAX,NMAX,0:LMAT) :: c_nonlocal ...
INTEGER
:: n_local ...
REAL(dp)
:: ac_local ...
REAL(dp),
DIMENSION(NMAX) :: a_local ...
REAL(dp),
DIMENSION(NMAX) :: c_local ...
LOGICAL
:: has_nlcc ...
INTEGER
:: n_nlcc ...
REAL(dp),
DIMENSION(NMAX) :: a_nlcc ...
REAL(dp),
DIMENSION(NMAX) :: c_nlcc ...