/*D
   MPI_Sendrecv_replace - Sends and receives using a single buffer

Synopsis:
.vb
int MPI_Sendrecv_replace(void *buf, int count, MPI_Datatype datatype, int dest,
                         int sendtag, int source, int recvtag, MPI_Comm comm,
                         MPI_Status *status)
.ve
.vb
int MPI_Sendrecv_replace_c(void *buf, MPI_Count count, MPI_Datatype datatype,
                           int dest, int sendtag, int source, int recvtag,
                           MPI_Comm comm, MPI_Status *status)
.ve

Input Parameters:
+ count - number of elements in send and receive buffer (non-negative integer)
. datatype - type of elements in send and receive buffer (handle)
. dest - rank of destination (integer)
. sendtag - send message tag (integer)
. source - rank of source or MPI_ANY_SOURCE (integer)
. recvtag - receive message tag or MPI_ANY_TAG (integer)
- comm - communicator (handle)

Input/Output Parameters:
. buf - initial address of send and receive buffer (choice)

Output Parameters:
. status - status object (Status)

.N ThreadSafe

.N Fortran

.N Errors
.N MPI_SUCCESS
.N MPI_ERR_ARG
.N MPI_ERR_BUFFER
.N MPI_ERR_COMM
.N MPI_ERR_COUNT
.N MPI_ERR_RANK
.N MPI_ERR_TAG
.N MPI_ERR_TYPE
.N MPI_ERR_OTHER

D*/

