35 #include "../base/base_uses.f90"
41 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'ai_fermi_contact'
71 lb_max, lb_min, npgfb, rpgfb, zetb, &
72 rac, rbc, dab, fcab, ldfc)
73 INTEGER,
INTENT(IN) :: la_max, la_min, npgfa
74 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: rpgfa, zeta
75 INTEGER,
INTENT(IN) :: lb_max, lb_min, npgfb
76 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: rpgfb, zetb
77 REAL(kind=
dp),
DIMENSION(3),
INTENT(IN) :: rac, rbc
79 INTEGER,
INTENT(IN) :: ldfc
80 REAL(kind=
dp),
DIMENSION(ldfc, *),
INTENT(INOUT) :: fcab
82 INTEGER :: ax, ay, az, bx, by, bz, coa, cob, i, &
83 ipgf, j, jpgf, la, lb, ma, mb, na, nb
84 REAL(kind=
dp) :: dac2, dbc2, f0, fax, fay, faz, fbx, fby, &
89 dac2 = rac(1)**2 + rac(2)**2 + rac(3)**2
90 dbc2 = rbc(1)**2 + rbc(2)**2 + rbc(3)**2
104 IF (rpgfa(ipgf) + rpgfb(jpgf) < dab)
THEN
105 DO j = nb + 1, nb +
ncoset(lb_max)
106 DO i = na + 1, na +
ncoset(la_max)
116 f0 = 4.0_dp/3.0_dp*
pi*exp(-zeta(ipgf)*dac2 - zetb(jpgf)*dbc2)
120 DO lb = lb_min, lb_max
123 IF (bx .GT. 0) fbx = (rbc(1))**bx
126 cob =
coset(bx, by, bz)
129 IF (by .GT. 0) fby = (rbc(2))**by
131 IF (bz .GT. 0) fbz = (rbc(3))**bz
132 DO la = la_min, la_max
135 IF (ax .GT. 0) fax = fbx*(rac(1))**ax
138 coa =
coset(ax, ay, az)
141 IF (ay .GT. 0) fay = fby*(rac(2))**ay
143 IF (az .GT. 0) faz = fbz*(rac(3))**az
145 fcab(ma, mb) = f0*fax*fay*faz
Defines the basic variable types.
integer, parameter, public dp
Definition of mathematical constants and functions.
real(kind=dp), parameter, public pi
Provides Cartesian and spherical orbital pointers and indices.
integer, dimension(:), allocatable, public ncoset
integer, dimension(:, :, :), allocatable, public coset