summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5Sff.F90
diff options
context:
space:
mode:
Diffstat (limited to 'fortran/src/H5Sff.F90')
-rw-r--r--fortran/src/H5Sff.F90144
1 files changed, 144 insertions, 0 deletions
diff --git a/fortran/src/H5Sff.F90 b/fortran/src/H5Sff.F90
index e734c03..5f2f1d2 100644
--- a/fortran/src/H5Sff.F90
+++ b/fortran/src/H5Sff.F90
@@ -1445,4 +1445,148 @@ CONTAINS
END SUBROUTINE H5Sis_regular_hyperslab_f
+!>
+!! \ingroup FH5S
+!!
+!! \brief Closes a dataspace selection iterator.
+!!
+!! \param sel_iter_id Dataspace selection iterator identifier
+!! \param hdferr \fortran_error
+!!
+!! See C API: @ref H5Ssel_iter_close()
+!!
+ SUBROUTINE h5ssel_iter_close_f(sel_iter_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: sel_iter_id
+ INTEGER, INTENT(OUT) :: hdferr
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Ssel_iter_close(sel_iter_id) &
+ BIND(C,NAME='H5Ssel_iter_close')
+ IMPORT :: HID_T, C_INT
+ IMPLICIT NONE
+ INTEGER(HID_T), VALUE :: sel_iter_id
+ END FUNCTION H5Ssel_iter_close
+ END INTERFACE
+
+ hdferr = INT(h5ssel_iter_close(sel_iter_id), C_INT)
+
+ END SUBROUTINE h5ssel_iter_close_f
+
+!>
+!! \ingroup FH5S
+!!
+!! \brief Creates a dataspace selection iterator for a dataspace's selection.
+!!
+!! \param space_id Dataspace identifier
+!! \param elmt_size Size of element in the selection
+!! \param flags Selection iterator flag, valid values are:
+!! \li H5S_SEL_ITER_GET_SEQ_LIST_SORTED_F, ref. @ref H5S_SEL_ITER_GET_SEQ_LIST_SORTED
+!! \li H5S_SEL_ITER_SHARE_WITH_DATASPACE_F, ref. @ref H5S_SEL_ITER_SHARE_WITH_DATASPACE
+!! \param ds_iter_id Dataspace selection iterator identifier
+!! \param hdferr \fortran_error
+!!
+!! See C API: @ref H5Ssel_iter_create()
+!!
+ SUBROUTINE h5ssel_iter_create_f(space_id, elmt_size, flags, ds_iter_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: space_id
+ INTEGER(SIZE_T), INTENT(IN) :: elmt_size
+ INTEGER , INTENT(IN) :: flags
+ INTEGER(HID_T) , INTENT(OUT) :: ds_iter_id
+ INTEGER , INTENT(OUT) :: hdferr
+ INTERFACE
+ INTEGER(HID_T) FUNCTION H5Ssel_iter_create(space_id, elmt_size, flags) &
+ BIND(C,NAME='H5Ssel_iter_create')
+ IMPORT :: HID_T, C_INT, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T) , VALUE :: space_id
+ INTEGER(SIZE_T), VALUE :: elmt_size
+ INTEGER(C_INT) , VALUE :: flags
+ END FUNCTION H5Ssel_iter_create
+ END INTERFACE
+
+ ds_iter_id = H5Ssel_iter_create(space_id, elmt_size, INT(flags, C_INT))
+
+ hdferr = 0
+ IF(ds_iter_id.LT.0) hdferr = -1
+
+ END SUBROUTINE h5ssel_iter_create_f
+
+!>
+!! \ingroup FH5S
+!!
+!! \brief Retrieves a list of offset / length sequences for the elements in an iterator.
+!!
+!! \param sel_iter_id Dataspace selection iterator identifier
+!! \param maxseq Maximum number of sequences to retrieve
+!! \param maxbytes Maximum number of bytes to retrieve in sequences
+!! \param nseq Number of sequences retrieved
+!! \param nbytes Number of bytes retrieved, in all sequences
+!! \param off Array of sequence offsets
+!! \param len Array of sequence lengths
+!! \param hdferr \fortran_error
+!!
+!! See C API: @ref H5Ssel_iter_get_seq_list()
+!!
+ SUBROUTINE h5ssel_iter_get_seq_list_f(sel_iter_id, maxseq, maxbytes, nseq, nbytes, off, len, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: sel_iter_id
+ INTEGER(SIZE_T), INTENT(IN) :: maxseq
+ INTEGER(SIZE_T), INTENT(IN) :: maxbytes
+ INTEGER(SIZE_T), INTENT(OUT) :: nseq
+ INTEGER(SIZE_T), INTENT(OUT) :: nbytes
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: off
+ INTEGER(SIZE_T), DIMENSION(*), INTENT(OUT) :: len
+ INTEGER, INTENT(OUT) :: hdferr
+
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Ssel_iter_get_seq_list(sel_iter_id, maxseq, maxbytes, nseq, nbytes, off, len) &
+ BIND(C,NAME='H5Ssel_iter_get_seq_list')
+ IMPORT :: HID_T, C_INT, SIZE_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T) , VALUE :: sel_iter_id
+ INTEGER(SIZE_T), VALUE :: maxseq
+ INTEGER(SIZE_T), VALUE :: maxbytes
+ INTEGER(SIZE_T) :: nseq
+ INTEGER(SIZE_T) :: nbytes
+ INTEGER(HSIZE_T), DIMENSION(*) :: off
+ INTEGER(SIZE_T), DIMENSION(*) :: len
+ END FUNCTION H5Ssel_iter_get_seq_list
+ END INTERFACE
+
+ hdferr = INT(H5Ssel_iter_get_seq_list(sel_iter_id, maxseq, maxbytes, nseq, nbytes, off, len), C_INT)
+
+ END SUBROUTINE h5ssel_iter_get_seq_list_f
+
+!>
+!! \ingroup FH5S
+!!
+!! \brief Resets a dataspace selection iterator back to an initial state.
+!!
+!! \param sel_iter_id Identifier of the dataspace selection iterator to reset
+!! \param space_id Identifier of the dataspace with selection to iterate over
+!! \param hdferr \fortran_error
+!!
+!! See C API: @ref H5Ssel_iter_reset()
+!!
+ SUBROUTINE h5ssel_iter_reset_f(sel_iter_id, space_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: sel_iter_id
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER, INTENT(OUT) :: hdferr
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Ssel_iter_reset(sel_iter_id, space_id) &
+ BIND(C,NAME='H5Ssel_iter_reset')
+ IMPORT :: HID_T, C_INT
+ IMPLICIT NONE
+ INTEGER(HID_T), VALUE :: sel_iter_id
+ INTEGER(HID_T), VALUE :: space_id
+ END FUNCTION H5Ssel_iter_reset
+ END INTERFACE
+
+ hdferr = INT(h5ssel_iter_reset(sel_iter_id, space_id), C_INT)
+
+ END SUBROUTINE h5ssel_iter_reset_f
+
+
END MODULE H5S