From a674f9425a359dc41dc6d26ac8377dbc64560f3c Mon Sep 17 00:00:00 2001 From: Augustin Degomme Date: Mon, 7 Jul 2014 15:51:34 +0200 Subject: [PATCH] define types used by fortran even when only C code is used (needed sometimes) Conflicts: include/smpi/smpi.h --- include/smpi/smpi.h | 53 ++++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/include/smpi/smpi.h b/include/smpi/smpi.h index c148943c62..3144250b76 100644 --- a/include/smpi/smpi.h +++ b/include/smpi/smpi.h @@ -100,28 +100,6 @@ SG_BEGIN_DECL() #define MPI_CXX_DOUBLE_COMPLEX MPI_DATATYPE_NULL #define MPI_CXX_LONG_DOUBLE_COMPLEX MPI_DATATYPE_NULL -#define MPI_REAL4 MPI_DATATYPE_NULL -#define MPI_REAL8 MPI_DATATYPE_NULL -#define MPI_REAL16 MPI_DATATYPE_NULL -#define MPI_COMPLEX8 MPI_DATATYPE_NULL -#define MPI_COMPLEX16 MPI_DATATYPE_NULL -#define MPI_COMPLEX32 MPI_DATATYPE_NULL -#define MPI_INTEGER1 MPI_DATATYPE_NULL -#define MPI_INTEGER2 MPI_DATATYPE_NULL -#define MPI_INTEGER4 MPI_DATATYPE_NULL -#define MPI_INTEGER8 MPI_DATATYPE_NULL -#define MPI_COMPLEX MPI_DATATYPE_NULL -#define MPI_DOUBLE_COMPLEX MPI_DATATYPE_NULL -#define MPI_2DOUBLE_PRECISION MPI_DATATYPE_NULL -#define MPI_REAL MPI_DATATYPE_NULL -#define MPI_LOGICAL MPI_DATATYPE_NULL -#define MPI_DOUBLE_PRECISION MPI_DOUBLE -#if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__ia64__) -#define MPI_INTEGER MPI_INT -#else -#define MPI_INTEGER MPI_LONG -#endif - #define MPI_DISTRIBUTE_BLOCK 0 #define MPI_DISTRIBUTE_NONE 1 #define MPI_DISTRIBUTE_CYCLIC 2 @@ -251,6 +229,37 @@ XBT_PUBLIC_DATA(MPI_Datatype) MPI_2DOUBLE; #define MPI_Count int #define MPI_COUNT MPI_INT +//defines for fortran compatibility +#if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__ia64__) + #define MPI_INTEGER MPI_INT + #define MPI_2INTEGER MPI_2INT + #define MPI_LOGICAL MPI_INT +#else + #define MPI_INTEGER MPI_LONG + #define MPI_2INTEGER MPI_2LONG + #define MPI_LOGICAL MPI_LONG +#endif +#define MPI_INTEGER1 MPI_INT +#define MPI_INTEGER2 MPI_INT16_T +#define MPI_INTEGER4 MPI_INT32_T +#define MPI_INTEGER8 MPI_INT64_T +#define MPI_REAL MPI_FLOAT +#define MPI_REAL4 MPI_FLOAT +#define MPI_REAL8 MPI_DOUBLE +#define MPI_REAL16 MPI_DOUBLE +#define MPI_COMPLEX MPI_C_FLOAT_COMPLEX +#define MPI_DOUBLE_COMPLEX MPI_C_DOUBLE_COMPLEX +#define MPI_LOGICAL1 MPI_UINT8_T +#define MPI_LOGICAL2 MPI_UINT16_T +#define MPI_LOGICAL4 MPI_UINT32_T +#define MPI_LOGICAL8 MPI_UINT64_T +#define MPI_2REAL MPI_2FLOAT +#define MPI_2DOUBLE_PRECISION MPI_2DOUBLE +#define MPI_COMPLEX8 MPI_DATATYPE_NULL +#define MPI_COMPLEX16 MPI_DATATYPE_NULL +#define MPI_COMPLEX32 MPI_DATATYPE_NULL + + typedef void MPI_User_function(void *invec, void *inoutvec, int *len, MPI_Datatype * datatype); struct s_smpi_mpi_op; -- 2.20.1