The SHELL4 module

The SHELL4 module is concerned with quartets of (segmented) contracted shells of gaussian functions. Each component of the shell is assumed normalised, unlike the GAUSSIAN2 module. This illustrates the calculation of electron repulsion integrals (ERI's) using Roland Lindh's method, and also the basic HONDO Rys method. Other integral types such as spin-orbit integrals are also available.

Code

program run_shell4

   use TYPES
   use SYSTEM
   use TIME
   use INT
   use REALVEC
   use REALMAT4
   use TEXTFILE
   use SHELL4

#include "macros"

   implicit none

   SHELL4* :: s
   REALMAT4* :: I

   tonto.initialize
   stdout.create_stdout
   stdout.open

   stdout.flush
   stdout.text("Here is a shell quartet:")
   stdout.flush

   s.create 

   s.a.n_cc = 2
   s.b.n_cc = 2
   s.c.n_cc = 2
   s.d.n_cc = 2
   s.a.cc.create(2)
   s.b.cc.create(2)
   s.c.cc.create(2)
   s.d.cc.create(2)
   s.a.cc(1) = ONE
   s.b.cc(1) = ONE
   s.c.cc(1) = ONE
   s.d.cc(1) = ONE
   s.a.cc(2) = TWO
   s.b.cc(2) = TWO
   s.c.cc(2) = TWO
   s.d.cc(2) = TWO
   s.a.ex.create(2)
   s.b.ex.create(2)
   s.c.ex.create(2)
   s.d.ex.create(2)
   s.a.ex(1) = 2d0
   s.b.ex(1) = 1d0
   s.c.ex(1) = 50d0
   s.d.ex(1) = 0.1d0
   s.a.ex(2) = 20d0
   s.b.ex(2) = 10d0
   s.c.ex(2) = 5d0
   s.d.ex(2) = 1d0

   s.a.l = 0
   s.b.l = 2
   s.c.l = 0
   s.d.l = 1
   s.a.n_comp = s.a.l.n_comp
   s.b.n_comp = s.b.l.n_comp
   s.c.n_comp = s.c.l.n_comp
   s.d.n_comp = s.d.l.n_comp

   s.a.pos = [0.0d0, 0.2d0, 0.0d0]
   s.b.pos = [0.3d0,-0.3d0, 0.6d0]
   s.c.pos = [0.8d0, 0.5d0, 0.2d0]
   s.d.pos = [0.0d0, 0.2d0,-0.3d0]

   stdout.set_real_precision(6)
   stdout.set_real_width(11)
   stdout.set_int_width(3)

   s.put

   stdout.flush
   stdout.text("Here are the ERI integrals")
   stdout.flush
   stdout.text("Calculated using Roland Lindh's method:")
   stdout.flush

   I.create(1,6,1,3)

   s.get_eri(I)
   stdout.put(I)

   stdout.flush
   stdout.text("Calculated using the HONDO Rys method:")
   stdout.flush

   s.make_ERI_ints(I)
   stdout.put(I)

   I.destroy

end 

Results

Here is a shell quartet:

A shell l quantum number =  0
B shell l quantum number =  2
C shell l quantum number =  0
D shell l quantum number =  1
A position               =   0.000000   0.200000   0.000000
B position               =   0.300000  -0.300000   0.600000
C position               =   0.800000   0.500000   0.200000
D position               =   0.000000   0.200000  -0.300000

-------------------------------------------------------------------------------------------
  N       ex_a       cc_a       ex_b       cc_b       ex_c       cc_c       ex_d       cc_d
-------------------------------------------------------------------------------------------
  1   2.000000   1.000000   1.000000   1.000000  50.000000   1.000000   0.100000   1.000000
  2  20.000000   2.000000  10.000000   2.000000   5.000000   2.000000   1.000000   2.000000
-------------------------------------------------------------------------------------------

Here are the ERI integrals

Calculated using Roland Lindh's method:

  1  1  1  1   0.144952
  1  1  1  2   0.051436
  1  1  1  3   0.096599
  1  2  1  1   0.271482
  1  2  1  2   0.110750
  1  2  1  3   0.186951
  1  3  1  1   0.280387
  1  3  1  2   0.098742
  1  3  1  3   0.175365
  1  4  1  1  -0.053682
  1  4  1  2  -0.025814
  1  4  1  3  -0.042450
  1  5  1  1   0.069175
  1  5  1  2   0.030760
  1  5  1  3   0.051905
  1  6  1  1  -0.264489
  1  6  1  2  -0.104083
  1  6  1  3  -0.168855

Calculated using the HONDO Rys method:

  1  1  1  1   0.144952
  1  1  1  2   0.051436
  1  1  1  3   0.096599
  1  2  1  1   0.271482
  1  2  1  2   0.110750
  1  2  1  3   0.186951
  1  3  1  1   0.280387
  1  3  1  2   0.098742
  1  3  1  3   0.175365
  1  4  1  1  -0.053682
  1  4  1  2  -0.025814
  1  4  1  3  -0.042450
  1  5  1  1   0.069175
  1  5  1  2   0.030760
  1  5  1  3   0.051905
  1  6  1  1  -0.264489
  1  6  1  2  -0.104083
  1  6  1  3  -0.168855