netCDF-3 now available

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

  • 1997 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: