dbcsr_iteration_info_release Subroutine

public subroutine dbcsr_iteration_info_release(iteration_info)

releases the iteration_info (see doc/ReferenceCounting.html)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_iteration_info_type), POINTER:: iteration_info

the iteration_info to release


Contents


Source Code

   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