releases the iteration_info (see doc/ReferenceCounting.html)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_iteration_info_type), | POINTER | :: | iteration_info |
the iteration_info to release |
SUBROUTINE dbcsr_iteration_info_release(iteration_info)
!! releases the iteration_info (see doc/ReferenceCounting.html)
TYPE(dbcsr_iteration_info_type), POINTER :: iteration_info
!! the iteration_info to release
CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_iteration_info_release', &
routineP = moduleN//':'//routineN
IF (ASSOCIATED(iteration_info)) THEN
IF (iteration_info%ref_count <= 0) THEN
DBCSR_ABORT(routineP//" iteration_info%ref_counf<=0")
END IF
iteration_info%ref_count = iteration_info%ref_count - 1
IF (iteration_info%ref_count == 0) THEN
IF (ASSOCIATED(iteration_info%iteration)) THEN
DEALLOCATE (iteration_info%iteration)
END IF
IF (ASSOCIATED(iteration_info%last_iter)) THEN
DEALLOCATE (iteration_info%last_iter)
END IF
IF (ASSOCIATED(iteration_info%level_name)) THEN
DEALLOCATE (iteration_info%level_name)
END IF
DEALLOCATE (iteration_info)
END IF
END IF
END SUBROUTINE dbcsr_iteration_info_release