37#include "../base/base_uses.f90"
43 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'ai_onecenter'
66 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: smat
67 INTEGER,
INTENT(IN) :: l
68 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
70 INTEGER :: ip, iq, m, n
71 REAL(kind=
dp) :: el, spi
76 cpassert(.NOT. (n >
SIZE(smat, 1) .OR. m >
SIZE(smat, 2)))
79 el = real(l,
dp) + 1.5_dp
83 smat(ip, iq) = spi/(pa(ip) + pb(iq))**el
103 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: kmat
104 INTEGER,
INTENT(IN) :: l
105 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
107 INTEGER :: ip, iq, m, n
113 cpassert(.NOT. (n >
SIZE(kmat, 1) .OR. m >
SIZE(kmat, 2)))
118 kmat(ip, iq) = spi*pa(ip)*pb(iq)/(pa(ip) + pb(iq))**(l + 2.5_dp)
138 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: umat
139 INTEGER,
INTENT(IN) :: l
140 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
142 INTEGER :: ip, iq, m, n
148 cpassert(.NOT. (n >
SIZE(umat, 1) .OR. m >
SIZE(umat, 2)))
153 umat(ip, iq) = tld/(pa(ip) + pb(iq))**(l + 1)
173 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: umat
174 INTEGER,
INTENT(IN) :: l
175 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
177 INTEGER :: ip, iq, m, n
178 REAL(kind=
dp) :: ppq, pq, tld
183 cpassert(.NOT. (n >
SIZE(umat, 1) .OR. m >
SIZE(umat, 2)))
189 ppq = pa(ip) + pb(iq)
191 umat(ip, iq) = tld/ppq**l*(4.0_dp/ppq**2*pq*real(l + 1,
dp) + 1.0_dp)
197 ppq = pa(ip) + pb(iq)
199 umat(ip, iq) = 2.0_dp*pq/ppq**2
232 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: upmat
233 INTEGER,
INTENT(IN) :: l
234 REAL(kind=
dp),
INTENT(IN) :: a
235 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
237 INTEGER :: handle, ip, iq, m, n
238 REAL(kind=
dp) :: a2, fpol, pq, tld, z, z2
240 CALL timeset(
"sg_erf", handle)
245 cpassert(.NOT. (n >
SIZE(upmat, 1) .OR. m >
SIZE(upmat, 2)))
248 tld = a/2._dp**(l + 1)
253 upmat(ip, iq) = tld/(1._dp + z)**(l + 0.5_dp)/pq**(l + 1.5_dp)
267 fpol = 2.0_dp*z + 3.0_dp
268 upmat(ip, iq) = upmat(ip, iq)*fpol
274 fpol = 8.0_dp*z*z + 20.0_dp*z + 15.0_dp
275 upmat(ip, iq) = upmat(ip, iq)*fpol
281 fpol = 16.0_dp*z*z*z + 56.0_dp*z*z + 70.0_dp*z + 35.0_dp
283 upmat(ip, iq) = upmat(ip, iq)*fpol
289 fpol = 128.0_dp*z*z*z*z + 576.0_dp*z*z*z + 1008.0_dp*z*z + 840.0_dp*z + 315.0_dp
291 upmat(ip, iq) = upmat(ip, iq)*fpol
297 fpol = 256.0_dp*z*z*z*z*z + 1408.0_dp*z*z*z*z + 3168.0_dp*z*z*z + 3696.0_dp*z*z + 2310.0_dp*z + 693.0_dp
299 upmat(ip, iq) = upmat(ip, iq)*fpol
306 fpol = 1024.0_dp*z2*z2*z2 + 6656.0_dp*z*z2*z2 + 18304.0_dp*z2*z2 + 27456.0_dp*z2*z + &
307 24024.0_dp*z2 + 12012.0_dp*z + 3003.0_dp
309 upmat(ip, iq) = upmat(ip, iq)*fpol
314 CALL timestop(handle)
338 REAL(kind=
dp),
DIMENSION(:),
INTENT(OUT) :: spmat
339 INTEGER,
INTENT(IN) :: l
340 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: p
341 INTEGER,
INTENT(IN) :: k
342 REAL(kind=
dp),
INTENT(IN) :: rc
344 REAL(kind=
dp) :: orc, pf
346 cpassert(
SIZE(spmat) >=
SIZE(p))
348 pf = 2._dp**(l + k + 1)*
gamma1(l + k + 1)/rc**(l + 2*k + 1.5_dp)/sqrt(
gamma1(l + 2*k + 1))
350 spmat(:) = pf/(2._dp*p(:) + orc)**(l + k + 1.5_dp)
374 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: vpmat
375 INTEGER,
INTENT(IN) :: k
376 REAL(kind=
dp),
INTENT(IN) :: rc
377 INTEGER,
INTENT(IN) :: l
378 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
380 INTEGER :: ip, iq, m, n
386 cpassert(.NOT. (n >
SIZE(vpmat, 1) .OR. m >
SIZE(vpmat, 2)))
388 tld =
gamma1(l + k + 1)*rc**(2*l + 3)*2._dp**(l + k + 0.5)
392 vpmat(ip, iq) = tld/(1._dp + 2._dp*rc*rc*(pa(ip) + pb(iq)))**(l + k + 1.5_dp)
415 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: gmat
416 REAL(kind=
dp),
INTENT(IN) :: rc
417 INTEGER,
INTENT(IN) :: k, l
418 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
420 INTEGER :: ip, iq, m, n
426 cpassert(.NOT. (n >
SIZE(gmat, 1) .OR. m >
SIZE(gmat, 2)))
428 tld = 0.5_dp/rc**(2*k)*
gamma1(l + k + 1)
431 gmat(ip, iq) = tld/(pa(ip) + pb(iq))**(l + k + 1.5_dp)
453 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: eri
454 INTEGER,
INTENT(IN) :: nu
455 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa
456 INTEGER,
INTENT(IN) :: lab
457 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pc
458 INTEGER,
INTENT(IN) :: lcd
460 INTEGER :: handle, ia, ib, ic, id, jab, jcd, na, nc
461 REAL(kind=
dp) :: cc1, cc2, ee, p, q, r, s, vab1, vab3, &
464 CALL timeset(
"sg_coulomb", handle)
468 ee = sqrt(2.0_dp*
pi)/2.0_dp**(2*(lab + lcd) + 6)
476 vab1 = vgau(2*lab - nu + 1, xab)
477 vab3 = vgau(2*lab + nu + 2, xab)
485 vcd1 = vgau(2*lcd + nu + 2, xcd)
486 vcd3 = vgau(2*lcd - nu + 1, xcd)
487 cc1 = cgau(2*lab - nu + 1, 2*lcd + nu + 2, xab/xcd)
488 cc2 = cgau(2*lcd - nu + 1, 2*lab + nu + 2, xcd/xab)
490 eri(jab, jcd) = ee*(cc1*vab1*vcd1 + cc2*vab3*vcd3)
497 CALL timestop(handle)
517 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: eri
518 INTEGER,
INTENT(IN) :: nu
519 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa
520 INTEGER,
INTENT(IN) :: lac
521 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pb
522 INTEGER,
INTENT(IN) :: lbd
524 INTEGER :: handle, ia, ib, ic, id, jac, jbd, na, nb
525 REAL(kind=
dp) :: cc1, cc2, cc3, cc4, ee, p, q, r, s, &
526 v1pr, v1ps, v1qr, v1qs, v2pr, v2ps, &
527 v2qr, v2qs, xab, xad, xbc, xcd
529 CALL timeset(
"sg_exchange", handle)
534 ee = sqrt(2.0_dp*
pi)/2.0_dp**(2*(lac + lbd) + 7)
551 v1pr = vgau(lac + lbd - nu + 1, xab)
552 v1qs = vgau(lac + lbd - nu + 1, xcd)
553 v1ps = vgau(lac + lbd - nu + 1, xad)
554 v1qr = vgau(lac + lbd - nu + 1, xbc)
555 v2qs = vgau(lac + lbd + nu + 2, xcd)
556 v2pr = vgau(lac + lbd + nu + 2, xab)
557 v2qr = vgau(lac + lbd + nu + 2, xbc)
558 v2ps = vgau(lac + lbd + nu + 2, xad)
559 cc1 = cgau(lac + lbd - nu + 1, lac + lbd + nu + 2, xab/xcd)
560 cc2 = cgau(lac + lbd - nu + 1, lac + lbd + nu + 2, xcd/xab)
561 cc3 = cgau(lac + lbd - nu + 1, lac + lbd + nu + 2, xad/xbc)
562 cc4 = cgau(lac + lbd - nu + 1, lac + lbd + nu + 2, xbc/xad)
564 eri(jac, jbd) = ee*(v1pr*v2qs*cc1 + v1qs*v2pr*cc2 + &
565 v1ps*v2qr*cc3 + v1qr*v2ps*cc4)
572 CALL timestop(handle)
591 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: umat
592 INTEGER,
INTENT(IN) :: l
593 REAL(kind=
dp),
INTENT(IN) :: a
594 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
596 INTEGER :: ip, iq, m, n
602 cpassert(.NOT. (n >
SIZE(umat, 1) .OR. m >
SIZE(umat, 2)))
604 CALL sg_erf(umat, l, a, pa, pb)
609 umat(ip, iq) = tld/(pa(ip) + pb(iq))**(l + 1) - umat(ip, iq)
623 ELEMENTAL FUNCTION vgau(n, x)
RESULT(v)
624 INTEGER,
INTENT(IN) :: n
625 REAL(kind=
dp),
INTENT(IN) :: x
628 v =
dfac(n - 1)/x**(0.5_dp*(n + 1))
639 ELEMENTAL FUNCTION cgau(a, b, t)
RESULT(c)
640 INTEGER,
INTENT(IN) :: a, b
641 REAL(kind=
dp),
INTENT(IN) :: t
648 c = c + (t/(1.0_dp + t))**l*
dfac(2*l + b - 1)/
dfac(2*l)
650 c = c*(1.0_dp + t)**(-0.5_dp*(b + 1))/
dfac(b - 1)
669 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: smat
670 INTEGER,
DIMENSION(:),
INTENT(IN) :: na
671 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa
672 INTEGER,
DIMENSION(:),
INTENT(IN) :: nb
673 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pb
675 INTEGER :: ip, iq, m, n
676 REAL(kind=
dp) :: vp, vpq, vq
681 cpassert(.NOT. (n >
SIZE(smat, 1) .OR. m >
SIZE(smat, 2)))
684 vq = vsto(2*nb(iq), pb(iq))
686 vp = vsto(2*na(ip), pa(ip))
687 vpq = vsto(na(ip) + nb(iq), 0.5_dp*(pa(ip) + pb(iq)))
688 smat(ip, iq) = vpq/sqrt(vp*vq)
712 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: kmat
713 INTEGER,
INTENT(IN) :: l
714 INTEGER,
DIMENSION(:),
INTENT(IN) :: na
715 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa
716 INTEGER,
DIMENSION(:),
INTENT(IN) :: nb
717 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pb
719 INTEGER :: ip, iq, m, n
720 REAL(kind=
dp) :: vp, vpq, vpq1, vpq2, vq, wp, wq
725 cpassert(.NOT. (n >
SIZE(kmat, 1) .OR. m >
SIZE(kmat, 2)))
728 vq = vsto(2*nb(iq), pb(iq))
729 wq = wsto(l, nb(iq), pb(iq))
731 vp = vsto(2*na(ip), pa(ip))
732 vpq = vsto(na(ip) + nb(iq), 0.5_dp*(pa(ip) + pb(iq)))
733 vpq1 = vsto(na(ip) + nb(iq) - 1, 0.5_dp*(pa(ip) + pb(iq)))
734 vpq2 = vsto(na(ip) + nb(iq) - 2, 0.5_dp*(pa(ip) + pb(iq)))
735 wp = wsto(l, na(ip), pa(ip))
736 kmat(ip, iq) = 0.5_dp*pa(ip)*pb(iq)/sqrt(vp*vq)* &
737 (vpq - (wp + wq)*vpq1 + wp*wq*vpq2)
758 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: umat
759 INTEGER,
DIMENSION(:),
INTENT(IN) :: na
760 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa
761 INTEGER,
DIMENSION(:),
INTENT(IN) :: nb
762 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pb
764 INTEGER :: ip, iq, m, n
765 REAL(kind=
dp) :: vp, vpq1, vq
770 cpassert(.NOT. (n >
SIZE(umat, 1) .OR. m >
SIZE(umat, 2)))
773 vq = vsto(2*nb(iq), pb(iq))
775 vp = vsto(2*na(ip), pa(ip))
776 vpq1 = vsto(na(ip) + nb(iq) - 1, 0.5_dp*(pa(ip) + pb(iq)))
777 umat(ip, iq) = 2._dp/sqrt(vp*vq)*vpq1
799 SUBROUTINE sto_conf(gmat, rc, k, na, pa, nb, pb)
801 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: gmat
802 REAL(kind=
dp),
INTENT(IN) :: rc
803 INTEGER,
INTENT(IN) :: k
804 INTEGER,
DIMENSION(:),
INTENT(IN) :: na
805 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa
806 INTEGER,
DIMENSION(:),
INTENT(IN) :: nb
807 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pb
809 INTEGER :: ip, iq, m, n
814 cpassert(.NOT. (n >
SIZE(gmat, 1) .OR. m >
SIZE(gmat, 2)))
818 gmat(ip, iq) = (2._dp*pa(ip))**(na(ip) + 0.5_dp)/sqrt(
fac(2*na(ip))) &
819 *(2._dp*pb(iq))**(nb(iq) + 0.5_dp)/sqrt(
fac(2*nb(iq))) &
820 /rc**(2*k)/(pa(ip) + pb(iq))**(na(ip) + nb(iq) + 2*k + 1) &
821 *
gamma0(na(ip) + nb(iq) + 2*k + 1)
825 END SUBROUTINE sto_conf
835 ELEMENTAL FUNCTION vsto(n, x)
RESULT(v)
836 INTEGER,
INTENT(IN) :: n
837 REAL(kind=
dp),
INTENT(IN) :: x
840 v =
fac(n)/x**(n + 1)
851 ELEMENTAL FUNCTION wsto(n, m, x)
RESULT(w)
852 INTEGER,
INTENT(IN) :: n, m
853 REAL(kind=
dp),
INTENT(IN) :: x
856 w = 2._dp*real(m - n - 1,
dp)/x
871 SUBROUTINE num_overlap(smat, ra, rb, wr)
873 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: smat
874 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, rb
875 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: wr
877 INTEGER :: ip, iq, m, n
882 cpassert(.NOT. (n >
SIZE(smat, 1) .OR. m >
SIZE(smat, 2)))
886 smat(ip, iq) = sum(ra(:, ip)*rb(:, iq)*wr(:))
890 END SUBROUTINE num_overlap
908 SUBROUTINE num_kinetic(kmat, l, ra, dra, rb, drb, r, wr)
910 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: kmat
911 INTEGER,
INTENT(IN) :: l
912 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, dra, rb, drb
913 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
915 INTEGER :: ip, iq, m, n
920 cpassert(.NOT. (n >
SIZE(kmat, 1) .OR. m >
SIZE(kmat, 2)))
924 kmat(ip, iq) = 0.5_dp*sum(wr(:)*dra(:, ip)*drb(:, iq) &
925 + wr(:)*real(l*(l + 1),
dp)*ra(:, ip)*rb(:, iq)/r(:)**2)
929 END SUBROUTINE num_kinetic
944 SUBROUTINE num_nuclear(umat, ra, rb, r, wr)
946 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: umat
947 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, rb
948 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
950 INTEGER :: ip, iq, m, n
955 cpassert(.NOT. (n >
SIZE(umat, 1) .OR. m >
SIZE(umat, 2)))
959 umat(ip, iq) = sum(wr(:)*ra(:, ip)*rb(:, iq)/r(:))
963 END SUBROUTINE num_nuclear
981 SUBROUTINE num_kinnuc(umat, l, ra, dra, rb, drb, r, wr)
983 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: umat
984 INTEGER,
INTENT(IN) :: l
985 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, dra, rb, drb
986 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
988 INTEGER :: ip, iq, m, n
993 cpassert(.NOT. (n >
SIZE(umat, 1) .OR. m >
SIZE(umat, 2)))
997 umat(ip, iq) = sum(wr(:)*dra(:, ip)*drb(:, iq)/r(:) &
998 + wr(:)*real(l*(l + 1),
dp)*ra(:, ip)*rb(:, iq)/r(:)**3)
1002 END SUBROUTINE num_kinnuc
1018 SUBROUTINE num_erf(upmat, a, ra, rb, r, wr)
1020 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: upmat
1021 REAL(kind=
dp),
INTENT(IN) :: a
1022 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, rb
1023 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
1025 INTEGER :: ip, iq, k, m, n
1030 cpassert(.NOT. (n >
SIZE(upmat, 1) .OR. m >
SIZE(upmat, 2)))
1034 upmat(ip, iq) = 0._dp
1036 upmat(ip, iq) = upmat(ip, iq) + &
1037 (wr(k)*ra(k, ip)*rb(k, iq)*erf(a*r(k))/r(k))
1042 END SUBROUTINE num_erf
1063 SUBROUTINE num_proj_ol(spmat, l, ra, k, rc, r, wr)
1065 REAL(kind=
dp),
DIMENSION(:),
INTENT(OUT) :: spmat
1066 INTEGER,
INTENT(IN) :: l
1067 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra
1068 INTEGER,
INTENT(IN) :: k
1069 REAL(kind=
dp),
INTENT(IN) :: rc
1070 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
1074 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: pro
1077 cpassert(
SIZE(spmat) >= n)
1081 pf = sqrt(2._dp)/sqrt(
gamma1(l + 2*k + 1))/rc**(l + 2*k + 1.5_dp)
1082 pro(:) = pf*r(:)**(l + 2*k)*exp(-0.5_dp*(r(:)/rc)**2)
1085 spmat(ip) = sum(wr(:)*pro(:)*ra(:, ip))
1090 END SUBROUTINE num_proj_ol
1111 SUBROUTINE num_gpot(vpmat, k, rc, ra, rb, r, wr)
1113 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: vpmat
1114 INTEGER,
INTENT(IN) :: k
1115 REAL(kind=
dp),
INTENT(IN) :: rc
1116 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, rb
1117 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
1119 INTEGER :: ip, iq, m, n
1120 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: op
1125 cpassert(.NOT. (n >
SIZE(vpmat, 1) .OR. m >
SIZE(vpmat, 2)))
1129 op(:) = (r(:)/rc)**(2*k)*exp(-0.5_dp*(r(:)/rc)**2)
1133 vpmat(ip, iq) = sum(wr(:)*ra(:, ip)*rb(:, iq)*op(:))
1139 END SUBROUTINE num_gpot
1157 SUBROUTINE num_conf(gmat, rc, k, ra, rb, r, wr)
1159 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: gmat
1160 REAL(kind=
dp),
INTENT(IN) :: rc
1161 INTEGER,
INTENT(IN) :: k
1162 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, rb
1163 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
1165 INTEGER :: ip, iq, m, n
1166 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: op
1171 cpassert(.NOT. (n >
SIZE(gmat, 1) .OR. m >
SIZE(gmat, 2)))
1175 op(:) = (r(:)/rc)**(2*k)
1179 gmat(ip, iq) = sum(wr(:)*ra(:, ip)*rb(:, iq)*op(:))
1185 END SUBROUTINE num_conf
subroutine, public sg_kinnuc(umat, l, pa, pb)
...
subroutine, public sg_nuclear(umat, l, pa, pb)
...
subroutine, public sg_coulomb(eri, nu, pa, lab, pc, lcd)
...
subroutine, public sg_exchange(eri, nu, pa, lac, pb, lbd)
...
subroutine, public sg_erfc(umat, l, a, pa, pb)
...
subroutine, public sg_kinetic(kmat, l, pa, pb)
...
subroutine, public sto_nuclear(umat, na, pa, nb, pb)
...
subroutine, public sto_overlap(smat, na, pa, nb, pb)
...
subroutine, public sto_kinetic(kmat, l, na, pa, nb, pb)
...
subroutine, public sg_gpot(vpmat, k, rc, l, pa, pb)
...
subroutine, public sg_proj_ol(spmat, l, p, k, rc)
...
subroutine, public sg_erf(upmat, l, a, pa, pb)
...
subroutine, public sg_conf(gmat, rc, k, l, pa, pb)
...
subroutine, public sg_overlap(smat, l, pa, pb)
...
Defines the basic variable types.
integer, parameter, public dp
Definition of mathematical constants and functions.
real(kind=dp), dimension(0:maxfac), parameter, public gamma1
real(kind=dp), parameter, public pi
real(kind=dp), dimension(-1:2 *maxfac+1), parameter, public dfac
real(kind=dp), parameter, public rootpi
real(kind=dp), dimension(0:maxfac), parameter, public gamma0
real(kind=dp), dimension(0:maxfac), parameter, public fac