235 lines
8.1 KiB
Fortran
235 lines
8.1 KiB
Fortran
! Declaration of subroutines for Fortran Bindings
|
|
|
|
!> \defgroup h5block_f90_api H5Block F90 API
|
|
|
|
!> \ingroup h5block_f90_api
|
|
!! \defgroup h5blockf_model Setting up the Data Model
|
|
!<
|
|
|
|
!> \ingroup h5block_f90_api
|
|
!! \defgroup h5blockf_data Reading and Writing Datasets
|
|
!<
|
|
|
|
!> \ingroup h5block_f90_api
|
|
!! \defgroup h5blockf_attrib Reading and Writing Attributes
|
|
!<
|
|
|
|
|
|
!!!!!!!! Setting up the Data Model !!!!!!!!
|
|
|
|
!> \ingroup h5blockf_model
|
|
!! See \ref H5BlockDefine3DFieldLayout
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_define3dlayout ( filehandle, i_start, i_end, j_start, j_end, k_start, k_end )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
INTEGER*8, INTENT(IN) :: i_start
|
|
INTEGER*8, INTENT(IN) :: i_end
|
|
INTEGER*8, INTENT(IN) :: j_start
|
|
INTEGER*8, INTENT(IN) :: j_end
|
|
INTEGER*8, INTENT(IN) :: k_start
|
|
INTEGER*8, INTENT(IN) :: k_end
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_model
|
|
!! See \ref H5BlockDefine3DChunkDims
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_define3dchunkdims ( filehandle, i, j, k )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
INTEGER*8, INTENT(IN) :: i
|
|
INTEGER*8, INTENT(IN) :: j
|
|
INTEGER*8, INTENT(IN) :: k
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_model
|
|
!! See \ref H5Block3dGetPartitionOfProc
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_get_partition_of_proc ( filehandle, proc, i_start, i_end, j_start, j_end, k_start, k_end )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
INTEGER*8, INTENT(OUT) :: proc
|
|
INTEGER*8, INTENT(OUT) :: i_start
|
|
INTEGER*8, INTENT(OUT) :: i_end
|
|
INTEGER*8, INTENT(OUT) :: j_start
|
|
INTEGER*8, INTENT(OUT) :: j_end
|
|
INTEGER*8, INTENT(OUT) :: k_start
|
|
INTEGER*8, INTENT(OUT) :: k_end
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_model
|
|
!! See \ref H5Block3dGetReducedPartitionOfProc
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_get_reduced_partition_of_proc ( filehandle, proc, i_start, i_end, j_start, j_end, k_start, k_end )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
INTEGER*8, INTENT(OUT) :: proc
|
|
INTEGER*8, INTENT(OUT) :: i_start
|
|
INTEGER*8, INTENT(OUT) :: i_end
|
|
INTEGER*8, INTENT(OUT) :: j_start
|
|
INTEGER*8, INTENT(OUT) :: j_end
|
|
INTEGER*8, INTENT(OUT) :: k_start
|
|
INTEGER*8, INTENT(OUT) :: k_end
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_model
|
|
!! See \ref H5Block3dGetProcOf
|
|
!! \return rank of processor error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_get_proc_of ( filehandle, i, j, k )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
INTEGER*8, INTENT(IN) :: i
|
|
INTEGER*8, INTENT(IN) :: j
|
|
INTEGER*8, INTENT(IN) :: k
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_model
|
|
!! See \ref H5BlockGetNumFields
|
|
!! \return number of fields or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_getnumfields ( filehandle )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_model
|
|
!! See \ref H5BlockGetFieldInfo
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_getfieldinfo ( filehandle, idx, field_name, grid_rank, grid_dims, field_dims )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
INTEGER*8, INTENT(IN) :: idx
|
|
CHARACTER(LEN=*), INTENT(OUT) :: field_name
|
|
INTEGER*8, INTENT(OUT) :: grid_rank
|
|
INTEGER*8, INTENT(OUT) :: grid_dims(*)
|
|
INTEGER*8, INTENT(OUT) :: field_dims
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_model
|
|
!! See \ref H5BlockHasFieldData
|
|
!! \return 0 if false, 1 if true, or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_has_fielddata ( filehandle )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
END FUNCTION
|
|
|
|
|
|
!!!!!!!! Reading and Writing Attributes !!!!!!!!
|
|
|
|
!> \ingroup h5blockf_attrib
|
|
!! See \ref H5BlockWriteFieldAttribString
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_writefieldattrib_string ( filehandle, field_name, attrib_name, attrib_value )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field
|
|
CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! The name of the attribute
|
|
CHARACTER(LEN=*), INTENT(IN) :: attrib_value ! The array of data to write into the attribute
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_attrib
|
|
!! See \ref H5BlockGetNumFieldAttribs
|
|
!! \return number of attributes or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_getnfieldattribs ( filehandle, field_name )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_attrib
|
|
!! See \ref H5BlockGetFieldAttribInfo
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_getfieldattribinfo ( filehandle, field_name, idx, attrib_name, attrib_nelem)
|
|
INTEGER*8,INTENT(IN) :: filehandle
|
|
CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field
|
|
INTEGER*8,INTENT(IN) :: idx ! index of the attribute being queried
|
|
CHARACTER(LEN=*), INTENT(OUT):: attrib_name ! The name of the attribute
|
|
INTEGER*8,INTENT(OUT):: attrib_nelem ! Number of elements in the attrib array
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_attrib
|
|
!! Read the attribute \c attrib_name from the field \c field_name at the
|
|
!! current timestep, and store the int64 value in \c attrib_value.
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_readfieldattrib_i8 ( filehandle, field_name, attrib_name, attrib_value )
|
|
INTEGER*8,INTENT(IN) :: filehandle
|
|
CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field
|
|
CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read
|
|
INTEGER*8,INTENT(OUT):: attrib_value(*)! the attribute data will be read into this array
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_attrib
|
|
!! Read the attribute \c attrib_name from the field \c field_name at the
|
|
!! current timestep, and store the float64 value in \c attrib_value.
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_readfieldattrib_r8 ( filehandle, field_name, attrib_name, attrib_value )
|
|
INTEGER*8,INTENT(IN) :: filehandle
|
|
CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field
|
|
CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read
|
|
REAL*8, INTENT(OUT):: attrib_value(*)! the attribute data will be read into this array
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_attrib
|
|
!! Read the attribute \c attrib_name from the field \c field_name at the
|
|
!! current timestep, and store the string value in \c attrib_value.
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_readfieldattrib_string ( filehandle, field_name, attrib_name, attrib_value )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
CHARACTER(LEN=*), INTENT(IN) :: field_name ! The name of the field
|
|
CHARACTER(LEN=*), INTENT(IN) :: attrib_name ! name of the attribute to read
|
|
CHARACTER(LEN=*), INTENT(IN) :: attrib_value ! The array of data to write into the attribute
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_attrib
|
|
!! See \ref H5Block3dGetFieldSpacing
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_3d_get_field_spacing ( filehandle, name, x, y, z )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
CHARACTER(LEN=*), INTENT(IN) :: name
|
|
REAL*8, INTENT(OUT) :: x
|
|
REAL*8, INTENT(OUT) :: y
|
|
REAL*8, INTENT(OUT) :: z
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_attrib
|
|
!! See \ref H5Block3dSetFieldSpacing
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_3d_set_field_spacing ( filehandle, name, x, y, z )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
CHARACTER(LEN=*), INTENT(IN) :: name
|
|
REAL*8, INTENT(IN) :: x
|
|
REAL*8, INTENT(IN) :: y
|
|
REAL*8, INTENT(IN) :: z
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_attrib
|
|
!! See \ref H5Block3dGetFieldOrigin
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_3d_get_field_origin ( filehandle, name, x, y, z )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
CHARACTER(LEN=*), INTENT(IN) :: name
|
|
REAL*8, INTENT(OUT) :: x
|
|
REAL*8, INTENT(OUT) :: y
|
|
REAL*8, INTENT(OUT) :: z
|
|
END FUNCTION
|
|
|
|
!> \ingroup h5blockf_attrib
|
|
!! See \ref H5Block3dSetFieldOrigin
|
|
!! \return 0 on success or error code
|
|
!<
|
|
INTEGER*8 FUNCTION h5bl_3d_set_field_origin ( filehandle, name, x, y, z )
|
|
INTEGER*8, INTENT(IN) :: filehandle
|
|
CHARACTER(LEN=*), INTENT(IN) :: name
|
|
REAL*8, INTENT(IN) :: x
|
|
REAL*8, INTENT(IN) :: y
|
|
REAL*8, INTENT(IN) :: z
|
|
END FUNCTION
|
|
|
|
|