summaryrefslogtreecommitdiffstats
path: root/fortran/src
diff options
context:
space:
mode:
Diffstat (limited to 'fortran/src')
-rw-r--r--fortran/src/H5Ff.c92
-rw-r--r--fortran/src/H5Fff.F90162
-rw-r--r--fortran/src/H5Sff.F90144
-rw-r--r--fortran/src/H5_f.c3
-rw-r--r--fortran/src/H5_ff.F904
-rw-r--r--fortran/src/H5f90global.F905
-rw-r--r--fortran/src/hdf5_fortrandll.def.in5
7 files changed, 262 insertions, 153 deletions
diff --git a/fortran/src/H5Ff.c b/fortran/src/H5Ff.c
index 9703486..4b56cca 100644
--- a/fortran/src/H5Ff.c
+++ b/fortran/src/H5Ff.c
@@ -189,98 +189,6 @@ h5funmount_c(hid_t_f *loc_id, _fcd dsetname, int_f *namelen)
return ret_value;
}
-/****if* H5Ff/h5fget_create_plist_c
- * NAME
- * h5fget_create_plist_c
- * PURPOSE
- * Call H5Fget_create_plist to get the file creation property list
- * INPUTS
- * file_id - file identifier
- * OUTPUTS
- * prop_id - creation property list identifier
- * RETURNS
- * 0 on success, -1 on failure
- * SOURCE
- */
-int_f
-h5fget_create_plist_c(hid_t_f *file_id, hid_t_f *prop_id)
-/******/
-{
- int ret_value = -1;
- hid_t c_file_id, c_prop_id;
-
- c_file_id = (hid_t)*file_id;
- c_prop_id = H5Fget_create_plist(c_file_id);
-
- if (c_prop_id < 0)
- return ret_value;
- *prop_id = (hid_t_f)c_prop_id;
-
- ret_value = 0;
- return ret_value;
-}
-
-/****if* H5Ff/h5fget_access_plist_c
- * NAME
- * h5fget_access_plist_c
- * PURPOSE
- * Call H5Fget_access_plist to get the file access property list
- * INPUTS
- * file_id - file identifier
- * OUTPUTS
- * access_id - access property list identifier
- * RETURNS
- * 0 on success, -1 on failure
- * SOURCE
- */
-int_f
-h5fget_access_plist_c(hid_t_f *file_id, hid_t_f *access_id)
-/******/
-{
- int ret_value = -1;
- hid_t c_file_id, c_access_id;
-
- c_file_id = (hid_t)*file_id;
- c_access_id = H5Fget_access_plist(c_file_id);
-
- if (c_access_id < 0)
- return ret_value;
- *access_id = (hid_t_f)c_access_id;
-
- ret_value = 0;
- return ret_value;
-}
-
-/****if* H5Ff/h5fget_obj_count_c
- * NAME
- * h5fget_obj_count_c
- * PURPOSE
- * Call H5Fget_obj_count to get number of open objects within a file
- * INPUTS
- * file_id - identifier of the file to be closed
- * obj_type - type of the object
- * RETURNS
- * obj_count - number of objects
- * 0 on success, -1 on failure
- * SOURCE
- */
-
-int_f
-h5fget_obj_count_c(hid_t_f *file_id, int_f *obj_type, size_t_f *obj_count)
-/******/
-{
- int ret_value = 0;
- hid_t c_file_id;
- unsigned c_obj_type;
- ssize_t c_obj_count;
-
- c_file_id = (hid_t)*file_id;
- c_obj_type = (unsigned)*obj_type;
- if ((c_obj_count = H5Fget_obj_count(c_file_id, c_obj_type)) < 0)
- ret_value = -1;
- *obj_count = (size_t_f)c_obj_count;
- return ret_value;
-}
/****if* H5Ff/h5fget_obj_ids_c
* NAME
* h5fget_obj_ids_c
diff --git a/fortran/src/H5Fff.F90 b/fortran/src/H5Fff.F90
index 79aa5a7..fcfde86 100644
--- a/fortran/src/H5Fff.F90
+++ b/fortran/src/H5Fff.F90
@@ -639,19 +639,21 @@ CONTAINS
!!
SUBROUTINE h5fget_create_plist_f(file_id, prop_id, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id
+ INTEGER(HID_T), INTENT(IN) :: file_id
INTEGER(HID_T), INTENT(OUT) :: prop_id
- INTEGER, INTENT(OUT) :: hdferr
+ INTEGER , INTENT(OUT) :: hdferr
INTERFACE
- INTEGER FUNCTION h5fget_create_plist_c(file_id, prop_id) BIND(C,NAME='h5fget_create_plist_c')
+ INTEGER(HID_T) FUNCTION H5Fget_create_plist(file_id) BIND(C,NAME='H5Fget_create_plist')
IMPORT :: HID_T
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id
- INTEGER(HID_T), INTENT(OUT) :: prop_id
- END FUNCTION h5fget_create_plist_c
+ INTEGER(HID_T), VALUE :: file_id
+ END FUNCTION H5Fget_create_plist
END INTERFACE
- hdferr = h5fget_create_plist_c(file_id, prop_id)
+ prop_id = H5Fget_create_plist(file_id)
+
+ hdferr = 0
+ IF(prop_id.LT.0) hdferr = -1
END SUBROUTINE h5fget_create_plist_f
!>
@@ -667,19 +669,21 @@ CONTAINS
!!
SUBROUTINE h5fget_access_plist_f(file_id, access_id, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id
+ INTEGER(HID_T), INTENT(IN) :: file_id
INTEGER(HID_T), INTENT(OUT) :: access_id
INTEGER, INTENT(OUT) :: hdferr
INTERFACE
- INTEGER FUNCTION h5fget_access_plist_c(file_id, access_id) BIND(C,NAME='h5fget_access_plist_c')
+ INTEGER(HID_T) FUNCTION H5Fget_access_plist(file_id) BIND(C,NAME='H5Fget_access_plist')
IMPORT :: HID_T
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id
- INTEGER(HID_T), INTENT(OUT) :: access_id
- END FUNCTION h5fget_access_plist_c
+ INTEGER(HID_T), VALUE :: file_id
+ END FUNCTION H5Fget_access_plist
END INTERFACE
- hdferr = h5fget_access_plist_c(file_id, access_id)
+ access_id = H5Fget_access_plist(file_id)
+
+ hdferr = 0
+ IF(access_id.LT.0) hdferr = -1
END SUBROUTINE h5fget_access_plist_f
@@ -835,37 +839,41 @@ CONTAINS
!>
!! \ingroup FH5F
!!
-!! \brief Gets number of the objects open within a file
+!! \brief Gets number of the objects open within a file.
!!
-!! \param file_id File identifier.
+!! \param file_id File identifier
!! \param obj_type Type of the object; possible values are:
!! \li H5F_OBJ_FILE_F
!! \li H5F_OBJ_DATASET_F
!! \li H5F_OBJ_GROUP_F
!! \li H5F_OBJ_DATATYPE_F
!! \li H5F_OBJ_ALL_F
-!! \param obj_count Number of open objects.
+!! \param obj_count Number of open objects
!! \param hdferr \fortran_error
!!
!! See C API: @ref H5Fget_obj_count()
!!
SUBROUTINE h5fget_obj_count_f(file_id, obj_type, obj_count, hdferr)
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id
- INTEGER, INTENT(IN) :: obj_type
+ INTEGER(HID_T) , INTENT(IN) :: file_id
+ INTEGER , INTENT(IN) :: obj_type
INTEGER(SIZE_T), INTENT(OUT) :: obj_count
- INTEGER, INTENT(OUT) :: hdferr
+ INTEGER , INTENT(OUT) :: hdferr
+
INTERFACE
- INTEGER FUNCTION h5fget_obj_count_c(file_id, obj_type, obj_count) BIND(C,NAME='h5fget_obj_count_c')
+ INTEGER(SIZE_T) FUNCTION H5Fget_obj_count(file_id, obj_type) BIND(C,NAME='H5Fget_obj_count')
+ IMPORT :: C_INT
IMPORT :: HID_T, SIZE_T
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id
- INTEGER, INTENT(IN) :: obj_type
- INTEGER(SIZE_T), INTENT(OUT) :: obj_count
- END FUNCTION h5fget_obj_count_c
+ INTEGER(HID_T), VALUE :: file_id
+ INTEGER(C_INT), VALUE :: obj_type
+ END FUNCTION H5Fget_obj_count
END INTERFACE
- hdferr = h5fget_obj_count_c(file_id, obj_type, obj_count)
+ obj_count = H5Fget_obj_count(file_id, INT(obj_type, C_INT))
+
+ hdferr = 0
+ IF(obj_count.LT.0) hdferr = -1
! Don't include objects created by H5open in the H5F_OBJ_ALL_F count
IF(file_id.EQ.INT(H5F_OBJ_ALL_F,HID_T))THEN
@@ -877,47 +885,51 @@ CONTAINS
!>
!! \ingroup FH5F
!!
-!! \brief Get list of open objects identifiers within a file
+!! \brief Get list of open objects identifiers within a file.
!!
-!! \param file_id File identifier.
+!! \param file_id File identifier
!! \param obj_type Type of the object; possible values are:
!! \li H5F_OBJ_FILE_F
!! \li H5F_OBJ_DATASET_F
!! \li H5F_OBJ_GROUP_F
!! \li H5F_OBJ_DATATYPE_F
!! \li H5F_OBJ_ALL_F
-!! \param max_objs Maximum # of objects to retrieve.
-!! \param obj_ids Array of open object identifiers.
+!! \param max_objs Maximum # of objects to retrieve
+!! \param obj_ids Array of open object identifiers
!! \param hdferr \fortran_error
-!! \param num_objs Number of open objects.
+!! \param num_objs Number of open objects
!!
!! See C API: @ref H5Fget_obj_ids()
!!
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
- INTEGER, INTENT(IN) :: obj_type
+ INTEGER(HID_T) , INTENT(IN) :: file_id
+ INTEGER , INTENT(IN) :: obj_type
INTEGER(SIZE_T), INTENT(IN) :: max_objs
- INTEGER(HID_T), DIMENSION(*), INTENT(INOUT) :: obj_ids
- INTEGER, INTENT(OUT) :: hdferr
+ INTEGER(HID_T) , DIMENSION(*), INTENT(INOUT) :: obj_ids
+ INTEGER , INTENT(OUT) :: hdferr
INTEGER(SIZE_T), INTENT(OUT), OPTIONAL :: num_objs
INTEGER(SIZE_T) :: c_num_objs ! Number of open objects of the specified type
INTERFACE
- INTEGER FUNCTION h5fget_obj_ids_c(file_id, obj_type, max_objs, obj_ids, c_num_objs) &
- BIND(C,NAME='h5fget_obj_ids_c')
+ INTEGER(SIZE_T) FUNCTION H5Fget_obj_ids(file_id, obj_type, max_objs, obj_ids) &
+ BIND(C,NAME='H5Fget_obj_ids')
+ IMPORT :: C_INT
IMPORT :: HID_T, SIZE_T
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: file_id
- INTEGER, INTENT(IN) :: obj_type
- INTEGER(SIZE_T), INTENT(IN) :: max_objs
- INTEGER(HID_T), DIMENSION(*), INTENT(INOUT) :: obj_ids
- INTEGER(SIZE_T), INTENT(OUT) :: c_num_objs
- END FUNCTION h5fget_obj_ids_c
+ INTEGER(HID_T) , VALUE :: file_id
+ INTEGER(C_INT) , VALUE :: obj_type
+ INTEGER(SIZE_T), VALUE :: max_objs
+ INTEGER(HID_T) , DIMENSION(*) :: obj_ids
+ END FUNCTION H5Fget_obj_ids
END INTERFACE
- hdferr = h5fget_obj_ids_c(file_id, obj_type, max_objs, obj_ids, c_num_objs)
+ c_num_objs = H5Fget_obj_ids(file_id, INT(obj_type, C_INT), max_objs, obj_ids)
+
+ hdferr = 0
+ IF(c_num_objs.LT.0) hdferr = -1
+
IF (PRESENT(num_objs)) num_objs= c_num_objs
END SUBROUTINE h5fget_obj_ids_f
@@ -926,8 +938,8 @@ CONTAINS
!!
!! \brief Get amount of free space within a file.
!!
-!! \param file_id File identifier.
-!! \param free_space Amount of free space in file.
+!! \param file_id File identifier
+!! \param free_space Amount of free space in file
!! \param hdferr \fortran_error
!!
!! See C API: @ref H5Fget_freespace()
@@ -955,9 +967,9 @@ CONTAINS
!!
!! \brief Gets the name of the file from the object identifier.
!!
-!! \param obj_id Object identifier.
-!! \param buf Buffer to store the read name.
-!! \param size Actual size of the name.
+!! \param obj_id Object identifier
+!! \param buf Buffer to store the read name
+!! \param size Actual size of the name
!! \param hdferr \fortran_error
!!
!! See C API: @ref H5Fget_name()
@@ -990,8 +1002,8 @@ CONTAINS
!!
!! \brief Retrieves the file size of the HDF5 file.
!!
-!! \param file_id File identifier.
-!! \param size File size.
+!! \param file_id File identifier
+!! \param size File size
!! \param hdferr \fortran_error
!!
!! See C API: @ref H5Fget_filesize()
@@ -1018,8 +1030,8 @@ CONTAINS
!!
!! \brief Retrieves the file number of the HDF5 file.
!!
-!! \param file_id File identifier.
-!! \param fileno File number.
+!! \param file_id File identifier
+!! \param fileno File number
!! \param hdferr \fortran_error
!!
!! See C API: @ref H5Fget_fileno()
@@ -1046,11 +1058,11 @@ CONTAINS
!!
!! \brief Retrieves a copy of the image of an existing, open file.
!!
-!! \param file_id Target file identifier.
-!! \param buf_ptr Pointer to the buffer into which the image of the HDF5 file is to be copied.
-!! \param buf_len Size of the supplied buffer.
+!! \param file_id Target file identifier
+!! \param buf_ptr Pointer to the buffer into which the image of the HDF5 file is to be copied
+!! \param buf_len Size of the supplied buffer
!! \param hdferr \fortran_error
-!! \param buf_size Returns the size in bytes of the buffer required to store the file image, no data will be copied.
+!! \param buf_size Returns the size in bytes of the buffer required to store the file image, no data will be copied
!!
!! See C API: @ref H5Fget_file_image()
!!
@@ -1094,8 +1106,8 @@ CONTAINS
!! \brief Gets the value of the "minimize dataset headers" value which creates
!! smaller dataset object headers when its set and no attributes are present.
!!
-!! \param file_id Target file identifier.
-!! \param minimize Value of the setting.
+!! \param file_id Target file identifier
+!! \param minimize Value of the setting
!! \param hdferr \fortran_error
!!
!! See C API: @ref H5Fget_dset_no_attrs_hint()
@@ -1129,8 +1141,8 @@ CONTAINS
!! \brief Sets the value of the "minimize dataset headers" value which creates
!! smaller dataset object headers when its set and no attributes are present.
!!
-!! \param file_id Target file identifier.
-!! \param minimize Value of the setting.
+!! \param file_id Target file identifier
+!! \param minimize Value of the setting
!! \param hdferr \fortran_error
!!
!! See C API: @ref H5Fset_dset_no_attrs_hint()
@@ -1192,5 +1204,35 @@ CONTAINS
END SUBROUTINE H5Fget_info_f
+!>
+!! \ingroup FH5F
+!!
+!! \brief Determines the read/write or read-only status of a file.
+!!
+!! \param file_id File identifier
+!! \param intent Access mode flag as originally passed with H5Fopen_f()
+!! \param hdferr \fortran_error
+!!
+!! See C API: @ref H5Fget_intent()
+!!
+ SUBROUTINE h5fget_intent_f(file_id, intent, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: file_id
+ INTEGER, INTENT(OUT) :: intent
+ INTEGER, INTENT(OUT) :: hdferr
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Fget_intent(file_id, intent) BIND(C,NAME='H5Fget_intent')
+ IMPORT :: C_INT
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), VALUE :: file_id
+ INTEGER(C_INT) :: intent
+ END FUNCTION H5Fget_intent
+ END INTERFACE
+
+ hdferr = INT(H5Fget_intent(file_id, intent))
+
+ END SUBROUTINE h5fget_intent_f
+
END MODULE H5F
diff --git a/fortran/src/H5Sff.F90 b/fortran/src/H5Sff.F90
index e734c03..25b6657 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), TARGET :: nseq
+ INTEGER(SIZE_T), INTENT(OUT), TARGET :: nbytes
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: off
+ INTEGER(HSIZE_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(HSIZE_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_close')
+ 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
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index b1dc7db..e6f7b6d 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -798,6 +798,9 @@ h5init_flags_c(int_f *h5d_flags, size_t_f *h5d_size_flags, int_f *h5e_flags, hid
h5s_flags[16] = (int_f)H5S_SEL_HYPERSLABS;
h5s_flags[17] = (int_f)H5S_SEL_ALL;
+ h5s_flags[18] = (int_f)H5S_SEL_ITER_GET_SEQ_LIST_SORTED;
+ h5s_flags[19] = (int_f)H5S_SEL_ITER_SHARE_WITH_DATASPACE;
+
/*
* H5T flags
*/
diff --git a/fortran/src/H5_ff.F90 b/fortran/src/H5_ff.F90
index fe6337a..e83768a 100644
--- a/fortran/src/H5_ff.F90
+++ b/fortran/src/H5_ff.F90
@@ -135,7 +135,7 @@ MODULE H5LIB
!
! H5S flags declaration
!
- INTEGER, PARAMETER :: H5S_FLAGS_LEN = 18
+ INTEGER, PARAMETER :: H5S_FLAGS_LEN = 20
INTEGER, DIMENSION(1:H5S_FLAGS_LEN) :: H5S_flags
INTEGER, PARAMETER :: H5S_HSIZE_FLAGS_LEN = 1
INTEGER(HSIZE_T), DIMENSION(1:H5S_HSIZE_FLAGS_LEN) :: H5S_hsize_flags
@@ -656,6 +656,8 @@ CONTAINS
H5S_SEL_POINTS_F = H5S_flags(16)
H5S_SEL_HYPERSLABS_F = H5S_flags(17)
H5S_SEL_ALL_F = H5S_flags(18)
+ H5S_SEL_ITER_GET_SEQ_LIST_SORTED_F = H5S_flags(19)
+ H5S_SEL_ITER_SHARE_WITH_DATASPACE_F = H5S_flags(20)
!
! H5T flags declaration
!
diff --git a/fortran/src/H5f90global.F90 b/fortran/src/H5f90global.F90
index fb25f7e..5b4fc64 100644
--- a/fortran/src/H5f90global.F90
+++ b/fortran/src/H5f90global.F90
@@ -793,6 +793,8 @@ MODULE H5GLOBAL
!DEC$ATTRIBUTES DLLEXPORT :: H5S_SEL_POINTS_F
!DEC$ATTRIBUTES DLLEXPORT :: H5S_SEL_HYPERSLABS_F
!DEC$ATTRIBUTES DLLEXPORT :: H5S_SEL_ALL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5S_SEL_ITER_GET_SEQ_LIST_SORTED_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5S_SEL_ITER_SHARE_WITH_DATASPACE_F
!DEC$endif
!> \addtogroup FH5S
!> @{
@@ -822,6 +824,9 @@ MODULE H5GLOBAL
INTEGER :: H5S_SEL_POINTS_F !< H5S_SEL_POINTS
INTEGER :: H5S_SEL_HYPERSLABS_F !< H5S_SEL_HYPERSLABS
INTEGER :: H5S_SEL_ALL_F !< H5S_SEL_ALL
+
+ INTEGER :: H5S_SEL_ITER_GET_SEQ_LIST_SORTED_F !< H5S_SEL_ITER_GET_SEQ_LIST_SORTED
+ INTEGER :: H5S_SEL_ITER_SHARE_WITH_DATASPACE_F !< H5S_SEL_ITER_SHARE_WITH_DATASPACE
!> @}
!
! H5T flags declaration
diff --git a/fortran/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in
index 119e140..ccb770a 100644
--- a/fortran/src/hdf5_fortrandll.def.in
+++ b/fortran/src/hdf5_fortrandll.def.in
@@ -147,6 +147,7 @@ H5F_mp_H5FGET_FILE_IMAGE_F
H5F_mp_H5FGET_DSET_NO_ATTRS_HINT_F
H5F_mp_H5FSET_DSET_NO_ATTRS_HINT_F
H5F_mp_H5FGET_INFO_F
+H5F_mp_H5FGET_INTENT_F
; H5G
H5G_mp_H5GOPEN_F
H5G_mp_H5GOPEN_ASYNC_F
@@ -483,6 +484,10 @@ H5S_mp_H5SENCODE_F
H5S_mp_H5SEXTENT_EQUAL_F
H5S_mp_H5SGET_REGULAR_HYPERSLAB_F
H5S_mp_H5SIS_REGULAR_HYPERSLAB_F
+H5S_mp_H5SSEL_ITER_CREATE_F
+H5S_mp_H5SSEL_ITER_GET_SEQ_LIST_F
+H5S_mp_H5SSEL_ITER_CLOSE_F
+H5S_mp_H5SSEL_ITER_RESET_F
; H5T
H5T_mp_H5TOPEN_F
H5T_mp_H5TCOMMIT_F