Last modified: 14 October 2014
Name: H5Tcreate
Signature:
  hid_t `H5Tcreate`( H5T_class_t `class`, size_t`size` )

Purpose:
  Creates a new datatype.

Description:
  `H5Tcreate` creates a new datatype of the specified class with the specified number of bytes. This function is used only with the following datatype classes:
  - `H5T_COMPOUND`
  - `H5T_OPAQUE`
  - `H5T_ENUM`
  - `H5T_STRING`
  Other datatypes, including integer and floating-point datatypes, are typically created by using `H5Tcopy` to copy and modify a predefined datatype.

  When creating a variable-length string datatype, `size` must be `H5T_VARIABLE`; see “Creating variable-length string datatypes.”

  When creating a fixed-length string datatype, `size` will be the length of the string in bytes. The length of the string in characters will depend on the encoding used; see `H5Pset_char_encoding`.

  ENUMs created with this function have a signed native integer base datatype. Use `H5Tenum_create` if a different integer base datatype is required.

  The datatype identifier returned from this function should be released with `H5Tclose` or resource leaks will result.

Parameters:

  H5T_class_t `class` | IN: Class of datatype to create; valid values include: `H5T_COMPOUND` `H5T_OPAQUE` `H5T_ENUM` `H5T_STRING`
  size_t `size` | IN: Size, in bytes, of the datatype being created

Returns:
  Returns datatype identifier if successful; otherwise returns a negative value.

See Also:

  `H5Pset_char_encoding` `H5Tcopy` `H5Tenum_create` | `` | Creating variable-length string datatypes HDF5 Predefined Datatypes

Fortran90 Interface: h5tcreate_f

      SUBROUTINE h5tcreate_f(class, size, type_id, hdferr)
        IMPLICIT NONE
        INTEGER, INTENT(IN) :: class             ! Datatype class can be one of
                                                 !    H5T_COMPOUND_F
                                                 !    H5T_OPAQUE_F
                                                 !    H5T_ENUM_F
                                                 !    H5T_STRING_F
        INTEGER(SIZE_T), INTENT(IN) :: size      ! Size of the datatype
        INTEGER(HID_T), INTENT(OUT) :: type_id   ! Datatype identifier
        INTEGER, INTENT(OUT) :: hdferr           ! Error code
                                                 ! 0 on success and -1 on failure
      END SUBROUTINE h5tcreate_f

See Also:
  “Using Identifiers”
History:

  Release | Change
  1.8.8 | String datatype capability added to function in this release.