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

Return to the Main Unidata NetCDF page.
Generated on Sun Nov 1 2015 19:54:55 for NetCDF. NetCDF is a Unidata library.