Releases: geospace-code/h5fortran
cmake: easier use via FetchContent
updated CMake layout to be compatible with FetchContent as well as ExternalProject.
better chunk_size options and quality
activate per-variable chunk-size. Write contiguous by default compression and chunk-size aren't specified
make cmake hdf5 finding more robust
HDF5 1.10.6 compatible
We provide an internal FindHDF5.cmake while waiting for CMake itself to update their FindHDF5.cmake for HDF5 1.10.6
-
now works with Intel Fortran on Windows
-
cleaned up CMake build and Meson build, making tests more robust
CI milestone
This release is mostly for development milestone, the end users won't see a difference. This is a milestone where all the CI is passing.
rename module h5fortran
To complete the v2.x release breaking changes, rename top level module to h5fortran
.
Made the shaky, time-consuming tests with Python and Matlab not run by default--almost no-one but the h5fortran developers care about them.
Docs: note that Fortran 2008 is used to improve Intel compiler compatibility.
improve error handling
Improving error handling by checking for more unexpected conditions like data types not handled by this program or HDF5.
docs: add notes for situations not yet handed by this program. For example, arrays greater than 7-D require Fortran 2008 up to rank 15 support. Only the latest compilers have this, so we stubbed out a concept for reading and writing up to rank 15 data, but didn't yet compile it as some compilers e.g. GCC 9.2.0 have an internal compiler error when trying to build rank 15 support.
add int64 read/write, error test
v2.2.0 cmake/meson: skip tests when used as external/subproject
increase polymorphism, read not allocatable
in preparation for potential slice/slab, increase polymorphism with select type
, which greatly deduplicates code for read and write
to provide a more stable user experience, instead of blindly allocating arbitrarily large arrays on read, make the user allocate the destination array before read. This was necessary to use select type
on read, and is a better practice for a stable library--we don't have to try to catch out-of-memory errors in the library for simple reasons of read array being too large.
There are plenty of use cases where the destination array size is known--particularly for slice/slab reads.
API breaking changes, allow overwrite data
%add => %write
%get => %read
ierr
is the last non-optional argument for every procedure. This allows making exception handler-like behavior in the end user program. Be sure to check the value of ierr
, especially when writing files.
This paves the pathway to future slabbed / sliced read/write.
It's now possible to overwrite a variable with data of the same rank.
bugfix: string read size, cleanup build and comments
- fix %get for string--use string of len >= desired text, then truncate with c_nul
- cleanup syntax, check for more fine-grained errors, fix meson and cmake build settings