summaryrefslogtreecommitdiffstats
path: root/fortran/src
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2023-12-30 23:33:31 (GMT)
committerGitHub <noreply@github.com>2023-12-30 23:33:31 (GMT)
commit2fc140079b861b6efeede10ca6d796276657a9ff (patch)
treee617e23eb121ad8b6aa3004d01d6dde0a6a558c9 /fortran/src
parent3a21ee0877ecea5593112b7c8370cb8571a7e627 (diff)
downloadhdf5-2fc140079b861b6efeede10ca6d796276657a9ff.zip
hdf5-2fc140079b861b6efeede10ca6d796276657a9ff.tar.gz
hdf5-2fc140079b861b6efeede10ca6d796276657a9ff.tar.bz2
Added H5Fdelete_f with test (#3912)
Diffstat (limited to 'fortran/src')
-rw-r--r--fortran/src/H5Fff.F9043
-rw-r--r--fortran/src/hdf5_fortrandll.def.in1
2 files changed, 41 insertions, 3 deletions
diff --git a/fortran/src/H5Fff.F90 b/fortran/src/H5Fff.F90
index d311177..79aa5a7 100644
--- a/fortran/src/H5Fff.F90
+++ b/fortran/src/H5Fff.F90
@@ -256,6 +256,43 @@ CONTAINS
!>
!! \ingroup FH5F
!!
+!! \brief Deletes an HDF5 file
+!!
+!! \param name Name of the file to delete
+!! \param hdferr \fortran_error
+!! \param access_prp File access property list identifier
+!!
+!! See C API: @ref H5Fdelete()
+!!
+ SUBROUTINE h5fdelete_f(name, hdferr, access_prp)
+ IMPLICIT NONE
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER , INTENT(OUT) :: hdferr
+ INTEGER(HID_T) , INTENT(IN), OPTIONAL :: access_prp
+
+ INTEGER(HID_T) :: access_prp_default
+ CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name
+
+ INTERFACE
+ INTEGER(C_INT) FUNCTION H5Fdelete(name, access_prp_default) BIND(C,NAME='H5Fdelete')
+ IMPORT :: C_CHAR, C_INT
+ IMPORT :: HID_T
+ CHARACTER(KIND=C_CHAR), DIMENSION(*) :: name
+ INTEGER(HID_T), VALUE :: access_prp_default
+ END FUNCTION H5Fdelete
+ END INTERFACE
+
+ c_name = TRIM(name)//C_NULL_CHAR
+
+ access_prp_default = H5P_DEFAULT_F
+ IF (PRESENT(access_prp)) access_prp_default = access_prp
+
+ hdferr = INT(H5Fdelete(c_name, access_prp_default))
+
+ END SUBROUTINE h5fdelete_f
+!>
+!! \ingroup FH5F
+!!
!! \brief Asynchronously flushes all buffers associated with a file to disk.
!!
!! \param object_id Identifier of object used to identify the file.
@@ -285,7 +322,7 @@ CONTAINS
INTEGER(KIND=C_INT) :: line_default = 0
INTERFACE
- INTEGER FUNCTION H5Fflush_async(file, func, line, object_id, scope, es_id) &
+ INTEGER(C_INT) FUNCTION H5Fflush_async(file, func, line, object_id, scope, es_id) &
BIND(C,NAME='H5Fflush_async')
IMPORT :: C_CHAR, C_INT, C_PTR
IMPORT :: HID_T
@@ -303,8 +340,8 @@ CONTAINS
IF(PRESENT(func)) func_default = func
IF(PRESENT(line)) line_default = INT(line, C_INT)
- hdferr = H5Fflush_async(file_default, func_default, line_default, &
- object_id, INT(scope, C_INT), es_id)
+ hdferr = INT(H5Fflush_async(file_default, func_default, line_default, &
+ object_id, INT(scope, C_INT), es_id))
END SUBROUTINE h5fflush_async_f
!>
diff --git a/fortran/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in
index 55f4f2b..119e140 100644
--- a/fortran/src/hdf5_fortrandll.def.in
+++ b/fortran/src/hdf5_fortrandll.def.in
@@ -121,6 +121,7 @@ H5ES_mp_H5ESGET_ERR_COUNT_F
H5ES_mp_H5ESCLOSE_F
; H5F
H5F_mp_H5FCREATE_F
+H5F_mp_H5FDELETE_F
H5F_mp_H5FCREATE_ASYNC_F
H5F_mp_H5FFLUSH_F
H5F_mp_H5FFLUSH_ASYNC_F