Returns the amount of storage allocated for a dataset
hsize_t H5Dget_storage_size( hid_t dataset_id )
SUBROUTINE h5dget_storage_size_f(dset_id, size, hdferr)
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HSIZE_T), INTENT(OUT) :: size ! Amount of storage required
! for dataset
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5dget_storage_size_f
IN: Identifier of the dataset to query
H5D_GET_STORAGE_SIZE returns the amount of storage, in bytes, that is allocated in the file for the raw data of the dataset specified by dataset_id.
Note that the amount of storage in this case is the storage allocated in the written file, which will typically differ from the space required to hold a dataset in working memory.
For contiguous datasets, the returned size equals thecurrentallocated size of the raw data.
For unfiltered chunked datasets, the returned size is the number of allocated chunks times the chunk size. For filtered chunked datasets, the returned size is the space required to store the filtered data. For example, if a compression filter is in use, H5D_GET_STORAGE_SIZE returns the total space required to store the compressed chunks.
H5D_GET_STORAGE_SIZE reports only the space required to store the data; the report does not include any metadata.
The return value may be zero if no data has been stored.
Note that H5D_GET_STORAGE_SIZE is not generally an appropriate function to use when determining the amount of memory required to work with a dataset. In such circumstances, you must determine the number of data points in a dataset and the size of an individual data element. H5S_GET_SIMPLE_EXTENT_NPOINTS and H5T_GET_SIZE can be used to get that information.
Returns the amount of storage space, in bytes, allocated for the dataset, not counting metadata; otherwise returns 0 (zero).
Note that H5D_GET_STORAGE_SIZE does not differentiate between 0 (zero), the value returned for the storage size of a dataset with no stored values, and 0 (zero), the value returned to indicate an error.