comm_recv_real_dp_array_2d_n Subroutine

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 IntentOptional 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

Calls

proc~~comm_recv_real_dp_array_2d_n~~CallsGraph proc~comm_recv_real_dp_array_2d_n comm_recv_real_dp_array_2d_n mpi_recv mpi_recv proc~comm_recv_real_dp_array_2d_n->mpi_recv

Called by

proc~~comm_recv_real_dp_array_2d_n~~CalledByGraph proc~comm_recv_real_dp_array_2d_n comm_recv_real_dp_array_2d_n interface~recv recv interface~recv->proc~comm_recv_real_dp_array_2d_n

Variables

Type Visibility Attributes Name Initial
integer(kind=int32), private :: ierr

Source Code

   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`.
      type(comm_t), intent(in)    :: comm
      real(dp), intent(out)   :: data(:, :)
      integer(int32), intent(in)    :: count
      integer(int32), intent(in)    :: source
      integer(int32), intent(in)    :: tag
      type(MPI_Status), intent(out), optional :: status
      integer(int32) :: ierr

      if (present(status)) then
         call MPI_Recv(data, count, MPI_DOUBLE_PRECISION, source, tag, &
                       comm%m_comm, status, ierr)
      else
         call MPI_Recv(data, count, MPI_DOUBLE_PRECISION, source, tag, &
                       comm%m_comm, MPI_STATUS_IGNORE, ierr)
      end if
   end subroutine comm_recv_real_dp_array_2d_n