44      INTEGER, 
INTENT(IN)                                :: iw
 
   46      INTEGER, 
PARAMETER                                 :: lmax = 6
 
   48      CHARACTER(LEN=11), 
DIMENSION(0:lmax)               :: i2g
 
   49      CHARACTER(LEN=5), 
DIMENSION(0:lmax)                :: i2c
 
   50      CHARACTER(LEN=7), 
DIMENSION(0:lmax)                :: i2e
 
   51      CHARACTER(LEN=9), 
DIMENSION(0:lmax)                :: i2f
 
   52      INTEGER                                            :: i, ii, l, la_max, la_min, lc_max, &
 
   53                                                            lc_min, ll, n, npgfa, npgfb, npgfc, &
 
   55      REAL(kind=
dp)                                      :: perf, rac2, t, tend, tstart
 
   56      REAL(kind=
dp), 
ALLOCATABLE, 
DIMENSION(:)           :: f
 
   57      REAL(kind=
dp), 
ALLOCATABLE, 
DIMENSION(:, :)        :: vac
 
   58      REAL(kind=
dp), 
ALLOCATABLE, 
DIMENSION(:, :, :)     :: v
 
   59      REAL(kind=
dp), 
DIMENSION(3)                        :: ra, rb, rc, rd
 
   60      REAL(kind=
dp), 
DIMENSION(:), 
POINTER               :: rpgf, zeta, zetb, zetc, zetd
 
   62      IF (iw > 0) 
WRITE (iw, 
'(/,A)') 
" Test of Electron Repulsion Integrals (ERI) " 
   74      i2g(0) = 
"[(ss)|(ss)]" 
   75      i2g(1) = 
"[(pp)|(pp)]" 
   76      i2g(2) = 
"[(dd)|(dd)]" 
   77      i2g(3) = 
"[(ff)|(ff)]" 
   78      i2g(4) = 
"[(gg)|(gg)]" 
   79      i2g(5) = 
"[(hh)|(hh)]" 
   80      i2g(6) = 
"[(ii)|(ii)]" 
  102      n = max(npgfa, npgfb, npgfc, npgfd)
 
  104      ALLOCATE (zeta(npgfa), zetb(npgfb), zetc(npgfc), zetd(npgfd), rpgf(n))
 
  106      zeta(1:npgfa) = 0.5_dp
 
  107      zetb(1:npgfb) = 0.4_dp
 
  108      zetc(1:npgfc) = 0.3_dp
 
  109      zetd(1:npgfd) = 0.2_dp
 
  111      ra = (/0.0_dp, 0.0_dp, 0.0_dp/)
 
  112      rb = (/1.0_dp, 0.0_dp, 0.0_dp/)
 
  113      rc = (/0.0_dp, 0.3_dp, 0.3_dp/)
 
  114      rd = (/0.7_dp, 0.2_dp, 0.1_dp/)
 
  116      rac2 = sum((ra - rc)**2)
 
  122         WRITE (iw, 
'(//,A,/)') 
" Test of 2-Electron-2-Center Integrals (coulomb2) " 
  129            ALLOCATE (f(0:2*l + 2), v(npgfa*ll, npgfc*ll, 2*l + 1), vac(npgfa*ll, npgfc*ll))
 
  131            ii = max(100/(l + 1)**2, 1)
 
  134               CALL coulomb2(la_max, npgfa, zeta, rpgf, la_min, lc_max, npgfc, zetc, rpgf, lc_min, rc, rac2, vac, v, f)
 
  138            perf = real(ii*
nco(l)**2, kind=
dp)*1.e-6_dp*real(npgfa*npgfc, kind=
dp)/t
 
  139            WRITE (iw, 
'(A,T40,A,T66,F15.3)') 
" Performance [Mintegrals/s] ", i2c(l), perf
 
  140            DEALLOCATE (f, v, vac)
 
  145      DEALLOCATE (zeta, zetb, zetc, zetd, rpgf)
 
 
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.