source: XIOS/dev/branch_openmp/extern/src_ep_dev/ep_type.hpp @ 2146

Last change on this file since 2146 was 1642, checked in by yushan, 5 years ago

dev on ADA. add flag switch _usingEP/_usingMPI

File size: 1.4 KB
RevLine 
[1134]1#ifndef EP_TYPE_HPP_INCLUDED
2#define EP_TYPE_HPP_INCLUDED
3
4
5#include <iostream>
6#include <stdlib.h>
7#include <stdio.h>
8#include <list>
9#include <map>
10#include <omp.h>
11#include <vector>
12#include <numeric>
13#include <bitset>
14#include <algorithm>
15#include <assert.h>
16#include <math.h>
[1287]17#include <string.h>
[1134]18
19#ifdef _Debug
20#define Debug(x) std::cout << x << std::endl
21#else
22#define Debug(x)
23#endif
24
[1520]25#ifdef _Memory_check
26#define memcheck(x) std::cout << x << std::endl
27#else
28#define memcheck(x)
29#endif
[1134]30
[1295]31
[1520]32#define BUFFER_SIZE 10000
[1134]33
[1520]34#include "ep_status.hpp"
35#include "ep_request.hpp"
36#include "ep_info.hpp"
37#include "ep_message.hpp"
38#include "ep_barrier.hpp"
39#include "ep_comm.hpp"
40#include "ep_window.hpp"
[1134]41
42
43
44namespace ep_lib
45{
46
47  class ep_communicator;
48  class ep_intercomm;
49
50
51  class MPI_Aint
52  {
53    public:
54
[1365]55    void* mpi_aint;
[1134]56
57    MPI_Aint() {}
[1365]58    MPI_Aint(void* aint);
[1520]59    MPI_Aint(int aint);
60    MPI_Aint operator=(int a);
[1134]61  };
62
63  class MPI_Fint
64  {
65    public:
[1520]66 
[1369]67    void* mpi_fint;
[1520]68   
[1134]69    MPI_Fint() {}
[1642]70    MPI_Fint(void* fint) {mpi_fint = fint;};
[1520]71                                 
[1134]72  };
[1520]73 
74 
[1134]75
76
77  static MPI_Comm *passage;
78
79  static int TAG = 40000;
80
81  static std::list<std::pair<std::pair<int, int>, MPI_Comm * > > tag_list;
82
[1520]83  static std::list< std::pair<std::pair<int, int> , std::pair<MPI_Comm * , std::pair<int, int> > > > intercomm_list;
84
[1134]85  static std::map<std::pair<int, int>, MPI_Comm >  fc_comm_map;
86
[1539]87 
[1134]88
[1539]89
[1134]90}
91
92
93
94#endif // EP_TYPE_HPP_INCLUDED
[1196]95
Note: See TracBrowser for help on using the repository browser.