<pre><code class="language-fortran"> TYPE, BIND(C) :: space_t
INTEGER(hsize_t) :: total ! Total space for storing object header in file
INTEGER(hsize_t) :: meta ! Space within header for object header metadata
! information
INTEGER(hsize_t) :: mesg ! Space within header for actual message
! information
INTEGER(hsize_t) :: free ! Free space within object header
END TYPE space_t
TYPE, BIND(C) :: mesg_t
INTEGER(c_int64_t) :: present ! Flags to indicate presence of message type
! in header
INTEGER(c_int64_t) :: shared ! Flags to indicate message type is shared
! in header
END TYPE mesg_t
TYPE, BIND(C) :: hdr_t
INTEGER :: version ! Version number of header format in file
INTEGER :: nmesgs ! Number of object header messages
INTEGER :: nchunks ! Number of object header chunks
INTEGER :: flags ! Object header status flags
TYPE(space_t) :: space
TYPE(mesg_t) :: mesg
END TYPE hdr_t
! Extra metadata storage for obj & attributes
TYPE, BIND(C) :: H5_ih_info_t
INTEGER(hsize_t) :: index_size ! btree and/or list
INTEGER(hsize_t) :: heap_size
END TYPE H5_ih_info_t
TYPE, BIND(C) :: meta_size_t
TYPE(H5_ih_info_t) :: obj ! v1/v2 B-tree & local/fractal heap for
! groups, B-tree for chunked datasets
TYPE(H5_ih_info_t) :: attr ! v2 B-tree & heap for attributes
ENDTYPE meta_size_t
TYPE, BIND(C) :: h5o_info_t
INTEGER(C_LONG) :: fileno ! File number that object is located in
INTEGER(haddr_t) :: addr ! Object address in file
INTEGER(C_INT) :: type ! Basic object type (group, dataset, etc.)
INTEGER :: rc ! Reference count of object
INTEGER, DIMENSION(8) :: atime ! Access time ! -- NOTE --
INTEGER, DIMENSION(8) :: mtime ! Modification time ! Returns an integer
INTEGER, DIMENSION(8) :: ctime ! Change time ! array as specified
INTEGER, DIMENSION(8) :: btime ! Birth time ! in Fortran intrinsic
! DATE_AND_TIME(VALUES)
INTEGER(hsize_t) :: num_attrs ! # of attributes attached to object
TYPE(hdr_t) :: hdr
TYPE(meta_size_t) :: meta_size
END TYPE h5o_info_t</code></pre> |