Modern MPI wrapper module using mpi_f08 interface
This module provides a high-level object-oriented interface to MPI
using the modern mpi_f08 bindings. It wraps MPI communicators and
requests into derived types with type-bound procedures.
Allocate window memory and create window in one call (2D array)
This is more efficient than separate allocation + win_create.
The baseptr is associated with the allocated memory.
Memory is freed when window is finalized.
Allocate window memory for integer64 array
Used for atomic counters in dynamic load balancing.
Allocate window memory for single precision array
Allocate window memory for integer32 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
Begins RMA access epoch for all ranks simultaneously.
More efficient than individual locks when accessing multiple ranks.
Must be paired with unlock_all.
Unlock window on all ranks for passive target RMA
Flush pending RMA operations to a specific rank
Ensures all RMA operations to target rank have completed.
Use within lock_all/unlock_all epoch.
Flush pending RMA operations to all ranks
Ensures all RMA operations to all ranks have completed.
Use within lock_all/unlock_all epoch.
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
Retrieves data from target rank’s window into local buffer.
Returns a request handle for later completion via wait().
Must be called between lock_all/unlock_all pairs.
Non-blocking put data to remote window
Sends data from local buffer to target rank’s window.
Returns a request handle for later completion via wait().
Must be called between lock_all/unlock_all pairs.
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_f08~~UsesGraph
module~pic_mpi_f08
pic_mpi_f08
mpi_f08
mpi_f08
module~pic_mpi_f08->mpi_f08
pic_types
pic_types
module~pic_mpi_f08->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.
module~~pic_mpi_f08~~UsedByGraph
module~pic_mpi_f08
pic_mpi_f08
module~pic_mpi_lib
pic_mpi_lib
module~pic_mpi_lib->module~pic_mpi_f08
module~darrays
darrays
module~darrays->module~pic_mpi_lib
module~darrays_core
darrays_core
module~darrays->module~darrays_core
module~darrays_dlb
darrays_dlb
module~darrays->module~darrays_dlb
module~darrays_types
darrays_types
module~darrays->module~darrays_types
module~darrays_core->module~pic_mpi_lib
module~darrays_core->module~darrays_types
module~darrays_dlb->module~pic_mpi_lib
module~darrays_types->module~pic_mpi_lib
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
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
type(MPI_Op),
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
type(MPI_Op),
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
type(MPI_Op),
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
type(MPI_Op),
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
type(MPI_Op),
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
type(MPI_Op),
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
type(MPI_Op),
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
type(MPI_Op),
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
type(MPI_Op),
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
type(MPI_Op),
intent(in),
optional
::
op
private subroutine comm_bcast_integer (comm, buffer, count, root)
Broadcasts integer data from root process to all processes in communicator
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
private subroutine comm_irecv_integer (comm, data, source, tag, request)
Initiates a non-blocking receive operation. The request must be
waited on using wait() or test() before the buffer can be used.
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
private subroutine comm_irecv_integer_array (comm, data, source, tag, request)
Initiates a non-blocking receive operation. The request must be
waited on using wait() or test() before the buffer can be used.
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
private subroutine comm_irecv_integer64 (comm, data, source, tag, request)
Initiates a non-blocking receive operation. The request must be
waited on using wait() or test() before the buffer can be used.
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
private subroutine comm_irecv_integer64_array (comm, data, source, tag, request)
Initiates a non-blocking receive operation. The request must be
waited on using wait() or test() before the buffer can be used.
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
private subroutine comm_irecv_real_dp (comm, data, source, tag, 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
private subroutine comm_irecv_real_dp_array (comm, data, source, tag, 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
Non-blocking receive of a 2D allocatable double precision real array
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
private subroutine comm_irecv_real_sp (comm, data, source, tag, request)
Non-blocking receive of a single single-precision real
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
private subroutine comm_irecv_real_sp_array (comm, data, source, tag, request)
Non-blocking receive of a single-precision real array
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
Non-blocking receive of a 2D allocatable single-precision real array
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
private subroutine comm_irecv_logical (comm, data, source, tag, request)
Non-blocking receive of a logical value
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
private subroutine comm_isend_integer (comm, data, dest, tag, request)
Initiates a non-blocking send operation. The request must be
waited on using wait() or test() before the buffer can be reused.
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)
Initiates a non-blocking send operation. The request must be
waited on using wait() or test() before the buffer can be reused.
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. The request must be
waited on using wait() or test() before the buffer can be reused.
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. The request must be
waited on using wait() or test() before the buffer can be reused.
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)
Initiates a non-blocking send operation. The request must be
waited on using wait() or test() before the buffer can be reused.
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)
Initiates a non-blocking send operation. The request must be
waited on using wait() or test() before the buffer can be reused.
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 2D double precision real array
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 double-precision array
with explicit count — no dim-prefix protocol. Pairs with
comm_recv_real_dp_array_2d_n on the receive side. The
caller must keep data valid until wait/waitall on the
returned request completes.
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)
Non-blocking send of a single single-precision real
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)
Non-blocking send of a single-precision real array
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
Non-blocking send of a 2D single-precision real array
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)
Non-blocking send of a logical value
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_probe (comm, source, tag, status)
Blocking probe for incoming messages. Returns once a message
matching (source, tag) is queued at the receiver — caller
reads status%MPI_SOURCE and status%MPI_TAG to decide who’s
talking and what kind of message it is, then issues the
matching recv. Use MPI_ANY_SOURCE / MPI_ANY_TAG to
dispatch on whichever rank speaks first.
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
private subroutine comm_recv_integer (comm, data, source, tag, status)
Blocking receive of an integer from specified source.
Use MPI_ANY_SOURCE or MPI_ANY_TAG for wildcards.
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)
Blocking receive of an integer array from specified source.
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.
Use MPI_ANY_SOURCE or MPI_ANY_TAG for wildcards.
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.
Array is automatically allocated to the correct size.
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)
Blocking receive of a single double precision real from specified source.
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)
Blocking receive of a double precision real array from specified source.
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
Blocking receive of a 2D allocatable double precision real array
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)
Blocking receive of a single single-precision real from specified source.
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)
Blocking receive of a single-precision real array from specified source.
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
Blocking receive of a 2D allocatable single-precision real array
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)
Blocking receive of a logical value from specified source
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 receive of a contiguous 2D double-precision array
with explicit count. No dim-prefix protocol — the caller
has already shaped data. Mirrors comm_send_real_dp_array_2d_n.
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)
Blocking send of an integer to specified destination
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 integer array to specified destination
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)
Blocking send of a single double precision real to specified destination
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 double precision real array to specified destination
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 2D double precision real array to specified destination
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 double-precision array using
an explicit count. Unlike comm_send_real_dp_array_2d, this
variant does NOT prefix the message with the dimensions —
caller and receiver agree on the shape via the protocol. The
receiver uses comm_recv_real_dp_array_2d_n (or any of the
_array_n overloads) with the same count.
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 using an explicit
count, no dim-prefix. Pairs with comm_recv_integer_array_2d_n.
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)
Blocking send of a single single-precision real to specified destination
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
Blocking send of a single-precision real array to specified destination
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
Blocking send of a 2D single-precision real array to specified destination
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)
Blocking send of a logical value to specified destination
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
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
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(kind=int32),
intent(in)
::
dim1
integer(kind=int32),
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(kind=int32),
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(kind=int32),
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(kind=int32),
intent(in)
::
length
integer(kind=int64),
intent(out),
pointer
::
baseptr (:)
type(win_t ),
intent(out)
::
win
Derived Types
MPI communicator wrapper type
Read more…
Components
Type
Visibility Attributes
Name
Initial
logical,
private
::
is_valid
=
.false.
Validity flag
type(MPI_Comm),
private
::
m_comm
=
MPI_COMM_NULL
Internal MPI communicator
integer(kind=int32),
private
::
m_rank
=
-1
Cached rank in this communicator
integer(kind=int32),
private
::
m_size
=
-1
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_Comm
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
Wraps MPI_Request 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
type(MPI_Request),
private
::
m_request
=
MPI_REQUEST_NULL
Internal MPI request handle
Type-Bound Procedures
MPI-3 Window type for one-sided communication (RMA)
Read more…
Components
Type
Visibility Attributes
Name
Initial
logical,
private
::
is_valid
=
.false.
type(MPI_Win),
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
type(MPI_Comm)
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Return Value
logical
Returns true if the calling process has rank 0
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Return Value
logical
Returns the 0-indexed rank of the calling process
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Return Value
integer
Partitions the communicator into disjoint subgroups based on color.
Processes with the same color end up in the same new communicator.
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
integer,
intent(in)
::
color
Return Value
type(comm_t )
Creates a new communicator containing only processes that share
memory with each other (typically processes on the same node)
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Return Value
type(comm_t )
Internal helper function that wraps an MPI_Comm into a comm_t object
and caches rank and size information
Arguments
Type
Intent Optional Attributes
Name
type(MPI_Comm),
intent(in)
::
mpi_comm_in
Return Value
type(comm_t )
Creates an invalid/null communicator object that can be used
for initialization or to represent absence of a communicator.
Arguments
None
Return Value
type(comm_t )
Create MPI window for RMA operations
Read more…
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=dp),
target
::
base (:)
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
win_size
Return Value
type(win_t )
Create dynamic MPI window
Read more…
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
Return Value
type(win_t )
Creates a new communicator that duplicates MPI_COMM_WORLD.
This is the standard way to obtain a communicator for application use.
Arguments
None
Return Value
type(comm_t )
Returns the number of processes in the communicator
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Return Value
integer
Retrieves the underlying MPI_Request handle
Arguments
Type
Intent Optional Attributes
Name
class(request_t ),
intent(in)
::
this
Return Value
type(MPI_Request)
Checks if the request is null/invalid
Arguments
Type
Intent Optional Attributes
Name
class(request_t ),
intent(in)
::
this
Return Value
logical
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
Return Value
type(MPI_Win)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
Return Value
logical
Subroutines
Aborts all processes in the communicator with the given error code
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 double-precision array
with explicit count — no dim-prefix protocol. Pairs with
comm_recv_real_dp_array_2d_n on the receive side. The
caller must keep data valid until wait/waitall on the
returned request completes.
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 receive of a contiguous 2D double-precision array
with explicit count. No dim-prefix protocol — the caller
has already shaped data. Mirrors comm_send_real_dp_array_2d_n.
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 using an explicit
count, no dim-prefix. Pairs with comm_recv_integer_array_2d_n.
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 double-precision array using
an explicit count. Unlike comm_send_real_dp_array_2d, this
variant does NOT prefix the message with the dimensions —
caller and receiver agree on the shape via the protocol. The
receiver uses comm_recv_real_dp_array_2d_n (or any of the
_array_n overloads) with the same count.
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
Retrieves the name of the processor
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
type(MPI_Op),
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
type(MPI_Op),
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
type(MPI_Op),
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
type(MPI_Op),
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(inout)
::
buffer
type(MPI_Op),
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
type(MPI_Op),
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
real(kind=sp),
intent(inout)
::
buffer
type(MPI_Op),
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
type(MPI_Op),
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
type(MPI_Op),
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
type(MPI_Op),
intent(in),
optional
::
op
Gathers integer values from all processes in the communicator
Arguments
Type
Intent Optional Attributes
Name
type(comm_t ),
intent(in)
::
comm
integer(kind=int32),
intent(in)
::
sendbuf
integer(kind=int32),
intent(out)
::
recvbuf (:)
Blocks until all processes in the communicator have called barrier
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(in)
::
this
Broadcasts integer data from root process to all processes in communicator
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
Frees the MPI communicator resources
Arguments
Type
Intent Optional Attributes
Name
class(comm_t ),
intent(inout)
::
this
Non-blocking probe for incoming messages
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
Initiates a non-blocking receive operation. The request must be
waited on using wait() or test() before the buffer can be used.
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. The request must be
waited on using wait() or test() before the buffer can be used.
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. The request must be
waited on using wait() or test() before the buffer can be used.
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. The request must be
waited on using wait() or test() before the buffer can be used.
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
Non-blocking receive of a logical value
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
Non-blocking receive of a 2D allocatable double precision real array
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
Non-blocking receive of a single single-precision real
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
Non-blocking receive of a single-precision real array
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
Non-blocking receive of a 2D allocatable single-precision real array
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
Initiates a non-blocking send operation. The request must be
waited on using wait() or test() before the buffer can be reused.
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. The request must be
waited on using wait() or test() before the buffer can be reused.
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. The request must be
waited on using wait() or test() before the buffer can be reused.
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. The request must be
waited on using wait() or test() before the buffer can be reused.
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
Non-blocking send of a logical value
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
Initiates a non-blocking send operation. The request must be
waited on using wait() or test() before the buffer can be reused.
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
Initiates a non-blocking send operation. The request must be
waited on using wait() or test() before the buffer can be reused.
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 2D double precision real array
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 single single-precision real
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
Non-blocking send of a single-precision real array
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
Non-blocking send of a 2D single-precision real array
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. Returns once a message
matching (source, tag) is queued at the receiver — caller
reads status%MPI_SOURCE and status%MPI_TAG to decide who’s
talking and what kind of message it is, then issues the
matching recv. Use MPI_ANY_SOURCE / MPI_ANY_TAG to
dispatch on whichever rank speaks first.
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
Blocking receive of an integer from specified source.
Use MPI_ANY_SOURCE or MPI_ANY_TAG for wildcards.
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.
Use MPI_ANY_SOURCE or MPI_ANY_TAG for wildcards.
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.
Array is automatically allocated to the correct size.
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
Blocking receive of an integer array from specified source.
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
Blocking receive of a logical value from specified source
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
Blocking receive of a single double precision real from specified source.
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
Blocking receive of a double precision real array from specified source.
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
Blocking receive of a 2D allocatable double precision real array
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
Blocking receive of a single single-precision real from specified source.
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
Blocking receive of a single-precision real array from specified source.
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
Blocking receive of a 2D allocatable single-precision real array
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
Blocking send of an integer to specified destination
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
Blocking send of an integer array to specified destination
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 a logical value to specified destination
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
Blocking send of a single double precision real to specified destination
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 double precision real array to specified destination
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 2D double precision real array to specified destination
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 single single-precision real to specified destination
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
Blocking send of a single-precision real array to specified destination
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
Blocking send of a 2D single-precision real array to specified destination
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(kind=int32),
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(kind=int32),
intent(in)
::
dim1
integer(kind=int32),
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(kind=int32),
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(kind=int32),
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(kind=int32),
intent(in)
::
length
real(kind=sp),
intent(out),
pointer
::
baseptr (:)
type(win_t ),
intent(out)
::
win
Frees the MPI request resources
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
Blocks until the operation associated with the request completes.
The request is freed after completion.
Arguments
Type
Intent Optional Attributes
Name
type(request_t ),
intent(inout)
::
request
type(MPI_Status),
intent(out),
optional
::
status
Blocks until all operations in the request array complete.
All requests are freed after completion.
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(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
intent(in)
::
count
real(kind=dp),
intent(in)
::
buffer (*)
type(MPI_Op),
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
buffer (*)
type(MPI_Op),
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
intent(in)
::
count
integer(kind=int64),
intent(in)
::
buffer (*)
type(MPI_Op),
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
intent(in)
::
count
real(kind=sp),
intent(in)
::
buffer (*)
type(MPI_Op),
intent(in),
optional
::
op
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in),
optional
::
assert
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
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(kind=int32),
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(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
intent(in)
::
count
real(kind=dp),
intent(out)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(out)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
intent(in)
::
count
integer(kind=int64),
intent(out)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
intent(in)
::
count
real(kind=sp),
intent(out)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in)
::
rank
integer(kind=int32),
intent(in),
optional
::
lock_type
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in),
optional
::
assert
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
intent(in)
::
count
real(kind=dp),
intent(in)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
intent(in)
::
count
integer(kind=int32),
intent(in)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
intent(in)
::
count
integer(kind=int64),
intent(in)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
intent(in)
::
count
real(kind=sp),
intent(in)
::
buffer (*)
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this
integer(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
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(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
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(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
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(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
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(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
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(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
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(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
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(kind=int32),
intent(in)
::
target_rank
integer(kind=MPI_ADDRESS_KIND),
intent(in)
::
target_disp
integer(kind=int32),
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(kind=int32),
intent(in)
::
rank
Arguments
Type
Intent Optional Attributes
Name
class(win_t ),
intent(in)
::
this