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

Return to the Main Unidata NetCDF page.
Generated on Sun Mar 27 2016 11:43:30 for NetCDF. NetCDF is a Unidata library.