request_t Derived Type

type, public :: request_t

Request type for non-blocking MPI operations

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


Components

Type Visibility Attributes Name Initial
logical, private :: is_valid = .false.

Validity flag

integer, private :: m_request = MPI_REQUEST_NULL

Internal MPI request handle (integer)


Type-Bound Procedures

procedure, public :: free => request_free

Free the request

  • private subroutine request_free(this)

    Arguments

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

procedure, public :: get => request_get

Get underlying MPI request handle

  • private function request_get(this) result(mpi_request_out)

    Arguments

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

    Return Value integer

procedure, public :: is_null => request_is_null

Check if request is null

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

    Arguments

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

    Return Value logical

Source Code

   type :: request_t
   !! Request type for non-blocking MPI operations
   !!
   !! Wraps MPI request handles to provide object-oriented interface for
   !! non-blocking communication operations (isend, irecv)
      private
      integer :: m_request = MPI_REQUEST_NULL !! Internal MPI request handle (integer)
      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 handle
      procedure :: free => request_free !! Free the request
   end type request_t