diff options
author | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2024-01-23 15:59:10 (GMT) |
---|---|---|
committer | Larry Knox <lrknox@hdfgroup.org> | 2024-02-14 21:25:25 (GMT) |
commit | 1e2dd83542892774225f877793e6cee1511d9e64 (patch) | |
tree | 4ab0d6cf42921efc41435de61698c055a2913e02 /fortran/src | |
parent | 3fbe73eb192cbe431775e0dbf6a30a37bfcd87bb (diff) | |
download | hdf5-1e2dd83542892774225f877793e6cee1511d9e64.zip hdf5-1e2dd83542892774225f877793e6cee1511d9e64.tar.gz hdf5-1e2dd83542892774225f877793e6cee1511d9e64.tar.bz2 |
Fortran API work. (#3941)
* - Added Fortran APIs:
H5FGET_INTENT_F, H5SSELECT_ITER_CREATE_F, H5SSEL_ITER_GET_SEQ_LIST_F,
H5SSELECT_ITER_CLOSE_F, H5S_mp_H5SSELECT_ITER_RESET_F
- Added Fortran Parameters:
H5S_SEL_ITER_GET_SEQ_LIST_SORTED_F, H5S_SEL_ITER_SHARE_WITH_DATASPACE_F
- Added tests for new APIs
- Removed H5F C wrapper stubs
- Documentation misc. cleanup.
Diffstat (limited to 'fortran/src')
-rw-r--r-- | fortran/src/H5Ff.c | 92 | ||||
-rw-r--r-- | fortran/src/H5Fff.F90 | 162 | ||||
-rw-r--r-- | fortran/src/H5Sff.F90 | 144 | ||||
-rw-r--r-- | fortran/src/H5_f.c | 3 | ||||
-rw-r--r-- | fortran/src/H5_ff.F90 | 4 | ||||
-rw-r--r-- | fortran/src/H5f90global.F90 | 5 | ||||
-rw-r--r-- | fortran/src/hdf5_fortrandll.def.in | 5 |
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 |