diff options
Diffstat (limited to 'fortran/src/H5Dff.F90')
-rw-r--r-- | fortran/src/H5Dff.F90 | 789 |
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 |