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.
| 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 |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int32), | private | :: | ierr |
subroutine comm_isend_real_dp_array_2d_n(comm, data, count, dest, tag, 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. type(comm_t), intent(in) :: comm real(dp), intent(in) :: data(:, :) integer(int32), intent(in) :: count integer(int32), intent(in) :: dest integer(int32), intent(in) :: tag type(request_t), intent(out) :: request integer(int32) :: ierr call MPI_Isend(data, count, MPI_DOUBLE_PRECISION, dest, tag, & comm%m_comm, request%m_request, ierr) request%is_valid = .true. end subroutine comm_isend_real_dp_array_2d_n