Name: H5Pset_hyper_cache
Signature:
  herr_t `H5Pset_hyper_cache`(hid_t `plist`, unsigned `cache`, unsigned `limit` )
Purpose:
  Indicates whether to cache hyperslab blocks during I/O.
Description:
  [NOTE: This function is deprecated in HDF5 Release 1.6 and will eventually be removed from the HDF5 distribution. It is provided in this release only to enable backward compatibility with HDF5 Releases 1.4.x and is enabled only if the HDF5 library is configured with the flag `H5_WANT_H5_V1_4_COMPAT`; the function is not enabled in the binaries distributed by NCSA. ]

  Given a dataset transfer property list, `H5Pset_hyper_cache` indicates whether to cache hyperslab blocks during I/O, a process which can significantly increase I/O speeds.

  When working with hyperslab selections, it is possible to significantly speed up I/O operations by retrieving an entire hyperslab from the file in one operation and caching it in memory. The `cache` parameter specifies whether to turn caching on for hyperslab I/O operations. If `cache` is set to `1`, caching is turned on; if set to `0`, caching is turned off.

  The parameter `limit` sets the maximum size of the hyperslab block to cache. If a block is smaller than that limit, it may still not be cached if no memory is available. Setting `limit` to `0` (zero) indicates no limitation on the size of block to attempt to cache.

  The default is to cache blocks with no limit on block size for serial I/O and to not cache blocks for parallel I/O.

Parameters:

hid_t `plist`
  IN: Dataset transfer property list identifier.
unsigned `cache`
  IN: A flag indicating whether caching is to be set to on (`1`) or off (`0`).
unsigned `limit`
  IN: Maximum size of the hyperslab block to cache. `0` (zero) indicates no limit.

Returns:
  Returns a non-negative value if successful; otherwise returns a negative value.
Fortran90 Interface: h5pset_hyper_cache_f

      SUBROUTINE h5pset_hyper_cache_f(prp_id, cache, limit, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
        INTEGER, INTENT(IN) :: cache         !
        INTEGER, INTENT(IN) :: limit         ! Maximum size of the hyperslab
                                             ! block to cache
                                             ! 0 (zero) indicates no limit
        INTEGER, INTENT(OUT) :: hdferr       ! Error code
                                             ! 0 on success and -1 on failure
      END SUBROUTINE h5pset_hyper_cache_f