Documentation for module ai_moments

Calculation of the moment integrals over Cartesian Gaussian-type functions.

source: ai_moments.F
Loading...

public Subroutines/Functions:

...
...
This returns the derivative of the overlap integrals [a|b], with respect to the position of the primitive on the left, i.e. [da/dR_ai|b] = 2*zeta*[a+1i|b] - Ni(a)[a-1i|b]
This returns the derivative of the moment integrals [a|\mu|b], with respect to the position of the primitive on the left, i.e.
This returns the derivative of the dipole integrals [a|x|b], with respect to the position of the primitive on the left and right, i.e.
...

SUBROUTINEcontract_cossin(cos_block, sin_block, iatom, ncoa, nsgfa, sgfa, sphi_a, ldsa, jatom, ncob, nsgfb, sgfb, sphi_b, ldsb, cosab, sinab, ldab, work, ldwork)

...

Arguments:
REAL(dp),
POINTER
:: cos_block(:,:) ...
REAL(dp),
POINTER
:: sin_block(:,:) ...
INTEGER,
INTENT(in)
:: iatom ...
INTEGER,
INTENT(in)
:: ncoa ...
INTEGER,
INTENT(in)
:: nsgfa ...
INTEGER,
INTENT(in)
:: sgfa ...
REAL(dp),
INTENT(in)
:: sphi_a(:,:) ...
INTEGER,
INTENT(in)
:: ldsa ...
INTEGER,
INTENT(in)
:: jatom ...
INTEGER,
INTENT(in)
:: ncob ...
INTEGER,
INTENT(in)
:: nsgfb ...
INTEGER,
INTENT(in)
:: sgfb ...
REAL(dp),
INTENT(in)
:: sphi_b(:,:) ...
INTEGER,
INTENT(in)
:: ldsb ...
REAL(dp),
INTENT(in)
:: cosab(:,:) ...
REAL(dp),
INTENT(in)
:: sinab(:,:) ...
INTEGER,
INTENT(in)
:: ldab ...
REAL(dp)
:: work(:,:) ...
INTEGER,
INTENT(in)
:: ldwork ...

SUBROUTINEcossin(la_max_set, npgfa, zeta, rpgfa, la_min_set, lb_max, npgfb, zetb, rpgfb, lb_min, rac, rbc, kvec, cosab, sinab, dcosab, dsinab)

...

Arguments:
INTEGER,
INTENT(in)
:: la_max_set ...
INTEGER,
INTENT(in)
:: npgfa ...
REAL(dp),
INTENT(in)
:: zeta(:) ...
REAL(dp),
INTENT(in)
:: rpgfa(:) ...
INTEGER,
INTENT(in)
:: la_min_set ...
INTEGER,
INTENT(in)
:: lb_max ...
INTEGER,
INTENT(in)
:: npgfb ...
REAL(dp),
INTENT(in)
:: zetb(:) ...
REAL(dp),
INTENT(in)
:: rpgfb(:) ...
INTEGER,
INTENT(in)
:: lb_min ...
REAL(dp),
INTENT(in)
:: rac(3) ...
REAL(dp),
INTENT(in)
:: rbc(3) ...
REAL(dp),
INTENT(in)
:: kvec(3) ...
REAL(dp),
INTENT(inout)
:: cosab(:,:) ...
REAL(dp),
INTENT(inout)
:: sinab(:,:) ...
REAL(dp),
INTENT(inout),
OPTIONAL
:: dcosab(:,:,:) ...
REAL(dp),
INTENT(inout),
OPTIONAL
:: dsinab(:,:,:) ...

SUBROUTINEdiffop(la_max, npgfa, zeta, rpgfa, la_min, lb_max, npgfb, zetb, rpgfb, lb_min, rab, difab)

This returns the derivative of the overlap integrals [a|b], with respect to the position of the primitive on the left, i.e. [da/dR_ai|b] = 2*zeta*[a+1i|b] - Ni(a)[a-1i|b]

Arguments:
INTEGER,
INTENT(in)
:: la_max ...
INTEGER,
INTENT(in)
:: npgfa ...
REAL(dp),
INTENT(in)
:: zeta(:) ...
REAL(dp),
INTENT(in)
:: rpgfa(:) ...
INTEGER,
INTENT(in)
:: la_min ...
INTEGER,
INTENT(in)
:: lb_max ...
INTEGER,
INTENT(in)
:: npgfb ...
REAL(dp),
INTENT(in)
:: zetb(:) ...
REAL(dp),
INTENT(in)
:: rpgfb(:) ...
INTEGER,
INTENT(in)
:: lb_min ...
REAL(dp),
INTENT(in)
:: rab(3) ...
REAL(dp),
INTENT(out)
:: difab(:,:,:) ...

SUBROUTINEdiff_momop(la_max, npgfa, zeta, rpgfa, la_min, lb_max, npgfb, zetb, rpgfb, lb_min, order, rac, rbc, difmab, mab_ext)

This returns the derivative of the moment integrals [a|\mu|b], with respect to the position of the primitive on the left, i.e.

Arguments:
INTEGER,
INTENT(in)
:: la_max ...
INTEGER,
INTENT(in)
:: npgfa ...
REAL(dp),
INTENT(in)
:: zeta(:) ...
REAL(dp),
INTENT(in)
:: rpgfa(:) ...
INTEGER,
INTENT(in)
:: la_min ...
INTEGER,
INTENT(in)
:: lb_max ...
INTEGER,
INTENT(in)
:: npgfb ...
REAL(dp),
INTENT(in)
:: zetb(:) ...
REAL(dp),
INTENT(in)
:: rpgfb(:) ...
INTEGER,
INTENT(in)
:: lb_min ...
INTEGER,
INTENT(in)
:: order ...
REAL(dp),
INTENT(in)
:: rac(3) ...
REAL(dp),
INTENT(in)
:: rbc(3) ...
REAL(dp),
INTENT(out)
:: difmab(:,:,:,:) ...
REAL(dp),
OPTIONAL, POINTER
:: mab_ext(:,:,:) ...

SUBROUTINEdipole_force(la_max, npgfa, zeta, rpgfa, la_min, lb_max, npgfb, zetb, rpgfb, lb_min, order, rac, rbc, pab, forcea, forceb)

This returns the derivative of the dipole integrals [a|x|b], with respect to the position of the primitive on the left and right, i.e.

Arguments:
INTEGER,
INTENT(in)
:: la_max ...
INTEGER,
INTENT(in)
:: npgfa ...
REAL(dp),
INTENT(in)
:: zeta(:) ...
REAL(dp),
INTENT(in)
:: rpgfa(:) ...
INTEGER,
INTENT(in)
:: la_min ...
INTEGER,
INTENT(in)
:: lb_max ...
INTEGER,
INTENT(in)
:: npgfb ...
REAL(dp),
INTENT(in)
:: zetb(:) ...
REAL(dp),
INTENT(in)
:: rpgfb(:) ...
INTEGER,
INTENT(in)
:: lb_min ...
INTEGER,
INTENT(in)
:: order ...
REAL(dp),
INTENT(in)
:: rac(3) ...
REAL(dp),
INTENT(in)
:: rbc(3) ...
REAL(dp),
INTENT(in)
:: pab(:,:) ...
REAL(dp),
INTENT(inout)
:: forcea(:,:) ...
REAL(dp),
INTENT(inout)
:: forceb(:,:) ...

SUBROUTINEmoment(la_max, npgfa, zeta, rpgfa, la_min, lb_max, npgfb, zetb, rpgfb, lc_max, rac, rbc, mab)

...

Arguments:
INTEGER,
INTENT(in)
:: la_max ...
INTEGER,
INTENT(in)
:: npgfa ...
REAL(dp),
INTENT(in)
:: zeta(:) ...
REAL(dp),
INTENT(in)
:: rpgfa(:) ...
INTEGER,
INTENT(in)
:: la_min ...
INTEGER,
INTENT(in)
:: lb_max ...
INTEGER,
INTENT(in)
:: npgfb ...
REAL(dp),
INTENT(in)
:: zetb(:) ...
REAL(dp),
INTENT(in)
:: rpgfb(:) ...
INTEGER,
INTENT(in)
:: lc_max ...
REAL(dp),
INTENT(in)
:: rac(3) ...
REAL(dp),
INTENT(in)
:: rbc(3) ...
REAL(dp),
INTENT(inout)
:: mab(:,:,:) ...