NetCDF 3.4 now available

Hi,

We are pleased to announce the availability of Version 3.4 of netCDF.
For the HTML version of this announcement, see the "What's New with
NetCDF?" page at 

  http://www.unidata.ucar.edu/packages/netcdf/whatsnew.html

An update to netCDF version 3.3.1 is now available.  The major
improvements are large file support, performance enhancements, and
improved Cray platform support.  Version 3.4 also includes some bug
fixes.

The netCDF 3.4 release is available in source form as a compressed tar
file from <ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf.tar.Z>.  Binary
versions are available for many platforms from
<ftp://ftp.unidata.ucar.edu/pub/binary/>.

On systems that support very large files (exceeding 2 Gbytes), such as
IRIX 6.x or SunOS 5.6 with the large file compilation environment, it
is possible to create and access very large netCDF files with version
3.4.  The remaining size constraints are that the file offset to the
beginning of the record variables (if any) must be less than 2 Gbytes,
and the relative offset to the start of each fixed length variable or
each record variable within a record must be less than 2 Gbytes.
Hence, a very large netCDF file might have

  * no record variables, some ordinary fixed-length variables, and a
    very large (exceeding 2 Gbytes) fixed-length variable; or
  * some ordinary fixed-length and record variables, and a very large
    record variable; or
  * some ordinary fixed-length and record variables and a huge number
    of records.
    
If you create very large netCDF files, remember that they will only be
usable on other systems that support very large files.  The netCDF file
format has not changed, so files less than 2 Gbytes in size are still
writable and readable on all systems on which netCDF is supported.

Significant performance improvements in version 3.4 may be seen when
calling nc_endef or nf_endef on NFS-mounted file systems.  Another
performance-related enhancement is the addition of three new tuning
interfaces for C and Fortran that permit specifying file layout and
buffer size parameters when creating, opening, or changing the header
of a file.  In particular, it is possible to reserve some extra space
in the file header and fixed-length sections of a netCDF file so that
later additions of new variables, dimensions, or attributes may avoid
copying the data.  See the reference documentation for details on these
new interfaces.

Full support for netCDF-2 interfaces is still included.

Bug Fixes

  * Fixed a problem using netCDF on IRIX 6.x with NFS-mounted
    directories.
  * The error message associated with NC_EBADTYPE now explains that it
    applies to a "_FillValue type mismatch".
  * The values of the version 2 Fortran error codes have been modified
    to make the version 2 Fortran interface more backward compatible
    at the source level.
  * Fixed a version 2 Fortran compatibility bug: NCVGTG, NCVGGC,
    NCVPTG, and NCVPGC didn't work according to the version 2
    documentation if the innermost mapping value (IMAP[1]) was zero
    (indicating that the netCDF structure of the variable should be
    used).
  * Memory leaks in the C++ interface NcVar::as_*() member functions
    and NcFile::add_var() member function are fixed.  The documentation
    no longer indicates incorrectly that the library manages value
    blocks that the user is actually responsible for deleting.
  * In ncgen, multidimensional character variables are now padded to
    the length of the last dimension, instead of just concatenating
    them.  This restores an undocumented but convenient feature of
    ncgen under netCDF-2.  Also, a syntax error is now reliably
    reported if the netCDF name is omitted in CDL input.
  * Fortran and C code generated by ncgen for netCDF components whose
    names contain "-" characters will now compile and run correctly
    instead of causing syntax errors.
  * Fixed a bug in ncgen handling a global _FillValue attribute.
    
Portability Improvements

  * Fixed ncx_cray.c to work on all CRAY systems, not just CRAY1.
    Reworked USE_IEG, which was incorrect.  Reworked short support.  Now
    USE_IEG and otherwise both pass the t_ncx test.
  * Added support for NEC SUPER-UX 7.2.
  * Added support for systems whose Fortran INTEGER*1 and INTEGER*2
    types are equivalent to the C "long" type but whose C "int" and
    "long" types differ.  An example of such a system is the NEC SX-4
    with the "-ew" option to the f90 compiler.
  * To better support parallel systems, static and malloc'ed scratch
    areas which were shared in the library were eliminated.  These were
    made private and on the stack where possible.  To support this, the
    macros ALLOC_ONSTACK and FREE_ONSTACK are defined in onstack.h.
  * Included a workaround for a problem using gcc under SunOS 4
    systems to use fixed prototypes when building netCDF.
    
Performance Enhancements

  * Added performance tuning "underbar underbar" interfaces
    nc__open(), nc__create(), and nc__enddef() for C and similar
    interfaces for Fortran.  The new functions have extra parameters
    which allow control of the netCDF internals with respect to I/O
    buffering and file layout, and permit reserving space in the
    header and fixed-size variable sections for later additions that
    avoid copying.
  * The buffered I/O system implementation in posixio.c was
    reimplemented to limit the number and size of read() or write()
    system calls and use greater reliance on memory to memory copy.
    This saves a great deal of wall clock time on slow (NFS) file
    systems, especially during nc_endef().
    
Miscellaneous Changes

  * The ncdump utility now displays byte values as signed, even on
    platforms where the type corresponding to a C char is unsigned
    (SGI, for example).  Also the ncdump and ncgen utilities have been
    updated to display and accept byte attributes as signed numeric
    values (with a "b" suffix) instead of using character constants.
  * Corrected some casts in the library so that all phases of the
    arithmetic computing file offsets occurs with "off_t" type.  This
    allows certain larger netCDF files to be created and read on
    systems with larger (64bit) off_t.
  * The library now allows "." characters in names for variables,
    dimensions, and attributes, as well as "_" and "-" characters.  A
    zero length name "" is explicitly not allowed.  The ncgen utility
    will now permit "." characters in CDL names as well.
  * The C++ interface has been updated so that the deprecated "nclong"
    typedef should no longer be required, and casts to "nclong" no
    longer necessary.  Just use "int" or "long" as appropriate.
    "nclong" is still supported for backwards compatibility.
    
Platforms Tested

The netCDF 3.4 release has been built and tested on the following
platforms.  See the INSTALL file accompanying the release for details.
    
  * AIX-4.2
  * BSD/OS 3.0
  * HPUX-10.20
  * IRIX-5.3, IRIX-6.2, IRIX64-6.2, IRIX64-6.4
  * Linux 2.0.31
  * OSF1-4.0
  * SunOS-4.1.4, SunOS-5.6 (Sparc and i386)
  * SUPER-UX 7.2 (NEC SX-4)
  * ULTRIX-4.4
  * UNICOS-9.0 (C90, T3D), 9.1 (T90), 10.0 (J90), UNICOS/mk 2.0 (T3E)


--Russ Rew
  Glenn Davis
  Steve Emmerson
  Unidata Program Center

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