need to id netcdf files
Wei-keng Liao
wkliao at ece.northwestern.edu
Tue Feb 2 13:10:31 CST 2010
Hi, Jim,
We can add two new functions in pnetcdf library:
int ncmpi_inq_format (int ncid, int *formatp);
int ncmpi_inq_file_format (char *filename, int *formatp);
The return argument "formatp" will be a constant defined in pnetcdf.h.
Currently we have
#define NC_FORMAT_CLASSIC 1
#define NC_FORMAT_64BIT 2
#define NC_FORMAT_64BIT_DATA 5
Since netcdf4 is in HDF5 format, as Russ pointed out, it may not
be as simple to report and return NC_FORMAT_NETCDF4 and
NC_FORMAT_NETCDF4_CLASSIC.
But, we can add
#define NC_FORMAT_UNKNOWN -1
for formats other than the above already-defined three.
Wei-keng
On Feb 2, 2010, at 11:17 AM, Jim Edwards wrote:
> Hi Russ,
>
>
> Maybe I can distill the essence of this function since my goal is to
> use it before I call the netcdf open function.
>
>
> I think that 64-bit-offset is the pnetcdf format that I was
> referring to.
>
> Thanks for the hint about hdf5 files.
>
>
> - Jim
>
>
> On Tue, Feb 2, 2010 at 9:58 AM, Russ Rew <russ at unidata.ucar.edu>
> wrote:
> Jim,
>
> > I am in need of a function that can identify a file as netcdf3,
> netcdf4, or
> > pnetcdf 64-bit.
> > Preferably I would like this function to work without having
> linked any of
> > the mentioned netcdf libraries.
> >
> > Does anyone have or know of one?
>
> Although it doesn't match your preference for independence from netCDF
> libraries, the nc_inq_format() function documented here:
>
> http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-c.html#nc_005finq-Family
>
> distinguishes among the 4 netCDF format variants:
>
> http://www.unidata.ucar.edu/software/netcdf/docs/faq.html#fv1
>
> in the netCDF-4 library or between classic and 64-bit-offset formats
> in
> a netCDF-3 library. It doesn't recognize the pnetcdf 64-bit variant.
>
> By the way, an HDF5 file can't necessarily be distinguished by its
> first
> 4 bytes, because HDF5 files may begin with a "user-block" of size 512,
> 1024, 2048, ... bytes, before the 4-byte file-type signature.
>
> --Russ
>
More information about the parallel-netcdf
mailing list