MPI_IRECV, MPI_Irecv Purpose Performs a nonblocking receive operation. C synopsis #include int MPI_Irecv(void* buf,int count,MPI_Datatype datatype, int source,int tag,MPI_Comm comm,MPI_Request *request); C++ synopsis #include mpi.h MPI::Request MPI::Comm::Irecv(void *buf, int count, const MPI::Datatype& datatype, int source, int tag) const; FORTRAN synopsis include 'mpif.h' or use mpi MPI_IRECV(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE,INTEGER SOURCE, INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) Description This subroutine starts a nonblocking receive and returns a handle to a request object. You can later use the request to query the status of the communication or wait for it to complete. A nonblocking receive call means the system may start writing data into the receive buffer. Once the nonblocking receive operation is called, do not access any part of the receive buffer until the receive is complete. Parameters buf is the initial address of the receive buffer (choice) (OUT) count is the number of elements in the receive buffer (integer) (IN) datatype is the datatype of each receive buffer element (handle) (IN) source is the rank of source or MPI_ANY_SOURCE (integer) (IN) tag is the message tag or MPI_ANY_TAG (positive integer) (IN) comm is the communicator (handle) (IN) request is the communication request (handle) (OUT) IERROR is the FORTRAN return code. It is always the last argument. Notes The message received must be less than or equal to the length of the receive buffer. If all incoming messages do not fit without truncation, an overflow error occurs. If a message arrives that is shorter than the receive buffer, then only those locations corresponding to the actual message are changed. If an overflow occurs, it is flagged at the MPI_WAIT or MPI_TEST. See MPI_RECV for more information. Errors Invalid count count < 0 Invalid datatype Type not committed Invalid source source < 0 or source > = groupsize Invalid tag tag < 0 Invalid comm MPI not initialized MPI already finalized Related information MPI_RECV MPI_RECV_INIT MPI_WAIT