Wraps MPI_Request to provide object-oriented interface for non-blocking communication operations (isend, irecv)
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | private | :: | is_valid | = | .false. |
Validity flag |
|
| type(MPI_Request), | private | :: | m_request | = | MPI_REQUEST_NULL |
Internal MPI request handle |
Free the request
Frees the MPI request resources
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(request_t), | intent(inout) | :: | this |
Get underlying MPI_Request
Retrieves the underlying MPI_Request handle
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(request_t), | intent(in) | :: | this |
Check if request is null
Checks if the request is null/invalid
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(request_t), | intent(in) | :: | this |
type :: request_t !! Wraps MPI_Request to provide object-oriented interface for !! non-blocking communication operations (isend, irecv) private type(MPI_Request) :: m_request = MPI_REQUEST_NULL !! Internal MPI request handle logical :: is_valid = .false. !! Validity flag contains procedure :: is_null => request_is_null !! Check if request is null procedure :: get => request_get !! Get underlying MPI_Request procedure :: free => request_free !! Free the request end type request_t