From 30e960da8abebc144295784df54c535d45a01b2d Mon Sep 17 00:00:00 2001 From: Elena Pourmal Date: Fri, 16 Mar 2001 10:42:40 -0500 Subject: [svn-r3649] Purpose: Windows port and maintenance Description: Each C function called from F90 subroutine requires explicit interface. Some drivers functions were not implemented. Solution: Added interfaces and comment blocks to each F90 subroutine. Added the following subroutines: h5pset(get)_fapl_core_f h5pset(get)_fapl_family_f h5pset_fapl_sec2_f h5pset_fapl_stdio_f Platforms tested: Linux (eirene) to make sure that code still works on UNIX. More UNIX platforms will be tested before moving to Windows. --- fortran/src/H5Iff.f90 | 28 +- fortran/src/H5Pf.c | 172 ++-- fortran/src/H5Pff.f90 | 2236 +++++++++++++++++++++++++++++++++++++++++++--- fortran/src/H5f90proto.h | 62 +- 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 -- cgit v0.12