Name: H5Sget_select_hyper_blocklist
Signature:
  herr_t `H5Sget_select_hyper_blocklist`(hid_t `space_id`, hsize_t `startblock`, hsize_t `numblocks`, hsize_t *`buf` )
Purpose:
  Gets the list of hyperslab blocks currently selected.
Description:
  `H5Sget_select_hyper_blocklist` returns a list of the hyperslab blocks currently selected. Starting with the `startblock`-th block in the list of blocks, `numblocks` blocks are put into the user's buffer. If the user's buffer fills up before `numblocks` blocks are inserted, the buffer will contain only as many blocks as fit.

  The block coordinates have the same dimensionality (rank) as the dataspace they are located within. The list of blocks is formatted as follows:
  <"start" coordinate>, immediately followed by
  <"opposite" corner coordinate>, followed by
  the next "start" and "opposite" coordinates,
  etc.
  until all of the selected blocks have been listed.

  No guarantee is implied as the order in which blocks are listed.

Parameters:

hid_t `space_id` | IN: Dataspace identifier of selection to query.
hsize_t `startblock` | IN: Hyperslab block to start with.
hsize_t `numblocks` | IN: Number of hyperslab blocks to get.
hsize_t *`buf` | OUT: List of hyperslab blocks selected.

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

      SUBROUTINE h5sget_select_hyper_blocklist_f(space_id, startblock, num_blocks,
                                                 buf, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN)   :: space_id   ! Dataspace identifier
        INTEGER(HSIZE_T), INTENT(IN) :: startblock ! Hyperslab block to start with
                                                   ! NOTE: numbering starts at 0
        INTEGER, INTENT(OUT) :: num_blocks         ! Number of hyperslab blocks to
                                                   ! get in the current hyperslab
                                                   ! selection
        INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf
                                                   ! List of hyperslab blocks selected
        INTEGER, INTENT(OUT) :: hdferr             ! Error code
      END SUBROUTINE h5sget_select_hyper_blocklist_f