Releases and potentially destroys an mp_env
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_mp_obj), | intent(inout) | :: | mp_env |
multiprocessor environment |
SUBROUTINE dbcsr_mp_release(mp_env)
!! Releases and potentially destroys an mp_env
TYPE(dbcsr_mp_obj), INTENT(INOUT) :: mp_env
!! multiprocessor environment
! ---------------------------------------------------------------------------
IF (ASSOCIATED(mp_env%mp)) THEN
mp_env%mp%refcount = mp_env%mp%refcount - 1
IF (mp_env%mp%refcount .LE. 0) THEN
CALL dbcsr_mp_grid_remove(mp_env)
DEALLOCATE (mp_env%mp%pgrid)
DEALLOCATE (mp_env%mp)
END IF
END IF
END SUBROUTINE dbcsr_mp_release