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

Return to the Main Unidata NetCDF page.
Generated on Thu Aug 4 2016 17:55:22 for NetCDF. NetCDF is a Unidata library.