summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5Dff.F90
diff options
context:
space:
mode:
Diffstat (limited to 'fortran/src/H5Dff.F90')
-rw-r--r--fortran/src/H5Dff.F90789
1 files changed, 647 insertions, 142 deletions
diff --git a/fortran/src/H5Dff.F90 b/fortran/src/H5Dff.F90
index bbfeb06..06034ac 100644
--- a/fortran/src/H5Dff.F90
+++ b/fortran/src/H5Dff.F90
@@ -88,6 +88,7 @@ MODULE H5D
USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR, C_CHAR
USE H5GLOBAL
USE H5LIB, ONLY : h5kind_to_type
+ USE H5S, ONLY : H5Sget_simple_extent_ndims_f, H5Sclose_f
PRIVATE h5dread_vl_integer, h5dread_vl_real, h5dread_vl_string
PRIVATE h5dwrite_vl_integer, h5dwrite_vl_real, h5dwrite_vl_string
@@ -232,37 +233,119 @@ CONTAINS
INTEGER(HID_T), INTENT(IN) :: space_id
INTEGER(HID_T), INTENT(OUT) :: dset_id
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dcpl_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: dcpl_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: lcpl_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: dapl_id
INTEGER(HID_T) :: lcpl_id_default
INTEGER(HID_T) :: dcpl_id_default
INTEGER(HID_T) :: dapl_id_default
-
- INTEGER :: namelen ! Name length
+ CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name
INTERFACE
- INTEGER FUNCTION h5dcreate_c(loc_id, name, namelen, type_id, &
- space_id, lcpl_id_default, dcpl_id_default, dapl_id_default, dset_id) &
- BIND(C,NAME='h5dcreate_c')
+ INTEGER(HID_T) FUNCTION H5Dcreate2(loc_id, name, type_id, &
+ space_id, lcpl_id_default, dcpl_id_default, dapl_id_default) &
+ BIND(C,NAME='H5Dcreate2')
IMPORT :: C_CHAR
IMPORT :: HID_T
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
- INTEGER :: namelen
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HID_T), VALUE :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*) :: name
+ INTEGER(HID_T), VALUE :: type_id
+ INTEGER(HID_T), VALUE :: space_id
+ INTEGER(HID_T), VALUE :: lcpl_id_default
+ INTEGER(HID_T), VALUE :: dcpl_id_default
+ INTEGER(HID_T), VALUE :: dapl_id_default
+ END FUNCTION H5Dcreate2
+ END INTERFACE
- INTEGER(HID_T) :: lcpl_id_default
- INTEGER(HID_T) :: dcpl_id_default
- INTEGER(HID_T) :: dapl_id_default
+ c_name = TRIM(name)//C_NULL_CHAR
- INTEGER(HID_T), INTENT(OUT) :: dset_id
- END FUNCTION h5dcreate_c
+ lcpl_id_default = H5P_DEFAULT_F
+ dcpl_id_default = H5P_DEFAULT_F
+ dapl_id_default = H5P_DEFAULT_F
+
+ IF(PRESENT(lcpl_id)) lcpl_id_default = lcpl_id
+ IF(PRESENT(dcpl_id)) dcpl_id_default = dcpl_id
+ IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
+
+ dset_id = INT(h5dcreate2(loc_id, c_name, type_id, space_id, &
+ lcpl_id_default, dcpl_id_default, dapl_id_default), HID_T)
+
+ hdferr = 0
+ IF(dset_id.LT.0) hdferr = -1
+
+ END SUBROUTINE h5dcreate_f
+
+!>
+!! \ingroup FH5D
+!!
+!! \brief Asynchronously creates a dataset at the specified location.
+!!
+!! \param loc_id File or group identifier
+!! \param name Dataset name
+!! \param type_id Dataset datatype identifier
+!! \param space_id Dataset dataspace identifier
+!! \param dset_id Dataset identifier
+!! \param es_id \es_id
+!! \param hdferr \fortran_error
+!! \param dcpl_id Dataset creation property list
+!! \param lcpl_id Link creation property list
+!! \param dapl_id Dataset access property list
+!! \param file \fortran_file
+!! \param func \fortran_func
+!! \param line \fortran_line
+!!
+!! See C API: @ref H5Dcreate_async()
+!!
+ SUBROUTINE h5dcreate_async_f(loc_id, name, type_id, space_id, dset_id, es_id, &
+ hdferr, dcpl_id, lcpl_id, dapl_id, file, func, line)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HID_T), INTENT(OUT) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: es_id
+ INTEGER, INTENT(OUT) :: hdferr
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: dcpl_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: lcpl_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: dapl_id
+ TYPE(C_PTR), OPTIONAL :: file
+ TYPE(C_PTR), OPTIONAL :: func
+ INTEGER , INTENT(IN), OPTIONAL :: line
+
+ INTEGER(HID_T) :: lcpl_id_default
+ INTEGER(HID_T) :: dcpl_id_default
+ INTEGER(HID_T) :: dapl_id_default
+ CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name
+ TYPE(C_PTR) :: file_default = C_NULL_PTR
+ TYPE(C_PTR) :: func_default = C_NULL_PTR
+ INTEGER(KIND=C_INT) :: line_default = 0
+
+ INTERFACE
+ INTEGER(HID_T) FUNCTION H5Dcreate_async(file, func, line, loc_id, name, type_id, &
+ space_id, lcpl_id_default, dcpl_id_default, dapl_id_default, es_id) &
+ BIND(C,NAME='H5Dcreate_async')
+ IMPORT :: C_CHAR, C_INT, C_PTR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ TYPE(C_PTR), VALUE :: file
+ TYPE(C_PTR), VALUE :: func
+ INTEGER(C_INT), VALUE :: line
+ INTEGER(HID_T), VALUE :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*) :: name
+ INTEGER(HID_T), VALUE :: type_id
+ INTEGER(HID_T), VALUE :: space_id
+ INTEGER(HID_T), VALUE :: lcpl_id_default
+ INTEGER(HID_T), VALUE :: dcpl_id_default
+ INTEGER(HID_T), VALUE :: dapl_id_default
+ INTEGER(HID_T), VALUE :: es_id
+ END FUNCTION H5Dcreate_async
END INTERFACE
+ c_name = TRIM(name)//C_NULL_CHAR
+
lcpl_id_default = H5P_DEFAULT_F
dcpl_id_default = H5P_DEFAULT_F
dapl_id_default = H5P_DEFAULT_F
@@ -270,12 +353,18 @@ CONTAINS
IF(PRESENT(lcpl_id)) lcpl_id_default = lcpl_id
IF(PRESENT(dcpl_id)) dcpl_id_default = dcpl_id
IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
+ IF(PRESENT(file)) file_default = file
+ IF(PRESENT(func)) func_default = func
+ IF(PRESENT(line)) line_default = INT(line, C_INT)
- namelen = LEN(name)
- hdferr = h5dcreate_c(loc_id, name, namelen, type_id, space_id, &
- lcpl_id_default, dcpl_id_default, dapl_id_default, dset_id)
+ dset_id = h5dcreate_async(file_default, func_default, line_default, &
+ loc_id, c_name, type_id, space_id, &
+ lcpl_id_default, dcpl_id_default, dapl_id_default, es_id)
- END SUBROUTINE h5dcreate_f
+ hdferr = 0
+ IF(dset_id.LT.0) hdferr = -1
+
+ END SUBROUTINE h5dcreate_async_f
!>
!! \ingroup FH5D
@@ -296,36 +385,105 @@ CONTAINS
CHARACTER(LEN=*), INTENT(IN) :: name
INTEGER(HID_T), INTENT(OUT) :: dset_id
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id
- INTEGER :: namelen ! Name length
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: dapl_id
INTEGER(HID_T) :: dapl_id_default
+ CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name
INTERFACE
- INTEGER FUNCTION h5dopen_c(loc_id, name, namelen, dapl_id_default, dset_id) &
- BIND(C,NAME='h5dopen_c')
+ INTEGER(HID_T) FUNCTION H5Dopen2(loc_id, name, dapl_id_default) &
+ BIND(C,NAME='H5Dopen2')
IMPORT :: C_CHAR
IMPORT :: HID_T
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
- INTEGER :: namelen
- INTEGER(HID_T), INTENT(IN) :: dapl_id_default
- INTEGER(HID_T), INTENT(OUT) :: dset_id
- END FUNCTION h5dopen_c
+ INTEGER(HID_T), VALUE :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*) :: name
+ INTEGER(HID_T),VALUE :: dapl_id_default
+ END FUNCTION H5Dopen2
END INTERFACE
+ c_name = TRIM(name)//C_NULL_CHAR
+
dapl_id_default = H5P_DEFAULT_F
IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
- namelen = LEN(name)
- hdferr = h5dopen_c(loc_id, name, namelen, dapl_id_default, dset_id)
+ dset_id = INT(H5Dopen2(loc_id, c_name, dapl_id_default), HID_T)
+
+ hdferr = 0
+ IF(dset_id.LT.0) hdferr = -1
END SUBROUTINE h5dopen_f
!>
!! \ingroup FH5D
!!
+!! \brief Asynchronously opens an existing dataset.
+!!
+!! \param loc_id File or group identifier
+!! \param name Dataset name
+!! \param dset_id Dataset identifier
+!! \param es_id \es_id
+!! \param hdferr \fortran_error
+!! \param dapl_id Dataset access property list
+!! \param file \fortran_file
+!! \param func \fortran_func
+!! \param line \fortran_line
+!!
+!! See C API: @ref H5Dopen_async()
+!!
+ SUBROUTINE h5dopen_async_f(loc_id, name, dset_id, es_id, hdferr, dapl_id, file, func, line)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER(HID_T), INTENT(OUT) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: es_id
+ INTEGER, INTENT(OUT) :: hdferr
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: dapl_id
+ TYPE(C_PTR), OPTIONAL :: file
+ TYPE(C_PTR), OPTIONAL :: func
+ INTEGER , INTENT(IN), OPTIONAL :: line
+
+ INTEGER(HID_T) :: dapl_id_default
+ CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name
+ TYPE(C_PTR) :: file_default = C_NULL_PTR
+ TYPE(C_PTR) :: func_default = C_NULL_PTR
+ INTEGER(KIND=C_INT) :: line_default = 0
+
+ INTERFACE
+ INTEGER(HID_T) FUNCTION H5Dopen_async(file, func, line, loc_id, name, dapl_id_default, es_id) &
+ BIND(C,NAME='H5Dopen_async')
+ IMPORT :: C_CHAR, C_INT, C_PTR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ TYPE(C_PTR), VALUE :: file
+ TYPE(C_PTR), VALUE :: func
+ INTEGER(C_INT), VALUE :: line
+ INTEGER(HID_T), VALUE :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*) :: name
+ INTEGER(HID_T), VALUE :: dapl_id_default
+ INTEGER(HID_T), VALUE :: es_id
+ END FUNCTION H5Dopen_async
+ END INTERFACE
+
+ c_name = TRIM(name)//C_NULL_CHAR
+
+ dapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
+ IF(PRESENT(file)) file_default = file
+ IF(PRESENT(func)) func_default = func
+ IF(PRESENT(line)) line_default = INT(line, C_INT)
+
+ dset_id = H5Dopen_async(file_default, func_default, line_default, &
+ loc_id, c_name, dapl_id_default, es_id)
+
+ hdferr = 0
+ IF(dset_id.LT.0) hdferr = -1
+
+ END SUBROUTINE h5dopen_async_f
+
+!>
+!! \ingroup FH5D
+!!
!! \brief Closes a dataset.
!!
!! \param dset_id Dataset identifier
@@ -337,22 +495,71 @@ CONTAINS
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id
INTEGER, INTENT(OUT) :: hdferr
+
INTERFACE
- INTEGER FUNCTION h5dclose_c(dset_id) &
- BIND(C,NAME='h5dclose_c')
+ INTEGER(C_INT) FUNCTION H5Dclose(dset_id) BIND(C,NAME='H5Dclose')
+ IMPORT :: C_INT
IMPORT :: HID_T
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id
- END FUNCTION h5dclose_c
+ INTEGER(HID_T), VALUE :: dset_id
+ END FUNCTION h5dclose
END INTERFACE
- hdferr = h5dclose_c(dset_id)
+ hdferr = INT(H5Dclose(dset_id))
END SUBROUTINE h5dclose_f
!>
!! \ingroup FH5D
!!
+!! \brief Asynchronously closes a dataset.
+!!
+!! \param dset_id Dataset identifier
+!! \param es_id \es_id
+!! \param hdferr \fortran_error
+!! \param file \fortran_file
+!! \param func \fortran_func
+!! \param line \fortran_line
+!!
+!! See C API: @ref H5Dclose_async()
+!!
+ SUBROUTINE h5dclose_async_f(dset_id, es_id, hdferr, file, func, line)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: es_id
+ INTEGER, INTENT(OUT) :: hdferr
+ TYPE(C_PTR), OPTIONAL :: file
+ TYPE(C_PTR), OPTIONAL :: func
+ INTEGER , INTENT(IN), OPTIONAL :: line
+
+ TYPE(C_PTR) :: file_default = C_NULL_PTR
+ TYPE(C_PTR) :: func_default = C_NULL_PTR
+ INTEGER(KIND=C_INT) :: line_default = 0
+
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Dclose_async(file, func, line, dset_id, es_id) BIND(C,NAME='H5Dclose_async')
+ IMPORT :: C_CHAR, C_INT, C_PTR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ TYPE(C_PTR), VALUE :: file
+ TYPE(C_PTR), VALUE :: func
+ INTEGER(C_INT), VALUE :: line
+ INTEGER(HID_T), VALUE :: dset_id
+ INTEGER(HID_T), VALUE :: es_id
+ END FUNCTION H5Dclose_async
+ END INTERFACE
+
+ IF(PRESENT(file)) file_default = file
+ IF(PRESENT(func)) func_default = func
+ IF(PRESENT(line)) line_default = INT(line, C_INT)
+
+ hdferr = INT(H5Dclose_async(file_default, func_default, line_default, dset_id, es_id))
+
+ END SUBROUTINE h5dclose_async_f
+
+!>
+!! \ingroup FH5D
+!!
!! \brief Returns an identifier for a copy of the datatype for a
!! dataset.
!!
@@ -386,29 +593,149 @@ CONTAINS
!! \brief Extends a dataset with unlimited dimension.
!!
!! \param dataset_id Dataset identifier
-!! \param size Array containing the new magnitude of each dimension
+!! \param fsize Array containing the new magnitude of each dimension
!! \param hdferr \fortran_error
!!
!! See C API: @ref H5Dset_extent()
!!
- SUBROUTINE h5dset_extent_f(dataset_id, size, hdferr)
+ SUBROUTINE h5dset_extent_f(dataset_id, fsize, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: fsize
INTEGER, INTENT(OUT) :: hdferr
+
+ INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: csize
+ INTEGER(HID_T) :: space_id
+ INTEGER :: rank
+ INTEGER :: i
+
INTERFACE
- INTEGER FUNCTION h5dset_extent_c(dataset_id, size) &
- BIND(C,NAME='h5dset_extent_c')
+ INTEGER(C_INT) FUNCTION H5Dset_extent(dataset_id, size) &
+ BIND(C,NAME='H5Dset_extent')
+ IMPORT :: C_INT
IMPORT :: HID_T, HSIZE_T
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size
- END FUNCTION h5dset_extent_c
+ INTEGER(HID_T), VALUE :: dataset_id
+ INTEGER(HSIZE_T), DIMENSION(*) :: size
+ END FUNCTION H5Dset_extent
END INTERFACE
- hdferr = H5Dset_extent_c(dataset_id, size)
+ CALL H5Dget_space_f(dataset_id, space_id, hdferr)
+ IF(hdferr.LT.0) RETURN
+
+ CALL H5Sget_simple_extent_ndims_f(space_id, rank, hdferr)
+ IF( hdferr.LT.0 .OR. rank.LT.0 )THEN
+ CALL H5Sclose_f(space_id, hdferr)
+ hdferr = -1
+ RETURN
+ ENDIF
+ CALL H5Sclose_f(space_id, hdferr)
+ IF(hdferr.LT.0) RETURN
+
+ ALLOCATE(csize(rank), STAT=hdferr)
+ IF (hdferr .NE. 0 ) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ !
+ ! Reverse dimensions due to C-FORTRAN storage order.
+ !
+ DO i = 1, rank
+ csize(i) = fsize(rank - i + 1)
+ ENDDO
+
+ hdferr = INT(H5Dset_extent(dataset_id, csize))
+
+ DEALLOCATE(csize)
+
END SUBROUTINE h5dset_extent_f
+
+!>
+!! \ingroup FH5D
+!!
+!! \brief Asynchronously extends a dataset with unlimited dimension.
+!!
+!! \param dataset_id Dataset identifier
+!! \param fsize Array containing the new magnitude of each dimension
+!! \param es_id \es_id
+!! \param hdferr \fortran_error
+!! \param file \fortran_file
+!! \param func \fortran_func
+!! \param line \fortran_line
+!!
+!! See C API: @ref H5Dset_extent_async()
+!!
+ SUBROUTINE h5dset_extent_async_f(dataset_id, fsize, es_id, hdferr, file, func, line)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: fsize
+ INTEGER(HID_T), INTENT(IN) :: es_id
+ INTEGER, INTENT(OUT) :: hdferr
+ TYPE(C_PTR), OPTIONAL :: file
+ TYPE(C_PTR), OPTIONAL :: func
+ INTEGER , INTENT(IN), OPTIONAL :: line
+
+ TYPE(C_PTR) :: file_default = C_NULL_PTR
+ TYPE(C_PTR) :: func_default = C_NULL_PTR
+ INTEGER(KIND=C_INT) :: line_default = 0
+ INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: csize
+ INTEGER(HID_T) :: space_id
+ INTEGER :: rank
+ INTEGER :: i
+
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Dset_extent_async(file, func, line, dataset_id, size, es_id) &
+ BIND(C,NAME='H5Dset_extent_async')
+ IMPORT :: C_CHAR, C_INT, C_PTR
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ TYPE(C_PTR), VALUE :: file
+ TYPE(C_PTR), VALUE :: func
+ INTEGER(C_INT), VALUE :: line
+ INTEGER(HID_T), VALUE :: dataset_id
+ INTEGER(HSIZE_T), DIMENSION(*) :: size
+ INTEGER(HID_T), VALUE :: es_id
+ END FUNCTION H5Dset_extent_async
+ END INTERFACE
+
+ IF(PRESENT(file)) file_default = file
+ IF(PRESENT(func)) func_default = func
+ IF(PRESENT(line)) line_default = INT(line, C_INT)
+
+ CALL H5Dget_space_f(dataset_id, space_id, hdferr)
+ IF(hdferr.LT.0) RETURN
+
+ CALL H5Sget_simple_extent_ndims_f(space_id, rank, hdferr)
+ IF( hdferr.LT.0 .OR. rank.LT.0 )THEN
+ CALL H5Sclose_f(space_id, hdferr)
+ hdferr = -1
+ RETURN
+ ENDIF
+ CALL H5Sclose_f(space_id, hdferr)
+ IF(hdferr.LT.0) RETURN
+
+ ALLOCATE(csize(rank), STAT=hdferr)
+ IF (hdferr .NE. 0 ) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ !
+ ! Reverse dimensions due to C-FORTRAN storage order.
+ !
+ DO i = 1, rank
+ csize(i) = fsize(rank - i + 1)
+ ENDDO
+
+ hdferr = INT(H5Dset_extent_async(file_default, func_default, line_default, &
+ dataset_id, csize, es_id))
+
+ DEALLOCATE(csize)
+
+ END SUBROUTINE h5dset_extent_async_f
+
!>
!! \ingroup FH5D
!!
@@ -551,8 +878,8 @@ CONTAINS
INTEGER(HID_T), INTENT(IN) :: space_id
INTEGER(HID_T), INTENT(OUT) :: dset_id
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dcpl_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: dcpl_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: dapl_id
INTEGER(HID_T) :: dcpl_id_default
INTEGER(HID_T) :: dapl_id_default
@@ -611,14 +938,14 @@ CONTAINS
INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims
INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
END SUBROUTINE h5dread_vl_f
!>
!! \ingroup FH5D
!!
- !! \brief Writes variable-length data. F2003 API h5dwritef should be used instead.
+ !! \brief Writes variable-length data. F2003 API h5dwrite_f should be used instead.
!!
!! \param dset_id Dataset identifier.
!! \param mem_type_id Memory datatype identifier.
@@ -641,9 +968,9 @@ CONTAINS
INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims
INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
END SUBROUTINE h5dwrite_vl_f
#else
@@ -657,9 +984,9 @@ CONTAINS
INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len
INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2)), TARGET :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
@@ -707,9 +1034,9 @@ CONTAINS
INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len
INTEGER, INTENT(INOUT), DIMENSION(dims(1),dims(2)), TARGET :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
@@ -761,9 +1088,9 @@ CONTAINS
REAL, INTENT(IN), &
DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
@@ -815,9 +1142,9 @@ CONTAINS
REAL, INTENT(INOUT), &
DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
@@ -871,9 +1198,9 @@ CONTAINS
INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: str_len
CHARACTER(LEN=*), INTENT(IN), DIMENSION(dims(2)) :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
@@ -925,9 +1252,9 @@ CONTAINS
CHARACTER(LEN=*), INTENT(OUT), &
DIMENSION(dims(2)) :: buf ! Data buffer
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
@@ -1001,8 +1328,7 @@ CONTAINS
!>
!! \ingroup FH5D
!!
-!! \brief Returns an identifier for a copy of the dataspace for a
-!! dataset.
+!! \brief Returns an identifier for a copy of the dataspace for a dataset.
!!
!! \param dataset_id Dataset identifier.
!! \param dataspace_id Dataspace identifier.
@@ -1016,20 +1342,78 @@ CONTAINS
INTEGER(HID_T), INTENT(OUT) :: dataspace_id
INTEGER, INTENT(OUT) :: hdferr
INTERFACE
- INTEGER FUNCTION h5dget_space_c(dataset_id, dataspace_id) BIND(C,NAME='h5dget_space_c')
+ INTEGER(HID_T) FUNCTION H5Dget_space(dataset_id) BIND(C,NAME='H5Dget_space')
IMPORT :: HID_T
IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HID_T), INTENT(OUT) :: dataspace_id
- END FUNCTION h5dget_space_c
+ INTEGER(HID_T), VALUE :: dataset_id
+ END FUNCTION H5Dget_space
END INTERFACE
- hdferr = h5dget_space_c(dataset_id, dataspace_id)
+ dataspace_id = h5dget_space(dataset_id)
+
+ hdferr = 0
+ IF(dataspace_id.LT.0) hdferr = -1
+
END SUBROUTINE h5dget_space_f
!>
!! \ingroup FH5D
!!
+!! \brief Asynchronously returns an identifier for a copy of the dataspace for a dataset.
+!!
+!! \param dataset_id Dataset identifier.
+!! \param dataspace_id Dataspace identifier.
+!! \param es_id \es_id
+!! \param hdferr \fortran_error
+!! \param file \fortran_file
+!! \param func \fortran_func
+!! \param line \fortran_line
+!!
+!! See C API: @ref H5Dget_space_async()
+!!
+ SUBROUTINE h5dget_space_async_f(dataset_id, dataspace_id, es_id, hdferr, file, func, line)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HID_T), INTENT(OUT) :: dataspace_id
+ INTEGER(HID_T), INTENT(IN) :: es_id
+ INTEGER, INTENT(OUT) :: hdferr
+ TYPE(C_PTR), OPTIONAL :: file
+ TYPE(C_PTR), OPTIONAL :: func
+ INTEGER , INTENT(IN), OPTIONAL :: line
+
+ TYPE(C_PTR) :: file_default = C_NULL_PTR
+ TYPE(C_PTR) :: func_default = C_NULL_PTR
+ INTEGER(KIND=C_INT) :: line_default = 0
+
+ INTERFACE
+ INTEGER(HID_T) FUNCTION H5Dget_space_async(file, func, line, dataset_id, es_id) &
+ BIND(C,NAME='H5Dget_space_async')
+ IMPORT :: C_CHAR, C_INT, C_PTR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ TYPE(C_PTR), VALUE :: file
+ TYPE(C_PTR), VALUE :: func
+ INTEGER(C_INT), VALUE :: line
+ INTEGER(HID_T), VALUE :: dataset_id
+ INTEGER(HID_T), VALUE :: es_id
+ END FUNCTION H5Dget_space_async
+ END INTERFACE
+
+ IF(PRESENT(file)) file_default = file
+ IF(PRESENT(func)) func_default = func
+ IF(PRESENT(line)) line_default = INT(line, C_INT)
+
+ dataspace_id = H5Dget_space_async(file_default, func_default, line_default, &
+ dataset_id, es_id)
+
+ hdferr = 0
+ IF(dataspace_id.LT.0) hdferr = -1
+
+ END SUBROUTINE h5dget_space_async_f
+
+!>
+!! \ingroup FH5D
+!!
!! \brief Returns a copy of the dataset creation property list.
!!
!! \param dset_id Dataset identifier.
@@ -1091,7 +1475,141 @@ CONTAINS
hdferr = H5Dvlen_reclaim_c(type_id, space_id, plist_id, buf)
- END SUBROUTINE H5Dvlen_reclaim_f
+ END SUBROUTINE h5dvlen_reclaim_f
+
+!>
+!! \ingroup FH5D
+!!
+!! \brief Asynchronously reads raw data from a dataset into a buffer.
+!!
+!! \param dset_id Identifier of the dataset read from.
+!! \param mem_type_id Identifier of the memory datatype.
+!! \param buf Buffer to receive data read from file.
+!! \param es_id \es_id
+!! \param hdferr \fortran_error
+!! \param mem_space_id Identifier of the memory dataspace.
+!! \param file_space_id Identifier of dataset's dataspace in the file. (Default: H5S_ALL_F)
+!! \param xfer_prp Identifier of a transfer property list for this I/O operation.
+!! \param file \fortran_file
+!! \param func \fortran_func
+!! \param line \fortran_line
+!!
+!! See C API: @ref H5Dread_async()
+!!
+ SUBROUTINE h5dread_async_f(dset_id, mem_type_id, buf, es_id, hdferr, &
+ mem_space_id, file_space_id, xfer_prp, file, func, line)
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ TYPE(C_PTR), INTENT(INOUT) :: buf
+ INTEGER(HID_T), INTENT(IN) :: es_id
+ INTEGER, INTENT(OUT) :: hdferr
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
+ TYPE(C_PTR), OPTIONAL :: file
+ TYPE(C_PTR), OPTIONAL :: func
+ INTEGER , INTENT(IN), OPTIONAL :: line
+
+ TYPE(C_PTR) :: file_default = C_NULL_PTR
+ TYPE(C_PTR) :: func_default = C_NULL_PTR
+ INTEGER(KIND=C_INT) :: line_default = 0
+
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Dread_async(file, func, line, dset_id, mem_type_id, &
+ mem_space_id, file_space_id, xfer_prp, buf, es_id) BIND(C,NAME='H5Dread_async')
+ IMPORT :: C_CHAR, C_INT, C_PTR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ TYPE(C_PTR), VALUE :: file
+ TYPE(C_PTR), VALUE :: func
+ INTEGER(C_INT), VALUE :: line
+ INTEGER(HID_T), VALUE :: dset_id
+ INTEGER(HID_T), VALUE :: mem_type_id
+ INTEGER(HID_T), VALUE :: mem_space_id
+ INTEGER(HID_T), VALUE :: file_space_id
+ INTEGER(HID_T), VALUE :: xfer_prp
+ TYPE(C_PTR) , VALUE :: buf
+ INTEGER(HID_T), VALUE :: es_id
+ END FUNCTION H5Dread_async
+ END INTERFACE
+
+ IF (PRESENT(file)) file_default = file
+ IF (PRESENT(func)) func_default = func
+ IF (PRESENT(line)) line_default = INT(line, C_INT)
+
+ hdferr = H5Dread_async(file_default, func_default, line_default, &
+ dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, es_id )
+
+ END SUBROUTINE h5dread_async_f
+
+!>
+!! \ingroup FH5D
+!!
+!! \brief Asynchronously writes raw data from a buffer to a dataset.
+!!
+!! \param dset_id Identifier of the dataset to write to.
+!! \param mem_type_id Identifier of the memory datatype.
+!! \param buf Buffer with data to be written to the file.
+!! \param es_id \es_id
+!! \param hdferr \fortran_error
+!! \param mem_space_id Identifier of the memory dataspace.
+!! \param file_space_id Identifier of the dataset's dataspace in the file.
+!! \param xfer_prp Identifier of a transfer property list for this I/O operation.
+!! \param file \fortran_file
+!! \param func \fortran_func
+!! \param line \fortran_line
+!!
+!! See C API: @ref H5Dwrite_async()
+!!
+ SUBROUTINE h5dwrite_async_f(dset_id, mem_type_id, buf, es_id, hdferr, &
+ mem_space_id, file_space_id, xfer_prp, file, func, line)
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ TYPE(C_PTR), INTENT(IN) :: buf
+ INTEGER(HID_T), INTENT(IN) :: es_id
+ INTEGER, INTENT(OUT) :: hdferr
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
+ TYPE(C_PTR), OPTIONAL :: file
+ TYPE(C_PTR), OPTIONAL :: func
+ INTEGER , INTENT(IN), OPTIONAL :: line
+
+ TYPE(C_PTR) :: file_default = C_NULL_PTR
+ TYPE(C_PTR) :: func_default = C_NULL_PTR
+ INTEGER(KIND=C_INT) :: line_default = 0
+
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Dwrite_async(file, func, line, dset_id, mem_type_id, &
+ mem_space_id, file_space_id, xfer_prp, buf, es_id) BIND(C,NAME='H5Dwrite_async')
+ IMPORT :: C_CHAR, C_INT, C_PTR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ TYPE(C_PTR), VALUE :: file
+ TYPE(C_PTR), VALUE :: func
+ INTEGER(C_INT), VALUE :: line
+ INTEGER(HID_T), VALUE :: dset_id
+ INTEGER(HID_T), VALUE :: mem_type_id
+ INTEGER(HID_T), VALUE :: mem_space_id
+ INTEGER(HID_T), VALUE :: file_space_id
+ INTEGER(HID_T), VALUE :: xfer_prp
+ TYPE(C_PTR) , VALUE :: buf
+ INTEGER(HID_T), VALUE :: es_id
+ END FUNCTION H5Dwrite_async
+ END INTERFACE
+
+ IF (PRESENT(file)) file_default = file
+ IF (PRESENT(func)) func_default = func
+ IF (PRESENT(line)) line_default = INT(line, C_INT)
+
+ hdferr = H5Dwrite_async(file_default, func_default, line_default, &
+ dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, buf, es_id)
+
+ END SUBROUTINE h5dwrite_async_f
#ifdef H5_DOXYGEN
!>
@@ -1118,9 +1636,9 @@ CONTAINS
INTEGER(HID_T), INTENT(IN) :: mem_type_id
TYPE(C_PTR), INTENT(IN) :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
END SUBROUTINE h5dwrite
!>
!! \ingroup FH5D
@@ -1146,9 +1664,9 @@ CONTAINS
INTEGER(HID_T), INTENT(IN) :: mem_type_id
TYPE(C_PTR), INTENT(INOUT) :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
END SUBROUTINE h5dread_f
!>
@@ -1177,9 +1695,9 @@ CONTAINS
INTEGER(HID_T), INTENT(IN) :: mem_type_id
TYPE(TYPE), INTENT(IN) :: buf
DIMENSION(*), INTEGER(HSIZE_T), INTENT(IN) :: dims
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
END SUBROUTINE h5dwrite_f___F90_VERSION
!>
@@ -1209,9 +1727,9 @@ CONTAINS
INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
TYPE(TYPE), INTENT(INOUT) :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
END SUBROUTINE h5dread_f___F90_VERSION
!>
@@ -1273,9 +1791,9 @@ CONTAINS
INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims
TYPE(hobj_ref_t_f), DIMENSION(dims(1)), INTENT(IN), TARGET :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
@@ -1305,9 +1823,9 @@ CONTAINS
INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims
TYPE(hdset_reg_ref_t_f), DIMENSION(dims(1)), INTENT(IN), TARGET :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
@@ -1315,7 +1833,6 @@ CONTAINS
INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
INTEGER :: i
INTEGER(HSIZE_T) :: j
- TYPE(C_PTR) :: f_ptr
INTERFACE
INTEGER FUNCTION h5dwrite_ref_reg_c(dset_id, mem_type_id,&
mem_space_id_default, &
@@ -1339,7 +1856,6 @@ CONTAINS
IF(PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
IF(PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
IF(PRESENT(file_space_id)) file_space_id_default = file_space_id
- f_ptr = C_LOC(buf(1))
ALLOCATE(ref_buf(REF_REG_BUF_LEN*dims(1)), stat=hdferr)
IF (hdferr .NE. 0 ) THEN
@@ -1360,16 +1876,15 @@ CONTAINS
SUBROUTINE h5dwrite_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id
INTEGER(HID_T), INTENT(IN) :: mem_type_id
INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
CHARACTER(*), INTENT(IN), TARGET :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
CALL h5dwrite_char_scalar_fix(dset_id, mem_type_id, buf, LEN(buf), dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
@@ -1378,7 +1893,6 @@ CONTAINS
SUBROUTINE h5dwrite_char_scalar_fix(dset_id, mem_type_id, buf, buf_len, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id
INTEGER(HID_T), INTENT(IN) :: mem_type_id
@@ -1386,9 +1900,9 @@ CONTAINS
INTEGER, INTENT(IN) :: buf_len
CHARACTER(LEN=buf_len), INTENT(IN), TARGET :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
@@ -1411,7 +1925,6 @@ CONTAINS
SUBROUTINE h5dread_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id
INTEGER(HID_T), INTENT(IN) :: mem_type_id
@@ -1419,9 +1932,9 @@ CONTAINS
TYPE(hobj_ref_t_f), INTENT(INOUT) , &
DIMENSION(dims(1)), TARGET :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
@@ -1451,9 +1964,9 @@ CONTAINS
TYPE(hdset_reg_ref_t_f), INTENT(INOUT), &
DIMENSION(dims(1)), TARGET :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
@@ -1506,7 +2019,6 @@ CONTAINS
SUBROUTINE h5dread_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id
INTEGER(HID_T), INTENT(IN) :: mem_type_id
@@ -1514,9 +2026,9 @@ CONTAINS
CHARACTER(LEN=*), INTENT(INOUT) :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
@@ -1537,16 +2049,15 @@ CONTAINS
SUBROUTINE h5dread_char_scalar_fix(dset_id, mem_type_id, buf, buf_len, hdferr, &
mem_space_id, file_space_id, xfer_prp)
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id
INTEGER(HID_T), INTENT(IN) :: mem_type_id
INTEGER, INTENT(IN) :: buf_len
CHARACTER(LEN=buf_len), INTENT(INOUT), TARGET :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
TYPE(C_PTR) :: f_ptr
@@ -1559,15 +2070,14 @@ CONTAINS
SUBROUTINE h5dwrite_ptr(dset_id, mem_type_id, buf, hdferr, &
mem_space_id, file_space_id, xfer_prp)
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id
INTEGER(HID_T), INTENT(IN) :: mem_type_id
TYPE(C_PTR), INTENT(IN) :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
@@ -1588,15 +2098,14 @@ CONTAINS
SUBROUTINE h5dread_ptr(dset_id, mem_type_id, buf, hdferr, &
mem_space_id, file_space_id, xfer_prp)
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id
INTEGER(HID_T), INTENT(IN) :: mem_type_id
TYPE(C_PTR), INTENT(INOUT) :: buf
INTEGER, INTENT(OUT) :: hdferr
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: mem_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: file_space_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: xfer_prp
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
@@ -1616,7 +2125,6 @@ CONTAINS
END SUBROUTINE h5dread_ptr
SUBROUTINE h5dfill_ptr(fill_value, fill_type_id, buf, buf_type_id, space_id, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
IMPLICIT NONE
TYPE(C_PTR) :: fill_value
INTEGER(HID_T), INTENT(IN) :: fill_type_id
@@ -1643,7 +2151,6 @@ CONTAINS
END SUBROUTINE h5dfill_ptr
SUBROUTINE h5dfill_integer(fill_value, space_id, buf, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
IMPLICIT NONE
INTEGER, INTENT(IN), TARGET :: fill_value ! Fill value
INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
@@ -1667,7 +2174,6 @@ CONTAINS
END SUBROUTINE h5dfill_integer
SUBROUTINE h5dfill_c_float(fill_value, space_id, buf, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
IMPLICIT NONE
REAL(KIND=C_FLOAT), INTENT(IN), TARGET :: fill_value
INTEGER(HID_T), INTENT(IN) :: space_id
@@ -1739,7 +2245,6 @@ CONTAINS
#endif
SUBROUTINE h5dfill_char(fill_value, space_id, buf, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
IMPLICIT NONE
CHARACTER, INTENT(IN), TARGET :: fill_value
INTEGER(HID_T), INTENT(IN) :: space_id
@@ -1775,7 +2280,7 @@ CONTAINS
!! \param hdferr \fortran_error
!! \param xfer_prp Identifier of a transfer property list for this I/O operation.
!!
- SUBROUTINE H5Dread_multi_f(count, dset_id, mem_type_id, mem_space_id, file_space_id, buf, hdferr, xfer_prp)
+ SUBROUTINE h5dread_multi_f(count, dset_id, mem_type_id, mem_space_id, file_space_id, buf, hdferr, xfer_prp)
IMPLICIT NONE
INTEGER(SIZE_T), INTENT(IN) :: count
@@ -1811,7 +2316,7 @@ CONTAINS
hdferr = H5Dread_multi(count, dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp_default, buf)
- END SUBROUTINE H5Dread_multi_f
+ END SUBROUTINE h5dread_multi_f
!>
!! \ingroup FH5D
!!
@@ -1826,7 +2331,7 @@ CONTAINS
!! \param hdferr \fortran_error
!! \param xfer_prp Identifier of a transfer property list for this I/O operation.
!!
- SUBROUTINE H5Dwrite_multi_f(count, dset_id, mem_type_id, mem_space_id, file_space_id, buf, hdferr, xfer_prp)
+ SUBROUTINE h5dwrite_multi_f(count, dset_id, mem_type_id, mem_space_id, file_space_id, buf, hdferr, xfer_prp)
IMPLICIT NONE
INTEGER(SIZE_T), INTENT(IN) :: count
@@ -1862,7 +2367,7 @@ CONTAINS
hdferr = H5Dwrite_multi(count, dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp_default, buf)
- END SUBROUTINE H5Dwrite_multi_f
+ END SUBROUTINE h5dwrite_multi_f
#endif