20 #include "./base/base_uses.f90"
24 LOGICAL,
PARAMETER,
PRIVATE :: debug_this_module = .false.
25 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'semi_empirical_int3_utils'
38 FUNCTION eval_func(r, l1, l2, add)
RESULT(res)
40 REAL(KIND=
dp),
INTENT(IN) :: r
41 INTEGER,
INTENT(IN) :: l1, l2
42 REAL(KIND=
dp),
INTENT(IN) :: add
45 END FUNCTION eval_func
70 FUNCTION ijkl_low_3(sepi, sepj, ij, kl, li, lj, lk, ll, ic, r, itype, eval)
RESULT(res)
71 TYPE(semi_empirical_type),
POINTER :: sepi, sepj
72 INTEGER,
INTENT(IN) :: ij, kl, li, lj, lk, ll, ic
73 REAL(kind=
dp),
INTENT(IN) :: r
74 INTEGER,
INTENT(IN) :: itype
76 PROCEDURE(eval_func) :: eval
79 INTEGER :: l1, l2, lij, lkl
80 REAL(kind=
dp) :: add, ccc, chrg, pij, pkl, sum
84 lij =
indexb(li + 1, lj + 1)
86 lkl =
indexb(lk + 1, ll + 1)
95 ELSE IF (lij == 3)
THEN
97 ELSE IF (lij == 6)
THEN
108 ELSE IF (lkl == 3)
THEN
110 ELSE IF (lkl == 6)
THEN
114 IF (l1 == 0 .AND. l2 == 0)
THEN
121 IF (abs(ccc) > epsilon(0.0_dp))
THEN
122 chrg = eval(r, l1, l2, add)
146 REAL(kind=
dp),
INTENT(in) :: r
147 INTEGER,
INTENT(in) :: l1, l2
148 REAL(kind=
dp),
INTENT(in) :: add
149 REAL(kind=
dp) :: charg
155 IF (l1 == 0 .AND. l2 == 0)
THEN
156 charg = -add/(2.0_dp*r**3)
179 REAL(kind=
dp),
INTENT(in) :: r
180 INTEGER,
INTENT(in) :: l1, l2
181 REAL(kind=
dp),
INTENT(in) :: add
182 REAL(kind=
dp) :: coeff
190 IF (l1 == 0 .AND. l2 == 0)
THEN
215 REAL(kind=
dp),
INTENT(in) :: r
216 INTEGER,
INTENT(in) :: l1, l2
217 REAL(kind=
dp),
INTENT(in) :: add
218 REAL(kind=
dp) :: charg
224 IF (l1 == 0 .AND. l2 == 0)
THEN
225 charg = 3.0_dp*add/(2.0_dp*r**4)
Defines the basic variable types.
integer, parameter, public dp
Utilities for evaluating the residual part (1/r^3) of Integrals for semi-empiric methods.
real(kind=dp) function, public charg_int_3(r, l1, l2, add)
Evaluates the residual Interaction function between two point-charges The term evaluated is the 1/r^3...
real(kind=dp) function, public coeff_int_3(r, l1, l2, add)
Evaluates the coefficient for the residual Interaction function between two point-charges l1 - Quantu...
real(kind=dp) function, public ijkl_low_3(sepi, sepj, ij, kl, li, lj, lk, ll, ic, r, itype, eval)
Low level general driver for computing residual part of semi-empirical integrals <ij|kl> and their de...
real(kind=dp) function, public dcharg_int_3(r, l1, l2, add)
Derivatives of residual interaction function between two point-charges.
Arrays of parameters used in the semi-empirical calculations \References Everywhere in this module TC...
integer, dimension(9, 9), public indexb
real(kind=dp), dimension(45, 0:2, -2:2), public clm_d
Definition of the semi empirical parameter types.