1 /********************************************************************* 2 * Copyright 2010, UCAR/Unidata. See netcdf/COPYRIGHT file for copying 3 * and redistribution conditions. 4 * 5 * This header file contains the prototypes for the netCDF-4 versions 6 * of all the netCDF functions. 7 *********************************************************************/ 8 9 #ifndef _NC4DISPATCH_H 10 #define _NC4DISPATCH_H 11 12 #include "config.h" 13 #include <stddef.h> /* size_t, ptrdiff_t */ 14 #include <errno.h> /* netcdf functions sometimes return system errors */ 15 #include "ncdispatch.h" 16 17 #if defined(__cplusplus) 18 extern "C" { 19 #endif 20 21 #define NCLOGLEVELENV "NETCDF_LOG_LEVEL" 22 23 EXTERNL int 24 NC4_create(const char *path, int cmode, 25 size_t initialsz, int basepe, size_t *chunksizehintp, 26 void* parameters, NC_Dispatch*, NC*); 27 28 EXTERNL int 29 NC4_open(const char *path, int mode, 30 int basepe, size_t *chunksizehintp, 31 void* parameters, NC_Dispatch*, NC*); 32 33 EXTERNL int 34 NC4_redef(int ncid); 35 36 EXTERNL int 37 NC4__enddef(int ncid, size_t h_minfree, size_t v_align, 38 size_t v_minfree, size_t r_align); 39 40 EXTERNL int 41 NC4_sync(int ncid); 42 43 EXTERNL int 44 NC4_abort(int ncid); 45 46 EXTERNL int 47 NC4_close(int ncid,void*); 48 49 EXTERNL int 50 NC4_set_fill(int ncid, int fillmode, int *old_modep); 51 52 EXTERNL int 53 NC4_set_base_pe(int ncid, int pe); 54 55 EXTERNL int 56 NC4_inq_base_pe(int ncid, int *pe); 57 58 EXTERNL int 59 NC4_inq_format(int ncid, int *formatp); 60 61 EXTERNL int 62 NC4_inq_format_extended(int ncid, int *formatp, int *modep); 63 64 EXTERNL int 65 NC4_inq(int ncid, int *ndimsp, int *nvarsp, int *nattsp, int *unlimdimidp); 66 67 EXTERNL int 68 NC4_inq_type(int, nc_type, char *, size_t *); 69 70 /* Begin _dim */ 71 72 EXTERNL int 73 NC4_def_dim(int ncid, const char *name, size_t len, int *idp); 74 75 EXTERNL int 76 NC4_inq_dimid(int ncid, const char *name, int *idp); 77 78 EXTERNL int 79 NC4_inq_dim(int ncid, int dimid, char *name, size_t *lenp); 80 81 EXTERNL int 82 NC4_inq_unlimdim(int ncid, int *unlimdimidp); 83 84 EXTERNL int 85 NC4_rename_dim(int ncid, int dimid, const char *name); 86 87 /* End _dim */ 88 /* Begin _att */ 89 90 EXTERNL int 91 NC4_inq_att(int ncid, int varid, const char *name, 92 nc_type *xtypep, size_t *lenp); 93 94 EXTERNL int 95 NC4_inq_attid(int ncid, int varid, const char *name, int *idp); 96 97 EXTERNL int 98 NC4_inq_attname(int ncid, int varid, int attnum, char *name); 99 100 EXTERNL int 101 NC4_rename_att(int ncid, int varid, const char *name, const char *newname); 102 103 EXTERNL int 104 NC4_del_att(int ncid, int varid, const char*); 105 106 /* End _att */ 107 /* Begin {put,get}_att */ 108 109 EXTERNL int 110 NC4_get_att(int ncid, int varid, const char *name, void *value, nc_type); 111 112 EXTERNL int 113 NC4_put_att(int ncid, int varid, const char *name, nc_type datatype, 114 size_t len, const void *value, nc_type); 115 116 /* End {put,get}_att */ 117 /* Begin _var */ 118 119 EXTERNL int 120 NC4_def_var(int ncid, const char *name, 121 nc_type xtype, int ndims, const int *dimidsp, int *varidp); 122 123 EXTERNL int 124 NC4_inq_var_all(int ncid, int varid, char *name, nc_type *xtypep, 125 int *ndimsp, int *dimidsp, int *nattsp, 126 int *shufflep, int *deflatep, int *deflate_levelp, 127 int *fletcher32p, int *contiguousp, size_t *chunksizesp, 128 int *no_fill, void *fill_valuep, int *endiannessp, 129 unsigned int* idp, size_t* nparamsp, unsigned int* params 130 ); 131 132 EXTERNL int 133 NC4_inq_varid(int ncid, const char *name, int *varidp); 134 135 EXTERNL int 136 NC4_rename_var(int ncid, int varid, const char *name); 137 138 EXTERNL int 139 NC4_put_vara(int ncid, int varid, 140 const size_t *start, const size_t *count, 141 const void *value, nc_type); 142 143 EXTERNL int 144 NC4_get_vara(int ncid, int varid, 145 const size_t *start, const size_t *count, 146 void *value, nc_type); 147 148 extern int 149 NC4_put_vars(int ncid, int varid, 150 const size_t *start, const size_t *count, const ptrdiff_t* stride, 151 const void *value, nc_type); 152 153 extern int 154 NC4_get_vars(int ncid, int varid, 155 const size_t *start, const size_t *count, const ptrdiff_t* stride, 156 void *value, nc_type); 157 158 /* End _var */ 159 160 /* netCDF4 API only */ 161 EXTERNL int 162 NC4_var_par_access(int, int, int); 163 164 EXTERNL int 165 NC4_inq_ncid(int, const char *, int *); 166 167 EXTERNL int 168 NC4_inq_grps(int, int *, int *); 169 170 EXTERNL int 171 NC4_inq_grpname(int, char *); 172 173 EXTERNL int 174 NC4_inq_grpname_full(int, size_t *, char *); 175 176 EXTERNL int 177 NC4_inq_grp_parent(int, int *); 178 179 EXTERNL int 180 NC4_inq_grp_full_ncid(int, const char *, int *); 181 182 EXTERNL int 183 NC4_inq_varids(int, int * nvars, int *); 184 185 EXTERNL int 186 NC4_inq_dimids(int, int * ndims, int *, int); 187 188 EXTERNL int 189 NC4_inq_typeids(int, int * ntypes, int *); 190 191 EXTERNL int 192 NC4_inq_type_equal(int, nc_type, int, nc_type, int *); 193 194 EXTERNL int 195 NC4_def_grp(int, const char *, int *); 196 197 EXTERNL int 198 NC4_rename_grp(int, const char *); 199 200 EXTERNL int 201 NC4_inq_user_type(int, nc_type, char *, size_t *, nc_type *, 202 size_t *, int *); 203 204 EXTERNL int 205 NC4_def_compound(int, size_t, const char *, nc_type *); 206 207 EXTERNL int 208 NC4_insert_compound(int, nc_type, const char *, size_t, nc_type); 209 210 EXTERNL int 211 NC4_insert_array_compound(int, nc_type, const char *, size_t, 212 nc_type, int, const int *); 213 214 EXTERNL int 215 NC4_inq_typeid(int, const char *, nc_type *); 216 217 EXTERNL int 218 NC4_inq_compound_field(int, nc_type, int, char *, size_t *, 219 nc_type *, int *, int *); 220 221 EXTERNL int 222 NC4_inq_compound_fieldindex(int, nc_type, const char *, int *); 223 224 EXTERNL int 225 NC4_def_vlen(int, const char *, nc_type base_typeid, nc_type *); 226 227 EXTERNL int 228 NC4_put_vlen_element(int, int, void *, size_t, const void *); 229 230 EXTERNL int 231 NC4_get_vlen_element(int, int, const void *, size_t *, void *); 232 233 EXTERNL int 234 NC4_def_enum(int, nc_type, const char *, nc_type *); 235 236 EXTERNL int 237 NC4_insert_enum(int, nc_type, const char *, const void *); 238 239 EXTERNL int 240 NC4_inq_enum_member(int, nc_type, int, char *, void *); 241 242 EXTERNL int 243 NC4_inq_enum_ident(int, nc_type, long long, char *); 244 245 EXTERNL int 246 NC4_def_opaque(int, size_t, const char *, nc_type *); 247 248 EXTERNL int 249 NC4_def_var_deflate(int, int, int, int, int); 250 251 EXTERNL int 252 NC4_def_var_fletcher32(int, int, int); 253 254 EXTERNL int 255 NC4_def_var_chunking(int, int, int, const size_t *); 256 257 EXTERNL int 258 NC4_def_var_fill(int, int, int, const void *); 259 260 EXTERNL int 261 NC4_def_var_endian(int, int, int); 262 263 EXTERNL int 264 NC4_def_var_filter(int, int, unsigned int, size_t, const unsigned int*); 265 266 EXTERNL int 267 NC4_set_var_chunk_cache(int, int, size_t, size_t, float); 268 269 EXTERNL int 270 NC4_get_var_chunk_cache(int, int, size_t *, size_t *, float *); 271 272 EXTERNL int 273 NC4_inq_unlimdims(int, int *, int *); 274 275 EXTERNL int 276 NC4_show_metadata(int); 277 278 #if defined(__cplusplus) 279 } 280 #endif 281 282 #endif /*_NC4DISPATCH_H */ 283