37 real(wp),
allocatable :: target_energies(:,:)
38 real(wp) :: l2_ecp_deficit
39 integer :: num_target_sym
40 integer,
allocatable :: num_target_per_symmetries(:)
41 integer,
allocatable :: spatial_symmetry(:)
42 integer,
allocatable :: spin_symmetry(:)
43 real(wp) :: ground_energy
66 character(len=*) :: filename
90 integer,
intent(in) :: target_sym
91 real(wp) :: target_energy(:)
97 subroutine construct_core (this, num_target_sym, num_target_per_symmetries, spatial_symmetry, spin_symmetry)
99 integer,
intent(in) :: num_target_sym
100 integer,
intent(in) :: num_target_per_symmetries(num_target_sym), &
101 spatial_symmetry(num_target_sym), &
102 spin_symmetry(num_target_sym)
104 this % num_target_sym = num_target_sym
105 allocate(this % num_target_per_symmetries(num_target_sym))
107 this % num_target_per_symmetries = num_target_per_symmetries
108 allocate(this % target_energies(maxval(this % num_target_per_symmetries), this % num_target_sym))
110 allocate(this % spatial_symmetry(num_target_sym))
111 allocate(this % spin_symmetry(num_target_sym))
113 this % spatial_symmetry = spatial_symmetry
114 this % spin_symmetry = spin_symmetry
116 this % target_energies = 0.0
117 this % L2_ECP_deficit = 0.0
123 real(wp),
intent(inout) :: value
125 value =
value - this % ground_energy
126 value =
value + this % target_energies(1,1)
132 real(wp),
intent(inout) :: value
134 value =
value + this % L2_ECP_deficit