40 TYPE(dbt_type),
DIMENSION(3) :: t_2c_der_metric, t_2c_der_pot, t_2c_der_ovlp
43 TYPE(dbt_type),
DIMENSION(3) :: t_3c_der_ao, &
48 TYPE(
block_ind_type),
ALLOCATABLE,
DIMENSION(:, :) :: t_3c_der_ao_ind, t_3c_der_ri_ind
51 TYPE(dbt_type) :: t_2c_pot_psqrt, t_2c_inv_metric, t_2c_k, t_2c_pot_msqrt
52 TYPE(dbcsr_type) :: inv_ovlp, g_pq
55 TYPE(dbcsr_p_type),
DIMENSION(:),
POINTER :: p_occ => null(), p_virt => null()
58 TYPE(dbcsr_p_type),
DIMENSION(:),
POINTER :: sum_o_tau => null()
61 TYPE(dbcsr_p_type),
DIMENSION(:),
POINTER :: sum_yp_tau => null()
64 INTEGER,
DIMENSION(:),
ALLOCATABLE :: bsizes_ri_split, bsizes_ao_split
67 INTEGER,
DIMENSION(:),
ALLOCATABLE :: idx_to_at_ao, idx_to_at_ri
70 LOGICAL :: do_periodic = .false.
74 nl_2c_met => null(), &
77 TYPE(dbcsr_type),
POINTER :: ri_virial_pot => null(), &
78 ri_virial_met => null()
79 TYPE(dbt_type),
POINTER :: t_3c_virial => null(), &
80 t_3c_virial_split => null()
94 INTEGER :: dummy_int, i, i_xyz, j
96 CALL dbt_destroy(force_data%t_2c_pot_psqrt)
97 CALL dbt_destroy(force_data%t_2c_pot_msqrt)
98 CALL dbt_destroy(force_data%t_2c_K)
100 CALL dbcsr_release(force_data%inv_ovlp)
101 CALL dbcsr_release(force_data%G_PQ)
108 IF (.NOT. force_data%do_periodic)
CALL dbt_destroy(force_data%t_2c_der_pot(i_xyz))
109 CALL dbt_destroy(force_data%t_2c_der_ovlp(i_xyz))
111 CALL dbt_destroy(force_data%t_3c_der_AO(i_xyz))
112 CALL dbt_destroy(force_data%t_3c_der_RI(i_xyz))
115 CALL dbt_destroy(force_data%t_2c_inv_metric)
117 CALL dbt_destroy(force_data%t_2c_der_metric(i_xyz))
120 DO i = 1,
SIZE(force_data%t_3c_der_AO_comp, 1)
121 DO j = 1,
SIZE(force_data%t_3c_der_AO_comp, 2)
125 DO i = 1,
SIZE(force_data%t_3c_der_RI_comp, 1)
126 DO j = 1,
SIZE(force_data%t_3c_der_RI_comp, 2)
130 DEALLOCATE (force_data%t_3c_der_AO_ind, force_data%t_3c_der_RI_ind)
132 IF (
ASSOCIATED(force_data%nl_2c_ovlp))
THEN
136 IF (
ASSOCIATED(force_data%nl_2c_pot))
THEN
140 IF (
ASSOCIATED(force_data%nl_2c_met))
THEN
144 IF (
ASSOCIATED(force_data%nl_3c))
THEN
146 DEALLOCATE (force_data%nl_3c)
149 IF (
ASSOCIATED(force_data%RI_virial_pot))
THEN
150 CALL dbcsr_release(force_data%RI_virial_pot)
151 DEALLOCATE (force_data%RI_virial_pot)
154 IF (
ASSOCIATED(force_data%RI_virial_met))
THEN
155 CALL dbcsr_release(force_data%RI_virial_met)
156 DEALLOCATE (force_data%RI_virial_met)
159 IF (
ASSOCIATED(force_data%t_3c_virial))
THEN
160 CALL dbt_destroy(force_data%t_3c_virial)
161 DEALLOCATE (force_data%t_3c_virial)
164 IF (
ASSOCIATED(force_data%t_3c_virial_split))
THEN
165 CALL dbt_destroy(force_data%t_3c_virial_split)
166 DEALLOCATE (force_data%t_3c_virial_split)