324 character(len=1024),
intent(in) :: inpfile
325 real(dp),
allocatable,
intent(inout) :: arr(:,:)
326 character(len=*),
intent(in) :: dsetname
329 integer(hid_t) :: file_id,dset_id
330 integer :: rank,error
331 integer(hid_t) :: dataspace_id
332 integer(hsize_t),
allocatable :: data_dims(:),maxdims(:)
338 CALL h5fopen_f(trim(inpfile), h5f_acc_rdonly_f, file_id, error)
341 write(*,*)
"Error opening file from hdf5. " 342 write(*,*)
"filename: ",trim(inpfile)
347 call h5dopen_f(file_id, trim(dsetname), dset_id, error)
350 write(*,*)
"Error opening file from hdf5. " 351 write(*,*)
"err dsetname: ",trim(dsetname)
355 call h5dget_space_f(dset_id, dataspace_id, error)
357 call h5sget_simple_extent_ndims_f(dataspace_id, rank, error)
358 allocate(data_dims(rank),maxdims(rank))
360 call h5sget_simple_extent_dims_f(dataspace_id, data_dims, maxdims, error)
364 allocate(arr(data_dims(1),data_dims(2)))
365 print*,
"Reading ",trim(dsetname),
" with shape ", data_dims
367 CALL h5dread_f(dset_id, h5t_ieee_f64le, arr, data_dims, error)
369 CALL h5dclose_f(dset_id, error)
373 CALL h5fclose_f(file_id, error)
375 CALL h5close_f(error)