36 #include "../base/base_uses.f90"
42 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'ai_onecenter'
65 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: smat
66 INTEGER,
INTENT(IN) :: l
67 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
69 INTEGER :: ip, iq, m, n
70 REAL(kind=
dp) :: el, spi
75 cpassert(.NOT. (n >
SIZE(smat, 1) .OR. m >
SIZE(smat, 2)))
77 spi = sqrt(
pi)/2.0_dp**(l + 2)*
dfac(2*l + 1)
78 el = real(l,
dp) + 1.5_dp
82 smat(ip, iq) = spi/(pa(ip) + pb(iq))**el
102 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: kmat
103 INTEGER,
INTENT(IN) :: l
104 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
106 INTEGER :: ip, iq, m, n
112 cpassert(.NOT. (n >
SIZE(kmat, 1) .OR. m >
SIZE(kmat, 2)))
114 spi =
dfac(2*l + 3)*sqrt(
pi)/2.0_dp**(l + 2)
117 kmat(ip, iq) = spi*pa(ip)*pb(iq)/(pa(ip) + pb(iq))**(l + 2.5_dp)
137 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: umat
138 INTEGER,
INTENT(IN) :: l
139 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
141 INTEGER :: ip, iq, m, n
147 cpassert(.NOT. (n >
SIZE(umat, 1) .OR. m >
SIZE(umat, 2)))
152 umat(ip, iq) = tld/(pa(ip) + pb(iq))**(l + 1)
172 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: umat
173 INTEGER,
INTENT(IN) :: l
174 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
176 INTEGER :: ip, iq, m, n
177 REAL(kind=
dp) :: ppq, pq, tld
182 cpassert(.NOT. (n >
SIZE(umat, 1) .OR. m >
SIZE(umat, 2)))
188 ppq = pa(ip) + pb(iq)
190 umat(ip, iq) = tld/ppq**l*(4.0_dp/ppq**2*pq*real(l + 1,
dp) + 1.0_dp)
196 ppq = pa(ip) + pb(iq)
198 umat(ip, iq) = 2.0_dp*pq/ppq**2
231 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: upmat
232 INTEGER,
INTENT(IN) :: l
233 REAL(kind=
dp),
INTENT(IN) :: a
234 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
236 INTEGER :: handle, ip, iq, m, n
237 REAL(kind=
dp) :: a2, fpol, pq, tld, z, z2
239 CALL timeset(
"sg_erf", handle)
244 cpassert(.NOT. (n >
SIZE(upmat, 1) .OR. m >
SIZE(upmat, 2)))
247 tld = a/2._dp**(l + 1)
252 upmat(ip, iq) = tld/(1._dp + z)**(l + 0.5_dp)/pq**(l + 1.5_dp)
266 fpol = 2.0_dp*z + 3.0_dp
267 upmat(ip, iq) = upmat(ip, iq)*fpol
273 fpol = 8.0_dp*z*z + 20.0_dp*z + 15.0_dp
274 upmat(ip, iq) = upmat(ip, iq)*fpol
280 fpol = 16.0_dp*z*z*z + 56.0_dp*z*z + 70.0_dp*z + 35.0_dp
282 upmat(ip, iq) = upmat(ip, iq)*fpol
288 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
290 upmat(ip, iq) = upmat(ip, iq)*fpol
296 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
298 upmat(ip, iq) = upmat(ip, iq)*fpol
305 fpol = 1024.0_dp*z2*z2*z2 + 6656.0_dp*z*z2*z2 + 18304.0_dp*z2*z2 + 27456.0_dp*z2*z + &
306 24024.0_dp*z2 + 12012.0_dp*z + 3003.0_dp
308 upmat(ip, iq) = upmat(ip, iq)*fpol
313 CALL timestop(handle)
337 REAL(kind=
dp),
DIMENSION(:),
INTENT(OUT) :: spmat
338 INTEGER,
INTENT(IN) :: l
339 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: p
340 INTEGER,
INTENT(IN) :: k
341 REAL(kind=
dp),
INTENT(IN) :: rc
343 REAL(kind=
dp) :: orc, pf
345 cpassert(
SIZE(spmat) >=
SIZE(p))
347 pf = 2._dp**(l + k + 1)*
gamma1(l + k + 1)/rc**(l + 2*k + 1.5_dp)/sqrt(
gamma1(l + 2*k + 1))
349 spmat(:) = pf/(2._dp*p(:) + orc)**(l + k + 1.5_dp)
373 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: vpmat
374 INTEGER,
INTENT(IN) :: k
375 REAL(kind=
dp),
INTENT(IN) :: rc
376 INTEGER,
INTENT(IN) :: l
377 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
379 INTEGER :: ip, iq, m, n
385 cpassert(.NOT. (n >
SIZE(vpmat, 1) .OR. m >
SIZE(vpmat, 2)))
387 tld =
gamma1(l + k + 1)*rc**(2*l + 3)*2._dp**(l + k + 0.5)
391 vpmat(ip, iq) = tld/(1._dp + 2._dp*rc*rc*(pa(ip) + pb(iq)))**(l + k + 1.5_dp)
414 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: gmat
415 REAL(kind=
dp),
INTENT(IN) :: rc
416 INTEGER,
INTENT(IN) :: k, l
417 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
419 INTEGER :: ip, iq, m, n
425 cpassert(.NOT. (n >
SIZE(gmat, 1) .OR. m >
SIZE(gmat, 2)))
427 tld = 0.5_dp/rc**(2*k)*
gamma1(l + k + 1)
430 gmat(ip, iq) = tld/(pa(ip) + pb(iq))**(l + k + 1.5_dp)
452 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: eri
453 INTEGER,
INTENT(IN) :: nu
454 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa
455 INTEGER,
INTENT(IN) :: lab
456 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pc
457 INTEGER,
INTENT(IN) :: lcd
459 INTEGER :: handle, ia, ib, ic, id, jab, jcd, na, nc
460 REAL(kind=
dp) :: cc1, cc2, ee, p, q, r, s, vab1, vab3, &
463 CALL timeset(
"sg_coulomb", handle)
467 ee = sqrt(2.0_dp*
pi)/2.0_dp**(2*(lab + lcd) + 6)
475 vab1 = vgau(2*lab - nu + 1, xab)
476 vab3 = vgau(2*lab + nu + 2, xab)
484 vcd1 = vgau(2*lcd + nu + 2, xcd)
485 vcd3 = vgau(2*lcd - nu + 1, xcd)
486 cc1 = cgau(2*lab - nu + 1, 2*lcd + nu + 2, xab/xcd)
487 cc2 = cgau(2*lcd - nu + 1, 2*lab + nu + 2, xcd/xab)
489 eri(jab, jcd) = ee*(cc1*vab1*vcd1 + cc2*vab3*vcd3)
496 CALL timestop(handle)
516 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: eri
517 INTEGER,
INTENT(IN) :: nu
518 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa
519 INTEGER,
INTENT(IN) :: lac
520 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pb
521 INTEGER,
INTENT(IN) :: lbd
523 INTEGER :: handle, ia, ib, ic, id, jac, jbd, na, nb
524 REAL(kind=
dp) :: cc1, cc2, cc3, cc4, ee, p, q, r, s, &
525 v1pr, v1ps, v1qr, v1qs, v2pr, v2ps, &
526 v2qr, v2qs, xab, xad, xbc, xcd
528 CALL timeset(
"sg_exchange", handle)
533 ee = sqrt(2.0_dp*
pi)/2.0_dp**(2*(lac + lbd) + 7)
550 v1pr = vgau(lac + lbd - nu + 1, xab)
551 v1qs = vgau(lac + lbd - nu + 1, xcd)
552 v1ps = vgau(lac + lbd - nu + 1, xad)
553 v1qr = vgau(lac + lbd - nu + 1, xbc)
554 v2qs = vgau(lac + lbd + nu + 2, xcd)
555 v2pr = vgau(lac + lbd + nu + 2, xab)
556 v2qr = vgau(lac + lbd + nu + 2, xbc)
557 v2ps = vgau(lac + lbd + nu + 2, xad)
558 cc1 = cgau(lac + lbd - nu + 1, lac + lbd + nu + 2, xab/xcd)
559 cc2 = cgau(lac + lbd - nu + 1, lac + lbd + nu + 2, xcd/xab)
560 cc3 = cgau(lac + lbd - nu + 1, lac + lbd + nu + 2, xad/xbc)
561 cc4 = cgau(lac + lbd - nu + 1, lac + lbd + nu + 2, xbc/xad)
563 eri(jac, jbd) = ee*(v1pr*v2qs*cc1 + v1qs*v2pr*cc2 + &
564 v1ps*v2qr*cc3 + v1qr*v2ps*cc4)
571 CALL timestop(handle)
590 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: umat
591 INTEGER,
INTENT(IN) :: l
592 REAL(kind=
dp),
INTENT(IN) :: a
593 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa, pb
595 INTEGER :: ip, iq, m, n
601 cpassert(.NOT. (n >
SIZE(umat, 1) .OR. m >
SIZE(umat, 2)))
603 CALL sg_erf(umat, l, a, pa, pb)
608 umat(ip, iq) = tld/(pa(ip) + pb(iq))**(l + 1) - umat(ip, iq)
622 ELEMENTAL FUNCTION vgau(n, x)
RESULT(v)
623 INTEGER,
INTENT(IN) :: n
624 REAL(kind=
dp),
INTENT(IN) :: x
627 v =
dfac(n - 1)/x**(0.5_dp*(n + 1))
638 ELEMENTAL FUNCTION cgau(a, b, t)
RESULT(c)
639 INTEGER,
INTENT(IN) :: a, b
640 REAL(kind=
dp),
INTENT(IN) :: t
647 c = c + (t/(1.0_dp + t))**l*
dfac(2*l + b - 1)/
dfac(2*l)
649 c = c*(1.0_dp + t)**(-0.5_dp*(b + 1))/
dfac(b - 1)
668 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: smat
669 INTEGER,
DIMENSION(:),
INTENT(IN) :: na
670 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa
671 INTEGER,
DIMENSION(:),
INTENT(IN) :: nb
672 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pb
674 INTEGER :: ip, iq, m, n
675 REAL(kind=
dp) :: vp, vpq, vq
680 cpassert(.NOT. (n >
SIZE(smat, 1) .OR. m >
SIZE(smat, 2)))
683 vq = vsto(2*nb(iq), pb(iq))
685 vp = vsto(2*na(ip), pa(ip))
686 vpq = vsto(na(ip) + nb(iq), 0.5_dp*(pa(ip) + pb(iq)))
687 smat(ip, iq) = vpq/sqrt(vp*vq)
711 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: kmat
712 INTEGER,
INTENT(IN) :: l
713 INTEGER,
DIMENSION(:),
INTENT(IN) :: na
714 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa
715 INTEGER,
DIMENSION(:),
INTENT(IN) :: nb
716 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pb
718 INTEGER :: ip, iq, m, n
719 REAL(kind=
dp) :: vp, vpq, vpq1, vpq2, vq, wp, wq
724 cpassert(.NOT. (n >
SIZE(kmat, 1) .OR. m >
SIZE(kmat, 2)))
727 vq = vsto(2*nb(iq), pb(iq))
728 wq = wsto(l, nb(iq), pb(iq))
730 vp = vsto(2*na(ip), pa(ip))
731 vpq = vsto(na(ip) + nb(iq), 0.5_dp*(pa(ip) + pb(iq)))
732 vpq1 = vsto(na(ip) + nb(iq) - 1, 0.5_dp*(pa(ip) + pb(iq)))
733 vpq2 = vsto(na(ip) + nb(iq) - 2, 0.5_dp*(pa(ip) + pb(iq)))
734 wp = wsto(l, na(ip), pa(ip))
735 kmat(ip, iq) = 0.5_dp*pa(ip)*pb(iq)/sqrt(vp*vq)* &
736 (vpq - (wp + wq)*vpq1 + wp*wq*vpq2)
757 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: umat
758 INTEGER,
DIMENSION(:),
INTENT(IN) :: na
759 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa
760 INTEGER,
DIMENSION(:),
INTENT(IN) :: nb
761 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pb
763 INTEGER :: ip, iq, m, n
764 REAL(kind=
dp) :: vp, vpq1, vq
769 cpassert(.NOT. (n >
SIZE(umat, 1) .OR. m >
SIZE(umat, 2)))
772 vq = vsto(2*nb(iq), pb(iq))
774 vp = vsto(2*na(ip), pa(ip))
775 vpq1 = vsto(na(ip) + nb(iq) - 1, 0.5_dp*(pa(ip) + pb(iq)))
776 umat(ip, iq) = 2._dp/sqrt(vp*vq)*vpq1
798 SUBROUTINE sto_conf(gmat, rc, k, na, pa, nb, pb)
800 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: gmat
801 REAL(kind=
dp),
INTENT(IN) :: rc
802 INTEGER,
INTENT(IN) :: k
803 INTEGER,
DIMENSION(:),
INTENT(IN) :: na
804 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pa
805 INTEGER,
DIMENSION(:),
INTENT(IN) :: nb
806 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: pb
808 INTEGER :: ip, iq, m, n
813 cpassert(.NOT. (n >
SIZE(gmat, 1) .OR. m >
SIZE(gmat, 2)))
817 gmat(ip, iq) = (2._dp*pa(ip))**(na(ip) + 0.5_dp)/sqrt(
fac(2*na(ip))) &
818 *(2._dp*pb(iq))**(nb(iq) + 0.5_dp)/sqrt(
fac(2*nb(iq))) &
819 /rc**(2*k)/(pa(ip) + pb(iq))**(na(ip) + nb(iq) + 2*k + 1) &
820 *
gamma0(na(ip) + nb(iq) + 2*k + 1)
824 END SUBROUTINE sto_conf
834 ELEMENTAL FUNCTION vsto(n, x)
RESULT(v)
835 INTEGER,
INTENT(IN) :: n
836 REAL(kind=
dp),
INTENT(IN) :: x
839 v =
fac(n)/x**(n + 1)
850 ELEMENTAL FUNCTION wsto(n, m, x)
RESULT(w)
851 INTEGER,
INTENT(IN) :: n, m
852 REAL(kind=
dp),
INTENT(IN) :: x
855 w = 2._dp*real(m - n - 1,
dp)/x
870 SUBROUTINE num_overlap(smat, ra, rb, wr)
872 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: smat
873 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, rb
874 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: wr
876 INTEGER :: ip, iq, m, n
881 cpassert(.NOT. (n >
SIZE(smat, 1) .OR. m >
SIZE(smat, 2)))
885 smat(ip, iq) = sum(ra(:, ip)*rb(:, iq)*wr(:))
889 END SUBROUTINE num_overlap
907 SUBROUTINE num_kinetic(kmat, l, ra, dra, rb, drb, r, wr)
909 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: kmat
910 INTEGER,
INTENT(IN) :: l
911 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, dra, rb, drb
912 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
914 INTEGER :: ip, iq, m, n
919 cpassert(.NOT. (n >
SIZE(kmat, 1) .OR. m >
SIZE(kmat, 2)))
923 kmat(ip, iq) = 0.5_dp*sum(wr(:)*dra(:, ip)*drb(:, iq) &
924 + wr(:)*real(l*(l + 1),
dp)*ra(:, ip)*rb(:, iq)/r(:)**2)
928 END SUBROUTINE num_kinetic
943 SUBROUTINE num_nuclear(umat, ra, rb, r, wr)
945 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: umat
946 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, rb
947 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
949 INTEGER :: ip, iq, m, n
954 cpassert(.NOT. (n >
SIZE(umat, 1) .OR. m >
SIZE(umat, 2)))
958 umat(ip, iq) = sum(wr(:)*ra(:, ip)*rb(:, iq)/r(:))
962 END SUBROUTINE num_nuclear
980 SUBROUTINE num_kinnuc(umat, l, ra, dra, rb, drb, r, wr)
982 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: umat
983 INTEGER,
INTENT(IN) :: l
984 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, dra, rb, drb
985 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
987 INTEGER :: ip, iq, m, n
992 cpassert(.NOT. (n >
SIZE(umat, 1) .OR. m >
SIZE(umat, 2)))
996 umat(ip, iq) = sum(wr(:)*dra(:, ip)*drb(:, iq)/r(:) &
997 + wr(:)*real(l*(l + 1),
dp)*ra(:, ip)*rb(:, iq)/r(:)**3)
1001 END SUBROUTINE num_kinnuc
1017 SUBROUTINE num_erf(upmat, a, ra, rb, r, wr)
1019 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: upmat
1020 REAL(kind=
dp),
INTENT(IN) :: a
1021 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, rb
1022 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
1024 INTEGER :: ip, iq, k, m, n
1029 cpassert(.NOT. (n >
SIZE(upmat, 1) .OR. m >
SIZE(upmat, 2)))
1033 upmat(ip, iq) = 0._dp
1035 upmat(ip, iq) = upmat(ip, iq) + &
1036 (wr(k)*ra(k, ip)*rb(k, iq)*erf(a*r(k))/r(k))
1041 END SUBROUTINE num_erf
1062 SUBROUTINE num_proj_ol(spmat, l, ra, k, rc, r, wr)
1064 REAL(kind=
dp),
DIMENSION(:),
INTENT(OUT) :: spmat
1065 INTEGER,
INTENT(IN) :: l
1066 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra
1067 INTEGER,
INTENT(IN) :: k
1068 REAL(kind=
dp),
INTENT(IN) :: rc
1069 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
1073 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: pro
1076 cpassert(
SIZE(spmat) >= n)
1080 pf = sqrt(2._dp)/sqrt(
gamma1(l + 2*k + 1))/rc**(l + 2*k + 1.5_dp)
1081 pro(:) = pf*r(:)**(l + 2*k)*exp(-0.5_dp*(r(:)/rc)**2)
1084 spmat(ip) = sum(wr(:)*pro(:)*ra(:, ip))
1089 END SUBROUTINE num_proj_ol
1110 SUBROUTINE num_gpot(vpmat, k, rc, ra, rb, r, wr)
1112 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: vpmat
1113 INTEGER,
INTENT(IN) :: k
1114 REAL(kind=
dp),
INTENT(IN) :: rc
1115 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, rb
1116 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
1118 INTEGER :: ip, iq, m, n
1119 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: op
1124 cpassert(.NOT. (n >
SIZE(vpmat, 1) .OR. m >
SIZE(vpmat, 2)))
1128 op(:) = (r(:)/rc)**(2*k)*exp(-0.5_dp*(r(:)/rc)**2)
1132 vpmat(ip, iq) = sum(wr(:)*ra(:, ip)*rb(:, iq)*op(:))
1138 END SUBROUTINE num_gpot
1156 SUBROUTINE num_conf(gmat, rc, k, ra, rb, r, wr)
1158 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(OUT) :: gmat
1159 REAL(kind=
dp),
INTENT(IN) :: rc
1160 INTEGER,
INTENT(IN) :: k
1161 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(IN) :: ra, rb
1162 REAL(kind=
dp),
DIMENSION(:),
INTENT(IN) :: r, wr
1164 INTEGER :: ip, iq, m, n
1165 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: op
1170 cpassert(.NOT. (n >
SIZE(gmat, 1) .OR. m >
SIZE(gmat, 2)))
1174 op(:) = (r(:)/rc)**(2*k)
1178 gmat(ip, iq) = sum(wr(:)*ra(:, ip)*rb(:, iq)*op(:))
1184 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), dimension(0:maxfac), parameter, public gamma0
real(kind=dp), dimension(0:maxfac), parameter, public fac