Bug in H5LTread_dataset_double_f

Using a debugger I see that when my code calls H5LTread_dataset_double_f that the routine h5ltread_dataset_double_kind_8_rank_1 is actually called and this has
REAL(KIND=8),INTENT(IN), DIMENSION(dims(1)), TARGET :: buf
But buf needs to be intent(out) to work.

I am using HDF5 version 1.10.3

Also There is no documentation, as far as I can see, on H5LTread_dataset_double_f.

Created:

HDFFV-10738 Wrong INTENT for H5LTread_dataset_double_f

The API signature can be found in the “FORTRAN” tab:

https://portal.hdfgroup.org/display/HDF5/H5LT_READ_DATASET_DOUBLE

The general C description applies to Fortran. We did miss in the documentation the additional APIs where you can pass a pointer to the data, and we’ll add that.

Thanks,
Scot

Looking at the HDF5 code it looks like there are other h5ltread_dataset_XXX routines that have the same problem.

Also the C description is not adequate for the fortran version since it is not clear what the signature for the argument list should be. For example, looking at the HDF5 code I see that the “buffer” argument in the fortran version can be multidimensional. But you would not know that by just looking at the C documentation.

This is now fixed in the ‘develop’ and “hdf5_1_10” branches.

Scot