AMPI_Sendrecv: Reject MPI_IN_PLACE where the standard doesn't call for it
authorPhil Miller <mille121@illinois.edu>
Thu, 15 Mar 2012 02:36:18 +0000 (21:36 -0500)
committerPhil Miller <mille121@illinois.edu>
Thu, 15 Mar 2012 03:04:26 +0000 (22:04 -0500)
src/libs/ck-libs/ampi/ampi.C

index 08a134ab3b1869d4aad9d28dcf682021fa770863..62ead3e8165335fc5ed3644ef9eadfcc280f62cc 100644 (file)
@@ -2847,6 +2847,9 @@ int AMPI_Sendrecv(void *sbuf, int scount, int stype, int dest,
   AMPIAPI("AMPI_Sendrecv");
 
 #if CMK_ERROR_CHECKING
+  if (sbuf == MPI_IN_PLACE || rbuf == MPI_IN_PLACE)
+    CmiAbort("MPI_sendrecv does not accept MPI_IN_PLACE; use MPI_Sendrecv_replace instead");
+
   int ret;
   ret = errorCheck(comm, 1, scount, 1, stype, 1, stag, 1, dest, 1, sbuf, 1);
   if(ret != MPI_SUCCESS)