HDF5 FORTRAN Developer's Guide

## H5F

[ Top ] [ Modules ]

NAME

      MODULE H5F

FILE

      H5Fff.f90

PURPOSE

      This file contains Fortran interfaces for H5F functions.

NOTES

                             *** IMPORTANT ***
      If you add a new H5F function you must add the function name to the
      Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
      This is needed for Windows based operating systems.

## h5fclose_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5fclose_f

PURPOSE

      Closes HDF5 file.

INPUTS

      file_id       - file identifier

OUTPUTS

      hdferr        - Returns 0 if successful and -1 if fails

AUTHOR

      Elena Pourmal
      August 12, 1999

HISTORY

      Explicit Fortran interfaces were added for
      called C functions (it is needed for Windows
      port).  February 28, 2001

SOURCE

      SUBROUTINE h5fclose_f(file_id, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
        INTEGER, INTENT(OUT) :: hdferr        ! Error code

## h5fcreate_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5fcreate_f

PURPOSE

      Creates HDF5 files.

INPUTS

      name          - name of the file to create
      access_flags  - File access flags. Allowable values are:
                       H5F_ACC_TRUNC_F
                       H5F_ACC_EXCL_F

OUTPUTS

      file_id       - file identifier
      hdferr        - Returns 0 if successful and -1 if fails

OPTIONAL PARAMETERS

      creation_prp  - file creation property list identifier
      access_prp    - file access property list identifier

AUTHOR

      Elena Pourmal
      August 12, 1999

HISTORY

      Explicit Fortran interfaces were added for
      called C functions (it is needed for Windows
      port).  February 28, 2001

SOURCE

      SUBROUTINE h5fcreate_f(name, access_flags, file_id, hdferr, &
           creation_prp, access_prp)
        IMPLICIT NONE
        CHARACTER(LEN=*), INTENT(IN) :: name   ! Name of the file
        INTEGER, INTENT(IN) :: access_flags    ! File access flags
        INTEGER(HID_T), INTENT(OUT) :: file_id ! File identifier
        INTEGER, INTENT(OUT) :: hdferr         ! Error code
        INTEGER(HID_T), OPTIONAL, INTENT(IN) :: creation_prp
                                               ! File creation propertly
                                               ! list identifier
        INTEGER(HID_T), OPTIONAL, INTENT(IN) :: access_prp
                                               ! File access property list
                                               ! identifier

## h5fflush_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5fflush_f

PURPOSE

      Flushes all buffers associated WITH a file to disk

INPUTS

      object_id     - identifier of object used to identify the file.
      scope         - specifies the scope of the flushing action.
                      Possible values are:
                        H5F_SCOPE_GLOBAL_F
                        H5F_SCOPE_LOCAL_F

OUTPUTS

      hdferr        - Returns 0 if successful and -1 if fails

OPTIONAL PARAMETERS

      creation_prp  - file creation property list identifier
      access_prp    - file access property list identifier

AUTHOR

      Elena Pourmal
      August 12, 1999

HISTORY

      Explicit Fortran interfaces were added for
      called C functions (it is needed for Windows
      port).  February 28, 2001

SOURCE

      SUBROUTINE h5fflush_f(object_id, scope, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: object_id !identifier for any object
                                                !associate with a file,
                                                !including the file itself,
                                                !a dataset, a group, an
                                                !attribute, or a named
                                                !data type

        INTEGER, INTENT(IN) :: scope            !scope of the flushing
                                                !action, possible values
                                                !are: H5F_SCOPE_GLOBAL_F
                                                ! which flushes the entire
                                                !virtual file,
                                                !and H5F_SCOPE_LOCAL_F
                                                !which flushes only the
                                                !specified file.

        INTEGER, INTENT(OUT) :: hdferr          ! Error code

## h5fget_access_plist_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5fget_access_plist_f

PURPOSE

      Returns a file access property list identifier.

INPUTS

      file_id       - identifier of a file to creation property list of

OUTPUTS

      access_id     - access property list identifier
      hdferr        - Returns 0 if successful and -1 if fails

AUTHOR

      Elena Pourmal
      August 12, 1999

HISTORY

      Explicit Fortran interfaces were added for
      called C functions (it is needed for Windows
      port).  February 28, 2001

SOURCE

      SUBROUTINE h5fget_access_plist_f(file_id, access_id, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: file_id      ! File identifier
        INTEGER(HID_T), INTENT(OUT) :: access_id   ! File access property
                                                   ! list identifier
        INTEGER, INTENT(OUT) :: hdferr             ! Error code

## h5fget_create_plist_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5fget_create_plist_f

PURPOSE

      Returns a file creation property list identifier.

INPUTS

      file_id       - identifier of a file to creation property list of

OUTPUTS

      prop_id       - creation property list identifier
      hdferr        - Returns 0 if successful and -1 if fails

AUTHOR

      Elena Pourmal
      August 12, 1999

HISTORY

      Explicit Fortran interfaces were added for
      called C functions (it is needed for Windows
      port).  February 28, 2001

SOURCE

      SUBROUTINE h5fget_create_plist_f(file_id, prop_id, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: file_id    ! File identifier
        INTEGER(HID_T), INTENT(OUT) :: prop_id   ! File creation property
                                                 ! list identifier
        INTEGER, INTENT(OUT) :: hdferr           ! Error code

## h5fget_filesize_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5fget_filesize_f

PURPOSE

      Retrieves the file size of the HDF5 file.

INPUTS

      file_id       - file identifier

OUTPUTS

      size          - file size
      hdferr        - Returns 0 if successful and -1 if fails

AUTHOR

      Elena Pourmal
      July 7, 2004

SOURCE

      SUBROUTINE h5fget_filesize_f(file_id, size, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: file_id  ! file identifier
        INTEGER(HSIZE_T), INTENT(OUT) :: size  ! Size of the file
        INTEGER, INTENT(OUT) :: hdferr         ! Error code: 0 on success,
                                               !     -1 if fail

## h5fget_freespace_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5fget_freespace_f

PURPOSE

      Get amount of free space within a file

INPUTS

      file_id       - file identifier

OUTPUTS

      free_space    - amount of free space in file
      hdferr        - Returns 0 if successful and -1 if fails

AUTHOR

      Quincey Koziol
      October 7, 2003

SOURCE

      SUBROUTINE h5fget_freespace_f(file_id, free_space, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
        INTEGER(HSSIZE_T), INTENT(OUT) :: free_space
                                              ! amount of free space in file
        INTEGER, INTENT(OUT) :: hdferr        ! Error code

## h5fget_name_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5fget_name_f

PURPOSE

      Gets the name of the file from the object identifier

INPUTS

      obj_id        - object identifier

OUTPUTS

      buf           - buffer to store the read name
      size          - actual size of the name
      hdferr        - Returns 0 if successful and -1 if fails

AUTHOR

      Elena Pourmal
      July 6, 2004

SOURCE

      SUBROUTINE h5fget_name_f(obj_id, buf, size, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: obj_id   ! Object identifier
        CHARACTER(LEN=*), INTENT(INOUT) :: buf
                                               ! Buffer to hold file name
        INTEGER(SIZE_T), INTENT(OUT) :: size   ! Size of the file name
        INTEGER, INTENT(OUT) :: hdferr         ! Error code: 0 on success,
                                               !     -1 if fail

## h5fget_obj_count_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5fget_obj_count_f

PURPOSE

      Gets number of the objects open within a file

INPUTS

      file_id       - file identifier
      obj_type      - type of the object; possible values are:
                        H5F_OBJ_FILE_F
                        H5F_OBJ_DATASET_F
                        H5F_OBJ_GROUP_F
                        H5F_OBJ_DATATYPE_F
                        H5F_OBJ_ALL_F

OUTPUTS

      obj_count     - number of open objects
      hdferr        - Returns 0 if successful and -1 if fails

AUTHOR

      Elena Pourmal
      September 30, 2002

HISTORY

      Changed the type of obj_count to INTEGER(SIZE_T)
      September 25, 2008 EIP

SOURCE

      SUBROUTINE h5fget_obj_count_f(file_id, obj_type, obj_count, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
        INTEGER, INTENT(IN)  :: obj_type      ! Object type
        INTEGER(SIZE_T), INTENT(OUT) :: obj_count
                                              ! Number of open objects
        INTEGER, INTENT(OUT) :: hdferr        ! Error code

## h5fget_obj_ids_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5fget_obj_ids_f

PURPOSE

      Get list of open objects identifiers within a file

INPUTS

      file_id       - file identifier
      obj_type      - type of the object; possible values are:
                        H5F_OBJ_FILE_F
                        H5F_OBJ_DATASET_F
                        H5F_OBJ_GROUP_F
                        H5F_OBJ_DATATYPE_F
                        H5F_OBJ_ALL_F

OUTPUTS

      obj_ids       - array of open object identifiers
      hdferr        - Returns 0 if successful and -1 if fails

OPTIONAL PARAMETERS

      num_objs      - number of open objects

AUTHOR

      Elena Pourmal
      September 30, 2002

HISTORY

      Added optional parameter num_objs for number of open objects
      of the specified type and changed type of max_obj to
      INTEGER(SIZE_T)
      September 25, 2008 EIP

SOURCE

      SUBROUTINE h5fget_obj_ids_f(file_id, obj_type, max_objs, obj_ids, hdferr, num_objs)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: file_id      ! File identifier
        INTEGER, INTENT(IN)  :: obj_type           ! Object type
        INTEGER(SIZE_T), INTENT(IN)  :: max_objs   ! Maximum # of objects to retrieve
        INTEGER(HID_T), DIMENSION(*), INTENT(INOUT) :: obj_ids
                                                   ! Array of open objects iidentifiers
        INTEGER, INTENT(OUT) :: hdferr             ! Error code
        INTEGER(SIZE_T), INTENT(OUT), OPTIONAL :: num_objs ! number of open objects

## h5fis_hdf5_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5fis_hdf5_f

PURPOSE

      Determines whether a file is in the HDF5 format.

INPUTS

      name          - name of the file to check

OUTPUTS

      status        - indicates if file is and HDF5 file
      hdferr        - Returns 0 if successful and -1 if fails

AUTHOR

      Elena Pourmal
      August 12, 1999

HISTORY

      Explicit Fortran interfaces were added for
      called C functions (it is needed for Windows
      port).  February 28, 2001

SOURCE

      SUBROUTINE h5fis_hdf5_f(name, status, hdferr)
        IMPLICIT NONE
        CHARACTER(LEN=*), INTENT(IN) :: name   ! Name of the file
        LOGICAL, INTENT(OUT) :: status         ! Indicates if file
                                               ! is an HDF5 file
        INTEGER, INTENT(OUT) :: hdferr         ! Error code

## h5fmount_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5fmount_f

PURPOSE

      Mounts a file.

INPUTS

      loc_id        - the identifier for of file or group in
                      which name is defined
      name          - the name of the group onto which the file
                      specified by child_id is to be mounted.
      child_id      - the identifier of the file to be mounted.

OUTPUTS

      hdferr        - Returns 0 if successful and -1 if fails

OPTIONAL PARAMETERS

      access_prp    - the identifier of the property list to be used

AUTHOR

      Elena Pourmal
      August 12, 1999

HISTORY

      Explicit Fortran interfaces were added for
      called C functions (it is needed for Windows
      port).  February 28, 2001

SOURCE

      SUBROUTINE h5fmount_f(loc_id, name, child_id, hdferr, access_prp)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: loc_id   ! Identifier for file or group
                                               ! in which dsetname is defined
        CHARACTER(LEN=*), INTENT(IN) :: name   ! Name of the group
        INTEGER(HID_T), INTENT(IN) :: child_id ! File identifier for the
                                               ! file to be mounted
        INTEGER, INTENT(OUT) :: hdferr         ! Error code
        INTEGER(HID_T), OPTIONAL, INTENT(IN) :: access_prp
                                               ! File access property list
                                               ! identifier

## h5fopen_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5fopen_f

PURPOSE

      Opens HDF5 file.

INPUTS

      name          - name of the file to acecss
      access_flags  - File access flags. Allowable values are:
                       H5F_ACC_RDWR_F
                       H5F_ACC_RDONLY_F

OUTPUTS

      file_id       - file identifier
      hdferr        - Returns 0 if successful and -1 if fails

OPTIONAL PARAMETERS

      access_prp    - file access property list identifier

AUTHOR

      Elena Pourmal
      August 12, 1999

HISTORY

      Explicit Fortran interfaces were added for
      called C functions (it is needed for Windows
      port).  February 28, 2001

SOURCE

      SUBROUTINE h5fopen_f(name, access_flags, file_id, hdferr, access_prp)
        IMPLICIT NONE
        CHARACTER(LEN=*), INTENT(IN) :: name   ! Name of the file
        INTEGER, INTENT(IN) :: access_flags    ! File access flags
        INTEGER(HID_T), INTENT(OUT) :: file_id ! File identifier
        INTEGER, INTENT(OUT) :: hdferr         ! Error code
        INTEGER(HID_T), OPTIONAL, INTENT(IN) :: access_prp
                                               ! File access property list
                                               ! identifier

## h5freopen_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5freopen_f

PURPOSE

      Reopens HDF5 file.

INPUTS

      file_id       - identifier of a file for which an
                      additional identifier is required

OUTPUTS

      ret_file_id   - new file identifier
      hdferr        - Returns 0 if successful and -1 if fails

AUTHOR

      Elena Pourmal
      August 12, 1999

HISTORY

      Explicit Fortran interfaces were added for
      called C functions (it is needed for Windows
      port).  February 28, 2001

SOURCE

      SUBROUTINE h5freopen_f(file_id, ret_file_id, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: file_id      ! File identifier
        INTEGER(HID_T), INTENT(OUT) :: ret_file_id ! New File identifier
        INTEGER, INTENT(OUT) :: hdferr             ! Error code

## h5funmount_f

[ Top ] [ H5F ] [ Subroutines ]

NAME

      h5funmount_f

PURPOSE

      Unmounts a file.

INPUTS

      loc_id        - the identifier for of file or group in
                      which name is defined
      name          - the name of the mount point

OUTPUTS

      hdferr        - Returns 0 if successful and -1 if fails

AUTHOR

      Elena Pourmal
      August 12, 1999

HISTORY

      Explicit Fortran interfaces were added for
      called C functions (it is needed for Windows
      port).  February 28, 2001

SOURCE

      SUBROUTINE h5funmount_f(loc_id, name, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: loc_id   ! Identifier for file or group
                                               ! at which the specified file
                                               ! is to be unmounted
        CHARACTER(LEN=*), INTENT(IN) :: name   ! Name of the mount point
        INTEGER, INTENT(OUT) :: hdferr         ! Error code