summaryrefslogtreecommitdiffstats
path: root/fortran
diff options
context:
space:
mode:
Diffstat (limited to 'fortran')
-rw-r--r--fortran/src/H5Iff.f9028
-rw-r--r--fortran/src/H5Pf.c172
-rw-r--r--fortran/src/H5Pff.f902236
-rw-r--r--fortran/src/H5f90proto.h62
4 files changed, 2249 insertions, 249 deletions
diff --git a/fortran/src/H5Iff.f90 b/fortran/src/H5Iff.f90
index 7f73242..0db7100 100644
--- a/fortran/src/H5Iff.f90
+++ b/fortran/src/H5Iff.f90
@@ -15,13 +15,13 @@
! Inputs: obj_id - object identifier
! Outputs:
! type - type of the object, possible values:
-! H5I_FILE_F(1)
-! H5I_GROUP_F(2)
-! H5I_DATATYPE_F(3)
-! H5I_DATASPACE_F(4)
-! H5I_DATASET_F(5)
-! H5I_ATTR_F(6)
-! H5I_BADID_F(-1)
+! H5I_FILE_F
+! H5I_GROUP_F
+! H5I_DATATYPE_F
+! H5I_DATASPACE_F
+! H5I_DATASET_F
+! H5I_ATTR_F
+! H5I_BADID_F
! hdferr: - error code
! Success: 0
! Failure: -1
@@ -42,13 +42,13 @@
INTEGER(HID_T), INTENT(IN) :: obj_id !Object identifier
INTEGER, INTENT(OUT) :: type !type of an object.
!possible values are:
- !H5I_FILE_F(1)
- !H5I_GROUP_F(2)
- !H5I_DATATYPE_F(3)
- !H5I_DATASPACE_F(4)
- !H5I_DATASET_F(5)
- !H5I_ATTR_F(6)
- !H5I_BADID_F(-1)
+ !H5I_FILE_F
+ !H5I_GROUP_F
+ !H5I_DATATYPE_F
+ !H5I_DATASPACE_F
+ !H5I_DATASET_F
+ !H5I_ATTR_F
+ !H5I_BADID_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
! INTEGER, EXTERNAL :: h5iget_type_c
diff --git a/fortran/src/H5Pf.c b/fortran/src/H5Pf.c
index d145427..785157e 100644
--- a/fortran/src/H5Pf.c
+++ b/fortran/src/H5Pf.c
@@ -739,12 +739,12 @@ nh5pget_istore_k_c (hid_t_f *prp_id, int_f* ik)
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pget_driver_c (hid_t_f *prp_id, int_f* driver)
+nh5pget_driver_c (hid_t_f *prp_id, hid_t_f* driver)
{
int ret_value = -1;
/*
hid_t c_prp_id;
- H5F_driver_t c_driver;
+ hid_t c_driver;
*/
/*
@@ -753,7 +753,7 @@ nh5pget_driver_c (hid_t_f *prp_id, int_f* driver)
/*
c_prp_id = *prp_id;
c_driver = H5Pget_driver(c_prp_id);
- *driver = (int_f) c_driver;
+ *driver = (hid_t_f) c_driver;
if (c_driver < 0) return ret_value;
*/
ret_value = 0;
@@ -761,114 +761,118 @@ nh5pget_driver_c (hid_t_f *prp_id, int_f* driver)
}
/*----------------------------------------------------------------------------
- * Name: h5pset_stdio_c
+ * Name: h5pset_fapl_stdio_c
* Purpose: Call H5Pset_stdio to set the low level file driver to
* use the functions declared in the stdio.h
* Inputs: prp_id - property list identifier
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 7, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pset_stdio_c (hid_t_f *prp_id)
+nh5pset_fapl_stdio_c (hid_t_f *prp_id)
{
int ret_value = -1;
hid_t c_prp_id;
herr_t ret = -1;
/*
- * Call H5Pset_stdio function.
+ * Call H5Pset_fapl_stdio function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pset_stdio(c_prp_id); */
+ ret = H5Pset_fapl_stdio(c_prp_id);
if (ret < 0) return ret_value;
ret_value = 0;
return ret_value;
}
-
+#ifdef NO_SUCH_F90_FUNCTION
/*----------------------------------------------------------------------------
- * Name: h5pget_stdio_c
- * Purpose: Call H5Pget_stdio to determine whther the low level file driver
+ * Name: h5pget_fapl_stdio_c
+ * Purpose: Call H5Pget_fapl_stdio to determine whther the low level file driver
* uses the functions declared in the stdio.h
* Inputs: prp_id - property list identifier
* Outputs: io - value indicates whether the file driver uses
* the functions declared in the stdio.h
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pget_stdio_c (hid_t_f *prp_id, int_f* io)
+nh5pget_fapl_stdio_c (hid_t_f *prp_id, int_f* io)
{
int ret_value = -1;
hid_t c_prp_id;
herr_t ret = -1;
/*
- * Call H5Pget_stdio function.
+ * Call H5Pget_fapl_stdio function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pget_stdio(c_prp_id); */
+ ret = H5Pget_fapl_stdio(c_prp_id);
if (ret < 0) return ret_value;
*io = (int_f)ret;
ret_value = 0;
return ret_value;
}
+#endif /*NO_SUCH_F90_FUNCTION*/
+
/*----------------------------------------------------------------------------
- * Name: h5pset_sec2_c
- * Purpose: Call H5Pset_sec2 to set the low level file driver to
+ * Name: h5pset_fapl_sec2_c
+ * Purpose: Call H5Pset_fapl_sec2 to set the low level file driver to
* use the functions declared in the unistd.h
* Inputs: prp_id - property list identifier
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pset_sec2_c (hid_t_f *prp_id)
+nh5pset_fapl_sec2_c (hid_t_f *prp_id)
{
int ret_value = -1;
hid_t c_prp_id;
herr_t ret = -1;
/*
- * Call H5Pset_sec2 function.
+ * Call H5Pset_fapl_sec2 function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pset_sec2(c_prp_id); */
+ ret = H5Pset_fapl_sec2(c_prp_id);
if (ret < 0) return ret_value;
ret_value = 0;
return ret_value;
}
+#ifdef NO_SUCH_F90_FUNCTION
/*----------------------------------------------------------------------------
- * Name: h5pget_sec2_c
- * Purpose: Call H5Pget_stdio to determine whther the low level file driver
+ * Name: h5pget_fapl_sec2_c
+ * Purpose: Call H5Pget_fapl_stdio to determine whther the low level file driver
* uses the functions declared in the unistd.h
* Inputs: prp_id - property list identifier
* Outputs: sec2 - value indicates whether the file driver uses
* the functions declared in the unistd.h
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pget_sec2_c (hid_t_f *prp_id, int_f* sec2)
+nh5pget_fapl_sec2_c (hid_t_f *prp_id, int_f* sec2)
{
int ret_value = -1;
hid_t c_prp_id;
herr_t ret = -1;
/*
- * Call H5Pget_sec2 function.
+ * Call H5Pget_fapl_sec2 function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pget_sec2(c_prp_id); */
+ ret = H5Pget_fapl_sec2(c_prp_id);
if (ret < 0) return ret_value;
*sec2 = (int_f)ret;
ret_value = 0;
return ret_value;
}
+#endif /*NO_SUCH_F90_FUNCTION*/
/*----------------------------------------------------------------------------
* Name: h5pset_alignment_c
@@ -889,12 +893,12 @@ nh5pset_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment
hid_t c_prp_id;
herr_t ret;
hsize_t c_threshold, c_alignment;
- c_threshold = *threshold;
- c_alignment = * alignment;
+ c_threshold = (hsize_t)*threshold;
+ c_alignment = (hsize_t)* alignment;
/*
* Call H5Pset_alignment function.
*/
- c_prp_id = *prp_id;
+ c_prp_id = (hid_t)*prp_id;
ret = H5Pset_alignment(c_prp_id, c_threshold, c_alignment);
if (ret < 0) return ret_value;
ret_value = 0;
@@ -923,7 +927,7 @@ nh5pget_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment
/*
* Call H5Pget_alignment function.
*/
- c_prp_id = *prp_id;
+ c_prp_id = (hid_t)*prp_id;
ret = H5Pget_alignment(c_prp_id, &c_threshold, &c_alignment);
if (ret < 0) return ret_value;
*threshold = (hsize_t_f)c_threshold;
@@ -934,78 +938,86 @@ nh5pget_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment
}
/*----------------------------------------------------------------------------
- * Name: h5pset_core_c
- * Purpose: Call H5Pset_core to set the low-level file driver
+ * Name: h5pset_fapl_core_c
+ * Purpose: Call H5Pset_fapl_core to set the low-level file driver
* to use malloc() and free()
* Inputs: prp_id - property list identifier
* increment - File block size in bytes
+ * flag - Boolean flag indicating whether to write the
+ * file contents to disk when the file is closed.
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pset_core_c (hid_t_f *prp_id, size_t_f* increment)
+nh5pset_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag)
{
int ret_value = -1;
hid_t c_prp_id;
herr_t ret = -1;
size_t c_increment;
+ hbool_t c_backing_store;
c_increment = (size_t)*increment;
+ c_backing_store = (hbool_t)*flag;
+
/*
- * Call H5Pset_core function.
+ * Call H5Pset_fapl_core function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pset_core(c_prp_id, c_increment); */
+ ret = H5Pset_fapl_core(c_prp_id, c_increment, c_backing_store);
if (ret < 0) return ret_value;
ret_value = 0;
return ret_value;
}
/*----------------------------------------------------------------------------
- * Name: h5pget_core_c
- * Purpose: Call H5Pget_core to determine whether the file access
+ * Name: h5pget_fapl_core_c
+ * Purpose: Call H5Pget_fapl_core to determine whether the file access
* property list is set to the core drive
* Inputs: prp_id - property list identifier
* Outputs increment - File block size in bytes
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pget_core_c (hid_t_f *prp_id, size_t_f* increment)
+nh5pget_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag)
{
int ret_value = -1;
hid_t c_prp_id;
herr_t ret = -1;
size_t c_increment = 0;
+ hbool_t c_backing_store;
+ *flag = 0;
/*
- * Call H5Pset_increment function.
+ * Call H5Pset_fapl_core function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pget_core(c_prp_id, &c_increment); */
+ ret = H5Pget_fapl_core(c_prp_id, &c_increment, &c_backing_store);
if (ret < 0) return ret_value;
*increment = (size_t_f)c_increment;
+ if(c_backing_store > 0) *flag = 1;
ret_value = 0;
return ret_value;
}
/*----------------------------------------------------------------------------
- * Name: h5pset_family_c
- * Purpose: Call H5Pset_family to set the file access properties list
+ * Name: h5pset_fapl_family_c
+ * Purpose: Call H5Pset_fapl_family to set the file access properties list
* to the family driver
* Inputs: prp_id - property list identifier
* memb_size - Logical size, in bytes, of each family member.
* memb_plist - Identifier of the file access property list
* for each member of the family
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pset_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist )
+nh5pset_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist )
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1013,32 +1025,32 @@ nh5pset_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist )
hsize_t c_memb_size;
hid_t c_memb_plist;
c_memb_size =(hsize_t) *memb_size;
- c_memb_plist =(hsize_t) *memb_plist;
+ c_memb_plist =(hid_t) *memb_plist;
/*
- * Call H5Pset_family function.
+ * Call H5Pset_fapl_family function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pset_family(c_prp_id, c_memb_size, c_memb_plist); */
+ ret = H5Pset_fapl_family(c_prp_id, c_memb_size, c_memb_plist);
if (ret < 0) return ret_value;
ret_value = 0;
return ret_value;
}
/*----------------------------------------------------------------------------
- * Name: h5pget_family_c
- * Purpose: Call H5Pget_family to determine whether the file access
+ * Name: h5pget_fapl_family_c
+ * Purpose: Call H5Pget_fapl_family to determine whether the file access
* property list is set to the family driver
* Inputs: prp_id - property list identifier
* memb_size - Logical size, in bytes, of each family member.
* memb_plist - Identifier of the file access property list
* for each member of the family
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pget_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist)
+nh5pget_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist)
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1046,13 +1058,13 @@ nh5pget_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist)
hsize_t c_memb_size = 0;
hid_t c_memb_plist = -1;
/*
- * Call H5Pget_family function.
+ * Call H5Pget_fapl_family function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pget_family(c_prp_id, &c_memb_size, &c_memb_plist); */
+ ret = H5Pget_fapl_family(c_prp_id, &c_memb_size, &c_memb_plist);
if (ret < 0) return ret_value;
*memb_size = (hsize_t_f)c_memb_size;
- *memb_plist = (hsize_t_f)c_memb_plist;
+ *memb_plist = (hid_t_f)c_memb_plist;
ret_value = 0;
return ret_value;
@@ -1141,8 +1153,8 @@ nh5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, int_f* rdcc_nelmts, size_t_f
}
/*----------------------------------------------------------------------------
- * Name: h5pset_split_c
- * Purpose: Call H5Pset_split to set he low-level driver to split meta data
+ * Name: h5pset_fapl_split_c
+ * Purpose: Call H5Pset_fapl_split to set he low-level driver to split meta data
* from raw data
* Inputs: prp_id - property list identifier
* meta_len - Length of meta_ext
@@ -1152,12 +1164,12 @@ nh5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, int_f* rdcc_nelmts, size_t_f
* raw_ext - Name of the extension for the raw file filename.
* raw_plist - Identifier of the raw file access property list
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pset_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_plist, int_f* raw_len, _fcd raw_ext, hid_t_f * raw_plist)
+nh5pset_fapl_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_plist, int_f* raw_len, _fcd raw_ext, hid_t_f * raw_plist)
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1172,21 +1184,22 @@ nh5pset_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_p
if (c_raw_ext == NULL) return ret_value;
/*
- * Call H5Pset_split function.
+ * Call H5Pset_fapl_split function.
*/
c_prp_id = *prp_id;
c_meta_plist = *meta_plist;
c_raw_plist = *raw_plist;
- /*ret = H5Pset_split(c_prp_id, c_meta_ext, c_meta_plist, c_raw_ext, c_raw_plist );*/
+ ret = H5Pset_fapl_split(c_prp_id, c_meta_ext, c_meta_plist, c_raw_ext, c_raw_plist );
if (ret < 0) return ret_value;
ret_value = 0;
return ret_value;
}
+#ifdef NO_SUCH_F90_FUNCTION
/*----------------------------------------------------------------------------
- * Name: h5pget_split_c
- * Purpose: Call H5Pget_split to determine whether the file access
+ * Name: h5pget_fapl_split_c
+ * Purpose: Call H5Pget_fapl_split to determine whether the file access
* property list is set to the split driver
* Inputs: prp_id - property list identifier
* meta_ext_size - Number of characters of the meta file extension
@@ -1198,12 +1211,12 @@ nh5pset_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_p
* raw_ext - Name of the extension for the raw file filename.
* raw_plist - Identifier of the raw file access property list
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9 , 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pget_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_f* meta_plist, size_t_f* raw_ext_size, _fcd raw_ext, hid_t_f * raw_plist)
+nh5pget_fapl_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_f* meta_plist, size_t_f* raw_ext_size, _fcd raw_ext, hid_t_f * raw_plist)
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1222,10 +1235,10 @@ nh5pget_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_
if(c_meta_ext == NULL || c_raw_ext == NULL) return ret_value;
/*
- * Call H5Pget_split function.
+ * Call H5Pget_fapl_split function.
*/
c_prp_id = *prp_id;
- /*ret = H5Pget_split(c_prp_id, c_meta_ext_size, c_meta_ext,&c_meta_plist, c_raw_ext_size, c_raw_ext, &c_raw_plist ); */
+ ret = H5Pget_fapl_split(c_prp_id, c_meta_ext_size, c_meta_ext,&c_meta_plist, c_raw_ext_size, c_raw_ext, &c_raw_plist );
if (ret < 0) return ret_value;
*meta_plist = c_meta_plist;
@@ -1236,6 +1249,7 @@ nh5pget_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_
ret_value = 0;
return ret_value;
}
+#endif /*NO_SUCH_F90_FUNCTION*/
/*----------------------------------------------------------------------------
* Name: h5pset_gc_references_c
diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.f90
index ec3414c..fa4fd91 100644
--- a/fortran/src/H5Pff.f90
+++ b/fortran/src/H5Pff.f90
@@ -26,22 +26,92 @@
CONTAINS
+!----------------------------------------------------------------------
+! Name: h5pcreate_f
+!
+! Purpose: Creates a new property as an instance of a property
+! list class.
+!
+! Inputs:
+! classtype - type of the property list to be created.
+! Possible values are:
+! H5P_FILE_CREATE_F
+! H5P_FILE_ACCESS_F
+! H5P_DATASET_CREATE_F
+! H5P_DATASET_XFER_F
+! H5P_MOUNT_F
+! Outputs:
+! prp_id - property list identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pcreate_f(classtype, prp_id, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: classtype ! The type of the property list
! to be created. Possible values
! are:
- ! H5P_FILE_CREATE_F (0)
- ! H5P_FILE_ACCESS_F (1)
- ! H5P_DATASET_CREATE_F (2)
- ! H5P_DATASET_XFER_F (3)
- ! H5P_MOUNT_F (4)
+ ! H5P_FILE_CREATE_F
+ ! H5P_FILE_ACCESS_F
+ ! H5P_DATASET_CREATE_F
+ ! H5P_DATASET_XFER_F
+ ! H5P_MOUNT_F
INTEGER(HID_T), INTENT(OUT) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pcreate_c
+
+! INTEGER, EXTERNAL :: h5pcreate_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pcreate_c(classtype, prp_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PCREATE_C'::h5pcreate_c
+ INTEGER, INTENT(IN) :: classtype
+ INTEGER(HID_T), INTENT(OUT) :: prp_id
+ END FUNCTION h5pcreate_c
+ END INTERFACE
+
hdferr = h5pcreate_c(classtype, prp_id)
END SUBROUTINE h5pcreate_f
+!----------------------------------------------------------------------
+! Name: h5pset_preserve_f
+!
+! Purpose: Sets the dataset transfer property list status to
+! TRUE or FALSE for initializing compound datatype
+! members during write/read operations.
+!
+! Inputs:
+! prp_id - property list identifier
+! flag - status flag
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_preserve_f(prp_id, flag, hdferr)
IMPLICIT NONE
@@ -50,10 +120,47 @@
! transfer property for partila writing/reading
! compound datatype
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_preserve_c
+
+! INTEGER, EXTERNAL :: h5pset_preserve_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_preserve_c(prp_id, flag)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_PRESERVE_C'::h5pset_preserve_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: flag
+ END FUNCTION h5pset_preserve_c
+ END INTERFACE
+
hdferr = h5pset_preserve_c(prp_id, flag)
END SUBROUTINE h5pset_preserve_f
+!----------------------------------------------------------------------
+! Name: h5pget_preserve_f
+!
+! Purpose: Checks status of the dataset transfer property list.
+!
+! Inputs:
+! prp_id - property list identifier
+! Outputs:
+! flag - status flag
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_preserve_f(prp_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -61,27 +168,109 @@
! transfer property for partial writing/reading
! compound datatype
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_preserve_c
+
+! INTEGER, EXTERNAL :: h5pget_preserve_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_preserve_c(prp_id, flag)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_PRESERVE_C'::h5pget_preserve_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: flag
+ END FUNCTION h5pget_preserve_c
+ END INTERFACE
+
hdferr = h5pget_preserve_c(prp_id, flag)
END SUBROUTINE h5pget_preserve_f
+!----------------------------------------------------------------------
+! Name: h5pget_class_f
+!
+! Purpose: Returns the property list class for a property list.
+!
+! Inputs:
+! prp_id - property list identifier
+! Outputs:
+! classtype - property list class
+! Possible values are:
+! H5P_NO_CLASS
+! H5P_FILE_CREATE_F
+! H5P_FILE_ACCESS_F
+! H5PE_DATASET_CREATE_F
+! H5P_DATASET_XFER_F
+! H5P_MOUNT_F
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_class_f(prp_id, classtype, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: classtype ! The type of the property list
! to be created. Possible values
! are:
- ! H5P_NO_CLASS (-1)
- ! H5P_FILE_CREATE_F (0)
- ! H5P_FILE_ACCESS_F (1)
- ! H5PE_DATASET_CREATE_F (2)
- ! H5P_DATASET_XFER_F (3)
- ! H5P_MOUNT_F (4)
+ ! H5P_NO_CLASS
+ ! H5P_FILE_CREATE_F
+ ! H5P_FILE_ACCESS_F
+ ! H5PE_DATASET_CREATE_F
+ ! H5P_DATASET_XFER_F
+ ! H5P_MOUNT_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_class_c
+
+! INTEGER, EXTERNAL :: h5pget_class_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_class_c(prp_id, classtype)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_CLASS_C'::h5pget_class_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: classtype
+ END FUNCTION h5pget_class_c
+ END INTERFACE
+
hdferr = h5pget_class_c(prp_id, classtype)
END SUBROUTINE h5pget_class_f
+!----------------------------------------------------------------------
+! Name: h5pcopy_f
+!
+! Purpose: Copies an existing property list to create a new
+! property list
+!
+! Inputs:
+! prp_id - property list identifier
+! Outputs:
+! new_prp_id - new property list identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pcopy_f(prp_id, new_prp_id, hdferr)
IMPLICIT NONE
@@ -90,19 +279,94 @@
! Identifier of property list
! copy
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pcopy_c
+
+! INTEGER, EXTERNAL :: h5pcopy_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pcopy_c(prp_id, new_prp_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PCOPY_C'::h5pcopy_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(OUT) :: new_prp_id
+ END FUNCTION h5pcopy_c
+ END INTERFACE
+
hdferr = h5pcopy_c(prp_id, new_prp_id)
END SUBROUTINE h5pcopy_f
+!----------------------------------------------------------------------
+! Name: h5pclose_f
+!
+! Purpose: Terminates access to a property list.
+!
+! Inputs:
+! prp_id - identifier of the property list to
+! terminate access to.
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pclose_f(prp_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pclose_c
+
+! INTEGER, EXTERNAL :: h5pclose_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pclose_c(prp_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PCLOSE_C'::h5pclose_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ END FUNCTION h5pclose_c
+ END INTERFACE
+
hdferr = h5pclose_c(prp_id)
END SUBROUTINE h5pclose_f
+!----------------------------------------------------------------------
+! Name: h5pset_chunk_f
+!
+! Purpose: Sets the size of the chunks used to store
+! a chunked layout dataset.
+!
+! Inputs:
+! prp_id - datatset creation property list identifier
+! ndims - number of dimensions for each chunk
+! dims - array with dimension sizes for each chunk
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_chunk_f(prp_id, ndims, dims, hdferr)
IMPLICIT NONE
@@ -112,10 +376,50 @@
! Array containing sizes of
! chunk dimensions
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_chunk_c
+
+! INTEGER, EXTERNAL :: h5pset_chunk_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_chunk_c(prp_id, ndims, dims)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_CHUNK_C'::h5pset_chunk_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: ndims
+ INTEGER(HSIZE_T), DIMENSION(ndims), INTENT(IN) :: dims
+ END FUNCTION h5pset_chunk_c
+ END INTERFACE
+
hdferr = h5pset_chunk_c(prp_id, ndims, dims)
END SUBROUTINE h5pset_chunk_f
+!----------------------------------------------------------------------
+! Name: h5pget_chunk_f
+!
+! Purpose: Retrieves the size of chunks for the raw data of a
+! chunked layout dataset
+!
+! Inputs:
+! prp_id - property list identifier
+! ndims - size of dims array
+! Outputs:
+! dims - array with dimension sizes for each chunk
+! hdferr: - error code
+! Success: number of chunk dimensions
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_chunk_f(prp_id, ndims, dims, hdferr)
IMPLICIT NONE
@@ -128,20 +432,99 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code; number of
! chunk dimensions on success,
! -1 on failure
- INTEGER, EXTERNAL :: h5pget_chunk_c
+
+! INTEGER, EXTERNAL :: h5pget_chunk_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_chunk_c(prp_id, ndims, dims)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_CHUNK_C'::h5pget_chunk_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER :: ndims
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: dims
+ END FUNCTION h5pget_chunk_c
+ END INTERFACE
+
hdferr = h5pget_chunk_c(prp_id, ndims, dims)
END SUBROUTINE h5pget_chunk_f
+!----------------------------------------------------------------------
+! Name: h5pset_deflate_f
+!
+! Purpose: Sets compression method and compression level.
+!
+! Inputs:
+! prp_id - property list identifier
+! level - compression level
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_deflate_f(prp_id, level, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: level ! Compression level
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_deflate_c
+
+! INTEGER, EXTERNAL :: h5pset_deflate_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_deflate_c(prp_id, level)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_DEFLATE_C'::h5pset_deflate_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: level
+ END FUNCTION h5pset_deflate_c
+ END INTERFACE
hdferr = h5pset_deflate_c(prp_id, level)
+
END SUBROUTINE h5pset_deflate_f
+!----------------------------------------------------------------------
+! Name: h5pset(get)fill_value_f
+!
+! Purpose: Sets(gets) fill value for a dataset creation property list
+!
+! Inputs:
+! prp_id - dataset creation property list identifier
+! type_id - datatype identifier for fill value
+! fillvalue - fill value
+! Outputs:
+! ( type_id - datatype identifier for fill value )
+! ( fillvalue - fill value )
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment: h5pset(get)fill_value_f function is overloaded to support
+! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_fill_value_integer(prp_id, type_id, fillvalue, &
hdferr)
@@ -152,7 +535,20 @@
! (in memory)
INTEGER, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pset_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILL_VALUE_C'::h5pset_fill_value_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_value_c
+ END INTERFACE
+
hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pset_fill_value_integer
@@ -166,7 +562,20 @@
! (in memory)
INTEGER, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pget_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILL_VALUE_C'::h5pget_fill_value_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER :: fillvalue
+ END FUNCTION h5pget_fill_value_c
+ END INTERFACE
+
hdferr = h5pget_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pget_fill_value_integer
@@ -180,7 +589,20 @@
! (in memory)
REAL, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pset_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILL_VALUE_C'::h5pset_fill_value_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ REAL, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_value_c
+ END INTERFACE
+
hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pset_fill_value_real
@@ -194,7 +616,20 @@
! (in memory)
REAL, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pget_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILL_VALUE_C'::h5pget_fill_value_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ REAL :: fillvalue
+ END FUNCTION h5pget_fill_value_c
+ END INTERFACE
+
hdferr = h5pget_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pget_fill_value_real
@@ -208,7 +643,20 @@
! (in memory)
DOUBLE PRECISION, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pset_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILL_VALUE_C'::h5pset_fill_value_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ DOUBLE PRECISION, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_value_c
+ END INTERFACE
+
hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pset_fill_value_double
@@ -222,11 +670,23 @@
! (in memory)
DOUBLE PRECISION, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pget_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILL_VALUE_C'::h5pget_fill_value_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ DOUBLE PRECISION :: fillvalue
+ END FUNCTION h5pget_fill_value_c
+ END INTERFACE
+
hdferr = h5pget_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pget_fill_value_double
-
SUBROUTINE h5pset_fill_value_char(prp_id, type_id, fillvalue, &
hdferr)
IMPLICIT NONE
@@ -236,11 +696,24 @@
! (in memory)
CHARACTER, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_fill_valuec_c
+
+! INTEGER, EXTERNAL :: h5pset_fill_valuec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_valuec_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILL_VALUEC_C'::h5pset_fill_valuec_c
+ !DEC$ATTRIBUTES reference :: fillvalue
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_valuec_c
+ END INTERFACE
+
hdferr = h5pset_fill_valuec_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pset_fill_value_char
-
SUBROUTINE h5pget_fill_value_char(prp_id, type_id, fillvalue, &
hdferr)
IMPLICIT NONE
@@ -250,10 +723,53 @@
! (in memory)
CHARACTER, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_fill_valuec_c
+
+! INTEGER, EXTERNAL :: h5pget_fill_valuec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_valuec_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILL_VALUEC_C'::h5pget_fill_valuec_c
+ !DEC$ATTRIBUTES reference :: fillvalue
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER :: fillvalue
+ END FUNCTION h5pget_fill_valuec_c
+ END INTERFACE
+
hdferr = h5pget_fill_valuec_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pget_fill_value_char
+!----------------------------------------------------------------------
+! Name: h5pget_version_f
+!
+! Purpose: Retrieves the version information of various objects
+! for a file creation property list
+!
+! Inputs:
+! prp_id - file createion property list identifier
+! Outputs:
+! boot - super block version number
+! freelist - global freelist version number
+! stab - symbol table version number
+! shhdr - shared object header version number
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_version_f(prp_id, boot, freelist, &
stab, shhdr, hdferr)
@@ -269,19 +785,96 @@
INTEGER, DIMENSION(:), INTENT(OUT) :: shhdr !array to put shared
!object header version number
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_version_c
+
+! INTEGER, EXTERNAL :: h5pget_version_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_version_c(prp_id, boot, freelist, stab, shhdr)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_VERSION_C'::h5pget_version_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, DIMENSION(:), INTENT(OUT) :: boot
+ INTEGER, DIMENSION(:), INTENT(OUT) :: freelist
+ INTEGER, DIMENSION(:), INTENT(OUT) :: stab
+ INTEGER, DIMENSION(:), INTENT(OUT) :: shhdr
+ END FUNCTION h5pget_version_c
+ END INTERFACE
+
hdferr = h5pget_version_c(prp_id, boot, freelist, stab, shhdr)
END SUBROUTINE h5pget_version_f
+
+!----------------------------------------------------------------------
+! Name: h5pset_userblock_f
+!
+! Purpose: Sets user block size
+!
+! Inputs:
+! prp_id - file creation property list to modify
+! size - size of the user-block in bytes
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pset_userblock_f (prp_id, size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HSIZE_T), INTENT(IN) :: size !Size of the user-block in bytes
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_userblock_c
+
+! INTEGER, EXTERNAL :: h5pset_userblock_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_userblock_c(prp_id, size)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_USERBLOCK_C'::h5pset_userblock_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_userblock_c
+ END INTERFACE
+
hdferr = h5pset_userblock_c(prp_id, size)
END SUBROUTINE h5pset_userblock_f
+!----------------------------------------------------------------------
+! Name: h5pget_userblock_f
+!
+! Purpose: Gets user block size.
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! Outputs:
+! block_size - size of the user block in bytes
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_userblock_f(prp_id, block_size, hdferr)
IMPLICIT NONE
@@ -289,11 +882,48 @@
INTEGER(HSIZE_T), DIMENSION(:), INTENT(OUT) :: block_size !Size of the
!user-block in bytes
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_userblock_c
- INTEGER :: len
+
+! INTEGER, EXTERNAL :: h5pget_userblock_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_userblock_c(prp_id, size)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_USERBLOCK_C'::h5pget_userblock_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_userblock_c
+ END INTERFACE
hdferr = h5pget_userblock_c(prp_id, block_size)
END SUBROUTINE h5pget_userblock_f
+!----------------------------------------------------------------------
+! Name: h5pset_sizes_f
+!
+! Purpose: Sets the byte size of the offsets and lengths used
+! to address objects in an HDF5 file.
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! sizeof_addr - size of an object offset in bytes
+! sizeof_size - size of an object length in bytes
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_sizes_f (prp_id, sizeof_addr, sizeof_size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -302,10 +932,50 @@
INTEGER(SIZE_T), INTENT(IN) :: sizeof_size !Size of an object
!length in bytes
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_sizes_c
+
+! INTEGER, EXTERNAL :: h5pset_sizes_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_sizes_c(prp_id, sizeof_addr, sizeof_size)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_SIZES_C'::h5pset_sizes_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(IN) :: sizeof_addr
+ INTEGER(SIZE_T), INTENT(IN) :: sizeof_size
+ END FUNCTION h5pset_sizes_c
+ END INTERFACE
+
hdferr = h5pset_sizes_c(prp_id, sizeof_addr, sizeof_size)
END SUBROUTINE h5pset_sizes_f
+!----------------------------------------------------------------------
+! Name: h5pget_sizes_f
+!
+! Purpose: Retrieves the size of the offsets and lengths used
+! in an HDF5 file
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! Outputs:
+! sizeof_addr - size of an object offset in bytes
+! sizeof_size - size of an object length in bytes
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_sizes_f(prp_id, sizeof_addr, sizeof_size, hdferr)
IMPLICIT NONE
@@ -316,10 +986,50 @@
!length in bytes
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_sizes_c
+
+! INTEGER, EXTERNAL :: h5pget_sizes_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_sizes_c(prp_id, sizeof_addr, sizeof_size)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_SIZES_C'::h5pget_sizes_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_addr
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_size
+ END FUNCTION h5pget_sizes_c
+ END INTERFACE
+
hdferr = h5pget_sizes_c(prp_id, sizeof_addr, sizeof_size)
END SUBROUTINE h5pget_sizes_f
+!----------------------------------------------------------------------
+! Name: h5pset_sym_k_f
+!
+! Purpose: Sets the size of parameters used to control the
+! symbol table nodes
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! ik - symbol table tree rank
+! lk - symbol table node size
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_sym_k_f (prp_id, ik, lk, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -327,10 +1037,50 @@
INTEGER, INTENT(IN) :: lk ! Symbol table node size
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_sym_k_c
+
+! INTEGER, EXTERNAL :: h5pset_sym_k_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_sym_k_c(prp_id, ik, lk)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_SYM_K_C'::h5pset_sym_k_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: ik
+ INTEGER, INTENT(IN) :: lk
+ END FUNCTION h5pset_sym_k_c
+ END INTERFACE
+
hdferr = h5pset_sym_k_c(prp_id, ik, lk)
END SUBROUTINE h5pset_sym_k_f
+!----------------------------------------------------------------------
+! Name: h5pget_sym_k_f
+!
+! Purpose: Retrieves the size of the symbol table B-tree 1/2 rank
+! and the symbol table leaf node 1/2 size.
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! Outputs:
+! ik - symbol table tree 1/2 rank
+! lk - symbol table node 1/2 size
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_sym_k_f(prp_id, ik, lk, hdferr)
IMPLICIT NONE
@@ -338,76 +1088,344 @@
INTEGER, INTENT(OUT) :: ik !Symbol table tree rank
INTEGER, INTENT(OUT) :: lk !Symbol table node size
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_sym_k_c
+
+! INTEGER, EXTERNAL :: h5pget_sym_k_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_sym_k_c(prp_id, ik, lk)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_SYM_K_C'::h5pget_sym_k_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: ik
+ INTEGER, INTENT(OUT) :: lk
+ END FUNCTION h5pget_sym_k_c
+ END INTERFACE
+
hdferr = h5pget_sym_k_c(prp_id, ik, lk)
END SUBROUTINE h5pget_sym_k_f
+!----------------------------------------------------------------------
+! Name: h5pset_istore_k_f
+!
+! Purpose: Sets the size of the parameter used to control the
+! B-trees for indexing chunked datasets
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! ik - 1/2 rank of chunked storage B-tree
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_istore_k_f (prp_id, ik, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: ik ! 1/2 rank of chunked storage B-tree
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_istore_k_c
+
+! INTEGER, EXTERNAL :: h5pset_istore_k_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_istore_k_c(prp_id, ik)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_ISTORE_K_C'::h5pset_istore_k_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: ik
+ END FUNCTION h5pset_istore_k_c
+ END INTERFACE
+
hdferr = h5pset_istore_k_c(prp_id, ik)
END SUBROUTINE h5pset_istore_k_f
+!----------------------------------------------------------------------
+! Name: h5pget_istore_k_f
+!
+! Purpose: Queries the 1/2 rank of an indexed storage B-tree.
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! Outputs:
+! ik - 1/2 rank of chunked storage B-tree
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_istore_k_f(prp_id, ik, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: ik !1/2 rank of chunked storage B-tree
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_istore_k_c
+
+! INTEGER, EXTERNAL :: h5pget_istore_k_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_istore_k_c(prp_id, ik)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_ISTORE_K_C'::h5pget_istore_k_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: ik
+ END FUNCTION h5pget_istore_k_c
+ END INTERFACE
+
hdferr = h5pget_istore_k_c(prp_id, ik)
END SUBROUTINE h5pget_istore_k_f
+!----------------------------------------------------------------------
+! Name: h5pget_driver_f
+!
+! Purpose: Returns low-lever driver identifier.
+!
+! Inputs:
+! prp_id - file access or data transfer property
+! list identifier.
+! Outputs:
+! driver - low-level driver identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_driver_f(prp_id, driver, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: driver !low-level file driver identifier
+ INTEGER(HID_T), INTENT(OUT) :: driver !low-level file driver identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_driver_c
+
+! INTEGER, EXTERNAL :: h5pget_driver_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_driver_c(prp_id, driver)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_DRIVER_C'::h5pget_driver_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(OUT) :: driver
+ END FUNCTION h5pget_driver_c
+ END INTERFACE
+
hdferr = h5pget_driver_c(prp_id, driver)
END SUBROUTINE h5pget_driver_f
- SUBROUTINE h5pset_stdio_f (prp_id, hdferr)
+!----------------------------------------------------------------------
+! Name: h5pset_fapl_stdio_f
+!
+! Purpose: Sets the standard I/O driver.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5pset_fapl_stdio_f (prp_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_stdio_c
- hdferr = h5pset_stdio_c(prp_id)
- END SUBROUTINE h5pset_stdio_f
- SUBROUTINE h5pget_stdio_f (prp_id, io, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: io ! value indicates that the file
+! INTEGER, EXTERNAL :: h5pset_fapl_stdio_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_stdio_c(prp_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_STDIO_C'::h5pset_fapl_stdio_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ END FUNCTION h5pset_fapl_stdio_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_stdio_c(prp_id)
+ END SUBROUTINE h5pset_fapl_stdio_f
+
+!----------------------------------------------------------------------
+! Name: h5pget_stdio_f
+!
+! Purpose: NOT AVAILABLE
+!
+! Inputs:
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+! SUBROUTINE h5pget_stdio_f (prp_id, io, hdferr)
+! IMPLICIT NONE
+! INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+! INTEGER, INTENT(OUT) :: io ! value indicates that the file
!access property list is set to
!the stdio driver
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_stdio_c
- hdferr = h5pget_stdio_c(prp_id, io)
- END SUBROUTINE h5pget_stdio_f
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
+! INTEGER, EXTERNAL :: h5pget_stdio_c
+! hdferr = h5pget_stdio_c(prp_id, io)
+! END SUBROUTINE h5pget_stdio_f
+
+!----------------------------------------------------------------------
+! Name: h5pset_fapl_sec2_f
+!
+! Purpose: Sets the sec2 driver.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
- SUBROUTINE h5pset_sec2_f (prp_id, hdferr)
+ SUBROUTINE h5pset_fapl_sec2_f (prp_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_sec2_c
- hdferr = h5pset_sec2_c(prp_id)
- END SUBROUTINE h5pset_sec2_f
- SUBROUTINE h5pget_sec2_f (prp_id, sec2, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: sec2 ! value indicates whether the file
+! INTEGER, EXTERNAL :: h5pset_fapl_sec2_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_sec2_c(prp_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_SEC2_C'::h5pset_fapl_sec2_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ END FUNCTION h5pset_fapl_sec2_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_sec2_c(prp_id)
+ END SUBROUTINE h5pset_fapl_sec2_f
+
+!----------------------------------------------------------------------
+! Name: h5pget_sec2_f
+!
+! Purpose: NOT AVAILABLE
+!
+! Inputs:
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+! SUBROUTINE h5pget_sec2_f (prp_id, sec2, hdferr)
+! IMPLICIT NONE
+! INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+! INTEGER, INTENT(OUT) :: sec2 ! value indicates whether the file
!driver uses the functions declared
!in the unistd.h file
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_sec2_c
- hdferr = h5pget_sec2_c(prp_id, sec2)
- END SUBROUTINE h5pget_sec2_f
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
+! INTEGER, EXTERNAL :: h5pget_sec2_c
+! hdferr = h5pget_sec2_c(prp_id, sec2)
+! END SUBROUTINE h5pget_sec2_f
+
+!----------------------------------------------------------------------
+! Name: h5pset_alignment_f
+!
+! Purpose: Sets alignment properties of a file access property list.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! threshold - threshold value
+! alignment - alignment value
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pset_alignment_f(prp_id, threshold, alignment, hdferr)
IMPLICIT NONE
@@ -415,39 +1433,205 @@
INTEGER(HSIZE_T), INTENT(IN) :: threshold ! Threshold value
INTEGER(HSIZE_T), INTENT(IN) :: alignment ! alignment value
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_alignment_c
+
+! INTEGER, EXTERNAL :: h5pset_alignment_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_alignment_c(prp_id, threshold, alignment)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_ALIGNMENT_C'::h5pset_alignment_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: threshold
+ INTEGER(HSIZE_T), INTENT(IN) :: alignment
+ END FUNCTION h5pset_alignment_c
+ END INTERFACE
+
hdferr = h5pset_alignment_c(prp_id, threshold, alignment)
END SUBROUTINE h5pset_alignment_f
+!----------------------------------------------------------------------
+! Name: h5pget_alignment_f
+!
+! Purpose: Retrieves the current settings for alignment
+! properties from a file access property list.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! threshold - threshold value
+! alignment - alignment value
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_alignment_f(prp_id, threshold, alignment, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HSIZE_T), INTENT(OUT) :: threshold ! Threshold value
INTEGER(HSIZE_T), INTENT(OUT) :: alignment ! alignment value
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_alignment_c
+
+! INTEGER, EXTERNAL :: h5pget_alignment_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_alignment_c(prp_id, threshold, alignment)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_ALIGNMENT_C'::h5pget_alignment_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: threshold
+ INTEGER(HSIZE_T), INTENT(OUT) :: alignment
+ END FUNCTION h5pget_alignment_c
+ END INTERFACE
+
hdferr = h5pget_alignment_c(prp_id, threshold, alignment)
END SUBROUTINE h5pget_alignment_f
- SUBROUTINE h5pset_core_f(prp_id, increment, hdferr)
+!----------------------------------------------------------------------
+! Name: h5pset_fapl_core_f
+!
+! Purpose: Modifies the file access property list to use the
+! H5FD_CORE driver.
+!
+! Inputs: prp_id - file access property list identifier
+! increment - size, in bytes, of memory increments
+! backing_store - boolean flag indicating whether to write
+! the file contents to disk when the file is closed.
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5pset_fapl_core_f(prp_id, increment, backing_store, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(SIZE_T), INTENT(IN) :: increment ! File block size in bytes.
+ INTEGER, INTENT(IN) :: backing_store ! flag to indicate that
+ ! entire file contents are flushed to a file
+ ! with the same name as this core file.
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_core_c
- hdferr = h5pset_core_c(prp_id, increment)
- END SUBROUTINE h5pset_core_f
- SUBROUTINE h5pget_core_f(prp_id, increment, hdferr)
+! INTEGER, EXTERNAL :: h5pset_fapl_core_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_core_c(prp_id, increment, backing_store)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_CORE_C'::h5pset_fapl_core_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(IN) :: increment
+ INTEGER, INTENT(IN) :: backing_store
+ END FUNCTION h5pset_fapl_core_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_core_c(prp_id, increment, backing_store)
+ END SUBROUTINE h5pset_fapl_core_f
+
+!----------------------------------------------------------------------
+! Name: h5pget_fapl_core_f
+!
+! Purpose: Queries core file driver properties.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! increment - size, in bytes, of memory increments
+! backing_store - boolean flag indicating whether to write
+! the file contents to disk when the file is closed.
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5pget_fapl_core_f(prp_id, increment, backing_store, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(SIZE_T), INTENT(OUT) :: increment ! File block size in bytes.
+ INTEGER, INTENT(OUT) :: backing_store ! flag to indicate that
+ ! entire file contents are flushed to a file
+ ! with the same name as this core file.
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_core_c
- hdferr = h5pget_core_c(prp_id, increment)
- END SUBROUTINE h5pget_core_f
- SUBROUTINE h5pset_family_f(prp_id, memb_size, memb_plist , hdferr)
+! INTEGER, EXTERNAL :: h5pget_fapl_core_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_core_c(prp_id, increment, backing_store)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FAPL_CORE_C'::h5pget_fapl_core_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(OUT) :: increment
+ INTEGER, INTENT(OUT) :: backing_store
+ END FUNCTION h5pget_fapl_core_c
+ END INTERFACE
+
+ hdferr = h5pget_fapl_core_c(prp_id, increment, backing_store)
+ END SUBROUTINE h5pget_fapl_core_f
+
+!----------------------------------------------------------------------
+! Name: h5pset_fapl_family_f
+!
+! Purpose: Sets the file access property list to use the family driver.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! memb_size - size in bytes of each file member
+! memb_plist - identifier of the file access property
+! list to be used for each family member
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5pset_fapl_family_f(prp_id, memb_size, memb_plist , hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HSIZE_T), INTENT(IN) :: memb_size ! Logical size, in bytes,
@@ -456,12 +1640,52 @@
!access property list for
!each member of the family
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_family_c
- hdferr = h5pset_family_c(prp_id, memb_size, memb_plist)
- END SUBROUTINE h5pset_family_f
+! INTEGER, EXTERNAL :: h5pset_fapl_family_f
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_family_c(prp_id, memb_size, memb_plist)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_FAMILY_C'::h5pset_fapl_family_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: memb_size
+ INTEGER(HID_T), INTENT(IN) :: memb_plist
+ END FUNCTION h5pset_fapl_family_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_family_c(prp_id, memb_size, memb_plist)
+ END SUBROUTINE h5pset_fapl_family_f
+
+!----------------------------------------------------------------------
+! Name: h5pget_fapl_family_f
+!
+! Purpose: Returns file access property list information.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! memb_size - size in bytes of each file member
+! memb_plist - identifier of the file access property
+! list to be used for each family member
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
- SUBROUTINE h5pget_family_f(prp_id, memb_size, memb_plist , hdferr)
+
+ SUBROUTINE h5pget_fapl_family_f(prp_id, memb_size, memb_plist , hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HSIZE_T), INTENT(OUT) :: memb_size ! Logical size, in bytes,
@@ -470,9 +1694,53 @@
!access property list for
!each member of the family
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_family_c
- hdferr = h5pget_family_c(prp_id, memb_size, memb_plist)
- END SUBROUTINE h5pget_family_f
+
+! INTEGER, EXTERNAL :: h5pget_fapl_family_f
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_family_c(prp_id, memb_size, memb_plist)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FAPL_FAMILY_C'::h5pget_fapl_family_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: memb_size
+ INTEGER(HID_T), INTENT(OUT) :: memb_plist
+ END FUNCTION h5pget_fapl_family_c
+ END INTERFACE
+
+ hdferr = h5pget_fapl_family_c(prp_id, memb_size, memb_plist)
+ END SUBROUTINE h5pget_fapl_family_f
+
+!----------------------------------------------------------------------
+! Name: h5pset_cache_f
+!
+! Purpose: Sets the meta data cache and raw data chunk
+! cache parameters
+!
+! Inputs:
+! prp_id - file access property list identifier
+! mdc_nelmts - number of elements (objects) in the meta
+! data cache
+! rdcc_nelmts - number of elements (objects) in the raw
+! data chunk cache
+! rdcc_nbytes - total size of the raw data chunk cache, in bytes
+! rdcc_w0 - preemption policy (0 or 1)
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pset_cache_f(prp_id, mdc_nelmts,rdcc_nelmts, rdcc_nbytes, rdcc_w0, hdferr)
IMPLICIT NONE
@@ -486,10 +1754,55 @@
REAL, INTENT(IN) :: rdcc_w0 !Preemption policy
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_cache_c
+! INTEGER, EXTERNAL :: h5pset_cache_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_cache_c(prp_id,mdc_nelmts,rdcc_nelmts,rdcc_nbytes,rdcc_w0)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_CACHE_C'::h5pset_cache_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: mdc_nelmts
+ INTEGER, INTENT(IN) :: rdcc_nelmts
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes
+ REAL, INTENT(IN) :: rdcc_w0
+ END FUNCTION h5pset_cache_c
+ END INTERFACE
+
hdferr = h5pset_cache_c(prp_id, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, rdcc_w0 )
END SUBROUTINE h5pset_cache_f
+!----------------------------------------------------------------------
+! Name: h5pget_cache_f
+!
+! Purpose: Queries the meta data cache and raw data chunk cache
+! parameters.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! mdc_nelmts - number of elements (objects) in the meta
+! data cache
+! rdcc_nelmts - number of elements (objects) in the raw
+! data chunk cache
+! rdcc_nbytes - total size of the raw data chunk cache, in bytes
+! rdcc_w0 - preemption policy (0 or 1)
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_cache_f(prp_id, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, rdcc_w0, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -502,11 +1815,56 @@
REAL, INTENT(OUT) :: rdcc_w0 !Preemption policy
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_cache_c
+
+! INTEGER, EXTERNAL :: h5pget_cache_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_cache_c(prp_id,mdc_nelmts,rdcc_nelmts,rdcc_nbytes,rdcc_w0)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_CACHE_C'::h5pget_cache_c
+ INTEGER(HID_T), INTENT(OUT) :: prp_id
+ INTEGER, INTENT(OUT) :: mdc_nelmts
+ INTEGER, INTENT(OUT) :: rdcc_nelmts
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes
+ REAL, INTENT(OUT) :: rdcc_w0
+ END FUNCTION h5pget_cache_c
+ END INTERFACE
+
hdferr = h5pget_cache_c(prp_id, mdc_nelmts,rdcc_nelmts, rdcc_nbytes, rdcc_w0 )
END SUBROUTINE h5pget_cache_f
- SUBROUTINE h5pset_split_f(prp_id, meta_ext, meta_plist, raw_ext, raw_plist, hdferr)
+!----------------------------------------------------------------------
+! Name: h5pset_fapl_split_f
+!
+! Purpose: Emulates the old split file driver.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! meta_ext - name of the extension for the metafile
+! filename
+! meta_plist - identifier of the meta file access property
+! list
+! raw_ext - name extension for the raw file filename
+! raw_plist - identifier of the raw file access property list
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5pset_fapl_split_f(prp_id, meta_ext, meta_plist, raw_ext, raw_plist, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
CHARACTER(LEN=*), INTENT(IN) :: meta_ext !Name of the extension for
@@ -517,38 +1875,104 @@
INTEGER(HID_T), INTENT(IN) :: raw_plist !Identifier of the raw file
!access property list
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: meta_len, raw_len;
+ INTEGER :: meta_len, raw_len
+
+! INTEGER, EXTERNAL :: h5pset_fapl_split_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_split_c(prp_id,meta_len,meta_ext,meta_plist,raw_len,raw_ext,raw_plist)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_SPLIT_C'::h5pset_fapl_split_c
+ !DEC$ATTRIBUTES reference :: meta_ext
+ !DEC$ATTRIBUTES reference :: raw_ext
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: meta_ext
+ INTEGER(HID_T), INTENT(IN) :: meta_plist
+ CHARACTER(LEN=*), INTENT(IN) :: raw_ext
+ INTEGER(HID_T), INTENT(IN) :: raw_plist
+ INTEGER :: meta_len, raw_len
+ END FUNCTION h5pset_fapl_split_c
+ END INTERFACE
- INTEGER, EXTERNAL :: h5pset_split_c
meta_len = LEN(meta_ext)
raw_len = LEN(raw_ext)
- hdferr = h5pset_split_c(prp_id, meta_len, meta_ext, meta_plist, raw_len, raw_ext, raw_plist )
- END SUBROUTINE h5pset_split_f
+ hdferr = h5pset_fapl_split_c(prp_id,meta_len,meta_ext,meta_plist,raw_len,raw_ext,raw_plist)
+ END SUBROUTINE h5pset_fapl_split_f
- SUBROUTINE h5pget_split_f(prp_id, meta_ext_size, meta_ext, meta_plist,raw_ext_size,&
- raw_ext, raw_plist, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(SIZE_T), INTENT(IN) :: meta_ext_size ! Number of characters of the meta
+!----------------------------------------------------------------------
+! Name: h5pget_split_f
+!
+! Purpose: NOT AVAILABLE
+!
+! Inputs:
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+! SUBROUTINE h5pget_split_f(prp_id, meta_ext_size, meta_ext, meta_plist,raw_ext_size,&
+! raw_ext, raw_plist, hdferr)
+! IMPLICIT NONE
+! INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+! INTEGER(SIZE_T), INTENT(IN) :: meta_ext_size ! Number of characters of the meta
! file extension to be copied to the
! meta_ext buffer
- CHARACTER(LEN=*), INTENT(OUT) :: meta_ext !Name of the extension for
+! CHARACTER(LEN=*), INTENT(OUT) :: meta_ext !Name of the extension for
!the metafile filename
- INTEGER(HID_T), INTENT(OUT) :: meta_plist ! Identifier of the meta file
+! INTEGER(HID_T), INTENT(OUT) :: meta_plist ! Identifier of the meta file
! access property list
- INTEGER(SIZE_T), INTENT(IN) :: raw_ext_size ! Number of characters of the raw
+! INTEGER(SIZE_T), INTENT(IN) :: raw_ext_size ! Number of characters of the raw
! file extension to be copied to the
! raw_ext buffer
- CHARACTER(LEN=*), INTENT(OUT) :: raw_ext !Name extension for the raw file filename
- INTEGER(HID_T), INTENT(OUT) :: raw_plist !Identifier of the raw file
+! CHARACTER(LEN=*), INTENT(OUT) :: raw_ext !Name extension for the raw file filename
+! INTEGER(HID_T), INTENT(OUT) :: raw_plist !Identifier of the raw file
!access property list
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_split_c
- hdferr = h5pget_split_c(prp_id, meta_ext_size, meta_ext, meta_plist, &
- raw_ext_size, raw_ext, raw_plist )
- END SUBROUTINE h5pget_split_f
+! INTEGER, EXTERNAL :: h5pget_split_c
+! hdferr = h5pget_split_c(prp_id, meta_ext_size, meta_ext, meta_plist, &
+! raw_ext_size, raw_ext, raw_plist )
+! END SUBROUTINE h5pget_split_f
+
+!----------------------------------------------------------------------
+! Name: h5pset_gc_references_f
+!
+! Purpose: Sets garbage collecting references flag.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! gc_reference - flag for stting garbage collection on
+! and off (1 or 0)
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pset_gc_references_f (prp_id, gc_reference, hdferr)
@@ -557,33 +1981,154 @@
INTEGER, INTENT(IN) :: gc_reference !the flag for garbage collecting
! references for the file
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_gc_references_c
+
+! INTEGER, EXTERNAL :: h5pset_gc_references_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_gc_references_c(prp_id, gc_reference)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_GC_REFERENCES_C'::h5pset_gc_references_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: gc_reference
+ END FUNCTION h5pset_gc_references_c
+ END INTERFACE
+
hdferr = h5pset_gc_references_c(prp_id, gc_reference)
END SUBROUTINE h5pset_gc_references_f
+!----------------------------------------------------------------------
+! Name: h5pget_gc_references_f
+!
+! Purpose: Returns garbage collecting references setting.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! gc_reference - flag for stting garbage collection on
+! and off (1 or 0)
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_gc_references_f (prp_id, gc_reference, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: gc_reference !the flag for garbage collecting
! references for the file
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_gc_references_c
+
+! INTEGER, EXTERNAL :: h5pget_gc_references_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_gc_references_c(prp_id, gc_reference)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_GC_REFERENCES_C'::h5pget_gc_references_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: gc_reference
+ END FUNCTION h5pget_gc_references_c
+ END INTERFACE
+
hdferr = h5pget_gc_references_c(prp_id, gc_reference)
END SUBROUTINE h5pget_gc_references_f
+!----------------------------------------------------------------------
+! Name: h5pset_layout_f
+!
+! Purpose: Sets the type of storage used store the raw data
+! for a dataset.
+!
+! Inputs:
+! prp_id - data creation property list identifier
+! layout - type of storage layout for raw data
+! possible values are:
+! H5D_COMPACT_F
+! H5D_CONTIGUOUS_F
+! H5D_CHUNKED_F
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_layout_f (prp_id, layout, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: layout !Type of storage layout for raw data
!possible values are:
- !H5D_COMPACT_F(0)
- !H5D_CONTIGUOUS_F(1)
- !H5D_CHUNKED_F(2)
+ !H5D_COMPACT_F
+ !H5D_CONTIGUOUS_F
+ !H5D_CHUNKED_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_layout_c
+
+! INTEGER, EXTERNAL :: h5pset_layout_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_layout_c(prp_id, layout)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_LAYOUT_C'::h5pset_layout_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: layout
+ END FUNCTION h5pset_layout_c
+ END INTERFACE
+
hdferr = h5pset_layout_c(prp_id, layout)
END SUBROUTINE h5pset_layout_f
+!----------------------------------------------------------------------
+! Name: h5pget_layout_f
+!
+! Purpose: Returns the layout of the raw data for a dataset.
+!
+! Inputs:
+! prp_id - data creation property list identifier
+! Outputs:
+! layout - type of storage layout for raw data
+! possible values are:
+! H5D_COMPACT_F
+! H5D_CONTIGUOUS_F
+! H5D_CHUNKED_F
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_layout_f (prp_id, layout, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -593,10 +2138,52 @@
!H5D_CONTIGUOUS_F(1)
!H5D_CHUNKED_F(2)
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_layout_c
+
+! INTEGER, EXTERNAL :: h5pget_layout_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_layout_c(prp_id, layout)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_LAYOUT_C'::h5pget_layout_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: layout
+ END FUNCTION h5pget_layout_c
+ END INTERFACE
+
hdferr = h5pget_layout_c(prp_id, layout)
END SUBROUTINE h5pget_layout_f
+!----------------------------------------------------------------------
+! Name: h5pset_filter_f
+!
+! Purpose: Adds a filter to the filter pipeline.
+!
+! Inputs:
+! prp_id - data creation or transfer property list
+! identifier
+! filter - filter to be added to the pipeline
+! flags - bit vector specifying certain general
+! properties of the filter
+! cd_nelmts - number of elements in cd_values
+! cd_values - auxiliary data for the filter
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_filter_f(prp_id, filter, flags, cd_nelmts, cd_values, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -608,19 +2195,104 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_filter_c
+! INTEGER, EXTERNAL :: h5pset_filter_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_filter_c(prp_id, filter, flags, cd_nelmts, cd_values)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILTER_C'::h5pset_filter_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter
+ INTEGER, INTENT(IN) :: flags
+ INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts
+ INTEGER, DIMENSION(*), INTENT(IN) :: cd_values
+ END FUNCTION h5pset_filter_c
+ END INTERFACE
+
hdferr = h5pset_filter_c(prp_id, filter, flags, cd_nelmts, cd_values )
END SUBROUTINE h5pset_filter_f
+!----------------------------------------------------------------------
+! Name: h5pget_nfilters_f
+!
+! Purpose: Returns the number of filters in the pipeline.
+!
+! Inputs:
+! prp_id - data creation or transfer property list
+! identifier
+! Outputs:
+! nfilters - number of filters in the pipeline
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_nfilters_f (prp_id, nfilters, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: nfilters !the number of filters in the pipeline
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_nfilters_c
+
+! INTEGER, EXTERNAL :: h5pget_nfilters_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_nfilters_c(prp_id, nfilters)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_NFILTERS_C'::h5pget_nfilters_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: nfilters
+ END FUNCTION h5pget_nfilters_c
+ END INTERFACE
+
hdferr = h5pget_nfilters_c(prp_id, nfilters)
END SUBROUTINE h5pget_nfilters_f
+!----------------------------------------------------------------------
+! Name: h5pget_filter_f
+!
+! Purpose: Returns information about a filter in a pipeline
+!
+! Inputs:
+! prp_id - data creation or transfer property list
+! identifier
+! Outputs:
+! identifier
+! filter - filter to be added to the pipeline
+! flags - bit vector specifying certain general
+! properties of the filter
+! cd_nelmts - number of elements in cd_values
+! cd_values - auxiliary data for the filter
+! namelen - number of characters in the name buffer
+! name - buffer to retrieve filter name
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_filter_f(prp_id, filter_number, flags, cd_nelmts, cd_values, namelen, name, filter_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -637,11 +2309,60 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_filter_c
+
+! INTEGER, EXTERNAL :: h5pget_filter_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_filter_c(prp_id, filter_number, flags, cd_nelmts, &
+ cd_values, namelen, name, filter_id )
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILTER_C'::h5pget_filter_c
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter_number
+ INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values
+ INTEGER, INTENT(OUT) :: flags
+ INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts
+ INTEGER(SIZE_T), INTENT(IN) :: namelen
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ INTEGER, INTENT(OUT) :: filter_id
+ END FUNCTION h5pget_filter_c
+ END INTERFACE
+
hdferr = h5pget_filter_c(prp_id, filter_number, flags, cd_nelmts, &
cd_values, namelen, name, filter_id )
END SUBROUTINE h5pget_filter_f
+!----------------------------------------------------------------------
+! Name: h5pset_external_f
+!
+! Purpose: Adds an external file to the list of external files.
+!
+! Inputs:
+! prp_id - dataset creation property list identifier
+! name - name of external file
+! offset - offset in bytes from the beginning of the
+! file to the location in the file
+! where the data starts
+! bytes - size of the external file data.
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_external_f(prp_id, name, offset,bytes, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -653,23 +2374,107 @@
!file for the data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_external_c
INTEGER :: namelen
- namelen = LEN(name)
- hdferr = h5pset_external_c(prp_id, name,namelen, offset, bytes)
+! INTEGER, EXTERNAL :: h5pset_external_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_external_c(prp_id, name,namelen, offset, bytes)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_EXTERNAL_C'::h5pset_external_c
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER, INTENT(IN) :: offset
+ INTEGER(HSIZE_T), INTENT(IN) :: bytes
+ END FUNCTION h5pset_external_c
+ END INTERFACE
+
+ namelen = LEN(name)
+ hdferr = h5pset_external_c(prp_id, name, namelen, offset, bytes)
END SUBROUTINE h5pset_external_f
+!----------------------------------------------------------------------
+! Name: h5pget_external_count_f
+!
+! Purpose: Returns the number of external files for a dataset.
+!
+! Inputs:
+! prp_id - dataset creation property list identifier
+! Outputs:
+! count - number of external files for the
+! specified dataset
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_external_count_f (prp_id, count, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: count !number of external files for the
!specified dataset
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_external_count_c
+! INTEGER, EXTERNAL :: h5pget_external_count_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_external_count_c(prp_id, count)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5Pget_external_count_C'::h5pget_external_count_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: count
+ END FUNCTION h5pget_external_count_c
+ END INTERFACE
+
hdferr = h5pget_external_count_c(prp_id, count)
END SUBROUTINE h5pget_external_count_f
+!----------------------------------------------------------------------
+! Name: h5pget_external_f
+!
+! Purpose: Returns information about an external file.
+!
+! Inputs:
+! prp_id - dataset creation property list identifier
+! Outputs:
+! idx - external file index
+! name_size - maximum size of name array
+! name - name of the external file
+! name - name of external file
+! offset - offset in bytes from the beginning of the
+! file to the location in the file
+! where the data starts
+! bytes - size of the external file data
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_external_f(prp_id, idx, name_size, name, offset,bytes, hdferr)
IMPLICIT NONE
@@ -684,11 +2489,54 @@
!file for the data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_external_c
+! INTEGER, EXTERNAL :: h5pget_external_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_external_c(prp_id, idx, name_size, name, offset, bytes)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_EXTERNAL_C'::h5pget_external_c
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: idx
+ INTEGER(SIZE_T), INTENT(IN) :: name_size
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ INTEGER, INTENT(OUT) :: offset
+ INTEGER(HSIZE_T), INTENT(OUT) :: bytes
+ END FUNCTION h5pget_external_c
+ END INTERFACE
hdferr = h5pget_external_c(prp_id, idx, name_size, name, offset, bytes)
END SUBROUTINE h5pget_external_f
+!----------------------------------------------------------------------
+! Name: h5pset_hyper_cache_f
+!
+! Purpose: Indicates whether to cache hyperslab blocks during I/O
+!
+! Inputs:
+! prp_id - dataset transfer property list identifier
+! cache - A flag indicating whether caching is to
+! be set to on (1) or off (0).
+! limit - maximum size of the hyperslab block to
+! cache; 0 (zero) indicates no limit
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_hyper_cache_f(prp_id, cache, limit, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -697,10 +2545,51 @@
!cache. 0 (zero) indicates no limit.
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_hyper_cache_c
+! INTEGER, EXTERNAL :: h5pset_hyper_cache_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_hyper_cache_c(prp_id, cache, limit)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_HYPER_CACHE_C'::h5pset_hyper_cache_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: cache
+ INTEGER, INTENT(IN) :: limit
+ END FUNCTION h5pset_hyper_cache_c
+ END INTERFACE
+
hdferr = h5pset_hyper_cache_c(prp_id, cache, limit)
END SUBROUTINE h5pset_hyper_cache_f
+!----------------------------------------------------------------------
+! Name: h5pget_hyper_cache_f
+!
+! Purpose: Returns information regarding the caching of hyperslab
+! blocks during I/O.
+!
+! Inputs:
+! prp_id - dataset transfer property list identifier
+! Outputs:
+! cache - a flag indicating whether caching is
+! set to on (1) or off (0).
+! limit - maximum size of the hyperslab block to
+! cache; 0 (zero) indicates no limit
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_hyper_cache_f(prp_id, cache, limit, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -709,10 +2598,52 @@
!cache. 0 (zero) indicates no limit.
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_hyper_cache_c
+
+! INTEGER, EXTERNAL :: h5pget_hyper_cache_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_hyper_cache_c(prp_id, cache, limit)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_HYPER_CACHE_C'::h5pget_hyper_cache_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: cache
+ INTEGER, INTENT(OUT) :: limit
+ END FUNCTION h5pget_hyper_cache_c
+ END INTERFACE
+
hdferr = h5pget_hyper_cache_c(prp_id, cache, limit)
END SUBROUTINE h5pget_hyper_cache_f
+!----------------------------------------------------------------------
+! Name: h5pset_btree_ratios_f
+!
+! Purpose: Sets B-tree split ratios for a dataset transfer
+! property list.
+!
+! Inputs:
+! prp_id - the dataset transfer property list
+! identifier
+! left - the B-tree split ratio for left-most nodes
+! middle - the B-tree split ratio for all other nodes
+! right - the B-tree split ratio for right-most nodes
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_btree_ratios_f(prp_id, left, middle, right, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -723,10 +2654,51 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_btree_ratios_c
+! INTEGER, EXTERNAL :: h5pset_btree_ratios_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_btree_ratios_c(prp_id, left, middle, right)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_BTREE_RATIOS_C'::h5pset_btree_ratios_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ REAL, INTENT(IN) :: left
+ REAL, INTENT(IN) :: middle
+ REAL, INTENT(IN) :: right
+ END FUNCTION h5pset_btree_ratios_c
+ END INTERFACE
+
hdferr = h5pset_btree_ratios_c(prp_id, left, middle, right)
END SUBROUTINE h5pset_btree_ratios_f
+!----------------------------------------------------------------------
+! Name: h5pget_btree_ratios_f
+!
+! Purpose: Gets B-tree split ratios for a dataset transfer property list
+!
+! Inputs:
+! prp_id - the dataset transfer property list
+! identifier
+! Outputs:
+! left - the B-tree split ratio for left-most nodes
+! middle - the B-tree split ratio for all other nodes
+! right - the B-tree split ratio for right-most nodes
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_btree_ratios_f(prp_id, left, middle, right, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -737,7 +2709,21 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_btree_ratios_c
+
+! INTEGER, EXTERNAL :: h5pget_btree_ratios_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_btree_ratios_c(prp_id, left, middle, right)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_BTREE_RATIOS_C'::h5pget_btree_ratios_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ REAL, INTENT(OUT) :: left
+ REAL, INTENT(OUT) :: middle
+ REAL, INTENT(OUT) :: right
+ END FUNCTION h5pget_btree_ratios_c
+ END INTERFACE
+
hdferr = h5pget_btree_ratios_c(prp_id, left, middle, right)
END SUBROUTINE h5pget_btree_ratios_f
diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h
index 40dbfe7..4ae677d 100644
--- a/fortran/src/H5f90proto.h
+++ b/fortran/src/H5f90proto.h
@@ -597,20 +597,20 @@ nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id);
# define nh5pget_istore_k_c FNAME(H5PGET_ISTORE_K_C)
# define nh5pset_istore_k_c FNAME(H5PSET_ISTORE_K_C)
# define nh5pget_driver_c FNAME(H5PGET_DRIVER_C)
-# define nh5pset_stdio_c FNAME(H5PSET_STDIO_C)
-# define nh5pget_stdio_c FNAME(H5PGET_STDIO_C)
-# define nh5pset_sec2_c FNAME(H5PSET_SEC2_C)
-# define nh5pget_sec2_c FNAME(H5PGET_SEC2_C)
+# define nh5pset_fapl_stdio_c FNAME(H5PSET_FAPL_STDIO_C)
+# define nh5pget_fapl_stdio_c FNAME(H5PGET_FAPL_STDIO_C)
+# define nh5pset_fapl_sec2_c FNAME(H5PSET_FAPL_SEC2_C)
+# define nh5pget_fapl_sec2_c FNAME(H5PGET_FAPL_SEC2_C)
# define nh5pset_alignment_c FNAME(H5PSET_ALIGNMENT_C)
# define nh5pget_alignment_c FNAME(H5PGET_ALIGNMENT_C)
-# define nh5pset_core_c FNAME(H5PSET_CORE_C)
-# define nh5pget_core_c FNAME(H5PGET_CORE_C)
-# define nh5pset_family_c FNAME(H5PSET_FAMILY_C)
-# define nh5pget_family_c FNAME(H5PGET_FAMILY_C)
+# define nh5pset_fapl_core_c FNAME(H5PSET_FAPL_CORE_C)
+# define nh5pget_fapl_core_c FNAME(H5PGET_FAPL_CORE_C)
+# define nh5pset_fapl_family_c FNAME(H5PSET_FAPL_FAMILY_C)
+# define nh5pget_fapl_family_c FNAME(H5PGET_FAPL_FAMILY_C)
# define nh5pset_cache_c FNAME(H5PSET_CACHE_C)
# define nh5pget_cache_c FNAME(H5PGET_CACHE_C)
-# define nh5pset_split_c FNAME(H5PSET_SPLIT_C)
-# define nh5pget_split_c FNAME(H5PGET_SPLIT_C)
+# define nh5pset_fapl_split_c FNAME(H5PSET_FAPL_SPLIT_C)
+# define nh5pget_fapl_split_c FNAME(H5PGET_FAPL_SPLIT_C)
# define nh5pset_gc_refernces_c FNAME(H5PSET_GC_REFERENCES_C)
# define nh5pget_gc_refernces_c FNAME(H5PGET_GC_REFERENCES_C)
# define nh5pset_layout_c FNAME(H5PSET_LAYOUT_C)
@@ -654,20 +654,20 @@ nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id);
# define nh5pget_istore_k_c FNAME(h5pget_istore_k_c)
# define nh5pset_istore_k_c FNAME(h5pset_istore_k_c)
# define nh5pget_driver_c FNAME(h5pget_driver_c)
-# define nh5pset_stdio_c FNAME(h5pset_stdio_c)
-# define nh5pget_stdio_c FNAME(h5pget_stdio_c)
-# define nh5pset_sec2_c FNAME(h5pset_sec2_c)
-# define nh5pget_sec2_c FNAME(h5pget_sec2_c)
+# define nh5pset_fapl_stdio_c FNAME(h5pset_fapl_stdio_c)
+# define nh5pget_fapl_stdio_c FNAME(h5pget_fapl_stdio_c)
+# define nh5pset_fapl_sec2_c FNAME(h5pset_fapl_sec2_c)
+# define nh5pget_fapl_sec2_c FNAME(h5pget_fapl_sec2_c)
# define nh5pset_alignment_c FNAME(h5pset_alignment_c)
# define nh5pget_alignment_c FNAME(h5pget_alignment_c)
-# define nh5pset_core_c FNAME(h5pset_core_c)
-# define nh5pget_core_c FNAME(h5pget_core_c)
-# define nh5pset_family_c FNAME(h5pset_family_c)
-# define nh5pget_family_c FNAME(h5pget_family_c)
+# define nh5pset_fapl_core_c FNAME(h5pset_fapl_core_c)
+# define nh5pget_fapl_core_c FNAME(h5pget_fapl_core_c)
+# define nh5pset_fapl_family_c FNAME(h5pset_fapl_family_c)
+# define nh5pget_fapl_family_c FNAME(h5pget_fapl_family_c)
# define nh5pset_cache_c FNAME(h5pset_cache_c)
# define nh5pget_cache_c FNAME(h5pget_cache_c)
-# define nh5pset_split_c FNAME(h5pset_split_c)
-# define nh5pget_split_c FNAME(h5pget_split_c)
+# define nh5pset_fapl_split_c FNAME(h5pset_fapl_split_c)
+# define nh5pget_fapl_split_c FNAME(h5pget_fapl_split_c)
# define nh5pset_gc_references_c FNAME(h5pset_gc_references_c)
# define nh5pget_gc_references_c FNAME(h5pget_gc_references_c)
# define nh5pset_layout_c FNAME(h5pset_layout_c)
@@ -740,35 +740,35 @@ nh5pset_istore_k_c (hid_t_f *prp_id, int_f* ik);
extern int_f
nh5pget_istore_k_c (hid_t_f *prp_id, int_f* ik);
extern int_f
-nh5pget_driver_c (hid_t_f *prp_id, int_f*driver);
+nh5pget_driver_c (hid_t_f *prp_id, hid_t_f*driver);
extern int_f
-nh5pset_stdio_c (hid_t_f *prp_id);
+nh5pset_fapl_stdio_c (hid_t_f *prp_id);
extern int_f
-nh5pget_stdio_c (hid_t_f *prp_id, int_f* io);
+nh5pget_fapl_stdio_c (hid_t_f *prp_id, int_f* io);
extern int_f
-nh5pset_sec2_c (hid_t_f *prp_id);
+nh5pset_fapl_sec2_c (hid_t_f *prp_id);
extern int_f
-nh5pget_sec2_c (hid_t_f *prp_id, int_f* sec2);
+nh5pget_fapl_sec2_c (hid_t_f *prp_id, int_f* sec2);
extern int_f
nh5pset_alignment_c(hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment);
extern int_f
nh5pget_alignment_c(hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment);
extern int_f
-nh5pget_core_c (hid_t_f *prp_id, size_t_f* increment);
+nh5pget_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag);
extern int_f
-nh5pset_core_c (hid_t_f *prp_id, size_t_f* increment);
+nh5pset_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag);
extern int_f
-nh5pset_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist );
+nh5pset_fapl_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist );
extern int_f
-nh5pget_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist );
+nh5pget_fapl_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist );
extern int_f
nh5pset_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, int_f* rdcc_nelmts, size_t_f* rdcc_nbytes, real_f* rdcc_w0);
extern int_f
nh5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, int_f* rdcc_nelmts, size_t_f* rdcc_nbytes, real_f* rdcc_w0);
extern int_f
-nh5pget_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_f* meta_plist, size_t_f* raw_ext_size, _fcd raw_ext, hid_t_f * raw_plist);
+nh5pget_fapl_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_f* meta_plist, size_t_f* raw_ext_size, _fcd raw_ext, hid_t_f * raw_plist);
extern int_f
-nh5pset_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_plist, int_f* raw_len, _fcd raw_ext, hid_t_f * raw_plist);
+nh5pset_fapl_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_plist, int_f* raw_len, _fcd raw_ext, hid_t_f * raw_plist);
extern int_f
nh5pset_gc_references_c(hid_t_f *prp_id, int_f* gc_references);
extern int_f