source: CPL/oasis3/trunk/src/lib/mpp_io/include/os.h @ 1677

Last change on this file since 1677 was 1677, checked in by aclsce, 12 years ago

Imported oasis3 (tag ipslcm5a) from cvs server to svn server (igcmg project).

File size: 1.8 KB
Line 
1#ifdef __sgi
2#ifdef _COMPILER_VERSION
3!the MIPSPro compiler defines _COMPILER_VERSION
4#define sgi_mipspro
5#else
6#define sgi_generic
7#endif
8#endif
9
10#if defined(sgi_mipspro)
11#define SGICRAY
12#endif
13
14#if defined(sgi_mipspro)
15#define SGICRAY_MPP
16#endif
17
18!most compilers support Cray pointers
19!if you find a compiler that doesn't, #undef this inside a suitable #ifdef
20#define use_CRI_pointers
21
22#if defined __SX || defined __SXdbl4
23#undef use_CRI_pointers
24#else
25#define use_CRI_pointers
26#endif
27
28#ifdef __SXdbl4
29#define no_4byte_reals
30#define no_4byte_cmplx
31#define NF_GET_VAR_REAL nf_get_var_double
32#define NF_GET_VARA_REAL nf_get_vara_double
33#define NF_GET_ATT_REAL nf_get_att_double
34#endif
35
36!Modifications for Oasis - next lines commented and replaced
37!values of kind: double and long are 8-byte, float and int are 4-byte
38!#if defined(SGICRAY)
39!#define DOUBLE_KIND 8
40!#define FLOAT_KIND 4
41!#define LONG_KIND 8
42!#define INT_KIND 4
43!#define SHORT_KIND 2
44!#define POINTER_KIND 4
45!#else
46!!these might be different on non-SGICRAY, I believe
47!#define DOUBLE_KIND 8
48!#define FLOAT_KIND 4
49!#define LONG_KIND 8
50!#define INT_KIND 4
51!#define SHORT_KIND 2
52!#define POINTER_KIND 8
53!#endif
54!
55!#ifdef sgi_generic
56!!this is for the Edinburgh n32/o32 compiler, which won't accept 8-byte ints at! any price
57!#define no_8byte_integers
58!#define LONG_KIND 4
59!#ENDIF
60!
61#define DOUBLE_KIND ip_double_p
62#define FLOAT_KIND ip_single_p
63#define LONG_KIND ip_i8_p
64#define INT_KIND ip_i4_p
65#define SHORT_KIND ip_i2_p
66
67#ifdef __crayx1
68#undef use_CRI_pointers
69
70#define no_4byte_reals
71#define no_4byte_cmplx
72#define  __no_8byte_integers
73#define NF_GET_VAR_REAL nf_get_var_double
74#define NF_GET_VARA_REAL nf_get_vara_double
75#define NF_GET_ATT_REAL nf_get_att_double
76
77!
78#define DOUBLE_KIND ip_double_p
79#define FLOAT_KIND ip_single_p
80#define LONG_KIND ip_i8_p
81#define INT_KIND ip_i4_p
82#define SHORT_KIND ip_i4_p
83#endif
Note: See TracBrowser for help on using the repository browser.