diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index c9237724ae..5ce15dfa18 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -12,18 +12,17 @@ This file contains a high-level description of this package's evolution. Release * [Bug Fix] Use env variable USERPROFILE instead of HOME for windows and mingw. See [Github #2405](https://github.com/Unidata/netcdf-c/pull/2405). * [Bug Fix] Fix the nc_def_var_fletcher32 code in hdf5 to properly test value of the fletcher32 argument. See [Github #2403](https://github.com/Unidata/netcdf-c/pull/2403). - ## 4.9.0 - June 10, 2022 -* [Enhancement] Add quantize functions nc_def_var_quantize()/nc_inq_var_quantize() to enable lossy compression. See [Github #1548](https://github.com/Unidata/netcdf-c/pull/1548). -* [Enhancement] Add zstandard compression functions nc_def_var_zstandard()/nc_inq_var_zstandard(). See [Github #2173](https://github.com/Unidata/netcdf-c/issues/2173). +* [Enhancement] Add quantize functions nc_def_var_quantize() and nc_inq_var_quantize() to enable lossy compression. See [Github #1548](https://github.com/Unidata/netcdf-c/pull/1548). +* [Enhancement] Add zstandard compression functions nc_def_var_zstandard() and nc_inq_var_zstandard(). See [Github #2173](https://github.com/Unidata/netcdf-c/issues/2173). * [Enhancement] Have netCDF-4 logging output one file per processor when used with parallel I/O. See [Github #1762](https://github.com/Unidata/netcdf-c/issues/1762). * [Enhancement] Improve filter installation process to avoid use of an extra shell script. See [Github #2348](https://github.com/Unidata/netcdf-c/pull/2348). * [Bug Fix] Get "make distcheck" to work See [Github #2343](https://github.com/Unidata/netcdf-c/pull/2343). * [Enhancement] Allow the read/write of JSON-valued Zarr attributes to allow for domain specific info such as used by GDAL/Zarr. See [Github #2278](https://github.com/Unidata/netcdf-c/pull/2278). -* [Enhancement] Turn on the XArray convention for NCZarr files by default. WARNING, this means that the mode should explicitly specify nczarr" or "zarr" even if "xarray" or "noxarray" is specified. See [Github #2257](https://github.com/Unidata/netcdf-c/pull/2257). -* [Enhancement] Update the documentation to match the current filter capabilities See [Github #2249](https://github.com/Unidata/netcdf-c/pull/2249). +* [Enhancement] Turn on the XArray convention for NCZarr files by default. WARNING, this means that the mode should explicitly specify "nczarr" or "zarr" even if "xarray" or "noxarray" is specified. See [Github #2257](https://github.com/Unidata/netcdf-c/pull/2257). +* [Enhancement] Update the documentation to match the current filter capabilities. See [Github #2249](https://github.com/Unidata/netcdf-c/pull/2249). * [Enhancement] Support installation of pre-built standard filters into user-specified location. See [Github #2318](https://github.com/Unidata/netcdf-c/pull/2318). * [Enhancement] Improve filter support. More specifically (1) add nc_inq_filter_avail to check if a filter is available, (2) add the notion of standard filters, (3) cleanup szip support to fix interaction with NCZarr. See [Github #2245](https://github.com/Unidata/netcdf-c/pull/2245). * [Enhancement] Switch to tinyxml2 as the default xml parser implementation. See [Github #2170](https://github.com/Unidata/netcdf-c/pull/2170). @@ -47,453 +46,7 @@ for domain specific info such as used by GDAL/Zarr. See [Github #2278](https://g * [Bug Fix] Ensure that internal Fortran APIs are always defined. See [Github #2098](https://github.com/Unidata/netcdf-c/pull/2098). * [Enhancement] Support filters for NCZarr. See [Github #2101](https://github.com/Unidata/netcdf-c/pull/2101) * [Bug Fix] Make PR 2075 long file name be idempotent. See [Github #2094](https://github.com/Unidata/netcdf-c/pull/2094). -## What's Changed -* hashmap for quick var and dim retrieval -- nc3 files by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/238 -* Nc3 hashmap fix by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/246 -* Remove dispatch substrate mechanism by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/248 -* Add provenance info for netcdf-4 files. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/260 -* Finally get around to removing all that obsolete pnetcdf related code in libsrc4. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/261 -* Use SOURCE_DATE_EPOCH instead of current date. by @sebastic in https://github.com/Unidata/netcdf-c/pull/263 -* re: github issue https://github.com/Unidata/netcdf-c/issues/265 by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/266 -* Check for valid MPI_Comm before freeing by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/268 -* re: https://github.com/Unidata/netcdf-c/issues/269 by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/270 -* HDF5 generates unnecessary error messages when netcdf4 logging enabled by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/272 -* The name hash for hdf4 variables was not being computed. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/273 -* Make ncdump/nccopy return a better error when given a bad constraint in a dap url by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/279 -* Eliminate c++ or c99-style comment by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/274 -* mutiple typedefs causing compile problems by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/287 -* Fix variable and dimension renaming for nc3 with hashmap by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/286 -* This patch changes the algorithm for determining the extended size of a dataset... by @brtnfld in https://github.com/Unidata/netcdf-c/pull/278 -* Fix att_name size by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/288 -* Fix incorrect test by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/289 -* Test all three files for compatibility by @tbeu in https://github.com/Unidata/netcdf-c/pull/294 -* Use correct symbol by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/293 -* Some small fixes for nc-config by @ZedThree in https://github.com/Unidata/netcdf-c/pull/305 -* Fix for Github issue netcdf-c 300 by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/301 -* Usage function called wrong in nc-config by @ZedThree in https://github.com/Unidata/netcdf-c/pull/306 -* Fix invalid array access by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/309 -* Fix HDF5 include directory with CMake >= 3.6.0. by @sebastic in https://github.com/Unidata/netcdf-c/pull/311 -* Fix spelling errors. by @sebastic in https://github.com/Unidata/netcdf-c/pull/312 -* Fix for Github issue 314. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/315 -* Use an hdf5-api function that eliminates code by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/290 -* Replace linked list with array for var storage in netcdf-4 format by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/328 -* Add missing #include "err_macros.h" to tst_h_par.c by @opoplawski in https://github.com/Unidata/netcdf-c/pull/333 -* Eliminate an MPI_Allreduce in many cases by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/338 -* Modified ncdap_test to allow a different method to get TOPSRCDIR by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/348 -* Fix aliasing/type-pun problem in ncdump by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/353 -* Cmake parallel fix by @WardF in https://github.com/Unidata/netcdf-c/pull/356 -* Use HDF5 collective metadata operations if available. by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/335 -* Ncdump fails under visual studio for certain dap urls by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/366 -* HDF4-visual studio interference by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/370 -* Clean up dap2 code to remove now obsolete functionality by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/367 -* Resolve license issue with the utf8proc code. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/364 -* Avoiding conditional directives that break statements by @RomeroMalaquias in https://github.com/Unidata/netcdf-c/pull/346 -* bug fix: record size alignment for NC_USHORT is missing by @wkliao in https://github.com/Unidata/netcdf-c/pull/331 -* Use H5Aiterate2 in read_var. by @brtnfld in https://github.com/Unidata/netcdf-c/pull/276 -* Suppress selected orphan opendap attributes by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/376 -* Fix bug in ncgen handling of global, enum valued, attribute. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/378 -* Switch NC_CHAR on netCDF4 to use ASCII by @shoyer in https://github.com/Unidata/netcdf-c/pull/316 -* Ncgen treats an integer with just a U/u suffix as uint64 instead of uint32. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/386 -* patch for issue 384 - NC_ELATEFILL error for NetCDF-4 files by @wkliao in https://github.com/Unidata/netcdf-c/pull/387 -* patch for #388 - setting global _FillValue by @wkliao in https://github.com/Unidata/netcdf-c/pull/389 -* Set default fill/no_fill behavior on newly defined variable (nc4) by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/336 -* Primary change: add dap4 support by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/374 -* Fix NC_DISKLESS returns garbage data for certain files by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/403 -* fix nc_open_mem by @thehesiod in https://github.com/Unidata/netcdf-c/pull/400 -* check the number of legal large variables at open time by @wkliao in https://github.com/Unidata/netcdf-c/pull/393 -* Use H5free_memory instead of free by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/411 -* Remove X_INT64_MIN, X_INT64_MAX, and X_UINT64_MAX from netcdf.h by @wkliao in https://github.com/Unidata/netcdf-c/pull/414 -* Fix memory leak in NC4_put_propattr() by @rouault in https://github.com/Unidata/netcdf-c/pull/415 -* struct stat.st_size is of type off_t by @wkliao in https://github.com/Unidata/netcdf-c/pull/422 -* Remove more old utf8 code by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/430 -* Fix undefined left shift in ncx_get_size_t() by @rouault in https://github.com/Unidata/netcdf-c/pull/427 -* Fix case error when opendap keyword is used as an identifier. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/434 -* Update install.md by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/409 -* Add additional path name conversion checks by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/439 -* Temporarily suppress vars referring to struct fields by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/406 -* Some temporary files are being left in a tempdir by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/436 -* Reclaim DAP temporary files by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/451 -* Fix stack buffer overflow in nc4_check_name() by @rouault in https://github.com/Unidata/netcdf-c/pull/450 -* close files in tst_formatx_pnetcdf.c by @wkliao in https://github.com/Unidata/netcdf-c/pull/455 -* Fixed computation of recsize for NC_64BIT_DATA files, fixes #453 by @pastewka in https://github.com/Unidata/netcdf-c/pull/457 -* fixed table and link in Large File section by @edhartnett in https://github.com/Unidata/netcdf-c/pull/459 -* Upgrade authentication documentation by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/467 -* avoid calling NC3_inq_var_fill when ERANGE_FILL is enabled by @wkliao in https://github.com/Unidata/netcdf-c/pull/464 -* Fix a bunch of references, and some formatting, in the doxygen C guide by @edhartnett in https://github.com/Unidata/netcdf-c/pull/465 -* Fix (I think) the --has-dap and --has-dap4 output by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/473 -* Fix bad output from nc-config by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/476 -* Important fix to d4rc.c by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/482 -* Wrap version specific curl flags. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/488 -* Fix bug in ocrc.c#combinecredentials by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/472 -* Added detail about _FillValue being undefined. by @pelson in https://github.com/Unidata/netcdf-c/pull/470 -* Update dispatch table documentation by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/497 -* Fix problem with hangs in parallel collective output by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/449 -* Fix dap4 related warnings in https://github.com/Unidata/netcdf-c/issues/501. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/503 -* fixed memory problem in tst_h_dimscales by @edhartnett in https://github.com/Unidata/netcdf-c/pull/511 -* fixed compile warning in tst_h_files.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/519 -* fix for tst_vars.c memory overflow by @edhartnett in https://github.com/Unidata/netcdf-c/pull/513 -* fixed most compile warnings in nc_test4 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/521 -* fixed memory leaks and warnings in nc_test4/tst_empty_vlen_unlim.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/522 -* fixed warnings in libsrc4/nc4hdf.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/527 -* fixed compile warnings in nc4info.c/nc4var.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/529 -* fixed warnings in nc_test/tst_utf8_validate.c and nc_test/tst_atts3,c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/533 -* fixed more warnings in nc_test by @edhartnett in https://github.com/Unidata/netcdf-c/pull/536 -* fixed memory leak in nc_open when cmode includes both NC_MPIIO and NC_MPIPOSIX by @edhartnett in https://github.com/Unidata/netcdf-c/pull/516 -* fixed warning in libsrc/posixio.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/538 -* moved tests from tst_h_atts2 into tst_xplatform2, fixed warnings and some memory issues by @edhartnett in https://github.com/Unidata/netcdf-c/pull/544 -* Fix memory issues in nc_open and some tests by @edhartnett in https://github.com/Unidata/netcdf-c/pull/547 -* fixed memory error in handling of (ignored) reference atts in HDF5 file by @edhartnett in https://github.com/Unidata/netcdf-c/pull/550 -* fixed memory error in tst_fills2.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/551 -* Better handling of --enable-pnetcdf and --enable-parallel4 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/548 -* fix for leaks in nc_create as seen in nc_test4/tst_files by @edhartnett in https://github.com/Unidata/netcdf-c/pull/557 -* typedef schar to signed char by @wkliao in https://github.com/Unidata/netcdf-c/pull/419 -* added error code message for NC_EMPI by @edhartnett in https://github.com/Unidata/netcdf-c/pull/566 -* Eliminate NC_MAX_VARS|DIMS|ATTRS limits by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/443 -* check against NC_MAX_VAR_DIMS by @wkliao in https://github.com/Unidata/netcdf-c/pull/490 -* Fix url parameter handling for DAP2 code by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/570 -* Fix dap legal name character handling by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/573 -* Modify nc_test/tst_parallel2.c to remove a failure. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/545 -* Fix handling of corrupt files + proper offset handling for hdf5 files by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/552 -* Refactor common code between DAP2(oc2) and DAP4 by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/477 -* Fix broken link to NCO within FAQ by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/587 -* removed archaic code to check memory use by @edhartnett in https://github.com/Unidata/netcdf-c/pull/571 -* documentation for nc_par_var_access(), nc_inq_libvers() and nc_open_par() by @edhartnett in https://github.com/Unidata/netcdf-c/pull/572 -* added missing documentation nc_def_var_deflate(), nc_def_var_fletcher32(), nc_def_var_fill(), nc_def_var_endian() in dvars.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/576 -* fixed some warnings and incorrect assert by @edhartnett in https://github.com/Unidata/netcdf-c/pull/583 -* Fix some tests use of ENABLE_CDF5 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/591 -* refurbished tst_cdf5format.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/594 -* fixed warnings in tst_interops5.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/595 -* BUGFIX: fixed tst_enums memory issue when nc_close() does not succeed on first attempt by @edhartnett in https://github.com/Unidata/netcdf-c/pull/559 -* removed Makefile.am mention of historic file no longer used: nc_test/ncx.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/561 -* DOCUMENTATION: added v2 documentation by @edhartnett in https://github.com/Unidata/netcdf-c/pull/579 -* BUGFIX: Fixes broken --disable-utilities by @edhartnett in https://github.com/Unidata/netcdf-c/pull/586 -* fixed file name in test which was breaking make -j check in h5_test by @edhartnett in https://github.com/Unidata/netcdf-c/pull/601 -* took out most uses of EXTRA_TESTS, returned it to disabled by default by @edhartnett in https://github.com/Unidata/netcdf-c/pull/609 -* Finalize the compression support. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/399 -* BUGFIX: Fixes 3 memory leaks, in tst_filterparser.c, nc4internal.c, and dfilter.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/649 -* Ejh all documentation PRs combined by @edhartnett in https://github.com/Unidata/netcdf-c/pull/652 -* DOCUMENTATION: add docs for nc_create_par() and other functions by @edhartnett in https://github.com/Unidata/netcdf-c/pull/599 -* DOCUMENTATION: fixed typos in CMake build documentation by @edhartnett in https://github.com/Unidata/netcdf-c/pull/604 -* DOCUMENTATION: note of memory issues in nc_inq_var_fill() by @edhartnett in https://github.com/Unidata/netcdf-c/pull/637 -* DOCUMENTATION: fixed doxygen warnings nc_get_att() and related functions in dattget.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/640 -* set DOXYGEN_SERVER_BASED_SEARCH in configure.ac by @edhartnett in https://github.com/Unidata/netcdf-c/pull/641 -* DOXUMENTATION: fixed doxygen warnings by adding docs in dfile.c, dparallel.c, and dvarget.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/646 -* DOCUMENTATION: fixed doxygen warnings in dattinq.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/651 -* fixed commented out tests in nc_test4/tst_vars2.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/578 -* removed unused files by @edhartnett in https://github.com/Unidata/netcdf-c/pull/600 -* FIxes for all remaining easy warnings for make all by @edhartnett in https://github.com/Unidata/netcdf-c/pull/611 -* noted dependancy between tests, allowing make check to work in parallel in nctest by @edhartnett in https://github.com/Unidata/netcdf-c/pull/615 -* fixed names of output files to enable parallel make check in nc_test4 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/618 -* turned on some commented out test code by @edhartnett in https://github.com/Unidata/netcdf-c/pull/626 -* BUILD BUGFIX: Remove use of BUILT_SOURCES in ncdump directory... by @edhartnett in https://github.com/Unidata/netcdf-c/pull/633 -* now nctest also tests CDF5 if it is built by @edhartnett in https://github.com/Unidata/netcdf-c/pull/636 -* BUGFIX: fixed pnetcdf issues by @edhartnett in https://github.com/Unidata/netcdf-c/pull/650 -* Combined PRs from Ed, except one... by @edhartnett in https://github.com/Unidata/netcdf-c/pull/653 -* fix codes might break strict-aliasing rules by @wkliao in https://github.com/Unidata/netcdf-c/pull/654 -* Address strict null byte padding by @WardF in https://github.com/Unidata/netcdf-c/pull/675 -* Autotools build system tweaks and fixes to get make -j check and make -j distcheck working by @edhartnett in https://github.com/Unidata/netcdf-c/pull/665 -* Begin changing over to use strlcat instead of strncat by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/683 -* Code changes to make libnetcdf compile with vs2008 by @nehaljwani in https://github.com/Unidata/netcdf-c/pull/691 -* improve parallel builds, fixed SEGFAULT for NULL parameter for nc_inq_format(), added testing, documentation by @edhartnett in https://github.com/Unidata/netcdf-c/pull/680 -* parallelize cmake tests similar to work done with autotools tests by @WardF in https://github.com/Unidata/netcdf-c/pull/715 -* Updating with additional parallel test fenceposts by @WardF in https://github.com/Unidata/netcdf-c/pull/717 -* more tests, more internal documentation, minor bug fixes by @edhartnett in https://github.com/Unidata/netcdf-c/pull/711 -* Corrected links to cdash dashboard. by @WardF in https://github.com/Unidata/netcdf-c/pull/728 -* Fix buffer overrun in tabs[MAX_NESTS] by adding space for \0 terminator by @mingwandroid in https://github.com/Unidata/netcdf-c/pull/729 -* Make certain tests conditional on dependencies by @nehaljwani in https://github.com/Unidata/netcdf-c/pull/692 -* Fixes of warnings, check return values, added guards for headers that needed them, remove unneeded HDF4 checks by @edhartnett in https://github.com/Unidata/netcdf-c/pull/773 -* fix vpath build for regenerating c files from m4 files by @wkliao in https://github.com/Unidata/netcdf-c/pull/466 -* Allow multiple vars with different chunks on the same unlimited dim by @Lnaden in https://github.com/Unidata/netcdf-c/pull/760 -* Eliminate potential buffer overflow by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/764 -* Eliminate warning from clang compilers. by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/765 -* Make it clear that limits are not enforced by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/766 -* Fix plugin building for filter tests and add filter example by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/768 -* Combination of 9 outstanding non-controversial PRs by @edhartnett in https://github.com/Unidata/netcdf-c/pull/789 -* fix tst_converts.c when enable-erange-fill is set by @wkliao in https://github.com/Unidata/netcdf-c/pull/790 -* Recent refactoring removed uses of variables by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/802 -* Incorrect reference to byteswap8 in libdispatch/dfilter.c by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/807 -* Gh809.wif by @WardF in https://github.com/Unidata/netcdf-c/pull/812 -* Ensure NC_HAS_META_H is defined by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/809 -* Avoid cmake CMP0002 by using different logical name for plugin libs by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/813 -* Gsjaardema batch merge by @WardF in https://github.com/Unidata/netcdf-c/pull/833 -* Fix compression level settings by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/827 -* a clean commit for #383 by @wkliao in https://github.com/Unidata/netcdf-c/pull/731 -* CDF-5 fix: let NC_var.len be the true size of variable by @wkliao in https://github.com/Unidata/netcdf-c/pull/478 -* Batch EJH Pull requests by @WardF in https://github.com/Unidata/netcdf-c/pull/844 -* fix dim bad paramter issues by @edhartnett in https://github.com/Unidata/netcdf-c/pull/817 -* doc changes only by @edhartnett in https://github.com/Unidata/netcdf-c/pull/820 -* extra tests, plus fill value fixes for string type by @edhartnett in https://github.com/Unidata/netcdf-c/pull/821 -* Fixes for attributes bad parameters, more testing by @edhartnett in https://github.com/Unidata/netcdf-c/pull/822 -* another rename fix by @edhartnett in https://github.com/Unidata/netcdf-c/pull/830 -* warnings fix by @edhartnett in https://github.com/Unidata/netcdf-c/pull/832 -* Ejh makefile cleanup unidata by @edhartnett in https://github.com/Unidata/netcdf-c/pull/837 -* Address a Windows NC3 Memory issue. by @WardF in https://github.com/Unidata/netcdf-c/pull/846 -* HDF5 ZLIB detection and CRT configuration by @WardF in https://github.com/Unidata/netcdf-c/pull/854 -* changes to detect HDF5 HL, build with CRT and detect ZLIB in HDF5 by @pedro-vicente in https://github.com/Unidata/netcdf-c/pull/853 -* Corrected overflow error in support of https://github.com/Unidata/net… by @WardF in https://github.com/Unidata/netcdf-c/pull/862 -* Minor cleanups by @mathstuf in https://github.com/Unidata/netcdf-c/pull/814 -* Pull #849 plus a note in the release notes. by @WardF in https://github.com/Unidata/netcdf-c/pull/868 -* Move HDF4 to its own dispatch layer by @edhartnett in https://github.com/Unidata/netcdf-c/pull/849 -* Some extra attribute and rename testing that I neglected to include in previous PRs by @edhartnett in https://github.com/Unidata/netcdf-c/pull/860 -* Higher performance hash for metadata: step 0 by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/855 -* Gh881 ac par.wif by @WardF in https://github.com/Unidata/netcdf-c/pull/883 -* Revert change that broke extant NCO workflow by @WardF in https://github.com/Unidata/netcdf-c/pull/889 -* Second Try: Aggregation of Pull Requests by @WardF in https://github.com/Unidata/netcdf-c/pull/893 -* fix error reporting by @wkliao in https://github.com/Unidata/netcdf-c/pull/480 -* fix issue 791: validate ncid for classic files by @wkliao in https://github.com/Unidata/netcdf-c/pull/804 -* onstack: check whether HAVE_ALLOCA_H is defined or not by @mathstuf in https://github.com/Unidata/netcdf-c/pull/852 -* Unused valgrind removal from build by @edhartnett in https://github.com/Unidata/netcdf-c/pull/886 -* large files on 32-bit machines by @wkliao in https://github.com/Unidata/netcdf-c/pull/632 -* Move HDF4 tests to their own directory by @edhartnett in https://github.com/Unidata/netcdf-c/pull/895 -* V4.6.1 release branch.wif by @WardF in https://github.com/Unidata/netcdf-c/pull/901 -* null test triple->host by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/888 -* Give nccopy control of output filter suppression by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/894 -* This is the second step in refactoring the libsrc4 code. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/878 -* The ncdap_tests were a mess, so I decided to clean them up by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/907 -* Fix bug: Index exceeds dimension bound by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/904 -* fixed spaces by @edhartnett in https://github.com/Unidata/netcdf-c/pull/912 -* Attempt to fix the problem of ftp failing when getting the hdf4 from our ftp site. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/918 -* new method of using valgrind by @edhartnett in https://github.com/Unidata/netcdf-c/pull/910 -* Final refactoring of libsrc4. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/903 -* added merged HDF4 changes by @edhartnett in https://github.com/Unidata/netcdf-c/pull/922 -* Removed some unused files and unused m4 macros from acinclude.m4 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/898 -* Replace quotes when including system includes by @WardF in https://github.com/Unidata/netcdf-c/pull/929 -* reset ncp->begin_var if errors occur when calling NC_begins() by @wkliao in https://github.com/Unidata/netcdf-c/pull/479 -* Use hdf5-1.8 compatible output format if possible by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/934 -* Enabled CDF5 support by default by @WardF in https://github.com/Unidata/netcdf-c/pull/935 -* added fill mode and var rename tests by @edhartnett in https://github.com/Unidata/netcdf-c/pull/919 -* Combine several pull requests by @WardF in https://github.com/Unidata/netcdf-c/pull/945 -* Fix external symbol name conflicts in libdispatch/crc32.c by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/921 -* create separate plugins top-level directory by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/937 -* Fix signedness warnings in nchashmap.c by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/944 -* Add missing ERR Macro by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/949 -* nctest: Make cmake pass under a windows cmd prompt by @t-b in https://github.com/Unidata/netcdf-c/pull/950 -* Misc. source comment typos by @luzpaz in https://github.com/Unidata/netcdf-c/pull/902 -* removed unused HDF4 code, fixed warnings in HDF4 test tst_h4_lendian.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/940 -* Centos fix by @WardF in https://github.com/Unidata/netcdf-c/pull/952 -* moved netcdf-4 tests from nc_test to nc_test4 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/938 -* Expand the NC_INMEMORY capabilities by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/879 -* Consolidating Several PR's by @WardF in https://github.com/Unidata/netcdf-c/pull/956 -* ncx: use __inline with MSVC by @mathstuf in https://github.com/Unidata/netcdf-c/pull/850 -* Update the netCDF-Extractor entry re: esupport QHB-286994 by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/953 -* Fix unused variable compiler warning by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/954 -* created libhdf5, moved some files by @edhartnett in https://github.com/Unidata/netcdf-c/pull/958 -* Adding Appveyor Support by @WardF in https://github.com/Unidata/netcdf-c/pull/983 -* Testing Appveyor branch exclusion syntax. by @WardF in https://github.com/Unidata/netcdf-c/pull/984 -* Small aggregation of PRs by @WardF in https://github.com/Unidata/netcdf-c/pull/992 -* moved hdf5.h include in test nc_test/tst_inmemory.c to allow classic only builds to work by @edhartnett in https://github.com/Unidata/netcdf-c/pull/960 -* Fix some issues with the inmemory code as identified by Ed by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/964 -* removed unused function by @edhartnett in https://github.com/Unidata/netcdf-c/pull/988 -* Cleanup some of the ncgen memory problems identified by Ed by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/558 -* Alias stringlength url parameter and maxstrlen by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/619 -* more progress towards separating HDF5 code from libsrc4 code by @edhartnett in https://github.com/Unidata/netcdf-c/pull/980 -* Misc changes.wif by @WardF in https://github.com/Unidata/netcdf-c/pull/1005 -* No longer attempting to use MPI_COMM_WORLD as default anywhere in library code by @edhartnett in https://github.com/Unidata/netcdf-c/pull/990 -* Next step in HDF5 separation by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1004 -* Fix use of 'int' to represent 'hid_t' that caused HDF5 1.10 to fail. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1008 -* Test code for parallel I/O issue, enum issue, and some other issues by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1007 -* removed dead code associated with old handling of NC_LONG, fixed test checking NC_ELATEFILL by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1013 -* Misc changes by @WardF in https://github.com/Unidata/netcdf-c/pull/1015 -* Re-implement the nc_get/put_vars operations for netcdf-4 using the corresponding HDF5 operations. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1001 -* user defined formats by @edhartnett in https://github.com/Unidata/netcdf-c/pull/977 -* added filter/szip tests by @edhartnett in https://github.com/Unidata/netcdf-c/pull/974 -* changed macro STREQ to NCSTREQ to avoid name collusion with HDF4 library by @edhartnett in https://github.com/Unidata/netcdf-c/pull/967 -* After this PR, nc_set_log_level() will always be defined by @edhartnett in https://github.com/Unidata/netcdf-c/pull/969 -* Removed some dead code, now use nc4_get/put_vars for vara calls by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1023 -* Lazy read of attributes by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1026 -* Move to a new remote test server on Jetstream by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1032 -* renamed NC_HDF5_FILE_INFO to NC_FILE_INFO by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1028 -* fix cdf5 configure option by @wkliao in https://github.com/Unidata/netcdf-c/pull/1033 -* Revert "fix cdf5 configure option" by @WardF in https://github.com/Unidata/netcdf-c/pull/1036 -* ifdef cleanup of netcdf.h by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1030 -* Fix clang warnings in tst_vars3.c, hdf5file.c, d4read.c, ncuri.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1050 -* Second Try by @WardF in https://github.com/Unidata/netcdf-c/pull/1060 -* Combining some PR's by @WardF in https://github.com/Unidata/netcdf-c/pull/1063 -* install.md: building netCDF with PnetCDF support by @wkliao in https://github.com/Unidata/netcdf-c/pull/1043 -* Enable metadata-perf test for CMake build by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/1059 -* Fix esupport # HYV-329576 by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1062 -* Merging multiple pull requests by @WardF in https://github.com/Unidata/netcdf-c/pull/1073 -* 32bit lfs by @wkliao in https://github.com/Unidata/netcdf-c/pull/1022 -* replace USE_CDF5 with ENABLE_CDF5 by @wkliao in https://github.com/Unidata/netcdf-c/pull/1038 -* add missing note about CDF-5 format by @wkliao in https://github.com/Unidata/netcdf-c/pull/1044 -* Fix missing ERR in tst_parallel5.c by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/1053 -* moved hdf5 specific header stuff to hdf5internal.h by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1061 -* cmake warning fix for nc_set_log_level warning from netcdf.h by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1069 -* Eliminate NC_Dispatch redefinition compiler warning by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/1045 -* Split hdf5file.c into hdf5file.c, hdf5create.c, and hdf5open.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1071 -* introduce error code NC_EPNETCDF for errors at PnetCDF level by @wkliao in https://github.com/Unidata/netcdf-c/pull/1093 -* YAA (Yet Another Aggregation) by @WardF in https://github.com/Unidata/netcdf-c/pull/1096 -* add NC_RELAX_COORD_BOUND to netcdf_meta.h.in by @wkliao in https://github.com/Unidata/netcdf-c/pull/1064 -* add NC_HAS_PARALLEL4 to netcdf_meta.h.in by @wkliao in https://github.com/Unidata/netcdf-c/pull/1067 -* nc_var_par_access by @wkliao in https://github.com/Unidata/netcdf-c/pull/1068 -* Clean up the handling of chunking parameters (the -c flag) in nccopy. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1087 -* Moving rest of HDF5 code from libsrc4 to libhdf5 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1075 -* Correct ocprint build when DAP is turned off. by @WardF in https://github.com/Unidata/netcdf-c/pull/1097 -* Clear up coverity complaints by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1100 -* Move hid_t from NC_FILE_INFO_T to new struct NC_HDF5_FILE_INFO_T by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1076 -* Make global atts read much, much faster by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1081 -* Migrate script-based tests from bash to sh by @WardF in https://github.com/Unidata/netcdf-c/pull/1109 -* Cleanup up some functions in preparation for lazy var reads (take 2) by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1092 -* Warning, coverity warning, error handling, documentation, and hdf5_set_log_level fixes, all on the path to the lazy var feature by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1103 -* Combined PR by @WardF in https://github.com/Unidata/netcdf-c/pull/1127 -* error out when conflicts with PnetCDF are detected by @wkliao in https://github.com/Unidata/netcdf-c/pull/1070 -* check PnetCDF version at compile time by @wkliao in https://github.com/Unidata/netcdf-c/pull/1089 -* Eliminate double printing of nccopy program name in usage output by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/1118 -* Fix handling of NULL start/count/stride, remove unneeded file lookups, moved get/put code from nc4hdf5.c to hdf5var.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1112 -* fix problem of setting the default file format by @wkliao in https://github.com/Unidata/netcdf-c/pull/1090 -* The identifier typename is apparently a reserved word in C++. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1132 -* Combined Pull Requests by @WardF in https://github.com/Unidata/netcdf-c/pull/1135 -* Fix compression level logic by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/828 -* to be NC_EINDEFINE or NC_ENOTINDEFINE by @wkliao in https://github.com/Unidata/netcdf-c/pull/1125 -* Fix the NC_INMEMORY code to work in all cases with HDF5 1.10. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1133 -* Fix checking for HDF5 max dims, no longer re-create atts if not needed, confirm behavior for HDF5 cyclical files, allow user to set mpiexec by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1119 -* Improve provenance information by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1124 -* Add the ability to set some additional curlopt values by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1126 -* Remove the set_fmode by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1139 -* Clean up unneeded object lookups... by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1128 -* Fix szip filter handling code and corresponding tests by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1142 -* Fix benchmark programs by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1129 -* Modify DAP2 and DAP4 to optionally allow Fillvalue/Variable mismatch by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1155 -* Separate the HDF5 cache code by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1141 -* Fix memory problems when using HDF5 version 1.10.x and later. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1157 -* Remove unneeded include of netcdf.h from netcdf_mem.h by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1149 -* Ignore NC_MPIIO and NC_MPIPOSIX by @wkliao in https://github.com/Unidata/netcdf-c/pull/1147 -* various fixes for PnetCDF driver by @wkliao in https://github.com/Unidata/netcdf-c/pull/1143 -* Revert/Improve nc_create + NC_DISKLESS behavior by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1158 -* Fix HDF4 config issues by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1153 -* Restore lost chunking documentation by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1159 -* Multiple PR's in aggregate by @WardF in https://github.com/Unidata/netcdf-c/pull/1165 -* Cmake fixups by @mathstuf in https://github.com/Unidata/netcdf-c/pull/1161 -* more latefill tests by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1164 -* Recreating 4.6.2 release branch. by @WardF in https://github.com/Unidata/netcdf-c/pull/1166 -* Incorrect flag is set test for readonly by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/1170 -* Fix many (but not all) memory leaks using gcc -fsanitize=address by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1173 -* Merge v4.6.2 release branch back upstream by @WardF in https://github.com/Unidata/netcdf-c/pull/1177 -* Separate the closing of HDF5 objects from freeing of internal metadata by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1167 -* Fix test run_diskless2.sh with LARGE_FILE_TESTS by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1175 -* Added DAP4.dox to doxygen template in support of https://github.com/U… by @WardF in https://github.com/Unidata/netcdf-c/pull/1179 -* V4.6.2 release branch.wif by @WardF in https://github.com/Unidata/netcdf-c/pull/1191 -* Next step in HDF5 separation - moving att HDF5 info to libhdf5 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1182 -* Corrected VS2010 compilation issue in support of https://github.com/U… by @WardF in https://github.com/Unidata/netcdf-c/pull/1185 -* Next step in libhdf5/libsrc4 separation - moving hdf5-specific dim info to libhdf5 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1186 -* fixed curl configure issue by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1188 -* added release notes by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1189 -* minor doc change by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1190 -* Fix failure in the nccopy -c option by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1192 -* Next step in HDF5/libsrc4 separation - Moving HDF5 group info to libhdf5. by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1193 -* Fixing text output in nc_test4/tst_files6.c and tst_rename.c by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1187 -* V4.6.2 release branch.wif by @WardF in https://github.com/Unidata/netcdf-c/pull/1201 -* RPATH handling is not needed for archive library by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/1176 -* Remove extra argument by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/1198 -* Eliminate compiler warnings (and code error) by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/1199 -* Fix more memory leaks in netcdf-c library by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1202 -* V4.6.2 release branch by @WardF in https://github.com/Unidata/netcdf-c/pull/1203 -* add CMAKE_C_FLAGS_RELEASE in specify_static_crt_flag by @Jin-Whu in https://github.com/Unidata/netcdf-c/pull/947 -* Some fixes for configure.ac by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1200 -* V4.6.2 release branch by @WardF in https://github.com/Unidata/netcdf-c/pull/1212 -* change rm in test script to use specific file names so parallel builds continue to work by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1214 -* Pull Request Aggregation by @WardF in https://github.com/Unidata/netcdf-c/pull/1229 -* Finally removed rest of HDF5 fields from nc4internal.h by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1218 -* Eliminate double-free in realloc'd memory by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/1219 -* Next step in HDF5 separation - separate initialization of HDF5 dispatch by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1224 -* Move lazy att code to libhdf5 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1225 -* Fixes #803 by @WardF in https://github.com/Unidata/netcdf-c/pull/1227 -* Update nc_test/tst_inmemory to cover more cases by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1228 -* Forgot to change realloc -> H5resize_memory in H5Zbzip2.c by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1221 -* Combined Pull Requests, second take by @WardF in https://github.com/Unidata/netcdf-c/pull/1250 -* Remove // style comments from source code. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1210 -* Fix error report coming out of nc4info.c by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1213 -* Almost done separating HDF5 from libsrc4 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1230 -* Completing code separation of libsrc4 and libhdf5 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1231 -* adjust tests and utils for split of libsrc4 and libhdf5 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1234 -* License update.wif by @WardF in https://github.com/Unidata/netcdf-c/pull/1243 -* YAA (Yet Another Aggregation) by @WardF in https://github.com/Unidata/netcdf-c/pull/1264 -* Fix failings of nc_test/run_inmemory.sh by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1240 -* Eliminate nested comment by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/1244 -* Fix some issues, add comments, and prepare for lazy(-ish) var reads by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1248 -* Some small fixes and further preparation for lazy var metadata reading by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1258 -* Separate out the -ansi comment fixes. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1252 -* Latest PR Aggregation by @WardF in https://github.com/Unidata/netcdf-c/pull/1283 -* deprecate non-relax coord bounds checking, also fix parallel builds for --enable-pnetcdf by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1238 -* Make the netcdf-c library compile with gcc -ansi. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1242 -* Use coordinates hidden att to speed opens... by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1262 -* Fix handling of NULL strides, some warnings, and missing config.h includes in tests by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1266 -* Add autogen.sh script for helping novice users by @t-b in https://github.com/Unidata/netcdf-c/pull/1280 -* Y.A.A. (Yet Another Another Aggregation) by @WardF in https://github.com/Unidata/netcdf-c/pull/1293 -* Fixes for warnings for parallel builds by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1271 -* Tests on equalp are always true by @gsjaardema in https://github.com/Unidata/netcdf-c/pull/1276 -* CMakeLists.txt: Fix compilation with default settings on debian stretch by @t-b in https://github.com/Unidata/netcdf-c/pull/1277 -* Added newline after ncdump -k output by @WardF in https://github.com/Unidata/netcdf-c/pull/1285 -* Fix issues: excess variables, broken LOG statements, parallel build issue, benchmark build issue by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1289 -* When doing prefetch in DAP2, ignore invisible variables. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1301 -* Rinse and Repeat: PR Edition by @WardF in https://github.com/Unidata/netcdf-c/pull/1309 -* Fix warnings by @mathstuf in https://github.com/Unidata/netcdf-c/pull/1281 -* change atts_not_read to atts_read in NC_GRP_INTO_T and NC_VAR_INFO_T by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1290 -* Fix rename bug name dim same as existing var by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1294 -* Clean up some macros in CMakeLists.txt, CMake-based build system. by @WardF in https://github.com/Unidata/netcdf-c/pull/1296 -* Fix for bug renaming non-coord var to same name as dim without a var by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1298 -* Fix errors when building on big-endian machine by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1302 -* Added int i and j declarations by @simonholgate in https://github.com/Unidata/netcdf-c/pull/1314 -* Add hack to deal with DAP2 signed byte conversion. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1317 -* URL with username+pwd in url is not working. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1312 -* Fix handling of '/' characters in names in DAP2. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1319 -* Combination of the remaining rename-related PR's by @WardF in https://github.com/Unidata/netcdf-c/pull/1318 -* Fix bug which changed varids after var rename by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1308 -* Extend nccopy -F option syntax. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1311 -* Fix additional big-endian machine error in dap4. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1321 -* Preparing Maintenance Release by @WardF in https://github.com/Unidata/netcdf-c/pull/1322 -* whitespace changes only by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1328 -* Fix nc_test4/tst_filter.sh for big endian by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1339 -* Fix ncgen handling of octal constants (with leading 0). by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1345 -* 4.6.3 prep, upstream propegation by @WardF in https://github.com/Unidata/netcdf-c/pull/1332 -* Fix typo in tst_filterparser.c by @opoplawski in https://github.com/Unidata/netcdf-c/pull/1337 -* Documentation fixes for nc_rename_dim() by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1342 -* Modify tst_filterparser to use baseline array by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1343 -* provide NDEBUG version of macro NC_CHECK which does not use code file name by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1326 -* Remove all references to __FILE__ in ncgen by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1327 -* Fix nccopy to use NC_PERSIST so that -w actually persists the output. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1366 -* move checking for flag conflict to nc_create_par by @wkliao in https://github.com/Unidata/netcdf-c/pull/1346 -* Provide byte-range reading of remote datasets by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1267 -* Support installation of the bzip2 plugin under name libh5bzip2.so by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1348 -* non controversial parts of last PR by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1364 -* Fix minor --ansi warnings in dinfermodel.c and bzlib.c by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1377 -* Fix STRNG typo in CMakeList by @jschueller in https://github.com/Unidata/netcdf-c/pull/1367 -* Move performance testing from nc_test4 to new directory nc_perf by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1371 -* Minor Maintenance PR by @WardF in https://github.com/Unidata/netcdf-c/pull/1378 -* Fix MinGW build by @jschueller in https://github.com/Unidata/netcdf-c/pull/1368 -* Simplify libhdf5/nc5info.c to move to avoid parsing by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1361 -* Bring behavior of nc-config in line with pkgconfig --libs --static netcdf by @WardF in https://github.com/Unidata/netcdf-c/pull/1383 -* Backport relevant changes from 4.7.0 release into master by @WardF in https://github.com/Unidata/netcdf-c/pull/1386 -* Allow programmatic definition of filters by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1375 -* Minor config.h changes to support filters in Fortran by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1387 -* Thread safety: step 1: cleanup by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1379 -* Fix cmake wrt mmap by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1385 -* Centralize calls to curl_global_init and curl_global_cleanup by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1389 -* Option --disable-byterange fails if libcurl is not found by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1392 -* uncommented test by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1394 -* fix compile warnings in tst_large2, tst_rename2, and tst_rename3, and some build issues, including partial fix for building with HDF4 but without HDF5 by @edhartnett in https://github.com/Unidata/netcdf-c/pull/1404 -* Nccopy was overriding default chunking when it should not. by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1409 -* Add Wei-King Liao's ncvalidator program by @DennisHeimbigner in https://github.com/Unidata/netcdf-c/pull/1407 -* Modified how libsz is being detected in automake-based builds. by @WardF in https://github.com/Unidata/netcdf-c/pull/1406 -* Corrected mistake regarding VS version. by @WardF in https://github.com/Unidata/netcdf-c/pull/1418 - -## New Contributors -* @RomeroMalaquias made their first contribution in https://github.com/Unidata/netcdf-c/pull/346 -* @shoyer made their first contribution in https://github.com/Unidata/netcdf-c/pull/316 -* @thehesiod made their first contribution in https://github.com/Unidata/netcdf-c/pull/400 -* @pastewka made their first contribution in https://github.com/Unidata/netcdf-c/pull/457 -* @pelson made their first contribution in https://github.com/Unidata/netcdf-c/pull/470 -* @nehaljwani made their first contribution in https://github.com/Unidata/netcdf-c/pull/691 -* @mingwandroid made their first contribution in https://github.com/Unidata/netcdf-c/pull/729 -* @Lnaden made their first contribution in https://github.com/Unidata/netcdf-c/pull/760 -* @pedro-vicente made their first contribution in https://github.com/Unidata/netcdf-c/pull/853 -* @t-b made their first contribution in https://github.com/Unidata/netcdf-c/pull/950 -* @luzpaz made their first contribution in https://github.com/Unidata/netcdf-c/pull/902 -* @Jin-Whu made their first contribution in https://github.com/Unidata/netcdf-c/pull/947 -* @simonholgate made their first contribution in https://github.com/Unidata/netcdf-c/pull/1314 -* @jschueller made their first contribution in https://github.com/Unidata/netcdf-c/pull/1367 - -**Full Changelog**: https://github.com/Unidata/netcdf-c/compare/v4.3.1-rc1...v4.9.0 + ## 4.8.1 - August 18, 2021 * [Bug Fix] Fix multiple bugs in libnczarr. See [Github #2066](https://github.com/Unidata/netcdf-c/pull/2066). diff --git a/docs/filters.md b/docs/filters.md index 23667ce49d..315f98bcba 100644 --- a/docs/filters.md +++ b/docs/filters.md @@ -617,91 +617,6 @@ As part of its testing, the NetCDF build process creates a number of shared libr If you need a filter from that set, you may be able to set *HDF5\_PLUGIN\_PATH* to point to that directory or you may be able to copy the shared libraries out of that directory to your own location. -# Lossy One-Way Filters - -As of NetCDF version 4.8.2, the netcdf-c library supports -bit-grooming filters. -```` -Bit-grooming is a lossy compression algorithm that removes the -bloat due to false-precision, those bits and bytes beyond the -meaningful precision of the data. Bit Grooming is statistically -unbiased, applies to all floating point numbers, and is easy to -use. Bit-Grooming reduces data storage requirements by -25-80%. Unlike its best-known competitor Linear Packing, Bit -Grooming imposes no software overhead on users, and guarantees -its precision throughout the whole floating point range -[https://doi.org/10.5194/gmd-9-3199-2016]. -```` -The generic term "quantize" is used to refer collectively to the various -bitgroom algorithms. The key thing to note about quantization is that -it occurs at the point of writing of data only. Since its output is -legal data, it does not need to be "de-quantized" when the data is read. -Because of this, quantization is not part of the standard filter -mechanism and has a separate API. - -The API for bit-groom is currently as follows. -```` -int nc_def_var_quantize(int ncid, int varid, int quantize_mode, int nsd); -int nc_inq_var_quantize(int ncid, int varid, int *quantize_modep, int *nsdp); -```` -The *quantize_mode* argument specifies the particular algorithm. -Currently, three are supported: NC_QUANTIZE_BITGROOM, NC_QUANTIZE_GRANULARBR, -and NC_QUANTIZE_BITROUND. In addition quantization can be disabled using -the value NC_NOQUANTIZE. - -The input to ncgen or the output from ncdump supports special attributes -to indicate if quantization was applied to a given variable. -These attributes have the following form. -```` -_QuantizeBitGroomNumberOfSignificantDigits = -or -_QuantizeGranularBitRoundNumberOfSignificantDigits = -or -_QuantizeBitRoundNumberOfSignificantBits = -```` -The value NSD is the number of significant (decimal) digits to keep. -The value NSB is the number of significant bits to keep. - -## Distortions introduced by lossy filters - - Any lossy filter introduces distortions to data. - The lossy filters implemented in netcdf-c introduce a distortoin - that can be quantified in terms of a _relative_ error. The magnitude of - distortion introduced to every single value V is guaranteed to be within - a certain fraction of V, expressed as 0.5 * V * 2**{-NSB}: - i.e. it is 0.5V for NSB=0, 0.25V for NSB=1, 0.125V for NSB=2 etc. - - - Two other methods use different definitions of _decimal precision_, though both - are guaranteed to reproduce NSD decimals when printed. - The margin for a relative error introduced by the methods are summarised in the table - - ``` - NSD 1 2 3 4 5 6 7 - - BitGroom - Error Margin 3.1e-2 3.9e-3 4.9e-4 3.1e-5 3.8e-6 4.7e-7 - - - GranularBitRound - Error Margin 1.4e-1 1.9e-2 2.2e-3 1.4e-4 1.8e-5 2.2e-6 - - - ``` - - - If one defines decimal precision as in BitGroom, i.e. the introduced relative - error must not exceed half of the unit at the decimal place NSD in the - worst-case scenario, the following values of NSB should be used for BitRound: - - ``` - NSD 1 2 3 4 5 6 7 - NSB 3 6 9 13 16 19 23 - ``` - - The resulting application of BitRound is as fast as BitGroom, and is free from - artifacts in multipoint statistics introduced by BitGroom - (see https://doi.org/10.5194/gmd-14-377-2021). - - # Debugging {#filters_debug} Depending on the debugger one uses, debugging plugins can be very difficult. diff --git a/docs/quantize.md b/docs/quantize.md index e9c027efcd..0168ac3f3e 100644 --- a/docs/quantize.md +++ b/docs/quantize.md @@ -145,6 +145,48 @@ changed, if that element is the fill value. This is necessary if the fill value is to retain its purpose as an indicator of values that have not been written. +## Distortions Introduced by Lossy Compression + +Any lossy compression introduces distortions to data. + +The Bitgroom algorithms implemented in netcdf-c introduce a distortoin +that can be quantified in terms of a _relative_ error. The magnitude +of distortion introduced to every single value V is guaranteed to be +within a certain fraction of V, expressed as 0.5 * V * 2**{-NSB}: +i.e. it is 0.5V for NSB=0, 0.25V for NSB=1, 0.125V for NSB=2 etc. + +Two quantize algorithms use different definitions of _decimal +precision_, though both are guaranteed to reproduce NSD decimals when +printed. + +The margin for a relative error introduced by the methods are +summarised in the table: + + ``` + NSD 1 2 3 4 5 6 7 + + BitGroom + Error Margin 3.1e-2 3.9e-3 4.9e-4 3.1e-5 3.8e-6 4.7e-7 - + + GranularBitRound + Error Margin 1.4e-1 1.9e-2 2.2e-3 1.4e-4 1.8e-5 2.2e-6 - + + ``` + +If one defines decimal precision as in BitGroom, i.e. the introduced +relative error must not exceed half of the unit at the decimal place +NSD in the worst-case scenario, the following values of NSB should be +used for BitRound: + + ``` + NSD 1 2 3 4 5 6 7 + NSB 3 6 9 13 16 19 23 + ``` + +The resulting application of BitRound is as fast as BitGroom, and is +free from artifacts in multipoint statistics introduced by BitGroom +(see https://doi.org/10.5194/gmd-14-377-2021). + ## Using the Quantize Feature Turning on the quantize feature must be done on a per-variable basis,