H5fortran Versions Save

Lightweight HDF5 polymorphic Fortran: h5write() h5read()

v4.6.3

1 year ago
  • rearrange directories for FPM de facto practice
  • add Fortran Package Manager (FPM)
  • instead of generated source code, use Fortran standard "include"

Thanks @milancurcic for idea to implement FPM

v4.6.2

1 year ago

v4.6.1

1 year ago

General cleanup of CMake scripts.

Intel compiler: don't specify xHost flag as some systems shouldn't use them. Let the user decide.

HDF5 1.12.2 is the default version built by the script if the user chooses.

Specify script HDF5 version to build by Git tag for simplicity.

v4.6.0

1 year ago

HDF5 string character data is handled more broadly and robustly including:

  • null pad character data as typically generated from HDF5 programs in C / C++ / Python / Matlab etc. are now read correctly
  • variable length strings are read correctly (c null term)
  • overwriting character dataset is now possible

The common annoyance of a non-existing HDF5 file is handled with a succinct error message now.

fixes #26

Thanks @gekowa

v4.5.0

2 years ago

HDF5 no longer autobuilds. This caused confusion in some cases, so we instead emit an error message with how to build HDF5 if necessary.

v4.4.4

2 years ago

fix long-standing stability bug that I had used workaround code to get rid of before, but now I fixed the root cause by explicit dimensions for slice parameters

v4.4.3

2 years ago

v4.4.2

2 years ago

remove ierr optional from %open() as with other methods

FindHDF5: scope FindMPI correctly, fixes false MPI-HDF5 link fail

Add hdf5version() query function

v4.4.1

2 years ago

h5fortran can now query data "%class" e.g. integer, float, string as well as the native datatype "%dtype"

Dataset "dname" data class (i.e. integer, float, string, ...)

integer :: class
!! H5T_INTEGER_F, H5T_FLOAT_F, H5T_STRING_F
class = h%class(dname)
character(*), intent(in) :: dname

Dataset "dname" datatype

integer(HID_T) :: dtype
!! H5T_NATIVE_REAL, H5T_NATIVE_DOUBLE, H5T_NATIVE_INTEGER, H5T_NATIVE_CHARACTER, H5T_STD_I64LE
dtype = h%dtype(dname)
character(*), intent(in) :: dname

v4.4.0

2 years ago

The optional "ierr" argument was not well tested and in almost every case did nothing. It was a source of user confusion and excess internal untested code, so we removed it from all functions except "%open".

We also used "select type" to eliminate hundreds of lines of code, for better code quality.