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.
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.