38 SUBROUTINE os_rr_ovlp(rap, la_max, rbp, lb_max, zet, ldrr, rr)
39 REAL(
dp),
DIMENSION(3),
INTENT(IN) :: rap
40 INTEGER,
INTENT(IN) :: la_max
41 REAL(
dp),
DIMENSION(3),
INTENT(IN) :: rbp
42 INTEGER,
INTENT(IN) :: lb_max
43 REAL(
dp),
INTENT(IN) :: zet
44 INTEGER,
INTENT(IN) :: ldrr
45 REAL(
dp),
DIMENSION(0:ldrr-1, 0:ldrr-1, 3) :: rr
47 INTEGER :: la, lam1, lap1, lb, lbm1, lbp1
57 IF (la_max .GT. 0)
THEN
65 rr(lap1, 0, 1) = real(la,
dp)*g*rr(lam1, 0, 1) + rap(1)*rr(la, 0, 1)
66 rr(lap1, 0, 2) = real(la,
dp)*g*rr(lam1, 0, 2) + rap(2)*rr(la, 0, 2)
67 rr(lap1, 0, 3) = real(la,
dp)*g*rr(lam1, 0, 3) + rap(3)*rr(la, 0, 3)
73 IF (lb_max .GT. 0)
THEN
80 rr(la, 1, 1) = real(la,
dp)*g*rr(lam1, 0, 1) + rbp(1)*rr(la, 0, 1)
81 rr(la, 1, 2) = real(la,
dp)*g*rr(lam1, 0, 2) + rbp(2)*rr(la, 0, 2)
82 rr(la, 1, 3) = real(la,
dp)*g*rr(lam1, 0, 3) + rbp(3)*rr(la, 0, 3)
88 rr(0, lbp1, 1) = real(lb,
dp)*g*rr(0, lbm1, 1) + rbp(1)*rr(0, lb, 1)
89 rr(0, lbp1, 2) = real(lb,
dp)*g*rr(0, lbm1, 2) + rbp(2)*rr(0, lb, 2)
90 rr(0, lbp1, 3) = real(lb,
dp)*g*rr(0, lbm1, 3) + rbp(3)*rr(0, lb, 3)
93 rr(la, lbp1, 1) = g*(real(la,
dp)*rr(lam1, lb, 1) + real(lb,
dp)*rr(la, lbm1, 1)) + rbp(1)*rr(la, lb, 1)
94 rr(la, lbp1, 2) = g*(real(la,
dp)*rr(lam1, lb, 2) + real(lb,
dp)*rr(la, lbm1, 2)) + rbp(2)*rr(la, lb, 2)
95 rr(la, lbp1, 3) = g*(real(la,
dp)*rr(lam1, lb, 3) + real(lb,
dp)*rr(la, lbm1, 3)) + rbp(3)*rr(la, lb, 3)
117 SUBROUTINE os_rr_coul(rap, la_max, rbp, lb_max, rcp, zet, ldrr1, ldrr2, rr)
118 REAL(
dp),
DIMENSION(3),
INTENT(IN) :: rap
119 INTEGER,
INTENT(IN) :: la_max
120 REAL(
dp),
DIMENSION(3),
INTENT(IN) :: rbp
121 INTEGER,
INTENT(IN) :: lb_max
122 REAL(
dp),
DIMENSION(3),
INTENT(IN) :: rcp
123 REAL(
dp),
INTENT(IN) :: zet
124 INTEGER,
INTENT(IN) :: ldrr1, ldrr2
125 REAL(
dp),
DIMENSION(0:ldrr1-1, ldrr2, *), &
128 INTEGER :: ax, ay, az, bx, by, bz, coa, coa1x, &
129 coa1y, coa1z, coa2x, coa2y, coa2z, &
130 cob, cob1x, cob1y, cob1z, cob2x, &
131 cob2y, cob2z, la, lb, m, mmax
132 REAL(
dp) :: g, rcp2, t
134 mmax = la_max + lb_max
139 rcp2 = rcp(1)**2 + rcp(2)**2 + rcp(3)**2
141 CALL fgamma(mmax, t, rr(0:mmax, 1, 1))
149 coa =
coset(ax, ay, az)
150 coa1x =
coset(max(ax - 1, 0), ay, az)
151 coa1y =
coset(ax, max(ay - 1, 0), az)
152 coa1z =
coset(ax, ay, max(az - 1, 0))
153 coa2x =
coset(max(ax - 2, 0), ay, az)
154 coa2y =
coset(ax, max(ay - 2, 0), az)
155 coa2z =
coset(ax, ay, max(az - 2, 0))
158 rr(m, coa, 1) = rap(3)*rr(m, coa1z, 1) - rcp(3)*rr(m + 1, coa1z, 1)
162 rr(m, coa, 1) = rr(m, coa, 1) + g*real(az - 1,
dp)*(rr(m, coa2z, 1) - rr(m + 1, coa2z, 1))
165 ELSEIF (ay .GT. 0)
THEN
167 rr(m, coa, 1) = rap(2)*rr(m, coa1y, 1) - rcp(2)*rr(m + 1, coa1y, 1)
171 rr(m, coa, 1) = rr(m, coa, 1) + g*real(ay - 1,
dp)*(rr(m, coa2y, 1) - rr(m + 1, coa2y, 1))
174 ELSEIF (ax .GT. 0)
THEN
176 rr(m, coa, 1) = rap(1)*rr(m, coa1x, 1) - rcp(1)*rr(m + 1, coa1x, 1)
180 rr(m, coa, 1) = rr(m, coa, 1) + g*real(ax - 1,
dp)*(rr(m, coa2x, 1) - rr(m + 1, coa2x, 1))
196 coa =
coset(ax, ay, az)
197 coa1x =
coset(max(ax - 1, 0), ay, az)
198 coa1y =
coset(ax, max(ay - 1, 0), az)
199 coa1z =
coset(ax, ay, max(az - 1, 0))
200 coa2x =
coset(max(ax - 2, 0), ay, az)
201 coa2y =
coset(ax, max(ay - 2, 0), az)
202 coa2z =
coset(ax, ay, max(az - 2, 0))
207 cob =
coset(bx, by, bz)
208 cob1x =
coset(max(bx - 1, 0), by, bz)
209 cob1y =
coset(bx, max(by - 1, 0), bz)
210 cob1z =
coset(bx, by, max(bz - 1, 0))
211 cob2x =
coset(max(bx - 2, 0), by, bz)
212 cob2y =
coset(bx, max(by - 2, 0), bz)
213 cob2z =
coset(bx, by, max(bz - 2, 0))
215 DO m = 0, mmax - la - lb
216 rr(m, coa, cob) = rbp(3)*rr(m, coa, cob1z) - rcp(3)*rr(m + 1, coa, cob1z)
219 DO m = 0, mmax - la - lb
220 rr(m, coa, cob) = rr(m, coa, cob) + g*real(bz - 1,
dp)*(rr(m, coa, cob2z) - rr(m + 1, coa, cob2z))
224 DO m = 0, mmax - la - lb
225 rr(m, coa, cob) = rr(m, coa, cob) + g*real(az,
dp)*(rr(m, coa1z, cob1z) - rr(m + 1, coa1z, cob1z))
228 ELSEIF (by .GT. 0)
THEN
229 DO m = 0, mmax - la - lb
230 rr(m, coa, cob) = rbp(2)*rr(m, coa, cob1y) - rcp(2)*rr(m + 1, coa, cob1y)
233 DO m = 0, mmax - la - lb
234 rr(m, coa, cob) = rr(m, coa, cob) + g*real(by - 1,
dp)*(rr(m, coa, cob2y) - rr(m + 1, coa, cob2y))
238 DO m = 0, mmax - la - lb
239 rr(m, coa, cob) = rr(m, coa, cob) + g*real(ay,
dp)*(rr(m, coa1y, cob1y) - rr(m + 1, coa1y, cob1y))
242 ELSEIF (bx .GT. 0)
THEN
243 DO m = 0, mmax - la - lb
244 rr(m, coa, cob) = rbp(1)*rr(m, coa, cob1x) - rcp(1)*rr(m + 1, coa, cob1x)
247 DO m = 0, mmax - la - lb
248 rr(m, coa, cob) = rr(m, coa, cob) + g*real(bx - 1,
dp)*(rr(m, coa, cob2x) - rr(m + 1, coa, cob2x))
252 DO m = 0, mmax - la - lb
253 rr(m, coa, cob) = rr(m, coa, cob) + g*real(ax,
dp)*(rr(m, coa1x, cob1x) - rr(m + 1, coa1x, cob1x))