summaryrefslogtreecommitdiffstats
path: root/fortran/src
diff options
context:
space:
mode:
authorDana Robinson <43805+derobins@users.noreply.github.com>2023-05-02 05:25:48 (GMT)
committerGitHub <noreply@github.com>2023-05-02 05:25:48 (GMT)
commit6eb021b68a8b46bbc89844713f014e6ba729ca7d (patch)
tree25a971cb952841ac796db4f72a4be850ac2ce437 /fortran/src
parentda46fdbf50984636aeac936386068939a3760fe4 (diff)
downloadhdf5-6eb021b68a8b46bbc89844713f014e6ba729ca7d.zip
hdf5-6eb021b68a8b46bbc89844713f014e6ba729ca7d.tar.gz
hdf5-6eb021b68a8b46bbc89844713f014e6ba729ca7d.tar.bz2
Sync with develop (#2871)
Diffstat (limited to 'fortran/src')
-rw-r--r--fortran/src/H5Af.c6
-rw-r--r--fortran/src/H5Lf.c2
-rw-r--r--fortran/src/H5Pff.F90134
-rw-r--r--fortran/src/H5Sf.c4
-rw-r--r--fortran/src/H5Tf.c2
-rw-r--r--fortran/src/H5_f.c3
-rw-r--r--fortran/src/H5_ff.F9063
-rw-r--r--fortran/src/H5f90global.F906
-rw-r--r--fortran/src/hdf5_fortrandll.def.in4
9 files changed, 187 insertions, 37 deletions
diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c
index ba3b62d..0fdd8fd 100644
--- a/fortran/src/H5Af.c
+++ b/fortran/src/H5Af.c
@@ -359,7 +359,7 @@ done:
* loc_id - Object identifier
* OUTPUTS
*
- * corder_valid - Indicates whether the the creation order data is valid for this attribute
+ * corder_valid - Indicates whether the creation order data is valid for this attribute
* corder - Is a positive integer containing the creation order of the attribute
* cset - Indicates the character set used for the attribute’s name
* data_size - indicates the size, in the number of characters, of the attribute
@@ -427,7 +427,7 @@ done:
* lapl_id - Link access property list
* OUTPUTS
*
- * corder_valid - Indicates whether the the creation order data is valid for this attribute
+ * corder_valid - Indicates whether the creation order data is valid for this attribute
* corder - Is a positive integer containing the creation order of the attribute
* cset - Indicates the character set used for the attribute’s name
* data_size - indicates the size, in the number of characters, of the attribute
@@ -493,7 +493,7 @@ done:
* lapl_id - Link access property list
* OUTPUTS
*
- * corder_valid - Indicates whether the the creation order data is valid for this attribute
+ * corder_valid - Indicates whether the creation order data is valid for this attribute
* corder - Is a positive integer containing the creation order of the attribute
* cset - Indicates the character set used for the attribute’s name
* data_size - indicates the size, in the number of characters, of the attribute
diff --git a/fortran/src/H5Lf.c b/fortran/src/H5Lf.c
index 63bed99..c7ce511 100644
--- a/fortran/src/H5Lf.c
+++ b/fortran/src/H5Lf.c
@@ -232,7 +232,7 @@ done:
* lapl_id - Link access property list
* OUTPUTS
*
- * corder_valid - Indicates whether the the creation order data is valid for this attribute
+ * corder_valid - Indicates whether the creation order data is valid for this attribute
* corder - Is a positive integer containing the creation order of the attribute
* cset - Indicates the character set used for the attribute’s name
* data_size - indicates the size, in the number of characters, of the attribute
diff --git a/fortran/src/H5Pff.F90 b/fortran/src/H5Pff.F90
index 75cd323..49917dd 100644
--- a/fortran/src/H5Pff.F90
+++ b/fortran/src/H5Pff.F90
@@ -609,6 +609,140 @@ CONTAINS
!>
!! \ingroup FH5P
!!
+!! \brief Sets the selection I/O mode
+!!
+!! \param plist_id \fortran_plist_id
+!! \param selection_io_mode The selection I/O mode
+!! \param hdferr \fortran_error
+!!
+!! See C API: @ref H5Pset_selection_io()
+!!
+ SUBROUTINE h5pset_selection_io_f(plist_id, selection_io_mode, hdferr)
+
+ IMPLICIT NONE
+
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(IN) :: selection_io_mode
+ INTEGER, INTENT(OUT) :: hdferr
+
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Pset_selection_io(plist_id, selection_io_mode) BIND(C, NAME='H5Pset_selection_io')
+ IMPORT :: HID_T, C_INT
+ IMPLICIT NONE
+ INTEGER(HID_T), VALUE :: plist_id
+ INTEGER(C_INT), VALUE :: selection_io_mode
+ END FUNCTION H5Pset_selection_io
+ END INTERFACE
+
+ hdferr = INT(H5Pset_selection_io(plist_id, INT(selection_io_mode, C_INT)))
+
+ END SUBROUTINE h5pset_selection_io_f
+
+!>
+!! \ingroup FH5P
+!!
+!! \brief Retrieves the selection I/O mode
+!!
+!! \param plist_id \fortran_plist_id
+!! \param selection_io_mode The selection I/O mode
+!! \param hdferr \fortran_error
+!!
+!! See C API: @ref H5Pget_selection_io()
+!!
+ SUBROUTINE h5pget_selection_io_f(plist_id, selection_io_mode, hdferr)
+
+ IMPLICIT NONE
+
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(OUT) :: selection_io_mode
+ INTEGER, INTENT(OUT) :: hdferr
+
+ INTEGER(C_INT) :: c_selection_io_mode
+
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Pget_selection_io(plist_id, selection_io_mode) BIND(C, NAME='H5Pget_selection_io')
+ IMPORT :: HID_T, C_INT
+ IMPLICIT NONE
+ INTEGER(HID_T), VALUE :: plist_id
+ INTEGER(C_INT) :: selection_io_mode
+ END FUNCTION H5Pget_selection_io
+ END INTERFACE
+
+ hdferr = INT(H5Pget_selection_io(plist_id, c_selection_io_mode))
+ selection_io_mode = INT(c_selection_io_mode)
+
+ END SUBROUTINE h5pget_selection_io_f
+
+!>
+!! \ingroup FH5P
+!!
+!! \brief Allows the library to modify the contents of the write buffer
+!!
+!! \param plist_id \fortran_plist_id
+!! \param modify_write_buf Whether the library can modify the contents of the write buffer
+!! \param hdferr \fortran_error
+!!
+!! See C API: @ref H5Pset_modify_write_buf()
+!!
+ SUBROUTINE h5pset_modify_write_buf_f(plist_id, modify_write_buf, hdferr)
+
+ IMPLICIT NONE
+
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ LOGICAL, INTENT(IN) :: modify_write_buf
+ INTEGER, INTENT(OUT) :: hdferr
+
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Pset_modify_write_buf(plist_id, modify_write_buf) BIND(C, NAME='H5Pset_modify_write_buf')
+ IMPORT :: HID_T, C_INT, C_BOOL
+ IMPLICIT NONE
+ INTEGER(HID_T), VALUE :: plist_id
+ LOGICAL(C_BOOL), VALUE :: modify_write_buf
+ END FUNCTION H5Pset_modify_write_buf
+ END INTERFACE
+
+ hdferr = INT(H5Pset_modify_write_buf(plist_id, LOGICAL(modify_write_buf, C_BOOL)))
+
+ END SUBROUTINE h5pset_modify_write_buf_f
+
+!>
+!! \ingroup FH5P
+!!
+!! \brief Retrieves the "modify write buffer" property
+!!
+!! \param plist_id \fortran_plist_id
+!! \param modify_write_buf Whether the library can modify the contents of the write buffer
+!! \param hdferr \fortran_error
+!!
+!! See C API: @ref H5Pget_modify_write_buf()
+!!
+ SUBROUTINE h5pget_modify_write_buf_f(plist_id, modify_write_buf, hdferr)
+
+ IMPLICIT NONE
+
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ LOGICAL, INTENT(OUT) :: modify_write_buf
+ INTEGER, INTENT(OUT) :: hdferr
+
+ LOGICAL(C_BOOL) :: c_modify_write_buf
+
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Pget_modify_write_buf(plist_id, modify_write_buf) BIND(C, NAME='H5Pget_modify_write_buf')
+ IMPORT :: HID_T, C_INT, C_BOOL
+ IMPLICIT NONE
+ INTEGER(HID_T), VALUE :: plist_id
+ LOGICAL(C_BOOL) :: modify_write_buf
+ END FUNCTION H5Pget_modify_write_buf
+ END INTERFACE
+
+ hdferr = INT(H5Pget_modify_write_buf(plist_id, c_modify_write_buf))
+ modify_write_buf = LOGICAL(c_modify_write_buf)
+
+ END SUBROUTINE h5pget_modify_write_buf_f
+
+!>
+!! \ingroup FH5P
+!!
!! \brief Sets the byte size of the offsets and lengths used to address objects in an HDF5 file.
!!
!! \param prp_id File creation property list identifier.
diff --git a/fortran/src/H5Sf.c b/fortran/src/H5Sf.c
index d04b639..00b97f8 100644
--- a/fortran/src/H5Sf.c
+++ b/fortran/src/H5Sf.c
@@ -176,7 +176,7 @@ h5scopy_c(hid_t_f *space_id, hid_t_f *new_space_id)
* h5sget_select_hyper_nblocks_c
* PURPOSE
* Call H5SH5Sget_select_hyper_nblocks to
- * get the the number of hyperslab blocks in
+ * get the number of hyperslab blocks in
* the current dataspace selection if successful
* INPUTS
* space_id - identifier of the dataspace
@@ -215,7 +215,7 @@ h5sget_select_hyper_nblocks_c(hid_t_f *space_id, hssize_t_f *num_blocks)
* h5sget_select_elem_npoints_c
* PURPOSE
* Call H5Sget_select_elem_npoints to
- * get the the number of element points in
+ * get the number of element points in
* the current dataspace selection if successful
* INPUTS
* space_id - identifier of the dataspace
diff --git a/fortran/src/H5Tf.c b/fortran/src/H5Tf.c
index 11f62b7..a74f5d1 100644
--- a/fortran/src/H5Tf.c
+++ b/fortran/src/H5Tf.c
@@ -1373,7 +1373,7 @@ DONE:
* type_id - identifier of the dataspace
* member_no - Number of the field whose offset is requested
* OUTPUTS
- * offset - byte offset of the the beginning of the field of
+ * offset - byte offset of the beginning of the field of
* a compound datatype
* RETURNS
* always 0
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index 3e1b65d..a9f2d96 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -467,6 +467,9 @@ h5init_flags_c(int_f *h5d_flags, size_t_f *h5d_size_flags, int_f *h5e_flags, hid
h5d_flags[26] = (int_f)H5D_VDS_FIRST_MISSING;
h5d_flags[27] = (int_f)H5D_VDS_LAST_AVAILABLE;
h5d_flags[28] = (int_f)H5D_VIRTUAL;
+ h5d_flags[29] = (int_f)H5D_SELECTION_IO_MODE_DEFAULT;
+ h5d_flags[30] = (int_f)H5D_SELECTION_IO_MODE_OFF;
+ h5d_flags[31] = (int_f)H5D_SELECTION_IO_MODE_ON;
/*
* H5E flags
diff --git a/fortran/src/H5_ff.F90 b/fortran/src/H5_ff.F90
index f952cac..651c96d 100644
--- a/fortran/src/H5_ff.F90
+++ b/fortran/src/H5_ff.F90
@@ -77,7 +77,7 @@ MODULE H5LIB
!
! H5D flags declaration
!
- INTEGER, PARAMETER :: H5D_FLAGS_LEN = 29
+ INTEGER, PARAMETER :: H5D_FLAGS_LEN = 32
INTEGER, DIMENSION(1:H5D_FLAGS_LEN) :: H5D_flags
INTEGER, PARAMETER :: H5D_SIZE_FLAGS_LEN = 2
INTEGER(SIZE_T), DIMENSION(1:H5D_SIZE_FLAGS_LEN) :: H5D_size_flags
@@ -394,35 +394,38 @@ CONTAINS
!
! H5D flags
!
- H5D_COMPACT_F = H5D_flags(1)
- H5D_CONTIGUOUS_F = H5D_flags(2)
- H5D_CHUNKED_F = H5D_flags(3)
- H5D_ALLOC_TIME_ERROR_F = H5D_flags(4)
- H5D_ALLOC_TIME_DEFAULT_F = H5D_flags(5)
- H5D_ALLOC_TIME_EARLY_F = H5D_flags(6)
- H5D_ALLOC_TIME_LATE_F = H5D_flags(7)
- H5D_ALLOC_TIME_INCR_F = H5D_flags(8)
- H5D_SPACE_STS_ERROR_F = H5D_flags(9)
- H5D_SPACE_STS_NOT_ALLOCATED_F = H5D_flags(10)
- H5D_SPACE_STS_PART_ALLOCATED_F = H5D_flags(11)
- H5D_SPACE_STS_ALLOCATED_F = H5D_flags(12)
- H5D_FILL_TIME_ERROR_F = H5D_flags(13)
- H5D_FILL_TIME_ALLOC_F = H5D_flags(14)
- H5D_FILL_TIME_NEVER_F = H5D_flags(15)
- H5D_FILL_VALUE_ERROR_F = H5D_flags(16)
- H5D_FILL_VALUE_UNDEFINED_F = H5D_flags(17)
- H5D_FILL_VALUE_DEFAULT_F = H5D_flags(18)
- H5D_FILL_VALUE_USER_DEFINED_F = H5D_flags(19)
- H5D_CHUNK_CACHE_W0_DFLT_F = H5D_flags(20)
- H5D_MPIO_NO_COLLECTIVE_F = H5D_flags(21)
- H5D_MPIO_CHUNK_INDEPENDENT_F = H5D_flags(22)
- H5D_MPIO_CHUNK_COLLECTIVE_F = H5D_flags(23)
- H5D_MPIO_CHUNK_MIXED_F = H5D_flags(24)
- H5D_MPIO_CONTIG_COLLECTIVE_F = H5D_flags(25)
- H5D_VDS_ERROR_F = H5D_flags(26)
- H5D_VDS_FIRST_MISSING_F = H5D_flags(27)
- H5D_VDS_LAST_AVAILABLE_F = H5D_flags(28)
- H5D_VIRTUAL_F = H5D_flags(29)
+ H5D_COMPACT_F = H5D_flags(1)
+ H5D_CONTIGUOUS_F = H5D_flags(2)
+ H5D_CHUNKED_F = H5D_flags(3)
+ H5D_ALLOC_TIME_ERROR_F = H5D_flags(4)
+ H5D_ALLOC_TIME_DEFAULT_F = H5D_flags(5)
+ H5D_ALLOC_TIME_EARLY_F = H5D_flags(6)
+ H5D_ALLOC_TIME_LATE_F = H5D_flags(7)
+ H5D_ALLOC_TIME_INCR_F = H5D_flags(8)
+ H5D_SPACE_STS_ERROR_F = H5D_flags(9)
+ H5D_SPACE_STS_NOT_ALLOCATED_F = H5D_flags(10)
+ H5D_SPACE_STS_PART_ALLOCATED_F = H5D_flags(11)
+ H5D_SPACE_STS_ALLOCATED_F = H5D_flags(12)
+ H5D_FILL_TIME_ERROR_F = H5D_flags(13)
+ H5D_FILL_TIME_ALLOC_F = H5D_flags(14)
+ H5D_FILL_TIME_NEVER_F = H5D_flags(15)
+ H5D_FILL_VALUE_ERROR_F = H5D_flags(16)
+ H5D_FILL_VALUE_UNDEFINED_F = H5D_flags(17)
+ H5D_FILL_VALUE_DEFAULT_F = H5D_flags(18)
+ H5D_FILL_VALUE_USER_DEFINED_F = H5D_flags(19)
+ H5D_CHUNK_CACHE_W0_DFLT_F = H5D_flags(20)
+ H5D_MPIO_NO_COLLECTIVE_F = H5D_flags(21)
+ H5D_MPIO_CHUNK_INDEPENDENT_F = H5D_flags(22)
+ H5D_MPIO_CHUNK_COLLECTIVE_F = H5D_flags(23)
+ H5D_MPIO_CHUNK_MIXED_F = H5D_flags(24)
+ H5D_MPIO_CONTIG_COLLECTIVE_F = H5D_flags(25)
+ H5D_VDS_ERROR_F = H5D_flags(26)
+ H5D_VDS_FIRST_MISSING_F = H5D_flags(27)
+ H5D_VDS_LAST_AVAILABLE_F = H5D_flags(28)
+ H5D_VIRTUAL_F = H5D_flags(29)
+ H5D_SELECTION_IO_MODE_DEFAULT_F = H5D_flags(30)
+ H5D_SELECTION_IO_MODE_OFF_F = H5D_flags(31)
+ H5D_SELECTION_IO_MODE_ON_F = H5D_flags(32)
H5D_CHUNK_CACHE_NSLOTS_DFLT_F = H5D_size_flags(1)
H5D_CHUNK_CACHE_NBYTES_DFLT_F = H5D_size_flags(2)
diff --git a/fortran/src/H5f90global.F90 b/fortran/src/H5f90global.F90
index 984cae9..c37e22d 100644
--- a/fortran/src/H5f90global.F90
+++ b/fortran/src/H5f90global.F90
@@ -330,6 +330,9 @@ MODULE H5GLOBAL
!DEC$ATTRIBUTES DLLEXPORT :: H5D_VDS_FIRST_MISSING_F
!DEC$ATTRIBUTES DLLEXPORT :: H5D_VDS_LAST_AVAILABLE_F
!DEC$ATTRIBUTES DLLEXPORT :: H5D_VIRTUAL_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5D_SELECTION_IO_MODE_DEFAULT_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5D_SELECTION_IO_MODE_OFF_F
+ !DEC$ATTRIBUTES DLLEXPORT :: H5D_SELECTION_IO_MODE_ON_F
!DEC$endif
!> \addtogroup FH5D
!> @{
@@ -375,6 +378,9 @@ MODULE H5GLOBAL
INTEGER :: H5D_VDS_FIRST_MISSING_F !< H5D_VDS_FIRST_MISSING
INTEGER :: H5D_VDS_LAST_AVAILABLE_F !< H5D_VDS_LAST_AVAILABLE
INTEGER :: H5D_VIRTUAL_F !< H5D_VIRTUAL
+ INTEGER :: H5D_SELECTION_IO_MODE_DEFAULT_F !< H5D_SELECTION_IO_MODE_DEFAULT_F
+ INTEGER :: H5D_SELECTION_IO_MODE_OFF_F !< H5D_SELECTION_IO_MODE_OFF_F
+ INTEGER :: H5D_SELECTION_IO_MODE_ON_F !< H5D_SELECTION_IO_MODE_ON_F
!
! H5E flags declaration
!
diff --git a/fortran/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in
index e55be46..4719633 100644
--- a/fortran/src/hdf5_fortrandll.def.in
+++ b/fortran/src/hdf5_fortrandll.def.in
@@ -391,6 +391,10 @@ H5P_mp_H5PSET_VOL_F
H5P_mp_H5PGET_VOL_ID_F
H5P_mp_H5PSET_FILE_LOCKING_F
H5P_mp_H5PGET_FILE_LOCKING_F
+H5P_mp_H5PSET_SELECTION_IO_F
+H5P_mp_H5PGET_SELECTION_IO_F
+H5P_mp_H5PSET_MODIFY_WRITE_BUF_F
+H5P_mp_H5PGET_MODIFY_WRITE_BUF_F
; Parallel
@H5_NOPAREXP@H5P_mp_H5PSET_FAPL_MPIO_F
@H5_NOPAREXP@H5P_mp_H5PGET_FAPL_MPIO_F