Last modified: 16 September 2015
Name: H5Pset_chunk
Signature:
  herr_t `H5Pset_chunk`(hid_t `plist`, int `ndims`, const hsize_t * `dim` )
Purpose:
  Sets the size of the chunks used to store a chunked layout dataset.
Description:

  `H5Pset_chunk` sets the size of the chunks used to store a chunked layout dataset. This function is only valid for dataset creation property lists.

  The `ndims` parameter currently must be the same size as the rank of the dataset.

  The values of the `dim` array define the size of the chunks to store the dataset's raw data. The unit of measure for `dim` values is dataset elements.

  As a side-effect of this function, the layout of the dataset is changed to `H5D_CHUNKED`, if it is not already so set. (See `H5Pset_layout`.)

Notes:

- Chunk size cannot exceed the size of a fixed-size dataset. For example, a dataset consisting of a 5x4 fixed-size array cannot be defined with 10x10 chunks.
- Chunk maximums

- The maximum number of elements in a chunk is 232-1 which is equal to 4,294,967,295. If the number of elements in a chunk is set via `H5Pset_chunk` to a value greater than 232-1, then `H5Pset_chunk` will fail.
- The maximum size for any chunk is 4GB. If a chunk that is larger than 4GB attempts to be written with `H5Dwrite`, then `H5Dwrite` will fail.

Parameters:

hid_t `plist` | IN: Dataset creation property list identifier.
int `ndims` | IN: The number of dimensions of each chunk.
const hsize_t * `dim` | IN: An array defining the size, in dataset elements, of each chunk.

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

      SUBROUTINE h5pset_chunk_f(prp_id, ndims, dims, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: prp_id  ! Property list identifier
        INTEGER, INTENT(IN) :: ndims          ! Number of chunk dimensions
        INTEGER(HSIZE_T), DIMENSION(ndims), INTENT(IN) :: dims
                                              ! Array containing sizes of
                                              ! chunk dimensions
        INTEGER, INTENT(OUT) :: hdferr        ! Error code
                                              ! 0 on success and -1 on failure
      END SUBROUTINE h5pset_chunk_f

History:

  Release | Change
  1.8.16 | Added chunk size limit note to Description.