Documentation for module external_potential_types

Definition of the atomic potential types.

source: external_potential_types.F
Loading...

public Types:

sgp_potential_p_type
...
gth_potential_p_type
...
sgp_potential_type
...
local_potential_type
...
fist_potential_type
...
gth_potential_type
...
all_potential_type
...

Generic procedures:

allocate_potential
deallocate_potential
get_potential
init_potential
read_potential
set_potential
write_potential

public Subroutines/Functions:

...

public Types:

TYPE :: all_potential_type

...


:: name ...
DIMENSION(2) :: description ...
REAL(dp)
:: alpha_core_charge ...
REAL(dp)
:: ccore_charge ...
REAL(dp)
:: core_charge_radius ...
REAL(dp)
:: zeff ...
REAL(dp)
:: zeff_correction ...
INTEGER
:: z ...
INTEGER,
DIMENSION(:), POINTER :: elec_conf ...

TYPE :: fist_potential_type

...


:: name ...
DIMENSION(1) :: description ...
REAL(dp)
:: apol ...
REAL(dp)
:: cpol ...
REAL(dp)
:: mm_radius ...
REAL(dp)
:: qeff ...
REAL(dp)
:: qmmm_corr_radius ...
REAL(dp)
:: qmmm_radius ...

TYPE :: gth_potential_p_type

...


POINTER :: gth_potential ...

TYPE :: gth_potential_type

...


:: name ...
:: aliases ...
DIMENSION(4) :: description ...
REAL(dp)
:: alpha_core_charge ...
REAL(dp)
:: alpha_ppl ...
REAL(dp)
:: ccore_charge ...
REAL(dp)
:: cerf_ppl ...
REAL(dp)
:: zeff ...
REAL(dp)
:: core_charge_radius ...
REAL(dp)
:: ppl_radius ...
REAL(dp)
:: ppnl_radius ...
REAL(dp)
:: zeff_correction ...
INTEGER
:: lppnl ...
INTEGER
:: lprj_ppnl_max ...
INTEGER
:: nexp_ppl ...
INTEGER
:: nppnl ...
INTEGER
:: nprj_ppnl_max ...
INTEGER
:: z ...
REAL(dp),
DIMENSION(:), POINTER :: alpha_ppnl ...
REAL(dp),
DIMENSION(:), POINTER :: cexp_ppl ...
INTEGER,
DIMENSION(:), POINTER :: elec_conf ...
INTEGER,
DIMENSION(:), POINTER :: nprj_ppnl ...
REAL(dp),
DIMENSION(:,:), POINTER :: cprj ...
REAL(dp),
DIMENSION(:,:), POINTER :: cprj_ppnl ...
REAL(dp),
DIMENSION(:,:), POINTER :: vprj_ppnl ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: hprj_ppnl ...
LOGICAL
:: nlcc ...
INTEGER
:: nexp_nlcc ...
REAL(dp),
DIMENSION(:), POINTER :: alpha_nlcc ...
INTEGER,
DIMENSION(:), POINTER :: nct_nlcc ...
REAL(dp),
DIMENSION(:,:), POINTER :: cval_nlcc ...
LOGICAL
:: lsdpot ...
INTEGER
:: nexp_lsd ...
REAL(dp),
DIMENSION(:), POINTER :: alpha_lsd ...
INTEGER,
DIMENSION(:), POINTER :: nct_lsd ...
REAL(dp),
DIMENSION(:,:), POINTER :: cval_lsd ...
LOGICAL
:: lpotextended ...
INTEGER
:: nexp_lpot ...
REAL(dp),
DIMENSION(:), POINTER :: alpha_lpot ...
INTEGER,
DIMENSION(:), POINTER :: nct_lpot ...
REAL(dp),
DIMENSION(:,:), POINTER :: cval_lpot ...

TYPE :: local_potential_type

...


:: name ...
DIMENSION(4) :: description ...
INTEGER
:: ngau ...
INTEGER
:: npol ...
REAL(dp)
:: radius ...
REAL(dp),
DIMENSION(:), POINTER :: alpha ...
REAL(dp),
DIMENSION(:,:), POINTER :: cval ...

TYPE :: sgp_potential_p_type

...


POINTER :: sgp_potential ...

TYPE :: sgp_potential_type

...


:: name ...
:: aliases ...
DIMENSION(4) :: description ...
INTEGER
:: z ...
REAL(dp)
:: zeff ...
REAL(dp)
:: zeff_correction ...
REAL(dp)
:: alpha_core_charge ...
REAL(dp)
:: ccore_charge ...
REAL(dp)
:: core_charge_radius ...
REAL(dp)
:: ppl_radius ...
REAL(dp)
:: ppnl_radius ...
INTEGER,
DIMENSION(:), POINTER :: elec_conf ...
LOGICAL
:: ecp_local ...
INTEGER
:: n_local ...
REAL(dp),
DIMENSION(:), POINTER :: a_local => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: c_local => NULL() ...
INTEGER
:: nloc ...
INTEGER,
DIMENSION(1:10) :: nrloc ...
REAL(dp),
DIMENSION(1:10) :: aloc ...
REAL(dp),
DIMENSION(1:10) :: bloc ...
INTEGER
:: n_nonlocal ...
INTEGER
:: nppnl ...
INTEGER
:: lmax ...
LOGICAL,
DIMENSION(0:5) :: is_nonlocal = .FALSE. ...
REAL(dp),
DIMENSION(:), POINTER :: a_nonlocal => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: h_nonlocal => NULL() ...
REAL(dp),
DIMENSION(:,:,:), POINTER :: c_nonlocal => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: cprj_ppnl ...
REAL(dp),
DIMENSION(:), POINTER :: vprj_ppnl ...
LOGICAL
:: has_nlcc ...
INTEGER
:: n_nlcc ...
REAL(dp),
DIMENSION(:), POINTER :: a_nlcc => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: c_nlcc => NULL() ...


Generic procedure allocate_potential

...

POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×

Generic procedure deallocate_potential

...

POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×

Generic procedure get_potential

...

POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
INTENT(out),
OPTIONAL
:: name × × × × ×
REAL(dp),
INTENT(out),
OPTIONAL
:: alpha_core_charge × × ×
REAL(dp),
INTENT(out),
OPTIONAL
:: ccore_charge × × ×
REAL(dp),
INTENT(out),
OPTIONAL
:: core_charge_radius × × ×
INTEGER,
INTENT(out),
OPTIONAL
:: z × × ×
REAL(dp),
INTENT(out),
OPTIONAL
:: zeff × × ×
REAL(dp),
INTENT(out),
OPTIONAL
:: zeff_correction × × ×
INTEGER,
OPTIONAL, POINTER
:: elec_conf(:) × × ×
REAL(dp),
INTENT(out),
OPTIONAL
:: apol ×
REAL(dp),
INTENT(out),
OPTIONAL
:: cpol ×
REAL(dp),
INTENT(out),
OPTIONAL
:: mm_radius ×
REAL(dp),
INTENT(out),
OPTIONAL
:: qeff ×
REAL(dp),
INTENT(out),
OPTIONAL
:: qmmm_corr_radius ×
REAL(dp),
INTENT(out),
OPTIONAL
:: qmmm_radius ×
INTEGER,
INTENT(out),
OPTIONAL
:: ngau ×
INTEGER,
INTENT(out),
OPTIONAL
:: npol ×
REAL(dp),
OPTIONAL, POINTER
:: alpha(:) ×
REAL(dp),
OPTIONAL, POINTER
:: cval(:,:) ×
REAL(dp),
INTENT(out),
OPTIONAL
:: radius ×
INTENT(out),
OPTIONAL
:: aliases × ×
REAL(dp),
INTENT(out),
OPTIONAL
:: alpha_ppl ×
REAL(dp),
INTENT(out),
OPTIONAL
:: cerf_ppl ×
REAL(dp),
INTENT(out),
OPTIONAL
:: ppl_radius × ×
REAL(dp),
INTENT(out),
OPTIONAL
:: ppnl_radius × ×
INTEGER,
INTENT(out),
OPTIONAL
:: lppnl ×
INTEGER,
INTENT(out),
OPTIONAL
:: lprj_ppnl_max ×
INTEGER,
INTENT(out),
OPTIONAL
:: nexp_ppl ×
INTEGER,
INTENT(out),
OPTIONAL
:: nppnl × ×
INTEGER,
INTENT(out),
OPTIONAL
:: nprj_ppnl_max ×
LOGICAL,
INTENT(out),
OPTIONAL
:: ppl_present × ×
LOGICAL,
INTENT(out),
OPTIONAL
:: ppnl_present × ×
REAL(dp),
OPTIONAL, POINTER
:: alpha_ppnl(:) ×
REAL(dp),
OPTIONAL, POINTER
:: cexp_ppl(:) ×
INTEGER,
OPTIONAL, POINTER
:: nprj_ppnl(:) ×
REAL(dp),
OPTIONAL, POINTER
:: cprj(:,:) ×
REAL(dp),
OPTIONAL, POINTER
:: cprj_ppnl(:,:) × ×
REAL(dp),
OPTIONAL, POINTER
:: vprj_ppnl(:,:) ×
REAL(dp),
OPTIONAL, POINTER
:: vprj_ppnl(:) ×
REAL(dp),
OPTIONAL, POINTER
:: hprj_ppnl(:,:,:) ×
LOGICAL,
INTENT(out),
OPTIONAL
:: lpot_present ×
INTEGER,
INTENT(out),
OPTIONAL
:: nexp_lpot ×
REAL(dp),
OPTIONAL, POINTER
:: alpha_lpot(:) ×
INTEGER,
OPTIONAL, POINTER
:: nct_lpot(:) ×
REAL(dp),
OPTIONAL, POINTER
:: cval_lpot(:,:) ×
LOGICAL,
INTENT(out),
OPTIONAL
:: lsd_present ×
INTEGER,
INTENT(out),
OPTIONAL
:: nexp_lsd ×
REAL(dp),
OPTIONAL, POINTER
:: alpha_lsd(:) ×
INTEGER,
OPTIONAL, POINTER
:: nct_lsd(:) ×
REAL(dp),
OPTIONAL, POINTER
:: cval_lsd(:,:) ×
LOGICAL,
INTENT(out),
OPTIONAL
:: nlcc_present ×
INTEGER,
INTENT(out),
OPTIONAL
:: nexp_nlcc ×
REAL(dp),
OPTIONAL, POINTER
:: alpha_nlcc(:) ×
INTEGER,
OPTIONAL, POINTER
:: nct_nlcc(:) ×
REAL(dp),
OPTIONAL, POINTER
:: cval_nlcc(:,:) ×
INTENT(out),
OPTIONAL
:: description(4) ×
LOGICAL,
INTENT(out),
OPTIONAL
:: ecp_local ×
INTEGER,
INTENT(out),
OPTIONAL
:: n_local ×
REAL(dp),
OPTIONAL, POINTER
:: a_local(:) ×
REAL(dp),
OPTIONAL, POINTER
:: c_local(:) ×
INTEGER,
INTENT(out),
OPTIONAL
:: nloc ×
INTEGER,
INTENT(out),
OPTIONAL
:: nrloc(1:10) ×
REAL(dp),
INTENT(out),
OPTIONAL
:: aloc(1:10) ×
REAL(dp),
INTENT(out),
OPTIONAL
:: bloc(1:10) ×
INTEGER,
INTENT(out),
OPTIONAL
:: n_nonlocal ×
INTEGER,
INTENT(out),
OPTIONAL
:: lmax ×
LOGICAL,
OPTIONAL
:: is_nonlocal(0:5) ×
REAL(dp),
OPTIONAL, POINTER
:: a_nonlocal(:) ×
REAL(dp),
OPTIONAL, POINTER
:: h_nonlocal(:,:) ×
REAL(dp),
OPTIONAL, POINTER
:: c_nonlocal(:,:,:) ×
LOGICAL,
INTENT(out),
OPTIONAL
:: has_nlcc ×
INTEGER,
INTENT(out),
OPTIONAL
:: n_nlcc ×
REAL(dp),
OPTIONAL, POINTER
:: a_nlcc(:) ×
REAL(dp),
OPTIONAL, POINTER
:: c_nlcc(:) ×

Generic procedure init_potential

...

POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
CHARACTER(*),
OPTIONAL
:: itype ×
REAL(dp),
OPTIONAL
:: zeff ×
REAL(dp),
OPTIONAL
:: zeff_correction ×

Generic procedure read_potential

...

CHARACTER(*),
INTENT(in)
:: element_symbol × × ×
CHARACTER(*),
INTENT(in)
:: potential_name × × ×
POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
REAL(dp)
:: zeff_correction ×
REAL(dp),
INTENT(in)
:: zeff_correction ×
POINTER
:: para_env × × ×
INTENT(in)
:: potential_file_name × × ×
POINTER
:: potential_section × × ×
LOGICAL,
INTENT(in)
:: update_input × × ×

Generic procedure set_potential

...

POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
INTENT(in),
OPTIONAL
:: name × × × ×
REAL(dp),
INTENT(in),
OPTIONAL
:: alpha_core_charge × × ×
REAL(dp),
INTENT(in),
OPTIONAL
:: ccore_charge × × ×
REAL(dp),
INTENT(in),
OPTIONAL
:: core_charge_radius × × ×
INTEGER,
INTENT(in),
OPTIONAL
:: z × × ×
REAL(dp),
INTENT(in),
OPTIONAL
:: zeff × × ×
REAL(dp),
INTENT(in),
OPTIONAL
:: zeff_correction × × ×
INTEGER,
OPTIONAL, POINTER
:: elec_conf(:) × × ×
REAL(dp),
INTENT(in),
OPTIONAL
:: apol ×
REAL(dp),
INTENT(in),
OPTIONAL
:: cpol ×
REAL(dp),
INTENT(in),
OPTIONAL
:: qeff ×
REAL(dp),
INTENT(in),
OPTIONAL
:: mm_radius ×
REAL(dp),
INTENT(in),
OPTIONAL
:: qmmm_corr_radius ×
REAL(dp),
INTENT(in),
OPTIONAL
:: qmmm_radius ×
REAL(dp),
OPTIONAL, POINTER
:: alpha(:) ×
REAL(dp),
OPTIONAL, POINTER
:: cval(:,:) ×
REAL(dp),
INTENT(in),
OPTIONAL
:: radius ×
REAL(dp),
INTENT(in),
OPTIONAL
:: alpha_ppl ×
REAL(dp),
INTENT(in),
OPTIONAL
:: cerf_ppl ×
REAL(dp),
INTENT(in),
OPTIONAL
:: ppl_radius × ×
REAL(dp),
INTENT(in),
OPTIONAL
:: ppnl_radius × ×
INTEGER,
INTENT(in),
OPTIONAL
:: lppnl ×
INTEGER,
INTENT(in),
OPTIONAL
:: lprj_ppnl_max ×
INTEGER,
INTENT(in),
OPTIONAL
:: nexp_ppl ×
INTEGER,
INTENT(in),
OPTIONAL
:: nppnl × ×
INTEGER,
INTENT(in),
OPTIONAL
:: nprj_ppnl_max ×
REAL(dp),
OPTIONAL, POINTER
:: alpha_ppnl(:) ×
REAL(dp),
OPTIONAL, POINTER
:: cexp_ppl(:) ×
INTEGER,
OPTIONAL, POINTER
:: nprj_ppnl(:) ×
REAL(dp),
OPTIONAL, POINTER
:: cprj(:,:) ×
REAL(dp),
OPTIONAL, POINTER
:: cprj_ppnl(:,:) ×
REAL(dp),
OPTIONAL, POINTER
:: vprj_ppnl(:,:) ×
REAL(dp),
OPTIONAL, POINTER
:: hprj_ppnl(:,:,:) ×
INTENT(in),
OPTIONAL
:: description(4) ×
INTENT(in),
OPTIONAL
:: aliases ×
LOGICAL,
INTENT(in),
OPTIONAL
:: ecp_local ×
INTEGER,
INTENT(in),
OPTIONAL
:: n_local ×
REAL(dp),
OPTIONAL, POINTER
:: a_local(:) ×
REAL(dp),
OPTIONAL, POINTER
:: c_local(:) ×
INTEGER,
INTENT(in),
OPTIONAL
:: nloc ×
INTEGER,
INTENT(in),
OPTIONAL
:: nrloc(1:10) ×
REAL(dp),
INTENT(in),
OPTIONAL
:: aloc(1:10) ×
REAL(dp),
INTENT(in),
OPTIONAL
:: bloc(1:10) ×
INTEGER,
INTENT(in),
OPTIONAL
:: n_nonlocal ×
INTEGER,
INTENT(in),
OPTIONAL
:: lmax ×
LOGICAL,
INTENT(in),
OPTIONAL
:: is_nonlocal(0:5) ×
REAL(dp),
OPTIONAL, POINTER
:: a_nonlocal(:) ×
REAL(dp),
OPTIONAL, POINTER
:: h_nonlocal(:,:) ×
REAL(dp),
OPTIONAL, POINTER
:: c_nonlocal(:,:,:) ×
LOGICAL,
INTENT(in),
OPTIONAL
:: has_nlcc ×
INTEGER,
INTENT(in),
OPTIONAL
:: n_nlcc ×
REAL(dp),
OPTIONAL, POINTER
:: a_nlcc(:) ×
REAL(dp),
OPTIONAL, POINTER
:: c_nlcc(:) ×

Generic procedure write_potential

...

POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
POINTER
:: potential ×
INTEGER,
INTENT(in)
:: output_unit × × × ×

SUBROUTINEset_default_all_potential(potential, z, zeff_correction)

...

Arguments:
POINTER
:: potential ...
INTEGER,
INTENT(in)
:: z ...
REAL(dp)
:: zeff_correction ...

SUBROUTINEallocate_all_potential(potential)

Allocate an atomic all-electron potential data set.

Arguments:
POINTER
:: potential ...

SUBROUTINEallocate_fist_potential(potential)

Allocate an effective charge and inducible dipole potential data set.

Arguments:
POINTER
:: potential ...

SUBROUTINEallocate_local_potential(potential)

Allocate an atomic local potential data set.

Arguments:
POINTER
:: potential ...

SUBROUTINEallocate_gth_potential(potential)

Allocate an atomic GTH potential data set.

Arguments:
POINTER
:: potential ...

SUBROUTINEallocate_sgp_potential(potential)

Allocate an atomic SGP potential data set.

Arguments:
POINTER
:: potential ...

SUBROUTINEdeallocate_all_potential(potential)

Deallocate an atomic all-electron potential data set.

Arguments:
POINTER
:: potential ...

SUBROUTINEdeallocate_fist_potential(potential)

Deallocate an effective charge and inducible dipole potential data set.

Arguments:
POINTER
:: potential ...

SUBROUTINEdeallocate_local_potential(potential)

Deallocate an atomic local potential data set.

Arguments:
POINTER
:: potential ...

SUBROUTINEdeallocate_sgp_potential(potential)

Deallocate an atomic SGP potential data set.

Arguments:
POINTER
:: potential ...

SUBROUTINEdeallocate_gth_potential(potential)

Deallocate an atomic GTH potential data set.

Arguments:
POINTER
:: potential ...

SUBROUTINEget_all_potential(potential, name, alpha_core_charge, ccore_charge, core_charge_radius, z, zeff, zeff_correction, elec_conf)

Get attributes of an all-electron potential data set.

Arguments:
POINTER
:: potential ...
INTENT(out),
OPTIONAL
:: name ...
REAL(dp),
INTENT(out),
OPTIONAL
:: alpha_core_charge ...
REAL(dp),
INTENT(out),
OPTIONAL
:: ccore_charge ...
REAL(dp),
INTENT(out),
OPTIONAL
:: core_charge_radius ...
INTEGER,
INTENT(out),
OPTIONAL
:: z ...
REAL(dp),
INTENT(out),
OPTIONAL
:: zeff ...
REAL(dp),
INTENT(out),
OPTIONAL
:: zeff_correction ...
INTEGER,
OPTIONAL, POINTER
:: elec_conf(:) ...

SUBROUTINEget_fist_potential(potential, name, apol, cpol, mm_radius, qeff, qmmm_corr_radius, qmmm_radius)

Get attributes of an effective point charge and inducible dipole potential.

Arguments:
POINTER
:: potential ...
INTENT(out),
OPTIONAL
:: name ...
REAL(dp),
INTENT(out),
OPTIONAL
:: apol ...
REAL(dp),
INTENT(out),
OPTIONAL
:: cpol ...
REAL(dp),
INTENT(out),
OPTIONAL
:: mm_radius ...
REAL(dp),
INTENT(out),
OPTIONAL
:: qeff ...
REAL(dp),
INTENT(out),
OPTIONAL
:: qmmm_corr_radius ...
REAL(dp),
INTENT(out),
OPTIONAL
:: qmmm_radius ...

SUBROUTINEget_local_potential(potential, name, ngau, npol, alpha, cval, radius)

Get attributes of an atomic local potential data set.

Arguments:
POINTER
:: potential ...
INTENT(out),
OPTIONAL
:: name ...
INTEGER,
INTENT(out),
OPTIONAL
:: ngau ...
INTEGER,
INTENT(out),
OPTIONAL
:: npol ...
REAL(dp),
OPTIONAL, POINTER
:: alpha(:) ...
REAL(dp),
OPTIONAL, POINTER
:: cval(:,:) ...
REAL(dp),
INTENT(out),
OPTIONAL
:: radius ...

SUBROUTINEget_gth_potential(potential, name, aliases, alpha_core_charge, alpha_ppl, ccore_charge, cerf_ppl, core_charge_radius, ppl_radius, ppnl_radius, lppnl, lprj_ppnl_max, nexp_ppl, nppnl, nprj_ppnl_max, z, zeff, zeff_correction, ppl_present, ppnl_present, alpha_ppnl, cexp_ppl, elec_conf, nprj_ppnl, cprj, cprj_ppnl, vprj_ppnl, hprj_ppnl, lpot_present, nexp_lpot, alpha_lpot, nct_lpot, cval_lpot, lsd_present, nexp_lsd, alpha_lsd, nct_lsd, cval_lsd, nlcc_present, nexp_nlcc, alpha_nlcc, nct_nlcc, cval_nlcc)

Get attributes of a GTH potential data set.

Arguments:
POINTER
:: potential ...
INTENT(out),
OPTIONAL
:: name ...
INTENT(out),
OPTIONAL
:: aliases ...
REAL(dp),
INTENT(out),
OPTIONAL
:: alpha_core_charge ...
REAL(dp),
INTENT(out),
OPTIONAL
:: alpha_ppl ...
REAL(dp),
INTENT(out),
OPTIONAL
:: ccore_charge ...
REAL(dp),
INTENT(out),
OPTIONAL
:: cerf_ppl ...
REAL(dp),
INTENT(out),
OPTIONAL
:: core_charge_radius ...
REAL(dp),
INTENT(out),
OPTIONAL
:: ppl_radius ...
REAL(dp),
INTENT(out),
OPTIONAL
:: ppnl_radius ...
INTEGER,
INTENT(out),
OPTIONAL
:: lppnl ...
INTEGER,
INTENT(out),
OPTIONAL
:: lprj_ppnl_max ...
INTEGER,
INTENT(out),
OPTIONAL
:: nexp_ppl ...
INTEGER,
INTENT(out),
OPTIONAL
:: nppnl ...
INTEGER,
INTENT(out),
OPTIONAL
:: nprj_ppnl_max ...
INTEGER,
INTENT(out),
OPTIONAL
:: z ...
REAL(dp),
INTENT(out),
OPTIONAL
:: zeff ...
REAL(dp),
INTENT(out),
OPTIONAL
:: zeff_correction ...
LOGICAL,
INTENT(out),
OPTIONAL
:: ppl_present ...
LOGICAL,
INTENT(out),
OPTIONAL
:: ppnl_present ...
REAL(dp),
OPTIONAL, POINTER
:: alpha_ppnl(:) ...
REAL(dp),
OPTIONAL, POINTER
:: cexp_ppl(:) ...
INTEGER,
OPTIONAL, POINTER
:: elec_conf(:) ...
INTEGER,
OPTIONAL, POINTER
:: nprj_ppnl(:) ...
REAL(dp),
OPTIONAL, POINTER
:: cprj(:,:) ...
REAL(dp),
OPTIONAL, POINTER
:: cprj_ppnl(:,:) ...
REAL(dp),
OPTIONAL, POINTER
:: vprj_ppnl(:,:) ...
REAL(dp),
OPTIONAL, POINTER
:: hprj_ppnl(:,:,:) ...
LOGICAL,
INTENT(out),
OPTIONAL
:: lpot_present ...
INTEGER,
INTENT(out),
OPTIONAL
:: nexp_lpot ...
REAL(dp),
OPTIONAL, POINTER
:: alpha_lpot(:) ...
INTEGER,
OPTIONAL, POINTER
:: nct_lpot(:) ...
REAL(dp),
OPTIONAL, POINTER
:: cval_lpot(:,:) ...
LOGICAL,
INTENT(out),
OPTIONAL
:: lsd_present ...
INTEGER,
INTENT(out),
OPTIONAL
:: nexp_lsd ...
REAL(dp),
OPTIONAL, POINTER
:: alpha_lsd(:) ...
INTEGER,
OPTIONAL, POINTER
:: nct_lsd(:) ...
REAL(dp),
OPTIONAL, POINTER
:: cval_lsd(:,:) ...
LOGICAL,
INTENT(out),
OPTIONAL
:: nlcc_present ...
INTEGER,
INTENT(out),
OPTIONAL
:: nexp_nlcc ...
REAL(dp),
OPTIONAL, POINTER
:: alpha_nlcc(:) ...
INTEGER,
OPTIONAL, POINTER
:: nct_nlcc(:) ...
REAL(dp),
OPTIONAL, POINTER
:: cval_nlcc(:,:) ...

SUBROUTINEget_sgp_potential(potential, name, description, aliases, elec_conf, z, zeff, zeff_correction, alpha_core_charge, ccore_charge, core_charge_radius, ppl_radius, ppnl_radius, ppl_present, ppnl_present, ecp_local, n_local, a_local, c_local, nloc, nrloc, aloc, bloc, n_nonlocal, nppnl, lmax, is_nonlocal, a_nonlocal, h_nonlocal, c_nonlocal, cprj_ppnl, vprj_ppnl, has_nlcc, n_nlcc, a_nlcc, c_nlcc)

...

Arguments:
POINTER
:: potential ...
INTENT(out),
OPTIONAL
:: name ...
INTENT(out),
OPTIONAL
:: description(4) ...
INTENT(out),
OPTIONAL
:: aliases ...
INTEGER,
OPTIONAL, POINTER
:: elec_conf(:) ...
INTEGER,
INTENT(out),
OPTIONAL
:: z ...
REAL(dp),
INTENT(out),
OPTIONAL
:: zeff ...
REAL(dp),
INTENT(out),
OPTIONAL
:: zeff_correction ...
REAL(dp),
INTENT(out),
OPTIONAL
:: alpha_core_charge ...
REAL(dp),
INTENT(out),
OPTIONAL
:: ccore_charge ...
REAL(dp),
INTENT(out),
OPTIONAL
:: core_charge_radius ...
REAL(dp),
INTENT(out),
OPTIONAL
:: ppl_radius ...
REAL(dp),
INTENT(out),
OPTIONAL
:: ppnl_radius ...
LOGICAL,
INTENT(out),
OPTIONAL
:: ppl_present ...
LOGICAL,
INTENT(out),
OPTIONAL
:: ppnl_present ...
LOGICAL,
INTENT(out),
OPTIONAL
:: ecp_local ...
INTEGER,
INTENT(out),
OPTIONAL
:: n_local ...
REAL(dp),
OPTIONAL, POINTER
:: a_local(:) ...
REAL(dp),
OPTIONAL, POINTER
:: c_local(:) ...
INTEGER,
INTENT(out),
OPTIONAL
:: nloc ...
INTEGER,
INTENT(out),
OPTIONAL
:: nrloc(1:10) ...
REAL(dp),
INTENT(out),
OPTIONAL
:: aloc(1:10) ...
REAL(dp),
INTENT(out),
OPTIONAL
:: bloc(1:10) ...
INTEGER,
INTENT(out),
OPTIONAL
:: n_nonlocal ...
INTEGER,
INTENT(out),
OPTIONAL
:: nppnl ...
INTEGER,
INTENT(out),
OPTIONAL
:: lmax ...
LOGICAL,
OPTIONAL
:: is_nonlocal(0:5) ...
REAL(dp),
OPTIONAL, POINTER
:: a_nonlocal(:) ...
REAL(dp),
OPTIONAL, POINTER
:: h_nonlocal(:,:) ...
REAL(dp),
OPTIONAL, POINTER
:: c_nonlocal(:,:,:) ...
REAL(dp),
OPTIONAL, POINTER
:: cprj_ppnl(:,:) ...
REAL(dp),
OPTIONAL, POINTER
:: vprj_ppnl(:) ...
LOGICAL,
INTENT(out),
OPTIONAL
:: has_nlcc ...
INTEGER,
INTENT(out),
OPTIONAL
:: n_nlcc ...
REAL(dp),
OPTIONAL, POINTER
:: a_nlcc(:) ...
REAL(dp),
OPTIONAL, POINTER
:: c_nlcc(:) ...

SUBROUTINEinit_all_potential(potential, itype, zeff, zeff_correction)

...

Arguments:
POINTER
:: potential ...
CHARACTER(*),
OPTIONAL
:: itype ...
REAL(dp),
OPTIONAL
:: zeff ...
REAL(dp),
OPTIONAL
:: zeff_correction ...

SUBROUTINEinit_gth_potential(potential)

Initialise a GTH potential data set structure.

Arguments:
POINTER
:: potential ...

SUBROUTINEinit_sgp_potential(potential)

Initialise a SGP potential data set structure.

Arguments:
POINTER
:: potential ...

SUBROUTINEread_all_potential(element_symbol, potential_name, potential, zeff_correction, para_env, potential_file_name, potential_section, update_input)

Read an atomic all-electron potential data set.

Arguments:
CHARACTER(*),
INTENT(in)
:: element_symbol ...
CHARACTER(*),
INTENT(in)
:: potential_name ...
POINTER
:: potential ...
REAL(dp)
:: zeff_correction ...
POINTER
:: para_env ...
INTENT(in)
:: potential_file_name ...
POINTER
:: potential_section ...
LOGICAL,
INTENT(in)
:: update_input ...

SUBROUTINEread_local_potential(element_symbol, potential_name, potential, para_env, potential_file_name, potential_section, update_input)

Read an atomic local potential data set.

Arguments:
CHARACTER(*),
INTENT(in)
:: element_symbol ...
CHARACTER(*),
INTENT(in)
:: potential_name ...
POINTER
:: potential ...
POINTER
:: para_env ...
INTENT(in)
:: potential_file_name ...
POINTER
:: potential_section ...
LOGICAL,
INTENT(in)
:: update_input ...

SUBROUTINEread_gth_potential(element_symbol, potential_name, potential, zeff_correction, para_env, potential_file_name, potential_section, update_input)

Read an atomic GTH potential data set.

Arguments:
CHARACTER(*),
INTENT(in)
:: element_symbol ...
CHARACTER(*),
INTENT(in)
:: potential_name ...
POINTER
:: potential ...
REAL(dp),
INTENT(in)
:: zeff_correction ...
POINTER
:: para_env ...
INTENT(in)
:: potential_file_name ...
POINTER
:: potential_section ...
LOGICAL,
INTENT(in)
:: update_input ...

SUBROUTINEset_all_potential(potential, name, alpha_core_charge, ccore_charge, core_charge_radius, z, zeff, zeff_correction, elec_conf)

Set the attributes of an all-electron potential data set.

Arguments:
POINTER
:: potential ...
INTENT(in),
OPTIONAL
:: name ...
REAL(dp),
INTENT(in),
OPTIONAL
:: alpha_core_charge ...
REAL(dp),
INTENT(in),
OPTIONAL
:: ccore_charge ...
REAL(dp),
INTENT(in),
OPTIONAL
:: core_charge_radius ...
INTEGER,
INTENT(in),
OPTIONAL
:: z ...
REAL(dp),
INTENT(in),
OPTIONAL
:: zeff ...
REAL(dp),
INTENT(in),
OPTIONAL
:: zeff_correction ...
INTEGER,
OPTIONAL, POINTER
:: elec_conf(:) ...

SUBROUTINEset_fist_potential(potential, apol, cpol, qeff, mm_radius, qmmm_corr_radius, qmmm_radius)

Set the attributes of an effective charge and inducible point dipole potential data set.

Arguments:
POINTER
:: potential ...
REAL(dp),
INTENT(in),
OPTIONAL
:: apol ...
REAL(dp),
INTENT(in),
OPTIONAL
:: cpol ...
REAL(dp),
INTENT(in),
OPTIONAL
:: qeff ...
REAL(dp),
INTENT(in),
OPTIONAL
:: mm_radius ...
REAL(dp),
INTENT(in),
OPTIONAL
:: qmmm_corr_radius ...
REAL(dp),
INTENT(in),
OPTIONAL
:: qmmm_radius ...

SUBROUTINEset_local_potential(potential, name, alpha, cval, radius)

Set the attributes of an atomic local potential data set.

Arguments:
POINTER
:: potential ...
INTENT(in),
OPTIONAL
:: name ...
REAL(dp),
OPTIONAL, POINTER
:: alpha(:) ...
REAL(dp),
OPTIONAL, POINTER
:: cval(:,:) ...
REAL(dp),
INTENT(in),
OPTIONAL
:: radius ...

SUBROUTINEset_gth_potential(potential, name, alpha_core_charge, alpha_ppl, ccore_charge, cerf_ppl, core_charge_radius, ppl_radius, ppnl_radius, lppnl, lprj_ppnl_max, nexp_ppl, nppnl, nprj_ppnl_max, z, zeff, zeff_correction, alpha_ppnl, cexp_ppl, elec_conf, nprj_ppnl, cprj, cprj_ppnl, vprj_ppnl, hprj_ppnl)

Set the attributes of a GTH potential data set.

Arguments:
POINTER
:: potential ...
INTENT(in),
OPTIONAL
:: name ...
REAL(dp),
INTENT(in),
OPTIONAL
:: alpha_core_charge ...
REAL(dp),
INTENT(in),
OPTIONAL
:: alpha_ppl ...
REAL(dp),
INTENT(in),
OPTIONAL
:: ccore_charge ...
REAL(dp),
INTENT(in),
OPTIONAL
:: cerf_ppl ...
REAL(dp),
INTENT(in),
OPTIONAL
:: core_charge_radius ...
REAL(dp),
INTENT(in),
OPTIONAL
:: ppl_radius ...
REAL(dp),
INTENT(in),
OPTIONAL
:: ppnl_radius ...
INTEGER,
INTENT(in),
OPTIONAL
:: lppnl ...
INTEGER,
INTENT(in),
OPTIONAL
:: lprj_ppnl_max ...
INTEGER,
INTENT(in),
OPTIONAL
:: nexp_ppl ...
INTEGER,
INTENT(in),
OPTIONAL
:: nppnl ...
INTEGER,
INTENT(in),
OPTIONAL
:: nprj_ppnl_max ...
INTEGER,
INTENT(in),
OPTIONAL
:: z ...
REAL(dp),
INTENT(in),
OPTIONAL
:: zeff ...
REAL(dp),
INTENT(in),
OPTIONAL
:: zeff_correction ...
REAL(dp),
OPTIONAL, POINTER
:: alpha_ppnl(:) ...
REAL(dp),
OPTIONAL, POINTER
:: cexp_ppl(:) ...
INTEGER,
OPTIONAL, POINTER
:: elec_conf(:) ...
INTEGER,
OPTIONAL, POINTER
:: nprj_ppnl(:) ...
REAL(dp),
OPTIONAL, POINTER
:: cprj(:,:) ...
REAL(dp),
OPTIONAL, POINTER
:: cprj_ppnl(:,:) ...
REAL(dp),
OPTIONAL, POINTER
:: vprj_ppnl(:,:) ...
REAL(dp),
OPTIONAL, POINTER
:: hprj_ppnl(:,:,:) ...

SUBROUTINEset_sgp_potential(potential, name, description, aliases, elec_conf, z, zeff, zeff_correction, alpha_core_charge, ccore_charge, core_charge_radius, ppl_radius, ppnl_radius, ecp_local, n_local, a_local, c_local, nloc, nrloc, aloc, bloc, n_nonlocal, nppnl, lmax, is_nonlocal, a_nonlocal, h_nonlocal, c_nonlocal, has_nlcc, n_nlcc, a_nlcc, c_nlcc)

...

Arguments:
POINTER
:: potential ...
INTENT(in),
OPTIONAL
:: name ...
INTENT(in),
OPTIONAL
:: description(4) ...
INTENT(in),
OPTIONAL
:: aliases ...
INTEGER,
OPTIONAL, POINTER
:: elec_conf(:) ...
INTEGER,
INTENT(in),
OPTIONAL
:: z ...
REAL(dp),
INTENT(in),
OPTIONAL
:: zeff ...
REAL(dp),
INTENT(in),
OPTIONAL
:: zeff_correction ...
REAL(dp),
INTENT(in),
OPTIONAL
:: alpha_core_charge ...
REAL(dp),
INTENT(in),
OPTIONAL
:: ccore_charge ...
REAL(dp),
INTENT(in),
OPTIONAL
:: core_charge_radius ...
REAL(dp),
INTENT(in),
OPTIONAL
:: ppl_radius ...
REAL(dp),
INTENT(in),
OPTIONAL
:: ppnl_radius ...
LOGICAL,
INTENT(in),
OPTIONAL
:: ecp_local ...
INTEGER,
INTENT(in),
OPTIONAL
:: n_local ...
REAL(dp),
OPTIONAL, POINTER
:: a_local(:) ...
REAL(dp),
OPTIONAL, POINTER
:: c_local(:) ...
INTEGER,
INTENT(in),
OPTIONAL
:: nloc ...
INTEGER,
INTENT(in),
OPTIONAL
:: nrloc(1:10) ...
REAL(dp),
INTENT(in),
OPTIONAL
:: aloc(1:10) ...
REAL(dp),
INTENT(in),
OPTIONAL
:: bloc(1:10) ...
INTEGER,
INTENT(in),
OPTIONAL
:: n_nonlocal ...
INTEGER,
INTENT(in),
OPTIONAL
:: nppnl ...
INTEGER,
INTENT(in),
OPTIONAL
:: lmax ...
LOGICAL,
INTENT(in),
OPTIONAL
:: is_nonlocal(0:5) ...
REAL(dp),
OPTIONAL, POINTER
:: a_nonlocal(:) ...
REAL(dp),
OPTIONAL, POINTER
:: h_nonlocal(:,:) ...
REAL(dp),
OPTIONAL, POINTER
:: c_nonlocal(:,:,:) ...
LOGICAL,
INTENT(in),
OPTIONAL
:: has_nlcc ...
INTEGER,
INTENT(in),
OPTIONAL
:: n_nlcc ...
REAL(dp),
OPTIONAL, POINTER
:: a_nlcc(:) ...
REAL(dp),
OPTIONAL, POINTER
:: c_nlcc(:) ...

SUBROUTINEwrite_all_potential(potential, output_unit)

...

Arguments:
POINTER
:: potential ...
INTEGER,
INTENT(in)
:: output_unit ...

SUBROUTINEwrite_local_potential(potential, output_unit)

...

Arguments:
POINTER
:: potential ...
INTEGER,
INTENT(in)
:: output_unit ...

SUBROUTINEwrite_gth_potential(potential, output_unit)

...

Arguments:
POINTER
:: potential ...
INTEGER,
INTENT(in)
:: output_unit ...

SUBROUTINEwrite_sgp_potential(potential, output_unit)

...

Arguments:
POINTER
:: potential ...
INTEGER,
INTENT(in)
:: output_unit ...