source: codes/icosagcm/devel/src/unstructured/unstructured.h90 @ 744

Last change on this file since 744 was 744, checked in by dubos, 6 years ago

devel : make_icosa option for mixed precision

File size: 939 bytes
Line 
1#define DBL REAL(C_DOUBLE)
2#define FLT REAL(C_FLOAT)
3#define TIME DBL
4
5#ifdef CPP_MIXED_PREC
6#define NUM FLT
7#define MPI_NUM MPI_REAL4
8#else
9#define NUM DBL
10#define MPI_NUM MPI_REAL8
11#endif
12
13! NUM and MPI_NUM are used for physical quantities (scalar or array)
14! DBL and MPI_REAL8 are used for variables that always require double precision
15
16#define NUM1(m) NUM, DIMENSION(m)
17#define NUM2(m,n) NUM, DIMENSION(m,n)
18#define NUM3(m,n,p) NUM, DIMENSION(m,n,p)
19#define NUM4(m,n,p,q) NUM, DIMENSION(m,n,p,q)
20#define INDEX INTEGER(C_INT)
21
22#define FIELD_PS      NUM1(primal_num)
23#define FIELD_MASS    NUM2(llm, primal_num)
24#define FIELD_Z       NUM2(llm, dual_num)
25#define FIELD_U       NUM2(llm, edge_num)
26#define FIELD_UL      NUM2(llm+1, edge_num)
27#define FIELD_THETA   NUM3(llm, primal_num, nqdyn)
28#define FIELD_GEOPOT  NUM2(llm+1, primal_num)
29
30#define BINDC_(thename) BIND(C, name=#thename)
31#define BINDC(thename) BINDC_(dynamico_ ## thename)
Note: See TracBrowser for help on using the repository browser.