Legacy MPI wrapper module using traditional MPI interface
This module provides a high-level object-oriented interface to MPI
using the legacy MPI bindings for compatibility with older MPI implementations.
It provides the same API as pic_mpi_f08 but uses integer-based MPI handles.
MPI-3 Window type for one-sided communication (RMA) - legacy version
Wraps MPI window handles to provide object-oriented interface for
Remote Memory Access (RMA) operations needed for DDI
MPI communicator wrapper type for legacy MPI
Create MPI window for RMA operations
Creates a window exposing local memory to remote RMA operations.
Used for DDI distributed arrays.
Create dynamic MPI window
For windows where memory will be attached later.
Useful for load balancing counters.
Allocate window memory and create window in one call (1D array)
Allocate window memory and create window in one call (2D array)
Allocate window memory for single precision 1D array
Allocate window memory for int32 1D array
Allocate window memory for int64 1D array
Fence synchronization for active target RMA
Completes all pending RMA operations.
Use before/after Get/Put/Accumulate operations.
Lock window for passive target RMA
Begins RMA access epoch for specified target rank.
Must be paired with unlock.
Unlock window for passive target RMA
Lock window on all ranks for passive target RMA
Unlock window on all ranks for passive target RMA
Flush pending RMA operations to a specific rank
Flush pending RMA operations to all ranks
Get data from remote window
Retrieves data from target rank’s window into local buffer.
Must be called between fence or lock/unlock pairs.
Put data to remote window
Sends data from local buffer to target rank’s window.
Must be called between fence or lock/unlock pairs.
Non-blocking get data from remote window
Non-blocking put data to remote window
Accumulate data to remote window
Atomically adds local buffer to target rank’s window.
Critical for DDI_ACC (Fock matrix accumulation).
Atomic fetch-and-add for load balancing
Atomically increments remote counter and returns old value.
Used for DDI_DLBNEXT (dynamic load balancing).
Allreduce for scalar double precision
In-place global reduction. Replaces DDI_GSUMF for scalars.
Allreduce for double precision array
In-place global reduction. Replaces DDI_GSUMF for arrays.
This is THE most-called DDI function (1,301 calls in GAMESS).
Allreduce for scalar integer
In-place global reduction. Replaces DDI_GSUMI for scalars.
Allreduce for integer array
In-place global reduction. Replaces DDI_GSUMI for arrays.
Non-in-place allreduce for scalar double precision
Reduces sendbuf and stores result in recvbuf.
Useful for timestep reduction where local value must be preserved.
Non-in-place allreduce for double precision array
Reduces sendbuf and stores result in recvbuf.
Allreduce for single-precision scalar
Allreduce for single-precision array
Non-in-place allreduce for scalar single-precision
Non-in-place allreduce for single-precision array
module~~pic_mpi~~UsesGraph
module~pic_mpi
pic_mpi
mpi
mpi
module~pic_mpi->mpi
pic_types
pic_types
module~pic_mpi->pic_types
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Interfaces
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
sendbuf
integer(kind=int32),
intent(out)
::
recvbuf (:)
private subroutine allreduce_dp (comm, buffer, op)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(inout)
::
buffer
integer,
intent(in),
optional
::
op
private subroutine allreduce_dp_array (comm, buffer, count, op)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(inout)
::
buffer (:)
integer,
intent(in),
optional
::
count
integer,
intent(in),
optional
::
op
private subroutine allreduce_sp (comm, buffer, op)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(inout)
::
buffer
integer,
intent(in),
optional
::
op
private subroutine allreduce_sp_array (comm, buffer, count, op)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(inout)
::
buffer (:)
integer,
intent(in),
optional
::
count
integer,
intent(in),
optional
::
op
private subroutine allreduce_i32 (comm, buffer, op)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(inout)
::
buffer
integer,
intent(in),
optional
::
op
private subroutine allreduce_i32_array (comm, buffer, count, op)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(inout)
::
buffer (:)
integer,
intent(in),
optional
::
count
integer,
intent(in),
optional
::
op
private subroutine allreduce_dp_to (comm, sendbuf, recvbuf, op)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
sendbuf
real(kind=dp),
intent(out)
::
recvbuf
integer,
intent(in),
optional
::
op
private subroutine allreduce_dp_array_to (comm, sendbuf, recvbuf, count, op)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
sendbuf (:)
real(kind=dp),
intent(out)
::
recvbuf (:)
integer,
intent(in),
optional
::
count
integer,
intent(in),
optional
::
op
private subroutine allreduce_sp_to (comm, sendbuf, recvbuf, op)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
sendbuf
real(kind=sp),
intent(out)
::
recvbuf
integer,
intent(in),
optional
::
op
private subroutine allreduce_sp_array_to (comm, sendbuf, recvbuf, count, op)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
sendbuf (:)
real(kind=sp),
intent(out)
::
recvbuf (:)
integer,
intent(in),
optional
::
count
integer,
intent(in),
optional
::
op
private subroutine comm_bcast_integer (comm, buffer, count, root)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(inout)
::
buffer
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
root
private subroutine comm_bcast_integer64 (comm, buffer, count, root)
Broadcasts integer64 data from root process to all processes in communicator
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(inout)
::
buffer
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
root
private subroutine comm_bcast_real_dp (comm, buffer, count, root)
Broadcasts double precision data from root process to all processes in communicator
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(inout)
::
buffer
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
root
Broadcasts double precision array from root process to all processes in communicator
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(inout)
::
buffer (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
root
private subroutine comm_bcast_real_sp (comm, buffer, count, root)
Broadcasts single-precision data from root process to all processes in communicator
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(inout)
::
buffer
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
root
Broadcasts single-precision array from root process to all processes in communicator
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(inout)
::
buffer (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
root
Arguments
None
Return Value
type(comm_t )
Arguments
None
Return Value
type(comm_t )
private subroutine comm_iprobe (comm, source, tag, message_pending, status)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
logical,
intent(out)
::
message_pending
type(MPI_Status ),
intent(out)
::
status
private subroutine comm_isend_integer (comm, data, dest, tag, request)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
private subroutine comm_isend_integer_array (comm, data, dest, tag, request)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
private subroutine comm_isend_integer64 (comm, data, dest, tag, request)
Initiates a non-blocking send operation of an integer64
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Initiates a non-blocking send operation of an integer64 array
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
private subroutine comm_isend_real_dp (comm, data, dest, tag, request)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
private subroutine comm_isend_real_dp_array (comm, data, dest, tag, request)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Non-blocking send of a contiguous 2D dp array with explicit
count. No dim-prefix protocol; pairs with
comm_recv_real_dp_array_2d_n on the receive side.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
private subroutine comm_isend_real_sp (comm, data, dest, tag, request)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
private subroutine comm_isend_real_sp_array (comm, data, dest, tag, request)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
private subroutine comm_isend_logical (comm, data, dest, tag, request)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
logical,
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
private subroutine comm_recv_integer (comm, data, source, tag, status)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
private subroutine comm_recv_integer_array (comm, data, source, tag, status)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(out),
allocatable
::
data (:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out)
::
status
private subroutine comm_recv_integer64 (comm, data, source, tag, status)
Blocking receive of an integer64 from specified source
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
private subroutine comm_recv_integer64_array (comm, data, source, tag, status)
Blocking receive of an integer64 array from specified source
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(out),
allocatable
::
data (:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out)
::
status
private subroutine comm_recv_real_dp (comm, data, source, tag, status)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
private subroutine comm_recv_real_dp_array (comm, data, source, tag, status)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(out),
allocatable
::
data (:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status )
::
status
Receive 2D real(dp) array (must be pre-allocated by receiver)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(inout),
allocatable
::
data (:,:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out)
::
status
private subroutine comm_recv_real_sp (comm, data, source, tag, status)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
private subroutine comm_recv_real_sp_array (comm, data, source, tag, status)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(out),
allocatable
::
data (:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status )
::
status
Receive 2D real(sp) array (must be pre-allocated by receiver)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(inout),
allocatable
::
data (:,:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out)
::
status
private subroutine comm_recv_logical (comm, data, source, tag, status)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
logical,
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
public subroutine comm_recv_integer_array_n (comm, data, count, source, tag, status)
Blocking receive into a pre-allocated int32 array.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(out)
::
data (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
public subroutine comm_recv_integer64_array_n (comm, data, count, source, tag, status)
Blocking receive into a pre-allocated int64 array.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(out)
::
data (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
public subroutine comm_recv_real_dp_array_n (comm, data, count, source, tag, status)
Blocking receive into a pre-allocated double-precision array.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(out)
::
data (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
public subroutine comm_recv_real_sp_array_n (comm, data, count, source, tag, status)
Blocking receive into a pre-allocated single-precision array.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(out)
::
data (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
public subroutine comm_recv_real_dp_array_2d_n (comm, data, count, source, tag, status)
Blocking recv of a contiguous 2D dp array with explicit count.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(out)
::
data (:,:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
public subroutine comm_recv_integer_array_2d_n (comm, data, count, source, tag, status)
Blocking recv of a contiguous 2D int32 array with explicit count.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(out)
::
data (:,:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
private subroutine comm_send_integer (comm, data, dest, tag)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
private subroutine comm_send_integer64 (comm, data, dest, tag)
Blocking send of an integer64 to specified destination
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Blocking send of an integer64 array to specified destination
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
private subroutine comm_send_real_dp (comm, data, dest, tag)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Blocking send of a contiguous 2D dp array using an explicit
count. No dim-prefix protocol — caller and receiver agree on
shape externally.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Blocking send of a contiguous 2D int32 array with explicit count.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
private subroutine comm_send_real_sp (comm, data, dest, tag)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
private subroutine comm_send_logical (comm, data, dest, tag)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
logical,
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
private subroutine request_test (request, flag, status)
Arguments
Type
Intent Optional Attributes
Name
type(request_t ),
intent(inout)
::
request
logical,
intent(out)
::
flag
type(MPI_Status ),
intent(out),
optional
::
status
private subroutine request_wait (request, status)
Arguments
Type
Intent Optional Attributes
Name
type(request_t ),
intent(inout)
::
request
type(MPI_Status ),
intent(out),
optional
::
status
private subroutine request_waitall (requests, statuses)
Arguments
Type
Intent Optional Attributes
Name
type(request_t ),
intent(inout)
::
requests (:)
type(MPI_Status ),
intent(out),
optional
::
statuses (:)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer,
intent(in)
::
length
real(kind=dp),
intent(out),
pointer
::
baseptr (:)
type(win_t ),
intent(out)
::
win
private subroutine create_win_allocate_dp_2d (comm, dim1, dim2, baseptr, win)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer,
intent(in)
::
dim1
integer,
intent(in)
::
dim2
real(kind=dp),
intent(out),
pointer
::
baseptr (:,:)
type(win_t ),
intent(out)
::
win
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer,
intent(in)
::
length
real(kind=sp),
intent(out),
pointer
::
baseptr (:)
type(win_t ),
intent(out)
::
win
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer,
intent(in)
::
length
integer(kind=int32),
intent(out),
pointer
::
baseptr (:)
type(win_t ),
intent(out)
::
win
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer,
intent(in)
::
length
integer(kind=int64),
intent(out),
pointer
::
baseptr (:)
type(win_t ),
intent(out)
::
win
private function create_win_dp_array (comm, base, win_size) result(win)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
target, asynchronous
::
base (:)
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
win_size
Return Value
type(win_t )
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
Return Value
type(win_t )
Derived Types
MPI_Status wrapper type for legacy MPI compatibility
Read more…
Components
Type
Visibility Attributes
Name
Initial
integer,
public
::
MPI_ERROR
=
0
Error code
integer,
public
::
MPI_SOURCE
=
0
Source rank of received message
integer,
public
::
MPI_TAG
=
0
Tag of received message
integer,
public
::
internal (3)
=
0
Additional status fields
MPI communicator wrapper type for legacy MPI
Read more…
Components
Type
Visibility Attributes
Name
Initial
logical,
private
::
is_valid
=
.false.
Validity flag
integer,
private
::
m_comm
=
MPI_COMM_NULL
Internal MPI communicator (integer handle)
integer(kind=int32),
private
::
m_rank
=
-1_int32
Cached rank in this communicator
integer(kind=int32),
private
::
m_size
=
-1_int32
Cached size of this communicator
Type-Bound Procedures
procedure, public ::
barrier => comm_barrier
Synchronization barrier
procedure, public ::
discard_leader => comm_discard_leader
Create communicator without leader
procedure, public ::
discard_to => comm_discard_to
Create communicator with first N ranks
procedure, public ::
duplicate => comm_duplicate
Duplicate communicator
procedure, public ::
finalize => comm_finalize
Free communicator resources
procedure, public ::
get => comm_get
Get underlying MPI communicator handle
procedure, public ::
is_null => comm_is_null
Check if communicator is null
procedure, public ::
leader => comm_leader
Check if this rank is leader (rank 0)
procedure, public ::
rank => comm_rank
Get rank in communicator
procedure, public ::
size => m_size_func
Get size of communicator
procedure, public ::
split => comm_split_shared
Split into shared memory communicators
procedure, public ::
split_by => comm_split_by_color
Split communicator by color
Request type for non-blocking MPI operations
Read more…
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
Components
Type
Visibility Attributes
Name
Initial
logical,
private
::
is_valid
=
.false.
integer,
private
::
m_win
=
MPI_WIN_NULL
Type-Bound Procedures
procedure, public ::
accumulate_dp => win_accumulate_dp
procedure, public ::
accumulate_i32 => win_accumulate_i32
procedure, public ::
accumulate_i64 => win_accumulate_i64
procedure, public ::
accumulate_sp => win_accumulate_sp
procedure, public ::
fence => win_fence
procedure, public ::
fetch_and_add_i64 => win_fetch_and_add_i64
procedure, public ::
finalize => win_finalize
procedure, public ::
flush => win_flush
procedure, public ::
flush_all => win_flush_all
procedure, public ::
get_dp => win_get_dp
procedure, public ::
get_handle => win_get_handle
procedure, public ::
get_i32 => win_get_i32
procedure, public ::
get_i64 => win_get_i64
procedure, public ::
get_sp => win_get_sp
procedure, public ::
is_null => win_is_null
procedure, public ::
lock => win_lock
procedure, public ::
lock_all => win_lock_all
procedure, public ::
put_dp => win_put_dp
procedure, public ::
put_i32 => win_put_i32
procedure, public ::
put_i64 => win_put_i64
procedure, public ::
put_sp => win_put_sp
procedure, public ::
rget_dp => win_rget_dp
procedure, public ::
rget_i32 => win_rget_i32
procedure, public ::
rget_i64 => win_rget_i64
procedure, public ::
rget_sp => win_rget_sp
procedure, public ::
rput_dp => win_rput_dp
procedure, public ::
rput_i32 => win_rput_i32
procedure, public ::
rput_i64 => win_rput_i64
procedure, public ::
rput_sp => win_rput_sp
procedure, public ::
unlock => win_unlock
procedure, public ::
unlock_all => win_unlock_all
Functions
Query the current MPI thread support level
Arguments
None
Return Value
integer(kind=int32)
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Return Value
type(comm_t )
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
integer,
intent(in)
::
num_ranks
Return Value
type(comm_t )
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Return Value
type(comm_t )
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Return Value
integer
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Return Value
logical
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Return Value
logical
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Return Value
integer
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
integer,
intent(in)
::
color
Return Value
type(comm_t )
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Return Value
type(comm_t )
Arguments
Type
Intent Optional Attributes
Name
integer,
intent(in)
::
mpi_comm_in
Return Value
type(comm_t )
Arguments
None
Return Value
type(comm_t )
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
target, asynchronous
::
base (:)
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
win_size
Return Value
type(win_t )
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
Return Value
type(win_t )
Arguments
None
Return Value
type(comm_t )
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Return Value
integer
Arguments
Type
Intent Optional Attributes
Name
class(request_t ),
intent(in)
::
this
Return Value
integer
Arguments
Type
Intent Optional Attributes
Name
class(request_t ),
intent(in)
::
this
Return Value
logical
Convert legacy integer array status to MPI_Status type
Read more…
Arguments
Type
Intent Optional Attributes
Name
integer,
intent(in)
::
status_array (MPI_STATUS_SIZE)
Arguments
Type
Intent Optional Attributes
Name
type(MPI_Status ),
intent(in)
::
status_type
Return Value
integer, (MPI_STATUS_SIZE)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
Return Value
integer
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
Return Value
logical
Subroutines
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
errorcode
Non-blocking receive with explicit count (for device pointers in host_data blocks)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp)
::
data (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Non-blocking receive with explicit count for single-precision (for device pointers in host_data blocks)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp)
::
data (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Non-blocking send of a contiguous 2D dp array with explicit
count. No dim-prefix protocol; pairs with
comm_recv_real_dp_array_2d_n on the receive side.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Non-blocking send with explicit count (for device pointers in host_data blocks)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp)
::
data (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Non-blocking send with explicit count for single-precision (for device pointers in host_data blocks)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp)
::
data (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Blocking receive into a pre-allocated int64 array.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(out)
::
data (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
Blocking recv of a contiguous 2D int32 array with explicit count.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(out)
::
data (:,:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
Blocking receive into a pre-allocated int32 array.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(out)
::
data (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
Blocking recv of a contiguous 2D dp array with explicit count.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(out)
::
data (:,:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
Blocking receive into a pre-allocated double-precision array.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(out)
::
data (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
Blocking receive into a pre-allocated single-precision array.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(out)
::
data (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
Blocking send of a contiguous 2D int32 array with explicit count.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Blocking send of a contiguous 2D dp array using an explicit
count. No dim-prefix protocol — caller and receiver agree on
shape externally.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
character(len=*),
intent(inout)
::
name
integer(kind=int32),
intent(out)
::
namelen
Finalize MPI environment
Arguments
Type
Intent Optional Attributes
Name
integer(kind=int32),
intent(out),
optional
::
ierr
Initialize MPI environment with optional threading support
Read more…
Arguments
Type
Intent Optional Attributes
Name
integer(kind=int32),
intent(in),
optional
::
requested_thread_level
integer(kind=int32),
intent(out),
optional
::
provided_thread_level
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(inout)
::
buffer
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(inout)
::
buffer (:)
integer,
intent(in),
optional
::
count
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
sendbuf (:)
real(kind=dp),
intent(out)
::
recvbuf (:)
integer,
intent(in),
optional
::
count
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
sendbuf
real(kind=dp),
intent(out)
::
recvbuf
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(inout)
::
buffer
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(inout)
::
buffer (:)
integer,
intent(in),
optional
::
count
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(inout)
::
buffer
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(inout)
::
buffer (:)
integer,
intent(in),
optional
::
count
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
sendbuf (:)
real(kind=sp),
intent(out)
::
recvbuf (:)
integer,
intent(in),
optional
::
count
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
sendbuf
real(kind=sp),
intent(out)
::
recvbuf
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
sendbuf
integer(kind=int32),
intent(out)
::
recvbuf (:)
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(inout)
::
buffer
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
root
Broadcasts integer64 data from root process to all processes in communicator
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(inout)
::
buffer
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
root
Broadcasts double precision data from root process to all processes in communicator
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(inout)
::
buffer
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
root
Broadcasts double precision array from root process to all processes in communicator
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(inout)
::
buffer (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
root
Broadcasts single-precision data from root process to all processes in communicator
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(inout)
::
buffer
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
root
Broadcasts single-precision array from root process to all processes in communicator
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(inout)
::
buffer (:)
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
root
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(inout)
::
this
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
logical,
intent(out)
::
message_pending
type(MPI_Status ),
intent(out)
::
status
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Initiates a non-blocking receive operation of an integer64
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Initiates a non-blocking receive operation of an integer64 array
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(out)
::
data (:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(out)
::
data (:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
logical,
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(out)
::
data (:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(inout),
allocatable
::
data (:,:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(out)
::
data (:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(inout),
allocatable
::
data (:,:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Initiates a non-blocking send operation of an integer64
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Initiates a non-blocking send operation of an integer64 array
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
logical,
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
type(request_t ),
intent(out)
::
request
Blocking probe for incoming messages — caller reads
status%MPI_SOURCE / status%MPI_TAG to dispatch the matching
recv. Mirrors the f08 backend’s comm_probe.
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out)
::
status
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
Blocking receive of an integer64 from specified source
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
Blocking receive of an integer64 array from specified source
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(out),
allocatable
::
data (:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out)
::
status
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(out),
allocatable
::
data (:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out)
::
status
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
logical,
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(out),
allocatable
::
data (:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status )
::
status
Receive 2D real(dp) array (must be pre-allocated by receiver)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(inout),
allocatable
::
data (:,:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out)
::
status
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(out)
::
data
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out),
optional
::
status
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(out),
allocatable
::
data (:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status )
::
status
Receive 2D real(sp) array (must be pre-allocated by receiver)
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(inout),
allocatable
::
data (:,:)
integer(kind=int32),
intent(in)
::
source
integer(kind=int32),
intent(in)
::
tag
type(MPI_Status ),
intent(out)
::
status
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Blocking send of an integer64 to specified destination
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Blocking send of an integer64 array to specified destination
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int64),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
logical,
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
data
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
data (:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(in)
::
data (:,:)
integer(kind=int32),
intent(in)
::
dest
integer(kind=int32),
intent(in)
::
tag
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer,
intent(in)
::
length
real(kind=dp),
intent(out),
pointer
::
baseptr (:)
type(win_t ),
intent(out)
::
win
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer,
intent(in)
::
dim1
integer,
intent(in)
::
dim2
real(kind=dp),
intent(out),
pointer
::
baseptr (:,:)
type(win_t ),
intent(out)
::
win
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer,
intent(in)
::
length
integer(kind=int32),
intent(out),
pointer
::
baseptr (:)
type(win_t ),
intent(out)
::
win
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer,
intent(in)
::
length
integer(kind=int64),
intent(out),
pointer
::
baseptr (:)
type(win_t ),
intent(out)
::
win
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer,
intent(in)
::
length
real(kind=sp),
intent(out),
pointer
::
baseptr (:)
type(win_t ),
intent(out)
::
win
Arguments
Type
Intent Optional Attributes
Name
class(request_t ),
intent(inout)
::
this
Arguments
Type
Intent Optional Attributes
Name
type(request_t ),
intent(inout)
::
request
logical,
intent(out)
::
flag
type(MPI_Status ),
intent(out),
optional
::
status
Arguments
Type
Intent Optional Attributes
Name
type(request_t ),
intent(inout)
::
request
type(MPI_Status ),
intent(out),
optional
::
status
Arguments
Type
Intent Optional Attributes
Name
type(request_t ),
intent(inout)
::
requests (:)
type(MPI_Status ),
intent(out),
optional
::
statuses (:)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
real(kind=dp),
intent(in)
::
buffer (*)
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
integer(kind=int32),
intent(in)
::
buffer (*)
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
integer(kind=int64),
intent(in)
::
buffer (*)
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
real(kind=sp),
intent(in)
::
buffer (*)
integer,
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in),
optional
::
assert
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int64),
intent(in)
::
value
integer(kind=int64),
intent(out)
::
result
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(inout)
::
this
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
rank
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
real(kind=dp),
intent(out)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
integer(kind=int32),
intent(out)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
integer(kind=int64),
intent(out)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
real(kind=sp),
intent(out)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
rank
integer,
intent(in),
optional
::
lock_type
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in),
optional
::
assert
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
real(kind=dp),
intent(in)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
integer(kind=int32),
intent(in)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
integer(kind=int64),
intent(in)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
real(kind=sp),
intent(in)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
real(kind=dp),
intent(out)
::
buffer (*)
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
integer(kind=int32),
intent(out)
::
buffer (*)
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
integer(kind=int64),
intent(out)
::
buffer (*)
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
real(kind=sp),
intent(out)
::
buffer (*)
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
real(kind=dp),
intent(in)
::
buffer (*)
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
integer(kind=int32),
intent(in)
::
buffer (*)
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
integer(kind=int64),
intent(in)
::
buffer (*)
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer,
intent(in)
::
count
real(kind=sp),
intent(in)
::
buffer (*)
type(request_t ),
intent(out)
::
request
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer,
intent(in)
::
rank
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this