This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Hi Greg, > I tried to create a netcdf file using NC_NETCDF4 & NC_64BIT_OFFSET & > NC_CLASSIC_MODEL and it fails. Looking at nc4file.c, there is an > explicit check that disallows for both NC_NETCDF4 and NC_64BIT_OFFSET > both being set. > > Is this intentional (or, obviously this is intentional, what is > the background on this decision). I have a model that needs to use > NC_NETCDF4 and the NC_CLASSIC_MODEL, but has a dimension that exceeds 2^31 > (but is < 2^32). Yes, it's intentional. NC_64BIT_OFFSET is only intended to specify use of the variant of the classic format that uses 64-bit offsets instead of 32-bit offsets. It corresponds to format 2 of the four netCDF format variants. All netCDF-4/HDF5 files (formats 3 and 4) uses 64-bit offsets as far as I know. If you use (NC_NETCDF4 || NC_CLASSIC_MODEL) that will use netCDF-4/HDF5 storage with 64-bit offsets. The "NC_CLASSIC_MODEL" refers to the data model, not the format. This should be documented more clearly to avoid the confusion you point out. > If I remove the check, what break? I don't know, but I would recommend not removing the test, instead just removing use of NC_64BIT_OFFSET from the nc_create() call. --Russ Russ Rew UCAR Unidata Program address@hidden http://www.unidata.ucar.edu Ticket Details =================== Ticket ID: HQN-423106 Department: Support netCDF Priority: Normal Status: Closed