summaryrefslogtreecommitdiffstats
path: root/fortran
diff options
context:
space:
mode:
authorElena Pourmal <epourmal@hdfgroup.org>2003-04-12 04:09:49 (GMT)
committerElena Pourmal <epourmal@hdfgroup.org>2003-04-12 04:09:49 (GMT)
commita496f905b8c9ca6428d27efaaf354eb475e2a531 (patch)
tree17962b1a4dc82b599502651f0b38759da9d7578a /fortran
parent15a0473d746c22992b549238c852bac72ffb006c (diff)
downloadhdf5-a496f905b8c9ca6428d27efaaf354eb475e2a531.zip
hdf5-a496f905b8c9ca6428d27efaaf354eb475e2a531.tar.gz
hdf5-a496f905b8c9ca6428d27efaaf354eb475e2a531.tar.bz2
[svn-r6641]
Purpose: Catching up with C library Description: I added four new functions h5pset_szip_f h5pget_filter_by_id_f h5pmodify_filetr_f h5pall_filters_avail_f Solution: Platforms tested: arabica (with and without SZIP Library), modi4 (with SZIP and parallel) burrwhite (with SZIP and PGI C and Fortran compilers) Misc. update:
Diffstat (limited to 'fortran')
-rw-r--r--fortran/src/H5Pf.c185
-rw-r--r--fortran/src/H5Pff.f90257
-rw-r--r--fortran/src/H5_f.c16
-rw-r--r--fortran/src/H5_ff.f9024
-rw-r--r--fortran/src/H5f90global.f9020
-rw-r--r--fortran/src/H5f90proto.h16
6 files changed, 492 insertions, 26 deletions
diff --git a/fortran/src/H5Pf.c b/fortran/src/H5Pf.c
index 01e4af1..f1bc80e 100644
--- a/fortran/src/H5Pf.c
+++ b/fortran/src/H5Pf.c
@@ -1487,17 +1487,18 @@ nh5pget_filter_c(hid_t_f *prp_id, int_f* filter_number, int_f* flags, size_t_f*
int c_filter_number;
unsigned int c_flags;
size_t c_cd_nelmts, c_namelen;
+ size_t c_cd_nelmts_in;
H5Z_filter_t c_filter;
unsigned int * c_cd_values;
char* c_name;
int i;
- c_cd_nelmts = (size_t)*cd_nelmts;
+ c_cd_nelmts_in = (size_t)*cd_nelmts;
c_namelen = (size_t)*namelen;
c_name = (char*)malloc(sizeof(char)*c_namelen);
if (!c_name) return ret_value;
- c_cd_values = (unsigned int*)malloc(sizeof(unsigned int)*((int)c_cd_nelmts));
+ c_cd_values = (unsigned int*)malloc(sizeof(unsigned int)*((int)c_cd_nelmts_in));
if (!c_cd_values) {HDfree(c_name);
return ret_value;
}
@@ -1517,7 +1518,7 @@ nh5pget_filter_c(hid_t_f *prp_id, int_f* filter_number, int_f* flags, size_t_f*
*flags = (int_f)c_flags;
HD5packFstring(c_name, _fcdtocp(name), strlen(c_name));
- for (i = 0; i < c_cd_nelmts; i++)
+ for (i = 0; i < c_cd_nelmts_in; i++)
cd_values[i] = (int_f)c_cd_values[i];
ret_value = 0;
@@ -3116,3 +3117,181 @@ HD5packFstring(tmp, _fcdtocp(memb_name), c_lenmax*H5FD_MEM_NTYPES);
for (i=0; i < H5FD_MEM_NTYPES; i++) free(c_memb_name[i]);
return ret_value;
}
+
+/*----------------------------------------------------------------------------
+ * Name: h5pset_szip_c
+ * Purpose: Call H5Pset_szip to set szip compression
+ * Inputs: prp_id - dataset creation property list identifier
+ * options_mask
+ * pixels_per_block -szip compression parameters
+ * Returns: 0 on success, -1 on failure
+ * Programmer: Elena Pourmal
+ * April 8 2003
+ * Modifications:
+ *---------------------------------------------------------------------------*/
+
+int_f
+nh5pset_szip_c ( hid_t_f *prp_id , int_f *options_mask, int_f *pixels_per_block)
+{
+ int ret_value = -1;
+ hid_t c_prp_id;
+ unsigned c_options_mask;
+ unsigned c_pixels_per_block;
+ herr_t status;
+
+ c_prp_id = (hid_t)*prp_id;
+ c_options_mask = (unsigned)*options_mask;
+ c_pixels_per_block = (unsigned)*pixels_per_block;
+/*
+ * Call H5Pset_szip function
+ */
+
+ status = H5Pset_szip(c_prp_id, c_options_mask, c_pixels_per_block);
+ if ( status < 0 ) return ret_value;
+ ret_value = 0;
+ return ret_value;
+}
+/*----------------------------------------------------------------------------
+ * Name: h5pall_filters_avail_c
+ * Purpose: Call H5Pall_filters_avail
+ * Inputs: prp_id - dataset creation property list identifier
+ * Outputs: status - logical flag
+ * Returns: 0 on success, -1 on failure
+ * Programmer: Elena Pourmal
+ * April 10 2003
+ * Modifications:
+ *---------------------------------------------------------------------------*/
+
+int_f
+nh5pall_filters_avail_c ( hid_t_f *prp_id , int_f *status)
+{
+ int ret_value = -1;
+ hid_t c_prp_id;
+ htri_t c_status;
+
+
+ c_prp_id = (hid_t)*prp_id;
+/*
+ * Call H5Pall_filters_avail function
+ */
+
+ c_status = H5Pall_filters_avail(c_prp_id);
+ if ( c_status < 0 ) return ret_value;
+ *status = 0;
+ if (c_status == 1) *status = 1;
+ ret_value = 0;
+ return ret_value;
+}
+/*----------------------------------------------------------------------------
+ * Name: h5pget_filter_by_id_c
+ * Purpose: Call H5Pget_filter_by_id to get information about a filter
+ * in a pipeline
+ * Inputs: prp_id - property list identifier
+ * filter_id - filter id
+ * namelen - Anticipated number of characters in name.
+ *Outputs: flags - Bit vector specifying certain general
+ * properties of the filter.
+ * cd_nelmts - Number of elements in cd_value
+ * cd_values - Auxiliary data for the filter.
+ * name - Name of the filter
+ * Returns: 0 on success, -1 on failure
+ * Programmer: Elena POurmal
+ * April 10, 2003
+ * Modifications:
+ *---------------------------------------------------------------------------*/
+int_f
+nh5pget_filter_by_id_c(hid_t_f *prp_id, int_f* filter_id, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values, size_t_f *namelen, _fcd name)
+{
+ int ret_value = -1;
+ hid_t c_prp_id;
+ H5Z_filter_t c_filter_id;
+ unsigned int c_flags;
+ size_t c_cd_nelmts, c_namelen;
+ size_t c_cd_nelmts_in;
+ unsigned int * c_cd_values;
+ char* c_name;
+ int i;
+ herr_t status;
+ c_cd_nelmts_in = (size_t)*cd_nelmts;
+ c_cd_nelmts = (size_t)*cd_nelmts;
+ c_namelen = (size_t)*namelen;
+ c_name = (char*)malloc(sizeof(char)*c_namelen+1);
+ if (!c_name) return ret_value;
+
+ c_cd_values = (unsigned int*)malloc(sizeof(unsigned int)*((int)c_cd_nelmts_in));
+ if (!c_cd_values) {HDfree(c_name);
+ return ret_value;
+ }
+
+
+ /*
+ * Call H5Pget_filter function.
+ */
+ c_prp_id = (hid_t)*prp_id;
+ c_filter_id = (H5Z_filter_t)*filter_id;
+ status = H5Pget_filter_by_id(c_prp_id, c_filter_id, &c_flags, &c_cd_nelmts, c_cd_values, c_namelen, c_name);
+ if (status < 0) goto DONE;
+
+ *cd_nelmts = (size_t_f)c_cd_nelmts;
+ *flags = (int_f)c_flags;
+ HD5packFstring(c_name, _fcdtocp(name), strlen(c_name));
+
+ for (i = 0; i < c_cd_nelmts_in; i++)
+ cd_values[i] = (int_f)c_cd_values[i];
+
+ ret_value = 0;
+
+DONE:
+ HDfree(c_name);
+ HDfree(c_cd_values);
+ return ret_value;
+}
+
+/*----------------------------------------------------------------------------
+ * Name: h5pmodify_filter_c
+ * Purpose: Call H5Pmodify_filter to modify a filter
+ * Inputs: prp_id - property list identifier
+ * filter - Filter to be modified
+ * 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.
+ * Returns: 0 on success, -1 on failure
+ * Programmer: Elena Pourmal
+ * April 10 2003
+ * Modifications:
+ *---------------------------------------------------------------------------*/
+int_f
+nh5pmodify_filter_c (hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values )
+{
+ int ret_value = -1;
+ hid_t c_prp_id;
+ herr_t ret;
+ size_t c_cd_nelmts;
+ unsigned int c_flags;
+ H5Z_filter_t c_filter;
+ unsigned int * c_cd_values;
+ int i;
+
+ c_filter = (H5Z_filter_t)*filter;
+ c_flags = (unsigned)*flags;
+ c_cd_nelmts = (size_t)*cd_nelmts;
+ c_cd_values = (unsigned int*)malloc(sizeof(unsigned int)*((int)c_cd_nelmts));
+ if (!c_cd_values) return ret_value;
+ for (i = 0; i < c_cd_nelmts; i++)
+ c_cd_values[i] = (unsigned int)cd_values[i];
+
+ /*
+ * Call H5Pmodify_filter function.
+ */
+ c_prp_id = (hid_t)*prp_id;
+ ret = H5Pmodify_filter(c_prp_id, c_filter, c_flags, c_cd_nelmts,c_cd_values );
+
+ if (ret < 0) goto DONE;
+ ret_value = 0;
+
+DONE:
+ HDfree(c_cd_values);
+ return ret_value;
+}
+
diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.f90
index e6f4593..fe4ddac 100644
--- a/fortran/src/H5Pff.f90
+++ b/fortran/src/H5Pff.f90
@@ -6162,4 +6162,261 @@
if(flag .eq. 0) relax = .FALSE.
if(present(maxlen_out)) maxlen_out = c_maxlen_out
END SUBROUTINE h5pget_fapl_multi_f
+!----------------------------------------------------------------------
+! Name: h5pset_szip_f
+!
+! Purpose: Sets up use of szip compression
+!
+! Inputs:
+! prp_id - dataset creation property list identifier
+! options_mask
+! pixels_per_block - szip parameters
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! April 10 2003
+!
+! Modifications:
+!
+! Comment:
+!----------------------------------------------------------------------
+
+
+ SUBROUTINE h5pset_szip_f(prp_id, options_mask, pixels_per_block, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_szip_f
+!DEC$endif
+!
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property
+ ! list identifier
+ INTEGER, INTENT(IN) :: options_mask
+ INTEGER, INTENT(IN) :: pixels_per_block
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+! INTEGER, EXTERNAL :: h5pset_szip_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_szip_c(prp_id, options_mask, pixels_per_block)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_SZIP_C'::h5pset_szip_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, INTENT(IN) :: options_mask
+ INTEGER, INTENT(IN) :: pixels_per_block
+ END FUNCTION h5pset_szip_c
+ END INTERFACE
+ hdferr = h5pset_szip_c(prp_id, options_mask, pixels_per_block)
+
+ END SUBROUTINE h5pset_szip_f
+
+!----------------------------------------------------------------------
+! Name: h5pall_filters_avail_f
+!
+! Purpose: Checks if all filters set in the dataset creation
+! property list are available
+!
+! Inputs:
+! prp_id - data creation property list identifier
+! Outputs:
+! flag - .TRUE. if all filters are available
+! .FALSE. otherwise
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! April 10 2003
+!
+! Modifications:
+!
+! Comment:
+!----------------------------------------------------------------------
+
+
+ SUBROUTINE h5pall_filters_avail_f(prp_id, flag, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pall_filters_avail_f
+!DEC$endif
+!
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property
+ ! list identifier
+ LOGICAL, INTENT(OUT) :: flag
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: status
+
+! INTEGER, EXTERNAL :: h5pall_filters_avail_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pall_filters_avail_c(prp_id, status)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PALL_FILTERS_AVAIL_C'::h5ppall_filters_avail_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, INTENT(OUT) :: status
+ END FUNCTION h5pall_filters_avail_c
+ END INTERFACE
+ flag = .TRUE.
+ hdferr = h5pall_filters_avail_c(prp_id, status)
+ if (status .eq. 0 ) flag = .FALSE.
+
+ END SUBROUTINE h5pall_filters_avail_f
+
+!----------------------------------------------------------------------
+! Name: h5pget_filter_by_id_f
+!
+! Purpose: Returns information about a filter in a pipeline
+!
+! Inputs:
+! prp_id - data creation or transfer property list
+! identifier
+! Outputs:
+! filter_id - filter identifier
+! 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
+! April 10 2003
+!
+! Modifications:
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5pget_filter_by_id_f(prp_id, filter_id, flags, cd_nelmts, cd_values, namelen, name, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_filter_by_id_f
+!DEC$endif
+!
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+
+ INTEGER, INTENT(IN) :: filter_id ! Filter identifier
+ INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts !Number of elements in cd_values.
+ INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values !Auxiliary data for the filter.
+ INTEGER, INTENT(OUT) :: flags !Bit vector specifying certain general
+ !properties of the filter.
+ INTEGER(SIZE_T), INTENT(IN) :: namelen !Anticipated number of characters in name.
+ CHARACTER(LEN=*), INTENT(OUT) :: name !Name of the filter
+
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+
+! INTEGER, EXTERNAL :: h5pget_filter_by_id_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_filter_by_id_c(prp_id, filter_id, flags, cd_nelmts, &
+ cd_values, namelen, name)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILTER_BY_ID_C'::h5pget_filter_by_id_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter_id
+ 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
+ END FUNCTION h5pget_filter_by_id_c
+ END INTERFACE
+
+ hdferr = h5pget_filter_by_id_c(prp_id, filter_id, flags, cd_nelmts, &
+ cd_values, namelen, name)
+ END SUBROUTINE h5pget_filter_by_id_f
+
+!----------------------------------------------------------------------
+! Name: h5pmodify_filter_f
+!
+! Purpose: Adds a filter to the filter pipeline.
+!
+! Inputs:
+! prp_id - data creation or transfer property list
+! identifier
+! filter - filter to be modified
+! 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
+! April 10 2003
+!
+! Modifications:
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5pmodify_filter_f(prp_id, filter, flags, cd_nelmts, cd_values, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pmodify_filter_f
+!DEC$endif
+!
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: filter !Filter to be modified
+ INTEGER, INTENT(IN) :: flags !Bit vector specifying certain general
+ !properties of the filter.
+ INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts !Number of elements in cd_values.
+ INTEGER, DIMENSION(*), INTENT(IN) :: cd_values !Auxiliary data for the filter.
+
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+! INTEGER, EXTERNAL :: h5pmodify_filter_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pmodify_filter_c(prp_id, filter, flags, cd_nelmts, cd_values)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PMODIFY_FILTER_C'::h5pmodify_filter_c
+ !DEC$ ENDIF
+ 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 h5pmodify_filter_c
+ END INTERFACE
+
+ hdferr = h5pmodify_filter_c(prp_id, filter, flags, cd_nelmts, cd_values )
+ END SUBROUTINE h5pmodify_filter_f
+
END MODULE H5P
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index 9d69b55..adc19f6 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -378,19 +378,27 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, int_f *h5f_flags,
h5z_flags[6] = H5Z_DISABLE_EDC;
h5z_flags[7] = H5Z_ENABLE_EDC;
h5z_flags[8] = H5Z_NO_EDC;
+ h5z_flags[9] = H5Z_FILTER_SZIP;
+ h5z_flags[10] = H5Z_FLAG_OPTIONAL;
ret_value = 0;
return ret_value;
}
-/*
+
int_f
-nh5init1_flags_c(haddr_t_f *h5lib_flags)
+nh5init1_flags_c(int_f *h5lib_flags)
{
- int ret_value = -1;
+ int ret_value = -1;
+ unsigned prm_1 = H5_SZIP_RAW_OPTION_MASK;
+ unsigned prm_2 = H5_SZIP_NN_OPTION_MASK;
+ unsigned prm_3 = H5_SZIP_RAW_OPTION_MASK | H5_SZIP_NN_OPTION_MASK;
+ h5lib_flags[0] = (int_f)prm_1;
+ h5lib_flags[1] = (int_f)prm_2;
+ h5lib_flags[2] = (int_f)prm_3;
ret_value = 0;
return ret_value;
}
-*/
+
/*---------------------------------------------------------------------------
* Name: h5open_c
* Purpose: Calls H5open call to initialize C HDF5 library
diff --git a/fortran/src/H5_ff.f90 b/fortran/src/H5_ff.f90
index 53d4bec..4d353dc 100644
--- a/fortran/src/H5_ff.f90
+++ b/fortran/src/H5_ff.f90
@@ -34,7 +34,7 @@
IMPLICIT NONE
INTEGER, INTENT(OUT) :: error
- INTEGER :: error_0, error_1, error_2
+ INTEGER :: error_0, error_1, error_2, error_3
! INTEGER, EXTERNAL :: h5init_types_c
! INTEGER, EXTERNAL :: h5init_flags_c
! INTEGER, EXTERNAL :: h5init1_flags_c
@@ -90,15 +90,15 @@
!DEC$ ENDIF
END FUNCTION h5init_flags_c
END INTERFACE
-! INTERFACE
-! INTEGER FUNCTION h5init1_flags_c( i_H5LIB_flags )
-! USE H5GLOBAL
-! INTEGER(HADDR_T) i_H5LIB_flags(H5LIB_FLAGS_LEN)
-! !DEC$ IF DEFINED(HDF5F90_WINDOWS)
-! !MS$ATTRIBUTES C,reference,alias:'_H5INIT1_FLAGS_C'::h5init1_flags_c
-! !DEC$ ENDIF
-! END FUNCTION h5init1_flags_c
-! END INTERFACE
+ INTERFACE
+ INTEGER FUNCTION h5init1_flags_c( i_H5LIB_flags )
+ USE H5GLOBAL
+ INTEGER i_H5LIB_flags(H5LIB_FLAGS_LEN)
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5INIT1_FLAGS_C'::h5init1_flags_c
+ !DEC$ ENDIF
+ END FUNCTION h5init1_flags_c
+ END INTERFACE
error_0 = h5open_c()
error_1 = h5init_types_c(predef_types, floating_types, integer_types)
error_2 = h5init_flags_c(H5D_flags, &
@@ -112,8 +112,8 @@
H5S_flags, &
H5T_flags, &
H5Z_flags)
-! error_3 = h5init1_flags_c(H5LIB_flags )
- error = error_0 + error_1 + error_2
+ error_3 = h5init1_flags_c(H5LIB_flags )
+ error = error_0 + error_1 + error_2 + error_3
END SUBROUTINE h5open_f
!----------------------------------------------------------------------
diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.f90
index 0c8d5fc..26a081c 100644
--- a/fortran/src/H5f90global.f90
+++ b/fortran/src/H5f90global.f90
@@ -555,7 +555,7 @@
!
! H5Z flags declaration
!
- INTEGER, PARAMETER :: H5Z_FLAGS_LEN = 9
+ INTEGER, PARAMETER :: H5Z_FLAGS_LEN = 11
INTEGER H5Z_flags(H5Z_FLAGS_LEN)
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$ ATTRIBUTES DLLEXPORT :: /H5Z_FLAGS/
@@ -567,10 +567,12 @@
INTEGER :: H5Z_FILTER_DEFLATE_F
INTEGER :: H5Z_FILTER_SHUFFLE_F
INTEGER :: H5Z_FILTER_FLETCHER32_F
+ INTEGER :: H5Z_FILTER_SZIP_F
INTEGER :: H5Z_ERROR_EDC_F
INTEGER :: H5Z_DISABLE_EDC_F
INTEGER :: H5Z_ENABLE_EDC_F
INTEGER :: H5Z_NO_EDC_F
+ INTEGER :: H5Z_FLAG_OPTIONAL_F
EQUIVALENCE(H5Z_flags(1), H5Z_FILTER_ERROR_F)
EQUIVALENCE(H5Z_flags(2), H5Z_FILTER_NONE_F)
@@ -581,20 +583,26 @@
EQUIVALENCE(H5Z_flags(7), H5Z_DISABLE_EDC_F)
EQUIVALENCE(H5Z_flags(8), H5Z_ENABLE_EDC_F)
EQUIVALENCE(H5Z_flags(9), H5Z_NO_EDC_F)
+ EQUIVALENCE(H5Z_flags(10), H5Z_FILTER_SZIP_F)
+ EQUIVALENCE(H5Z_flags(11), H5Z_FLAG_OPTIONAL_F)
!
! H5 Library flags declaration
!
-! INTEGER, PARAMETER :: H5LIB_FLAGS_LEN = 1
-! INTEGER(HADDR_T) H5LIB_flags(H5LIB_FLAGS_LEN)
+ INTEGER, PARAMETER :: H5LIB_FLAGS_LEN = 3
+ INTEGER :: H5LIB_flags(H5LIB_FLAGS_LEN)
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$ ATTRIBUTES DLLEXPORT :: /H5LIB_FLAGS/
!DEC$endif
-! COMMON /H5LIB_FLAGS/ H5LIB_flags
-! INTEGER(HADDR_T) :: HADDR_MAX_F
+ COMMON /H5LIB_FLAGS/ H5LIB_flags
+ INTEGER :: H5_SZIP_RAW_OM_F
+ INTEGER :: H5_SZIP_NN_OM_F
+ INTEGER :: H5_SZIP_RAWORNN_OM_F
!
-! EQUIVALENCE(H5LIB_flags(1), HADDR_MAX_F)
+ EQUIVALENCE(H5LIB_flags(1), H5_SZIP_RAW_OM_F)
+ EQUIVALENCE(H5LIB_flags(2), H5_SZIP_NN_OM_F)
+ EQUIVALENCE(H5LIB_flags(3), H5_SZIP_RAWORNN_OM_F)
END MODULE H5GLOBAL
diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h
index 4d53ba5..dbf7142 100644
--- a/fortran/src/H5f90proto.h
+++ b/fortran/src/H5f90proto.h
@@ -713,8 +713,10 @@ H5_DLL int_f nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag );
# define nh5pset_layout_c FNAME(H5PSET_LAYOUT_C)
# define nh5pget_layout_c FNAME(H5PGET_LAYOUT_C)
# define nh5pset_filter_c FNAME(H5PSET_FILTER_C)
+# define nh5pmodify_filter_c FNAME(H5PMODIFY_FILTER_C)
# define nh5pget_nfilters_c FNAME(H5PGET_NFILTERS_C)
# define nh5pget_filter_c FNAME(H5PGET_FILTER_C)
+# define nh5pget_filter_by_id_c FNAME(H5PGET_FILTER_BY_ID_C)
# define nh5pset_external_c FNAME(H5PSET_EXTERNAL_C)
# define nh5pget_external_count_c FNAME(H5PGET_EXTERNAL_COUNT_C)
# define nh5pget_external_c FNAME(H5PGET_EXTERNAL_C)
@@ -771,6 +773,8 @@ H5_DLL int_f nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag );
# define nh5pget_fapl_multi_c FNAME(H5PGET_FAPL_MULTI_C)
# define nh5pset_fapl_multi_c FNAME(H5PSET_FAPL_MULTI_C)
# define nh5pset_fapl_multi_sc FNAME(H5PSET_FAPL_MULTI_SC)
+# define nh5pset_szip_c FNAME(H5PSET_SZIP_C)
+# define nh5pall_filters_avail_c FNAME(H5PALL_FILTERS_AVAIL_C)
#else
# define nh5pcreate_c FNAME(h5pcreate_c)
@@ -816,8 +820,10 @@ H5_DLL int_f nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag );
# define nh5pset_layout_c FNAME(h5pset_layout_c)
# define nh5pget_layout_c FNAME(h5pget_layout_c)
# define nh5pset_filter_c FNAME(h5pset_filter_c)
+# define nh5pmodify_filter_c FNAME(h5pmodify_filter_c)
# define nh5pget_nfilters_c FNAME(h5pget_nfilters_c)
# define nh5pget_filter_c FNAME(h5pget_filter_c)
+# define nh5pget_filter_by_id_c FNAME(h5pget_filter_by_id_c)
# define nh5pset_external_c FNAME(h5pset_external_c)
# define nh5pget_external_count_c FNAME(h5pget_external_count_c)
# define nh5pget_external_c FNAME(h5pget_external_c)
@@ -874,6 +880,8 @@ H5_DLL int_f nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag );
# define nh5pget_fapl_multi_c FNAME(h5pget_fapl_multi_c)
# define nh5pset_fapl_multi_c FNAME(h5pset_fapl_multi_c)
# define nh5pset_fapl_multi_sc FNAME(h5pset_fapl_multi_sc)
+# define nh5pset_szip_c FNAME(h5pset_szip_c)
+# define nh5pall_filters_avail_c FNAME(h5pall_filters_avail_c)
#endif
@@ -971,9 +979,13 @@ nh5pget_layout_c (hid_t_f *prp_id, int_f* layout);
H5_DLL int_f
nh5pset_filter_c (hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values );
H5_DLL int_f
+nh5pmodify_filter_c (hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values );
+H5_DLL int_f
nh5pget_nfilters_c (hid_t_f *prp_id, int_f* nfilters);
H5_DLL int_f
nh5pget_filter_c(hid_t_f *prp_id, int_f* filter_number, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values, size_t_f *namelen, _fcd name, int_f* filter_id);
+H5_DLL int_f
+nh5pget_filter_by_id_c(hid_t_f *prp_id, int_f* filter_id, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values, size_t_f *namelen, _fcd name);
H5_DLL int_f
nh5pset_external_c (hid_t_f *prp_id, _fcd name, int_f* namelen, int_f* offset, hsize_t_f*bytes);
H5_DLL int_f
@@ -1062,6 +1074,8 @@ H5_DLL int_f nh5pset_family_offset_c ( hid_t_f *prp_id , hsize_t_f *offset);
H5_DLL int_f nh5pget_fapl_multi_c ( hid_t_f *prp_id , int_f *mem_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, real_f *memb_addr, int_f *flag, int_f *maxlen_out);
H5_DLL int_f nh5pset_fapl_multi_c ( hid_t_f *prp_id , int_f *mem_map, hid_t_f *memb_fapl, _fcd memb_name, int_f *len, int_f *lenmax, real_f *memb_addr, int_f *flag);
H5_DLL int_f nh5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag);
+H5_DLL int_f nh5pset_szip_c ( hid_t_f *prp_id , int_f *options_mask, int_f *pixels_per_block);
+H5_DLL int_f nh5pall_filters_avail_c ( hid_t_f *prp_id , int_f *status);
/*
* Functions frome H5Rf.c
@@ -1186,7 +1200,7 @@ H5_DLL int_f nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, int_f *h5f_fla
int_f *h5fd_flags, int_f *h5g_flags, int_f *h5i_flags,
int_f *h5p_flags, int_f *h5r_flags, int_f *h5s_flags,
int_f *h5t_flags, int_f *h5z_flags);
-/*H5_DLL int_f nh5init1_flags_c(haddr_t_f *h5lib_flags); */
+H5_DLL int_f nh5init1_flags_c(int_f *h5lib_flags);
H5_DLL int_f nh5get_libversion_c(int_f *majnum, int_f *minnum, int_f *relnum);