summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fortran/src/H5If.c30
-rw-r--r--fortran/src/H5Iff.f9042
2 files changed, 72 insertions, 0 deletions
diff --git a/fortran/src/H5If.c b/fortran/src/H5If.c
index 5368861..e8b54f0 100644
--- a/fortran/src/H5If.c
+++ b/fortran/src/H5If.c
@@ -211,3 +211,33 @@ nh5iget_file_id_c(hid_t_f *obj_id, hid_t_f *file_id)
done:
return ret_value;
}
+
+/*----------------------------------------------------------------------------
+ * Name: h5iis_valid_c
+ * Purpose: Calls H5Iis_valid
+ * Inputs: obj_id - object identifier
+ * Outputs: 0 = false, 1 = true
+ * Returns: 0 on success, -1 on failure
+ * Programmer: Elena Pourmal
+ * Tuesday, August 24, 2004
+ * Modifications:
+ *---------------------------------------------------------------------------*/
+int_f
+nh5iis_valid_c(hid_t_f *obj_id, int_f *c_valid)
+{
+ int ret_value;
+ htri_t c_ret_value;
+
+ /*
+ * Call H5Iis_valid
+ */
+ if ((c_ret_value = H5Iis_valid(*obj_id)) < 0)
+ HGOTO_DONE(FAIL);
+
+ /* Set output & return values */
+ *c_valid = (int_f)c_ret_value;
+ ret_value=0;
+
+done:
+ return ret_value;
+}
diff --git a/fortran/src/H5Iff.f90 b/fortran/src/H5Iff.f90
index 0b70f8b..83587ce 100644
--- a/fortran/src/H5Iff.f90
+++ b/fortran/src/H5Iff.f90
@@ -306,5 +306,47 @@
hdferr = h5iget_file_id_c(obj_id, file_id)
END SUBROUTINE h5iget_file_id_f
+!----------------------------------------------------------------------
+! Name: H5Iis_valid_f
+!
+! Purpose: Check if an ID is valid without producing an error message
+!
+! Inputs: id - identifier
+! Outputs:
+! valid - status of id as a valid identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Programmer: M. Scot Breitenfeld
+! April 13, 2009
+!
+! Comment:
+!----------------------------------------------------------------------
+ SUBROUTINE h5iis_valid_f(id, valid, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: id ! Identifier
+ LOGICAL, INTENT(OUT) :: valid ! Status of id as a valid identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: c_valid ! 0 = .false, 1 = .true.
+
+ INTERFACE
+ INTEGER FUNCTION h5iis_valid_c(id, c_valid)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IIS_VALID_C':: h5iis_valid_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: id ! Identifier
+ INTEGER :: c_valid
+ END FUNCTION h5iis_valid_c
+ END INTERFACE
+
+ hdferr = h5iis_valid_c(id, c_valid)
+
+ valid = .FALSE. ! Default
+ IF(c_valid.EQ.1) valid = .TRUE.
+
+ END SUBROUTINE h5iis_valid_f
+
+
END MODULE H5I