NetCDF  4.4.1.1
nc4file.c File Reference

The netCDF-4 file functions. More...

#include "config.h"
#include <errno.h>
#include "nc.h"
#include "nc4internal.h"
#include "nc4dispatch.h"
#include <H5DSpublic.h>
#include <H5Fpublic.h>
Include dependency graph for nc4file.c:

Go to the source code of this file.

Macros

#define CD_NELEMS_SZIP   4
 
#define CD_NELEMS_ZLIB   1
 
#define LOGOPEN   1
 
#define MAGIC_NUMBER_LEN   4
 
#define MAX_DEFLATE_LEVEL   9
 
#define MIN_DEFLATE_LEVEL   0
 
#define NC_HDF4_FILE   2
 
#define NC_HDF5_FILE   1
 
#define NUM_TYPES   12
 

Typedefs

typedef struct NC4_rec_read_metadata_obj_info NC4_rec_read_metadata_obj_info_t
 Struct to track information about objects in a group, for nc4_rec_read_metadata() More...
 
typedef struct NC4_rec_read_metadata_ud NC4_rec_read_metadata_ud_t
 User data struct for call to H5Literate() in nc4_rec_read_metadata() More...
 

Functions

static int close_netcdf4_file (NC_HDF5_FILE_INFO_T *h5, int abort)
 
static herr_t dimscale_visitor (hid_t did, unsigned dim, hid_t dsid, void *dimscale_hdf5_objids)
 
static int get_netcdf_type (NC_HDF5_FILE_INFO_T *h5, hid_t native_typeid, nc_type *xtype)
 
static int get_type_info2 (NC_HDF5_FILE_INFO_T *h5, hid_t datasetid, NC_TYPE_INFO_T **type_info)
 
int NC4__enddef (int ncid, size_t h_minfree, size_t v_align, size_t v_minfree, size_t r_align)
 
int NC4_abort (int ncid)
 
int NC4_close (int ncid)
 
int NC4_create (const char *path, int cmode, size_t initialsz, int basepe, size_t *chunksizehintp, int use_parallel, void *parameters, NC_Dispatch *dispatch, NC *nc_file)
 Create a netCDF-4/HDF5 file. More...
 
static int nc4_create_file (const char *path, int cmode, MPI_Comm comm, MPI_Info info, NC *nc)
 
static int NC4_enddef (int ncid)
 
int nc4_enddef_netcdf4_file (NC_HDF5_FILE_INFO_T *h5)
 
int NC4_inq (int ncid, int *ndimsp, int *nvarsp, int *nattsp, int *unlimdimidp)
 
int NC4_open (const char *path, int mode, int basepe, size_t *chunksizehintp, int use_parallel, void *parameters, NC_Dispatch *dispatch, NC *nc_file)
 
static int nc4_open_file (const char *path, int mode, void *parameters, NC *nc)
 
static int nc4_rec_read_metadata (NC_GRP_INFO_T *grp)
 
static int nc4_rec_read_metadata_cb (hid_t grpid, const char *name, const H5L_info_t *info, void *_op_data)
 
static int nc4_rec_read_metadata_cb_list_add (NC4_rec_read_metadata_obj_info_t **head, NC4_rec_read_metadata_obj_info_t **tail, const NC4_rec_read_metadata_obj_info_t *oinfo)
 
int NC4_redef (int ncid)
 
int NC4_set_fill (int ncid, int fillmode, int *old_modep)
 
int NC4_sync (int ncid)
 
int nc4typelen (nc_type type)
 
static int nc_check_for_hdf (const char *path, int flags, void *parameters, int *hdf_file)
 
int nc_get_chunk_cache (size_t *sizep, size_t *nelemsp, float *preemptionp)
 
int nc_get_chunk_cache_ints (int *sizep, int *nelemsp, int *preemptionp)
 
int nc_set_chunk_cache (size_t size, size_t nelems, float preemption)
 
int nc_set_chunk_cache_ints (int size, int nelems, int preemption)
 
static int read_coord_dimids (NC_GRP_INFO_T *grp, NC_VAR_INFO_T *var)
 
static int read_dataset (NC_GRP_INFO_T *grp, hid_t datasetid, const char *obj_name, const H5G_stat_t *statbuf)
 
static int read_grp_atts (NC_GRP_INFO_T *grp)
 
static int read_hdf5_att (NC_GRP_INFO_T *grp, hid_t attid, NC_ATT_INFO_T *att)
 
static int read_scale (NC_GRP_INFO_T *grp, hid_t datasetid, const char *obj_name, const H5G_stat_t *statbuf, hsize_t scale_size, hsize_t max_scale_size, NC_DIM_INFO_T **dim)
 
static int read_type (NC_GRP_INFO_T *grp, hid_t hdf_typeid, char *type_name)
 
static int read_var (NC_GRP_INFO_T *grp, hid_t datasetid, const char *obj_name, size_t ndims, NC_DIM_INFO_T *dim)
 
void reportopenobjects (int log, hid_t)
 
static int sync_netcdf4_file (NC_HDF5_FILE_INFO_T *h5)
 

Variables

static hid_t h5_native_type_constant_g [NUM_TYPES]
 
static const int ILLEGAL_CREATE_FLAGS = (NC_NOWRITE|NC_MMAP|NC_INMEMORY|NC_64BIT_OFFSET|NC_CDF5)
 
static const int ILLEGAL_OPEN_FLAGS = (NC_MMAP|NC_64BIT_OFFSET)
 
size_t nc4_chunk_cache_nelems = CHUNK_CACHE_NELEMS
 
float nc4_chunk_cache_preemption = CHUNK_CACHE_PREEMPTION
 
size_t nc4_chunk_cache_size = CHUNK_CACHE_SIZE
 
const char * NC_RESERVED_ATT_LIST []
 
const char * NC_RESERVED_SPECIAL_LIST []
 
const char * NC_RESERVED_VARATT_LIST []
 
static const nc_type nc_type_constant_g [NUM_TYPES]
 
static const char nc_type_name_g [NUM_TYPES][NC_MAX_NAME+1]
 
static const int nc_type_size_g [NUM_TYPES]
 

Detailed Description

The netCDF-4 file functions.

This file is part of netcdf-4, a netCDF-like interface for HDF5, or a HDF5 backend for netCDF, depending on your point of view.

Copyright 2003, University Corporation for Atmospheric Research. See COPYRIGHT file for copying and redistribution conditions.

Definition in file nc4file.c.

Typedef Documentation

◆ NC4_rec_read_metadata_obj_info_t

typedef struct NC4_rec_read_metadata_obj_info NC4_rec_read_metadata_obj_info_t

Struct to track information about objects in a group, for nc4_rec_read_metadata()

◆ NC4_rec_read_metadata_ud_t

typedef struct NC4_rec_read_metadata_ud NC4_rec_read_metadata_ud_t

User data struct for call to H5Literate() in nc4_rec_read_metadata()

Function Documentation

◆ NC4_create()

int NC4_create ( const char *  path,
int  cmode,
size_t  initialsz,
int  basepe,
size_t *  chunksizehintp,
int  use_parallel,
void *  parameters,
NC_Dispatch *  dispatch,
NC *  nc_file 
)

Create a netCDF-4/HDF5 file.

Parameters
pathThe file name of the new file.
cmodeThe creation mode flag.
initialszIgnored by this function.
basepeIgnored by this function.
chunksizehintpIgnored by this function.
use_parallel0 for sequential, non-zero for parallel I/O.
parameterspointer to struct holding extra data (e.g. for parallel I/O) layer. Ignored if NULL.
dispatchPointer to the dispatch table for this file.
nc_filePointer to an instance of NC.
Returns
NC_INVAL Invalid input (check cmode).

Definition at line 502 of file nc4file.c.

Variable Documentation

◆ NC_RESERVED_ATT_LIST

const char* NC_RESERVED_ATT_LIST[]
Initial value:
= {
NC_ATT_FORMAT,
NC3_STRICT_ATT_NAME,
NCPROPS,
ISNETCDF4ATT,
SUPERBLOCKATT,
NULL
}

Definition at line 101 of file nc4file.c.

◆ NC_RESERVED_SPECIAL_LIST

const char* NC_RESERVED_SPECIAL_LIST[]
Initial value:
= {
ISNETCDF4ATT,
SUPERBLOCKATT,
NCPROPS,
NULL
}

Definition at line 111 of file nc4file.c.

◆ NC_RESERVED_VARATT_LIST

const char* NC_RESERVED_VARATT_LIST[]
Initial value:
= {
NC_ATT_REFERENCE_LIST,
NC_ATT_CLASS,
NC_ATT_DIMENSION_LIST,
NC_ATT_NAME,
NC_ATT_COORDINATES,
NC_DIMID_ATT_NAME,
NULL
}

Definition at line 87 of file nc4file.c.

◆ nc_type_constant_g

const nc_type nc_type_constant_g[NUM_TYPES]
static
Initial value:
#define NC_CHAR
ISO/ASCII character.
Definition: netcdf.h:39
#define NC_UBYTE
unsigned 1 byte int
Definition: netcdf.h:45
#define NC_UINT
unsigned 4-byte int
Definition: netcdf.h:47
#define NC_INT64
signed 8-byte int
Definition: netcdf.h:48
#define NC_STRING
string
Definition: netcdf.h:50
#define NC_DOUBLE
double precision floating point number
Definition: netcdf.h:44
#define NC_BYTE
signed 1 byte integer
Definition: netcdf.h:38
#define NC_INT
signed 4 byte integer
Definition: netcdf.h:41
#define NC_USHORT
unsigned 2-byte int
Definition: netcdf.h:46
#define NC_SHORT
signed 2 byte integer
Definition: netcdf.h:40
#define NC_FLOAT
single precision floating point number
Definition: netcdf.h:43
#define NC_UINT64
unsigned 8-byte int
Definition: netcdf.h:49

Definition at line 132 of file nc4file.c.

◆ nc_type_name_g

const char nc_type_name_g[NUM_TYPES][NC_MAX_NAME+1]
static
Initial value:
= {"char", "byte", "short",
"int", "float", "double", "ubyte",
"ushort", "uint", "int64",
"uint64", "string"}

Definition at line 128 of file nc4file.c.

◆ nc_type_size_g

const int nc_type_size_g[NUM_TYPES]
static
Initial value:
= {sizeof(char), sizeof(char), sizeof(short),
sizeof(int), sizeof(float), sizeof(double), sizeof(unsigned char),
sizeof(unsigned short), sizeof(unsigned int), sizeof(long long),
sizeof(unsigned long long), sizeof(char *)}

Definition at line 136 of file nc4file.c.


Return to the Main Unidata NetCDF page.
Generated on Fri Sep 8 2017 07:26:52 for NetCDF. NetCDF is a Unidata library.