void ompi_sendrecv_replace_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *sendtag, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr) { int c_ierr; MPI_Datatype c_type = PMPI_Type_f2c(*datatype); MPI_Comm c_comm; MPI_Status c_status; c_comm = PMPI_Comm_f2c (*comm); c_ierr = PMPI_Sendrecv_replace(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count), c_type, OMPI_FINT_2_INT(*dest), OMPI_FINT_2_INT(*sendtag), OMPI_FINT_2_INT(*source), OMPI_FINT_2_INT(*recvtag), c_comm, &c_status); if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); if (MPI_SUCCESS == c_ierr && !OMPI_IS_FORTRAN_STATUS_IGNORE(status)) { PMPI_Status_c2f(&c_status, status); } }
int MPI_Sendrecv_replace(void *buf, int count, MPI_Datatype datatype, int dst, int sendtag, int src, int recvtag, MPI_Comm comm, MPI_Status * status) { return PMPI_Sendrecv_replace(buf, count, datatype, dst, sendtag, src, recvtag, comm, status); }
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) { int err; ALLOCATE_STATUS(newstatus,1) err=PMPI_Sendrecv_replace(buf,count,datatype,dest,sendtag,source,recvtag,comm,newstatus); COPY_STATUS(status,newstatus,1) return err; }
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) { int returnVal; int size1; int typesize2; returnVal = PMPI_Sendrecv_replace( buf, count, datatype, dest, sendtag, source, recvtag, comm, status ); if (dest != MPI_PROC_NULL && returnVal == MPI_SUCCESS) { MPI_Type_size( datatype, &typesize2 ); prof_send( procid_1, dest, sendtag, typesize2*count, "MPI_Sendrecv_replace" ); MPI_Get_count( status, MPI_BYTE, &size1 ); prof_recv( dest, procid_1, recvtag, size1, "MPI_Sendrecv_replace" ); } return returnVal; }