The Parallel-NetCDF team is pleased to announce a new release of Parallel-NetCDF. Version 1.3.0 marks our first release since august 2010, but we have not been idle since then.

Compatibility note

  • In testing with version 11.7 of the Portland Group compiler, some of the Fortran test programs fail to compile if built with pgf77. The tests work if built with the Fortran90 compiler.

New in 1.3.0

  • Bug fixes in new ncmpidiff tool.
  • Small optimizations to reduce communication in library.
  • Improved documentation, including more test programs and a QuickTutorial.
  • Bug fixes in our Fortran90 support.
  • Better compatibility with NetCDF-4: no need for a modified pnetcdf.h from Unidata when building NetCDF-4 with PnetCDF support.
  • PnetCDF now duplicates the MPI communicator internally, which fixed at least one odd behavior seen in a pnetcdf-using application.
  • Improvements to PnetCDF header and variable alignment (see wiki page VariableAlignment).
  • Add a checking for file create mode consistency across all processes and an error code for it, NC_ECMODE.
  • Bug fix for updating the number of record variables in nonblocking APIs.
  • Bug fix for variable starting file offsets when defining multiple large variables (> 232 elements) in one CDF-5 file.
  • Add a new configure option that takes environment variable $RM to replace the default "rm" command in all Makefiles.
  • Bug fix for nonblocking varm APIs.
  • Support for CDF-2's special2 characters in names (variables, attributes, dimensions, etc.)
  • Release of the official CDF-5 file format specification (see wiki page CD-5).
  • Support for CDF-5 data types: NC_UBYTE, NC_USHORT, NC_UINT, NC_INT64, NC_UINT64, and NF_INT64.
  • New C APIs: ncmpi_put_vara_ushort, ncmpi_put_vara_uint, ncmpi_put_vara_longlong, and ncmpi_put_vara_ulonglong. Similarly for var1, var, vars and varm APIs. Also for get and nonblocking APIs.
  • New Fortran APIs: nfmpi_put_vars_int8 and similarly for var1, var, vars, varm, get, and nonblocking APIs.
  • Add a new error code, NC_ENOTSUPPORT, for not-yet-supported features.
  • A new set of buffered put APIs (eg. ncmpi_bput_vara_float) is added (see BufferedInterface). They make a copy of the user's buffer internally, so the user's buffer can be reused when the call returns. Their usage are similar to the iput APIs.
  • Add new error codes for buffered put APIs: NC_ENULLBUF, NC_EPREVATTACHBUF, NC_ENULLABUF, NC_EPENDINGBPUT, and NC_EINSUFFBUF.
  • Add new test and example programs for the buffered put APIs.
  • The error string returned by ncmpi_strerror() for an undefined error code is updated from "Unknown Error" to "Unknown Error: Unrecognized PnetCDF error code ID" to be more descriptive.
  • Remove the use of POSIX error codes: EINVAL, ENOERR, ERANGE, and ENOMEM. They are replaced by NC error codes now: NC_EINVAL, NC_NOERR, NC_ERANGE, and NC_ENOMEM.
  • A better translation of MPI-IO error classes to netCDF/PnetCDF error codes. For example, MPI-IO error class MPI_ERR_NO_SUCH_FILE is translated to NC_ENOENT.

Download URLs:

SHA-1 Checksums:

  • b767de94e7b5d69a2a3a429a3a0b06b519392bc1 parallel-netcdf-1.3.0.tar.gz
  • 8b2526d0d887f538a9cf3ea60e9bbff9af0b2fc4 parallel-netcdf-1.3.0.tar.bz2

SVN tag:

  • svn co https://svn.mcs.anl.gov/repos/parallel-netcdf/tags/v1-3-0