MPI_BSEND(3) Open MPI MPI_BSEND(3) MPI_Bsend -- Basic send with user-specified buffering. SYNTAX C Syntax #include int MPI_Bsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) Fortran Syntax USE MPI ! or the older form: INCLUDE 'mpif.h' MPI_BSEND(BUF, COUNT,DATATYPE, DEST, TAG, COMM, IERROR) BUF(*) INTEGER COUNT, DATATYPE, DEST, TAG, COMM, IERROR Fortran 2008 Syntax USE mpi_f08 MPI_Bsend(buf, count, datatype, dest, tag, comm, ierror) TYPE(*), DIMENSION(..), INTENT(IN) :: buf INTEGER, INTENT(IN) :: count, dest, tag TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror INPUT PARAMETERS o buf : Initial address of send buffer (choice). o count : Number of entries in send buffer (nonnegative integer). o datatype : Datatype of each send buffer element (handle). o dest : Rank of destination (integer). o tag : Message tag (integer). o comm : Communicator (handle). OUTPUT PARAMETERS o ierror : Fortran only: Error status (integer). DESCRIPTION MPI_Bsend performs a buffered-mode, blocking send. NOTES This send is provided as a convenience function; it allows the user to send messages without worrying about where they are buffered (because the user must have provided buffer space with MPI_Buffer_attach). In deciding how much buffer space to allocate, remember that the buffer space is not available for reuse by subsequent MPI_Bsends unless you are certain that the message has been received (not just that it should have been received). For example, this code does not allocate enough buffer space: MPI_Buffer_attach( b, n*sizeof(double) + MPI_BSEND_OVERHEAD ); for (i=0; i