-
Notifications
You must be signed in to change notification settings - Fork 266
/
Copy pathdumplib.h
123 lines (90 loc) · 3.86 KB
/
dumplib.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/*********************************************************************
* Copyright 2018, University Corporation for Atmospheric Research
* See netcdf/COPYRIGHT file for copying and redistribution conditions.
* $Header: /upc/share/CVS/netcdf-3/ncdump/dumplib.h,v 1.28 2009/08/13 21:06:13 russ Exp $
*********************************************************************/
#ifndef _DUMPLIB_H_
#define _DUMPLIB_H_
#include "config.h"
extern char *progname; /* for error messages */
#ifndef NO_NETCDF_2
#define NO_NETCDF_2 /* assert we aren't using any netcdf-2 stuff */
#endif
#ifndef EXIT_FAILURE
#ifndef vms
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
#else
#define EXIT_SUCCESS 1
#define EXIT_FAILURE 0
#endif
#endif
/* more than enough characters needed to represent any single numeric
* primitive value (e.g. int, float, double, long long, ...) using
* printf functions */
#define PRIM_LEN 100
#define FLT_DIGITS 7 /* default sig. digits for float data */
#define DBL_DIGITS 15 /* default sig. digits for double data */
extern int float_precision_specified; /* -p option specified float precision */
extern int double_precision_specified; /* -p option specified double precision */
extern char float_var_fmt[];
extern char double_var_fmt[];
extern char float_att_fmt[];
extern char float_attx_fmt[];
extern char double_att_fmt[];
/* Display for netCDF-4 and HDF5 string values representing NULL
* pointers rather than empty strings. HDF5 distinguishes these two
* kinds of string values so NULL pointers can be used as fill values
* for lists of strings that might include empty strings. */
#define NIL_STRING "NIL"
#ifdef __cplusplus
extern "C" {
#endif
/* In case different formats specified with -d option, set them here. */
extern void set_formats ( int flt_digs, int dbl_digs );
/* Determine print format to use for each value for this variable. */
const char * get_fmt ( int ncid, int varid, nc_type typeid );
/* Add type info to type list */
extern void typeadd ( nctype_t *typep );
/* From type id, get full type info (in current typlelist context) */
extern nctype_t *get_typeinfo ( int typeid );
/* From type id, get type name */
extern void get_type_name(int ncid, nc_type type, char *name);
/* set tostring member function */
extern void set_tostring_func ( ncvar_t *varp);
/* helper function for output of opaque attributes */
extern int ncopaque_val_as_hex ( size_t size, char *buf, const void *valp );
/* Initialize list of types, only need primitive types for netCDF-3 */
extern void init_types ( int ncid );
/* Deallocate type list */
/* extern void xfree_typeinfo ( ); */
/* Test if variable is a coordinate variable */
extern int iscoordvar ( int ncid, int varid );
/* Test if user-defined type */
extern int is_user_defined_type ( nc_type type );
/* Initialize global constants used in slightly fuzzy float comparisons */
extern void init_epsilons ( void );
/* Initialize string buffer */
safebuf_t *sbuf_new( void );
/* Copy string s2 to buffer in sbuf, growing if necessary */
void sbuf_cpy(safebuf_t *sbuf, const char *s2);
/* Concatenate string s2 to end of buffer in sbuf, growing if necessary */
void sbuf_cat(safebuf_t *sbuf, const char *s2);
/* Concatenate sbuf s2 to end of sbuf s1, growing if necessary */
void sbuf_catb(safebuf_t *s1, const safebuf_t *s2);
/* Return length of the string in sbuf */
int sbuf_len(const safebuf_t *sbuf);
/* Return the C string inside an sbuf */
char *sbuf_str(const safebuf_t *sbuf);
/* Free string buffer */
void sbuf_free(safebuf_t *sbuf);
/* Print simple type name symbol or as absolute path, if necessary.
* Escape any special chars. */
void print_type_name(int locid, int typeid);
int nctime_val_tostring(const ncvar_t *varp, safebuf_t *sfbf, const void *valp);
/* Return true if dimid is an unlimited dimension */
extern bool_t is_unlim_dim(int ncid, int dimid);
#ifdef __cplusplus
}
#endif
#endif /*_DUMPLIB_H_ */