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

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

devel/unstructured : select double or single precision for physical quantities

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