NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
NOTE: The netcdf-hdf
mailing list is no longer active. The list archives are made available for historical reasons.
Ed Hartnett wrote:
Jeff Whitaker <jswhit@xxxxxxxxxxx> writes:Ed: The attached C program creates a netcdf4_classic file that is unreadable (ncdump'ing it gives an 'HDF Error'). [ ..SNIP..]Thanks Jeff! This is not an ncdump bug; nc_open fails on this file! I have added it to the netCDF-4 tests and will let you know when I get it solved... Thanks, Ed
Ed: Here's a C program that triggers the H5Oalloc error I mentioned in my previous message.
-Jeff -- Jeffrey S. Whitaker Phone : (303)497-6313 Meteorologist FAX : (303)497-6449 NOAA/OAR/PSD R/PSD1 Email : Jeffrey.S.Whitaker@xxxxxxxx 325 Broadway Office : Skaggs Research Cntr 1D-124 Boulder, CO, USA 80303-3328 Web : http://tinyurl.com/5telg
#include <stdio.h> #include <stdlib.h> #include <netcdf.h> void check_err(const int stat, const int line, const char *file) { if (stat != NC_NOERR) { (void) fprintf(stderr, "line %d of %s: %s\n", line, file, nc_strerror(stat)); exit(1); } } int main() { /* create testfile.nc */ int stat; /* return status */ int ncid; /* netCDF id */ /* dimension ids */ int lat_dim; int time_dim; int lon_dim; /* dimension lengths */ size_t lat_len = 73; size_t time_len = 10; size_t lon_len = 145; /* variable ids */ int wind_id; /* rank (number of dimensions) for each variable */ # define RANK_wind 1 /* variable shapes */ int wind_dims[RANK_wind]; /* attribute vectors */ int wind_slobber[1]; int cdf_goober[1]; stat = nc_set_default_format(NC_FORMAT_NETCDF4, NULL); check_err(stat,__LINE__,__FILE__); /* define dataset */ stat = nc_create("testfile.nc", NC_CLOBBER, &ncid); check_err(stat,__LINE__,__FILE__); /* define dimensions */ stat = nc_def_dim(ncid, "lon", lon_len, &lon_dim); check_err(stat,__LINE__,__FILE__); stat = nc_def_dim(ncid, "lat", lat_len, &lat_dim); check_err(stat,__LINE__,__FILE__); stat = nc_def_dim(ncid, "time", time_len, &time_dim); check_err(stat,__LINE__,__FILE__); stat = nc_put_att_text(ncid, NC_GLOBAL, "foo", 3, "bar"); check_err(stat,__LINE__,__FILE__); cdf_goober[0] = 2; stat = nc_put_att_int(ncid, NC_GLOBAL, "goober", NC_INT, 1, cdf_goober); check_err(stat,__LINE__,__FILE__); /* define variables */ wind_dims[0] = lon_dim; stat = nc_def_var(ncid, "temp", NC_FLOAT, RANK_wind, wind_dims, &wind_id); check_err(stat,__LINE__,__FILE__); stat = nc_put_att_text(ncid, wind_id, "bar", 3, "foo"); check_err(stat,__LINE__,__FILE__); wind_slobber[0] = 3; stat = nc_put_att_int(ncid, wind_id, "slobber", NC_INT, 1, wind_slobber); check_err(stat,__LINE__,__FILE__); stat = nc_close(ncid); check_err(stat,__LINE__,__FILE__); /* re-open dataset*/ stat = nc_open("testfile.nc", NC_WRITE, &ncid); check_err(stat,__LINE__,__FILE__); stat = nc_inq_dimid(ncid, "lon", &lon_dim); check_err(stat,__LINE__,__FILE__); /* rename dimension */ stat = nc_rename_dim(ncid, lon_dim, "longitude"); check_err(stat,__LINE__,__FILE__); stat = nc_inq_varid(ncid, "temp", &wind_id); check_err(stat,__LINE__,__FILE__); /* rename variable */ stat = nc_rename_var(ncid, wind_id, "wind"); check_err(stat,__LINE__,__FILE__); stat = nc_close(ncid); check_err(stat,__LINE__,__FILE__); return 0; }
netcdf-hdf
archives: