91 NULLIFY (preconditioner_env%sparse_matrix)
92 NULLIFY (preconditioner_env%fm)
93 NULLIFY (preconditioner_env%dbcsr_matrix)
94 NULLIFY (preconditioner_env%occ_evals)
95 NULLIFY (preconditioner_env%full_evals)
96 NULLIFY (preconditioner_env%inverse_history)
97 NULLIFY (preconditioner_env%max_ev_vector)
98 NULLIFY (preconditioner_env%min_ev_vector)
100 preconditioner_env%para_env => para_env
101 preconditioner_env%ctxt => blacs_env
104 preconditioner_env%condition_num = -1.0_dp
105 preconditioner_env%ihistory = 0
107 CALL preconditioner_env%para_env%retain()
108 CALL preconditioner_env%ctxt%retain()
120 CHARACTER(len=*),
PARAMETER :: routinen =
'destroy_preconditioner'
124 CALL timeset(routinen, handle)
126 IF (
ASSOCIATED(preconditioner_env%sparse_matrix))
THEN
127 CALL dbcsr_deallocate_matrix(preconditioner_env%sparse_matrix)
128 NULLIFY (preconditioner_env%sparse_matrix)
131 IF (
ASSOCIATED(preconditioner_env%fm))
THEN
133 DEALLOCATE (preconditioner_env%fm)
134 NULLIFY (preconditioner_env%fm)
136 IF (
ASSOCIATED(preconditioner_env%dbcsr_matrix))
THEN
137 CALL dbcsr_release_p(preconditioner_env%dbcsr_matrix)
139 IF (
ASSOCIATED(preconditioner_env%max_ev_vector))
THEN
140 CALL dbcsr_release_p(preconditioner_env%max_ev_vector)
142 IF (
ASSOCIATED(preconditioner_env%min_ev_vector))
THEN
143 CALL dbcsr_release_p(preconditioner_env%min_ev_vector)
145 IF (
ASSOCIATED(preconditioner_env%occ_evals))
THEN
146 DEALLOCATE (preconditioner_env%occ_evals)
148 IF (
ASSOCIATED(preconditioner_env%full_evals))
THEN
149 DEALLOCATE (preconditioner_env%full_evals)
151 IF (
ASSOCIATED(preconditioner_env%inverse_history))
THEN
152 DO i = 1,
SIZE(preconditioner_env%inverse_history)
153 CALL dbcsr_release_p(preconditioner_env%inverse_history(i)%matrix)
155 DEALLOCATE (preconditioner_env%inverse_history)
160 preconditioner_env%in_use = 0
163 CALL timestop(handle)