releases this logger
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_logger_type), | POINTER | :: | logger |
the logger to release |
SUBROUTINE dbcsr_logger_release(logger)
!! releases this logger
TYPE(dbcsr_logger_type), POINTER :: logger
!! the logger to release
CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_logger_release', &
routineP = moduleN//':'//routineN
IF (ASSOCIATED(logger)) THEN
IF (logger%ref_count < 1) &
DBCSR_ABORT(routineP//" logger%ref_count<1")
logger%ref_count = logger%ref_count - 1
IF (logger%ref_count == 0) THEN
IF (logger%close_global_unit_on_dealloc .AND. &
logger%default_global_unit_nr >= 0) THEN
CALL close_file(logger%default_global_unit_nr)
logger%close_global_unit_on_dealloc = .FALSE.
logger%default_global_unit_nr = -1
END IF
IF (logger%close_local_unit_on_dealloc .AND. &
logger%default_local_unit_nr >= 0) THEN
CALL close_file(logger%default_local_unit_nr)
logger%close_local_unit_on_dealloc = .FALSE.
logger%default_local_unit_nr = -1
END IF
CALL dbcsr_mp_release(logger%mp_env)
CALL dbcsr_iteration_info_release(logger%iter_info)
DEALLOCATE (logger)
END IF
END IF
END SUBROUTINE dbcsr_logger_release