request_t Derived Type

type, public :: request_t

Wraps MPI_Request to provide object-oriented interface for non-blocking communication operations (isend, irecv)


Inherits

type~~request_t~2~~InheritsGraph type~request_t~2 request_t MPI_Request MPI_Request type~request_t~2->MPI_Request m_request

Components

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


Type-Bound Procedures

procedure, public :: free => request_free

Free the request

  • private subroutine request_free(this)

    Frees the MPI request resources

    Arguments

    Type IntentOptional Attributes Name
    class(request_t), intent(inout) :: this

procedure, public :: get => request_get

Get underlying MPI_Request

  • private function request_get(this) result(mpi_request_out)

    Retrieves the underlying MPI_Request handle

    Arguments

    Type IntentOptional Attributes Name
    class(request_t), intent(in) :: this

    Return Value type(MPI_Request)

procedure, public :: is_null => request_is_null

Check if request is null

  • private pure function request_is_null(this) result(is_null)

    Checks if the request is null/invalid

    Arguments

    Type IntentOptional Attributes Name
    class(request_t), intent(in) :: this

    Return Value logical

Source Code

   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