48 #include "../base/base_uses.f90"
51 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'ai_coulomb'
84 SUBROUTINE coulomb2(la_max, npgfa, zeta, rpgfa, la_min, lc_max, npgfc, zetc, rpgfc, lc_min, &
85 rac, rac2, vac, v, f, maxder, vac_plus)
86 INTEGER,
INTENT(IN) :: la_max, npgfa
87 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: zeta, rpgfa
88 INTEGER,
INTENT(IN) :: la_min, lc_max, npgfc
89 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: zetc, rpgfc
90 INTEGER,
INTENT(IN) :: lc_min
91 REAL(kind=
dp),
DIMENSION(3),
INTENT(IN) :: rac
92 REAL(kind=
dp),
INTENT(IN) :: rac2
93 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(INOUT) :: vac
94 REAL(kind=
dp),
DIMENSION(:, :, :) :: v
95 REAL(kind=
dp),
DIMENSION(0:) :: f
96 INTEGER,
INTENT(IN),
OPTIONAL :: maxder
97 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL :: vac_plus
99 INTEGER :: ax, ay, az, coc, cocx, cocy, cocz, cx, &
100 cy, cz, i, ipgf, j, jpgf, la, lc, &
101 maxder_local, n, na, nap, nc, nmax
102 REAL(kind=
dp) :: dac, f0, f1, f2, f3, f4, f5, f6, fcx, &
103 fcy, fcz, rho, t, zetp, zetq, zetw
104 REAL(kind=
dp),
DIMENSION(3) :: raw, rcw
109 IF (
PRESENT(maxder))
THEN
110 maxder_local = maxder
114 nmax = la_max + lc_max + 1
133 IF (rpgfa(ipgf) + rpgfc(jpgf) < dac)
THEN
135 DO i = na +
ncoset(la_min - 1) + 1, na +
ncoset(la_max - maxder_local)
145 zetp = 1.0_dp/zeta(ipgf)
146 zetq = 1.0_dp/zetc(jpgf)
147 zetw = 1.0_dp/(zeta(ipgf) + zetc(jpgf))
149 rho = zeta(ipgf)*zetc(jpgf)*zetw
151 f0 = 2.0_dp*sqrt(
pi**5*zetw)*zetp*zetq
157 CALL fgamma(nmax - 1, t, f)
162 v(1, 1, n) = f0*f(n - 1)
172 rcw(:) = -zeta(ipgf)*zetw*rac(:)
177 v(1, 2, n) = rcw(1)*v(1, 1, n + 1)
178 v(1, 3, n) = rcw(2)*v(1, 1, n + 1)
179 v(1, 4, n) = rcw(3)*v(1, 1, n + 1)
192 v(1,
coset(0, 0, lc), n) = &
193 rcw(3)*v(1,
coset(0, 0, lc - 1), n + 1) + &
194 f1*real(lc - 1,
dp)*(v(1,
coset(0, 0, lc - 2), n) + &
195 f2*v(1,
coset(0, 0, lc - 2), n + 1))
200 v(1,
coset(0, 1, cz), n) = rcw(2)*v(1,
coset(0, 0, cz), n + 1)
204 v(1,
coset(0, cy, cz), n) = &
205 rcw(2)*v(1,
coset(0, cy - 1, cz), n + 1) + &
206 f1*real(cy - 1,
dp)*(v(1,
coset(0, cy - 2, cz), n) + &
207 f2*v(1,
coset(0, cy - 2, cz), n + 1))
214 v(1,
coset(1, cy, cz), n) = rcw(1)*v(1,
coset(0, cy, cz), n + 1)
218 f6 = f1*real(cx - 1,
dp)
221 v(1,
coset(cx, cy, cz), n) = &
222 rcw(1)*v(1,
coset(cx - 1, cy, cz), n + 1) + &
223 f6*(v(1,
coset(cx - 2, cy, cz), n) + &
224 f2*v(1,
coset(cx - 2, cy, cz), n + 1))
242 raw(:) = zetc(jpgf)*zetw*rac(:)
247 v(2, 1, n) = raw(1)*v(1, 1, n + 1)
248 v(3, 1, n) = raw(2)*v(1, 1, n + 1)
249 v(4, 1, n) = raw(3)*v(1, 1, n + 1)
262 v(
coset(0, 0, la), 1, n) = &
263 raw(3)*v(
coset(0, 0, la - 1), 1, n + 1) + &
264 f3*real(la - 1,
dp)*(v(
coset(0, 0, la - 2), 1, n) + &
265 f4*v(
coset(0, 0, la - 2), 1, n + 1))
270 v(
coset(0, 1, az), 1, n) = raw(2)*v(
coset(0, 0, az), 1, n + 1)
274 v(
coset(0, ay, az), 1, n) = &
275 raw(2)*v(
coset(0, ay - 1, az), 1, n + 1) + &
276 f3*real(ay - 1,
dp)*(v(
coset(0, ay - 2, az), 1, n) + &
277 f4*v(
coset(0, ay - 2, az), 1, n + 1))
284 v(
coset(1, ay, az), 1, n) = raw(1)*v(
coset(0, ay, az), 1, n + 1)
288 f6 = f3*real(ax - 1,
dp)
291 v(
coset(ax, ay, az), 1, n) = &
292 raw(1)*v(
coset(ax - 1, ay, az), 1, n + 1) + &
293 f6*(v(
coset(ax - 2, ay, az), 1, n) + &
294 f4*v(
coset(ax - 2, ay, az), 1, n + 1))
308 coc =
coset(cx, cy, cz)
309 cocx =
coset(max(0, cx - 1), cy, cz)
310 cocy =
coset(cx, max(0, cy - 1), cz)
311 cocz =
coset(cx, cy, max(0, cz - 1))
313 fcx = f5*real(cx,
dp)
314 fcy = f5*real(cy,
dp)
315 fcz = f5*real(cz,
dp)
320 DO n = 1, nmax - 1 - lc
321 v(2, coc, n) = raw(1)*v(1, coc, n + 1) + fcx*v(1, cocx, n + 1)
322 v(3, coc, n) = raw(2)*v(1, coc, n + 1) + fcy*v(1, cocy, n + 1)
323 v(4, coc, n) = raw(3)*v(1, coc, n + 1) + fcz*v(1, cocz, n + 1)
333 DO n = 1, nmax - la - lc
337 v(
coset(0, 0, la), coc, n) = &
338 raw(3)*v(
coset(0, 0, la - 1), coc, n + 1) + &
339 f3*real(la - 1,
dp)*(v(
coset(0, 0, la - 2), coc, n) + &
340 f4*v(
coset(0, 0, la - 2), coc, n + 1)) + &
341 fcz*v(
coset(0, 0, la - 1), cocz, n + 1)
346 v(
coset(0, 1, az), coc, n) = &
347 raw(2)*v(
coset(0, 0, az), coc, n + 1) + &
348 fcy*v(
coset(0, 0, az), cocy, n + 1)
352 v(
coset(0, ay, az), coc, n) = &
353 raw(2)*v(
coset(0, ay - 1, az), coc, n + 1) + &
354 f3*real(ay - 1,
dp)*(v(
coset(0, ay - 2, az), coc, n) + &
355 f4*v(
coset(0, ay - 2, az), coc, n + 1)) + &
356 fcy*v(
coset(0, ay - 1, az), cocy, n + 1)
363 v(
coset(1, ay, az), coc, n) = &
364 raw(1)*v(
coset(0, ay, az), coc, n + 1) + &
365 fcx*v(
coset(0, ay, az), cocx, n + 1)
369 f6 = f3*real(ax - 1,
dp)
372 v(
coset(ax, ay, az), coc, n) = &
373 raw(1)*v(
coset(ax - 1, ay, az), coc, n + 1) + &
374 f6*(v(
coset(ax - 2, ay, az), coc, n) + &
375 f4*v(
coset(ax - 2, ay, az), coc, n + 1)) + &
376 fcx*v(
coset(ax - 1, ay, az), cocx, n + 1)
392 DO i =
ncoset(la_min - 1) + 1,
ncoset(la_max - maxder_local)
393 vac(na + i, nc + j) = v(i, j, 1)
397 IF (
PRESENT(maxder))
THEN
400 vac_plus(nap + i, nc + j) = v(i, j, 1)
409 na = na +
ncoset(la_max - maxder_local)
410 nap = nap +
ncoset(la_max)
439 SUBROUTINE coulomb2_new(la_max, npgfa, zeta, la_min, lc_max, npgfc, zetc, lc_min, &
440 rac, rac2, vac, v, f, maxder, vac_plus)
441 INTEGER,
INTENT(IN) :: la_max, npgfa
442 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: zeta
443 INTEGER,
INTENT(IN) :: la_min, lc_max, npgfc
444 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: zetc
445 INTEGER,
INTENT(IN) :: lc_min
446 REAL(kind=
dp),
DIMENSION(3),
INTENT(IN) :: rac
447 REAL(kind=
dp),
INTENT(IN) :: rac2
448 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(INOUT) :: vac
449 REAL(kind=
dp),
DIMENSION(:, :, :) :: v
450 REAL(kind=
dp),
DIMENSION(0:) :: f
451 INTEGER,
INTENT(IN),
OPTIONAL :: maxder
452 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL :: vac_plus
454 INTEGER :: ax, ay, az, coc, cocx, cocy, cocz, cx, &
455 cy, cz, i, ipgf, j, jpgf, la, lc, &
456 maxder_local, n, na, nap, nc, ncp, nmax
457 REAL(kind=
dp) :: dac, f0, f1, f2, f3, f4, f5, f6, fcx, &
458 fcy, fcz, rho, t, zetp, zetq, zetw
459 REAL(kind=
dp),
DIMENSION(3) :: raw, rcw
464 IF (
PRESENT(maxder))
THEN
465 maxder_local = maxder
469 nmax = la_max + lc_max + 1
489 zetp = 1.0_dp/zeta(ipgf)
490 zetq = 1.0_dp/zetc(jpgf)
491 zetw = 1.0_dp/(zeta(ipgf) + zetc(jpgf))
493 rho = zeta(ipgf)*zetc(jpgf)*zetw
495 f0 = 2.0_dp*sqrt(
pi**5*zetw)*zetp*zetq
501 CALL fgamma(nmax - 1, t, f)
506 v(1, 1, n) = f0*f(n - 1)
516 rcw(:) = -zeta(ipgf)*zetw*rac(:)
521 v(1, 2, n) = rcw(1)*v(1, 1, n + 1)
522 v(1, 3, n) = rcw(2)*v(1, 1, n + 1)
523 v(1, 4, n) = rcw(3)*v(1, 1, n + 1)
536 v(1,
coset(0, 0, lc), n) = &
537 rcw(3)*v(1,
coset(0, 0, lc - 1), n + 1) + &
538 f1*real(lc - 1,
dp)*(v(1,
coset(0, 0, lc - 2), n) + &
539 f2*v(1,
coset(0, 0, lc - 2), n + 1))
544 v(1,
coset(0, 1, cz), n) = rcw(2)*v(1,
coset(0, 0, cz), n + 1)
548 v(1,
coset(0, cy, cz), n) = &
549 rcw(2)*v(1,
coset(0, cy - 1, cz), n + 1) + &
550 f1*real(cy - 1,
dp)*(v(1,
coset(0, cy - 2, cz), n) + &
551 f2*v(1,
coset(0, cy - 2, cz), n + 1))
558 v(1,
coset(1, cy, cz), n) = rcw(1)*v(1,
coset(0, cy, cz), n + 1)
562 f6 = f1*real(cx - 1,
dp)
565 v(1,
coset(cx, cy, cz), n) = &
566 rcw(1)*v(1,
coset(cx - 1, cy, cz), n + 1) + &
567 f6*(v(1,
coset(cx - 2, cy, cz), n) + &
568 f2*v(1,
coset(cx - 2, cy, cz), n + 1))
586 raw(:) = zetc(jpgf)*zetw*rac(:)
591 v(2, 1, n) = raw(1)*v(1, 1, n + 1)
592 v(3, 1, n) = raw(2)*v(1, 1, n + 1)
593 v(4, 1, n) = raw(3)*v(1, 1, n + 1)
606 v(
coset(0, 0, la), 1, n) = &
607 raw(3)*v(
coset(0, 0, la - 1), 1, n + 1) + &
608 f3*real(la - 1,
dp)*(v(
coset(0, 0, la - 2), 1, n) + &
609 f4*v(
coset(0, 0, la - 2), 1, n + 1))
614 v(
coset(0, 1, az), 1, n) = raw(2)*v(
coset(0, 0, az), 1, n + 1)
618 v(
coset(0, ay, az), 1, n) = &
619 raw(2)*v(
coset(0, ay - 1, az), 1, n + 1) + &
620 f3*real(ay - 1,
dp)*(v(
coset(0, ay - 2, az), 1, n) + &
621 f4*v(
coset(0, ay - 2, az), 1, n + 1))
628 v(
coset(1, ay, az), 1, n) = raw(1)*v(
coset(0, ay, az), 1, n + 1)
632 f6 = f3*real(ax - 1,
dp)
635 v(
coset(ax, ay, az), 1, n) = &
636 raw(1)*v(
coset(ax - 1, ay, az), 1, n + 1) + &
637 f6*(v(
coset(ax - 2, ay, az), 1, n) + &
638 f4*v(
coset(ax - 2, ay, az), 1, n + 1))
652 coc =
coset(cx, cy, cz)
653 cocx =
coset(max(0, cx - 1), cy, cz)
654 cocy =
coset(cx, max(0, cy - 1), cz)
655 cocz =
coset(cx, cy, max(0, cz - 1))
657 fcx = f5*real(cx,
dp)
658 fcy = f5*real(cy,
dp)
659 fcz = f5*real(cz,
dp)
664 DO n = 1, nmax - 1 - lc
665 v(2, coc, n) = raw(1)*v(1, coc, n + 1) + fcx*v(1, cocx, n + 1)
666 v(3, coc, n) = raw(2)*v(1, coc, n + 1) + fcy*v(1, cocy, n + 1)
667 v(4, coc, n) = raw(3)*v(1, coc, n + 1) + fcz*v(1, cocz, n + 1)
677 DO n = 1, nmax - la - lc
681 v(
coset(0, 0, la), coc, n) = &
682 raw(3)*v(
coset(0, 0, la - 1), coc, n + 1) + &
683 f3*real(la - 1,
dp)*(v(
coset(0, 0, la - 2), coc, n) + &
684 f4*v(
coset(0, 0, la - 2), coc, n + 1)) + &
685 fcz*v(
coset(0, 0, la - 1), cocz, n + 1)
690 v(
coset(0, 1, az), coc, n) = &
691 raw(2)*v(
coset(0, 0, az), coc, n + 1) + &
692 fcy*v(
coset(0, 0, az), cocy, n + 1)
696 v(
coset(0, ay, az), coc, n) = &
697 raw(2)*v(
coset(0, ay - 1, az), coc, n + 1) + &
698 f3*real(ay - 1,
dp)*(v(
coset(0, ay - 2, az), coc, n) + &
699 f4*v(
coset(0, ay - 2, az), coc, n + 1)) + &
700 fcy*v(
coset(0, ay - 1, az), cocy, n + 1)
707 v(
coset(1, ay, az), coc, n) = &
708 raw(1)*v(
coset(0, ay, az), coc, n + 1) + &
709 fcx*v(
coset(0, ay, az), cocx, n + 1)
713 f6 = f3*real(ax - 1,
dp)
716 v(
coset(ax, ay, az), coc, n) = &
717 raw(1)*v(
coset(ax - 1, ay, az), coc, n + 1) + &
718 f6*(v(
coset(ax - 2, ay, az), coc, n) + &
719 f4*v(
coset(ax - 2, ay, az), coc, n + 1)) + &
720 fcx*v(
coset(ax - 1, ay, az), cocx, n + 1)
735 DO j =
ncoset(lc_min - 1) + 1,
ncoset(lc_max - maxder_local)
736 DO i =
ncoset(la_min - 1) + 1,
ncoset(la_max - maxder_local)
737 vac(na + i, nc + j) = v(i, j, 1)
741 IF (
PRESENT(maxder))
THEN
744 vac_plus(nap + i, ncp + j) = v(i, j, 1)
749 nc = nc +
ncoset(lc_max - maxder_local)
750 ncp = ncp +
ncoset(lc_max)
754 na = na +
ncoset(la_max - maxder_local)
755 nap = nap +
ncoset(la_max)
795 SUBROUTINE coulomb3(la_max, npgfa, zeta, rpgfa, la_min, lb_max, npgfb, zetb, rpgfb, lb_min, &
796 lc_max, zetc, rpgfc, lc_min, gccc, rab, rab2, rac, rac2, rbc2, vabc, int_abc, &
797 v, f, maxder, vabc_plus)
798 INTEGER,
INTENT(IN) :: la_max, npgfa
799 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: zeta, rpgfa
800 INTEGER,
INTENT(IN) :: la_min, lb_max, npgfb
801 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: zetb, rpgfb
802 INTEGER,
INTENT(IN) :: lb_min, lc_max
803 REAL(kind=
dp),
INTENT(IN) :: zetc, rpgfc
804 INTEGER,
INTENT(IN) :: lc_min
805 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: gccc
806 REAL(kind=
dp),
DIMENSION(3),
INTENT(IN) :: rab
807 REAL(kind=
dp),
INTENT(IN) :: rab2
808 REAL(kind=
dp),
DIMENSION(3),
INTENT(IN) :: rac
809 REAL(kind=
dp),
INTENT(IN) :: rac2, rbc2
810 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(INOUT) :: vabc
811 REAL(kind=
dp),
DIMENSION(:, :, :),
INTENT(OUT) :: int_abc
812 REAL(kind=
dp),
DIMENSION(:, :, :, :) :: v
813 REAL(kind=
dp),
DIMENSION(0:) :: f
814 INTEGER,
INTENT(IN),
OPTIONAL :: maxder
815 REAL(kind=
dp),
DIMENSION(:, :),
OPTIONAL :: vabc_plus
817 INTEGER :: ax, ay, az, bx, by, bz, coc, cocx, cocy, &
818 cocz, cx, cy, cz, i, ipgf, j, jpgf, k, &
819 kk, la, la_start, lb, lc, &
820 maxder_local, n, na, nap, nb, nmax
821 REAL(kind=
dp) :: dab, dac, dbc, f0, f1, f2, f3, f4, f5, &
822 f6, f7, fcx, fcy, fcz, fx, fy, fz, t, &
824 REAL(kind=
dp),
DIMENSION(3) :: rap, rbp, rcp, rcw, rpw
829 IF (
PRESENT(maxder))
THEN
830 maxder_local = maxder
833 nmax = la_max + lb_max + lc_max + 1
852 IF (rpgfa(ipgf) + rpgfc < dac)
THEN
853 na = na +
ncoset(la_max - maxder_local)
854 nap = nap +
ncoset(la_max)
864 (rpgfb(jpgf) + rpgfc < dbc) .OR. &
865 (rpgfa(ipgf) + rpgfb(jpgf) < dab))
THEN
872 zetp = 1.0_dp/(zeta(ipgf) + zetb(jpgf))
874 zetw = 1.0_dp/(zeta(ipgf) + zetb(jpgf) + zetc)
876 f0 = 2.0_dp*sqrt(
pi**5*zetw)*zetp*zetq
881 f0 = f0*exp(-zeta(ipgf)*f1*rab2)
884 rcp(:) = rap(:) - rac(:)
889 t = -f4*(rcp(1)*rcp(1) + rcp(2)*rcp(2) + rcp(3)*rcp(3))/zetp
891 CALL fgamma(nmax - 1, t, f)
896 v(1, 1, 1, n) = f0*f(n - 1)
909 v(2, 1, 1, n) = rap(1)*v(1, 1, 1, n) + rpw(1)*v(1, 1, 1, n + 1)
910 v(3, 1, 1, n) = rap(2)*v(1, 1, 1, n) + rpw(2)*v(1, 1, 1, n + 1)
911 v(4, 1, 1, n) = rap(3)*v(1, 1, 1, n) + rpw(3)*v(1, 1, 1, n + 1)
925 v(
coset(0, 0, la), 1, 1, n) = &
926 rap(3)*v(
coset(0, 0, la - 1), 1, 1, n) + &
927 rpw(3)*v(
coset(0, 0, la - 1), 1, 1, n + 1) + &
928 f2*real(la - 1,
dp)*(v(
coset(0, 0, la - 2), 1, 1, n) + &
929 f4*v(
coset(0, 0, la - 2), 1, 1, n + 1))
934 v(
coset(0, 1, az), 1, 1, n) = &
935 rap(2)*v(
coset(0, 0, az), 1, 1, n) + &
936 rpw(2)*v(
coset(0, 0, az), 1, 1, n + 1)
940 v(
coset(0, ay, az), 1, 1, n) = &
941 rap(2)*v(
coset(0, ay - 1, az), 1, 1, n) + &
942 rpw(2)*v(
coset(0, ay - 1, az), 1, 1, n + 1) + &
943 f2*real(ay - 1,
dp)*(v(
coset(0, ay - 2, az), 1, 1, n) + &
944 f4*v(
coset(0, ay - 2, az), 1, 1, n + 1))
951 v(
coset(1, ay, az), 1, 1, n) = &
952 rap(1)*v(
coset(0, ay, az), 1, 1, n) + &
953 rpw(1)*v(
coset(0, ay, az), 1, 1, n + 1)
957 f3 = f2*real(ax - 1,
dp)
960 v(
coset(ax, ay, az), 1, 1, n) = &
961 rap(1)*v(
coset(ax - 1, ay, az), 1, 1, n) + &
962 rpw(1)*v(
coset(ax - 1, ay, az), 1, 1, n + 1) + &
963 f3*(v(
coset(ax - 2, ay, az), 1, 1, n) + &
964 f4*v(
coset(ax - 2, ay, az), 1, 1, n + 1))
978 rbp(:) = rap(:) - rab(:)
982 la_start = max(0, la_min - 1)
984 DO la = la_start, la_max - 1
985 DO n = 1, nmax - la - 1
989 v(
coset(ax, ay, az), 2, 1, n) = &
990 v(
coset(ax + 1, ay, az), 1, 1, n) - &
991 rab(1)*v(
coset(ax, ay, az), 1, 1, n)
992 v(
coset(ax, ay, az), 3, 1, n) = &
993 v(
coset(ax, ay + 1, az), 1, 1, n) - &
994 rab(2)*v(
coset(ax, ay, az), 1, 1, n)
995 v(
coset(ax, ay, az), 4, 1, n) = &
996 v(
coset(ax, ay, az + 1), 1, 1, n) - &
997 rab(3)*v(
coset(ax, ay, az), 1, 1, n)
1010 DO n = 1, nmax - la_max - 1
1012 fx = f2*real(ax,
dp)
1013 DO ay = 0, la_max - ax
1014 fy = f2*real(ay,
dp)
1015 az = la_max - ax - ay
1016 fz = f2*real(az,
dp)
1019 v(
coset(ax, ay, az), 2, 1, n) = &
1020 rbp(1)*v(
coset(ax, ay, az), 1, 1, n) + &
1021 rpw(1)*v(
coset(ax, ay, az), 1, 1, n + 1)
1023 v(
coset(ax, ay, az), 2, 1, n) = &
1024 rbp(1)*v(
coset(ax, ay, az), 1, 1, n) + &
1025 rpw(1)*v(
coset(ax, ay, az), 1, 1, n + 1) + &
1026 fx*(v(
coset(ax - 1, ay, az), 1, 1, n) + &
1027 f4*v(
coset(ax - 1, ay, az), 1, 1, n + 1))
1031 v(
coset(ax, ay, az), 3, 1, n) = &
1032 rbp(2)*v(
coset(ax, ay, az), 1, 1, n) + &
1033 rpw(2)*v(
coset(ax, ay, az), 1, 1, n + 1)
1035 v(
coset(ax, ay, az), 3, 1, n) = &
1036 rbp(2)*v(
coset(ax, ay, az), 1, 1, n) + &
1037 rpw(2)*v(
coset(ax, ay, az), 1, 1, n + 1) + &
1038 fy*(v(
coset(ax, ay - 1, az), 1, 1, n) + &
1039 f4*v(
coset(ax, ay - 1, az), 1, 1, n + 1))
1043 v(
coset(ax, ay, az), 4, 1, n) = &
1044 rbp(3)*v(
coset(ax, ay, az), 1, 1, n) + &
1045 rpw(3)*v(
coset(ax, ay, az), 1, 1, n + 1)
1047 v(
coset(ax, ay, az), 4, 1, n) = &
1048 rbp(3)*v(
coset(ax, ay, az), 1, 1, n) + &
1049 rpw(3)*v(
coset(ax, ay, az), 1, 1, n + 1) + &
1050 fz*(v(
coset(ax, ay, az - 1), 1, 1, n) + &
1051 f4*v(
coset(ax, ay, az - 1), 1, 1, n + 1))
1067 la_start = max(0, la_min - 1)
1069 DO la = la_start, la_max - 1
1070 DO n = 1, nmax - la - lb
1077 v(
coset(ax, ay, az),
coset(0, 0, lb), 1, n) = &
1078 v(
coset(ax, ay, az + 1),
coset(0, 0, lb - 1), 1, n) - &
1079 rab(3)*v(
coset(ax, ay, az),
coset(0, 0, lb - 1), 1, n)
1085 v(
coset(ax, ay, az),
coset(0, by, bz), 1, n) = &
1086 v(
coset(ax, ay + 1, az),
coset(0, by - 1, bz), 1, n) - &
1087 rab(2)*v(
coset(ax, ay, az),
coset(0, by - 1, bz), 1, n)
1095 v(
coset(ax, ay, az),
coset(bx, by, bz), 1, n) = &
1096 v(
coset(ax + 1, ay, az),
coset(bx - 1, by, bz), 1, n) - &
1097 rab(1)*v(
coset(ax, ay, az),
coset(bx - 1, by, bz), 1, n)
1115 DO n = 1, nmax - la_max - lb
1117 fx = f2*real(ax,
dp)
1118 DO ay = 0, la_max - ax
1119 fy = f2*real(ay,
dp)
1120 az = la_max - ax - ay
1121 fz = f2*real(az,
dp)
1125 f3 = f2*real(lb - 1,
dp)
1128 v(
coset(ax, ay, az),
coset(0, 0, lb), 1, n) = &
1129 rbp(3)*v(
coset(ax, ay, az),
coset(0, 0, lb - 1), 1, n) + &
1130 rpw(3)*v(
coset(ax, ay, az),
coset(0, 0, lb - 1), 1, n + 1) + &
1131 f3*(v(
coset(ax, ay, az),
coset(0, 0, lb - 2), 1, n) + &
1132 f4*v(
coset(ax, ay, az),
coset(0, 0, lb - 2), 1, n + 1))
1134 v(
coset(ax, ay, az),
coset(0, 0, lb), 1, n) = &
1135 rbp(3)*v(
coset(ax, ay, az),
coset(0, 0, lb - 1), 1, n) + &
1136 rpw(3)*v(
coset(ax, ay, az),
coset(0, 0, lb - 1), 1, n + 1) + &
1137 fz*(v(
coset(ax, ay, az - 1),
coset(0, 0, lb - 1), 1, n) + &
1138 f4*v(
coset(ax, ay, az - 1),
coset(0, 0, lb - 1), 1, n + 1)) + &
1139 f3*(v(
coset(ax, ay, az),
coset(0, 0, lb - 2), 1, n) + &
1140 f4*v(
coset(ax, ay, az),
coset(0, 0, lb - 2), 1, n + 1))
1147 v(
coset(ax, ay, az),
coset(0, 1, bz), 1, n) = &
1148 rbp(2)*v(
coset(ax, ay, az),
coset(0, 0, bz), 1, n) + &
1149 rpw(2)*v(
coset(ax, ay, az),
coset(0, 0, bz), 1, n + 1)
1152 f3 = f2*real(by - 1,
dp)
1153 v(
coset(ax, ay, az),
coset(0, by, bz), 1, n) = &
1154 rbp(2)*v(
coset(ax, ay, az),
coset(0, by - 1, bz), 1, n) + &
1155 rpw(2)*v(
coset(ax, ay, az),
coset(0, by - 1, bz), 1, n + 1) + &
1156 f3*(v(
coset(ax, ay, az),
coset(0, by - 2, bz), 1, n) + &
1157 f4*v(
coset(ax, ay, az),
coset(0, by - 2, bz), 1, n + 1))
1161 v(
coset(ax, ay, az),
coset(0, 1, bz), 1, n) = &
1162 rbp(2)*v(
coset(ax, ay, az),
coset(0, 0, bz), 1, n) + &
1163 rpw(2)*v(
coset(ax, ay, az),
coset(0, 0, bz), 1, n + 1) + &
1164 fy*(v(
coset(ax, ay - 1, az),
coset(0, 0, bz), 1, n) + &
1165 f4*v(
coset(ax, ay - 1, az),
coset(0, 0, bz), 1, n + 1))
1168 f3 = f2*real(by - 1,
dp)
1169 v(
coset(ax, ay, az),
coset(0, by, bz), 1, n) = &
1170 rbp(2)*v(
coset(ax, ay, az),
coset(0, by - 1, bz), 1, n) + &
1171 rpw(2)*v(
coset(ax, ay, az),
coset(0, by - 1, bz), 1, n + 1) + &
1172 fy*(v(
coset(ax, ay - 1, az),
coset(0, by - 1, bz), 1, n) + &
1173 f4*v(
coset(ax, ay - 1, az), &
1174 coset(0, by - 1, bz), 1, n + 1)) + &
1175 f3*(v(
coset(ax, ay, az),
coset(0, by - 2, bz), 1, n) + &
1176 f4*v(
coset(ax, ay, az),
coset(0, by - 2, bz), 1, n + 1))
1185 v(
coset(ax, ay, az),
coset(1, by, bz), 1, n) = &
1186 rbp(1)*v(
coset(ax, ay, az),
coset(0, by, bz), 1, n) + &
1187 rpw(1)*v(
coset(ax, ay, az),
coset(0, by, bz), 1, n + 1)
1190 f3 = f2*real(bx - 1,
dp)
1193 v(
coset(ax, ay, az),
coset(bx, by, bz), 1, n) = &
1194 rbp(1)*v(
coset(ax, ay, az),
coset(bx - 1, by, bz), 1, n) + &
1195 rpw(1)*v(
coset(ax, ay, az), &
1196 coset(bx - 1, by, bz), 1, n + 1) + &
1197 f3*(v(
coset(ax, ay, az),
coset(bx - 2, by, bz), 1, n) + &
1198 f4*v(
coset(ax, ay, az),
coset(bx - 2, by, bz), 1, n + 1))
1204 v(
coset(ax, ay, az),
coset(1, by, bz), 1, n) = &
1205 rbp(1)*v(
coset(ax, ay, az),
coset(0, by, bz), 1, n) + &
1206 rpw(1)*v(
coset(ax, ay, az),
coset(0, by, bz), 1, n + 1) + &
1207 fx*(v(
coset(ax - 1, ay, az),
coset(0, by, bz), 1, n) + &
1208 f4*v(
coset(ax - 1, ay, az),
coset(0, by, bz), 1, n + 1))
1211 f3 = f2*real(bx - 1,
dp)
1214 v(
coset(ax, ay, az),
coset(bx, by, bz), 1, n) = &
1215 rbp(1)*v(
coset(ax, ay, az),
coset(bx - 1, by, bz), 1, n) + &
1216 rpw(1)*v(
coset(ax, ay, az), &
1217 coset(bx - 1, by, bz), 1, n + 1) + &
1218 fx*(v(
coset(ax - 1, ay, az), &
1219 coset(bx - 1, by, bz), 1, n) + &
1220 f4*v(
coset(ax - 1, ay, az), &
1221 coset(bx - 1, by, bz), 1, n + 1)) + &
1222 f3*(v(
coset(ax, ay, az),
coset(bx - 2, by, bz), 1, n) + &
1223 f4*v(
coset(ax, ay, az),
coset(bx - 2, by, bz), 1, n + 1))
1238 IF (lb_max > 0)
THEN
1242 rbp(:) = rap(:) - rab(:)
1248 v(1, 2, 1, n) = rbp(1)*v(1, 1, 1, n) + rpw(1)*v(1, 1, 1, n + 1)
1249 v(1, 3, 1, n) = rbp(2)*v(1, 1, 1, n) + rpw(2)*v(1, 1, 1, n + 1)
1250 v(1, 4, 1, n) = rbp(3)*v(1, 1, 1, n) + rpw(3)*v(1, 1, 1, n + 1)
1264 v(1,
coset(0, 0, lb), 1, n) = &
1265 rbp(3)*v(1,
coset(0, 0, lb - 1), 1, n) + &
1266 rpw(3)*v(1,
coset(0, 0, lb - 1), 1, n + 1) + &
1267 f2*real(lb - 1,
dp)*(v(1,
coset(0, 0, lb - 2), 1, n) + &
1268 f4*v(1,
coset(0, 0, lb - 2), 1, n + 1))
1273 v(1,
coset(0, 1, bz), 1, n) = &
1274 rbp(2)*v(1,
coset(0, 0, bz), 1, n) + &
1275 rpw(2)*v(1,
coset(0, 0, bz), 1, n + 1)
1279 v(1,
coset(0, by, bz), 1, n) = &
1280 rbp(2)*v(1,
coset(0, by - 1, bz), 1, n) + &
1281 rpw(2)*v(1,
coset(0, by - 1, bz), 1, n + 1) + &
1282 f2*real(by - 1,
dp)*(v(1,
coset(0, by - 2, bz), 1, n) + &
1283 f4*v(1,
coset(0, by - 2, bz), 1, n + 1))
1290 v(1,
coset(1, by, bz), 1, n) = &
1291 rbp(1)*v(1,
coset(0, by, bz), 1, n) + &
1292 rpw(1)*v(1,
coset(0, by, bz), 1, n + 1)
1296 f3 = f2*real(bx - 1,
dp)
1299 v(1,
coset(bx, by, bz), 1, n) = &
1300 rbp(1)*v(1,
coset(bx - 1, by, bz), 1, n) + &
1301 rpw(1)*v(1,
coset(bx - 1, by, bz), 1, n + 1) + &
1302 f3*(v(1,
coset(bx - 2, by, bz), 1, n) + &
1303 f4*v(1,
coset(bx - 2, by, bz), 1, n + 1))
1317 IF (lc_max > 0)
THEN
1325 rcw(:) = rcp(:) + rpw(:)
1330 v(1, 1, 2, n) = rcw(1)*v(1, 1, 1, n + 1)
1331 v(1, 1, 3, n) = rcw(2)*v(1, 1, 1, n + 1)
1332 v(1, 1, 4, n) = rcw(3)*v(1, 1, 1, n + 1)
1345 v(1, 1,
coset(0, 0, lc), n) = &
1346 rcw(3)*v(1, 1,
coset(0, 0, lc - 1), n + 1) + &
1347 f7*real(lc - 1,
dp)*(v(1, 1,
coset(0, 0, lc - 2), n) + &
1348 f5*v(1, 1,
coset(0, 0, lc - 2), n + 1))
1353 v(1, 1,
coset(0, 1, cz), n) = rcw(2)*v(1, 1,
coset(0, 0, cz), n + 1)
1357 v(1, 1,
coset(0, cy, cz), n) = &
1358 rcw(2)*v(1, 1,
coset(0, cy - 1, cz), n + 1) + &
1359 f7*real(cy - 1,
dp)*(v(1, 1,
coset(0, cy - 2, cz), n) + &
1360 f5*v(1, 1,
coset(0, cy - 2, cz), n + 1))
1367 v(1, 1,
coset(1, cy, cz), n) = rcw(1)*v(1, 1,
coset(0, cy, cz), n + 1)
1373 v(1, 1,
coset(cx, cy, cz), n) = &
1374 rcw(1)*v(1, 1,
coset(cx - 1, cy, cz), n + 1) + &
1375 f7*real(cx - 1,
dp)*(v(1, 1,
coset(cx - 2, cy, cz), n) + &
1376 f5*v(1, 1,
coset(cx - 2, cy, cz), n + 1))
1392 coc =
coset(cx, cy, cz)
1393 cocx =
coset(max(0, cx - 1), cy, cz)
1394 cocy =
coset(cx, max(0, cy - 1), cz)
1395 cocz =
coset(cx, cy, max(0, cz - 1))
1397 fcx = f6*real(cx,
dp)
1398 fcy = f6*real(cy,
dp)
1399 fcz = f6*real(cz,
dp)
1403 IF (la_max > 0)
THEN
1411 DO n = 1, nmax - 1 - lc
1412 v(2, 1, coc, n) = rap(1)*v(1, 1, coc, n) + &
1413 rpw(1)*v(1, 1, coc, n + 1) + &
1414 fcx*v(1, 1, cocx, n + 1)
1415 v(3, 1, coc, n) = rap(2)*v(1, 1, coc, n) + &
1416 rpw(2)*v(1, 1, coc, n + 1) + &
1417 fcy*v(1, 1, cocy, n + 1)
1418 v(4, 1, coc, n) = rap(3)*v(1, 1, coc, n) + &
1419 rpw(3)*v(1, 1, coc, n + 1) + &
1420 fcz*v(1, 1, cocz, n + 1)
1431 DO n = 1, nmax - la - lc
1435 v(
coset(0, 0, la), 1, coc, n) = &
1436 rap(3)*v(
coset(0, 0, la - 1), 1, coc, n) + &
1437 rpw(3)*v(
coset(0, 0, la - 1), 1, coc, n + 1) + &
1438 f2*real(la - 1,
dp)*(v(
coset(0, 0, la - 2), 1, coc, n) + &
1439 f4*v(
coset(0, 0, la - 2), 1, coc, n + 1)) + &
1440 fcz*v(
coset(0, 0, la - 1), 1, cocz, n + 1)
1445 v(
coset(0, 1, az), 1, coc, n) = &
1446 rap(2)*v(
coset(0, 0, az), 1, coc, n) + &
1447 rpw(2)*v(
coset(0, 0, az), 1, coc, n + 1) + &
1448 fcy*v(
coset(0, 0, az), 1, cocy, n + 1)
1451 f3 = f2*real(ay - 1,
dp)
1453 v(
coset(0, ay, az), 1, coc, n) = &
1454 rap(2)*v(
coset(0, ay - 1, az), 1, coc, n) + &
1455 rpw(2)*v(
coset(0, ay - 1, az), 1, coc, n + 1) + &
1456 f3*(v(
coset(0, ay - 2, az), 1, coc, n) + &
1457 f4*v(
coset(0, ay - 2, az), 1, coc, n + 1)) + &
1458 fcy*v(
coset(0, ay - 1, az), 1, cocy, n + 1)
1465 v(
coset(1, ay, az), 1, coc, n) = &
1466 rap(1)*v(
coset(0, ay, az), 1, coc, n) + &
1467 rpw(1)*v(
coset(0, ay, az), 1, coc, n + 1) + &
1468 fcx*v(
coset(0, ay, az), 1, cocx, n + 1)
1472 f3 = f2*real(ax - 1,
dp)
1475 v(
coset(ax, ay, az), 1, coc, n) = &
1476 rap(1)*v(
coset(ax - 1, ay, az), 1, coc, n) + &
1477 rpw(1)*v(
coset(ax - 1, ay, az), 1, coc, n + 1) + &
1478 f3*(v(
coset(ax - 2, ay, az), 1, coc, n) + &
1479 f4*v(
coset(ax - 2, ay, az), 1, coc, n + 1)) + &
1480 fcx*v(
coset(ax - 1, ay, az), 1, cocx, n + 1)
1490 IF (lb_max > 0)
THEN
1496 la_start = max(0, la_min - 1)
1498 DO la = la_start, la_max - 1
1499 DO n = 1, nmax - la - 1 - lc
1503 v(
coset(ax, ay, az), 2, coc, n) = &
1504 v(
coset(ax + 1, ay, az), 1, coc, n) - &
1505 rab(1)*v(
coset(ax, ay, az), 1, coc, n)
1506 v(
coset(ax, ay, az), 3, coc, n) = &
1507 v(
coset(ax, ay + 1, az), 1, coc, n) - &
1508 rab(2)*v(
coset(ax, ay, az), 1, coc, n)
1509 v(
coset(ax, ay, az), 4, coc, n) = &
1510 v(
coset(ax, ay, az + 1), 1, coc, n) - &
1511 rab(3)*v(
coset(ax, ay, az), 1, coc, n)
1525 DO n = 1, nmax - la_max - 1 - lc
1527 fx = f2*real(ax,
dp)
1528 DO ay = 0, la_max - ax
1529 fy = f2*real(ay,
dp)
1530 az = la_max - ax - ay
1531 fz = f2*real(az,
dp)
1534 v(
coset(ax, ay, az), 2, coc, n) = &
1535 rbp(1)*v(
coset(ax, ay, az), 1, coc, n) + &
1536 rpw(1)*v(
coset(ax, ay, az), 1, coc, n + 1) + &
1537 fcx*v(
coset(ax, ay, az), 1, cocx, n + 1)
1539 v(
coset(ax, ay, az), 2, coc, n) = &
1540 rbp(1)*v(
coset(ax, ay, az), 1, coc, n) + &
1541 rpw(1)*v(
coset(ax, ay, az), 1, coc, n + 1) + &
1542 fx*(v(
coset(ax - 1, ay, az), 1, coc, n) + &
1543 f4*v(
coset(ax - 1, ay, az), 1, coc, n + 1)) + &
1544 fcx*v(
coset(ax, ay, az), 1, cocx, n + 1)
1548 v(
coset(ax, ay, az), 3, coc, n) = &
1549 rbp(2)*v(
coset(ax, ay, az), 1, coc, n) + &
1550 rpw(2)*v(
coset(ax, ay, az), 1, coc, n + 1) + &
1551 fcy*v(
coset(ax, ay, az), 1, cocy, n + 1)
1553 v(
coset(ax, ay, az), 3, coc, n) = &
1554 rbp(2)*v(
coset(ax, ay, az), 1, coc, n) + &
1555 rpw(2)*v(
coset(ax, ay, az), 1, coc, n + 1) + &
1556 fy*(v(
coset(ax, ay - 1, az), 1, coc, n) + &
1557 f4*v(
coset(ax, ay - 1, az), 1, coc, n + 1)) + &
1558 fcy*v(
coset(ax, ay, az), 1, cocy, n + 1)
1562 v(
coset(ax, ay, az), 4, coc, n) = &
1563 rbp(3)*v(
coset(ax, ay, az), 1, coc, n) + &
1564 rpw(3)*v(
coset(ax, ay, az), 1, coc, n + 1) + &
1565 fcz*v(
coset(ax, ay, az), 1, cocz, n + 1)
1567 v(
coset(ax, ay, az), 4, coc, n) = &
1568 rbp(3)*v(
coset(ax, ay, az), 1, coc, n) + &
1569 rpw(3)*v(
coset(ax, ay, az), 1, coc, n + 1) + &
1570 fz*(v(
coset(ax, ay, az - 1), 1, coc, n) + &
1571 f4*v(
coset(ax, ay, az - 1), 1, coc, n + 1)) + &
1572 fcz*v(
coset(ax, ay, az), 1, cocz, n + 1)
1588 la_start = max(0, la_min - 1)
1590 DO la = la_start, la_max - 1
1591 DO n = 1, nmax - la - lb - lc
1598 v(
coset(ax, ay, az),
coset(0, 0, lb), coc, n) = &
1599 v(
coset(ax, ay, az + 1), &
1600 coset(0, 0, lb - 1), coc, n) - &
1601 rab(3)*v(
coset(ax, ay, az), &
1602 coset(0, 0, lb - 1), coc, n)
1608 v(
coset(ax, ay, az),
coset(0, by, bz), coc, n) = &
1609 v(
coset(ax, ay + 1, az), &
1610 coset(0, by - 1, bz), coc, n) - &
1611 rab(2)*v(
coset(ax, ay, az), &
1612 coset(0, by - 1, bz), coc, n)
1620 v(
coset(ax, ay, az),
coset(bx, by, bz), coc, n) = &
1621 v(
coset(ax + 1, ay, az), &
1622 coset(bx - 1, by, bz), coc, n) - &
1623 rab(1)*v(
coset(ax, ay, az), &
1624 coset(bx - 1, by, bz), coc, n)
1643 DO n = 1, nmax - la_max - lb - lc
1645 fx = f2*real(ax,
dp)
1646 DO ay = 0, la_max - ax
1647 fy = f2*real(ay,
dp)
1648 az = la_max - ax - ay
1649 fz = f2*real(az,
dp)
1653 f3 = f2*real(lb - 1,
dp)
1656 v(
coset(ax, ay, az),
coset(0, 0, lb), coc, n) = &
1657 rbp(3)*v(
coset(ax, ay, az), &
1658 coset(0, 0, lb - 1), coc, n) + &
1659 rpw(3)*v(
coset(ax, ay, az), &
1660 coset(0, 0, lb - 1), coc, n + 1) + &
1661 f3*(v(
coset(ax, ay, az), &
1662 coset(0, 0, lb - 2), coc, n) + &
1663 f4*v(
coset(ax, ay, az), &
1664 coset(0, 0, lb - 2), coc, n + 1)) + &
1665 fcz*v(
coset(ax, ay, az), &
1666 coset(0, 0, lb - 1), cocz, n + 1)
1668 v(
coset(ax, ay, az),
coset(0, 0, lb), coc, n) = &
1669 rbp(3)*v(
coset(ax, ay, az), &
1670 coset(0, 0, lb - 1), coc, n) + &
1671 rpw(3)*v(
coset(ax, ay, az), &
1672 coset(0, 0, lb - 1), coc, n + 1) + &
1673 fz*(v(
coset(ax, ay, az - 1), &
1674 coset(0, 0, lb - 1), coc, n) + &
1675 f4*v(
coset(ax, ay, az - 1), &
1676 coset(0, 0, lb - 1), coc, n + 1)) + &
1677 f3*(v(
coset(ax, ay, az), &
1678 coset(0, 0, lb - 2), coc, n) + &
1679 f4*v(
coset(ax, ay, az), &
1680 coset(0, 0, lb - 2), coc, n + 1)) + &
1681 fcz*v(
coset(ax, ay, az), &
1682 coset(0, 0, lb - 1), cocz, n + 1)
1689 v(
coset(ax, ay, az),
coset(0, 1, bz), coc, n) = &
1690 rbp(2)*v(
coset(ax, ay, az), &
1691 coset(0, 0, bz), coc, n) + &
1692 rpw(2)*v(
coset(ax, ay, az), &
1693 coset(0, 0, bz), coc, n + 1) + &
1694 fcy*v(
coset(ax, ay, az), &
1695 coset(0, 0, bz), cocy, n + 1)
1698 f3 = f2*real(by - 1,
dp)
1699 v(
coset(ax, ay, az),
coset(0, by, bz), coc, n) = &
1700 rbp(2)*v(
coset(ax, ay, az), &
1701 coset(0, by - 1, bz), coc, n) + &
1702 rpw(2)*v(
coset(ax, ay, az), &
1703 coset(0, by - 1, bz), coc, n + 1) + &
1704 f3*(v(
coset(ax, ay, az), &
1705 coset(0, by - 2, bz), coc, n) + &
1706 f4*v(
coset(ax, ay, az), &
1707 coset(0, by - 2, bz), coc, n + 1)) + &
1708 fcy*v(
coset(ax, ay, az), &
1709 coset(0, by - 1, bz), cocy, n + 1)
1713 v(
coset(ax, ay, az),
coset(0, 1, bz), coc, n) = &
1714 rbp(2)*v(
coset(ax, ay, az), &
1715 coset(0, 0, bz), coc, n) + &
1716 rpw(2)*v(
coset(ax, ay, az), &
1717 coset(0, 0, bz), coc, n + 1) + &
1718 fy*(v(
coset(ax, ay - 1, az), &
1719 coset(0, 0, bz), coc, n) + &
1720 f4*v(
coset(ax, ay - 1, az), &
1721 coset(0, 0, bz), coc, n + 1)) + &
1722 fcy*v(
coset(ax, ay, az), &
1723 coset(0, 0, bz), cocy, n + 1)
1726 f3 = f2*real(by - 1,
dp)
1727 v(
coset(ax, ay, az),
coset(0, by, bz), coc, n) = &
1728 rbp(2)*v(
coset(ax, ay, az), &
1729 coset(0, by - 1, bz), coc, n) + &
1730 rpw(2)*v(
coset(ax, ay, az), &
1731 coset(0, by - 1, bz), coc, n + 1) + &
1732 fy*(v(
coset(ax, ay - 1, az), &
1733 coset(0, by - 1, bz), coc, n) + &
1734 f4*v(
coset(ax, ay - 1, az), &
1735 coset(0, by - 1, bz), coc, n + 1)) + &
1736 f3*(v(
coset(ax, ay, az), &
1737 coset(0, by - 2, bz), coc, n) + &
1738 f4*v(
coset(ax, ay, az), &
1739 coset(0, by - 2, bz), coc, n + 1)) + &
1740 fcy*v(
coset(ax, ay, az), &
1741 coset(0, by - 1, bz), cocy, n + 1)
1750 v(
coset(ax, ay, az),
coset(1, by, bz), coc, n) = &
1751 rbp(1)*v(
coset(ax, ay, az), &
1752 coset(0, by, bz), coc, n) + &
1753 rpw(1)*v(
coset(ax, ay, az), &
1754 coset(0, by, bz), coc, n + 1) + &
1755 fcx*v(
coset(ax, ay, az), &
1756 coset(0, by, bz), cocx, n + 1)
1759 f3 = f2*real(bx - 1,
dp)
1762 v(
coset(ax, ay, az),
coset(bx, by, bz), coc, n) = &
1763 rbp(1)*v(
coset(ax, ay, az), &
1764 coset(bx - 1, by, bz), coc, n) + &
1765 rpw(1)*v(
coset(ax, ay, az), &
1766 coset(bx - 1, by, bz), coc, n + 1) + &
1767 f3*(v(
coset(ax, ay, az), &
1768 coset(bx - 2, by, bz), coc, n) + &
1769 f4*v(
coset(ax, ay, az), &
1770 coset(bx - 2, by, bz), coc, n + 1)) + &
1771 fcx*v(
coset(ax, ay, az), &
1772 coset(bx - 1, by, bz), cocx, n + 1)
1778 v(
coset(ax, ay, az),
coset(1, by, bz), coc, n) = &
1779 rbp(1)*v(
coset(ax, ay, az), &
1780 coset(0, by, bz), coc, n) + &
1781 rpw(1)*v(
coset(ax, ay, az), &
1782 coset(0, by, bz), coc, n + 1) + &
1783 fx*(v(
coset(ax - 1, ay, az), &
1784 coset(0, by, bz), coc, n) + &
1785 f4*v(
coset(ax - 1, ay, az), &
1786 coset(0, by, bz), coc, n + 1)) + &
1787 fcx*v(
coset(ax, ay, az), &
1788 coset(0, by, bz), cocx, n + 1)
1791 f3 = f2*real(bx - 1,
dp)
1794 v(
coset(ax, ay, az),
coset(bx, by, bz), coc, n) = &
1795 rbp(1)*v(
coset(ax, ay, az), &
1796 coset(bx - 1, by, bz), coc, n) + &
1797 rpw(1)*v(
coset(ax, ay, az), &
1798 coset(bx - 1, by, bz), coc, n + 1) + &
1799 fx*(v(
coset(ax - 1, ay, az), &
1800 coset(bx - 1, by, bz), coc, n) + &
1801 f4*v(
coset(ax - 1, ay, az), &
1802 coset(bx - 1, by, bz), coc, n + 1)) + &
1803 f3*(v(
coset(ax, ay, az), &
1804 coset(bx - 2, by, bz), coc, n) + &
1805 f4*v(
coset(ax, ay, az), &
1806 coset(bx - 2, by, bz), coc, n + 1)) + &
1807 fcx*v(
coset(ax, ay, az), &
1808 coset(bx - 1, by, bz), cocx, n + 1)
1822 IF (lb_max > 0)
THEN
1830 DO n = 1, nmax - 1 - lc
1831 v(1, 2, coc, n) = rbp(1)*v(1, 1, coc, n) + &
1832 rpw(1)*v(1, 1, coc, n + 1) + &
1833 fcx*v(1, 1, cocx, n + 1)
1834 v(1, 3, coc, n) = rbp(2)*v(1, 1, coc, n) + &
1835 rpw(2)*v(1, 1, coc, n + 1) + &
1836 fcy*v(1, 1, cocy, n + 1)
1837 v(1, 4, coc, n) = rbp(3)*v(1, 1, coc, n) + &
1838 rpw(3)*v(1, 1, coc, n + 1) + &
1839 fcz*v(1, 1, cocz, n + 1)
1850 DO n = 1, nmax - lb - lc
1854 v(1,
coset(0, 0, lb), coc, n) = &
1855 rbp(3)*v(1,
coset(0, 0, lb - 1), coc, n) + &
1856 rpw(3)*v(1,
coset(0, 0, lb - 1), coc, n + 1) + &
1857 f2*real(lb - 1,
dp)*(v(1,
coset(0, 0, lb - 2), coc, n) + &
1858 f4*v(1,
coset(0, 0, lb - 2), coc, n + 1)) + &
1859 fcz*v(1,
coset(0, 0, lb - 1), cocz, n + 1)
1864 v(1,
coset(0, 1, bz), coc, n) = &
1865 rbp(2)*v(1,
coset(0, 0, bz), coc, n) + &
1866 rpw(2)*v(1,
coset(0, 0, bz), coc, n + 1) + &
1867 fcy*v(1,
coset(0, 0, bz), cocy, n + 1)
1870 f3 = f2*real(by - 1,
dp)
1872 v(1,
coset(0, by, bz), coc, n) = &
1873 rbp(2)*v(1,
coset(0, by - 1, bz), coc, n) + &
1874 rpw(2)*v(1,
coset(0, by - 1, bz), coc, n + 1) + &
1875 f3*(v(1,
coset(0, by - 2, bz), coc, n) + &
1876 f4*v(1,
coset(0, by - 2, bz), coc, n + 1)) + &
1877 fcy*v(1,
coset(0, by - 1, bz), cocy, n + 1)
1884 v(1,
coset(1, by, bz), coc, n) = &
1885 rbp(1)*v(1,
coset(0, by, bz), coc, n) + &
1886 rpw(1)*v(1,
coset(0, by, bz), coc, n + 1) + &
1887 fcx*v(1,
coset(0, by, bz), cocx, n + 1)
1891 f3 = f2*real(bx - 1,
dp)
1894 v(1,
coset(bx, by, bz), coc, n) = &
1895 rbp(1)*v(1,
coset(bx - 1, by, bz), coc, n) + &
1896 rpw(1)*v(1,
coset(bx - 1, by, bz), coc, n + 1) + &
1897 f3*(v(1,
coset(bx - 2, by, bz), coc, n) + &
1898 f4*v(1,
coset(bx - 2, by, bz), coc, n + 1)) + &
1899 fcx*v(1,
coset(bx - 1, by, bz), cocx, n + 1)
1922 kk = k -
ncoset(lc_min - 1)
1924 DO i =
ncoset(la_min - 1) + 1,
ncoset(la_max - maxder_local)
1925 vabc(na + i, nb + j) = vabc(na + i, nb + j) + gccc(kk)*v(i, j, k, 1)
1926 int_abc(na + i, nb + j, kk) = v(i, j, k, 1)
1931 IF (
PRESENT(maxder))
THEN
1933 kk = k -
ncoset(lc_min - 1)
1936 vabc_plus(nap + i, nb + j) = vabc_plus(nap + i, nb + j) + gccc(kk)*v(i, j, k, 1)
1946 na = na +
ncoset(la_max - maxder_local)
1947 nap = nap +
ncoset(la_max)
Calculation of Coulomb integrals over Cartesian Gaussian-type functions (electron repulsion integrals...
subroutine, public coulomb2(la_max, npgfa, zeta, rpgfa, la_min, lc_max, npgfc, zetc, rpgfc, lc_min, rac, rac2, vac, v, f, maxder, vac_plus)
Calculation of the primitive two-center Coulomb integrals over Cartesian Gaussian-type functions.
subroutine, public coulomb3(la_max, npgfa, zeta, rpgfa, la_min, lb_max, npgfb, zetb, rpgfb, lb_min, lc_max, zetc, rpgfc, lc_min, gccc, rab, rab2, rac, rac2, rbc2, vabc, int_abc, v, f, maxder, vabc_plus)
Calculation of the primitive three-center Coulomb integrals over Cartesian Gaussian-type functions (e...
subroutine, public coulomb2_new(la_max, npgfa, zeta, la_min, lc_max, npgfc, zetc, lc_min, rac, rac2, vac, v, f, maxder, vac_plus)
Calculation of the primitive two-center Coulomb integrals over Cartesian Gaussian-type functions....
Calculation of the incomplete Gamma function F_n(t) for multi-center integrals over Cartesian Gaussia...
subroutine, public fgamma_0(nmax, t, f)
Calculation of the incomplete Gamma function F(t) for multicenter integrals over Gaussian functions....
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