Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : fix dpor
[simgrid.git] / include / smpi / smpif.h.in
index 156c9ea..c407af8 100644 (file)
@@ -7,11 +7,41 @@
 #ifndef SMPIF_H
 #define SMPIF_H
 
+#cmakedefine SMPI_F2C @SMPI_F2C@
+
+#ifdef SMPI_F2C
+
 #include <xbt/misc.h>
+#include <smpi/smpi.h>
+#include <f2c.h>
+
+XBT_PUBLIC_DATA(__thread int) smpi_current_rank;
 
 XBT_PUBLIC(int) smpi_process_argc(void);
-XBT_PUBLIC(int) smpi_process_getarg(int* index, char* dst, size_t len);
-XBT_PUBLIC(int) smpi_global_rank(void);
+XBT_PUBLIC(int) smpi_process_getarg(integer* index, char* dst, ftnlen len);
 XBT_PUBLIC(int) smpi_global_size(void);
 
+#define smpi_sample_local__(pi,pt) \
+   { \
+      if(smpi_sample_1(0, __FILE__, __LINE__, *pi, *pt)) { \
+         smpi_sample_3(0, __FILE__, __LINE__); \
+      } \
+      if(!smpi_sample_2(0, __FILE__, __LINE__)) { \
+         continue; \
+      } \
+   }
+
+#define smpi_sample_global__(pi,pt) \
+   { \
+      if(smpi_sample_1(1, __FILE__, __LINE__, *pi, *pt)) { \
+         smpi_sample_3(1, __FILE__, __LINE__); \
+      } \
+      if(!smpi_sample_2(1, __FILE__, __LINE__)) { \
+         continue; \
+      } \
+   }
+
+
 #endif
+
+#endif // SMPI_F2C