Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
define types used by fortran even when only C code is used (needed sometimes)
[simgrid.git] / include / smpi / smpi.h
index c148943..3144250 100644 (file)
@@ -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;