Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
dtd update for new cluster routing options
[simgrid.git] / include / smpi / smpif.h.in
1 /* Copyright (c) 2007-2013. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #ifndef SMPIF_H
8 #define SMPIF_H
9
10 #cmakedefine SMPI_F2C @SMPI_F2C@
11
12 #ifdef SMPI_F2C
13
14 #include <xbt/misc.h>
15 #include <smpi/smpi.h>
16 #include <f2c.h>
17
18 XBT_PUBLIC_DATA(__thread int) smpi_current_rank;
19
20 XBT_PUBLIC(int) smpi_process_argc(void);
21 XBT_PUBLIC(int) smpi_process_getarg(integer* index, char* dst, ftnlen len);
22 XBT_PUBLIC(int) smpi_global_size(void);
23
24 #define smpi_sample_local__(pi,pt) \
25    { \
26       if(smpi_sample_1(0, __FILE__, __LINE__, *pi, *pt)) { \
27          smpi_sample_3(0, __FILE__, __LINE__); \
28       } \
29       if(!smpi_sample_2(0, __FILE__, __LINE__)) { \
30          continue; \
31       } \
32    }
33
34 #define smpi_sample_global__(pi,pt) \
35    { \
36       if(smpi_sample_1(1, __FILE__, __LINE__, *pi, *pt)) { \
37          smpi_sample_3(1, __FILE__, __LINE__); \
38       } \
39       if(!smpi_sample_2(1, __FILE__, __LINE__)) { \
40          continue; \
41       } \
42    }
43
44
45 #endif
46
47 #endif // SMPI_F2C