diff --git a/include/mpi.h.in b/include/mpi.h.in index 9292451e61..7d52d14c78 100644 --- a/include/mpi.h.in +++ b/include/mpi.h.in @@ -214,6 +214,7 @@ typedef int (MPI_Grequest_cancel_function)(void *, int); * More constants */ #define MPI_BOTTOM ((void *) 0) /* base reference address */ +#define MPI_IN_PLACE ((void *) 1) /* in place buffer */ #define MPI_BSEND_OVERHEAD 128 /* size of bsend header + ptr */ #define MPI_MAX_INFO_KEY 36 /* max info key length */ #define MPI_MAX_INFO_VAL 256 /* max info value length */ diff --git a/include/mpif.h.in b/include/mpif.h.in index af8f32aa24..4f02b4ee9c 100644 --- a/include/mpif.h.in +++ b/include/mpif.h.in @@ -133,10 +133,11 @@ ! ! global variables ! - double complex MPI_BOTTOM, MPI_ARGV_NULL + double complex MPI_BOTTOM, MPI_IN_PLACE, MPI_ARGV_NULL double complex MPI_ARGVS_NULL, MPI_ERRCODES_IGNORE double complex MPI_STATUS_IGNORE, MPI_STATUSES_IGNORE common/mpi_fortran_bottom/MPI_BOTTOM + common/mpi_fortran_in_place/MPI_IN_PLACE common/mpi_fortran_argv_null/MPI_ARGV_NULL common/mpi_fortran_argvs_null/MPI_ARGVS_NULL common/mpi_fortran_errcodes_ignore/MPI_ERRCODES_IGNORE diff --git a/ompi/mpi/f77/constants.h b/ompi/mpi/f77/constants.h index c62c73e431..de9c045b95 100644 --- a/ompi/mpi/f77/constants.h +++ b/ompi/mpi/f77/constants.h @@ -87,6 +87,8 @@ OMPI_DECLSPEC extern ompi_fortran_common_t double_u DECL(MPI_FORTRAN_BOTTOM, mpi_fortran_bottom, mpi_fortran_bottom_, mpi_fortran_bottom__); +DECL(MPI_FORTRAN_IN_PLACE, mpi_fortran_in_place, + mpi_fortran_in_place_, mpi_fortran_in_place__); DECL(MPI_FORTRAN_ARGV_NULL, mpi_fortran_argv_null, mpi_fortran_argv_null_, mpi_fortran_argv_null__); DECL(MPI_FORTRAN_ARGVS_NULL, mpi_fortran_argvs_null, @@ -108,6 +110,11 @@ DECL(MPI_FORTRAN_STATUSES_IGNORE, mpi_fortran_statuses_ignore, addr == (void*) &mpi_fortran_bottom || \ addr == (void*) &mpi_fortran_bottom_ || \ addr == (void*) &mpi_fortran_bottom__) +#define OMPI_IS_FORTRAN_IN_PLACE(addr) \ + (addr == (void*) &MPI_FORTRAN_IN_PLACE || \ + addr == (void*) &mpi_fortran_in_place || \ + addr == (void*) &mpi_fortran_in_place_ || \ + addr == (void*) &mpi_fortran_in_place__) #define OMPI_IS_FORTRAN_ARGV_NULL(addr) \ (addr == (void*) &MPI_FORTRAN_ARGV_NULL || \ addr == (void*) &mpi_fortran_argv_null || \ @@ -137,6 +144,8 @@ DECL(MPI_FORTRAN_STATUSES_IGNORE, mpi_fortran_statuses_ignore, #elif OMPI_F77_CAPS #define OMPI_IS_FORTRAN_BOTTOM(addr) \ (addr == (void*) &MPI_FORTRAN_BOTTOM) +#define OMPI_IS_FORTRAN_IN_PLACE(addr) \ + (addr == (void*) &MPI_FORTRAN_IN_PLACE) #define OMPI_IS_FORTRAN_ARGV_NULL(addr) \ (addr == (void*) &MPI_FORTRAN_ARGV_NULL) #define OMPI_IS_FORTRAN_ARGVS_NULL(addr) \ @@ -151,6 +160,8 @@ DECL(MPI_FORTRAN_STATUSES_IGNORE, mpi_fortran_statuses_ignore, #elif OMPI_F77_PLAIN #define OMPI_IS_FORTRAN_BOTTOM(addr) \ (addr == (void*) &mpi_fortran_bottom) +#define OMPI_IS_FORTRAN_IN_PLACE(addr) \ + (addr == (void*) &mpi_fortran_in_place) #define OMPI_IS_FORTRAN_ARGV_NULL(addr) \ (addr == (void*) &mpi_fortran_argv_null) #define OMPI_IS_FORTRAN_ARGVS_NULL(addr) \ @@ -165,6 +176,8 @@ DECL(MPI_FORTRAN_STATUSES_IGNORE, mpi_fortran_statuses_ignore, #elif OMPI_F77_SINGLE_UNDERSCORE #define OMPI_IS_FORTRAN_BOTTOM(addr) \ (addr == (void*) &mpi_fortran_bottom) +#define OMPI_IS_FORTRAN_IN_PLACE(addr) \ + (addr == (void*) &mpi_fortran_in_place) #define OMPI_IS_FORTRAN_ARGV_NULL(addr) \ (addr == (void*) &mpi_fortran_argv_null) #define OMPI_IS_FORTRAN_ARGVS_NULL(addr) \ @@ -179,6 +192,8 @@ DECL(MPI_FORTRAN_STATUSES_IGNORE, mpi_fortran_statuses_ignore, #else #define OMPI_IS_FORTRAN_BOTTOM(addr) \ (addr == (void*) &mpi_fortran_bottom) +#define OMPI_IS_FORTRAN_IN_PLACE(addr) \ + (addr == (void*) &mpi_fortran_in_place) #define OMPI_IS_FORTRAN_ARGV_NULL(addr) \ (addr == (void*) &mpi_fortran_argv_null) #define OMPI_IS_FORTRAN_ARGVS_NULL(addr) \ diff --git a/ompi/mpi/f77/constants_f.c b/ompi/mpi/f77/constants_f.c index 337747d2b7..86f44330b8 100644 --- a/ompi/mpi/f77/constants_f.c +++ b/ompi/mpi/f77/constants_f.c @@ -27,6 +27,8 @@ ompi_fortran_common_t double_u INST(MPI_FORTRAN_BOTTOM, mpi_fortran_bottom, mpi_fortran_bottom_, mpi_fortran_bottom__); +INST(MPI_FORTRAN_IN_PLACE, mpi_fortran_in_place, + mpi_fortran_in_place_, mpi_fortran_in_place__); INST(MPI_FORTRAN_ARGV_NULL, mpi_fortran_argv_null, mpi_fortran_argv_null_, mpi_fortran_argv_null__); INST(MPI_FORTRAN_ARGVS_NULL, mpi_fortran_argvs_null,