summaryrefslogtreecommitdiffstats
path: root/fortran
diff options
context:
space:
mode:
Diffstat (limited to 'fortran')
-rw-r--r--fortran/src/H5Gf.c30
-rw-r--r--fortran/src/H5Gff.f9078
2 files changed, 85 insertions, 23 deletions
diff --git a/fortran/src/H5Gf.c b/fortran/src/H5Gf.c
index 28e5312..1f3e416 100644
--- a/fortran/src/H5Gf.c
+++ b/fortran/src/H5Gf.c
@@ -725,14 +725,18 @@ done:
*
* nlinks - Number of links in group
* max_corder - Current maximum creation order value for group
+ * mounted - Whether group has a file mounted on it (0 = false, 1 = true)
*
* Returns: 0 on success, -1 on failure
* Programmer: M.S. Breitenfeld
* February 15, 2008
- * Modifications: N/A
+ * Modifications:
+ * - Added 'mounted' paramater
+ * M.S. Breitenfeld
+ * July 16, 2008
*---------------------------------------------------------------------------*/
int_f
-nh5gget_info_c (hid_t_f *group_id, int_f *storage_type, int_f *nlinks, int_f *max_corder)
+nh5gget_info_c (hid_t_f *group_id, int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted )
{
int_f ret_value = 0; /* Return value */
@@ -749,6 +753,8 @@ nh5gget_info_c (hid_t_f *group_id, int_f *storage_type, int_f *nlinks, int_f *ma
*storage_type = (int_f)ginfo.storage_type;
*nlinks = (int_f)ginfo.nlinks;
*max_corder = (int_f)ginfo.max_corder;
+ *mounted = 0;
+ if(ginfo.mounted) *mounted = 1;
done:
return ret_value;
@@ -774,16 +780,20 @@ done:
*
* nlinks - Number of links in group
* max_corder - Current maximum creation order value for group
+ * mounted - Whether group has a file mounted on it (0 = false, 1 = true)
*
* Returns: 0 on success, -1 on failure
* Programmer: M.S. Breitenfeld
* February 18, 2008
- * Modifications: N/A
+ * Modifications:
+ * - Added 'mounted' paramater
+ * M.S. Breitenfeld
+ * July 16, 2008
*---------------------------------------------------------------------------*/
int_f
nh5gget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
int_f *index_type, int_f *order, hsize_t_f *n, hid_t_f *lapl_id,
- int_f *storage_type, int_f *nlinks, int_f *max_corder)
+ int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted )
{
char *c_group_name = NULL; /* Buffer to hold group name C string */
@@ -807,6 +817,8 @@ nh5gget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
*storage_type = (int_f)ginfo.storage_type;
*nlinks = (int_f)ginfo.nlinks;
*max_corder = (int_f)ginfo.max_corder;
+ *mounted = 0;
+ if(ginfo.mounted) *mounted = 1;
done:
if(c_group_name)
@@ -830,15 +842,19 @@ nh5gget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
*
* nlinks - Number of links in group
* max_corder - Current maximum creation order value for group
+ * mounted - Whether group has a file mounted on it (0 = false, 1 = true)
*
* Returns: 0 on success, -1 on failure
* Programmer: M.S. Breitenfeld
* February 18, 2008
- * Modifications: N/A
+ * Modifications:
+ * - Added 'mounted' paramater
+ * M.S. Breitenfeld
+ * July 16, 2008
*---------------------------------------------------------------------------*/
int_f
nh5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen, hid_t_f *lapl_id,
- int_f *storage_type, int_f *nlinks, int_f *max_corder)
+ int_f *storage_type, int_f *nlinks, int_f *max_corder, int_f *mounted)
{
char *c_group_name = NULL; /* Buffer to hold group name C string */
@@ -861,6 +877,8 @@ nh5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen
*storage_type = (int_f)ginfo.storage_type;
*nlinks = (int_f)ginfo.nlinks;
*max_corder = (int_f)ginfo.max_corder;
+ *mounted = 0;
+ if(ginfo.mounted) *mounted = 1;
done:
if(c_group_name)
diff --git a/fortran/src/H5Gff.f90 b/fortran/src/H5Gff.f90
index 1e4b2b1..13baa94 100644
--- a/fortran/src/H5Gff.f90
+++ b/fortran/src/H5Gff.f90
@@ -1197,16 +1197,19 @@ CONTAINS
! Success: 0
! Failure: -1
! Optional parameters:
-! NONE
+! mounted - Whether group has a file mounted on it
!
! Programmer: M. S. Breitenfeld
! February 15, 2008
!
-! Modifications: N/A
+! Modifications:
+! - Added 'mounted' paramater
+! M.S. Breitenfeld
+! July 16, 2008
!
!----------------------------------------------------------------------
- SUBROUTINE h5gget_info_f(group_id, storage_type, nlinks, max_corder, hdferr)
+ SUBROUTINE h5gget_info_f(group_id, storage_type, nlinks, max_corder, hdferr, mounted)
!This definition is needed for Windows DLLs
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$attributes dllexport :: h5gget_info_f
@@ -1222,11 +1225,14 @@ CONTAINS
INTEGER, INTENT(OUT) :: max_corder ! Current maximum creation order value for group
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
+ LOGICAL, INTENT(OUT), OPTIONAL :: mounted ! Whether group has a file mounted on it
+
+ INTEGER :: mounted_c
! MS FORTRAN needs explicit interface for C functions called here.
!
INTERFACE
- INTEGER FUNCTION h5gget_info_c(group_id, storage_type, nlinks, max_corder)
+ INTEGER FUNCTION h5gget_info_c(group_id, storage_type, nlinks, max_corder, mounted_c)
USE H5GLOBAL
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5GGET_INFO_C'::h5gget_info_c
@@ -1235,10 +1241,19 @@ CONTAINS
INTEGER, INTENT(OUT) :: storage_type
INTEGER, INTENT(OUT) :: nlinks
INTEGER, INTENT(OUT) :: max_corder
+ INTEGER :: mounted_c
END FUNCTION h5gget_info_c
END INTERFACE
- hdferr = h5gget_info_c(group_id, storage_type, nlinks, max_corder)
+ hdferr = h5gget_info_c(group_id, storage_type, nlinks, max_corder, mounted_c)
+
+ IF(PRESENT(mounted))THEN
+ IF(mounted_c.EQ.0) THEN
+ mounted = .FALSE.
+ ELSE
+ mounted = .TRUE.
+ ENDIF
+ ENDIF
END SUBROUTINE h5gget_info_f
@@ -1266,17 +1281,21 @@ CONTAINS
! Success: 0
! Failure: -1
! Optional parameters:
-! lapl_id - Link access property list
+! lapl_id - Link access property list
+! mounted - Whether group has a file mounted on it
!
! Programmer: M. S. Breitenfeld
! February 18, 2008
!
-! Modifications: N/A
+! Modifications:
+! - Added 'mounted' paramater
+! M.S. Breitenfeld
+! July 16, 2008
!
!----------------------------------------------------------------------
SUBROUTINE h5gget_info_by_idx_f(loc_id, group_name, index_type, order, n, &
- storage_type, nlinks, max_corder, hdferr, lapl_id)
+ storage_type, nlinks, max_corder, hdferr, lapl_id, mounted)
!This definition is needed for Windows DLLs
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$attributes dllexport :: h5gget_info_by_idx_f
@@ -1297,7 +1316,9 @@ CONTAINS
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+ LOGICAL, INTENT(OUT), OPTIONAL :: mounted ! Whether group has a file mounted on it
+ INTEGER :: mounted_c
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T) :: group_name_len ! length of group name
@@ -1305,7 +1326,7 @@ CONTAINS
!
INTERFACE
INTEGER FUNCTION h5gget_info_by_idx_c(loc_id, group_name, group_name_len, index_type, order, n, lapl_id_default, &
- storage_type, nlinks, max_corder)
+ storage_type, nlinks, max_corder, mounted_c)
USE H5GLOBAL
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5GGET_INFO_BY_IDX_C'::h5gget_info_by_idx_c
@@ -1321,6 +1342,7 @@ CONTAINS
INTEGER, INTENT(OUT) :: max_corder
INTEGER(SIZE_T) :: group_name_len
+ INTEGER :: mounted_c
END FUNCTION h5gget_info_by_idx_c
END INTERFACE
@@ -1328,11 +1350,19 @@ CONTAINS
group_name_len = LEN(group_name)
lapl_id_default = H5P_DEFAULT_F
- IF(present(lapl_id)) lapl_id_default = lapl_id
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
hdferr = h5gget_info_by_idx_c(loc_id, group_name, group_name_len, &
index_type, order, n, lapl_id_default, &
- storage_type, nlinks, max_corder)
+ storage_type, nlinks, max_corder, mounted_c)
+
+ IF(PRESENT(mounted))THEN
+ IF(mounted_c.EQ.0) THEN
+ mounted = .FALSE.
+ ELSE
+ mounted = .TRUE.
+ ENDIF
+ ENDIF
END SUBROUTINE h5gget_info_by_idx_f
@@ -1357,17 +1387,20 @@ CONTAINS
! Success: 0
! Failure: -1
! Optional parameters:
-! lapl_id - Link access property list
+! lapl_id - Link access property list
+! mounted - Whether group has a file mounted on it
!
! Programmer: M. S. Breitenfeld
! February 18, 2008
!
-! Modifications: N/A
-!
+! Modifications:
+! - Added 'mounted' paramater
+! M.S. Breitenfeld
+! July 16, 2008
!----------------------------------------------------------------------
SUBROUTINE h5gget_info_by_name_f(loc_id, group_name, &
- storage_type, nlinks, max_corder, hdferr, lapl_id)
+ storage_type, nlinks, max_corder, hdferr, lapl_id, mounted)
!This definition is needed for Windows DLLs
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$attributes dllexport :: h5gget_info_by_name_f
@@ -1385,7 +1418,9 @@ CONTAINS
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+ LOGICAL, INTENT(OUT), OPTIONAL :: mounted ! Whether group has a file mounted on it
+ INTEGER :: mounted_c
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T) :: group_name_len ! length of group name
@@ -1393,7 +1428,7 @@ CONTAINS
!
INTERFACE
INTEGER FUNCTION h5gget_info_by_name_c(loc_id, group_name, group_name_len, lapl_id_default, &
- storage_type, nlinks, max_corder)
+ storage_type, nlinks, max_corder, mounted_c)
USE H5GLOBAL
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5GGET_INFO_BY_NAME_C'::h5gget_info_by_name_c
@@ -1406,6 +1441,7 @@ CONTAINS
INTEGER, INTENT(OUT) :: max_corder
INTEGER(SIZE_T) :: group_name_len
+ INTEGER :: mounted_c
END FUNCTION h5gget_info_by_name_c
END INTERFACE
@@ -1416,7 +1452,15 @@ CONTAINS
IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
hdferr = h5gget_info_by_name_c(loc_id, group_name, group_name_len, lapl_id_default, &
- storage_type, nlinks, max_corder)
+ storage_type, nlinks, max_corder, mounted_c)
+
+ IF(PRESENT(mounted))THEN
+ IF(mounted_c.EQ.0) THEN
+ mounted = .FALSE.
+ ELSE
+ mounted = .TRUE.
+ ENDIF
+ ENDIF
END SUBROUTINE h5gget_info_by_name_f