1 Release Notes {#RELEASE_NOTES}
4 \brief Release notes file for the netcdf-c package.
6 This file contains a high-level description of this package's evolution. Releases are in reverse chronological order (most recent first). Note that, as of netcdf 4.2, the `netcdf-c++` and `netcdf-fortran` libraries have been separated into their own libraries.
8 > Note: The combination of netCDF-C library versions earlier than 4.4.1 and libhdf5 1.10.0+ should be avoided, as they will result in binary files not readable by systems using earlier libhdf5 versions.
10 ## 4.4.1.1 - November 21, 2016
12 * [Bug] Fixed an issue where `ncgen` would potentially crash or write incorrect netCDF4 binary data under very specific circumstances. This bug did *not* affect data written on 32-bit systems or by using the netCDF library; it was specific to `ncgen`. This would only happen when writing a compound data type containing an 8-byte data type followed by a 4-byte data type *and* the 4-byte data type was not properly aligned; this would *possibly* result in incorrect padding. This did not affect 32-bit systems, or data written directly by the library. See [GitHub #323](https://github.com/Unidata/netcdf-c/issues/323) for more information.
13 * [Documentation] Updated documentation related to netCDF variable names and DAP2 access to reflect the undefined behavior potentially observed when DAP2 reserved keywords are used as netCDF variable names. See [GitHub #308](https://github.com/Unidata/netcdf-c/issues/308) for more information.
14 * [Bug] Fixed an issue with `nc_inq_type()` not returning proper value in some circumstances. See [GitHub #317](https://github.com/Unidata/netcdf-c/issues/317) for more information.
15 * [Bug] Corrected an issue related to test failures when `--disable-utilities` or `-DENABLE_UTILITIES=OFF` are specified when building with autotools or cmake, respectively. See [GitHub #313](https://github.com/Unidata/netcdf-c/issues/313) for more information.
16 * [Bug][Enhancement] Corrected a behavioral issue with the `_NCProperties` attribute taking up too much space. See [GitHub #300](https://github.com/Unidata/netcdf-c/issues/300) and [GitHub #301](https://github.com/Unidata/netcdf-c/pull/301) for more information.
18 * [Bug] Corrected behavior for `nc-config` so that, if `nf-config` is found in system, the proper fortran-related information will be conveyed. See [GitHub #296](https://github.com/Unidata/netcdf-c/issues/296] for more information.
20 ## 4.4.1 - June 28, 2016
22 * [File Change] Starting with release 4.4.1, netCDF-4 files created will have superblock version 0 instead of superblock version 2, as was observed in previous netCDF versions. This is due to a workaround required to avoid backwards binary incompatibility when using libhdf5 1.10.x or greater. Superblock versions 0 and 2 appear to be forward and backward compatible. Other than a different superblock number the data should remain consistent.
23 * [Enhancement] Added better error reporting when ncdump/nccopy are given a bad constraint in a DAP url. See [GitHub #279](https://github.com/Unidata/netcdf-c/pull/279) for more information.
25 ### 4.4.1-RC3 - June 17, 2016
27 * [Bug Fix] Misc. bug fixes and improvements.
28 * [Bug Fix] Corrected an issue where adding a \_FillValue attribute to a variable would result in other attributes being lost. See [GitHub #239](https://github.com/Unidata/netcdf-c/issues/239) for more details.
29 * [Bug Fix][Parallel I/O] Corrected an issue reported by Kent Yang at the HDF group related to Collective Parallel I/O and a potential hang.
31 ### 4.4.1-RC2 - May 13, 2016
33 * [Enhancement] Added provenance information to files created. This information consists of a persistent attribute named `_NCProperties` plus two computed attributes, `_IsNetcdf4` and `_SuperblockVersion`. Associated documentation was added to the file `docs/attribute_conventions.md`. See [GitHub pull request #260](https://github.com/Unidata/netcdf-c/pull/260) for more information.
34 * [Bug Fix] Cleaned up some dead links in the doxygen-generated documentation.
35 * [Bug Fix] Corrected several issues related to building under Visual Studio 2014.
36 * [Bug Fix] Corrected several test failures related to HDF5 `1.10.0`
37 * [Bug Fix] Reverted SOVersion *current* to 11 from 12; it was incorrectly incremented in netCDF-C release 4.4.1-RC1.
38 * [Enhancement][Windows] Bumped the included libhdf5 to 1.8.16 from 1.8.15 for pre-built Visual Studio installer files.
41 ### 4.4.1-RC1 - April 15, 2016
43 * [Bug Fix][Enhancement] Fixed an issue with netCDF4 files generated using version `1.10.0` of the HDF5 library. The 1.10 release potentially changed the underlying file format, introducing a backwards compatibility issue with the files generated. HDF5 provided an API for retaining the 1.8.x file format, which is now on by default. See [GitHub Issue #250](https://github.com/Unidata/netcdf-c/issues/250) for more information.
44 * [Bug Fix] Corrected an issue with autotools-based builds performed out-of-source-tree. See [GitHub Issue #242](https://github.com/Unidata/netcdf-c/issues/242) for more information.
45 * [Enhancement] Modified `nc_inq_type()` so that it would work more broadly without requiring a valid ncid. See [GitHub Issue #240](https://github.com/Unidata/netcdf-c/issues/240) for more information.
46 * [Enhancement] Accepted a patch code which added a hashmap lookup for rapid var and dim retrieval in nc3 files, contributed by Greg Sjaardema. See [GitHub Pull Request #238](https://github.com/Unidata/netcdf-c/pull/238) for more information.
47 * [Bug Fix] Accepted a contributed pull request which corrected an issue with how the cmake-generated `nc-config` file determined the location of installed files. See [GitHub Pull Request #235](https://github.com/Unidata/netcdf-c/pull/235) for more information.
48 * [Enhancement] Added an advanced option for CMake-based builds, `ENABLE_SHARED_LIBRARY_VERSION`. This option is `ON` by default, but if turned off, only `libnetcdf.dylib` will be generated, instead of files containing the SOVERSION in the file name. This is a requested feature most people might not care about. See [GitHub #228](https://github.com/Unidata/netcdf-c/issues/228) for more information.
49 * [Bug Fix] Corrected an issue with duplicated error codes defined in multiple header files. See [GitHub #213](https://github.com/Unidata/netcdf-c/issues/213) for more information.
50 * [Bug Fix] Addressed an issue specific to Visual Studio 2015 on Windows. On very large files, some calls to the `fstat` class of functions would fail for no apparent reason. This behavior was **not** observed under Visual Studio 2013. This has now been mitigated. See [GitHub #188](https://github.com/Unidata/netcdf-c/issues/188) for more information.
51 * [Enhancement] Updated `nc-config` to report whether `logging` is enabled in netcdf. Additionally, if `f03` is available in an installed netcdf-fortran library, it will now be reported as well.
52 * [Bug Fix] Addressed an issue where `netcdf_mem.h` was not being installed by cmake. See [GitHub #227](https://github.com/Unidata/netcdf-c/issues/227) for more information.
53 * [Bug Fix] Addressed an issue where `ncdump` would crash when trying to read a netcdf file containing an empty ragged `VLEN` variable in an unlimited dimension. See [GitHub #221](https://github.com/Unidata/netcdf-c/issues/221) for more information.
55 ## 4.4.0 Released - January 13, 2016
57 * Bumped SO version to 11.0.0.
59 * Modified `CMakeLists.txt` to work with the re-organized cmake configuration used by the latest HDF5, `1.8.16`, on Windows. Before this fix, netCDF would fail to locate hdf5 1.8.16 when using cmake on Windows. See [GitHub #186](https://github.com/Unidata/netcdf-c/issues/186) for more information.
61 * Addressed an issue with `ncdump` when annotations were used. The indices for the last row suffered from an off-by-1 error. See [GitHub issue #181](https://github.com/Unidata/netcdf-c/issues/181) for more information.
63 * Addressed an issue on platforms where `char` is `unsigned` by default (such as `ARM`), as well as an issue describing regarding undefined behavior, again on `ARM`. See [GitHub issue #159](https://github.com/Unidata/netcdf-c/issues/159) for detailed information.
65 * Fixed an ambiguity in the grammar for cdl files. See [GitHub #178](https://github.com/Unidata/netcdf-c/issues/178) for more information.
67 * Updated documentation for `nc_get_att_string()` to reflect the fact that it returns allocated memory which must be explicitly free'd using `nc_free_string()`. Reported by Constantine Khroulev, see [GitHub Issue 171](https://github.com/Unidata/netcdf-c/issues/171) for more information.
69 * Modified ncgen to properly handle the L and UL suffixes for integer constants
70 to keep backward compatibility. Now it is the case the single L suffix
71 (e.g. 111L) is treated as a 32 bit integer. This makes it consistent with
72 the fact that NC_LONG (netcdf.h) is an alias for NC_INT. Existing .cdl
73 files should be examined for occurrences of the L prefix to ensure that
74 this change will not affect them.
75 (see Github issue 156[https://github.com/Unidata/netcdf-c/issues/156]).
77 * Updated documentation to reference the new `NodeJS` interface to netcdf4, by Sven Willner. It is available from [https://www.npmjs.com/package/netcdf4](https://www.npmjs.com/package/netcdf4) or from the GitHub repository at [https://github.com/swillner/netcdf4-js](https://github.com/swillner/netcdf4-js).
79 * Incorporated pull request https://github.com/Unidata/netcdf-c/pull/150 from Greg Sjaardema to remove the internal hard-wired use of `NC_MAX_DIMS`, instead using a dynamic memory allocation.
81 ### 4.4.0-RC5 Released - November 11, 2015
83 * Added a fix for https://github.com/Unidata/netcdf-c/issues/149, which was reported several times in quick succession within an hour of the RC4 release.
85 ### 4.4.0-RC4 Released - November 10, 2015
87 * Added CDM-5 support via new mode flag called NC_64BIT_DATA (alias NC_CDF5).
89 Major kudos to Wei-Keng Liao for all the effort he put into getting this to work.
91 This cascaded into a number of other changes.
93 1. Renamed libsrcp5 -> libsrcp because pnetcdf can do parallel io for CDF-1, CDF-2 and CDF-5, not just CDF-5.
94 2. Given #1, then the NC_PNETCDF mode flag becomes a subset of NC_MPIIO, so made NC_PNETCDF an alias for NC_MPII.
95 3. NC_FORMAT_64BIT is now deprecated. Use NC_FORMAT_64BIT_OFFSET.
97 Further information regarding the CDF-5 file format specifrication may be found here: http://cucis.ece.northwestern.edu/projects/PnetCDF/CDF-5.html
99 * Modified configure.ac to provide finer control over parallel
100 support. Specifically, add flags for:
102 1. HDF5_PARALLEL when hdf5 library has parallel enabled
103 2. --disable-parallel4 to be used when we do not want
104 netcdf-4 to use parallelism even if hdf5 has it enabled.
107 * Deprecating various extended format flags.
109 The various extended format flags of the format `NC_FORMAT_FOO` have been refactored into the form `NC_FORMATX_FOO`. The old flags still exist but have been marked as deprecated and will be removed at some point. This was done to avoid confusion between the extended format flags and the format flags `NC_FORMAT_CLASSIC`, `NC_FORMAT_64BIT_OFFSET`, etc. The mapping of deprecated-to-new flags is as follows:
111 Deprecated | Replaced with
112 -----------|-------------
113 NC\_FORMAT\_NC3 | NC\_FORMATX\_NC3
114 NC\_FORMAT\_NC\_HDF5 | NC\_FORMATX\_NC\_HDF5
115 NC\_FORMAT\_NC4 | NC\_FORMATX\_NC4
116 NC\_FORMAT\_NC\_HDF4 | NC\_FORMATX\_NC\_HDF4
117 NC\_FORMAT\_PNETCDF | NC\_FORMATX\_PNETCDF
118 NC\_FORMAT\_DAP2 | NC\_FORMATX\_DAP2
119 NC\_FORMAT\_DAP4 | NC\_FORMATX\_DAP4
120 NC\_FORMAT\_UNDEFINED | NC\_FORMATX\_UNDEFINED
122 * Reduced minimum cmake version to `2.8.11` from `2.8.12`. This will allow for cmake use on a broader set of popular linux platforms without having to do a custom cmake install. See https://github.com/Unidata/netcdf-c/issues/135 for more information.
124 * The documentation section `The Default Chunking Scheme` has been updated with more information. This lives in the `guide.dox` file in the `docs/` directory, or can be found online in the appropriate location (typically http://www.unidata.ucar.edu/netcdf/docs/), once this release has been published.
126 ### 4.4.0-RC3 2015-10-08
128 * Addressed an inefficiency in how bytes would be swapped when converting between `LITTLE` and `BIG` ENDIANNESS. See [NCF-338](https://bugtracking.unidata.ucar.edu/browse/NCF-338) for more information.
130 * Addressed an issue where an interrupted read on a `POSIX` system would return an error even if errno had been properly set to `EINTR`. This issue was initially reported by David Knaak at Cray. More information may be found at [NCF-337](https://bugtracking.unidata.ucar.edu/browse/NCF-337).
132 * Added a note to the install directions pointing out that parallel make
133 cannot be used for 'make check'.
135 ### 4.4.0-RC2 Released 2015-07-09
137 * Minor bug fixes and cleanup of issues reported with first release candidate.
139 ### 4.4.0-RC1 Released 2015-06-09
141 * The pre-built Windows binaries are now built using `Visual Studio 2012`, instead of `Visual Studio 2010`. Source-code compilation remains function with `Visual Studio 2010`, this is just a change in the pre-built binaries.
143 * Added support for opening in-memory file content. See `include/netcdf_mem.h` for the procedure signature. Basically, it allows one to fill a chunk of memory with the equivalent of some netCDF file and then open it and read from it as if it were any other file. See [NCF-328](https://bugtracking.unidata.ucar.edu/browse/NCF-328) for more information.
145 * Addressed an issue when reading hdf4 files with explicit little-endian datatypes. This issue was [reported by Tim Burgess at GitHub](https://github.com/Unidata/netcdf-c/issues/113). See [NCF-332](https://bugtracking.unidata.ucar.edu/browse/NCF-332) for more information.
147 * Addressed an issue with IBM's `XL C` compiler on AIX and how it handled some calls to malloc. Also, as suggested by Wolfgang Hayek, developers using this compiler may need to pass `CPPFLAGS=-D_LINUX_SOURCE_COMPAT` to avoid some test failures.
149 * Addressed an issure in netcdf4 related to specifying an endianness explicitly. When specifying an endianness for `NC_FLOAT`, the value would appear to not be written to file, if checked with `ncdump -s`. The issue was more subtle; the value would be written but was not being read from file properly for non-`NC_INT`. See [GitHub Issue](https://github.com/Unidata/netcdf-c/issues/112) or [NCF-331](https://bugtracking.unidata.ucar.edu/browse/NCF-331) for more information.
151 * Addressed an issue in netcdf4 on Windows w/DAP related to how byte values were copied with sscanf. Issue originally reported by Ellen Johnson at Mathworks, see [NCF-330](https://bugtracking.unidata.ucar.edu/browse/NCF-330) for more information.
153 * Addressed in issue in netcdf4 files on Windows, built with Microsoft Visual Studio, which could result in a memory leak. See [NCF-329](https://bugtracking.unidata.ucar.edu/browse/NCF-329) for more information.
155 * Addressed an issue in netcdf4 files where writing unlimited dimensions that were not declared at head of the dimensions list, as reported by Ellen Johnson at Mathworks. See [NCF-326](https://bugtracking.unidata.ucar.edu/browse/NCF-326) for more information.
157 * Added an authorization reference document as oc2/ocauth.html.
159 * Fixed bug resulting in segmentation violation when trying to add a
160 _FillValue attribute to a variable in an existing netCDF-4 file
161 defined without it (thanks to Alexander Barth). See
162 [NCF-187](https://bugtracking.unidata.ucar.edu/browse/NCF-187) for
165 ## 4.3.3.1 Released 2015-02-25
167 * Fixed a bug related to renaming the attributes of coordinate variables in a subgroup. See [NCF-325](https://bugtracking.unidata.ucar.edu/browse/NCF-325) for more information.
169 ## 4.3.3 Released 2015-02-12
171 * Fixed bug resulting in error closing a valid netCDF-4 file with a dimension and a non-coordinate variable with the same name. [NCF-324](https://bugtracking.unidata.ucar.edu/browse/NCF-324)
173 * Enabled previously-disabled shell-script-based tests for Visual Studio when `bash` is detected.
175 ### 4.3.3-rc3 Released 2015-01-14
177 * Added functionality to make it easier to build `netcdf-fortran` as part of the `netcdf-c` build for *NON-MSVC* builds. This functionality is enabled at configure time by using the following **Highly Experimental** options:
179 * CMake: `-DENABLE_REMOTE_FORTRAN_BOOTSTRAP=ON`
180 * Autotools: `--enable-remote-fortran-bootstrap`
182 Details are as follows:
186 Enabling these options creates two new make targets:
188 * `build-netcdf-fortran`
189 * `install-netcdf-fortran`
191 Example Work Flow from netcdf-c source directory:
193 * $ `./configure --enable-remote-fortran-bootstrap --prefix=$HOME/local`
196 * $ `make build-netcdf-fortran`
197 * $ `make install-netcdf-fortran`
199 > These make targets are **only** valid after `make install` has been invoked. This cannot be enforced rigidly in the makefile for reasons we will expand on in the documentation, but in short: `make install` may require sudo, but using sudo will discard environmental variables required when attempting to build netcdf-fortran in this manner.<br><br>
201 > It is important to note that this is functionality is for *convenience only*. It will remain possible to build `netcdf-c` and `netcdf-fortran` manually. These make targets should hopefully suffice for the majority of our users, but for corner cases it may still be required of the user to perform a manual build. [NCF-323](https://bugtracking.unidata.ucar.edu/browse/NCF-323)
205 * Added a failure state if the `m4` utility is not found on non-Windows systems; previously, the build would fail when it reached the point of invoking m4.
207 * Added an explicit check in the build systems (autotools, cmake) for the CURL-related option `CURLOPT_CHUNK_BGN_FUNCTION`. This option was introduced in libcurl version `7.21.0`. On installations which require libcurl and have this version, `CURLOPT_CHUNK_BGN_FUNCTION` will be available. Otherwise, it will not.
209 * The pnetcdf support was not properly being used to provide mpi parallel io for netcdf-3 classic files. The wrong dispatch table was being used. [NCF-319](https://bugtracking.unidata.ucar.edu/browse/NCF-319)
211 * In nccopy utility, provided proper default for unlimited dimension in chunk-size specification instead of requiring explicit chunk size. Added associated test. [NCF-321](https://bugtracking.unidata.ucar.edu/browse/NCF-321)
213 * Fixed documentation typo in FILL_DOUBLE definition in classic format specification grammar. Fixed other typos and inconsistencies in Doxygen version of User Guide.
215 * For nccopy and ncgen, added numeric options (-3, -4, -6, -7) for output format, to provide less confusing format version specifications than the error-prone equivalent -k options (-k1, -k2, -k3, -k4). The new numeric options are compatible with NCO's mnemonic version options. The old -k numeric options will still be accepted but are deprecated, due to easy confusion between format numbers and format names. [NCF-314](https://bugtracking.unidata.ucar.edu/browse/NCF-314)
217 * Fixed bug in ncgen. When classic format was in force (k=1 or k=4), the "long" datatype should be treated as int32. Was returning an error. [NCF-318](https://bugtracking.unidata.ucar.edu/browse/NCF-318)
219 * Fixed bug where if the netCDF-C library is built with the HDF5 library but without the HDF4 library and one attempts to open an HDF4 file, an abort occurs rather than returning a proper error code (NC_ENOTNC). [NCF-317](https://bugtracking.unidata.ucar.edu/browse/NCF-317)
221 * Added a new option, `NC_EXTRA_DEPS`, for cmake-based builds. This is analogous to `LIBS` in autotools-based builds. Example usage:
223 $ cmake .. -NC_EXTRA_DEPS="-lcustom_lib"
225 More details may be found at the Unidata JIRA Dashboard. [NCF-316](https://bugtracking.unidata.ucar.edu/browse/NCF-316)
228 ### 4.3.3-rc2 Released 2014-09-24
230 * Fixed the code for handling character constants
231 in datalists in ncgen. Two of the problems were:
232 1. It failed on large constants
233 2. It did not handle e.g. var = 'a', 'b', ...
234 in the same way that ncgen3 did.
235 See [NCF-309](https://bugtracking.unidata.ucar.edu/browse/NCF-309).
237 * Added a new file, `netcdf_meta.h`. This file is generated automatically at configure time and contains information related to the capabilities of the netcdf library. This file may be used by projects dependent upon `netcdf` to make decisions during configuration, based on how the `netcdf` library was built. The macro `NC_HAVE_META_H` is defined in `netcdf.h`. Paired with judicious use of `ifdef`'s, this macro will indicate to developers whether or not the meta-header file is present. See [NCF-313](https://bugtracking.unidata.ucar.edu/browse/NCF-313).
239 > Determining the presence of `netcdf_meta.h` can also be accomplished by methods common to autotools and cmake-based build systems.
241 * Changed `Doxygen`-generated documentation hosted by Unidata to use more robust server-based searching.
242 * Corrected embedded URLs in release notes.
243 * Corrected an issue where building with HDF4 support with Visual Studio would fail.
245 ### 4.3.3-rc1 Released 2014-08-25
247 * Added `CMake`-based export files, contributed by Nico Schlömer. See https://github.com/Unidata/netcdf-c/pull/74.
249 * Documented that ncgen input can come from standard input.
251 * Regularized generation of libnetcdf.settings file to make parsing it easier.
253 * Fixed ncdump bug for char variables with multiple unlimited dimensions and added an associated test. Now the output CDL properly disambiguates dimension groupings, so that ncgen can generate the original file from the CDL. [NCF-310](https://bugtracking.unidata.ucar.edu/browse/NCF-310)
255 * Converted the [Manually-maintained FAQ page](http://www.unidata.ucar.edu/software/netcdf/docs/faq.html) into markdown and added it to the `docs/` directory. This way the html version will be generated when the rest of the documentation is built, the FAQ will be under version control, and it will be in a more visible location, hopefully making it easier to maintain.
257 * Bumped minimum required version of `cmake` to `2.8.12`. This was necessitated by the adoption of the new `CMAKE_MACOSX_RPATH` property, for use on OSX.
259 * Jennifer Adams has requested a reversion in behavior so that all dap requests include a constraint. Problem is caused by change in prefetch where if all variables are requested, then no constraint is generated. Fix is to always generate a constraint in prefetch.
260 [NCF-308](https://bugtracking.unidata.ucar.edu/browse/NCF-308)
262 * Added a new option for cmake-based builds, `ENABLE_DOXYGEN_LATEX_OUTPUT`. On those systems with `make` and `pdflatex`, setting this option **ON** will result in pdf versions of the documentation being built. This feature is experimental.
264 * Bumped minimum CMake version to `2.8.9` from `2.8.8` as part of a larger pull request contributed by Nico Schlömer. [Pull Request #64](https://github.com/Unidata/netcdf-c/pull/64)
266 * Replaced the `NetCDF Library Architecture` image with an updated version from the 2012 NetCDF Workshop slides.
268 * Fix HDF4 files to support chunking.
269 [NCF-272](https://bugtracking.unidata.ucar.edu/browse/NCF-272)
271 * NetCDF creates a `libnetcdf.settings` file after configuration now, similar to those generated by `HDF4` and `HDF5`. It is installed into the same directory as the libraries. [NCF-303](https://bugtracking.unidata.ucar.edu/browse/NCF-303).
274 * Renamed `man4/` directory to `docs/` to make the purpose and contents clearer. See [man4 vs. docs #60](https://github.com/Unidata/netcdf-c/issues/60).
276 * Removed redundant variable `BUILD_DOCS` from the CMake configuration file. See the issue at github: [#59](https://github.com/Unidata/netcdf-c/issues/59).
278 * Added missing documentation templates to `man4/Makefile.am`, to correct an issue when trying to build the local `Doxygen`-generated documentation. This issue was reported by Nico Schlömer and may be viewed on github. [Releases miss Doxygen files #56](https://github.com/Unidata/netcdf-c/issues/56)
280 * When the NC_MPIPOSIX flag is given for parallel I/O access and the HDF5 library does not have the MPI-POSIX VFD configured in, the NC_MPIPOSIX flag is transparently aliased to the NC_MPIIO flag within the netCDF-4 library.
282 ## 4.3.2 Released 2014-04-23
284 * As part of an ongoing project, the Doxygen-generated netcdf documentation has been reorganized. The goal is to make the documentation easier to parse, and to eliminate redundant material. This project is ongoing.
286 * The oc .dodsrc reader was improperly handling the user name and password entries. [NCF-299](https://bugtracking.unidata.ucar.edu/browse/NCF-299)
288 * CTestConfig.cmake has been made into a template so that users may easily specify the location of an alternative CDash-based Dashboard using the following two options:
290 * `NC_TEST_DROP_SITE` - Specify an alternative Dashboard by URL or IP address.
292 * `NC_CTEST_DROP_LOC_PREFIX` - Specify a prefix on the remote webserver relative to the root directory. This lets CTest accommodate dashboards that do not live at the top level of the web server.
294 * Return an error code on open instead of an assertion violation for truncated file.
296 * Documented limit on number of Groups per netCDF-4 file (32767).
298 ### 4.3.2-rc2 Released 2014-04-15
300 * Cleaned up a number of CMake inconsistencies related to CMake usage, parallel builds.
301 * Now passing -Wl,--no-undefined to linker when appropriate.
302 * Corrected an issue preventing large file tests from running correctly under Windows.
303 * Misc Bug Fixes detected by static analysis.
305 ### 4.3.2-rc1 Released 2014-03-20
307 * Pre-built Windows downloads will now be bundled with the latest (as of the time of this writing) versions of the various dependencies:
312 * Added a separate flag to enable DAP AUTH tests. These tests are disabled by default. The flags for autotools and CMAKE-based builds are (respectively):
313 * --enable-dap-auth-tests
314 * -DENABLE\_DAP\_AUTH\_TESTS
316 * Fixed small default chunk size for 1-dimensional record variables. [NCF-211](https://bugtracking.unidata.ucar.edu/browse/NCF-211)
318 * Cleaned up type handling in netCDF-4 to fix bugs with fill-values.
320 * Corrected "BAIL" macros to avoid infinite loop when logging is disabled and an error occurs.
322 * Refactored how types are used for attributes, variables, and committed types, clarifying and categorizing fields in structs, and eliminating duplicated type information between variables and types they use.
324 * Made type structure sharable by committed datatypes and variables that use it.
326 * Handled string datatypes correctly, particularly for fill value attributes. Expanded testing for string fill values.
328 * Simplified iteration of objects in the file when it's opened, tracking fewer objects and using less memory.
330 * Enabled netCDF-4 bit-for-bit reproducibility for nccopy and other applications (thanks to Rimvydas Jasinskas and Quincey Koziol) by turning off HDF5 object creation, access, and modification time tracking. [NCF-290](https://bugtracking.unidata.ucar.edu/browse/NCF-290)
332 * Addressed an issue where `cmake`-based builds would not properly create a `pkg-config` file. This file is now created properly by `cmake`. [NCF-288](https://bugtracking.unidata.ucar.edu/browse/NCF-288)
334 * Addressed an issue related to old DAP servers. [NCF-287](https://bugtracking.unidata.ucar.edu/browse/NCF-287)
336 * Modified nc_{get/put}_vars to no longer use
337 nc_get/put_varm. They now directly use nc_get/put_vara
338 directly. This means that nc_get/put_vars now work
339 properly for user defined types as well as atomic types.
340 [NCF-228] (https://bugtracking.unidata.ucar.edu/browse/NCF-228)
342 ## 4.3.1.1 Released 2014-02-05
344 This is a bug-fix-only release for version 4.3.1.
346 * Corrected a DAP issue reported by Jeff Whitaker related to non-conforming servers.
348 * Corrected an issue with DAP tests failing in a 64-bit Cygwin environment. [NCF-286](https://bugtracking.unidata.ucar.edu/browse/NCF-286)
350 ## 4.3.1 Released 2014-01-16
352 * Add an extended format inquiry method to the netCDF API: nc\_inq\_format\_extended. NC\_HAVE\_INQ\_FORMAT\_EXTENDED is defined in netcdf.h [NCF-273]
354 [NCF-273]:https://bugtracking.unidata.ucar.edu/browse/NCF-273
357 ### 4.3.1-rc6 Released 2013-12-19
359 * Fixed fill value handling for string types in nc4\_get\_vara().
361 * Corrected behavior of nc\_inq\_unlimdim and nv\_inq\_unlimdims to report dimids
362 in same order as nc\_inq\_dimids.
364 * Addressed an issue reported by Jeff Whitaker regarding `nc_inq_nvars` returning an incorrect number of dimensions (this issue was introduced in 4.3.1-rc5). Integrated a test contributed by Jeff Whitaker.
366 * A number of previously-disabled unit tests were reviewed and made active.
369 ### 4.3.1-rc5 Released 2013-12-06
371 * When opening a netCDF-4 file, streamline the iteration over objects in the underlying HDF5 file.
373 * Fixed netCDF-4 failure when renaming a dimension and renaming a variable using that dimension, in either order. [NCF-177]
375 [NCF-177]:https://bugtracking.unidata.ucar.edu/browse/NCF-177
377 * When compiling with `hdf4` support, both autotools and cmake-based builds now properly look for the `libjpeg` dependency and will link against it when found (or complain if it's not). Also added `ENABLE_HDF4_FILE_TESTS` option to CMake-based builds.
379 * Fixed bug in ncgen; it was not properly filling empty string constants ("") to be the proper length. [NCF-279]
381 [NCF-279]:https://bugtracking.unidata.ucar.edu/browse/NCF-279
383 * Fixed bug in ncgen where it was interpreting int64 constants
384 as uint64 constants. [NCF-278]
386 [NCF-278]:https://bugtracking.unidata.ucar.edu/browse/NCF-278
388 * Fixed bug in handling Http Basic Authorization. The code was actually there but was not being executed. [NCF-277]
390 [NCF-277]:https://bugtracking.unidata.ucar.edu/browse/NCF-277
392 * Added hack to the DAP code to address a problem with the Columbia.edu server. That server does not serve up proper DAP2 DDS replies. The Dataset {...} name changes depending on if the request has certain kinds of constraints. [NCF-276]
394 [NCF-276]:https://bugtracking.unidata.ucar.edu/browse/NCF-276
396 * Fixed bugs with ncdump annotation of values, using -b or -f
399 [NCF-275]:https://bugtracking.unidata.ucar.edu/browse/NCF-275
402 ### 4.3.1-rc4 Released 2013-11-06
404 * Addressed an issue on Windows where `fstat` would report an incorrect file size on files > 4GB. [NCF-219]
407 * Added better documentation about accessing ESG datasets.
408 See http://www.unidata.ucar.edu/software/netcdf/docs/esg.html.
410 * Corrected an issue with CMake-based builds enabling HDF4 support where the HDF4 libraries were in a non-standard location.
412 * Fix bug introduced by [NCF-267] where octal constants above
413 '\177' were not recognized as proper octal constants. [NCF-271]
415 [NCF-271]:https://bugtracking.unidata.ucar.edu/browse/NCF-271
417 * Fixed an issue where the `netcdf.3` man page was not being installed by CMake-based builds. [Github](https://github.com/Unidata/netcdf-c/issues/3)
421 ### 4.3.1-rc3 Released 2013-09-24
423 * Modify ncgen to support NUL characters in character array
426 [NCF-267]:https://bugtracking.unidata.ucar.edu/browse/NCF-267
428 * Modify ncgen to support disambiguating references to
429 an enum constant in a data list. [NCF-265]
431 [NCF-265]:https://bugtracking.unidata.ucar.edu/browse/NCF-265
433 * Corrected bug in netCDF-4 dimension ID ordering assumptions, resulting in access that works locally but fails through DAP server. [NCF-166]
435 [NCF-166]:https://bugtracking.unidata.ucar.edu/browse/NCF-166
437 * Added a new configuration flag, `NC_USE_STATIC_CRT` for CMake-based Windows builds. The default value is 'OFF'. This will allow the user to define whether to use the shared CRT libraries (\\MD) or static CRT libraries (\\MT) in Visual Studio builds.
439 * Ensure netCDF-4 compiles with OpenMPI as an alternative to MPICH2. [NCF-160]
441 [NCF-160]:https://bugtracking.unidata.ucar.edu/browse/NCF-160
443 * Addressed issue with hanging Parallel netCDF-4 using HDF5 1.8.10. [NCF-240]
445 [NCF-240]:https://bugtracking.unidata.ucar.edu/browse/NCF-240
447 * Addressed issue with Large File Support on Windows, using both 32 and 64-bit builds. [NCF-219]
449 [NCF-219]:https://bugtracking.unidata.ucar.edu/browse/NCF-219
451 * Removed deprecated directories:
457 ### 4.3.1-rc2 Released 2013-08-19
459 * Added `configure` and accompanying configuration files/templates to release repository. **These will only be added to tagged releases on GitHub**.
461 * Integrated a fix by Quincey Koziol which addressed a variation of [NCF-250], *Fix issue of netCDF-4 parallel independent access with unlimited dimension hanging*.
463 [NCF-250]:https://bugtracking.unidata.ucar.edu/browse/NCF-250
465 * Integrated change contributed by Orion Poplawski which integrated GNUInstallDirs into the netCDF-C CMake system; this will permit systems that install into lib64 (such as Fedora) to `make install` without problem.
467 * Corrected an error with the CMake config files that resulted in the `netcdf.3` manpage not being built or installed.
469 ### 4.3.1-rc1 Released 2013-08-09
471 * Migrated from the netCDF-C `subversion` repository to a publicly available GitHub repository available at https://github.com/Unidata/netCDF-C. This repository may be checked out (cloned) with the following command:
473 $ git clone https://github.com/Unidata/netCDF-C.git
475 * Note: in this release, it is necessary to generate the `configure` script and makefile templates using `autoreconf` in the root netCDF-C directory.:
479 * Added `nc_rename_grp` to allow for group renaming in netCDF-4 files. [NCF-204]
481 [NCF-204]: https://bugtracking.unidata.ucar.edu/browse/NCF-204
483 * Added a `NC_HAVE_RENAME_GRP` macro to netcdf.h, [as per a request by Charlie Zender][cz1]. This will allow software compiling against netcdf to easily query whether or not nc\_rename\_grp() is available.
485 [cz1]: https://bugtracking.unidata.ucar.edu/browse/NCF-204
487 * Added Greg Sjaardema's contributed optimization for the nc4\_find\_dim\_len function in libsrc4/nc4internal.c. The patch eliminates several malloc/free calls that exist in the original coding.
489 * Added support for dynamic loading, to compliment the dynamic loading support introduced in hdf 1.8.11. Dynamic loading support depends on libdl, and is enabled as follows: [NCF-258]
490 * autotools-based builds: --enable-dynamic-loading
491 * cmake-based builds: -DENABLE\_DYNAMIC\_LOADING=ON
493 [NCF-258]: https://bugtracking.unidata.ucar.edu/browse/NCF-258
495 * Fix issue of netCDF-4 parallel independent access with unlimited dimension hanging. Extending the size of an unlimited dimension in HDF5 must be a collective operation, so now an error is returned if trying to extend in independent access mode. [NCF-250]
497 [NCF-250]: https://bugtracking.unidata.ucar.edu/browse/NCF-250
499 * Fixed bug with netCDF-4's inability to read HDF5 scalar numeric attributes. Also allow, in addition to zero length strings, a new NULL pointer as a string value. to improve interoperability with HDF5. This required a new CDL constant, 'NIL', that can be output from ncdump for such a string value in an HDF5 or netCDF-4 file. The ncgen utility was also modified to properly handle such NIL values for strings. [NCF-56]
501 [NCF-56]: https://bugtracking.unidata.ucar.edu/browse/NCF-56
503 * Parallel-build portability fixes, particularly for OpenMPI and gcc/gfortran-4.8.x on OSX.
505 * Fix contributed by Nath Gopalaswamy to large file problem reading netCDF classic or 64-bit offset files that have a UINT32_MAX flag for large last record size of a variable that has values larger than 1 byte. This problem had previously been fixed for *writing* such data, but was only tested with an ncbyte variable.
507 * Fixed various minor documentation problems.
509 ## 4.3.0 Released 2013-04-29
511 * fsync: Changed default in autotools config file; fsync must now be
512 explicitly enabled instead of explicitly disabled. [NCF-239]
514 [NCF-239]: https://bugtracking.unidata.ucar.edu/browse/NCF-239
516 * Fixed netCDF-4 bug where odometer code for libdap2 mishandled stride > 1. Bug reported by Ansley Manke. [NCF-249]
518 [NCF-249]: https://bugtracking.unidata.ucar.edu/browse/NCF-249
520 * Fixed netCDF-4 bug so netCDF just ignores objects of HDF5 reference type in
521 the file, instead of rejecting the file. [NCF-29]
523 [NCF-29]: https://bugtracking.unidata.ucar.edu/browse/NCF-29
525 * Fixed netCDF-4 bug with particular order of creation of dimensions,
526 coordinate variables, and subgroups resulting in two dimensions with the
527 same dimension ID. [NCF-244]
529 [NCF-244]: https://bugtracking.unidata.ucar.edu/browse/NCF-244
531 * Fixed netCDF-4 bug with a multidimensional coordinate variable in a
532 subgroup getting the wrong dimension IDs for its dimensions. [NCF-247]
534 [NCF-247]: https://bugtracking.unidata.ucar.edu/browse/NCF-247
536 * Fixed bug with incorrect fixed-size variable offsets in header getting
537 written when schema changed for files created by parallel-netcdf. Thanks
538 to Wei-keng Liao for developing and contributing the fix. [NCF-234]
540 [NCF-234]: https://bugtracking.unidata.ucar.edu/browse/NCF-234
542 * Fixed bug in handling old servers that do not do proper Grid to
543 Structure conversions. [NCF-232]
545 [NCF-232]: https://bugtracking.unidata.ucar.edu/browse/NCF-232
547 * Replaced the oc library with oc2.0
549 * Fix bug with nc\_get\_var1\_uint() not accepting unsigned ints larger
550 than 2\*\*31. [NCF-226]
552 [NCF-226]: https://bugtracking.unidata.ucar.edu/browse/NCF-226
554 * Fix to convert occurrences of '/' in DAP names to %2f. [NCF-223]
556 [NCF-223]: https://bugtracking.unidata.ucar.edu/browse/NCF-223
558 * Fix bug in netCDF-4 with scalar non-coordinate variables with same name
559 as dimensions. [NCF-222]
561 [NCF-222]: https://bugtracking.unidata.ucar.edu/browse/NCF-222
563 * Fix bug in which calling netCDF-4 functions in which behavior that
564 should not depend on order of calls sometimes produces the wrong
567 [NCF-217]: https://bugtracking.unidata.ucar.edu/browse/NCF-217
569 * Merged in nccopy additions from Martin van Driel to support -g and -v
570 options for specifying which groups or variables are to be copied.
573 [NCF-216]: https://bugtracking.unidata.ucar.edu/browse/NCF-216
575 * Merged in parallel-netcdf bugs fixes from Greg Sjaardema. [NCF-214]
577 [NCF-214]: https://bugtracking.unidata.ucar.edu/browse/NCF-214
579 * Modify ncgen so that if the incoming file has a special attribute, then
580 it is used to establish the special property of the netcdf file, but the
581 attribute is not included as a real attribute in the file. [NCF-213].
583 [NCF-213]: https://bugtracking.unidata.ucar.edu/browse/NCF-213
585 * Added library version info to the user-agent string so that the server
586 logs will be more informative. [NCF-210]
588 [NCF-210]: https://bugtracking.unidata.ucar.edu/browse/NCF-210
590 * Added work around for bad servers that sometimes sends DAP dataset with
591 duplicate field names. [NCF-208]
593 [NCF-208]: https://bugtracking.unidata.ucar.edu/browse/NCF-208
595 * Fixed bug with strided access for NC\_STRING type. [NCF-206]
597 [NCF-206]: https://bugtracking.unidata.ucar.edu/browse/NCF-206
599 * Prevented adding an invalid \_FillValue attribute to a variable (with
600 nonmatching type or multiple values), to avoid later error when any
601 record variable is extended. [NCF-190]
603 [NCF-190]: https://bugtracking.unidata.ucar.edu/browse/NCF-190
605 * Fix bug in which some uses of vlen within compounds causes HDF5 errors.
608 [NCF-155]: https://bugtracking.unidata.ucar.edu/browse/NCF-155
610 * Fixed ncdump bug in display of data values of variables that use
611 multiple unlimited dimensions. [NCF-144]
613 [NCF-144]: https://bugtracking.unidata.ucar.edu/browse/NCF-144
615 * Fix bug in which interspersing def\_var calls with put\_var calls can
616 lead to corrupt metadata in a netCDF file with groups and inherited
617 dimensions. [NCF-134]
619 [NCF-134]: https://bugtracking.unidata.ucar.edu/browse/NCF-134
621 * Building shared libraries works with DAP and netCDF4 functionality.
624 [NCF-205]: https://bugtracking.unidata.ucar.edu/browse/NCF-205
625 [NCF-57]: https://bugtracking.unidata.ucar.edu/browse/NCF-57
627 * 32-and-64-bit builds are working under MinGW on Windows. [NCF-112]
629 [NCF-112]: https://bugtracking.unidata.ucar.edu/browse/NCF-112
631 * Config.h for Windows compiles are included in the build. [NCF-98]
633 [NCF-98]: https://bugtracking.unidata.ucar.edu/browse/NCF-98
635 * NetCDF-4 dependency on NC\_MAX\_DIMS has been removed. [NCF-71]
637 [NCF-71]: https://bugtracking.unidata.ucar.edu/browse/NCF-71
639 * 64-bit DLL's are produced on Windows. [NCF-65]
641 [NCF-65]: https://bugtracking.unidata.ucar.edu/browse/NCF-65
643 * DLL Packaging issues are resolved. [NCF-54]
645 [NCF-54]: https://bugtracking.unidata.ucar.edu/browse/NCF-54
647 * The CMake build system (with related ctest and cdash systems for
648 testing) has been integrated into netCDF-C. This allows for Visual
649 Studio-based builds in addition to gcc-based builds. This requires at
650 least CMake version 2.8.8. This replaces/supplements the cross-compiled
651 set of Visual-Studio compatible netCDF libraries introduced in netCDF
654 ## 4.2.1.1 Released 2012-08-03
656 * Patched libdap2/ncdap3.c to fix DAP performance bug remotely accessing large files (> 2GiB).
658 * Patched ncdump/dumplib.c to properly escape special characters in CDL output from ncdump for netCDF-4 string data.
661 ### 4.2.1 Released 2012-07-18
663 * Added a specific NC\_MMAP mode flag to modify behavior of NC\_DISKLESS.
665 * Changed the file protections for NC\_DISKLESS created files to 0666
668 * Fixed ncdump to report error when an unsupported option is specified.
671 * Fixed documentation of CDL char constants in Users Guide and ncgen man
674 * Fixed memory leak detected by valgrind in one of the HDF5 tests.
676 * Fixed problem with \#elif directives in posixio.c revealed by PGI
679 ### 4.2.1-rc1 Released 2012-06-18
681 * Ported static and shared libraries (DLL's) for both 32- and 64-bit
682 Windows, including support for DAP remote access, with netCDF-3 and
683 netCDF-4/HDF5 support enabled. The environment for this build is
684 MSYS/MinGW/MinGW64, but the resulting DLLs may be used with Visual
685 Studio. [NCF-112] [NCF-54] [NCF-57] [NCF-65]
687 * Implemented diskless files for all netCDF formats. For nc\_create(),
688 diskless operation performs all operations in memory and then optionally
689 persists the results to a file on close. For nc\_open(), but only for
690 netcdf classic files, diskless operation caches the file in-memory,
691 performs all operations on the memory resident version and then writes
692 all changes back to the original file on close.
693 [NCF-110][NCF-109][NCF-5]
695 * Added MMAP support. If diskless file support is enabled, then it is
696 possible to enable implementation of diskless files using the operating
697 system's MMAP facility (if available). The enabling flag is
698 "--enable-mmap". This is most useful when using nc\_open() and when only
699 parts of files, a single variable say, need to be read.
701 * Added configure flag for --disable-diskless.
703 * Added nccopy command-line options to exploit diskless files, resulting
704 in large speedups for some operations, for example converting unlimited
705 dimension to fixed size or rechunking files for faster access. Upgraded
706 doxygen and man-page documentation for ncdump and nccopy utilities,
707 including new -w option for diskless nccopy, with an example.
709 * Modified Makefile to allow for concurrent builds and to support builds
710 outside the source tree, e.g. 'mkdir build; cd build;
711 SOURCE-DIR/configure' where SOURCE-DIR is the top-level source
714 * Fixed some netCDF-4 bugs with handling strings in non-netCDF-4 HDF5
717 * Fixed bug using nccopy to compress with shuffling that doesn't compress
718 output variables unless they were already compressed in the input file.
721 * Fixed bug in 64-bit offset files with large records, when last record
722 variable requires more than 2\*\*32 bytes per record. [NCF-164]
724 * Fix bug in which passing a NULL path to nc\_open causes failure.
727 * Fixed ncgen bugs in parsing and handling opaque data.
729 * Fixed ncdump bug, not escaping characters special to CDL in enumeration
732 * Fixed bug reading netCDF int into a C longlong or writing from longlong
733 to external int on 32-bit platforms with classic format files. The upper
734 32 bits of the longlong were not cleared on read or used on write.
737 * Resolved some erroneous returns of BADTYPE errors and RANGE errors due
738 to conflating C memory types with external netCDF types when accessing
739 classic or 64-bit offset files. [NCF-172]
741 * Fixed bug with ncdump -t interpreting unit attribute without base time
742 as a time unit. [NCF-175]
744 * Changed port for testing remote access test server to increase
745 reliability of tests.
747 * Modified ncio mechanism to support multiple ncio packages, so that it is
748 possible to have e.g. posixio and memio operating at the same time.
750 * Generation of documentation is disabled by default. Use --enable-doxygen
751 to generate. [NCF-168]
753 * Added description of configure flags to installation guide.
755 * Clarified documentation of arguments to nc**open() and nc**create() and
756 their default values.
758 * Fixed doxygen installation guide source file to preserve line breaks in
759 code and scripts. [NCF-174]
761 * Cleaned up a bunch of lint issues (unused variables, etc.) and some
762 similar problems reported by clang static analysis.
764 * Updated and fixed pkg-config source file netcdf.pc.in to work with
765 separated netCDF language-specific packages. Also fixed nc-config to
766 call nf-config, ncxx-config, and ncxx4-config for for backward
767 compatibility with use of nc-config in current Makefiles. [NCF-165]
772 * Completely rebuilt the DAP constraint handling. This primarily affects
773 users who specify a DAP constraint as part of their URL. [NCF-120]
775 * Fixed cause of slow nccopy performance on file systems with many records
776 and large disk block size or many record variables, by accessing data a
777 record at a time instead of a variable at a time. [NCF-142]
779 * Performance improvement to DAP code to support fetching partial
780 variables into the cache; especially important when using nc\_get\_var()
781 API. A partial variable is one that has ranges attached to the
782 projection variables (e.g. x[1:10][20:21]) [NCF-157]
784 * Separate the Fortran and C++ libraries and release the C library and
785 ncdump/ncgen/nccopy without Fortran or C++. [NCF-24]
787 * Documentation mostly migrated to Doxygen, from Texinfo. [NCF-26]
789 * Properly convert vara start/count parameters to DAP [NCF-105][NCF-106]
791 * Fixed major wasted space from previous default variable chunk sizes
794 * Fixed bug in nccopy, in which compression and chunking options were
795 ignored for netCDF-4 input files. [NCF-79]
797 * Fixed bug in ncgen in which large variables (more than 2**18 elements)
798 duplicates the first 2**18 values into subsequent chunks of data
801 * Applied Greg Sjaardema's nccopy bug fix, not compressing output
802 variables f they were not already using compression on the input file
803 when shuffle specified. [NCF-162]
805 * Fixed problem when a URL is provided that contains only a host name.
808 * Fixed behavior of ncgen flags so that -o => -lb and, in the absence of
809 any other markers, make the default be -k1 [NCF-158]
811 * Created a text INSTALL file for netCDF-4.2 release. [NCF-161]
813 * Fixed bug in ncgen for vlen arrays as fields of compound types where
814 datalists for those types was improperly interpreted [NCF-145] (but see
817 * Improve use of chunk cache in nccopy utility, making it practical for
818 rechunking large files. [NCF-85]
820 * Fixed nccopy bug copying a netCDF-4 file with a chunksize for an
821 unlimited dimension that is larger than the associated dimension size.
824 * Fixed nccopy bug when rechunking a netCDF-4 file with a chunkspec option
825 that doesn't explicitly specify all dimensions. [NCF-140]
827 * Fixed bug in netCDF-4 files with non-coordinate variable with the same
828 name as a dimension. [NCF-141]
830 * Incorporated Wei Huang's fix for bug where netCDF-4 sometimes skips over
831 too many values before adding fill values to an in-memory buffer.
834 * Fixed ncgen bug with netCDF-4 variable-length constants (H/T to Lynton
837 * Incorporated Peter Cao's performance fixes using HDF5 link iterator for
838 any group with many variables or types. [NCF-148]
840 * Incorporated Constantine Khroulev's bug fix for invalid usage of
841 MPI\_Comm\_f2c in nc\_create\_par. [NCF-135]
843 * Fixed turning off fill values in HDF5 layers when NOFILL mode is set in
844 netCDF-4 API (thanks to Karen Schuchardt). [NCF-151]
846 * Fixed bug with scalar coordinate variables in netCDF-4 files, causing
847 failure with --enable-extra-tests [NCF-149]
849 * Cleaned up the definition and use of nulldup. [NCF-92][NCF-93][NCF-94]
851 * Fixed various '\#include' bugs. [NCF-91][NCF-96][NCF-127]
853 * v2 API functions modified to properly call the external API instead of
854 directly calling the netcdf-3 functions. [NCF-100]
856 * Fixed problem with 64-bit offset format where writing more than 2\*\*31
857 records resulted in erroneous NC\_EINVALCOORDS error. [NCF-101]
859 * Restored original functionality of ncgen so that a call with no flags,
860 only does the syntax check. [NCF-104]
862 * Corrected misc. test bugs [NCF-107]
864 * Modified ncdump to properly output various new types (ubyte, ushort,
865 uint, int64, and uint64). [NCF-111]
867 * Fixed incorrect link flag for szip in configure.ac [NCF-116]
869 * ncdump -t now properly parses ISO "T" separator in date-time strings.
872 * ncdump -t "human time" functionality now available for attributes and
873 bounds variables [NCF-70]
875 * In ncdump, add -g option to support selection of groups for which data
876 is displayed. [NCF-11]
878 * Now supports bluefire platform [NCF-52]
880 * ncdump now properly displays values of attributes of type NC\_USHORT as
881 signed shorts [NCF-82]
883 * Rename some code files so that there are no duplicate filenames.
886 * Demonstration of netCDF-4 Performance Improvement with KNMI Data
889 * Dimension size in classic model netCDF-4 files now allows larger sizes
890 than allowed for 64-bit offset classic files. [NCF-117]
892 * ncdump now reports correct error message when "-x" option specifying
893 NcML output is used on netCDF-4 enhanced model input. [NCF-129]
895 * Fixed bug causing infinite loop in ncdump -c of netCDF-4 file with
896 subgroup with variables using inherited dimensions. [NCF-136]
900 * Replace use of --with-hdf5= and other such configure options that
901 violate conventions and causes build problems. Set environment variables
902 CPPFLAGS, LDFLAGS, and LD\_LIBRARY\_PATH instead, before running
903 configure script. [NCF-20]
905 * Detect from configure script when szlib is needed [NCF-21]
907 * Fix bug that can silently zero out portions of a file when writing data
908 in nofill mode beyond the end of a file, crossing disk-block boundaries
909 with region to be written while in-memory buffer is in a specific state.
910 This bug was observed disabling fill mode using Lustre (or other large
911 blksize file system) and writing data slices in reverse order on disk.
914 * Fix bug that prevents netCDF-4/HDF5 files created with netCDF-4.1.2 from
915 being read by earlier versions of netCDF or HDF5 versions before 1.8.7.
918 * Fix bug in configure that did not make the search for the xdr library
919 depend on --enable-dap. [NCF-41]
921 * Fix ncgen bug that did not use the value of a \_Format attribute in the
922 input CDL file to determine the kind of output file created, when not
923 specified by the -k command-line flag. [NCF-42]
925 * Fix ncgen bug, not properly handling unsigned longlong parsing. [NCF-43]
927 * Fix DAP client code to suppress variables with names such as "x.y",
928 which DAP protocol interprets as variable "y" inside container "x". Such
929 variables will be invisible when accessed through DAP client. [NCF-47]
931 * Define uint type for unsigned integer, if not otherwise available.
932 Symptom was compile error involving uint in putget.c. [NCF-49]
934 * Fix username+password handling in the DAP client code. [NCF-50]
936 * Add test for handling parallel I/O problem from f77 when user forgets to
937 turn on one of the two MPI flags. [NCF-60]
939 * Resolved "make check" problems when ifort compiler. Some "make install"
940 problems remain when using MPI and shared libraries. [NCF-61]
942 * Fix problem with f90\_def\_var not always handle deflate setting when
943 compiler was ifort. [NCF-67]
945 * Check that either MPIIO or MPIPOSIX flag is set when parallel create or
946 open is called. Also fix examples that didn't set at least one of these
949 * Improve documentation on handling client-side certificates [NCF-48]
951 * Document that array arguments, except in varm functions, must point to
952 contiguous blocks of memory. [NCF-69]
954 * Get netCDF-4 tests working for DLLs generated with mingw. [NCF-6]
956 * Make changes necessary for upgrading to HDF5 1.8.7 [NCF-66]
958 ### 4.1.3-rc1 2011-05-06
960 * Stop looking for xdr if --disable-dap is used.
962 * Don't try to run (some) fortran configure tests on machines with no
965 * Allow nccopy to rechunk with chunksizes larger than current dimension
968 * Initial implementation of CDMREMOTE is complete; needs comprehensive
971 ### 4.1.3-beta1 2011-04-29
973 * Fixed szlib not linking bug.
975 * Fixed dreaded "nofill bug", lurking in netCDF classic since at least
976 1999. Writing more than a disk block's worth of data that crossed disk
977 block boundaries more than a disk block beyond the end of file in nofill
978 mode could zero out recently written earlier data that hadn't yet been
981 * Changed setting for H5Pset\_libver\_bounds to ensure that all netCDF-4
982 files can be read by HDF5 1.8.x.
984 * Merged libncdap3 and libncdap4 into new libdap2 library. The suffix dap2
985 now refers to the dap protocol. This is in prep for adding dap4 protocol
988 * Took out --with-hdf5 and related options due to high cost of maintaining
989 this non-standard way of finding libraries.
993 * Changes in build system to support building dlls on cygwin/mingw32.
995 * Changes to fix portability problems and get things running on all test
998 * Some minor documentation fixes.
1000 * Fixed opendap performance bug for nc\_get\_vars; required adding
1001 nc\_get\_var{s,m} to the dispatch table.
1003 * Now check for libz in configure.ac.
1005 * Fixed some bugs and some performance problems with default chunksizes.
1007 ### 4.1.2-beta2 2011-01-11
1009 * Add "-c" option to nccopy to specify chunk sizes used in output in terms
1010 of list of dimension names.
1012 * Rewrite netCDF-4 attribute put code for a large speedup when writing
1015 * Fix nc-config --libs when static dependent libraries are not installed
1016 in the same directory as netCDF libraries (thanks to Jeff Whitaker).
1018 * Build shared libraries by default, requiring separate Fortran library.
1019 Static libraries now built only with --disable-shared.
1021 * Refactor of HDF5 file metadata scan for large speedup in opening files,
1022 especially large files.
1024 * Complete rewrite of the handling of character datalist constants. The
1025 heuristics are documented in ncgen.1.
1027 * Eliminate use of NC\_MAX\_DIMS and NC\_MAX\_VARS in ncdump and nccopy,
1028 allocating memory as needed and reducing their memory footprint.
1030 * Add documentation for new nc\_inq\_path() function.
1032 * Use hashing to speedup lookups by name for files with lots of dimensions
1033 and variables (thanks to Greg Sjaardema).
1035 * Add options to nccopy to support uniform compression of variables in
1036 output, shuffling, and fixing unlimited dimensions. Documented in
1037 nccopy.1 man page and User's Guide.
1039 ### 4.1.2-beta1 2010-07-09
1041 * Fix "ncdump -c" bug identifying coordinate variables in groups.
1043 * Fix bug in libsrc/posixio.c when providing sizehint larger than default,
1044 which then doesn't get used (thanks to Harald Anlauf).
1046 * Fix netCDF-4 bug caused when doing enddef/redef and then defining
1047 coordinate variable out of order.
1049 * Fixed bug in man4 directory automake file which caused documentation to
1050 be rebuilt after make clean.
1052 * Turned off HDF5 caching when parallel I/O is in use because of its
1055 * Refactoring of netCDF code with dispatch layer to decide whether to call
1056 netCDF classic, netCDF-4, or opendap version of a function.
1058 * Refactoring of netCDF-4 memory internals to reduce memory use and end
1059 dependence on NC\_MAX\_DIMS and NC\_MAX\_NAME.
1061 * Modified constraint parser to be more compatible with a java version of
1064 * Modified ncgen to utilize iterators internally; should be no user
1067 * Fixed two large-file bugs with using classic format or 64-bit offset
1068 format and accessing multidimensional variables with more than 2\*\*32
1073 * Fixed various build issues.
1075 * Fixed various memory bugs.
1077 * Fixed bug for netCDF-4 files with dimensions and coord vars written in
1078 different orders, with data writes interspersed.
1080 * Added test for HDF5-1.8.4 bug.
1082 * Added new C++ API from Lynton Appel.
1086 * Much better memory leak checking with valgrind.
1088 * Added per-variable chunk cache control for better performance. Use
1089 nc\_set\_var\_chunk\_cache / nf\_set\_var\_chunk\_cache /
1090 nf90\_set\_var\_chunk\_cache to set the per-variable cache.
1092 * Automatically set per-variable chunk cache when opening a file, or
1093 creating a variable, so that the cache is big enough for more than one
1094 chunk. (Can be overridden by user). Settings may be changed with
1095 configure options --max-default-chunk-size and
1096 --default-chunks-in-cache.
1098 * Better default chunks size. Now chunks are sized to fit inside the
1099 DEFAULT\_CHUNK\_SIZE (settable at configure time with
1100 --with-default-chunk-size= option.)
1102 * Added nccopy utility for converting among netCDF format variants or to
1103 copy data from DAP servers to netCDF files.
1105 * The oc library has been modified to allow the occurrence of alias
1106 definitions in the DAS, but they will be ignored.
1108 * The old ncgen has been moved to ncgen3 and ncgen is now the new ncgen4.
1110 * Modified --enable-remote-tests to be on by default.
1112 * Fixed the nc\_get\_varm code as applied to DAP data sources.
1114 * Added tests for nc-config.
1116 * Many documentation fixes.
1118 * Added capability to use the parallel-netcdf (a.k.a. pnetcdf) library to
1119 perform parallel I/O on classic and 32-bit offset files. Use the
1120 NC\_PNETCDF mode flag to get parallel I/O for non-netcdf-4 files.
1122 * Added libcf library to netCDF distribution. Turn it on with configure
1123 option --with-libcf.
1125 * Added capability to read HDF4 files created with the SD (Scientific
1128 * The DAP support was revised to closely mimic the original libnc-dap
1131 * Significantly revised the data handling mechanism in ncgen4 to more
1132 closely mimic the output from the original ncgen.
1134 * Added prototype NcML output capability to ncgen4. It is specified by the
1137 * Added capability to read HDF5 files without dimension scales. This will
1138 allow most existing HDF5 datasets to be read by netCDF-4.
1140 * Fixed bug with endianness of default fill values for integer types when
1141 variables are created with a non-native endiannesss and use the default
1144 * Significant refactoring of HDF5 type handling to improve performance and
1145 handle complicated nesting of types in cross-platform cases.
1147 * Added UDUNITS2 to the distribution. Use --with-udunits to build udunits
1150 * Made changes suggested by HDF5 team to relax creation-order requirement
1151 (for read-only cases) which allows HDF5 1.6.x files to be retrofitted
1152 with dimension scales, and be readable to netCDF-4.
1154 * Handle duplicate type names within different groups in ncdump. Fix group
1155 path handling in absolute and relative variable names for "-v" option.
1157 * Added nc-config shell script to help users build netCDF programs without
1158 having to figure out all the compiler options they will need.
1160 * Fixed ncdump -s bug with displaying special attributes for classic and
1161 64-bit offset files.
1163 * For writers, nc\_sync() now calls fsync() to flush data to disk sooner.
1165 * The nc\_inq\_type() function now works for primitive types.
1169 * Added optional arguments to F90 API to nf90\_open/create,
1170 nf90\_create\_var, and nf90\_inquire\_variable so that all netCDF-4
1171 settings may be accomplished with optional arguments, instead of
1172 separate function calls.
1174 * Added control of HDF5 chunk cache to allow for user performance tuning.
1176 * Added parallel example program in F90.
1178 * Changed default chunking to better handle very large variables.
1180 * Made contiguous the default for fixed size data sets with no filters.
1182 * Fixed bug in nc\_inq\_ncid; now it returns NC\_ENOGRP if the named group
1185 * Fixed man pages for C and F77 so that netCDF-4 builds will result in man
1186 pages that document new netCDF-4 functions.
1188 * Added OPeNDAP support based on a new C-only implementation. This is
1189 enabled using --enable-dap option and requires libcurl. The configure
1190 script will attempt to locate libcurl, but if it fails, then its
1191 location must be specified by the --with-curl option.
1193 ### 4.0.1-beta2 2008-12-26
1195 * Changed chunksizes to size\_t from int.
1197 * Fixed fill value problem from F77 API.
1199 * Fixed problems in netcdf-4 files with multi-dimensional coordinate
1202 * Fixed ncgen to properly handle CDL input that uses Windows line endings
1203 ("\r\n"), instead of getting a syntax error.
1205 * Added "-s" option to ncdump to display performance characterisitics of
1206 netCDF-4 files as special virtual attributes, such as \_Chunking,
1207 \_DeflateLevel, \_Format, and \_Endianness.
1209 * Added "-t" option to ncdump to display times in human readable form as
1210 strings. Added code to interpret "calendar" attribute according to CF
1211 conventions, if present, in displaying human-readable times.
1213 * Added experimental version of ncgen4 capable of generating netcdf-4 data
1214 files and C code for creating them. In addition, it supports the special
1215 attributes \_Format, etc.
1217 * 4.0.1-beta1 2008-10-16
1219 * Fixed Fortran 90 int64 problems.
1221 * Rewrote HDF5 read/write code in accordance with performance advice from
1224 * Fixed memory leaks in gets/puts of HDF5 data.
1226 * Fixed some broken tests for parallel I/O (i.e. MPI) builds.
1228 * Fixed some cross-compile problems.
1230 * Rewrote code which placed bogus errors on the HDF5 error stack, trying
1231 to open non-existent attributes and variables. Now no HDF5 errors are
1234 * Removed man subdirectory. Now man4 subdirectory is used for all builds.
1236 * Changed build so that users with access to parallel make can use it.
1238 * Added experimental support for accessing data through OPeNDAP servers
1239 using the DAP protocol (use --enable-opendap to build it).
1241 * Fixed ncdump bugs with array field members of compound type variables.
1242 Fixed ncdump bug of assuming default fill value for data of type
1247 * Introduced the use of HDF5 as a storage layer, which allows use of
1248 groups, user-defined types, multiple unlimited dimensions, compression,
1249 data chunking, parallel I/O, and other features. See the netCDF Users
1250 Guide for more information.
1254 * In ncdump and ncgen, added CDL support for UTF-8 encoding of characters
1255 in names and for escaped special chars in names. Made sure UTF-8 names
1256 are normalized using NFC rules before storing or comparing.
1258 * Handle IEEE NaNs and infinities in a platform-independent way in ncdump
1261 * Added support for ARM representation of doubles, (thanks to Warren
1264 * Fixed bug in C++ API creating 64-bit offset files. (See
1265 http://www.unidata.ucar.edu/software/netcdf/docs/known_problems.html#cxx_64-bit).
1267 * Fixed bug for variables larger than 4 GB. (See
1268 http://www.unidata.ucar.edu/software/netcdf/docs/known_problems.html#large_vars_362).
1270 * Changed the configure.ac to build either 3.6.x or 4.x build from the
1273 * Build now checks gfortran version and handles it cleanly, also Portland
1274 Group in Intel fortran, with various configurations.
1276 * A Fortran netcdf.inc file is now created at build time, based on the
1277 setting of --disable-v2.
1279 * Documentation has been fixed in several places.
1281 * Upgraded to automake 1.10, autoconf 2.62, and libtool 2.2.2.
1283 * Includes missing Windows Visual Studio build files.
1285 * Fixed missing include of config.h in a C++ test program.
1287 * Fixed maintainer-clean in man directory.
1289 * Fixed --enable-c-only and make check.
1291 * Fixed behavior when opening a zero-length file.
1293 * Many portability enhancements to build cleanly on various platforms.
1295 * Turned on some old test programs which were not being used in the build.
1301 ### 3.6.2 beta6 2007-01-20
1303 * Fine tuning of build system to properly handle cygwin, Mingw, and
1304 strange configuration issues.
1306 * Automake 1.10 has a problem with running our tests on MinGW, so I'm
1307 switching back to automake 1.9.6 for this release.
1309 ### 3.6.2 beta5 2006-12-30
1311 * Now netCDF configuration uses autoconf 2.61, and automake 1.10. (Thanks
1312 to Ralf Wildenhues for the patches, and all the autotools help in
1315 * Final major revision of netCDF tutorial before the 3.6.2 release.
1317 * Now netCDF builds under MinGW, producing a windows DLL with the C and
1318 F77 APIs. Use the --enable-shared --enable-dll --disable-cxx
1319 --disable-f90 flags to configure. (C++ and F90 have never been built as
1320 windows DLLs, but might be in a future release if there is user
1321 interest). This has all been documented in the netCDF Porting and
1324 * Now extreme numbers (i.e. those close to the limits of their type) can
1325 be turned off in nc\_test/nf\_test, with --disable-extreme-numbers. It
1326 is turned off automatically for Solaris i386 systems.
1328 * Added --enable-c-only option to configure. This causes only the core
1329 netCDF-3 C library to be built. It's the same as --disable-f77
1330 --disable-cxx --disable-v2 --disable-utilities.
1332 * Added --disable-utilities to turn off building and testing of
1335 * Fix a long-standing bug in nf90\_get\_att\_text() pointed out by Ryo
1336 Furue, to make sure resulting string is blank-padded on return. This is
1337 fixed in the Fortran-90 interface, but is impractical to fix in the
1338 Fortran-77 interface implemented via cfortran.h.
1340 * Now large file tests are run if --enable-large-file-tests is used in the
1343 * For Cray users, the ffio module is used if the --enable-ffio option is
1344 passed to configure.
1346 * Unrolled loops in byte-swapping code used on little-endian platforms to
1347 reduce loop overhead. This optimization resulted in a 22% speedup for
1348 some applications accessing floats or ints (e.g. NCO utilities ncap and
1349 ncbo) and a smaller speedup for shorts or doubles.
1351 * Added "-k" option to ncdump and ncgen, for identifying and specifying
1352 the kind of netCDF file, one of "classic", "64-bit-offset", "hdf5", or
1353 "hdf5-nc3". Removed output of kind of netCDF file in CDL comment
1356 * Fixed bug of ncdump seg-faulting if invoked incorrectly with option like
1357 "-c" or "-h" but no file name.
1359 ### 3.6.2 beta4 2006-08-15
1361 * Changed F77/F90 man pages from netcdf.3f and netcdf.3f90 to
1362 netcdf\_f77.3 and netcdf\_f90.3. Also fixed broken install of man pages.
1364 * Changed configure script so that "-g -O2" is no longer set as CFLAGS,
1365 CXXFLAGS, and FFLAGS by default if a GNU compiler is being used. Now
1368 * Changed configure script so that fortran flag is set in config.h.
1370 * Updated Installation and Porting Guide, C++ Interface Guide, F77 and F90
1373 * Build with static libraries by default.
1375 * Added configure option --enable-separate-fortran, which causes the
1376 fortran library to be built separately. This is turned on automatically
1377 for shared libraries.
1379 * Improved clarity of error messages.
1381 * Changed configuration to get cygwin DLL and mingw DLL builds working,
1382 for the C library only (i.e. no F77, F90, or C++ APIs).
1384 * Changed type of ncbyte in C++ interface from unsigned char to signed
1385 char, for consistency with C interface. The C++ documentation warned
1386 this change would eventually occur.
1388 * Changed the C++ interface to use only the netCDF-3 C interface instead
1389 of the older netCDF-2 C interface. This has the added benefit that
1390 on-the-fly numeric conversions are now supported using get methods, for
1391 example you can get data of any type as double. When using --disable-v2
1392 flag to configure, the C++ interface can now be built and installed.
1394 ### 3.6.2 beta3 2006-05-24
1396 * Changed to use default prefix of /usr/local instead of package-based
1397 prefix of previous releases of netCDF. Use the --prefix argument to the
1398 configure script to override the default.
1400 * Made separate fortran library file, instead of appending fortran library
1401 functions to the C library file, if --enable-separate-fortran is used
1402 during configure (it's turned on automatically if --enable-shared is
1403 used). If uses, the fortran API users must link to *both* the C library
1404 and the new fortran library, like this: -lnetcdff -lnetcdf
1406 * Added netCDF examples in C, C++, F77, F90, and CDL. See the examples
1409 * Added the NetCDF Tutorial.
1411 * Minor fixes to some of the netCDF documentation.
1413 * Made it possible to build without V2 API using --disable-v2 from
1416 * Switched to new build system, with automake and libtool. Now shared
1417 libraries are built (as well as static ones) on platforms which support
1418 it. For more information about shared libraries, see
1419 http://www.unidata.ucar.edu/software/netcdf/docs/faq.html#shared_intro
1421 * Fixed ncdump crash that happened when no arguments were used.
1423 * Fixed for building with gfortran 4.1.0.
1425 * Important fix for machines whose SIZEOF\_SIZE\_T != SIZEOF\_LONG, such
1426 as NEC-SX, thanks to Stephen Leak.
1428 * Fixed C++ on AIX platform.
1430 * Fixed 64-bit builds on AIX platform.
1432 * Removed bad assertion that could be triggered in rare cases when reading
1435 * Added comments in v1hpg.c to clarify purpose of each internal function.
1437 * Make sure filesize is determined in nc\_close() *after* buffers get
1440 * Fix long-standing problem resulting in files up to 3 bytes longer than
1441 necessary if there is exactly one record variable of type byte, char, or
1442 short and if the number of values per record for that variable is not
1443 divisible by 4 (or 2 in the case of short). Now the filesize determined
1444 from header info by NC\_calcsize should be correct in all cases.
1448 * Updated installation manual for 3.6.1.
1450 * Changed installation to try to provide correct compiler flags for
1451 compiling in 64-bit mode on Sun, Irix, AIX, and HPUX. (HPUX doesn't work
1452 for me, however). Now run configure with --enable-64bit to get a 64 bit
1455 * Fixed long-standing bug that would cause small netCDF files to be padded
1456 on the end with zero bytes to 4096 bytes when they were opened and
1457 changed. Now small files should stay small after you change a value.
1459 * Fixed bug in assertions in putget.c that would only be noticed if you
1460 change the manifest constant NC\_MAX\_DIMS in netcdf.h to be different
1461 from NC\_MAX\_VAR\_DIMS.
1463 * Moved test ftest.F from fortran to nf\_test directory, and fixed bug in
1464 ftest.F which caused it to return 0 even if tests failed (no tests were
1465 failing, however). Also renamed some test output files to make things a
1468 * If open for writing, pad with up to 3 extra zero bytes before close to
1469 the correct canonical length, calculated from the header. Previously
1470 files could be short due to not padding when writing in NOFILL mode.
1472 * Doubled arbitrary limits on number of dimensions, variables, attributes,
1473 and length of names.
1475 * Change name of nc\_get\_format() to nc\_inq\_format(). Add analogous
1476 interfaces for nf\_inq\_format(), nf90\_inquire(), and
1477 NcFile::get\_format() to f77, f90, and C++ interfaces. Document new
1478 function in texinfo files. Add minimal test to nc\_test, nf\_test.
1480 ### 3.6.1-beta3 2005-02-17
1482 * Added function nc\_get\_format(int ncid, int\* formatp) that returns
1483 either NC\_FORMAT\_CLASSIC or NC\_FORMAT\_64BIT for a CDF1 or CDF2 file,
1486 * Added test to nc\_test that detects whether format version was changed
1487 after a file is reopened and define mode is entered.
1489 * Correctly configure for Intel ifort Fortran compiler on Linux.
1491 ### 3.6.0-p1 2005-02-18
1493 * Fixed bug that changes CDF2 files to CDF1 files if CDF2 file is reopened
1494 for write access and either an attribute is changed or define mode is
1497 ### 3.6.1-beta2 2005-1-6
1499 * Fixed absoft compile problem. Maybe.
1501 ### 3.6.1-beta1 2005-1-3
1503 * Fixed Cygwin C++ problem.
1505 * Fixed large file problem in MS Visual C++.NET environment.
1507 * More information in installation and porting guide.
1511 * Added texinfo source for the documentation.
1513 * Added large file tests to Windows directory in distribution.
1515 * Modified win32 visual studio project files so that m4 is no longer
1516 required to build netcdf under visual studio.
1518 * Modified rules.make to use install instead of cp, fixing install problem
1521 * Modified configure/install stuff to support HP-UX.
1523 * Modified configure/install stuff to support G95.
1525 * In the f90 interface, applied Arnaud Desitter's fixes to correct
1526 mismatches between scalar and array arguments, eliminating (legitimate)
1527 complaints by the NAGWare f95 compiler. Also fixed bugs introduced in
1528 3.6.0-beta5 in the mapped array interfaces.
1530 ### 3.6.0-beta6 2004-10-05
1532 * Fixed AIX 64-bit/largefile install problems.
1534 * Removed FAQ section from netcdf.texi User's Guide, in deference to
1535 online version that can be kept up to date more easily.
1537 ### 3.6.0-beta5 2004-10-04
1539 * Fixed assertion violation on 64-bit platforms when size of last fixed
1540 size variable exceeds 2\^32 - 1.
1542 * Removed another restriction on file size by making record size (derived
1543 from other sizes, not part of the format) an off\_t instead of a
1544 size\_t, when an off\_t is larger than a size\_t. This permits records
1545 to be *much* larger in either classic format or 64-bit-offset format.
1547 * Incorporated patch from Mathis Rosenhauer to improve performance of
1548 Fortran 90 interface for calls to nf90\_put\_var\_TYPE(),
1549 nf90\_get\_var\_TYPE(), nf90\_put\_vara\_TYPE(), and
1550 nf90\_get\_vara\_TYPE() functions by not emulating them with the
1551 corresponding nf90\_put\_varm\_TYPE() and nf90\_get\_varm\_TYPE() calls.
1553 * Added tests for invalid offsets in classic format when defining multiple
1556 * Improved installation ease. Have configure script use Large File Support
1557 as a default, if available.
1559 * Add "extra\_test" as a target for testing Large File Support.
1561 ### 3.6.0-beta3 2004-08-24
1563 * Upgraded to recent autoconf, changed configure to (hopefully) improve
1564 installation. Also added macros to deal with large file systems.
1566 * Added nf\_set\_default\_format to Fortran interface.
1568 * Added testing to the set\_default\_format functions to nc\_test and
1571 * Added documentation to the man page for set\_default\_format functions.
1573 * Added two new error return codes to C, f77, and f90 interfaces for
1574 invalid dimension size and for bad variable size. Made test for max
1575 dimension size depend on whether 64-bit offsets used. Fixed bug with
1576 dimension sizes between 2\^31 and 2\^32 (for byte variables).
1578 * Fixed ncdump to properly print dimensions larger than 2\^31.
1580 * Fixed ncgen to properly handle dimensions between 2\^31 and 2\^32.
1584 * Added -v2 (version 2 format with 64-bit offsets) option to
1585 ncgen, to specify that generated files or generated C/Fortran code
1586 should create 64-bit offset files. Also added -x option to ncgen to
1587 specify use of no-fill mode for fast creation of large files.
1589 * Added function to set default create mode to C interface
1590 (nc\_set\_default\_create).
1592 * Added win32 directory, with NET subdirectory to hold .NET port of
1593 netCDF. To use, open netcdf.sln with Visual Studio, and do a clean and
1594 then a build of either the debug or release builds. Tests will be run as
1595 part of the build process. VC++ with managed extensions is required
1598 * Added windows installer files to build windows binary installs.
1602 * By incorporating Greg Sjaardema's patch, added support for
1603 64-bit offset files, which remove many of the restrictions relating to
1604 very large files (i.e. larger than 2 GB.) This introduces a new data
1605 format for the first time since the original netCDF format was
1606 introduced. Files in this new 64-bit offset format can't be read by
1607 earlier versions of netCDF. Users should continue to use the netCDF
1608 classic format unless they need to create very large files.
1610 * The test suite, nc\_test, will now be run twice, once for netCDF classic
1611 format testing, and once for 64-bit offset format testing.
1613 * The implementation of the Fortran-77 interface has been adapted to
1614 version 4.3 of Burkhard Burow's "cfortran.h".
1618 * Added NEC SX specific optimization for NFILL tunable
1619 parameter in libsrc/putget.c
1621 Added support for the ifc Fortran-90 compiler creating files "netcdf.d"
1622 and "typesizes.d" (instead of ".mod" files).
1624 * Fixed access to iargc and getarg functions from Fortran-90 for NAG f90
1625 compiler, contributed by Harald Anlauf.
1629 * Updated INSTALL.html for Mac OS X (Darwin).
1631 * Made the installation of the netCDF Fortran-90 module file more robust
1632 regarding the name of the file.
1634 * Added support for eight-byte integers in Fortran90 interface.
1636 * Increased advisory limits in C netcdf.h and Fortran netcdf.inc for
1637 maximum number of dimensions, variables, and attributes.
1639 * Changed C++ declarations "friend NcFile" to "friend class NcFile" in
1640 cxx/netcdfcpp.h to conform to standard.
1642 * Added Dan Schmitt's backward compatible extension to the C++ record
1643 interface to work with arbitrary dimension slices.
1645 * Added C++ documentation note that caller is responsible for deleting
1646 pointer returned by Variable::values() method when no longer needed.
1648 * Made C++ interface more standard; the result may not compile on some old
1649 pre-standard C++ compilers.
1651 * Fixed bug in ncgen when parsing values of a multidimensional char
1652 variable that resulted in failure to pad a value with nulls on IRIX.
1654 * Fixed ncdump bug adding extra quote to char variable data when using -fc
1657 * Fixed so compiling with -DNO\_NETCDF\_2 will work for building without
1658 backward-compatibility netCDF-2 interfaces.
1660 * Eliminated use of ftruncate(), because it fails on FAT32 file systems
1663 * Initialized a pointer in putget.m4 (used to generate putget.c) that was
1664 involved in uninitialized memory references when nc\_test is run under
1665 Purify. Two users had reported seeing crashes resulting from this
1666 problem in their applications.
1668 * Reverted pointer initializations in putget.m4, after testing revealed
1669 these caused a performance problem, resulting in many extra calls to
1670 px\_pgin and px\_pgout when running nc\_test.
1672 * Added checking of size of "dimids" vector in function
1673 nf90\_inquire\_variable(...) and error-returning if it isn't
1674 sufficiently capacious.
1676 * Added variable index to ncvarget() and ncattinq() error messages and
1677 attribute name to ncattinq() error message.
1679 * Tweaked configure script to work with recent C++ compilers.
1681 * Fixed a memory leak in C++ interface, making sure NcVar::cur\_rec[] gets
1682 deleted in NcVar destructor.
1684 * Reimplemented nc\_sync() fix of version 3.5.0 to eliminate performance
1685 penalty when synchronization is unnecessary.
1687 * Changed order of targets in Makefile to build Fortran interface last, as
1688 a workaround for problem with make on AIX platforms.
1692 * Added Fortran 90 interface.
1694 * Changed C macro TIMELEN in file cxx/nctst.cpp to TIMESTRINGLEN to avoid
1695 clash with macro defined on AIX systems in /usr/include/time.h.
1697 * Fixed miswriting of netCDF header when exiting define mode. Because the
1698 header was always written correctly later, this was only a problem if
1699 there was another reader of the netCDF file.
1701 * Fixed explicit synchronizing between netCDF writer and readers via the
1702 nc\_sync(), nf\_sync(), and ncsync() functions.
1704 * Fixed a number of bugs related to attempts to support shrinking the
1705 header in netCDF files when attributes are rewritten or deleted. Also
1706 fixed the problem that nc\_\_endef() did not work as intended in
1707 reserving extra space in the file header, since the extra space would be
1708 compacted again on calling nc\_close().
1710 * Fixed the "redef bug" that occurred when nc\_enddef() or nf\_enddef() is
1711 called after nc\_redef() or nf\_redef(), the file is growing such that
1712 the new beginning of a record variable is in the next "chunk", and the
1713 size of at least one record variable exceeds the chunk size (see
1714 netcdf.3 man page for a description of this tuning parameter and how to
1715 set it). This bug resulted in corruption of some values in other
1716 variables than the one being added.
1718 * The "\*\*" tuning functions for the Fortran interface, nf\*\*create,
1719 nf\*\*open, and nf\*\*enddef, are now documented in the Fortran interface
1722 * Add an 'uninstall' target to all the Makefiles. Dave Glowacki
1723 <dglo@SSEC.WISC.EDU> 199810011851.MAA27335
1725 * Added support for multiprocessing on Cray T3E. Hooks added by Glenn, but
1726 the majority of the work was done at NERSC. Also includes changes to
1727 ffio option specification. Patch rollup provided by R. K. Owen
1728 <rkowen@Nersc.GOV>. The following functions are added to the public
1729 interface. nc**create\_mp() nc**open\_mp() nc\_set\_base\_pe()
1732 * Fixed makefile URL for Win32 systems in INSTALL file.
1734 * Made test for UNICOS system in the configure script case independent.
1736 * Ported to the following systems: AIX 4.3 (both /bin/xlc and
1737 /usr/vac/bin/xlc compilers) IRIX 6.5 IRIX64 6.5
1739 * Changed the extension of C++ files from ".cc" to ".cpp". Renamed the C++
1740 interface header file "netcdfcpp.h" instead of "netcdf.hh", changing
1741 "netcdf.hh" to include "netcdfcpp.h" for backward compatibility.
1743 * Treat "FreeBSD" systems the same as "BSD/OS" system w.r.t. Fortran and
1746 * Corrected manual pages: corrected spelling of "enddef" (was "endef") and
1747 ensured that the words "index" and "format" will be correctly printed.
1749 * Updated support for Fortran-calling-C interface by updating
1750 "fortran/cfortran.h" from version 3.9 to version 4.1. This new version
1751 supports the Portland Group Fortran compiler (C macro "pgiFortran") and
1752 the Absoft Pro Fortran compiler (C macro "AbsoftProFortran").
1754 * Corrected use of non-integral-constant-expression in specifying size of
1755 temporary arrays in file "libsrc/ncx\_cray.c".
1757 * Added Compaq Alpha Linux workstation example to INSTALL file.
1759 * Ported cfortran.h to Cygnus GNU Win32 C compiler (gcc for Windows).
1761 * Fixed bug in ncdump using same CDL header name when called with multiple
1764 * Added new NULL data type NC\_NAT (Not A Type) to facilitate checking
1765 whether a variable object has had its type defined yet, for example when
1766 working with packed values.
1768 * Fixed use of compile-time macro NO\_NETCDF\_2 so it really doesn't
1769 include old netCDF-2 interfaces, as intended.
1771 * Ported to MacOS X Public Beta (Darwin 1.2/PowerPC).
1773 * Fixed C++ friend declarations to conform to C++ standard.
1775 * Changed INSTALL file to INSTALL.html instead.
1779 * Fixed ncx\_cray.c to work on all CRAY systems, not just CRAY1. Reworked
1780 USE\_IEG, which was incorrect. Reworked short support. Now USE\_IEG and
1781 otherwise both pass t\_ncx.
1783 * To better support parallel systems, static and malloc'ed scratch areas
1784 which were shared in the library were eliminated. These were made
1785 private and on the stack where possible. To support this, the macros
1786 ALLOC\_ONSTACK and FREE\_ONSTACK are defined in onstack.h.
1788 * The buffered i/o system implementation in posixio.c was reimplemented to
1789 limit the number and size of read() or write() system calls and use
1790 greater reliance on memory to memory copy. This saves a great deal of
1791 wall clock time on slow (NFS) filesystems, especially during
1794 * Added performance tuning "underbar underbar" interfaces nc**open(),
1795 nc**create(), and nc\_\_enddef().
1797 * The 'sizehint' contract between the higher layers and the ncio layer is
1798 consistently enforced.
1800 * The C++ interface has been updated so that the deprecated "nclong"
1801 typedef should no longer be required, and casts to nclong no longer
1802 necessary. Just use int or long as appropriate. nclong is still
1803 supported for backwards compatibility.
1805 * The ncdump utility now displays byte values as signed, even on platforms
1806 where the type corresponding to a C char is unsigned (SGI, for example).
1807 Also the ncdump and ncgen utilities have been updated to display and
1808 accept byte attributes as signed numeric values (with a "b" suffix)
1809 instead of using character constants.
1811 * In libsrc/error.c:nc\_strerror(int), explain that NC\_EBADTYPE applies
1812 to "\_FillValue type mismatch".
1814 * Some changes to configure scripts (aclocal.m4), macros.make.in and
1815 ncgen/Makefile to support NEC SUPER-UX 7.2.
1817 * The "usage" messages of ncgen and ncdump include the string returned
1818 from nc\_inq\_libvers().
1820 * Corrected some casts in the library so that all phases of the arithmetic
1821 computing file offsets occurs with "off\_t" type. This allows certain
1822 larger netcdf files to be created and read on systems with larger
1825 * In ncgen, multidimensional character variables are now padded to the
1826 length of last dimension, instead of just concatenating them. This
1827 restores an undocumented but convenient feature of ncgen under netCDF-2.
1828 Also, a syntax error is now reliably reported if the netcdf name is
1829 omitted in CDL input.
1831 * Fortran and C code generated by ncgen for netCDF components whose names
1832 contain "-" characters will now compile and run correctly instead of
1833 causing syntax errors.
1835 * The library allows "." characters in names as well as "\_" and "-"
1836 characters. A zero length name "" is explicitly not allowed. The ncgen
1837 utility will now permit "." characters in CDL names as well.
1839 * Memory leaks in the C++ interface NcVar::as\_\*() member functions and
1840 NcFile::add\_var() member function are fixed. The documentation was
1841 fixed where it indicated incorrectly that the library managed value
1842 blocks that the user is actually responsible for deleting.
1844 * he values of the version 2 Fortran error codes have been modified to
1845 make the version 2 Fortran interface more backward compatible at the
1848 * Added support for systems whose Fortran INTEGER*1 and INTEGER*2 types
1849 are equivalent to the C "long" type but whose C "int" and "long" types
1850 differ. An example of such a system is the NEC SX-4 with the "-ew"
1851 option to the f90 compiler (sheesh, what a system!).
1853 * Fixed Version 2 Fortran compatibility bug: NCVGTG, NCVGGC, NCVPTG, and
1854 NCVPGC didn't work according to the Version 2 documentation if the
1855 innermost mapping value (i.e. IMAP[1]) was zero (indicating that the
1856 netCDF structure of the variable should be used).
1860 * One can now inquire about the number of attributes that a variable has
1861 using the global variable ID.
1863 * The FORTRAN interface should now work on more systems. In particular:
1865 * It should now work with FORTRAN compilers whose "integer*1" datatype is
1866 either a C "signed char", "short", or "int" and whose "integer*2"
1867 datatype is either a C "short" or "int".
1869 * It should now work with FORTRAN compilers that are extremely picky about
1870 source code formatting (e.g. the NAG f90 compiler).
1872 * The dependency on the non-POSIX utility m4(1) for generating the C and
1873 FORTRAN manual pages has been eliminated.
1875 * EXTERNAL statements have been added to the FORTRAN include-file
1876 "netcdf.inc" to eliminate excessive warnings about "unused" variables
1877 (which were actually functions) by some compilers (e.g. SunOS 4.1.3's
1878 f77(1) version 1.x).
1880 * Building the netCDF-3 package no longer requires the existence of the
1881 Standard C macro RAND\_MAX.
1883 * Fixed an ncdump bug resulting in ncdump reporting Attempt to convert
1884 between text & numbers when \_FillValue attribute of a character
1885 variable set to the empty string "".
1887 * Made ncgen tests more stringent and fixed various bugs this uncovered.
1888 These included bugs in handling byte attributes on platforms on which
1889 char is unsigned, initializing scalar character variables in generated C
1890 code under "-c" option, interspersing DATA statements with declaration
1891 statements in generated Fortran code under "-f" option, handling empty
1892 string as a value correctly in generated C and Fortran, and handling
1893 escape characters in strings. The Fortran output under the "-f" option
1894 was also made less obscure and more portable, using automatic conversion
1895 with netCDF-3 interfaces instead of "BYTE", "INTEGER*1", or "INTEGER*2"
1898 * Fixed a C++ interface problem that prevented compiling the C++ library
1899 with Digital's cxx compiler.
1901 * Made ncgen "make test" report failure and stop if test resulted in a
1902 failure of generated C or Fortran code.
1904 * The file that you are now reading was created to contain a high-level
1905 description of the evolution of the netCDF-3 package.
1909 * The production version of the netCDF-3 package was released.
1911 * A comparison of the netCDF-2 and netCDF-3 releases can be found in the