Lightweight HDF5 polymorphic Fortran: h5write() h5read()
%open
, %close
for files--the older %initialize
, %finalize
continue to work.
%open_group
, %close_group
for groups now.
Added a destructor finalization method that automatically flushes data to disk and closes file when leaving procedure scope. This helps avoid data corruption if user forgets to %close()
.
updated to zlib 2.0.4
refactored h5fortran v3.8.0 internal polymorphism to use TKR-unique interfaces instead of select type. That is, compile-time polymorphism instead of runtime polymorphism. This helps give clearer compile-time warnings/errors, improved runtime stability, specifically for GCC 11.1 which has a always crashing on file write bug that this fixes.
use patched zlib 2.0.3 that also works with GCC MPICC (was a bugfix).
This should remove anyone's need for -Dzlib_legacy
In case of a regression with Zlib 2.x on some less common computers, we provide a workaround to use Zlib 1.x by
cmake -B build -Dzlib_legacy=on
Please let us know and/or report the issue to zlib-ng project as Zlib 2.x should be a drop-in replacement for Zlib 1.x.
allow system zlib to be used when building hdf5
this avoids twice-defined ZLIB::ZLIB errors
If there's still errors, recommend manually specifying to build HDF5:
cmake -B build -Dhdf5_external=on
Whether manual or auto build HDF5 library, we now use zlib-ng 2.0.2 stable release. They claim considerably faster read and write. Also zlib-ng has extensive testing beyond legacy zlib.
also enhance external project not rebuilding each time