Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mp_type_descriptor_type), | intent(inout) | :: | type_descriptor |
RECURSIVE SUBROUTINE mp_type_free_m(type_descriptor) TYPE(mp_type_descriptor_type), INTENT(inout) :: type_descriptor CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_type_free_m' INTEGER :: handle, i, ierr CALL timeset(routineN, handle) ierr = 0 ! If the subtype is associated, then it's a user-defined data type. IF (ASSOCIATED(type_descriptor%subtype)) THEN DO i = 1, SIZE(type_descriptor%subtype) CALL mp_type_free_m(type_descriptor%subtype(i)) END DO DEALLOCATE (type_descriptor%subtype) END IF #if defined(__parallel) CALL MPI_Type_free(type_descriptor%type_handle, ierr) IF (ierr /= 0) & DBCSR_ABORT("MPI_Type_free @ "//routineN) #endif CALL timestop(handle) END SUBROUTINE mp_type_free_m