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.
Sergey,
Here's my current understanding of the problem:
1. You are not using netCDF library calls directly but are instead using an
"IOAPI" library.
2. The IOAPI library uses the (old) netCDF-2 Fortran-77 interface.
3. You need to create netCDF files that use the 64-bit offset variant to
support large record sizes.
4. The netCDF-2 Fortran-77 interface does not allow an argument to nccre() to
specify use of the 64-bit offset variant of the file format.
Here are several possible solutions to the problem:
1. Find some way to specify to the IOAPI library that you want large files
that use 64-bit offsets, for example passing in a flag or deciding that you
will always create 64-bit offset files. Modify the IOAPI library to create such
files (when specified or by default) by replacing the current call to nccre()
that looks like
ncid = nccre ('foo.ncf', ncclob, rcode)
by the netCDF-3 F77 call nf_create instead, but specifying the new file type in
the mode argument as follows:
rcode=nf_create('foo.ncf',IOR(NF_CLOBBER,NF_64BIT_OFFSET),ncid)
Then recompile the IOAPI library and relink your application.
2. Modify the netCDF-3.6.1 library so that its support for the old netCDF-2
F77 interface allows specifying a 64-bit offset file when calling NCCRE().
This involves replacing line 254 in the file
netcdf-3.6.1/src/fortran/fort-v2compat.c:
if (clobmode != NC_CLOBBER && clobmode != NC_NOCLOBBER)
with the following instead:
if (clobmode < 0 ||
clobmode > NC_NOCLOBBER + NC_64BIT_OFFSET + NC_SHARE + NC_STRICT_NC3 +
NC_LOCK)
Then recompile the netCDF library and relink your application. With this
solution, you don't have to change IOAPI.
3. Wait for the next release of netCDF 3.6.2, which will have this fix in it,
to allow creating large files from the old version 2 Fortran interface.
--Russ
, the problem of creating netCDF files that use the 64-bit offset variant of
the netCDF format must be fixed in the IOAPI library.
Russ Rew UCAR Unidata Program
address@hidden http://www.unidata.ucar.edu
Ticket Details
===================
Ticket ID: MOB-465267
Department: Support netCDF
Priority: High
Status: Closed