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

Return to the Main Unidata NetCDF page.
Generated on Tue Oct 6 2015 12:31:48 for NetCDF. NetCDF is a Unidata library.