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.
> > I don't see any equivalent of nc_advise() documented in the Version 3 > > C interfaces. If I were to replace all V2 calls in the C++ interfaces, > > what should I use? > > Well, nc_advise was not actually documented in the version 2 C > interfaces either. (But I don't see any uses of nc_advise in the 3.4 cxx > source directory.) It might be best to write a little wrapper that does > the error handling, though this gets back to the issue of exception > handling and whether to use the C++ exception mechanisms. I'll forward > this to Glenn, in case he has any opinions on this ... The function nc_advise() is new in netcdf-3, and is used to implement the netcdf-2 compatibility functions in libsrc/v2i.c. It's closest analog in netcdf-2 was the internal function NCadvise(). The function nc_advise() is of extern scope and publically declared in netcdf.h except when NO_NETCDF_2 is #defined. The reason nc_advise() is publically declared is precisely to support transitional use of the netcdf-3 functions in mostly netcdf-2 situations. It references the netcdf-2 globals ncerr and ncopts, so it would not make much sense to use in a pure netcdf-3 program. BTW, The netcdf-3 include file netcdf.h is safe to use in C++ programs and the netcdf-3 libsrc can be compiled by a C++ compiler directly. -glenn