Deallocates all data_areas contained in given mempool.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_mempool_type), | POINTER | :: | pool |
SUBROUTINE dbcsr_mempool_clear(pool) !! Deallocates all data_areas contained in given mempool. TYPE(dbcsr_mempool_type), POINTER :: pool CHARACTER(LEN=*), PARAMETER :: routineN = 'dbcsr_mempool_clear' INTEGER :: handle TYPE(dbcsr_mempool_entry_type), POINTER :: cur, prev IF (.NOT. ASSOCIATED(pool)) DBCSR_ABORT("pool not allocated") CALL timeset(routineN, handle) !$ CALL OMP_SET_LOCK(pool%lock) cur => pool%root%next DO WHILE (ASSOCIATED(cur)) CALL internal_data_deallocate(cur%area%d) DEALLOCATE (cur%area%d) prev => cur cur => cur%next DEALLOCATE (prev) END DO NULLIFY (pool%root%next) !$ CALL OMP_UNSET_LOCK(pool%lock) CALL timestop(handle) END SUBROUTINE dbcsr_mempool_clear