source: XIOS/trunk/extern/src_netcdf4/ocdatatypes.h @ 409

Last change on this file since 409 was 409, checked in by ymipsl, 11 years ago

Add improved nectdf internal library src

YM

  • Property svn:eol-style set to native
File size: 1.9 KB
Line 
1/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc.
2   See the COPYRIGHT file for more information. */
3
4#ifndef OCDATATYPES_H
5#define OCDATATYPES_H
6
7/* Define some useful info about the supported
8   primitive datatypes*/
9
10#define DCHAR char
11#define DBYTE signed char
12#define DUBYTE unsigned char
13#define DINT16 short
14#define DUINT16 unsigned short
15#define DINT32 int
16#define DUINT32 unsigned int
17#define DINT64 int
18#define DUINT64 unsigned int
19#define DFLOAT32 float
20#define DFLOAT64 double
21
22#define OC_CHAR_MIN     ((char)0x00)
23#define OC_CHAR_MAX     ((char)0xff)
24#define OC_BYTE_MIN     -128
25#define OC_BYTE_MAX     127
26#define OC_UBYTE_MIN    0
27#define OC_UBYTE_MAX    255U
28#define OC_INT16_MIN    -32768
29#define OC_INT16_MAX    32767
30#define OC_UINT16_MIN   0
31#define OC_UINT16_MAX   65535U
32#define OC_INT32_MIN    (-2147483647 - 1)
33#define OC_INT32_MAX    2147483647
34#define OC_UINT32_MIN   0
35#define OC_UINT32_MAX   4294967295U
36#define OC_INT64_MIN    (-9223372036854775807LL-1)
37#define OC_INT64_MAX    (9223372036854775807LL)
38#define OC_UINT64_MIN   0LL
39#define OC_UINT64_MAX   (18446744073709551615ULL)
40#define OC_FLOAT32_MAX  3.402823466E+38F        /* max decimal value of a "float" */
41#define OC_FLOAT32_MIN  (-OC_FLOAT_MAX)
42#define OC_FLOAT64_MAX  1.7976931348623157E+308 /* max decimal value of a double */
43#define OC_FLOAT64_MIN  (-OC_FLOAT64_MAX)
44
45/* Similar to netcdf*/
46#define OC_FILL_CHAR    ((char)0)
47#define OC_FILL_BYTE    ((signed char)-127)
48#define OC_FILL_UBYTE   (255)
49#define OC_FILL_INT16   ((short)-32767)
50#define OC_FILL_UINT16  (65535)
51#define OC_FILL_INT32   (-2147483647L)
52#define OC_FILL_UINT32    (4294967295U)
53#define OC_FILL_INT64   ((long long)-9223372036854775806LL)
54#define OC_FILL_UINT64  ((unsigned long long)18446744073709551614ULL)
55#define OC_FILL_FLOAT32 (9.9692099683868690e+36f) /* near 15 * 2^119 */
56#define OC_FILL_FLOAT64 (9.9692099683868690e+36)
57#define OC_FILL_STRING  ""
58#define OC_FILL_URL  ""
59
60
61#endif /*OCDATATYPES_H*/
Note: See TracBrowser for help on using the repository browser.