netcdf-c/ncdump
Dennis Heimbigner f3e711e2b8 Add support for setting HDF5 alignment property when creating a file
re: https://github.com/Unidata/netcdf-c/issues/2177
re: https://github.com/Unidata/netcdf-c/pull/2178

Provide get/set functions to store global data alignment
information and apply it when a file is created.

The api is as follows:
````
int nc_set_alignment(int threshold, int alignment);
int nc_get_alignment(int* thresholdp, int* alignmentp);
````

If defined, then for every file created opened after the call to
nc_set_alignment, for every new variable added to the file, the
most recently set threshold and alignment values will be applied
to that variable.

The nc_get_alignment function return the last values set by
nc_set_alignment.  If nc_set_alignment has not been called, then
it returns the value 0 for both threshold and alignment.

The alignment parameters are stored in the NCglobalstate object
(see below) for use as needed. Repeated calls to nc_set_alignment
will overwrite any existing values in NCglobalstate.

The alignment parameters are applied in libhdf5/hdf5create.c
and libhdf5/hdf5open.c

The set/get alignment functions are defined in libsrc4/nc4internal.c.

A test program was added as nc_test4/tst_alignment.c.

## Misc. Changes Unrelated to Alignment

* The NCRCglobalstate type was renamed to NCglobalstate to
  indicate that it represented more general global state than
  just .rc data.  It was also moved to nc4internal.h.  This led
  to a large number of small changes: mostly renaming. The
  global state management functions were moved to nc4internal.c.

* The global chunk cache variables have been moved into
  NCglobalstate.  As warranted, other global state will be moved
  as well.

* Some misc. problems with the nczarr performance tests were corrected.
2022-01-29 15:27:52 -07:00
..
cdl Support MSYS2/Mingw platform 2021-12-23 22:18:56 -07:00
expected Fix handling of enum constants nested in compound types. 2021-09-12 18:03:57 -06:00
bom.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
cdl.h ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
chunkspec.c Make utilities support NC_COMPACT 2020-02-29 12:06:21 -07:00
chunkspec.h Make utilities support NC_COMPACT 2020-02-29 12:06:21 -07:00
CMakeLists.txt Fix various problem around VLEN's 2022-01-08 18:30:00 -07:00
depend
dimmap.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
dimmap.h ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
dumplib.c Merge branch 'master' into ncdumpvlenbug.dmh 2021-05-27 14:50:05 -06:00
dumplib.h ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
env
indent.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
indent.h ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
inttags4.cdl
inttags.cdl
L512.bin
list.c Extend nccopy -F option syntax. 2019-02-08 18:48:17 -07:00
list.h Extend nccopy -F option syntax. 2019-02-08 18:48:17 -07:00
Makefile.am Fix various problem around VLEN's 2022-01-08 18:30:00 -07:00
nc4print.c Codify cross-platform file paths 2021-03-04 13:41:31 -07:00
nc4printer.c Use the built-in HDF5 byte-range reader, if available. 2020-09-24 14:33:58 -06:00
nccomps.h ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
nccopy.1 More fixes to the nccopy filter x chunking algorithm 2021-01-31 15:10:39 -07:00
nccopy.c Merge branch 'main' into vlenfix.dmh 2022-01-13 16:31:34 -07:00
ncdump.1 Make utilities support NC_COMPACT 2020-02-29 12:06:21 -07:00
ncdump.c Merge pull request #2145 from oxelson/docs 2022-01-19 15:46:20 -07:00
ncdump.h ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
nchdf5version.c 1. Fix an additional flaw in fill_value handling where non-atomic default values were not properly being handled. 2022-01-10 15:27:16 -07:00
nciter.c This PR adds EXPERIMENTAL support for accessing data in the 2020-06-28 18:02:47 -06:00
nciter.h ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
ncpathcvt.c Fix new LGTM alerts 2021-12-23 23:10:44 -07:00
nctime0.c Treat time units as case-insensitive in ncdump 2020-05-14 06:48:03 -06:00
nctime0.h ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
nctrunc.c Remove netcdf-4 conditional on the dispatch table. 2019-07-20 13:59:40 -06:00
ncvalidator.c Merge pull request #2145 from oxelson/docs 2022-01-19 15:46:20 -07:00
ocprint.c Fix Mingw versus XGetopt (again) 2021-05-26 14:27:27 -06:00
printfqn.c Regularize the scoping of dimensions 2021-05-31 15:51:12 -06:00
ref1.ncml Docs migration 2021-11-11 10:47:49 -07:00
ref_ctest1_nc4.cdl
ref_ctest1_nc4c.cdl
ref_ctest64.c This PR adds EXPERIMENTAL support for accessing data in the 2020-06-28 18:02:47 -06:00
ref_ctest_small_3.c Add test cases 2019-11-03 12:03:13 -07:00
ref_ctest_small_4.c Add test cases 2019-11-03 12:03:13 -07:00
ref_ctest_special_atts_4.c 1. Fix an additional flaw in fill_value handling where non-atomic default values were not properly being handled. 2022-01-10 22:26:19 -07:00
ref_ctest.c This PR adds EXPERIMENTAL support for accessing data in the 2020-06-28 18:02:47 -06:00
ref_inttags4.cdl
ref_inttags.cdl
ref_keyword1.cdl Allow use of type keywords as identifier in formats that do not support that type. 2020-06-05 17:03:29 -06:00
ref_keyword2.cdl Allow use of type keywords as identifier in formats that do not support that type. 2020-06-05 17:03:29 -06:00
ref_keyword3.cdl Fix the handling of certain alias types on CDL files. 2021-04-13 16:56:43 -06:00
ref_keyword4.cdl Fix the handling of certain alias types on CDL files. 2021-04-13 16:56:43 -06:00
ref_nc_test_netcdf4_4_0.nc
ref_nc_test_netcdf4.cdl
ref_nccopy3_subset.nc
ref_nccopy_w.cdl Fix nccopy to use NC_PERSIST so that -w actually persists the output. 2019-03-15 12:05:27 -06:00
ref_no_ncproperty.nc Simplify libhdf5/nc5info.c to move to lazy parsing 2019-03-09 20:35:57 -07:00
ref_null_byte_padding_test.nc
ref_pathcvt.txt Support MSYS2/Mingw platform 2021-12-23 22:18:56 -07:00
ref_provenance_v1.nc There was a request to extend the provenance information 2018-08-25 21:44:41 -06:00
ref_rcmerge1.txt Fix a number of OS specific bugs 2021-11-03 12:49:54 -06:00
ref_rcmerge2.txt Fix a number of OS specific bugs 2021-11-03 12:49:54 -06:00
ref_rcmerge3.txt Fix a number of OS specific bugs 2021-11-03 12:49:54 -06:00
ref_roman_szip_simple.cdl added some ncdump tests for szip when it is present 2020-07-02 13:59:37 -06:00
ref_roman_szip_unlim.cdl added some ncdump tests for szip when it is present 2020-07-02 13:59:37 -06:00
ref_test_360_day_1900.cdl
ref_test_360_day_1900.nc
ref_test_365_day_1900.cdl
ref_test_365_day_1900.nc
ref_test_366_day_1900.cdl
ref_test_366_day_1900.nc
ref_test_corrupt_magic.nc
ref_times.cdl Test ncdump time unit name case-insensitivity 2020-05-14 06:42:12 -06:00
ref_tst_charfill.cdl
ref_tst_comp2.cdl
ref_tst_comp.cdl
ref_tst_compounds2.cdl
ref_tst_compounds2.nc
ref_tst_compounds3.cdl
ref_tst_compounds3.nc
ref_tst_compounds4.cdl
ref_tst_compounds4.nc
ref_tst_enum_data.cdl
ref_tst_fillbug.cdl
ref_tst_format_att_64.cdl
ref_tst_format_att.cdl
ref_tst_group_data_v23.cdl
ref_tst_group_data.cdl
ref_tst_grp_spec0.cdl
ref_tst_grp_spec.cdl
ref_tst_irish_rover.nc tests for ncdump issue with irish rover 2018-05-15 08:09:52 -06:00
ref_tst_mud4_chars.cdl
ref_tst_mud4-bc.cdl
ref_tst_mud4.cdl
ref_tst_nans.cdl
ref_tst_nc4_utf8_4.cdl
ref_tst_ncf213.cdl reverted changes superblock values 2021-01-11 14:43:44 -06:00
ref_tst_nofilters.cdl More fixes to the nccopy filter x chunking algorithm 2021-01-31 15:10:39 -07:00
ref_tst_noncoord.cdl
ref_tst_opaque_data.cdl
ref_tst_perdimspecs.cdl Fix nccopy -c dim/x to actually use the dim/x value. 2020-09-01 13:44:24 -06:00
ref_tst_radix.cdl Fix ncgen handling of octal constants (with leading 0). 2019-02-25 20:57:23 -07:00
ref_tst_small.cdl
ref_tst_solar_1.cdl
ref_tst_solar_2.cdl
ref_tst_special_atts3.cdl
ref_tst_special_atts.cdl 1. Fix an additional flaw in fill_value handling where non-atomic default values were not properly being handled. 2022-01-10 22:26:19 -07:00
ref_tst_string_data.cdl
ref_tst_unicode.cdl
ref_tst_utf8_4.cdl
ref_tst_utf8.cdl Fix various problem around VLEN's 2022-01-08 18:30:00 -07:00
ref_tst_vlen_data2.cdl
ref_tst_vlen_data.cdl
rewrite-scalar.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
run_back_comp_tests.sh Support MSYS2/Mingw platform 2021-12-23 22:18:56 -07:00
run_ncgen_nc4_tests.sh Fix various problem around VLEN's 2022-01-08 18:30:00 -07:00
run_ncgen_tests.sh replace USE_CDF5 with ENABLE_CDF5 2018-06-29 21:17:07 -05:00
run_tests.sh clean up 2019-03-12 09:54:16 -06:00
run_utf8_nc4_tests.sh
run_utf8_tests.sh
scope_ancestor_only.cdl Regularize the scoping of dimensions 2021-05-31 15:51:12 -06:00
scope_ancestor_subgroup.cdl Regularize the scoping of dimensions 2021-05-31 15:51:12 -06:00
scope_group_only.cdl Regularize the scoping of dimensions 2021-05-31 15:51:12 -06:00
scope_preorder.cdl Regularize the scoping of dimensions 2021-05-31 15:51:12 -06:00
small2.cdl
small.cdl
test0.cdl
test_corrupt_magic.cdl
test_keywords.sh Support MSYS2/Mingw platform 2021-12-23 22:18:56 -07:00
test_radix.sh Fix ncgen handling of octal constants (with leading 0). 2019-02-25 20:57:23 -07:00
test_rcmerge.sh Fix a number of OS specific bugs 2021-11-03 12:49:54 -06:00
test_scope.sh Regularize the scoping of dimensions 2021-05-31 15:51:12 -06:00
test_unicode_directory.sh Codify cross-platform file paths 2021-03-04 13:41:31 -07:00
test_unicode_path.sh Codify cross-platform file paths 2021-03-04 13:41:31 -07:00
testpathcvt.sh Support MSYS2/Mingw platform 2021-12-23 22:18:56 -07:00
tst_64bit.sh replace USE_CDF5 with ENABLE_CDF5 2018-06-29 21:17:07 -05:00
tst_bom.sh
tst_brecs.cdl
tst_bug321.cdl
tst_calendars.cdl Test ncdump time unit name case-insensitivity 2020-05-14 06:42:12 -06:00
tst_calendars.sh
tst_charfill.cdl
tst_charfill.sh
tst_chunking.c Add support for setting HDF5 alignment property when creating a file 2022-01-29 15:27:52 -07:00
tst_comp2.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
tst_comp.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
tst_compress.c Add a comment 2021-08-16 10:06:45 -06:00
tst_create_files.c added some ncdump tests for szip when it is present 2020-07-02 13:59:37 -06:00
tst_ctests.sh Add test cases 2019-11-03 12:03:13 -07:00
tst_dimsizes.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
tst_dimsizes.sh Add complete bitgroom support to NCZarr 2022-01-24 15:22:24 -07:00
tst_enum_data.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
tst_fileinfo.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
tst_fileinfo.sh Fix undefined references when using Visual Studio 2020-05-18 19:36:28 -06:00
tst_fillbug.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
tst_fillbug.sh
tst_formatx3.sh replace USE_CDF5 with ENABLE_CDF5 2018-06-29 21:17:07 -05:00
tst_formatx4.sh
tst_group_data.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
tst_grp_spec.sh
tst_h_rdc0.c Remove need for HDF5-1.6 API being defined 2021-04-28 13:59:24 -06:00
tst_h_scalar.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
tst_h_scalar.sh
tst_hdf5_offset.sh Fix undefined references when using Visual Studio 2020-05-18 19:36:28 -06:00
tst_inmemory_nc3.sh
tst_inmemory_nc4.sh
tst_inttags4.sh
tst_inttags.sh
tst_iter.sh
tst_lengths.sh replace USE_CDF5 with ENABLE_CDF5 2018-06-29 21:17:07 -05:00
tst_mslp.cdl
tst_mud.sh
tst_nans.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
tst_nccopy3_subset.sh Swapped /bin/bash for /bin/sh to test on osx. 2018-08-12 23:01:08 -06:00
tst_nccopy3.sh Add support for setting HDF5 alignment property when creating a file 2022-01-29 15:27:52 -07:00
tst_nccopy4.sh Fix various problem around VLEN's 2022-01-08 18:30:00 -07:00
tst_nccopy5.sh Fix various problem around VLEN's 2022-01-08 18:30:00 -07:00
tst_nccopy_w3.sh Fix nccopy to use NC_PERSIST so that -w actually persists the output. 2019-03-15 12:05:27 -06:00
tst_nccopy_w4.sh Fix nccopy to use NC_PERSIST so that -w actually persists the output. 2019-03-15 12:05:27 -06:00
tst_ncgen4_classic.sh The ncdap_tests were a mess, so I decided to clean them up 2018-03-20 21:31:31 -06:00
tst_ncgen4_cycle.sh Fix handling of enum constants nested in compound types. 2021-09-12 18:03:57 -06:00
tst_ncgen4_diff.sh
tst_ncgen4.sh Swapped /bin/bash for /bin/sh to test on osx. 2018-08-12 23:01:08 -06:00
tst_ncgen_shared.sh Fix various problem around VLEN's 2022-01-08 18:30:00 -07:00
tst_ncml.cdl
tst_netcdf4_4.sh Cleanup the CMake inter-test dependencies 2021-12-20 15:13:08 -07:00
tst_netcdf4.sh 1. Fix an additional flaw in fill_value handling where non-atomic default values were not properly being handled. 2022-01-10 22:26:19 -07:00
tst_null_byte_padding.sh
tst_opaque_data.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
tst_output.sh Fix undefined references when using Visual Studio 2020-05-18 19:36:28 -06:00
tst_radix.cdl Fix ncgen handling of octal constants (with leading 0). 2019-02-25 20:57:23 -07:00
tst_rcmerge.c Add support for setting HDF5 alignment property when creating a file 2022-01-29 15:27:52 -07:00
tst_special_atts.c Make utilities support NC_COMPACT 2020-02-29 12:06:21 -07:00
tst_string_data.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
tst_unicode.c Add support for setting HDF5 alignment property when creating a file 2022-01-29 15:27:52 -07:00
tst_utf8.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
tst_vlen_data.c Fix various problem around VLEN's 2022-01-08 18:30:00 -07:00
tst_vlen_demo.c ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00
utils.c Add filter support to NCZarr 2021-09-02 17:04:26 -06:00
utils.h Add filter support to NCZarr 2021-09-02 17:04:26 -06:00
vardata.c Fix various problem around VLEN's 2022-01-08 18:30:00 -07:00
vardata.h ncdump, other directories updated with copyright stanza. 2018-12-06 15:36:53 -07:00