NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hi, NetCDF-3 is now available. See <URL:http://www.unidata.ucar.edu/packages/netcdf/announce-3.3.html> for the HTML version of this announcement. The text version follows. We are pleased to announce the availability of netCDF-3. The netCDF-3 release supports netCDF-2 interfaces but also includes new C and Fortran interfaces that offer significant benefits. The netCDF file format is unchanged, so files written with version 3 can be read with version 2 and vice versa. NetCDF-3 includes * a complete rewrite of the netCDF library in ANSI C, significantly improving performance; * elimination of dependence on vendor XDR libraries; * a new C interface that provides automatic type conversions and eliminates the use of generic void* pointers; * a new Fortran interface that also provides automatic type conversions and eliminates the use of type-unsafe interfaces; * new convenience functions for accessing all the values of a variable at once; * a simpler way to synchronize concurrent accesses; * more flexible inquiry functions; * separate user guides for C and Fortran users; * simpler installation (for Unix systems); and * netCDF-2 compatibility interfaces implemented on top of the new C and Fortran interfaces, so that existing programs can be relinked to the new library without change. The netCDF-3 release is available in source form as a compressed tar file from <URL:ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf.tar.Z>. Binary versions will soon be available for many platforms from <URL:ftp://ftp.unidata.ucar.edu/pub/binary/>. DOCUMENTATION Documentation for the new release, including new NetCDF User's Guides for C and Fortran, is available in several forms: as compressed tar files of HTML files, as compressed PostScript files, or as online HTML documents. See <URL:http://www.unidata.ucar.edu/packages/netcdf/docs.html> for links to these different forms of documentation as well as links to the online man pages for reference. SOON-TO-BE FAQS: QUESTIONS ABOUT THE NEW RELEASE Q: Why did we change the C interface? A: Rewriting the C library offered an opportunity to implement an improved C interface that provided some significant benefits: type safety, automatic type conversions, improved error handling, and elimination of obstacles to the future addition of support for packed data and multithreading. Q: Why did we change the Fortran interface? A: Creating a new Fortran interface similar to the new C interface offered some of the same benefits to users and permitted sharing documentation and testing approaches, so that the resulting code and documentation can be maintained more easily than if we had dissimilar language interfaces. We also decided to use a new approach for layering the Fortran interface on top of the C library---using Burkhard Burow's cfortran.h mechanism instead of our previous homegrown solution---so it was necessary to rewrite the Fortran interface in any case. Q: Is it possible to successfully build the new version without reading the INSTALL file in the top level of the unpacked distribution? A: Probably not, but good luck if you want to try such a risky undertaking :-). Q: Why are programs linked against the new library larger than before? A: The new library does more, with type-safe interfaces, automatic type conversion, and better performance. If you can determine the requisite compiler and linker flags to build the library as shared on your platform, executables that use netCDF-3 will be smaller. We don't build the library as shared by default, because there are as many different ways of building shared libraries as there are platforms. Q: Why is the new version named 3.3 instead of 3.0? A: It's just a number. We made available some prereleases of netCDF-3 and needed to change some interfaces as the result of testing. 3.3 is the first version of netCDF-3 made available for general release. There will almost undoubtedly be follow-on versions (3.3.1, 3.3.2, ...) as we incorporate feedback and bug fixes into the release, but the current release has already undergone extensive testing. Q: Why don't we provide a program to help convert automatically to the new interfaces? A: Such a conversion program would require parsing the source language, due to the changed error handling approach in netCDF-3. Simple sed scripts that change function names are not sufficient for such a task. Furthermore, even if automatic conversion were practical, the resulting programs would not take advantage of the simplifications supported by the new automatic type-conversion features. Q: Will we continue to support the netCDF-2 interfaces? A: Yes, as long as there are programs that use them. We expect new programs will be written using the netCDF-3 interfaces because of the benefits in type safety, program performance, readability, maintainability, and independence from some schema changes. Eventually, when a future version of netCDF supports writing packed data (e.g. arrays of 11-bit numbers), programs that use only netCDF-2 interfaces may not be able to access such data. Q: Is the C++ interface still supported? A: Yes, but we haven't worked on it much since netCDF 2.4. The C++ interface is still a layer on top of the netCDF-2 C interface. We have some plans for incorporating C++ exceptions into a future version for error handling. Q: Is there a Java interface to netCDF? A: Yes, but it's not included with this distribution and not yet ready for release. We have worked with Joe Sirott's read-only netCDF Java implementation and also developed a prototype read-write netCDF package, both completely in Java. These two different interfaces and implementations need to be reconciled, and we will be working on this again now that the netCDF-3 release is finished. Q: Why is the User's Guide no longer included with the distribution? A: The people who build and install the netCDF library are not necessarily the same as the people who use it, so we decided not to weigh down the distribution with large copies of the User's Guides, instead making the documentation available in multiple forms from a separate Web page. We also want to be able to correct typos and errors in the documentation independently from software bug fixes. This will be the first real test of the new User's Guides, so they are likely to be more volatile than the software. Q: Why are we no longer using Texinfo for the netCDF User's Guides? A: We needed to derive both the C and Fortran User's Guides from a common source that captured all the differences and similarities between them. Texinfo's conditional text facilities had bugs that we reported but couldn't work around, so we switched to FrameMaker. We use WebMaker to generate the HTML. Q: Does netCDF still work on 16-bit platforms, such as MS-DOS? A: We think the C library should work on MSDOS, but we no longer have access to any 16-bit platforms on which to test the distribution. If someone else has access to these or other more exotic platforms and is willing to do most of the work required to port netCDF-3, we will provide what assistance we can and make the modifications generally available. --Russ Rew Glenn Davis Steve Emmerson Unidata Program Center
netcdfgroup
archives: