NetCDF  4.5.0
RELEASE_NOTES.md
1 Release Notes {#RELEASE_NOTES}
2 =============
3 
4 \brief Release notes file for the netcdf-c package.
5 
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.
7 
8 ## 4.5.0 - October 20, 2017
9 
10 * Corrected an issue which could potential result in a hang while using parallel file I/O. See [Github #449](https://github.com/Unidata/netcdf-c/pull/449) for more information.
11 * Addressed an issue with `ncdump` not properly handling dates on a 366 day calendar. See [GitHub #359](https://github.com/Unidata/netcdf-c/issues/359) for more information.
12 
13 ### 4.5.0-rc3 - September 29, 2017
14 
15 * [Update] Due to ongoing issues, native CDF5 support has been disabled by **default**. You can use the options mentioned below (`--enable-cdf5` or `-DENABLE_CDF5=TRUE` for `configure` or `cmake`, respectively). Just be aware that for the time being, Reading/Writing CDF5 files on 32-bit platforms may result in unexpected behavior when using extremely large variables. For 32-bit platforms it is best to continue using `NC_FORMAT_64BIT_OFFSET`.
16 * [Bug] Corrected an issue where older versions of curl might fail. See [GitHub #487](https://github.com/Unidata/netcdf-c/issues/487) for more information.
17 * [Enhancement] Added options to enable/disable `CDF5` support at configure time for autotools and cmake-based builds. The options are `--enable/disable-cdf5` and `ENABLE_CDF5`, respectively. See [Github #484](https://github.com/Unidata/netcdf-c/issues/484) for more information.
18 * [Bug Fix] Corrected an issue when subsetting a netcdf3 file via `nccopy -v/-V`. See [Github #425](https://github.com/Unidata/netcdf-c/issues/425) and [Github #463](https://github.com/Unidata/netcdf-c/issues/463) for more information.
19 * [Bug Fix] Corrected `--has-dap` and `--has-dap4` output for cmake-based builds. See [GitHub #473](https://github.com/Unidata/netcdf-c/pull/473) for more information.
20 * [Bug Fix] Corrected an issue where `NC_64BIT_DATA` files were being read incorrectly by ncdump, despite the data having been written correctly. See [GitHub #457](https://github.com/Unidata/netcdf-c/issues/457) for more information.
21 * [Bug Fix] Corrected a potential stack buffer overflow. See [GitHub #450](https://github.com/Unidata/netcdf-c/pull/450) for more information.
22 
23 ### 4.5.0-rc2 - August 7, 2017
24 
25 * [Bug Fix] Addressed an issue with how cmake was implementing large file support on 32-bit systems. See [GitHub #385](https://github.com/Unidata/netcdf-c/issues/385) for more information.
26 * [Bug Fix] Addressed an issue where ncgen would not respect keyword case. See [GitHub #310](https://github.com/Unidata/netcdf-c/issues/310) for more information.
27 
28 ### 4.5.0-rc1 - June 5, 2017
29 
30 * [Enhancement] DAP4 is now included. Since dap2 is the default for urls, dap4 must be specified by
31 (1) using "dap4:" as the url protocol, or
32 (2) appending "#protocol=dap4" to the end of the url, or
33 (3) appending "#dap4" to the end of the url
34 Note that dap4 is enabled by default but remote-testing is
35 disbled until the testserver situation is resolved.
36 * [Enhancement] The remote testing server can now be specified with the `--with-testserver` option to ./configure.
37 * [Enhancement] Modified netCDF4 to use ASCII for NC_CHAR. See [Github Pull request #316](https://github.com/Unidata/netcdf-c/pull/316) for more information.
38 * [Bug Fix] Corrected an error with how dimsizes might be read. See [Github #410](https://github.com/unidata/netcdf-c/issues/410) for more information.
39 * [Bug Fix] Corrected an issue where 'make check' would fail if 'make' or 'make all' had not run first. See [Github #339](https://github.com/Unidata/netcdf-c/issues/339) for more information.
40 * [Bug Fix] Corrected an issue on Windows with Large file tests. See [Github #385](https://github.com/Unidata/netcdf-c/issues/385]) for more information.
41 * [Bug Fix] Corrected an issue with diskless file access, see [Pull Request #400](https://github.com/Unidata/netcdf-c/issues/400) and [Pull Request #403](https://github.com/Unidata/netcdf-c/issues/403) for more information.
42 * [Upgrade] The bash based test scripts have been upgraded to use a common test_common.sh include file that isolates build specific information.
43 * [Upgrade] The bash based test scripts have been upgraded to use a common test_common.sh include file that isolates build specific information.
44 * [Refactor] the oc2 library is no longer independent of the main netcdf-c library. For example, it now uses ncuri, nclist, and ncbytes instead of its homegrown equivalents.
45 * [Bug Fix] `NC_EGLOBAL` is now properly returned when attempting to set a global `_FillValue` attribute. See [GitHub #388](https://github.com/Unidata/netcdf-c/issues/388) and [GitHub #389](https://github.com/Unidata/netcdf-c/issues/389) for more information.
46 * [Bug Fix] Corrected an issue where data loss would occur when `_FillValue` was mistakenly allowed to be redefined. See [Github #390](https://github.com/Unidata/netcdf-c/issues/390), [GitHub #387](https://github.com/Unidata/netcdf-c/pull/387) for more information.
47 * [Upgrade][Bug] Corrected an issue regarding how "orphaned" DAS attributes were handled. See [GitHub #376](https://github.com/Unidata/netcdf-c/pull/376) for more information.
48 * [Upgrade] Update utf8proc.[ch] to use the version now maintained by the Julia Language project (https://github.com/JuliaLang/utf8proc/blob/master/LICENSE.md).
49 * [Bug] Addressed conversion problem with Windows sscanf. This primarily affected some OPeNDAP URLs on Windows. See [GitHub #365](https://github.com/Unidata/netcdf-c/issues/365) and [GitHub #366](https://github.com/Unidata/netcdf-c/issues/366) for more information.
50 * [Enhancement] Added support for HDF5 collective metadata operations when available. Patch submitted by Greg Sjaardema, see [Pull request #335](https://github.com/Unidata/netcdf-c/pull/335) for more information.
51 * [Bug] Addressed a potential type punning issue. See [GitHub #351](https://github.com/Unidata/netcdf-c/issues/351) for more information.
52 * [Bug] Addressed an issue where netCDF wouldn't build on Windows systems using MSVC 2012. See [GitHub #304](https://github.com/Unidata/netcdf-c/issues/304) for more information.
53 * [Bug] Fixed an issue related to potential type punning, see [GitHub #344](https://github.com/Unidata/netcdf-c/issues/344) for more information.
54 * [Enhancement] Incorporated an enhancement provided by Greg Sjaardema, which may improve read/write times for some complex files. Basically, linked lists were replaced in some locations where it was safe to use an array/table. See [Pull request #328](https://github.com/Unidata/netcdf-c/pull/328) for more information.
55 
56 ## 4.4.1.1 - November 21, 2016
57 
58 * [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.
59 * [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.
60 * [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.
61 * [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.
62 * [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.
63 
64 * [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.
65 
66 ## 4.4.1 - June 28, 2016
67 
68 * [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.
69 * [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.
70 
71 ### 4.4.1-RC3 - June 17, 2016
72 
73 * [Bug Fix] Misc. bug fixes and improvements.
74 * [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.
75 * [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.
76 
77 ### 4.4.1-RC2 - May 13, 2016
78 
79 * [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.
80 * [Bug Fix] Cleaned up some dead links in the doxygen-generated documentation.
81 * [Bug Fix] Corrected several issues related to building under Visual Studio 2014.
82 * [Bug Fix] Corrected several test failures related to HDF5 `1.10.0`
83 * [Bug Fix] Reverted SOVersion *current* to 11 from 12; it was incorrectly incremented in netCDF-C release 4.4.1-RC1.
84 * [Enhancement][Windows] Bumped the included libhdf5 to 1.8.16 from 1.8.15 for pre-built Visual Studio installer files.
85 
86 
87 ### 4.4.1-RC1 - April 15, 2016
88 
89 * [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.
90 * [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.
91 * [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.
92 * [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.
93 * [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.
94 * [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.
95 * [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.
96 * [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.
97 * [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.
98 * [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.
99 * [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.
100 
101 ## 4.4.0 Released - January 13, 2016
102 
103 * Bumped SO version to 11.0.0.
104 
105 * 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.
106 
107 * 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.
108 
109 * 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.
110 
111 * Fixed an ambiguity in the grammar for cdl files. See [GitHub #178](https://github.com/Unidata/netcdf-c/issues/178) for more information.
112 
113 * 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.
114 
115 * Modified ncgen to properly handle the L and UL suffixes for integer constants
116  to keep backward compatibility. Now it is the case the single L suffix
117  (e.g. 111L) is treated as a 32 bit integer. This makes it consistent with
118  the fact that NC_LONG (netcdf.h) is an alias for NC_INT. Existing .cdl
119  files should be examined for occurrences of the L prefix to ensure that
120  this change will not affect them.
121  (see Github issue 156[https://github.com/Unidata/netcdf-c/issues/156]).
122 
123 * 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).
124 
125 * 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.
126 
127 ### 4.4.0-RC5 Released - November 11, 2015
128 
129 * 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.
130 
131 ### 4.4.0-RC4 Released - November 10, 2015
132 
133 * Added CDM-5 support via new mode flag called NC_64BIT_DATA (alias NC_CDF5).
134 
135  Major kudos to Wei-Keng Liao for all the effort he put into getting this to work.
136 
137  This cascaded into a number of other changes.
138 
139  1. Renamed libsrcp5 -> libsrcp because pnetcdf can do parallel io for CDF-1, CDF-2 and CDF-5, not just CDF-5.
140  2. Given #1, then the NC_PNETCDF mode flag becomes a subset of NC_MPIIO, so made NC_PNETCDF an alias for NC_MPII.
141  3. NC_FORMAT_64BIT is now deprecated. Use NC_FORMAT_64BIT_OFFSET.
142 
143 Further information regarding the CDF-5 file format specifrication may be found here: http://cucis.ece.northwestern.edu/projects/PnetCDF/CDF-5.html
144 
145 * Modified configure.ac to provide finer control over parallel
146  support. Specifically, add flags for:
147 
148  1. HDF5_PARALLEL when hdf5 library has parallel enabled
149  2. --disable-parallel4 to be used when we do not want
150  netcdf-4 to use parallelism even if hdf5 has it enabled.
151 
152 
153 * Deprecating various extended format flags.
154 
155 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:
156 
157 Deprecated | Replaced with
158 -----------|-------------
159 NC\_FORMAT\_NC3 | NC\_FORMATX\_NC3
160 NC\_FORMAT\_NC\_HDF5 | NC\_FORMATX\_NC\_HDF5
161 NC\_FORMAT\_NC4 | NC\_FORMATX\_NC4
162 NC\_FORMAT\_NC\_HDF4 | NC\_FORMATX\_NC\_HDF4
163 NC\_FORMAT\_PNETCDF | NC\_FORMATX\_PNETCDF
164 NC\_FORMAT\_DAP2 | NC\_FORMATX\_DAP2
165 NC\_FORMAT\_DAP4 | NC\_FORMATX\_DAP4
166 NC\_FORMAT\_UNDEFINED | NC\_FORMATX\_UNDEFINED
167 
168 * 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.
169 
170 * 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.
171 
172 ### 4.4.0-RC3 2015-10-08
173 
174 * 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.
175 
176 * 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).
177 
178 * Added a note to the install directions pointing out that parallel make
179 cannot be used for 'make check'.
180 
181 ### 4.4.0-RC2 Released 2015-07-09
182 
183 * Minor bug fixes and cleanup of issues reported with first release candidate.
184 
185 ### 4.4.0-RC1 Released 2015-06-09
186 
187 * 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.
188 
189 * 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.
190 
191 * 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.
192 
193 * 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.
194 
195 * 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.
196 
197 * 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.
198 
199 * 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.
200 
201 * 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.
202 
203 * Added an authorization reference document as oc2/ocauth.html.
204 
205 * Fixed bug resulting in segmentation violation when trying to add a
206  _FillValue attribute to a variable in an existing netCDF-4 file
207  defined without it (thanks to Alexander Barth). See
208  [NCF-187](https://bugtracking.unidata.ucar.edu/browse/NCF-187) for
209  more information.
210 
211 ## 4.3.3.1 Released 2015-02-25
212 
213 * 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.
214 
215 ## 4.3.3 Released 2015-02-12
216 
217 * 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)
218 
219 * Enabled previously-disabled shell-script-based tests for Visual Studio when `bash` is detected.
220 
221 ### 4.3.3-rc3 Released 2015-01-14
222 
223 * 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:
224 
225  * CMake: `-DENABLE_REMOTE_FORTRAN_BOOTSTRAP=ON`
226  * Autotools: `--enable-remote-fortran-bootstrap`
227 
228 Details are as follows:
229 
230 ----
231 
232 Enabling these options creates two new make targets:
233 
234 * `build-netcdf-fortran`
235 * `install-netcdf-fortran`
236 
237 Example Work Flow from netcdf-c source directory:
238 
239 * $ `./configure --enable-remote-fortran-bootstrap --prefix=$HOME/local`
240 * $ `make check`
241 * $ `make install`
242 * $ `make build-netcdf-fortran`
243 * $ `make install-netcdf-fortran`
244 
245 > 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>
246 
247 > 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)
248 
249 ----
250 
251 * 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.
252 
253 * 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.
254 
255 * 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)
256 
257 * 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)
258 
259 * Fixed documentation typo in FILL_DOUBLE definition in classic format specification grammar. Fixed other typos and inconsistencies in Doxygen version of User Guide.
260 
261 * 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)
262 
263 * 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)
264 
265 * 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)
266 
267 * Added a new option, `NC_EXTRA_DEPS`, for cmake-based builds. This is analogous to `LIBS` in autotools-based builds. Example usage:
268 
269  $ cmake .. -NC_EXTRA_DEPS="-lcustom_lib"
270 
271 More details may be found at the Unidata JIRA Dashboard. [NCF-316](https://bugtracking.unidata.ucar.edu/browse/NCF-316)
272 
273 
274 ### 4.3.3-rc2 Released 2014-09-24
275 
276 * Fixed the code for handling character constants
277  in datalists in ncgen. Two of the problems were:
278  1. It failed on large constants
279  2. It did not handle e.g. var = 'a', 'b', ...
280  in the same way that ncgen3 did.
281  See [NCF-309](https://bugtracking.unidata.ucar.edu/browse/NCF-309).
282 
283 * 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).
284 
285  > Determining the presence of `netcdf_meta.h` can also be accomplished by methods common to autotools and cmake-based build systems.
286 
287 * Changed `Doxygen`-generated documentation hosted by Unidata to use more robust server-based searching.
288 * Corrected embedded URLs in release notes.
289 * Corrected an issue where building with HDF4 support with Visual Studio would fail.
290 
291 ### 4.3.3-rc1 Released 2014-08-25
292 
293 * Added `CMake`-based export files, contributed by Nico Schlömer. See https://github.com/Unidata/netcdf-c/pull/74.
294 
295 * Documented that ncgen input can come from standard input.
296 
297 * Regularized generation of libnetcdf.settings file to make parsing it easier.
298 
299 * 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)
300 
301 * 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.
302 
303 * 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.
304 
305 * 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.
306  [NCF-308](https://bugtracking.unidata.ucar.edu/browse/NCF-308)
307 
308 * 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.
309 
310 * 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)
311 
312 * Replaced the `NetCDF Library Architecture` image with an updated version from the 2012 NetCDF Workshop slides.
313 
314 * Fix HDF4 files to support chunking.
315  [NCF-272](https://bugtracking.unidata.ucar.edu/browse/NCF-272)
316 
317 * 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).
318 
319 
320 * 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).
321 
322 * Removed redundant variable `BUILD_DOCS` from the CMake configuration file. See the issue at github: [#59](https://github.com/Unidata/netcdf-c/issues/59).
323 
324 * 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)
325 
326 * 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.
327 
328 ## 4.3.2 Released 2014-04-23
329 
330 * 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.
331 
332 * The oc .dodsrc reader was improperly handling the user name and password entries. [NCF-299](https://bugtracking.unidata.ucar.edu/browse/NCF-299)
333 
334 * 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:
335 
336  * `NC_TEST_DROP_SITE` - Specify an alternative Dashboard by URL or IP address.
337 
338  * `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.
339 
340 * Return an error code on open instead of an assertion violation for truncated file.
341 
342 * Documented limit on number of Groups per netCDF-4 file (32767).
343 
344 ### 4.3.2-rc2 Released 2014-04-15
345 
346 * Cleaned up a number of CMake inconsistencies related to CMake usage, parallel builds.
347 * Now passing -Wl,--no-undefined to linker when appropriate.
348 * Corrected an issue preventing large file tests from running correctly under Windows.
349 * Misc Bug Fixes detected by static analysis.
350 
351 ### 4.3.2-rc1 Released 2014-03-20
352 
353 * Pre-built Windows downloads will now be bundled with the latest (as of the time of this writing) versions of the various dependencies:
354  * `hdf5: 1.8.12`
355  * `zlib: 1.2.8`
356  * `libcurl: 7.35.0`
357 
358 * 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):
359  * --enable-dap-auth-tests
360  * -DENABLE\_DAP\_AUTH\_TESTS
361 
362 * Fixed small default chunk size for 1-dimensional record variables. [NCF-211](https://bugtracking.unidata.ucar.edu/browse/NCF-211)
363 
364 * Cleaned up type handling in netCDF-4 to fix bugs with fill-values.
365 
366 * Corrected "BAIL" macros to avoid infinite loop when logging is disabled and an error occurs.
367 
368 * 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.
369 
370 * Made type structure sharable by committed datatypes and variables that use it.
371 
372 * Handled string datatypes correctly, particularly for fill value attributes. Expanded testing for string fill values.
373 
374 * Simplified iteration of objects in the file when it's opened, tracking fewer objects and using less memory.
375 
376 * 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)
377 
378 * 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)
379 
380 * Addressed an issue related to old DAP servers. [NCF-287](https://bugtracking.unidata.ucar.edu/browse/NCF-287)
381 
382 * Modified nc_{get/put}_vars to no longer use
383  nc_get/put_varm. They now directly use nc_get/put_vara
384  directly. This means that nc_get/put_vars now work
385  properly for user defined types as well as atomic types.
386  [NCF-228] (https://bugtracking.unidata.ucar.edu/browse/NCF-228)
387 
388 ## 4.3.1.1 Released 2014-02-05
389 
390 This is a bug-fix-only release for version 4.3.1.
391 
392 * Corrected a DAP issue reported by Jeff Whitaker related to non-conforming servers.
393 
394 * Corrected an issue with DAP tests failing in a 64-bit Cygwin environment. [NCF-286](https://bugtracking.unidata.ucar.edu/browse/NCF-286)
395 
396 ## 4.3.1 Released 2014-01-16
397 
398 * 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]
399 
400 [NCF-273]:https://bugtracking.unidata.ucar.edu/browse/NCF-273
401 
402 
403 ### 4.3.1-rc6 Released 2013-12-19
404 
405 * Fixed fill value handling for string types in nc4\_get\_vara().
406 
407 * Corrected behavior of nc\_inq\_unlimdim and nv\_inq\_unlimdims to report dimids
408  in same order as nc\_inq\_dimids.
409 
410 * 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.
411 
412 * A number of previously-disabled unit tests were reviewed and made active.
413 
414 
415 ### 4.3.1-rc5 Released 2013-12-06
416 
417 * When opening a netCDF-4 file, streamline the iteration over objects in the underlying HDF5 file.
418 
419 * Fixed netCDF-4 failure when renaming a dimension and renaming a variable using that dimension, in either order. [NCF-177]
420 
421 [NCF-177]:https://bugtracking.unidata.ucar.edu/browse/NCF-177
422 
423 * 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.
424 
425 * Fixed bug in ncgen; it was not properly filling empty string constants ("") to be the proper length. [NCF-279]
426 
427 [NCF-279]:https://bugtracking.unidata.ucar.edu/browse/NCF-279
428 
429 * Fixed bug in ncgen where it was interpreting int64 constants
430  as uint64 constants. [NCF-278]
431 
432 [NCF-278]:https://bugtracking.unidata.ucar.edu/browse/NCF-278
433 
434 * Fixed bug in handling Http Basic Authorization. The code was actually there but was not being executed. [NCF-277]
435 
436 [NCF-277]:https://bugtracking.unidata.ucar.edu/browse/NCF-277
437 
438 * 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]
439 
440 [NCF-276]:https://bugtracking.unidata.ucar.edu/browse/NCF-276
441 
442 * Fixed bugs with ncdump annotation of values, using -b or -f
443  options. [NCF-275]
444 
445 [NCF-275]:https://bugtracking.unidata.ucar.edu/browse/NCF-275
446 
447 
448 ### 4.3.1-rc4 Released 2013-11-06
449 
450 * Addressed an issue on Windows where `fstat` would report an incorrect file size on files > 4GB. [NCF-219]
451 
452 
453 * Added better documentation about accessing ESG datasets.
454  See http://www.unidata.ucar.edu/software/netcdf/docs/esg.html.
455 
456 * Corrected an issue with CMake-based builds enabling HDF4 support where the HDF4 libraries were in a non-standard location.
457 
458 * Fix bug introduced by [NCF-267] where octal constants above
459 '\177' were not recognized as proper octal constants. [NCF-271]
460 
461 [NCF-271]:https://bugtracking.unidata.ucar.edu/browse/NCF-271
462 
463 * 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)
464 
465 
466 
467 ### 4.3.1-rc3 Released 2013-09-24
468 
469 * Modify ncgen to support NUL characters in character array
470  constants. [NCF-267]
471 
472 [NCF-267]:https://bugtracking.unidata.ucar.edu/browse/NCF-267
473 
474 * Modify ncgen to support disambiguating references to
475  an enum constant in a data list. [NCF-265]
476 
477 [NCF-265]:https://bugtracking.unidata.ucar.edu/browse/NCF-265
478 
479 * Corrected bug in netCDF-4 dimension ID ordering assumptions, resulting in access that works locally but fails through DAP server. [NCF-166]
480 
481 [NCF-166]:https://bugtracking.unidata.ucar.edu/browse/NCF-166
482 
483 * 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.
484 
485 * Ensure netCDF-4 compiles with OpenMPI as an alternative to MPICH2. [NCF-160]
486 
487 [NCF-160]:https://bugtracking.unidata.ucar.edu/browse/NCF-160
488 
489 * Addressed issue with hanging Parallel netCDF-4 using HDF5 1.8.10. [NCF-240]
490 
491 [NCF-240]:https://bugtracking.unidata.ucar.edu/browse/NCF-240
492 
493 * Addressed issue with Large File Support on Windows, using both 32 and 64-bit builds. [NCF-219]
494 
495 [NCF-219]:https://bugtracking.unidata.ucar.edu/browse/NCF-219
496 
497 * Removed deprecated directories:
498  * librpc/
499  * udunits/
500  * libcf/
501  * libcdmr/
502 
503 ### 4.3.1-rc2 Released 2013-08-19
504 
505 * Added `configure` and accompanying configuration files/templates to release repository. **These will only be added to tagged releases on GitHub**.
506 
507 * 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*.
508 
509 [NCF-250]:https://bugtracking.unidata.ucar.edu/browse/NCF-250
510 
511 * 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.
512 
513 * Corrected an error with the CMake config files that resulted in the `netcdf.3` manpage not being built or installed.
514 
515 ### 4.3.1-rc1 Released 2013-08-09
516 
517 * 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:
518 
519  $ git clone https://github.com/Unidata/netCDF-C.git
520 
521 * Note: in this release, it is necessary to generate the `configure` script and makefile templates using `autoreconf` in the root netCDF-C directory.:
522 
523  $ autoreconf -i -f
524 
525 * Added `nc_rename_grp` to allow for group renaming in netCDF-4 files. [NCF-204]
526 
527 [NCF-204]: https://bugtracking.unidata.ucar.edu/browse/NCF-204
528 
529 * 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.
530 
531 [cz1]: https://bugtracking.unidata.ucar.edu/browse/NCF-204
532 
533 * 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.
534 
535 * 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]
536  * autotools-based builds: --enable-dynamic-loading
537  * cmake-based builds: -DENABLE\_DYNAMIC\_LOADING=ON
538 
539 [NCF-258]: https://bugtracking.unidata.ucar.edu/browse/NCF-258
540 
541 * 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]
542 
543 [NCF-250]: https://bugtracking.unidata.ucar.edu/browse/NCF-250
544 
545 * 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]
546 
547 [NCF-56]: https://bugtracking.unidata.ucar.edu/browse/NCF-56
548 
549 * Parallel-build portability fixes, particularly for OpenMPI and gcc/gfortran-4.8.x on OSX.
550 
551 * 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.
552 
553 * Fixed various minor documentation problems.
554 
555 ## 4.3.0 Released 2013-04-29
556 
557 * fsync: Changed default in autotools config file; fsync must now be
558 explicitly enabled instead of explicitly disabled. [NCF-239]
559 
560 [NCF-239]: https://bugtracking.unidata.ucar.edu/browse/NCF-239
561 
562 * Fixed netCDF-4 bug where odometer code for libdap2 mishandled stride > 1. Bug reported by Ansley Manke. [NCF-249]
563 
564 [NCF-249]: https://bugtracking.unidata.ucar.edu/browse/NCF-249
565 
566 * Fixed netCDF-4 bug so netCDF just ignores objects of HDF5 reference type in
567 the file, instead of rejecting the file. [NCF-29]
568 
569 [NCF-29]: https://bugtracking.unidata.ucar.edu/browse/NCF-29
570 
571 * Fixed netCDF-4 bug with particular order of creation of dimensions,
572 coordinate variables, and subgroups resulting in two dimensions with the
573 same dimension ID. [NCF-244]
574 
575 [NCF-244]: https://bugtracking.unidata.ucar.edu/browse/NCF-244
576 
577 * Fixed netCDF-4 bug with a multidimensional coordinate variable in a
578 subgroup getting the wrong dimension IDs for its dimensions. [NCF-247]
579 
580 [NCF-247]: https://bugtracking.unidata.ucar.edu/browse/NCF-247
581 
582 * Fixed bug with incorrect fixed-size variable offsets in header getting
583 written when schema changed for files created by parallel-netcdf. Thanks
584 to Wei-keng Liao for developing and contributing the fix. [NCF-234]
585 
586 [NCF-234]: https://bugtracking.unidata.ucar.edu/browse/NCF-234
587 
588 * Fixed bug in handling old servers that do not do proper Grid to
589 Structure conversions. [NCF-232]
590 
591 [NCF-232]: https://bugtracking.unidata.ucar.edu/browse/NCF-232
592 
593 * Replaced the oc library with oc2.0
594 
595 * Fix bug with nc\_get\_var1\_uint() not accepting unsigned ints larger
596 than 2\*\*31. [NCF-226]
597 
598 [NCF-226]: https://bugtracking.unidata.ucar.edu/browse/NCF-226
599 
600 * Fix to convert occurrences of '/' in DAP names to %2f. [NCF-223]
601 
602 [NCF-223]: https://bugtracking.unidata.ucar.edu/browse/NCF-223
603 
604 * Fix bug in netCDF-4 with scalar non-coordinate variables with same name
605 as dimensions. [NCF-222]
606 
607 [NCF-222]: https://bugtracking.unidata.ucar.edu/browse/NCF-222
608 
609 * Fix bug in which calling netCDF-4 functions in which behavior that
610 should not depend on order of calls sometimes produces the wrong
611 results. [NCF-217]
612 
613 [NCF-217]: https://bugtracking.unidata.ucar.edu/browse/NCF-217
614 
615 * Merged in nccopy additions from Martin van Driel to support -g and -v
616 options for specifying which groups or variables are to be copied.
617 [NCF-216]
618 
619 [NCF-216]: https://bugtracking.unidata.ucar.edu/browse/NCF-216
620 
621 * Merged in parallel-netcdf bugs fixes from Greg Sjaardema. [NCF-214]
622 
623 [NCF-214]: https://bugtracking.unidata.ucar.edu/browse/NCF-214
624 
625 * Modify ncgen so that if the incoming file has a special attribute, then
626 it is used to establish the special property of the netcdf file, but the
627 attribute is not included as a real attribute in the file. [NCF-213].
628 
629 [NCF-213]: https://bugtracking.unidata.ucar.edu/browse/NCF-213
630 
631 * Added library version info to the user-agent string so that the server
632 logs will be more informative. [NCF-210]
633 
634 [NCF-210]: https://bugtracking.unidata.ucar.edu/browse/NCF-210
635 
636 * Added work around for bad servers that sometimes sends DAP dataset with
637 duplicate field names. [NCF-208]
638 
639 [NCF-208]: https://bugtracking.unidata.ucar.edu/browse/NCF-208
640 
641 * Fixed bug with strided access for NC\_STRING type. [NCF-206]
642 
643 [NCF-206]: https://bugtracking.unidata.ucar.edu/browse/NCF-206
644 
645 * Prevented adding an invalid \_FillValue attribute to a variable (with
646 nonmatching type or multiple values), to avoid later error when any
647 record variable is extended. [NCF-190]
648 
649 [NCF-190]: https://bugtracking.unidata.ucar.edu/browse/NCF-190
650 
651 * Fix bug in which some uses of vlen within compounds causes HDF5 errors.
652 [NCF-155]
653 
654 [NCF-155]: https://bugtracking.unidata.ucar.edu/browse/NCF-155
655 
656 * Fixed ncdump bug in display of data values of variables that use
657 multiple unlimited dimensions. [NCF-144]
658 
659 [NCF-144]: https://bugtracking.unidata.ucar.edu/browse/NCF-144
660 
661 * Fix bug in which interspersing def\_var calls with put\_var calls can
662 lead to corrupt metadata in a netCDF file with groups and inherited
663 dimensions. [NCF-134]
664 
665 [NCF-134]: https://bugtracking.unidata.ucar.edu/browse/NCF-134
666 
667 * Building shared libraries works with DAP and netCDF4 functionality.
668 [NCF-205] [NCF-57]
669 
670 [NCF-205]: https://bugtracking.unidata.ucar.edu/browse/NCF-205
671 [NCF-57]: https://bugtracking.unidata.ucar.edu/browse/NCF-57
672 
673 * 32-and-64-bit builds are working under MinGW on Windows. [NCF-112]
674 
675 [NCF-112]: https://bugtracking.unidata.ucar.edu/browse/NCF-112
676 
677 * Config.h for Windows compiles are included in the build. [NCF-98]
678 
679 [NCF-98]: https://bugtracking.unidata.ucar.edu/browse/NCF-98
680 
681 * NetCDF-4 dependency on NC\_MAX\_DIMS has been removed. [NCF-71]
682 
683 [NCF-71]: https://bugtracking.unidata.ucar.edu/browse/NCF-71
684 
685 * 64-bit DLL's are produced on Windows. [NCF-65]
686 
687 [NCF-65]: https://bugtracking.unidata.ucar.edu/browse/NCF-65
688 
689 * DLL Packaging issues are resolved. [NCF-54]
690 
691 [NCF-54]: https://bugtracking.unidata.ucar.edu/browse/NCF-54
692 
693 * The CMake build system (with related ctest and cdash systems for
694 testing) has been integrated into netCDF-C. This allows for Visual
695 Studio-based builds in addition to gcc-based builds. This requires at
696 least CMake version 2.8.8. This replaces/supplements the cross-compiled
697 set of Visual-Studio compatible netCDF libraries introduced in netCDF
698 4.2.1-rc1.
699 
700 ## 4.2.1.1 Released 2012-08-03
701 
702 * Patched libdap2/ncdap3.c to fix DAP performance bug remotely accessing large files (> 2GiB).
703 
704 * Patched ncdump/dumplib.c to properly escape special characters in CDL output from ncdump for netCDF-4 string data.
705 
706 
707 ### 4.2.1 Released 2012-07-18
708 
709 * Added a specific NC\_MMAP mode flag to modify behavior of NC\_DISKLESS.
710 
711 * Changed the file protections for NC\_DISKLESS created files to 0666
712 [NCF-182]
713 
714 * Fixed ncdump to report error when an unsupported option is specified.
715 [NCF-180]
716 
717 * Fixed documentation of CDL char constants in Users Guide and ncgen man
718 page.
719 
720 * Fixed memory leak detected by valgrind in one of the HDF5 tests.
721 
722 * Fixed problem with \#elif directives in posixio.c revealed by PGI
723 compilers.
724 
725 ### 4.2.1-rc1 Released 2012-06-18
726 
727 * Ported static and shared libraries (DLL's) for both 32- and 64-bit
728 Windows, including support for DAP remote access, with netCDF-3 and
729 netCDF-4/HDF5 support enabled. The environment for this build is
730 MSYS/MinGW/MinGW64, but the resulting DLLs may be used with Visual
731 Studio. [NCF-112] [NCF-54] [NCF-57] [NCF-65]
732 
733 * Implemented diskless files for all netCDF formats. For nc\_create(),
734 diskless operation performs all operations in memory and then optionally
735 persists the results to a file on close. For nc\_open(), but only for
736 netcdf classic files, diskless operation caches the file in-memory,
737 performs all operations on the memory resident version and then writes
738 all changes back to the original file on close.
739 [NCF-110][NCF-109][NCF-5]
740 
741 * Added MMAP support. If diskless file support is enabled, then it is
742 possible to enable implementation of diskless files using the operating
743 system's MMAP facility (if available). The enabling flag is
744 "--enable-mmap". This is most useful when using nc\_open() and when only
745 parts of files, a single variable say, need to be read.
746 
747 * Added configure flag for --disable-diskless.
748 
749 * Added nccopy command-line options to exploit diskless files, resulting
750 in large speedups for some operations, for example converting unlimited
751 dimension to fixed size or rechunking files for faster access. Upgraded
752 doxygen and man-page documentation for ncdump and nccopy utilities,
753 including new -w option for diskless nccopy, with an example.
754 
755 * Modified Makefile to allow for concurrent builds and to support builds
756 outside the source tree, e.g. 'mkdir build; cd build;
757 SOURCE-DIR/configure' where SOURCE-DIR is the top-level source
758 directory.
759 
760 * Fixed some netCDF-4 bugs with handling strings in non-netCDF-4 HDF5
761 files. [NCF-150]
762 
763 * Fixed bug using nccopy to compress with shuffling that doesn't compress
764 output variables unless they were already compressed in the input file.
765 [NCF-162]
766 
767 * Fixed bug in 64-bit offset files with large records, when last record
768 variable requires more than 2\*\*32 bytes per record. [NCF-164]
769 
770 * Fix bug in which passing a NULL path to nc\_open causes failure.
771 [NCF-173]
772 
773 * Fixed ncgen bugs in parsing and handling opaque data.
774 
775 * Fixed ncdump bug, not escaping characters special to CDL in enumeration
776 labels. [NCF-169]
777 
778 * Fixed bug reading netCDF int into a C longlong or writing from longlong
779 to external int on 32-bit platforms with classic format files. The upper
780 32 bits of the longlong were not cleared on read or used on write.
781 [NCF-171]
782 
783 * Resolved some erroneous returns of BADTYPE errors and RANGE errors due
784 to conflating C memory types with external netCDF types when accessing
785 classic or 64-bit offset files. [NCF-172]
786 
787 * Fixed bug with ncdump -t interpreting unit attribute without base time
788 as a time unit. [NCF-175]
789 
790 * Changed port for testing remote access test server to increase
791 reliability of tests.
792 
793 * Modified ncio mechanism to support multiple ncio packages, so that it is
794 possible to have e.g. posixio and memio operating at the same time.
795 
796 * Generation of documentation is disabled by default. Use --enable-doxygen
797 to generate. [NCF-168]
798 
799 * Added description of configure flags to installation guide.
800 
801 * Clarified documentation of arguments to nc**open() and nc**create() and
802 their default values.
803 
804 * Fixed doxygen installation guide source file to preserve line breaks in
805 code and scripts. [NCF-174]
806 
807 * Cleaned up a bunch of lint issues (unused variables, etc.) and some
808 similar problems reported by clang static analysis.
809 
810 * Updated and fixed pkg-config source file netcdf.pc.in to work with
811 separated netCDF language-specific packages. Also fixed nc-config to
812 call nf-config, ncxx-config, and ncxx4-config for for backward
813 compatibility with use of nc-config in current Makefiles. [NCF-165]
814 [NCF-179]
815 
816 ## 4.2.0 2012-05-01
817 
818 * Completely rebuilt the DAP constraint handling. This primarily affects
819 users who specify a DAP constraint as part of their URL. [NCF-120]
820 
821 * Fixed cause of slow nccopy performance on file systems with many records
822 and large disk block size or many record variables, by accessing data a
823 record at a time instead of a variable at a time. [NCF-142]
824 
825 * Performance improvement to DAP code to support fetching partial
826 variables into the cache; especially important when using nc\_get\_var()
827 API. A partial variable is one that has ranges attached to the
828 projection variables (e.g. x[1:10][20:21]) [NCF-157]
829 
830 * Separate the Fortran and C++ libraries and release the C library and
831 ncdump/ncgen/nccopy without Fortran or C++. [NCF-24]
832 
833 * Documentation mostly migrated to Doxygen, from Texinfo. [NCF-26]
834 
835 * Properly convert vara start/count parameters to DAP [NCF-105][NCF-106]
836 
837 * Fixed major wasted space from previous default variable chunk sizes
838 algorithm. [NCF-81]
839 
840 * Fixed bug in nccopy, in which compression and chunking options were
841 ignored for netCDF-4 input files. [NCF-79]
842 
843 * Fixed bug in ncgen in which large variables (more than 2**18 elements)
844 duplicates the first 2**18 values into subsequent chunks of data
845 [NCF-154].
846 
847 * Applied Greg Sjaardema's nccopy bug fix, not compressing output
848 variables f they were not already using compression on the input file
849 when shuffle specified. [NCF-162]
850 
851 * Fixed problem when a URL is provided that contains only a host name.
852 [NCF-103]
853 
854 * Fixed behavior of ncgen flags so that -o => -lb and, in the absence of
855 any other markers, make the default be -k1 [NCF-158]
856 
857 * Created a text INSTALL file for netCDF-4.2 release. [NCF-161]
858 
859 * Fixed bug in ncgen for vlen arrays as fields of compound types where
860 datalists for those types was improperly interpreted [NCF-145] (but see
861 NCF-155).
862 
863 * Improve use of chunk cache in nccopy utility, making it practical for
864 rechunking large files. [NCF-85]
865 
866 * Fixed nccopy bug copying a netCDF-4 file with a chunksize for an
867 unlimited dimension that is larger than the associated dimension size.
868 [NCF-139]
869 
870 * Fixed nccopy bug when rechunking a netCDF-4 file with a chunkspec option
871 that doesn't explicitly specify all dimensions. [NCF-140]
872 
873 * Fixed bug in netCDF-4 files with non-coordinate variable with the same
874 name as a dimension. [NCF-141]
875 
876 * Incorporated Wei Huang's fix for bug where netCDF-4 sometimes skips over
877 too many values before adding fill values to an in-memory buffer.
878 [NCF-143]
879 
880 * Fixed ncgen bug with netCDF-4 variable-length constants (H/T to Lynton
881 Appel). [NCF-145]
882 
883 * Incorporated Peter Cao's performance fixes using HDF5 link iterator for
884 any group with many variables or types. [NCF-148]
885 
886 * Incorporated Constantine Khroulev's bug fix for invalid usage of
887 MPI\_Comm\_f2c in nc\_create\_par. [NCF-135]
888 
889 * Fixed turning off fill values in HDF5 layers when NOFILL mode is set in
890 netCDF-4 API (thanks to Karen Schuchardt). [NCF-151]
891 
892 * Fixed bug with scalar coordinate variables in netCDF-4 files, causing
893 failure with --enable-extra-tests [NCF-149]
894 
895 * Cleaned up the definition and use of nulldup. [NCF-92][NCF-93][NCF-94]
896 
897 * Fixed various '\#include' bugs. [NCF-91][NCF-96][NCF-127]
898 
899 * v2 API functions modified to properly call the external API instead of
900 directly calling the netcdf-3 functions. [NCF-100]
901 
902 * Fixed problem with 64-bit offset format where writing more than 2\*\*31
903 records resulted in erroneous NC\_EINVALCOORDS error. [NCF-101]
904 
905 * Restored original functionality of ncgen so that a call with no flags,
906 only does the syntax check. [NCF-104]
907 
908 * Corrected misc. test bugs [NCF-107]
909 
910 * Modified ncdump to properly output various new types (ubyte, ushort,
911 uint, int64, and uint64). [NCF-111]
912 
913 * Fixed incorrect link flag for szip in configure.ac [NCF-116]
914 
915 * ncdump -t now properly parses ISO "T" separator in date-time strings.
916 [NCF-16]
917 
918 * ncdump -t "human time" functionality now available for attributes and
919 bounds variables [NCF-70]
920 
921 * In ncdump, add -g option to support selection of groups for which data
922 is displayed. [NCF-11]
923 
924 * Now supports bluefire platform [NCF-52]
925 
926 * ncdump now properly displays values of attributes of type NC\_USHORT as
927 signed shorts [NCF-82]
928 
929 * Rename some code files so that there are no duplicate filenames.
930 [NCF-99]
931 
932 * Demonstration of netCDF-4 Performance Improvement with KNMI Data
933 [NCF-113]
934 
935 * Dimension size in classic model netCDF-4 files now allows larger sizes
936 than allowed for 64-bit offset classic files. [NCF-117]
937 
938 * ncdump now reports correct error message when "-x" option specifying
939 NcML output is used on netCDF-4 enhanced model input. [NCF-129]
940 
941 * Fixed bug causing infinite loop in ncdump -c of netCDF-4 file with
942 subgroup with variables using inherited dimensions. [NCF-136]
943 
944 ## 4.1.3 2011-06-17
945 
946 * Replace use of --with-hdf5= and other such configure options that
947 violate conventions and causes build problems. Set environment variables
948 CPPFLAGS, LDFLAGS, and LD\_LIBRARY\_PATH instead, before running
949 configure script. [NCF-20]
950 
951 * Detect from configure script when szlib is needed [NCF-21]
952 
953 * Fix bug that can silently zero out portions of a file when writing data
954 in nofill mode beyond the end of a file, crossing disk-block boundaries
955 with region to be written while in-memory buffer is in a specific state.
956 This bug was observed disabling fill mode using Lustre (or other large
957 blksize file system) and writing data slices in reverse order on disk.
958 [NCF-22]
959 
960 * Fix bug that prevents netCDF-4/HDF5 files created with netCDF-4.1.2 from
961 being read by earlier versions of netCDF or HDF5 versions before 1.8.7.
962 [NCF-23]
963 
964 * Fix bug in configure that did not make the search for the xdr library
965 depend on --enable-dap. [NCF-41]
966 
967 * Fix ncgen bug that did not use the value of a \_Format attribute in the
968 input CDL file to determine the kind of output file created, when not
969 specified by the -k command-line flag. [NCF-42]
970 
971 * Fix ncgen bug, not properly handling unsigned longlong parsing. [NCF-43]
972 
973 * Fix DAP client code to suppress variables with names such as "x.y",
974 which DAP protocol interprets as variable "y" inside container "x". Such
975 variables will be invisible when accessed through DAP client. [NCF-47]
976 
977 * Define uint type for unsigned integer, if not otherwise available.
978 Symptom was compile error involving uint in putget.c. [NCF-49]
979 
980 * Fix username+password handling in the DAP client code. [NCF-50]
981 
982 * Add test for handling parallel I/O problem from f77 when user forgets to
983 turn on one of the two MPI flags. [NCF-60]
984 
985 * Resolved "make check" problems when ifort compiler. Some "make install"
986 problems remain when using MPI and shared libraries. [NCF-61]
987 
988 * Fix problem with f90\_def\_var not always handle deflate setting when
989 compiler was ifort. [NCF-67]
990 
991 * Check that either MPIIO or MPIPOSIX flag is set when parallel create or
992 open is called. Also fix examples that didn't set at least one of these
993 flags. [NCF-68]
994 
995 * Improve documentation on handling client-side certificates [NCF-48]
996 
997 * Document that array arguments, except in varm functions, must point to
998 contiguous blocks of memory. [NCF-69]
999 
1000 * Get netCDF-4 tests working for DLLs generated with mingw. [NCF-6]
1001 
1002 * Make changes necessary for upgrading to HDF5 1.8.7 [NCF-66]
1003 
1004 ### 4.1.3-rc1 2011-05-06
1005 
1006 * Stop looking for xdr if --disable-dap is used.
1007 
1008 * Don't try to run (some) fortran configure tests on machines with no
1009 fortran.
1010 
1011 * Allow nccopy to rechunk with chunksizes larger than current dimension
1012 lengths.
1013 
1014 * Initial implementation of CDMREMOTE is complete; needs comprehensive
1015 testing.
1016 
1017 ### 4.1.3-beta1 2011-04-29
1018 
1019 * Fixed szlib not linking bug.
1020 
1021 * Fixed dreaded "nofill bug", lurking in netCDF classic since at least
1022 1999. Writing more than a disk block's worth of data that crossed disk
1023 block boundaries more than a disk block beyond the end of file in nofill
1024 mode could zero out recently written earlier data that hadn't yet been
1025 flushed to disk.
1026 
1027 * Changed setting for H5Pset\_libver\_bounds to ensure that all netCDF-4
1028 files can be read by HDF5 1.8.x.
1029 
1030 * Merged libncdap3 and libncdap4 into new libdap2 library. The suffix dap2
1031 now refers to the dap protocol. This is in prep for adding dap4 protocol
1032 support.
1033 
1034 * Took out --with-hdf5 and related options due to high cost of maintaining
1035 this non-standard way of finding libraries.
1036 
1037 ## 4.1.2 2011-03-29
1038 
1039 * Changes in build system to support building dlls on cygwin/mingw32.
1040 
1041 * Changes to fix portability problems and get things running on all test
1042 platforms.
1043 
1044 * Some minor documentation fixes.
1045 
1046 * Fixed opendap performance bug for nc\_get\_vars; required adding
1047 nc\_get\_var{s,m} to the dispatch table.
1048 
1049 * Now check for libz in configure.ac.
1050 
1051 * Fixed some bugs and some performance problems with default chunksizes.
1052 
1053 ### 4.1.2-beta2 2011-01-11
1054 
1055 * Add "-c" option to nccopy to specify chunk sizes used in output in terms
1056 of list of dimension names.
1057 
1058 * Rewrite netCDF-4 attribute put code for a large speedup when writing
1059 lots of attributes.
1060 
1061 * Fix nc-config --libs when static dependent libraries are not installed
1062 in the same directory as netCDF libraries (thanks to Jeff Whitaker).
1063 
1064 * Build shared libraries by default, requiring separate Fortran library.
1065 Static libraries now built only with --disable-shared.
1066 
1067 * Refactor of HDF5 file metadata scan for large speedup in opening files,
1068 especially large files.
1069 
1070 * Complete rewrite of the handling of character datalist constants. The
1071 heuristics are documented in ncgen.1.
1072 
1073 * Eliminate use of NC\_MAX\_DIMS and NC\_MAX\_VARS in ncdump and nccopy,
1074 allocating memory as needed and reducing their memory footprint.
1075 
1076 * Add documentation for new nc\_inq\_path() function.
1077 
1078 * Use hashing to speedup lookups by name for files with lots of dimensions
1079 and variables (thanks to Greg Sjaardema).
1080 
1081 * Add options to nccopy to support uniform compression of variables in
1082 output, shuffling, and fixing unlimited dimensions. Documented in
1083 nccopy.1 man page and User's Guide.
1084 
1085 ### 4.1.2-beta1 2010-07-09
1086 
1087 * Fix "ncdump -c" bug identifying coordinate variables in groups.
1088 
1089 * Fix bug in libsrc/posixio.c when providing sizehint larger than default,
1090 which then doesn't get used (thanks to Harald Anlauf).
1091 
1092 * Fix netCDF-4 bug caused when doing enddef/redef and then defining
1093 coordinate variable out of order.
1094 
1095 * Fixed bug in man4 directory automake file which caused documentation to
1096 be rebuilt after make clean.
1097 
1098 * Turned off HDF5 caching when parallel I/O is in use because of its
1099 memory use.
1100 
1101 * Refactoring of netCDF code with dispatch layer to decide whether to call
1102 netCDF classic, netCDF-4, or opendap version of a function.
1103 
1104 * Refactoring of netCDF-4 memory internals to reduce memory use and end
1105 dependence on NC\_MAX\_DIMS and NC\_MAX\_NAME.
1106 
1107 * Modified constraint parser to be more compatible with a java version of
1108 the parser.
1109 
1110 * Modified ncgen to utilize iterators internally; should be no user
1111 visible effect.
1112 
1113 * Fixed two large-file bugs with using classic format or 64-bit offset
1114 format and accessing multidimensional variables with more than 2\*\*32
1115 values.
1116 
1117 ## 4.1.1 2010-04-01
1118 
1119 * Fixed various build issues.
1120 
1121 * Fixed various memory bugs.
1122 
1123 * Fixed bug for netCDF-4 files with dimensions and coord vars written in
1124 different orders, with data writes interspersed.
1125 
1126 * Added test for HDF5-1.8.4 bug.
1127 
1128 * Added new C++ API from Lynton Appel.
1129 
1130 ## 4.1 2010-01-30
1131 
1132 * Much better memory leak checking with valgrind.
1133 
1134 * Added per-variable chunk cache control for better performance. Use
1135 nc\_set\_var\_chunk\_cache / nf\_set\_var\_chunk\_cache /
1136 nf90\_set\_var\_chunk\_cache to set the per-variable cache.
1137 
1138 * Automatically set per-variable chunk cache when opening a file, or
1139 creating a variable, so that the cache is big enough for more than one
1140 chunk. (Can be overridden by user). Settings may be changed with
1141 configure options --max-default-chunk-size and
1142 --default-chunks-in-cache.
1143 
1144 * Better default chunks size. Now chunks are sized to fit inside the
1145 DEFAULT\_CHUNK\_SIZE (settable at configure time with
1146 --with-default-chunk-size= option.)
1147 
1148 * Added nccopy utility for converting among netCDF format variants or to
1149 copy data from DAP servers to netCDF files.
1150 
1151 * The oc library has been modified to allow the occurrence of alias
1152 definitions in the DAS, but they will be ignored.
1153 
1154 * The old ncgen has been moved to ncgen3 and ncgen is now the new ncgen4.
1155 
1156 * Modified --enable-remote-tests to be on by default.
1157 
1158 * Fixed the nc\_get\_varm code as applied to DAP data sources.
1159 
1160 * Added tests for nc-config.
1161 
1162 * Many documentation fixes.
1163 
1164 * Added capability to use the parallel-netcdf (a.k.a. pnetcdf) library to
1165 perform parallel I/O on classic and 32-bit offset files. Use the
1166 NC\_PNETCDF mode flag to get parallel I/O for non-netcdf-4 files.
1167 
1168 * Added libcf library to netCDF distribution. Turn it on with configure
1169 option --with-libcf.
1170 
1171 * Added capability to read HDF4 files created with the SD (Scientific
1172 Data) API.
1173 
1174 * The DAP support was revised to closely mimic the original libnc-dap
1175 support.
1176 
1177 * Significantly revised the data handling mechanism in ncgen4 to more
1178 closely mimic the output from the original ncgen.
1179 
1180 * Added prototype NcML output capability to ncgen4. It is specified by the
1181 -lcml flag.
1182 
1183 * Added capability to read HDF5 files without dimension scales. This will
1184 allow most existing HDF5 datasets to be read by netCDF-4.
1185 
1186 * Fixed bug with endianness of default fill values for integer types when
1187 variables are created with a non-native endiannesss and use the default
1188 fill value.
1189 
1190 * Significant refactoring of HDF5 type handling to improve performance and
1191 handle complicated nesting of types in cross-platform cases.
1192 
1193 * Added UDUNITS2 to the distribution. Use --with-udunits to build udunits
1194 along with netcdf.
1195 
1196 * Made changes suggested by HDF5 team to relax creation-order requirement
1197 (for read-only cases) which allows HDF5 1.6.x files to be retrofitted
1198 with dimension scales, and be readable to netCDF-4.
1199 
1200 * Handle duplicate type names within different groups in ncdump. Fix group
1201 path handling in absolute and relative variable names for "-v" option.
1202 
1203 * Added nc-config shell script to help users build netCDF programs without
1204 having to figure out all the compiler options they will need.
1205 
1206 * Fixed ncdump -s bug with displaying special attributes for classic and
1207 64-bit offset files.
1208 
1209 * For writers, nc\_sync() now calls fsync() to flush data to disk sooner.
1210 
1211 * The nc\_inq\_type() function now works for primitive types.
1212 
1213 ## 4.0.1 2009-03-26
1214 
1215 * Added optional arguments to F90 API to nf90\_open/create,
1216 nf90\_create\_var, and nf90\_inquire\_variable so that all netCDF-4
1217 settings may be accomplished with optional arguments, instead of
1218 separate function calls.
1219 
1220 * Added control of HDF5 chunk cache to allow for user performance tuning.
1221 
1222 * Added parallel example program in F90.
1223 
1224 * Changed default chunking to better handle very large variables.
1225 
1226 * Made contiguous the default for fixed size data sets with no filters.
1227 
1228 * Fixed bug in nc\_inq\_ncid; now it returns NC\_ENOGRP if the named group
1229 is not found.
1230 
1231 * Fixed man pages for C and F77 so that netCDF-4 builds will result in man
1232 pages that document new netCDF-4 functions.
1233 
1234 * Added OPeNDAP support based on a new C-only implementation. This is
1235 enabled using --enable-dap option and requires libcurl. The configure
1236 script will attempt to locate libcurl, but if it fails, then its
1237 location must be specified by the --with-curl option.
1238 
1239 ### 4.0.1-beta2 2008-12-26
1240 
1241 * Changed chunksizes to size\_t from int.
1242 
1243 * Fixed fill value problem from F77 API.
1244 
1245 * Fixed problems in netcdf-4 files with multi-dimensional coordinate
1246 variables.
1247 
1248 * Fixed ncgen to properly handle CDL input that uses Windows line endings
1249 ("\r\n"), instead of getting a syntax error.
1250 
1251 * Added "-s" option to ncdump to display performance characterisitics of
1252 netCDF-4 files as special virtual attributes, such as \_Chunking,
1253 \_DeflateLevel, \_Format, and \_Endianness.
1254 
1255 * Added "-t" option to ncdump to display times in human readable form as
1256 strings. Added code to interpret "calendar" attribute according to CF
1257 conventions, if present, in displaying human-readable times.
1258 
1259 * Added experimental version of ncgen4 capable of generating netcdf-4 data
1260 files and C code for creating them. In addition, it supports the special
1261 attributes \_Format, etc.
1262 
1263 * 4.0.1-beta1 2008-10-16
1264 
1265 * Fixed Fortran 90 int64 problems.
1266 
1267 * Rewrote HDF5 read/write code in accordance with performance advice from
1268 Kent.
1269 
1270 * Fixed memory leaks in gets/puts of HDF5 data.
1271 
1272 * Fixed some broken tests for parallel I/O (i.e. MPI) builds.
1273 
1274 * Fixed some cross-compile problems.
1275 
1276 * Rewrote code which placed bogus errors on the HDF5 error stack, trying
1277 to open non-existent attributes and variables. Now no HDF5 errors are
1278 seen.
1279 
1280 * Removed man subdirectory. Now man4 subdirectory is used for all builds.
1281 
1282 * Changed build so that users with access to parallel make can use it.
1283 
1284 * Added experimental support for accessing data through OPeNDAP servers
1285 using the DAP protocol (use --enable-opendap to build it).
1286 
1287 * Fixed ncdump bugs with array field members of compound type variables.
1288 Fixed ncdump bug of assuming default fill value for data of type
1289 unsigned byte.
1290 
1291 ## 4.0 2008-05-31
1292 
1293 * Introduced the use of HDF5 as a storage layer, which allows use of
1294 groups, user-defined types, multiple unlimited dimensions, compression,
1295 data chunking, parallel I/O, and other features. See the netCDF Users
1296 Guide for more information.
1297 
1298 ## 3.6.3 2008-05-31
1299 
1300 * In ncdump and ncgen, added CDL support for UTF-8 encoding of characters
1301 in names and for escaped special chars in names. Made sure UTF-8 names
1302 are normalized using NFC rules before storing or comparing.
1303 
1304 * Handle IEEE NaNs and infinities in a platform-independent way in ncdump
1305 output.
1306 
1307 * Added support for ARM representation of doubles, (thanks to Warren
1308 Turkal).
1309 
1310 * Fixed bug in C++ API creating 64-bit offset files. (See
1311 http://www.unidata.ucar.edu/software/netcdf/docs/known_problems.html#cxx_64-bit).
1312 
1313 * Fixed bug for variables larger than 4 GB. (See
1314 http://www.unidata.ucar.edu/software/netcdf/docs/known_problems.html#large_vars_362).
1315 
1316 * Changed the configure.ac to build either 3.6.x or 4.x build from the
1317 same configure.ac.
1318 
1319 * Build now checks gfortran version and handles it cleanly, also Portland
1320 Group in Intel fortran, with various configurations.
1321 
1322 * A Fortran netcdf.inc file is now created at build time, based on the
1323 setting of --disable-v2.
1324 
1325 * Documentation has been fixed in several places.
1326 
1327 * Upgraded to automake 1.10, autoconf 2.62, and libtool 2.2.2.
1328 
1329 * Includes missing Windows Visual Studio build files.
1330 
1331 * Fixed missing include of config.h in a C++ test program.
1332 
1333 * Fixed maintainer-clean in man directory.
1334 
1335 * Fixed --enable-c-only and make check.
1336 
1337 * Fixed behavior when opening a zero-length file.
1338 
1339 * Many portability enhancements to build cleanly on various platforms.
1340 
1341 * Turned on some old test programs which were not being used in the build.
1342 
1343 ## 3.6.2 2007-03-05
1344 
1345 * Released.
1346 
1347 ### 3.6.2 beta6 2007-01-20
1348 
1349 * Fine tuning of build system to properly handle cygwin, Mingw, and
1350 strange configuration issues.
1351 
1352 * Automake 1.10 has a problem with running our tests on MinGW, so I'm
1353 switching back to automake 1.9.6 for this release.
1354 
1355 ### 3.6.2 beta5 2006-12-30
1356 
1357 * Now netCDF configuration uses autoconf 2.61, and automake 1.10. (Thanks
1358 to Ralf Wildenhues for the patches, and all the autotools help in
1359 general!)
1360 
1361 * Final major revision of netCDF tutorial before the 3.6.2 release.
1362 
1363 * Now netCDF builds under MinGW, producing a windows DLL with the C and
1364 F77 APIs. Use the --enable-shared --enable-dll --disable-cxx
1365 --disable-f90 flags to configure. (C++ and F90 have never been built as
1366 windows DLLs, but might be in a future release if there is user
1367 interest). This has all been documented in the netCDF Porting and
1368 Installation Guide.
1369 
1370 * Now extreme numbers (i.e. those close to the limits of their type) can
1371 be turned off in nc\_test/nf\_test, with --disable-extreme-numbers. It
1372 is turned off automatically for Solaris i386 systems.
1373 
1374 * Added --enable-c-only option to configure. This causes only the core
1375 netCDF-3 C library to be built. It's the same as --disable-f77
1376 --disable-cxx --disable-v2 --disable-utilities.
1377 
1378 * Added --disable-utilities to turn off building and testing of
1379 ncgen/ncdump.
1380 
1381 * Fix a long-standing bug in nf90\_get\_att\_text() pointed out by Ryo
1382 Furue, to make sure resulting string is blank-padded on return. This is
1383 fixed in the Fortran-90 interface, but is impractical to fix in the
1384 Fortran-77 interface implemented via cfortran.h.
1385 
1386 * Now large file tests are run if --enable-large-file-tests is used in the
1387 configure.
1388 
1389 * For Cray users, the ffio module is used if the --enable-ffio option is
1390 passed to configure.
1391 
1392 * Unrolled loops in byte-swapping code used on little-endian platforms to
1393 reduce loop overhead. This optimization resulted in a 22% speedup for
1394 some applications accessing floats or ints (e.g. NCO utilities ncap and
1395 ncbo) and a smaller speedup for shorts or doubles.
1396 
1397 * Added "-k" option to ncdump and ncgen, for identifying and specifying
1398 the kind of netCDF file, one of "classic", "64-bit-offset", "hdf5", or
1399 "hdf5-nc3". Removed output of kind of netCDF file in CDL comment
1400 produced by ncdump.
1401 
1402 * Fixed bug of ncdump seg-faulting if invoked incorrectly with option like
1403 "-c" or "-h" but no file name.
1404 
1405 ### 3.6.2 beta4 2006-08-15
1406 
1407 * Changed F77/F90 man pages from netcdf.3f and netcdf.3f90 to
1408 netcdf\_f77.3 and netcdf\_f90.3. Also fixed broken install of man pages.
1409 
1410 * Changed configure script so that "-g -O2" is no longer set as CFLAGS,
1411 CXXFLAGS, and FFLAGS by default if a GNU compiler is being used. Now
1412 nothing is set.
1413 
1414 * Changed configure script so that fortran flag is set in config.h.
1415 
1416 * Updated Installation and Porting Guide, C++ Interface Guide, F77 and F90
1417 Interface Guides.
1418 
1419 * Build with static libraries by default.
1420 
1421 * Added configure option --enable-separate-fortran, which causes the
1422 fortran library to be built separately. This is turned on automatically
1423 for shared libraries.
1424 
1425 * Improved clarity of error messages.
1426 
1427 * Changed configuration to get cygwin DLL and mingw DLL builds working,
1428 for the C library only (i.e. no F77, F90, or C++ APIs).
1429 
1430 * Changed type of ncbyte in C++ interface from unsigned char to signed
1431 char, for consistency with C interface. The C++ documentation warned
1432 this change would eventually occur.
1433 
1434 * Changed the C++ interface to use only the netCDF-3 C interface instead
1435 of the older netCDF-2 C interface. This has the added benefit that
1436 on-the-fly numeric conversions are now supported using get methods, for
1437 example you can get data of any type as double. When using --disable-v2
1438 flag to configure, the C++ interface can now be built and installed.
1439 
1440 ### 3.6.2 beta3 2006-05-24
1441 
1442 * Changed to use default prefix of /usr/local instead of package-based
1443 prefix of previous releases of netCDF. Use the --prefix argument to the
1444 configure script to override the default.
1445 
1446 * Made separate fortran library file, instead of appending fortran library
1447 functions to the C library file, if --enable-separate-fortran is used
1448 during configure (it's turned on automatically if --enable-shared is
1449 used). If uses, the fortran API users must link to *both* the C library
1450 and the new fortran library, like this: -lnetcdff -lnetcdf
1451 
1452 * Added netCDF examples in C, C++, F77, F90, and CDL. See the examples
1453 subdirectory.
1454 
1455 * Added the NetCDF Tutorial.
1456 
1457 * Minor fixes to some of the netCDF documentation.
1458 
1459 * Made it possible to build without V2 API using --disable-v2 from
1460 configure.
1461 
1462 * Switched to new build system, with automake and libtool. Now shared
1463 libraries are built (as well as static ones) on platforms which support
1464 it. For more information about shared libraries, see
1465 http://www.unidata.ucar.edu/software/netcdf/docs/faq.html#shared_intro
1466 
1467 * Fixed ncdump crash that happened when no arguments were used.
1468 
1469 * Fixed for building with gfortran 4.1.0.
1470 
1471 * Important fix for machines whose SIZEOF\_SIZE\_T != SIZEOF\_LONG, such
1472 as NEC-SX, thanks to Stephen Leak.
1473 
1474 * Fixed C++ on AIX platform.
1475 
1476 * Fixed 64-bit builds on AIX platform.
1477 
1478 * Removed bad assertion that could be triggered in rare cases when reading
1479 a small file.
1480 
1481 * Added comments in v1hpg.c to clarify purpose of each internal function.
1482 
1483 * Make sure filesize is determined in nc\_close() *after* buffers get
1484 flushed.
1485 
1486 * Fix long-standing problem resulting in files up to 3 bytes longer than
1487 necessary if there is exactly one record variable of type byte, char, or
1488 short and if the number of values per record for that variable is not
1489 divisible by 4 (or 2 in the case of short). Now the filesize determined
1490 from header info by NC\_calcsize should be correct in all cases.
1491 
1492 ## 3.6.1 2006-01-31
1493 
1494 * Updated installation manual for 3.6.1.
1495 
1496 * Changed installation to try to provide correct compiler flags for
1497 compiling in 64-bit mode on Sun, Irix, AIX, and HPUX. (HPUX doesn't work
1498 for me, however). Now run configure with --enable-64bit to get a 64 bit
1499 compile.
1500 
1501 * Fixed long-standing bug that would cause small netCDF files to be padded
1502 on the end with zero bytes to 4096 bytes when they were opened and
1503 changed. Now small files should stay small after you change a value.
1504 
1505 * Fixed bug in assertions in putget.c that would only be noticed if you
1506 change the manifest constant NC\_MAX\_DIMS in netcdf.h to be different
1507 from NC\_MAX\_VAR\_DIMS.
1508 
1509 * Moved test ftest.F from fortran to nf\_test directory, and fixed bug in
1510 ftest.F which caused it to return 0 even if tests failed (no tests were
1511 failing, however). Also renamed some test output files to make things a
1512 little clearer.
1513 
1514 * If open for writing, pad with up to 3 extra zero bytes before close to
1515 the correct canonical length, calculated from the header. Previously
1516 files could be short due to not padding when writing in NOFILL mode.
1517 
1518 * Doubled arbitrary limits on number of dimensions, variables, attributes,
1519 and length of names.
1520 
1521 * Change name of nc\_get\_format() to nc\_inq\_format(). Add analogous
1522 interfaces for nf\_inq\_format(), nf90\_inquire(), and
1523 NcFile::get\_format() to f77, f90, and C++ interfaces. Document new
1524 function in texinfo files. Add minimal test to nc\_test, nf\_test.
1525 
1526 ### 3.6.1-beta3 2005-02-17
1527 
1528 * Added function nc\_get\_format(int ncid, int\* formatp) that returns
1529 either NC\_FORMAT\_CLASSIC or NC\_FORMAT\_64BIT for a CDF1 or CDF2 file,
1530 respectively.
1531 
1532 * Added test to nc\_test that detects whether format version was changed
1533 after a file is reopened and define mode is entered.
1534 
1535 * Correctly configure for Intel ifort Fortran compiler on Linux.
1536 
1537 ### 3.6.0-p1 2005-02-18
1538 
1539 * Fixed bug that changes CDF2 files to CDF1 files if CDF2 file is reopened
1540 for write access and either an attribute is changed or define mode is
1541 entered.
1542 
1543 ### 3.6.1-beta2 2005-1-6
1544 
1545 * Fixed absoft compile problem. Maybe.
1546 
1547 ### 3.6.1-beta1 2005-1-3
1548 
1549 * Fixed Cygwin C++ problem.
1550 
1551 * Fixed large file problem in MS Visual C++.NET environment.
1552 
1553 * More information in installation and porting guide.
1554 
1555 ## 3.6.0 2004-12-16
1556 
1557 * Added texinfo source for the documentation.
1558 
1559 * Added large file tests to Windows directory in distribution.
1560 
1561 * Modified win32 visual studio project files so that m4 is no longer
1562 required to build netcdf under visual studio.
1563 
1564 * Modified rules.make to use install instead of cp, fixing install problem
1565 for cygwin users.
1566 
1567 * Modified configure/install stuff to support HP-UX.
1568 
1569 * Modified configure/install stuff to support G95.
1570 
1571 * In the f90 interface, applied Arnaud Desitter's fixes to correct
1572 mismatches between scalar and array arguments, eliminating (legitimate)
1573 complaints by the NAGWare f95 compiler. Also fixed bugs introduced in
1574 3.6.0-beta5 in the mapped array interfaces.
1575 
1576 ### 3.6.0-beta6 2004-10-05
1577 
1578 * Fixed AIX 64-bit/largefile install problems.
1579 
1580 * Removed FAQ section from netcdf.texi User's Guide, in deference to
1581 online version that can be kept up to date more easily.
1582 
1583 ### 3.6.0-beta5 2004-10-04
1584 
1585 * Fixed assertion violation on 64-bit platforms when size of last fixed
1586 size variable exceeds 2\^32 - 1.
1587 
1588 * Removed another restriction on file size by making record size (derived
1589 from other sizes, not part of the format) an off\_t instead of a
1590 size\_t, when an off\_t is larger than a size\_t. This permits records
1591 to be *much* larger in either classic format or 64-bit-offset format.
1592 
1593 * Incorporated patch from Mathis Rosenhauer to improve performance of
1594 Fortran 90 interface for calls to nf90\_put\_var\_TYPE(),
1595 nf90\_get\_var\_TYPE(), nf90\_put\_vara\_TYPE(), and
1596 nf90\_get\_vara\_TYPE() functions by not emulating them with the
1597 corresponding nf90\_put\_varm\_TYPE() and nf90\_get\_varm\_TYPE() calls.
1598 
1599 * Added tests for invalid offsets in classic format when defining multiple
1600 large variables.
1601 
1602 * Improved installation ease. Have configure script use Large File Support
1603 as a default, if available.
1604 
1605 * Add "extra\_test" as a target for testing Large File Support.
1606 
1607 ### 3.6.0-beta3 2004-08-24
1608 
1609 * Upgraded to recent autoconf, changed configure to (hopefully) improve
1610 installation. Also added macros to deal with large file systems.
1611 
1612 * Added nf\_set\_default\_format to Fortran interface.
1613 
1614 * Added testing to the set\_default\_format functions to nc\_test and
1615 nf\_test.
1616 
1617 * Added documentation to the man page for set\_default\_format functions.
1618 
1619 * Added two new error return codes to C, f77, and f90 interfaces for
1620 invalid dimension size and for bad variable size. Made test for max
1621 dimension size depend on whether 64-bit offsets used. Fixed bug with
1622 dimension sizes between 2\^31 and 2\^32 (for byte variables).
1623 
1624 * Fixed ncdump to properly print dimensions larger than 2\^31.
1625 
1626 * Fixed ncgen to properly handle dimensions between 2\^31 and 2\^32.
1627 
1628 ### 3.6.0-beta2
1629 
1630 * Added -v2 (version 2 format with 64-bit offsets) option to
1631 ncgen, to specify that generated files or generated C/Fortran code
1632 should create 64-bit offset files. Also added -x option to ncgen to
1633 specify use of no-fill mode for fast creation of large files.
1634 
1635 * Added function to set default create mode to C interface
1636 (nc\_set\_default\_create).
1637 
1638 * Added win32 directory, with NET subdirectory to hold .NET port of
1639 netCDF. To use, open netcdf.sln with Visual Studio, and do a clean and
1640 then a build of either the debug or release builds. Tests will be run as
1641 part of the build process. VC++ with managed extensions is required
1642 (i.e. VC++.NET).
1643 
1644 * Added windows installer files to build windows binary installs.
1645 
1646 ### 3.6.0-beta1
1647 
1648 * By incorporating Greg Sjaardema's patch, added support for
1649 64-bit offset files, which remove many of the restrictions relating to
1650 very large files (i.e. larger than 2 GB.) This introduces a new data
1651 format for the first time since the original netCDF format was
1652 introduced. Files in this new 64-bit offset format can't be read by
1653 earlier versions of netCDF. Users should continue to use the netCDF
1654 classic format unless they need to create very large files.
1655 
1656 * The test suite, nc\_test, will now be run twice, once for netCDF classic
1657 format testing, and once for 64-bit offset format testing.
1658 
1659 * The implementation of the Fortran-77 interface has been adapted to
1660 version 4.3 of Burkhard Burow's "cfortran.h".
1661 
1662 ### 3.6.0-alpha
1663 
1664 * Added NEC SX specific optimization for NFILL tunable
1665 parameter in libsrc/putget.c
1666 
1667 Added support for the ifc Fortran-90 compiler creating files "netcdf.d"
1668 and "typesizes.d" (instead of ".mod" files).
1669 
1670 * Fixed access to iargc and getarg functions from Fortran-90 for NAG f90
1671 compiler, contributed by Harald Anlauf.
1672 
1673 ## 3.5.1 2004-02-03
1674 
1675 * Updated INSTALL.html for Mac OS X (Darwin).
1676 
1677 * Made the installation of the netCDF Fortran-90 module file more robust
1678 regarding the name of the file.
1679 
1680 * Added support for eight-byte integers in Fortran90 interface.
1681 
1682 * Increased advisory limits in C netcdf.h and Fortran netcdf.inc for
1683 maximum number of dimensions, variables, and attributes.
1684 
1685 * Changed C++ declarations "friend NcFile" to "friend class NcFile" in
1686 cxx/netcdfcpp.h to conform to standard.
1687 
1688 * Added Dan Schmitt's backward compatible extension to the C++ record
1689 interface to work with arbitrary dimension slices.
1690 
1691 * Added C++ documentation note that caller is responsible for deleting
1692 pointer returned by Variable::values() method when no longer needed.
1693 
1694 * Made C++ interface more standard; the result may not compile on some old
1695 pre-standard C++ compilers.
1696 
1697 * Fixed bug in ncgen when parsing values of a multidimensional char
1698 variable that resulted in failure to pad a value with nulls on IRIX.
1699 
1700 * Fixed ncdump bug adding extra quote to char variable data when using -fc
1701 or -ff option.
1702 
1703 * Fixed so compiling with -DNO\_NETCDF\_2 will work for building without
1704 backward-compatibility netCDF-2 interfaces.
1705 
1706 * Eliminated use of ftruncate(), because it fails on FAT32 file systems
1707 under Linux.
1708 
1709 * Initialized a pointer in putget.m4 (used to generate putget.c) that was
1710 involved in uninitialized memory references when nc\_test is run under
1711 Purify. Two users had reported seeing crashes resulting from this
1712 problem in their applications.
1713 
1714 * Reverted pointer initializations in putget.m4, after testing revealed
1715 these caused a performance problem, resulting in many extra calls to
1716 px\_pgin and px\_pgout when running nc\_test.
1717 
1718 * Added checking of size of "dimids" vector in function
1719 nf90\_inquire\_variable(...) and error-returning if it isn't
1720 sufficiently capacious.
1721 
1722 * Added variable index to ncvarget() and ncattinq() error messages and
1723 attribute name to ncattinq() error message.
1724 
1725 * Tweaked configure script to work with recent C++ compilers.
1726 
1727 * Fixed a memory leak in C++ interface, making sure NcVar::cur\_rec[] gets
1728 deleted in NcVar destructor.
1729 
1730 * Reimplemented nc\_sync() fix of version 3.5.0 to eliminate performance
1731 penalty when synchronization is unnecessary.
1732 
1733 * Changed order of targets in Makefile to build Fortran interface last, as
1734 a workaround for problem with make on AIX platforms.
1735 
1736 ## 3.5.0 2001-03-23
1737 
1738 * Added Fortran 90 interface.
1739 
1740 * Changed C macro TIMELEN in file cxx/nctst.cpp to TIMESTRINGLEN to avoid
1741 clash with macro defined on AIX systems in /usr/include/time.h.
1742 
1743 * Fixed miswriting of netCDF header when exiting define mode. Because the
1744 header was always written correctly later, this was only a problem if
1745 there was another reader of the netCDF file.
1746 
1747 * Fixed explicit synchronizing between netCDF writer and readers via the
1748 nc\_sync(), nf\_sync(), and ncsync() functions.
1749 
1750 * Fixed a number of bugs related to attempts to support shrinking the
1751 header in netCDF files when attributes are rewritten or deleted. Also
1752 fixed the problem that nc\_\_endef() did not work as intended in
1753 reserving extra space in the file header, since the extra space would be
1754 compacted again on calling nc\_close().
1755 
1756 * Fixed the "redef bug" that occurred when nc\_enddef() or nf\_enddef() is
1757 called after nc\_redef() or nf\_redef(), the file is growing such that
1758 the new beginning of a record variable is in the next "chunk", and the
1759 size of at least one record variable exceeds the chunk size (see
1760 netcdf.3 man page for a description of this tuning parameter and how to
1761 set it). This bug resulted in corruption of some values in other
1762 variables than the one being added.
1763 
1764 * The "\*\*" tuning functions for the Fortran interface, nf\*\*create,
1765 nf\*\*open, and nf\*\*enddef, are now documented in the Fortran interface
1766 man pages.
1767 
1768 * Add an 'uninstall' target to all the Makefiles. Dave Glowacki
1769 <dglo@SSEC.WISC.EDU> 199810011851.MAA27335
1770 
1771 * Added support for multiprocessing on Cray T3E. Hooks added by Glenn, but
1772 the majority of the work was done at NERSC. Also includes changes to
1773 ffio option specification. Patch rollup provided by R. K. Owen
1774 <rkowen@Nersc.GOV>. The following functions are added to the public
1775 interface. nc**create\_mp() nc**open\_mp() nc\_set\_base\_pe()
1776 nc\_inq\_base\_pe()
1777 
1778 * Fixed makefile URL for Win32 systems in INSTALL file.
1779 
1780 * Made test for UNICOS system in the configure script case independent.
1781 
1782 * Ported to the following systems: AIX 4.3 (both /bin/xlc and
1783 /usr/vac/bin/xlc compilers) IRIX 6.5 IRIX64 6.5
1784 
1785 * Changed the extension of C++ files from ".cc" to ".cpp". Renamed the C++
1786 interface header file "netcdfcpp.h" instead of "netcdf.hh", changing
1787 "netcdf.hh" to include "netcdfcpp.h" for backward compatibility.
1788 
1789 * Treat "FreeBSD" systems the same as "BSD/OS" system w.r.t. Fortran and
1790 "whatis" database.
1791 
1792 * Corrected manual pages: corrected spelling of "enddef" (was "endef") and
1793 ensured that the words "index" and "format" will be correctly printed.
1794 
1795 * Updated support for Fortran-calling-C interface by updating
1796 "fortran/cfortran.h" from version 3.9 to version 4.1. This new version
1797 supports the Portland Group Fortran compiler (C macro "pgiFortran") and
1798 the Absoft Pro Fortran compiler (C macro "AbsoftProFortran").
1799 
1800 * Corrected use of non-integral-constant-expression in specifying size of
1801 temporary arrays in file "libsrc/ncx\_cray.c".
1802 
1803 * Added Compaq Alpha Linux workstation example to INSTALL file.
1804 
1805 * Ported cfortran.h to Cygnus GNU Win32 C compiler (gcc for Windows).
1806 
1807 * Fixed bug in ncdump using same CDL header name when called with multiple
1808 files.
1809 
1810 * Added new NULL data type NC\_NAT (Not A Type) to facilitate checking
1811 whether a variable object has had its type defined yet, for example when
1812 working with packed values.
1813 
1814 * Fixed use of compile-time macro NO\_NETCDF\_2 so it really doesn't
1815 include old netCDF-2 interfaces, as intended.
1816 
1817 * Ported to MacOS X Public Beta (Darwin 1.2/PowerPC).
1818 
1819 * Fixed C++ friend declarations to conform to C++ standard.
1820 
1821 * Changed INSTALL file to INSTALL.html instead.
1822 
1823 ## 3.4 1998-03-09
1824 
1825 * Fixed ncx\_cray.c to work on all CRAY systems, not just CRAY1. Reworked
1826 USE\_IEG, which was incorrect. Reworked short support. Now USE\_IEG and
1827 otherwise both pass t\_ncx.
1828 
1829 * To better support parallel systems, static and malloc'ed scratch areas
1830 which were shared in the library were eliminated. These were made
1831 private and on the stack where possible. To support this, the macros
1832 ALLOC\_ONSTACK and FREE\_ONSTACK are defined in onstack.h.
1833 
1834 * The buffered i/o system implementation in posixio.c was reimplemented to
1835 limit the number and size of read() or write() system calls and use
1836 greater reliance on memory to memory copy. This saves a great deal of
1837 wall clock time on slow (NFS) filesystems, especially during
1838 nc\_endef().
1839 
1840 * Added performance tuning "underbar underbar" interfaces nc**open(),
1841 nc**create(), and nc\_\_enddef().
1842 
1843 * The 'sizehint' contract between the higher layers and the ncio layer is
1844 consistently enforced.
1845 
1846 * The C++ interface has been updated so that the deprecated "nclong"
1847 typedef should no longer be required, and casts to nclong no longer
1848 necessary. Just use int or long as appropriate. nclong is still
1849 supported for backwards compatibility.
1850 
1851 * The ncdump utility now displays byte values as signed, even on platforms
1852 where the type corresponding to a C char is unsigned (SGI, for example).
1853 Also the ncdump and ncgen utilities have been updated to display and
1854 accept byte attributes as signed numeric values (with a "b" suffix)
1855 instead of using character constants.
1856 
1857 * In libsrc/error.c:nc\_strerror(int), explain that NC\_EBADTYPE applies
1858 to "\_FillValue type mismatch".
1859 
1860 * Some changes to configure scripts (aclocal.m4), macros.make.in and
1861 ncgen/Makefile to support NEC SUPER-UX 7.2.
1862 
1863 * The "usage" messages of ncgen and ncdump include the string returned
1864 from nc\_inq\_libvers().
1865 
1866 * Corrected some casts in the library so that all phases of the arithmetic
1867 computing file offsets occurs with "off\_t" type. This allows certain
1868 larger netcdf files to be created and read on systems with larger
1869 (64bit) off\_t.
1870 
1871 * In ncgen, multidimensional character variables are now padded to the
1872 length of last dimension, instead of just concatenating them. This
1873 restores an undocumented but convenient feature of ncgen under netCDF-2.
1874 Also, a syntax error is now reliably reported if the netcdf name is
1875 omitted in CDL input.
1876 
1877 * Fortran and C code generated by ncgen for netCDF components whose names
1878 contain "-" characters will now compile and run correctly instead of
1879 causing syntax errors.
1880 
1881 * The library allows "." characters in names as well as "\_" and "-"
1882 characters. A zero length name "" is explicitly not allowed. The ncgen
1883 utility will now permit "." characters in CDL names as well.
1884 
1885 * Memory leaks in the C++ interface NcVar::as\_\*() member functions and
1886 NcFile::add\_var() member function are fixed. The documentation was
1887 fixed where it indicated incorrectly that the library managed value
1888 blocks that the user is actually responsible for deleting.
1889 
1890 * he values of the version 2 Fortran error codes have been modified to
1891 make the version 2 Fortran interface more backward compatible at the
1892 source level.
1893 
1894 * Added support for systems whose Fortran INTEGER*1 and INTEGER*2 types
1895 are equivalent to the C "long" type but whose C "int" and "long" types
1896 differ. An example of such a system is the NEC SX-4 with the "-ew"
1897 option to the f90 compiler (sheesh, what a system!).
1898 
1899 * Fixed Version 2 Fortran compatibility bug: NCVGTG, NCVGGC, NCVPTG, and
1900 NCVPGC didn't work according to the Version 2 documentation if the
1901 innermost mapping value (i.e. IMAP[1]) was zero (indicating that the
1902 netCDF structure of the variable should be used).
1903 
1904 ## 3.3.1 1997-06-16
1905 
1906 * One can now inquire about the number of attributes that a variable has
1907 using the global variable ID.
1908 
1909 * The FORTRAN interface should now work on more systems. In particular:
1910 
1911 * It should now work with FORTRAN compilers whose "integer*1" datatype is
1912 either a C "signed char", "short", or "int" and whose "integer*2"
1913 datatype is either a C "short" or "int".
1914 
1915 * It should now work with FORTRAN compilers that are extremely picky about
1916 source code formatting (e.g. the NAG f90 compiler).
1917 
1918 * The dependency on the non-POSIX utility m4(1) for generating the C and
1919 FORTRAN manual pages has been eliminated.
1920 
1921 * EXTERNAL statements have been added to the FORTRAN include-file
1922 "netcdf.inc" to eliminate excessive warnings about "unused" variables
1923 (which were actually functions) by some compilers (e.g. SunOS 4.1.3's
1924 f77(1) version 1.x).
1925 
1926 * Building the netCDF-3 package no longer requires the existence of the
1927 Standard C macro RAND\_MAX.
1928 
1929 * Fixed an ncdump bug resulting in ncdump reporting Attempt to convert
1930 between text & numbers when \_FillValue attribute of a character
1931 variable set to the empty string "".
1932 
1933 * Made ncgen tests more stringent and fixed various bugs this uncovered.
1934 These included bugs in handling byte attributes on platforms on which
1935 char is unsigned, initializing scalar character variables in generated C
1936 code under "-c" option, interspersing DATA statements with declaration
1937 statements in generated Fortran code under "-f" option, handling empty
1938 string as a value correctly in generated C and Fortran, and handling
1939 escape characters in strings. The Fortran output under the "-f" option
1940 was also made less obscure and more portable, using automatic conversion
1941 with netCDF-3 interfaces instead of "BYTE", "INTEGER*1", or "INTEGER*2"
1942 declarations.
1943 
1944 * Fixed a C++ interface problem that prevented compiling the C++ library
1945 with Digital's cxx compiler.
1946 
1947 * Made ncgen "make test" report failure and stop if test resulted in a
1948 failure of generated C or Fortran code.
1949 
1950 * The file that you are now reading was created to contain a high-level
1951 description of the evolution of the netCDF-3 package.
1952 
1953 ## 3.3 1997-05-15
1954 
1955 * The production version of the netCDF-3 package was released.
1956 
1957 * A comparison of the netCDF-2 and netCDF-3 releases can be found in the
1958 file COMPATIBILITY.
1959 
1960 */

Return to the Main Unidata NetCDF page.
Generated on Sat Dec 30 2017 10:59:33 for NetCDF. NetCDF is a Unidata library.