Provided by: openmpi-doc_2.1.1-8_all bug

NAME

       MPI_Mprobe - Blocking matched probe for a message.

SYNTAX

C Syntax

       #include <mpi.h>
       int MPI_Mprobe(int source, int tag, MPI_Comm comm,
            MPI_Message *message, MPI_Status *status)

Fortran Syntax

       INCLUDE 'mpif.h'
       MPI_MPROBE(SOURCE, TAG, COMM, MESSAGE, STATUS, IERROR)
            INTEGER   SOURCE, TAG, COMM, MESSAGE
            INTEGER   STATUS(MPI_STATUS_SIZE), IERROR

C++ Syntax

       There is no C++ binding for this function.

INPUT PARAMETERS

       source    Source rank or MPI_ANY_SOURCE (integer).

       tag       Tag value or MPI_ANY_TAG (integer).

       comm      Communicator (handle).

OUTPUT PARAMETERS

       message   Message (handle).

       status    Status object (status).

       IERROR    Fortran only: Error status (integer).

DESCRIPTION

       Like  MPI_Probe  and  MPI_Iprobe, the MPI_Mprobe and MPI_Improbe operations allow incoming
       messages to be queried  without  actually  receiving  them,  except  that  MPI_Mprobe  and
       MPI_Improbe  provide  a  mechanism  to  receive  the  specific  message  that  was matched
       regardless of other intervening probe or receive operations.  This gives  the  application
       an  opportunity to decide how to receive the message, based on the information returned by
       the probe.  In particular, the application may allocate  memory  for  the  receive  buffer
       according to the length of the probed message.

       A  matching  probe with MPI_PROC_NULL as source returns message = MPI_MESSAGE_NO_PROC, and
       the status object returns source = MPI_PROC_NULL, tag = MPI_ANY_TAG, and count = 0.

       When MPI_Mprobe returns (from a non-MPI_PROC_NULL source), the matched message can then be
       received by passing the message handle to the MPI_Mrecv or MPI_Imrecv functions.

NOTE

       This is an MPI-3 function and has no C++ binding.

ERRORS

       Almost all MPI routines return an error value; C routines as the value of the function and
       Fortran routines in the last argument. C++ functions do not return errors.

       Before the error value is returned, the current MPI error handler is called.  By  default,
       this  error  handler aborts the MPI job, except for I/O function errors. The error handler
       may   be   changed   with   MPI_Comm_set_errhandler;   the   predefined   error    handler
       MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not
       guarantee that an MPI program can continue past an error.

SEE ALSO

       MPI_Improbe
       MPI_Probe
       MPI_Iprobe
       MPI_Mrecv
       MPI_Imrecv
       MPI_Cancel