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, 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
netcdfgroup
archives: