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.
>To: address@hidden >From: Tom LeFebvre <address@hidden> >Subject: Re: 20001106: sync problem? >Organization: NOAA/FSL >Keywords: ncsync bug Tom, > I've bumped into a problem and I'm wondering if it's documented or a > patch is out. I didn't see it on the known problems netCDF page. > > I'm changing the value of a variable attribute. Shortly after I call > add_att, I can read the newly corrected value. However, if I stop my > program gracefully calling all destructors, I see the old value on the > disk file. Calling NcFIle->sync() seems to fix the problem. Is there a > known problem with respect to flushing modified data to the disk? Yes, there was a problem in netCDF 3.4, which is still the latest general release, that we fixed in netCDF 3.5, which is still only available as a beta release (beta6 from Oct 19 is the latest). We're getting close to a final release of netCDF 3.5; all the changes lately have just been related to porting to additional platforms such as MacOS X. So if you want to try netCDF 3.5 beta6, we'd be interested if it fixes the problem. I've appended the RELEASE_NOTES for 3.5, which gives a slightly more detailed description of the fix. The beta release is available from ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-beta.tar.Z --Russ This file contains a high-level description of this package's evolution. Entries are in reverse chronological order (most recent first). VERSION COMMENTS ------- -------- 3.5 YYYY-MM-DD Added Fortran 90 interface. Changed C macro TIMELEN in file cxx/nctst.cpp to TIMESTRINGLEN to avoid clash with macro defined on AIX systems in /usr/include/time.h. Fixed miswriting of netCDF header when exiting define mode. Because the header was always written correctly later, this was only a problem if there was another reader of the netCDF file. Fixed explicit synchronizing between netCDF writer and readers via the nc_sync(), nf_sync(), and ncsync() functions. Fixed a number of bugs related to attempts to support shrinking the header in netCDF files when attributes are rewritten or deleted. Also fixed the problem that nc__endef() did not work as intended in reserving extra space in the file header, since the extra space would be compacted again on calling nc_close(). Fixed the "redef bug" that occurred when nc_enddef() or nf_enddef() is called after nc_redef() or nf_redef(), the file is growing such that the new beginning of a record variable is in the next "chunk", and the size of at least one record variable exceeds the chunk size (see netcdf.3 man page for a description of this tuning parameter and how to set it). This bug resulted in corruption of some values in other variables than the one being added. The "__" tuning functions for the Fortran interface, nf__create, nf__open, and nf__enddef, are now documented in the Fortran interface man pages. Permit additional characters in netCDF names in CDL: any of ".", "@", "#", "[", and "]" are now permitted in names, in addition to alphanumeric characters, "_", and "-". Add an 'uninstall' target to all the Makefiles. Dave Glowacki <address@hidden> 199810011851.MAA27335 Added support for multiprocessing on Cray T3E. Hooks added by Glenn, but the majority of the work was done at NERSC. Also includes changes to ffio option specification. Patch rollup provided by R. K. Owen <address@hidden>. The following functions are added to the public interface. nc__create_mp() nc__open_mp() nc_set_base_pe() nc_inq_base_pe() Fixed makefile URL for Win32 systems in INSTALL file. Made test for UNICOS system in the configure script case independent. Ported to the following systems: AIX 4.3 (both /bin/xlc and /usr/vac/bin/xlc compilers) IRIX 6.5 IRIX64 6.5 Changed the extension of C++ files from ".cc" to ".cpp". Renamed the C++ interface header file "netcdfcpp.h" instead of "netcdf.hh", changing "netcdf.hh" to include "netcdfcpp.h" for backward compatibility. Treat "FreeBSD" systems the same as "BSD/OS" system w.r.t. Fortran and "whatis" database. Corrected manual pages: corrected spelling of "enddef" (was "endef") and ensured that the words "index" and "format" will be correctly printed. Updated support for Fortran-calling-C interface by updating "fortran/cfortran.h" from version 3.9 to version 4.1. This new version supports the Portland Group Fortran compiler (C macro "pgiFortran") and the Absoft Pro Fortran compiler (C macro "AbsoftProFortran"). Corrected use of non-integral-constant-expression in specifying size of temporary arrays in file "libsrc/ncx_cray.c". Added Compaq Alpha Linux workstation example to INSTALL file. Ported cfortran.h to Cygnus GNU Win32 C compiler (gcc for Windows). Fixed bug in ncdump using same CDL header name when called with multiple files. Added new NULL data type NC_NAT (Not A Type) to facilitate checking whether a variable object has had its type defined yet, for example when working with packed values. Fixed use of compile-time macro NO_NETCDF_2 so it really doesn't include old netCDF-2 interfaces, as intended. Ported to MacOS X Public Beta (Darwin 1.2/PowerPC). Modified NCGEN and NCDUMP macros: added setting of PATH environment variable to command such that the just-built utility is used if available.