Documentation for module semi_empirical_int_utils

Utilities for Integrals for semi-empiric methods

source: semi_empirical_int_utils.F
Loading...

public Subroutines/Functions:

FUNCTION
REAL(dp)
d_ijkl_d (sepi, sepj, ij, kl, li, lj, lk, ll, ic, r, se_int_control, se_int_screen, itype)
General driver for computing the derivatives of semi-empirical integrals involving d-orbitals. The choice of the linear quadrupole was REALLY unhappy in the first development of the NDDO codes. That choice makes impossible the merging of the integral code with or without d-orbitals unless a reparametrization of all NDDO codes for s and p orbitals will be performed.. more over the choice of the linear quadrupole does not make calculations rotational invariants (of course the rotational invariant can be forced). The definitions of quadrupoles for d-orbitals is the correct one in order to have the rotational invariant property by construction..
FUNCTION
REAL(dp)
d_ijkl_sp (sepi, sepj, ij, kl, li, lj, lk, ll, ic, r, se_int_control, se_int_screen, itype)
General driver for computing derivatives of semi-empirical integrals with sp basis set. This code uses the old definitions of quadrupoles and therefore cannot be used for integrals involving d-orbitals (which requires a definition of quadrupoles based on the rotational invariant property)
FUNCTION
REAL(dp)
ijkl_d (sepi, sepj, ij, kl, li, lj, lk, ll, ic, r, se_int_control, se_int_screen, itype)
General driver for computing semi-empirical integrals involving d-orbitals. The choice of the linear quadrupole was REALLY unhappy in the first development of the NDDO codes. That choice makes impossible the merging of the integral code with or without d-orbitals unless a reparametrization of all NDDO codes for s and p orbitals will be performed.. more over the choice of the linear quadrupole does not make calculations rotational invariants (of course the rotational invariant can be forced). The definitions of quadrupoles for d-orbitals is the correct one in order to have the rotational invariant property by construction..
FUNCTION
REAL(dp)
ijkl_sp (sepi, sepj, ij, kl, li, lj, lk, ll, ic, r, se_int_control, se_int_screen, itype)
General driver for computing semi-empirical integrals with sp basis set. This code uses the old definitions of quadrupoles and therefore cannot be used for integrals involving d-orbitals (which require a definition of quadrupoles based on the rotational invariant property)
Computes the general rotation matrices for the integrals between I and J (J>=I)
First Step of the rotation of the two-electron two-center integrals in SPD basis
Store the two-electron two-center integrals in diagonal form

FUNCTIONd_ijkl_d(sepi, sepj, ij, kl, li, lj, lk, ll, ic, r, se_int_control, se_int_screen, itype)

General driver for computing the derivatives of semi-empirical integrals involving d-orbitals. The choice of the linear quadrupole was REALLY unhappy in the first development of the NDDO codes. That choice makes impossible the merging of the integral code with or without d-orbitals unless a reparametrization of all NDDO codes for s and p orbitals will be performed.. more over the choice of the linear quadrupole does not make calculations rotational invariants (of course the rotational invariant can be forced). The definitions of quadrupoles for d-orbitals is the correct one in order to have the rotational invariant property by construction..

Return Value ::
REAL(dp)
Arguments:
POINTER
:: sepi ...
POINTER
:: sepj ...
INTEGER,
INTENT(in)
:: ij ...
INTEGER,
INTENT(in)
:: kl ...
INTEGER,
INTENT(in)
:: li ...
INTEGER,
INTENT(in)
:: lj ...
INTEGER,
INTENT(in)
:: lk ...
INTEGER,
INTENT(in)
:: ll ...
INTEGER,
INTENT(in)
:: ic ...
REAL(dp),
INTENT(in)
:: r ...
INTENT(in)
:: se_int_control ...
INTENT(in)
:: se_int_screen ...
INTEGER,
INTENT(in)
:: itype ...

FUNCTIONd_ijkl_sp(sepi, sepj, ij, kl, li, lj, lk, ll, ic, r, se_int_control, se_int_screen, itype)

General driver for computing derivatives of semi-empirical integrals with sp basis set. This code uses the old definitions of quadrupoles and therefore cannot be used for integrals involving d-orbitals (which requires a definition of quadrupoles based on the rotational invariant property)

Return Value ::
REAL(dp)
Arguments:
POINTER
:: sepi ...
POINTER
:: sepj ...
INTEGER,
INTENT(in)
:: ij ...
INTEGER,
INTENT(in)
:: kl ...
INTEGER,
INTENT(in)
:: li ...
INTEGER,
INTENT(in)
:: lj ...
INTEGER,
INTENT(in)
:: lk ...
INTEGER,
INTENT(in)
:: ll ...
INTEGER,
INTENT(in)
:: ic ...
REAL(dp),
INTENT(in)
:: r ...
INTENT(in)
:: se_int_control ...
INTENT(in)
:: se_int_screen ...
INTEGER,
INTENT(in)
:: itype ...

FUNCTIONijkl_d(sepi, sepj, ij, kl, li, lj, lk, ll, ic, r, se_int_control, se_int_screen, itype)

General driver for computing semi-empirical integrals involving d-orbitals. The choice of the linear quadrupole was REALLY unhappy in the first development of the NDDO codes. That choice makes impossible the merging of the integral code with or without d-orbitals unless a reparametrization of all NDDO codes for s and p orbitals will be performed.. more over the choice of the linear quadrupole does not make calculations rotational invariants (of course the rotational invariant can be forced). The definitions of quadrupoles for d-orbitals is the correct one in order to have the rotational invariant property by construction..

Return Value ::
REAL(dp)
Arguments:
POINTER
:: sepi ...
POINTER
:: sepj ...
INTEGER,
INTENT(in)
:: ij ...
INTEGER,
INTENT(in)
:: kl ...
INTEGER,
INTENT(in)
:: li ...
INTEGER,
INTENT(in)
:: lj ...
INTEGER,
INTENT(in)
:: lk ...
INTEGER,
INTENT(in)
:: ll ...
INTEGER,
INTENT(in)
:: ic ...
REAL(dp),
INTENT(in)
:: r ...
INTENT(in)
:: se_int_control ...
INTENT(in)
:: se_int_screen ...
INTEGER,
INTENT(in)
:: itype ...

FUNCTIONijkl_sp(sepi, sepj, ij, kl, li, lj, lk, ll, ic, r, se_int_control, se_int_screen, itype)

General driver for computing semi-empirical integrals with sp basis set. This code uses the old definitions of quadrupoles and therefore cannot be used for integrals involving d-orbitals (which require a definition of quadrupoles based on the rotational invariant property)

Return Value ::
REAL(dp)
Arguments:
POINTER
:: sepi ...
POINTER
:: sepj ...
INTEGER,
INTENT(in)
:: ij ...
INTEGER,
INTENT(in)
:: kl ...
INTEGER,
INTENT(in)
:: li ...
INTEGER,
INTENT(in)
:: lj ...
INTEGER,
INTENT(in)
:: lk ...
INTEGER,
INTENT(in)
:: ll ...
INTEGER,
INTENT(in)
:: ic ...
REAL(dp),
INTENT(in)
:: r ...
INTENT(in)
:: se_int_control ...
INTENT(in)
:: se_int_screen ...
INTEGER,
INTENT(in)
:: itype ...

RECURSIVE SUBROUTINErotmat(sepi, sepj, rjiv, r, ij_matrix, do_derivatives, do_invert, debug_invert)

Computes the general rotation matrices for the integrals between I and J (J>=I)

Arguments:
POINTER
:: sepi ...
POINTER
:: sepj ...
REAL(dp),
INTENT(in)
:: rjiv(3) ...
REAL(dp),
INTENT(in)
:: r ...
POINTER
:: ij_matrix ...
LOGICAL,
INTENT(in)
:: do_derivatives ...
LOGICAL,
INTENT(out),
OPTIONAL
:: do_invert ...
LOGICAL,
INTENT(in),
OPTIONAL
:: debug_invert ...

RECURSIVE SUBROUTINErot_2el_2c_first(sepi, sepj, rijv, se_int_control, se_taper, invert, ii, kk, rep, logv, ij_matrix, v, lgrad, rep_d, v_d, logv_d, drij)

First Step of the rotation of the two-electron two-center integrals in SPD basis

Arguments:
POINTER
:: sepi ...
POINTER
:: sepj ...
REAL(dp),
INTENT(in)
:: rijv(3) ...
INTENT(in)
:: se_int_control ...
POINTER
:: se_taper ...
LOGICAL,
INTENT(in)
:: invert ...
INTEGER,
INTENT(in)
:: ii ...
INTEGER,
INTENT(in)
:: kk ...
REAL(dp),
INTENT(in)
:: rep(491) ...
LOGICAL,
INTENT(out)
:: logv(45,45) ...
POINTER
:: ij_matrix ...
REAL(dp),
INTENT(out)
:: v(45,45) ...
LOGICAL,
INTENT(in)
:: lgrad ...
REAL(dp),
INTENT(in),
OPTIONAL
:: rep_d(491) ...
REAL(dp),
INTENT(out),
OPTIONAL
:: v_d(3,45,45) ...
LOGICAL,
INTENT(out),
OPTIONAL
:: logv_d(45,45) ...
REAL(dp),
INTENT(in),
OPTIONAL
:: drij(3) ...

SUBROUTINEstore_2el_2c_diag(limij, limkl, ww, w, ww_dx, ww_dy, ww_dz, dw)

Store the two-electron two-center integrals in diagonal form

Arguments:
INTEGER,
INTENT(in)
:: limij ...
INTEGER,
INTENT(in)
:: limkl ...
REAL(dp),
INTENT(in),
OPTIONAL
:: ww(limkl,limij) ...
REAL(dp),
INTENT(inout),
OPTIONAL
:: w(:) ...
REAL(dp),
INTENT(in),
OPTIONAL
:: ww_dx(limkl,limij) ...
REAL(dp),
INTENT(in),
OPTIONAL
:: ww_dy(limkl,limij) ...
REAL(dp),
INTENT(in),
OPTIONAL
:: ww_dz(limkl,limij) ...
REAL(dp),
INTENT(inout),
OPTIONAL
:: dw(:,:) ...