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

Return to the Main Unidata NetCDF page.
Generated on Mon Nov 16 2020 02:07:56 for NetCDF. NetCDF is a Unidata library.