MPI_RECV_INIT, MPI_Recv_init Purpose Creates a persistent receive request. C synopsis #include int MPI_Recv_init(void* buf,int count,MPI_Datatype datatype, int source,int tag,MPI_Comm comm,MPI_Request *request); C++ synopsis #include mpi.h MPI::Prequest MPI::Comm::Recv_init(void* buf, int count, const MPI::Datatype& datatype, int source, int tag) const; FORTRAN synopsis include 'mpif.h' or use mpi MPI_RECV_INIT(CHOICE BUF,INTEGER COUNT,INTEGER DATATYPE, INTEGER SOURCE,INTEGER TAG,INTEGER COMM,INTEGER REQUEST,INTEGER IERROR) Parameters buf is the initial address of the receive buffer (choice) (OUT) count is the number of elements to be received (integer) (IN) datatype is the type of each element (handle) (IN) source is the rank of source or MPI_ANY_SOURCE (integer) (IN) tag is the tag or MPI_ANY_TAG (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. Description This subroutine creates a persistent communication request for a receive operation. A communication started with MPI_RECV_INIT is completed by a call to one of the MPI wait or test operations. The argument buf is marked as OUT because the user gives permission to write to the receive buffer by passing the argument to MPI_RECV_INIT. A persistent communication request is inactive after it is created. No active communication is attached to the request. A send or receive communication using a persistent request is initiated by the function MPI_START. Notes See MPI_RECV for additional 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_IRECV