Documentation for module generic_os_integrals

Calculation of contracted, spherical Gaussian integrals using the (OS) integral scheme. Routines for the following two-center integrals: i) (a|O(r12)|b) where O(r12) is the overlap, coulomb operator etc. ii) (aba) and (abb) s-overlaps

source: generic_os_integrals.F
Loading...

public Subroutines/Functions:

Calcululates the two-center integrals of the type (a|O(r12)|b) using the OS scheme
calculate overlap integrals (aa,bb)
calculate integrals (a,b,fa)
calculate integrals (a,b,fb)
calculate overlap integrals (a,b)
calculate integrals (a|(r-Ra)^(2m)|b)

SUBROUTINEint_operators_r12_ab_os(r12_operator, vab, dvab, rab, fba, fbb, omega, calculate_forces)

Calcululates the two-center integrals of the type (a|O(r12)|b) using the OS scheme

Arguments:
INTEGER,
INTENT(in)
:: r12_operator the integral operator, which depends on r12=|r1-r2|
REAL(dp),
INTENT(inout)
:: vab(:,:) integral matrix of spherical contracted Gaussian functions
REAL(dp),
INTENT(inout),
OPTIONAL
:: dvab(:,:,:) derivative of the integrals
REAL(dp),
INTENT(in)
:: rab(3) distance vector between center A and B
POINTER
:: fba basis at center A
POINTER
:: fbb basis at center B
REAL(dp),
INTENT(in),
OPTIONAL
:: omega parameter in the operator
LOGICAL,
INTENT(in)
:: calculate_forces ...

SUBROUTINEint_overlap_aabb_os(saabb, oba, obb, rab, debug, dmax)

calculate overlap integrals (aa,bb)

Arguments:
REAL(dp),
POINTER
:: saabb(:,:,:,:) integral (aa,bb)
POINTER
:: oba orbital basis at center A
POINTER
:: obb orbital basis at center B
REAL(dp),
INTENT(in)
:: rab(3) ...
LOGICAL,
INTENT(in)
:: debug integrals are debugged by recursive routines if requested
REAL(dp),
INTENT(inout)
:: dmax maximal deviation between integrals when debugging

SUBROUTINEint_overlap_aba_os(abaint, dabdaint, rab, oba, obb, fba, calculate_forces, debug, dmax)

calculate integrals (a,b,fa)

Arguments:
REAL(dp),
POINTER
:: abaint(:,:,:) integral (a,b,fa)
REAL(dp),
OPTIONAL, POINTER
:: dabdaint(:,:,:,:) derivative of abaint with respect to A
REAL(dp),
INTENT(in)
:: rab(3) distance vector between center A and B
POINTER
:: oba orbital basis at center A
POINTER
:: obb orbital basis at center B
POINTER
:: fba auxiliary basis set at center A
LOGICAL,
INTENT(in)
:: calculate_forces ...
LOGICAL,
INTENT(in)
:: debug integrals are debugged by recursive routines if requested
REAL(dp),
INTENT(inout)
:: dmax maximal deviation between integrals when debugging

SUBROUTINEint_overlap_abb_os(abbint, dabbint, rab, oba, obb, fbb, calculate_forces, debug, dmax)

calculate integrals (a,b,fb)

Arguments:
REAL(dp),
POINTER
:: abbint(:,:,:) integral (a,b,fb)
REAL(dp),
OPTIONAL, POINTER
:: dabbint(:,:,:,:) derivative of abbint with respect to A
REAL(dp),
INTENT(in)
:: rab(3) distance vector between center A and B
POINTER
:: oba orbital basis at center A
POINTER
:: obb orbital basis at center B
POINTER
:: fbb auxiliary basis set at center B
LOGICAL,
INTENT(in)
:: calculate_forces ...
LOGICAL,
INTENT(in)
:: debug integrals are debugged by recursive routines if requested
REAL(dp),
INTENT(inout)
:: dmax maximal deviation between integrals when debugging

SUBROUTINEint_overlap_ab_os(sab, dsab, rab, fba, fbb, calculate_forces, debug, dmax)

calculate overlap integrals (a,b)

Arguments:
REAL(dp),
INTENT(inout)
:: sab(:,:) integral (a,b)
REAL(dp),
INTENT(inout),
OPTIONAL
:: dsab(:,:,:) derivative of sab with respect to A
REAL(dp),
INTENT(in)
:: rab(3) distance vector between center A and B
POINTER
:: fba basis at center A
POINTER
:: fbb basis at center B
LOGICAL,
INTENT(in)
:: calculate_forces ...
LOGICAL,
INTENT(in)
:: debug integrals are debugged by recursive routines if requested
REAL(dp),
INTENT(inout)
:: dmax maximal deviation between integrals when debugging

SUBROUTINEint_ra2m_ab_os(sab, dsab, rab, fba, fbb, m, calculate_forces)

calculate integrals (a|(r-Ra)^(2m)|b)

Arguments:
REAL(dp),
INTENT(inout)
:: sab(:,:) integral (a|(r-Ra)^(2m)|b)
REAL(dp),
INTENT(inout),
OPTIONAL
:: dsab(:,:,:) derivative of sab with respect to A
REAL(dp),
INTENT(in)
:: rab(3) distance vector between center A and B
POINTER
:: fba fba basis at center A
POINTER
:: fbb fbb basis at center B
INTEGER,
INTENT(in)
:: m exponent m in operator (r-Ra)^(2m)
LOGICAL,
INTENT(in)
:: calculate_forces ...