Last modified: 7 January 2011
Name: H5Pset_libver_bounds
Signature:
  herr_t `H5Pset_libver_bounds`( hid_t `fapl_id`, H5F_libver_t `libver_low`, H5F_libver_t `libver_high` )

Purpose:
  Sets bounds on library versions, and indirectly format versions, to be used when creating objects.

Description:
  `H5Pset_libver_bounds` controls the versions of the object formats that will be used when creating objects in a file. The object format versions are determined indirectly from the HDF5 Library versions specified in the call.

  This property is set in the file access property list specified by `fapl_id`.

  When bounds have been set through an `H5Pset_libver_bounds` call, a function that creates an object will fail if the object cannot be created within the boundaries set in `libver_low` and `libver_high`.

Parameters:

  hid_t `fapl_id` | IN: File access property list identifier
  H5F_libver_t `libver_low` | IN: The earliest version of the library that will be used for writing objects, indirectly specifying the earliest object format version that can be used when creating objects in the file. Valid values of `libver_low` are as follows:
  | `H5F_LIBVER_EARLIEST` (Default)
  | `H5F_LIBVER_18`
  | `H5F_LIBVER_LATEST`
  Setting `libver_low` to `H5F_LIBVER_EARLIEST` will result in objects being created using the earliest possible format for each object. Note that earliest possible is different from earliest, as some features introduced in library versions later than 1.0.0 resulted in updates to object formats. With `libver_low`=`H5F_LIBVER_EARLIEST`, if the application creates an object that requires a feature introduced in library versions later than 1.0.0, the earliest possible version that supports the requested feature will be used. Setting `libver_low` to `H5F_LIBVER_LATEST` will result in objects being created using the latest available format for each object. This setting means that objects will be created with the latest format versions available (within the range of library versions specified in the call), and can take advantage of the latest features and performance enhancements. Objects written with the `H5F_LIBVER_LATEST` setting for `libver_low` may be accessible to a smaller range of library versions than would be the case if the `H5F_LIBVER_EARLIEST` value had been used. Setting `libver_low` to the intermediate value `H5F_LIBVER_18` specifies that created or modifed objects must be readable by the HDF5 Release 1.8 series but do not need to be readable by earlier versions.
  H5F_libver_t `libver_high` | IN: The latest version of the library that will be used for writing objects, indirectly specifying the latest object format version that can be used when creating objects in the file. Valid values of `libver_high` are as follows:
  | `H5F_LIBVER_18`
  | `H5F_LIBVER_LATEST` (Default)
  `H5F_LIBVER_18` specifies that objects may be created in a format used by releases up to and including the HDF5 Release 1.8 series. Object formats introduced in later releases may not be used. `H5F_LIBVER_LATEST` specifies that objects may be created in the latest format available; there is no requirement that earlier versions of the HDF5 library be able to read all objects in the file.

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

Fortran90 Interface: h5pset_libver_bounds_f

      SUBROUTINE h5pset_libver_bounds_f(fapl_id, low, high, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: fapl_id ! File access property list identifier
        INTEGER, INTENT(IN) :: low ! The earliest version of the library that
                                   ! will be used for writing objects.
                                   ! Currently, low must be either:
                                   !        H5F_LIBVER_EARLIEST_F
                                   !        H5F_LIBVER_LATEST_F
          INTEGER, INTENT(IN) :: high
                                   ! The latest version of the library that will be
                                   ! used for writing objects.
                                   ! Currently, high must set to:
                                   !            H5F_LIBVER_LATEST_F
          INTEGER, INTENT(OUT) :: hdferr
                                   ! Error code
                                   ! 0 on success and -1 on failure
      END SUBROUTINE h5pset_libver_bounds_f

History:

  Release | C
  1.8.0 | Function introduced in this release.
  1.8.6 | `H5F_LIBVER_18` version boundary setting added in this release.