diff options
Diffstat (limited to 'doc')
34 files changed, 470 insertions, 336 deletions
diff --git a/doc/html/Datasets.html b/doc/html/Datasets.html index ccea555..eca195d 100644 --- a/doc/html/Datasets.html +++ b/doc/html/Datasets.html @@ -314,7 +314,7 @@ H5Pset_chunk (plist, 2, size); external data then zero is returned. <br><br> - <dt><code>herr_t H5Pget_external (hid_t <em>plist</em>, int + <dt><code>herr_t H5Pget_external (hid_t <em>plist</em>, unsigned <em>idx</em>, size_t <em>name_size</em>, char *<em>name</em>, off_t *<em>offset</em>, hsize_t *<em>size</em>)</code> <dd>This is the counterpart for the <code>H5Pset_external()</code> @@ -800,7 +800,7 @@ H5Pset_external (plist, "scan3.data", 0, 16); <p><code><pre> 1 hid_t file, mem_space, file_space, dataset; 2 double dd[200][400]; - 3 hssize_t offset[2]; + 3 hsize_t offset[2]; 4 hsize size[2]; 5 6 /* diff --git a/doc/html/Dataspaces.html b/doc/html/Dataspaces.html index b19e0c3..c83d285 100644 --- a/doc/html/Dataspaces.html +++ b/doc/html/Dataspaces.html @@ -438,7 +438,7 @@ portions of a dataspace may be added in the future. <DL> <DT> <TT>herr_t H5Sselect_hyperslab (hid_t <I>space</I>, h5s_seloper_t <I>op</I>, - const hssize_t * <I>start</I>, const hsize_t * <I>stride</I>, + const hsize_t * <I>start</I>, const hsize_t * <I>stride</I>, const hsize_t * <I>count</I>, const hsize_t * <I>block</I>)</TT></DT> <DD> @@ -488,7 +488,7 @@ I/O is performed. <DT> <TT>herr_t H5Sselect_elements (hid_t <I>space</I>, h5s_seloper_t <I>op</I>, - const size_t <I>num_elements</I>, const hssize_t *<I>coord</I>[])</TT></DT> + const size_t <I>num_elements</I>, const hsize_t *<I>coord</I>[])</TT></DT> <DD> This function selects array elements to be included in the selection for the diff --git a/doc/html/Datatypes.html b/doc/html/Datatypes.html index f738d44..232d7fb 100644 --- a/doc/html/Datatypes.html +++ b/doc/html/Datatypes.html @@ -610,7 +610,7 @@ <code>H5Tget_nmembers()</code> returns -1 on failure. <br><br> - <dt><code>char *H5Tget_member_name (hid_t <em>type</em>, int + <dt><code>char *H5Tget_member_name (hid_t <em>type</em>, unsigned <em>membno</em>)</code> <dd>Each member has a name which is unique among its siblings in a compound datatype. This function returns a pointer to a @@ -620,7 +620,7 @@ function. <br><br> - <dt><code>size_t H5Tget_member_offset (hid_t <em>type</em>, int + <dt><code>size_t H5Tget_member_offset (hid_t <em>type</em>, unsigned <em>membno</em>)</code> <dd>The byte offset of member number <em>membno</em> with respect to the beginning of the containing compound datum is @@ -631,7 +631,7 @@ <em>membno</em> arguments. <br><br> - <dt><code>hid_t H5Tget_member_type (hid_t <em>type</em>, int + <dt><code>hid_t H5Tget_member_type (hid_t <em>type</em>, unsigned <em>membno</em>)</code> <dd>Each member has its own datatype, a copy of which is returned by this function. The returned datatype identifier @@ -1297,7 +1297,7 @@ H5Tlock(hdf_fr_colors);</pre> datatypes. <br><br> - <dt><code>char *H5Tget_member_name(hid_t <em>etype</em>, int + <dt><code>char *H5Tget_member_name(hid_t <em>etype</em>, unsigned <em>membno</em>)</code> <dd>Given an enumeration datatype <em>etype</em> this function returns the symbol name for the member indexed by @@ -1310,7 +1310,7 @@ H5Tlock(hdf_fr_colors);</pre> <code>free()</code>. <br><br> - <dt><code>herr_t H5Tget_member_value(hid_t <em>etype</em>, int + <dt><code>herr_t H5Tget_member_value(hid_t <em>etype</em>, unsigned <em>membno</em>, void *<em>value</em>/*out*/)</code> <dd>Given an enumeration datatype <em>etype</em> this function returns the value associated with the member indexed by @@ -1325,12 +1325,13 @@ H5Tlock(hdf_fr_colors);</pre> when the type is not known by the C compiler. <pre> -int i, n = H5Tget_nmembers(hdf_en_colors); -for (i=0; i<n; i++) { - char *symbol = H5Tget_member_name(hdf_en_colors, i); +int n = H5Tget_nmembers(hdf_en_colors); +unsigned u; +for (u=0; u<(unsigned)n; u++) { + char *symbol = H5Tget_member_name(hdf_en_colors, u); short val; - H5Tget_member_value(hdf_en_colors, i, &val); - printf("#%d %20s = %d\n", i, symbol, val); + H5Tget_member_value(hdf_en_colors, u, &val); + printf("#%u %20s = %d\n", u, symbol, val); free(symbol); }</pre> @@ -1502,13 +1503,13 @@ int n = H5Tget_nmembers(foreign); hid_t itype = H5Tget_super(foreign); void *val = malloc(n * MAX(H5Tget_size(itype), sizeof(int))); char *name = malloc(n * sizeof(char*)); -int i; +unsigned u; /* Get foreign type information */ -for (i=0; i<n; i++) { - name[i] = H5Tget_member_name(foreign, i); - H5Tget_member_value(foreign, i, - (char*)val+i*H5Tget_size(foreign)); +for (u=0; u<(unsigned)n; u++) { + name[u] = H5Tget_member_name(foreign, u); + H5Tget_member_value(foreign, u, + (char*)val+u*H5Tget_size(foreign)); } /* Convert integer values to new type */ diff --git a/doc/html/DatatypesEnum.html b/doc/html/DatatypesEnum.html index 2926e7c..607030a 100644 --- a/doc/html/DatatypesEnum.html +++ b/doc/html/DatatypesEnum.html @@ -239,7 +239,7 @@ H5Tlock(hdf_fr_colors);</pre> types. <br><br> - <dt><code>char *H5Tget_member_name(hid_t <em>etype</em>, int + <dt><code>char *H5Tget_member_name(hid_t <em>etype</em>, unsigned <em>membno</em>)</code> <dd>Given an enumeration data type <em>etype</em> this function returns the symbol name for the member indexed by @@ -252,7 +252,7 @@ H5Tlock(hdf_fr_colors);</pre> <code>free()</code>. <br><br> - <dt><code>herr_t H5Tget_member_value(hid_t <em>etype</em>, int + <dt><code>herr_t H5Tget_member_value(hid_t <em>etype</em>, unsigned <em>membno</em>, void *<em>value</em>/*out*/)</code> <dd>Given an enumeration data type <em>etype</em> this function returns the value associated with the member indexed by @@ -267,12 +267,13 @@ H5Tlock(hdf_fr_colors);</pre> when the type is not known by the C compiler. <pre> -int i, n = H5Tget_nmembers(hdf_en_colors); -for (i=0; i<n; i++) { - char *symbol = H5Tget_member_name(hdf_en_colors, i); +int n = H5Tget_nmembers(hdf_en_colors); +unsigned u; +for (u=0; u<(unsigned)n; u++) { + char *symbol = H5Tget_member_name(hdf_en_colors, u); short val; - H5Tget_member_value(hdf_en_colors, i, &val); - printf("#%d %20s = %d\n", i, symbol, val); + H5Tget_member_value(hdf_en_colors, u, &val); + printf("#%u %20s = %d\n", u, symbol, val); free(symbol); }</pre> @@ -445,13 +446,13 @@ int n = H5Tget_nmembers(foreign); hid_t itype = H5Tget_super(foreign); void *val = malloc(n * MAX(H5Tget_size(itype), sizeof(int))); char *name = malloc(n * sizeof(char*)); -int i; +unsigned u; /* Get foreign type information */ -for (i=0; i<n; i++) { - name[i] = H5Tget_member_name(foreign, i); - H5Tget_member_value(foreign, i, - (char*)val+i*H5Tget_size(foreign)); +for (u=0; u<(unsigned)n; u++) { + name[u] = H5Tget_member_name(foreign, u); + H5Tget_member_value(foreign, u, + (char*)val+u*H5Tget_size(foreign)); } /* Convert integer values to new type */ diff --git a/doc/html/Glossary.html b/doc/html/Glossary.html index 94ff8e5..fd32c97 100644 --- a/doc/html/Glossary.html +++ b/doc/html/Glossary.html @@ -42,7 +42,8 @@ HDF5 Glossary </td></tr> </table> </center> -<hr><!-- #EndLibraryItem --><center> +<hr> +<!-- #EndLibraryItem --><center> <h1>HDF5 Glossary</h1> </center> @@ -557,7 +558,8 @@ HDF5 Glossary </td></tr> </table> </center> -<hr><!-- #EndLibraryItem --><!-- #BeginLibraryItem "/ed_libs/Footer.lbi" --><address> +<hr> +<!-- #EndLibraryItem --><!-- #BeginLibraryItem "/ed_libs/Footer.lbi" --><address> <a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a> <br> Describes HDF5 Release 1.7, the unreleased development branch; working toward HDF5 Release 1.8.0 diff --git a/doc/html/H5.format.html b/doc/html/H5.format.html index 172afa7..8d2ba87 100644 --- a/doc/html/H5.format.html +++ b/doc/html/H5.format.html @@ -5949,7 +5949,7 @@ value with all bits set, i.e. <code>0xffff...ff</code>. <br> Describes HDF5 Release 1.7, the unreleased development branch; working toward HDF5 Release 1.8.0 </address><!-- #EndLibraryItem --><!-- hhmts start --> -Last modified: 5 July 2002 +Last modified: 12 July 2004 <!-- hhmts end --> </body> diff --git a/doc/html/H5.intro.html b/doc/html/H5.intro.html index d2c1463..8984153 100644 --- a/doc/html/H5.intro.html +++ b/doc/html/H5.intro.html @@ -1387,7 +1387,7 @@ A hyperslab specifies a regular pattern of elements in a dataset. It is also po hsize_t dim2[] = {MSPACE2_DIM}; /* Dimension size of the second dataset (in memory) */ int values[] = {53, 59, 61, 67}; /* New values to be written */ -hssize_t coord[NPOINTS][FSPACE_RANK]; /* Array to store selected points +hsize_t coord[NPOINTS][FSPACE_RANK]; /* Array to store selected points from the file dataspace */ /* @@ -1404,7 +1404,7 @@ coord[2][0] = 3; coord[2][1] = 5; coord[3][0] = 5; coord[3][1] = 6; ret = H5Sselect_elements(fid, H5S_SELECT_SET, NPOINTS, - (const hssize_t **)coord); + (const hsize_t **)coord); /* * Write new selection of points to the dataset. diff --git a/doc/html/Intro/IntroExamples.html b/doc/html/Intro/IntroExamples.html index e036207..6511683 100644 --- a/doc/html/Intro/IntroExamples.html +++ b/doc/html/Intro/IntroExamples.html @@ -246,9 +246,9 @@ main (void) int data_out[NX][NY][NZ ]; /* output buffer */ hsize_t count[2]; /* size of the hyperslab in the file */ - hssize_t offset[2]; /* hyperslab offset in the file */ + hsize_t offset[2]; /* hyperslab offset in the file */ hsize_t count_out[3]; /* size of the hyperslab in memory */ - hssize_t offset_out[3]; /* hyperslab offset in memory */ + hsize_t offset_out[3]; /* hyperslab offset in memory */ int i, j, k, status_n, rank; for (j = 0; j < NX; j++) { @@ -404,12 +404,12 @@ int main (void) hsize_t fdim[] = {FSPACE_DIM1, FSPACE_DIM2}; /* Dimension sizes of the dataset (on disk) */ - hssize_t start[2]; /* Start of hyperslab */ + hsize_t start[2]; /* Start of hyperslab */ hsize_t stride[2]; /* Stride of hyperslab */ hsize_t count[2]; /* Block count */ hsize_t block[2]; /* Block sizes */ - hssize_t coord[NPOINTS][FSPACE_RANK]; /* Array to store selected points + hsize_t coord[NPOINTS][FSPACE_RANK]; /* Array to store selected points from the file dataspace */ herr_t ret; uint i,j; @@ -504,7 +504,7 @@ int main (void) coord[3][0] = 5; coord[3][1] = 6; ret = H5Sselect_elements(fid, H5S_SELECT_SET, NPOINTS, - (const hssize_t **)coord); + (const hsize_t **)coord); /* * Write new selection of points to the dataset. @@ -779,7 +779,7 @@ main (void) hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED}; hsize_t chunk_dims[2] ={2, 5}; hsize_t size[2]; - hssize_t offset[2]; + hsize_t offset[2]; herr_t status; @@ -956,7 +956,7 @@ main (void) hsize_t chunk_dims[2]; hsize_t col_dims[1]; hsize_t count[2]; - hssize_t offset[2]; + hsize_t offset[2]; herr_t status, status_n; @@ -1117,7 +1117,7 @@ main (void) H5Fclose(file); return 0; -) +} </pre> @@ -1851,18 +1851,18 @@ and then written to the dataset in the file. int main(void) { - hid_t fid1; /* HDF5 File IDs */ - hid_t dset1, /* Dataset ID */ + hid_t fid1; /* HDF5 File IDs */ + hid_t dset1, /* Dataset ID */ dset2; /* Dereferenced dataset ID */ - hid_t sid1, /* Dataspace ID #1 */ + hid_t sid1, /* Dataspace ID #1 */ sid2; /* Dataspace ID #2 */ - hsize_t dims1[] = {SPACE1_DIM1}, + hsize_t dims1[] = {SPACE1_DIM1}, dims2[] = {SPACE2_DIM1, SPACE2_DIM2}; - hssize_t start[SPACE2_RANK]; /* Starting location of hyperslab */ - hsize_t stride[SPACE2_RANK]; /* Stride of hyperslab */ - hsize_t count[SPACE2_RANK]; /* Element count of hyperslab */ - hsize_t block[SPACE2_RANK]; /* Block size of hyperslab */ - hssize_t coord1[POINT1_NPOINTS][SPACE2_RANK]; + hsize_t start[SPACE2_RANK]; /* Starting location of hyperslab */ + hsize_t stride[SPACE2_RANK]; /* Stride of hyperslab */ + hsize_t count[SPACE2_RANK]; /* Element count of hyperslab */ + hsize_t block[SPACE2_RANK]; /* Block size of hyperslab */ + hsize_t coord1[POINT1_NPOINTS][SPACE2_RANK]; /* Coordinates for point selection */ hdset_reg_ref_t *wbuf; /* buffer to write to disk */ int *dwbuf; /* Buffer for writing numeric data to disk */ @@ -1921,7 +1921,7 @@ main(void) coord1[7][0]=9; coord1[7][1]=0; coord1[8][0]=7; coord1[8][1]=1; coord1[9][0]=3; coord1[9][1]=3; - ret = H5Sselect_elements(sid2,H5S_SELECT_SET,POINT1_NPOINTS,(const hssize_t **)coord1); + ret = H5Sselect_elements(sid2,H5S_SELECT_SET,POINT1_NPOINTS,(const hsize_t **)coord1); /* Store second dataset region */ ret = H5Rcreate(&wbuf[1],fid1,"/Dataset2",H5R_DATASET_REGION,sid2); @@ -1988,8 +1988,8 @@ main(void) hid_t sid1, /* Dataspace ID #1 */ sid2; /* Dataspace ID #2 */ hsize_t * coords; /* Coordinate buffer */ - hssize_t low[SPACE2_RANK]; /* Selection bounds */ - hssize_t high[SPACE2_RANK]; /* Selection bounds */ + hsize_t low[SPACE2_RANK]; /* Selection bounds */ + hsize_t high[SPACE2_RANK]; /* Selection bounds */ hdset_reg_ref_t *rbuf; /* buffer to to read disk */ int *drbuf; /* Buffer for reading numeric data from disk */ int i, j; /* counting variables */ diff --git a/doc/html/RM_H5.html b/doc/html/RM_H5.html index 0f7d673..1d1bb15 100644 --- a/doc/html/RM_H5.html +++ b/doc/html/RM_H5.html @@ -123,18 +123,9 @@ and it users. <br> <strong>The FORTRAN90 Interfaces:</strong> - <br> -<font size=-1> -<i>In general, each FORTRAN90 subroutine performs exactly the same task -as the corresponding C function. The links below go to the C function -descriptions, which serve as general descriptions for both. A button, -under <strong>Non-C API(s)</strong> at the end of the C function description, -opens an external browser window displaying the FORTRAN90-specific -information. You will probably want to adjust the size and location of -this external window so that both browser windows are visible and to -facilitate moving easily between them.</i> -</font> +In general, each FORTRAN90 subroutine performs exactly the same task +as the corresponding C function. <br> <table border=0> @@ -158,6 +149,7 @@ facilitate moving easily between them.</i> </table> <!-- NEW PAGE --> +<!-- HEADER RIGHT " " --> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5check_version" --> <hr> diff --git a/doc/html/RM_H5A.html b/doc/html/RM_H5A.html index 68b51c3..b9efa38 100644 --- a/doc/html/RM_H5A.html +++ b/doc/html/RM_H5A.html @@ -188,6 +188,7 @@ See <a href="Attributes.html"><cite>Attributes</cite></a> in the <a href="H5.user.html"><cite>HDF5 User's Guide</cite></a> for further information. <!-- NEW PAGE --> +<!-- HEADER RIGHT " " --> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Aclose" --> <hr> @@ -311,7 +312,9 @@ SUBROUTINE h5acreate_f(obj_id, name, type_id, space_id, attr_id, & INTEGER(HID_T), INTENT(IN) :: space_id ! Attribute dataspace identifier INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier INTEGER, INTENT(OUT) :: hdferr ! Error code: - ! 0 on success and -1 on failure + ! 0 on success and -1 on failure</pre> +<!-- NEW PAGE --> +<pre> INTEGER(HID_T), OPTIONAL, INTENT(IN) :: creation_prp ! Attribute creation property ! list identifier @@ -547,10 +550,10 @@ END SUBROUTINE h5aget_space_f <pre> SUBROUTINE h5aget_type_f(attr_id, type_id, hdferr) IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier - INTEGER(HID_T), INTENT(OUT) :: type_id ! Attribute datatype identifier - INTEGER, INTENT(OUT) :: hdferr ! Error code: - ! 0 on success and -1 on failure + INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier + INTEGER(HID_T), INTENT(OUT) :: type_id ! Attribute datatype identifier + INTEGER, INTENT(OUT) :: hdferr ! Error code: + ! 0 on success and -1 on failure END SUBROUTINE h5aget_type_f </pre> @@ -684,11 +687,11 @@ SUBROUTINE <pre> SUBROUTINE h5aopen_idx_f(obj_id, index, attr_id, hdferr) IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier - INTEGER, INTENT(IN) :: index ! Attribute index - INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier - INTEGER, INTENT(OUT) :: hdferr ! Error code: - ! 0 on success and -1 on failure + INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier + INTEGER, INTENT(IN) :: index ! Attribute index + INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier + INTEGER, INTENT(OUT) :: hdferr ! Error code: + ! 0 on success and -1 on failure END SUBROUTINE h5aopen_idx_f </pre> @@ -738,11 +741,11 @@ END SUBROUTINE h5aopen_idx_f <pre> SUBROUTINE h5aopen_name_f(obj_id, name, attr_id, hdferr) IMPLICIT NONE - INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier - CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name - INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier - INTEGER, INTENT(OUT) :: hdferr ! Error code: - ! 0 on success and -1 on failure + INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier + CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name + INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier + INTEGER, INTENT(OUT) :: hdferr ! Error code: + ! 0 on success and -1 on failure END SUBROUTINE h5aopen_name_f </pre> @@ -877,8 +880,8 @@ SUBROUTINE h5awrite_f(attr_id, memtype_id, buf, dims, hdferr) DIMENSION(*), INTEGER(HSIZE_T), INTENT(IN) :: dims ! Array to hold corresponding ! dimension sizes of data buffer buf; - ! dim(k) has value of the - ! k-th dimension of buffer buf; + ! dim(k) has value of the k-th + ! dimension of buffer buf; ! values are ignored if buf is ! a scalar INTEGER, INTENT(OUT) :: hdferr ! Error code: diff --git a/doc/html/RM_H5D.html b/doc/html/RM_H5D.html index ed93c9a..cb9be00 100644 --- a/doc/html/RM_H5D.html +++ b/doc/html/RM_H5D.html @@ -190,6 +190,7 @@ as the corresponding C function. </table> <!-- NEW PAGE --> +<!-- HEADER RIGHT " " --> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Dclose" --> <hr> @@ -309,6 +310,29 @@ END SUBROUTINE h5dclose_f “HDF5 Datasets” chapter of the new <cite>HDF5 User's Guide</cite>, which is being prepared for release. +<dt><strong>Note:</strong> + <dd><code>H5Dcreate</code> can fail if there has been an error + in setting up an element of the dataset creation property list. + In such cases, each item in the property list must be examined + to ensure that the setup satisfies to all required conditions. + This problem is most likely to occur with the use of filters. + <p> + For example, <code>H5Dcreate</code> will fail without a meaningful + explanation if + <ul> + <li>SZIP compression is being used on the dataset and + <li>the SZIP parameter <code>pixels_per_block</code> + is set to an inappropriate value. + </ul> + <p> + In such a case, one would refer to the description of + <a href="RM_H5P.html#Property-SetSzip"><code>H5Pset_szip</code></a>, + looking for any conditions or requirements that might affect the + local computing environment. + <!-- + <p> + Other known similar problems can occur with . . . + --> <dt><strong>Parameters:</strong> <ul><table> <tr> diff --git a/doc/html/RM_H5E.html b/doc/html/RM_H5E.html index 8f4d3ce..250302f 100644 --- a/doc/html/RM_H5E.html +++ b/doc/html/RM_H5E.html @@ -184,6 +184,7 @@ statically allocated to reduce the complexity of handling errors within the H5E package. <!-- NEW PAGE --> +<!-- HEADER RIGHT " " --> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Eclear" --> <hr> diff --git a/doc/html/RM_H5F.html b/doc/html/RM_H5F.html index 7156c3b..b77873d 100644 --- a/doc/html/RM_H5F.html +++ b/doc/html/RM_H5F.html @@ -93,12 +93,12 @@ documented below. </ul> </td><td> </td><td valign=top> <ul> - <li><a href="#File-GetAccessPlist">H5Fget_access_plist</a> <li><a href="#File-GetCreatePlist">H5Fget_create_plist</a> + <li><a href="#File-GetAccessPlist">H5Fget_access_plist</a> <li><a href="#File-GetName">H5Fget_name</a> <li><a href="#File-GetObjCount">H5Fget_obj_count</a> <li><a href="#File-GetObjIDs">H5Fget_obj_ids</a> - <li><a href="#File-GetFreespace">H5Fget_freespace</a> + <li><a href="#File-GetFreeSpace">H5Fget_freespace</a> </ul> </td></tr> </table> @@ -123,7 +123,7 @@ documented below. <td valign="top"> <ul> - <li><a href="#File-GetFreespace">H5Fget_freespace</a> + <li><a href="#File-GetFreeSpace">H5Fget_freespace</a> <li><a href="#File-GetName">H5Fget_name</a> <li><a href="#File-GetObjCount">H5Fget_obj_count</a> <li><a href="#File-GetObjIDs">H5Fget_obj_ids</a> @@ -147,18 +147,10 @@ documented below. <br> <strong>The FORTRAN90 Interfaces:</strong> - <br> -<font size=-1> -<i>In general, each FORTRAN90 subroutine performs exactly the same task -as the corresponding C function. The links below (electronic versions only) go to the C function -descriptions, which serve as general descriptions for both. A button, -under <strong>Non-C API(s)</strong> at the end of the C function description, -opens an external browser window displaying the FORTRAN90-specific -information. You will probably want to adjust the size and location of -this external window so that both browser windows are visible and to -facilitate moving easily between them.</i> -</font><br> +In general, each FORTRAN90 subroutine performs exactly the same task +as the corresponding C function. +<br> <table border=0> <tr><td valign=top> @@ -190,6 +182,7 @@ facilitate moving easily between them.</i> </table> <!-- NEW PAGE --> +<!-- HEADER RIGHT " " --> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Fclose" --> <hr> @@ -429,6 +422,7 @@ END SUBROUTINE h5fcreate_f <p> <code>scope</code> specifies whether the scope of the flushing action is global or local. Valid values are + <center> <table border=0> <tr><td align=left valign=top><code>H5F_SCOPE_GLOBAL</code></td> <td> </td> @@ -437,6 +431,7 @@ END SUBROUTINE h5fcreate_f <td></td> <td align=left valign=top>Flushes only the specified file.</td></tr> </table> + </center> <dt><strong>Note:</strong> <dd>HDF5 does not possess full control over buffering. <code>H5Fflush</code> flushes the internal HDF5 buffers then @@ -639,7 +634,7 @@ END SUBROUTINE h5fget_filesize_f <!-- HEADER RIGHT "H5Fget_freespace" --> <hr> <dl> -<dt><strong>Name:</strong> <a name="File-GetFreespace">H5Fget_freespace</a> +<dt><strong>Name:</strong> <a name="File-GetFreeSpace">H5Fget_freespace</a> <dt><strong>Signature:</strong> <dd><em>hssize_t </em><code>H5Fget_freespace</code>(<em>hid_t</em> <code>file_id</code>) <dt><strong>Purpose:</strong> @@ -749,8 +744,6 @@ SUBROUTINE h5fget_name_f(obj_id, buf, size, hdferr) INTEGER(SIZE_T), INTENT(OUT) :: size ! Size of the filename INTEGER, INTENT(OUT) :: hdferr ! Error code: 0 on success, ! -1 if fail - INTEGER(SIZE_T) :: buflen - END SUBROUTINE h5fget_name_f </pre> diff --git a/doc/html/RM_H5G.html b/doc/html/RM_H5G.html index 717667e..7284051 100644 --- a/doc/html/RM_H5G.html +++ b/doc/html/RM_H5G.html @@ -204,6 +204,7 @@ create or access function. <p> <!-- NEW PAGE --> +<!-- HEADER RIGHT " " --> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Gclose" --> <hr> @@ -550,7 +551,8 @@ SUBROUTINE The existence of an object can be tested by calling this function with a null <code>statbuf</code>. <p> - <code>H5Gget_objinfo</code> fills in the following data structure: + <code>H5Gget_objinfo</code> fills in the following data structure + (defined in H5Gpublic.h): <pre> typedef struct H5G_stat_t { unsigned long fileno; @@ -562,9 +564,20 @@ SUBROUTINE H5O_stat_t ohdr; } H5G_stat_t </pre> + + where H5O_stat_t (defined in H5Opublic.h) is: + + <pre> + typedef struct H5O_stat_t { + hsize_t size; + hsize_t free; + unsigned nmesgs; + unsigned nchunks; + } H5O_stat_t + </pre> The <code>fileno</code> and <code>objno</code> fields contain - values which uniquely identify an object among those - HDF5 files which are open: if both values are the same + four values which uniquely identify an object among those + HDF5 files which are open: if all four values are the same between two objects, then the two objects are the same (provided both files are still open). <ul> @@ -580,26 +593,41 @@ SUBROUTINE the object or zero when information is being returned about a symbolic link (symbolic links do not have hard links but all other objects always have at least one). + <p> The <code>type</code> field contains the type of the object, one of <code>H5G_GROUP</code>, <code>H5G_DATASET</code>, <code>H5G_LINK</code>, or <code>H5G_TYPE</code>. + <p> The <code>mtime</code> field contains the modification time. + <p> If information is being returned about a symbolic link then <code>linklen</code> will be the length of the link value (the name of the pointed-to object with the null terminator); otherwise <code>linklen</code> will be zero. + <p> + The fields in the <code>H5O_stat_t</code> struct contain information + about the object header for the object queried: + <ul><dl> + <dt><code>size</code> + <dd>The total size of all the object header information in + the file (for all chunks). + <dt><code>free</code> + <dd>The size of unused space in the object header. + <dt><code>nmesgs</code> + <dd>The number of object header messages. + <dt><code>nchunks</code> + <dd>The number of chunks the object header is broken up into. + </dl> </ul> -<!-- INSERT H50_stat_t DESCRIPTION AS IN 1.6 --> - + <p> Other fields may be added to this structure in the future. <dt><strong>Note:</strong> <dd>Some systems will be able to record the time accurately but unable to retrieve the correct time; such systems (e.g., Irix64) will report an <code>mtime</code> value of 0 (zero). -<!-- NEW PAGE --> <dt><strong>Parameters:</strong> <ul><table> <tr> diff --git a/doc/html/RM_H5I.html b/doc/html/RM_H5I.html index 1569a09..62f4fd7 100644 --- a/doc/html/RM_H5I.html +++ b/doc/html/RM_H5I.html @@ -158,8 +158,8 @@ as the corresponding C function. <table border=0> <tr><td valign=top> <ul> - <li><a href="#Identify-GetType">h5iget_type_f</a> <li><a href="#Identify-GetName">h5iget_name_f</a> + <li><a href="#Identify-GetType">h5iget_type_f</a> </ul> </td><td> </td><td valign=top> <ul> @@ -413,8 +413,7 @@ END SUBROUTINE h5idec_ref_f <ul> <table> <tr> - <td valign="top"><em>hid_t</em> <code>obj_id </code> -</td> + <td valign="top"><em>hid_t</em> <code>obj_id </code></td> <td valign="top">IN: Identifier of the object whose associated file identifier will be returned.</td> </tr> diff --git a/doc/html/RM_H5P.html b/doc/html/RM_H5P.html index 76d552a..4504519 100644 --- a/doc/html/RM_H5P.html +++ b/doc/html/RM_H5P.html @@ -2067,7 +2067,7 @@ END SUBROUTINE h5pget_buffer_f <dt><strong>Fortran90 Interface:</strong> h5pget_cache_f <dd> <pre> -SUBROUTINE h5pget_cache_f(prp_id, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, & +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 @@ -2572,7 +2572,7 @@ END SUBROUTINE h5pget_edc_check_f <dt><strong>Name:</strong> <a name="Property-GetExternal">H5Pget_external</a> <dt><strong>Signature:</strong> <dd><em>herr_t</em> <code>H5Pget_external</code>(<em>hid_t</em> <code>plist</code>, - <em>int</em> <code>idx</code>, + <em>unsigned</em> <code>idx</code>, <em>size_t</em> <code>name_size</code>, <em>char</em> <code>*name</code>, <em>off_t</em> <code>*offset</code>, @@ -2600,7 +2600,7 @@ END SUBROUTINE h5pget_edc_check_f <td valign="top"><em>hid_t</em> <code>plist</code></td> <td valign="top">IN: Identifier of a dataset creation property list.</td></tr> <tr> - <td valign="top"><em>int</em> <code>idx</code></td> + <td valign="top"><em>unsigned</em> <code>idx</code></td> <td valign="top">IN: External file index.</td></tr> <tr> <td valign="top"><em>size_t</em> <code>name_size </code></td> @@ -3072,7 +3072,7 @@ END SUBROUTINE h5pget_fapl_mpiposix_f <dt><strong>Fortran90 Interface:</strong> h5pget_fapl_multi_f <dd> <pre> -SUBROUTINE h5pget_fapl_multi_f(prp_id, memb_map, memb_fapl, memb_name, & +SUBROUTINE h5pget_fapl_multi_f(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr) IMPLICIT NONE INTEGER(HID_T),INTENT(IN) :: prp_id ! Property list identifier @@ -3512,8 +3512,8 @@ END SUBROUTINE h5pget_fill_value_f <dt><strong>Fortran90 Interface:</strong> h5pget_filter_f <dd> <pre> -SUBROUTINE h5pget_filter_f(prp_id, filter_number, flags, cd_nelmts, cd_values, - namelen, name, filter_id, hdferr) +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 INTEGER, INTENT(IN) :: filter_number ! Sequence number within the filter @@ -3618,16 +3618,15 @@ END SUBROUTINE h5pget_filter_f <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; otherwise returns a negative value. +<!-- NEW PAGE --> <dt><strong>Fortran90 Interface:</strong> h5pget_filter_by_id_f <dd> <pre> -SUBROUTINE h5pget_filter_by_id_f(prp_id, filter_id, flags, cd_nelmts, & +SUBROUTINE h5pget_filter_by_id_f(prp_id, filter_id, flags, cd_nelmts, cd_values, namelen, name, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier - INTEGER, INTENT(IN) :: filter_id ! Filter identifier</pre> -<!-- NEW PAGE --> -<pre> + 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 @@ -3703,7 +3702,6 @@ END SUBROUTINE h5pget_gc_references_f --> </dl> - <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Pget_hyper_vector_size" --> <hr> @@ -3766,7 +3764,7 @@ END SUBROUTINE h5pget_hyper_vector_size_f <dt><strong>Name:</strong> <a name="Property-GetIstoreK">H5Pget_istore_k</a> <dt><strong>Signature:</strong> <dd><em>herr_t </em><code>H5Pget_istore_k</code>(<em>hid_t</em> <code>plist</code>, - <em>int *</em> <code>ik</code> + <em>unsigned *</em> <code>ik</code> ) <dt><strong>Purpose:</strong> <dd>Queries the 1/2 rank of an indexed storage B-tree. @@ -3783,7 +3781,7 @@ END SUBROUTINE h5pget_hyper_vector_size_f <td valign="top"><em>hid_t</em> <code>plist </code></td> <td valign="top">IN: Identifier of property list to query.</td></tr> <tr> - <td valign="top"><em>int *</em> <code>ik</code></td> + <td valign="top"><em>unsigned *</em> <code>ik</code></td> <td valign="top">OUT: Pointer to location to return the chunked storage B-tree 1/2 rank.</td></tr> </table></ul> <dt><strong>Returns:</strong> @@ -4374,8 +4372,8 @@ END SUBROUTINE h5pget_small_data_block_size_f <dt><strong>Name:</strong> <a name="Property-GetSymK">H5Pget_sym_k</a> <dt><strong>Signature:</strong> <dd><em>herr_t </em><code>H5Pget_sym_k</code>(<em>hid_t</em> <code>plist</code>, - <em>int *</em> <code>ik</code>, - <em>int *</em> <code>lk</code> + <em>unsigned *</em> <code>ik</code>, + <em>unsigned *</em> <code>lk</code> ) <dt><strong>Purpose:</strong> <dd>Retrieves the size of the symbol table B-tree 1/2 rank @@ -4394,10 +4392,10 @@ END SUBROUTINE h5pget_small_data_block_size_f <td valign="top"><em>hid_t</em> <code>plist </code></td> <td valign="top">IN: Property list to query.</td></tr> <tr> - <td valign="top"><em>int *</em> <code>ik</code></td> + <td valign="top"><em>unsigned *</em> <code>ik</code></td> <td valign="top">OUT: Pointer to location to return the symbol table's B-tree 1/2 rank.</td></tr> <tr> - <td valign="top"><em>int *</em> <code>size</code></td> + <td valign="top"><em>unsigned *</em> <code>size</code></td> <td valign="top">OUT: Pointer to location to return the symbol table's leaf node 1/2 size.</td></tr> </table></ul> <dt><strong>Returns:</strong> @@ -4478,10 +4476,10 @@ END SUBROUTINE h5pget_userblock_f <dt><strong>Name:</strong> <a name="Property-GetVersion">H5Pget_version</a> <dt><strong>Signature:</strong> <dd><em>herr_t </em><code>H5Pget_version</code>(<em>hid_t</em> <code>plist</code>, - <em>int *</em> <code>super</code>, - <em>int *</em> <code>freelist</code>, - <em>int *</em> <code>stab</code>, - <em>int *</em> <code>shhdr</code> + <em>unsigned *</em> <code>super</code>, + <em>unsigned *</em> <code>freelist</code>, + <em>unsigned *</em> <code>stab</code>, + <em>unsigned *</em> <code>shhdr</code> ) <dt><strong>Purpose:</strong> <dd>Retrieves the version information of various objects for @@ -4496,16 +4494,16 @@ END SUBROUTINE h5pget_userblock_f <td valign="top"><em>hid_t</em> <code>plist</code></td> <td valign="top">IN: Identifier of the file creation property list.</td></tr> <tr> - <td valign="top"><em>int *</em> <code>super</code></td> + <td valign="top"><em>unsigned *</em> <code>super</code></td> <td valign="top">OUT: Pointer to location to return super block version number.</td></tr> <tr> - <td valign="top"><em>int *</em> <code>freelist </code></td> + <td valign="top"><em>unsigned *</em> <code>freelist </code></td> <td valign="top">OUT: Pointer to location to return global freelist version number.</td></tr> <tr> - <td valign="top"><em>int *</em> <code>stab</code></td> + <td valign="top"><em>unsigned *</em> <code>stab</code></td> <td valign="top">OUT: Pointer to location to return symbol table version number.</td></tr> <tr> - <td valign="top"><em>int *</em> <code>shhdr</code></td> + <td valign="top"><em>unsigned *</em> <code>shhdr</code></td> <td valign="top">OUT: Pointer to location to return shared object header version number.</td></tr> </table></ul> <dt><strong>Returns:</strong> @@ -4889,6 +4887,10 @@ SUBROUTINE <td>IN: Callback routine called when a property is copied from an existing property list</td></tr> <tr> + <td><em>H5P_prp_compare_func_t</em> <code>compare</code></td> + <td>IN: Callback routine called when a property is compared with + another property list</td></tr> + <tr> <td><em>H5P_prp_close_func_t</em> <code>close</code></td> <td>IN: Callback routine called when a property list is being closed and the property value will be disposed of</td></tr> @@ -5295,7 +5297,9 @@ END SUBROUTINE h5pmodify_filter_f to range check the value being set for the property or may perform some transformation or translation of the value set. The <code>get</code> callback would then - reverse the <!-- NEW PAGE -->transformation or translation. + reverse the + <!-- NEW PAGE --> + transformation or translation. A single <code>get</code> or <code>set</code> callback could handle multiple properties by performing different actions based on the @@ -5497,6 +5501,10 @@ END SUBROUTINE h5pmodify_filter_f <td valign="top">IN: Callback routine called when a property is copied from a property list</td></tr> <tr> + <td valign="top"><code>H5P_prp_compare_func_t</code> <em>compare</em></td> + <td valign="top">IN: Callback routine called when a property is compared with + another property list</td></tr> + <tr> <td valign="top"><code>H5P_prp_close_func_t</code> <em>close</em></td> <td valign="top">IN: Callback routine called when a property list is being closed and the property value will be disposed of</td></tr> @@ -5598,6 +5606,7 @@ END SUBROUTINE h5premove_f --> </dl> + <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Pset" --> <hr> @@ -5716,14 +5725,12 @@ END SUBROUTINE h5pset_f <tr> <td valign="top"><em>hsize_t</em> <code>threshold </code></td> <td valign="top">IN: Threshold value. - Must be non-negative. Note that setting the threshold value to 0 (zero) has the effect of a special case, forcing everything to be aligned.</td></tr> <tr> <td valign="top"><em>hsize_t</em> <code>alignment</code></td> - <td valign="top">IN: Alignment value. - Must be a positive value.</td></tr> + <td valign="top">IN: Alignment value.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; @@ -6437,18 +6444,18 @@ END SUBROUTINE h5pset_edc_check_f <dd>Adds an external file to the list of external files. <dt><strong>Description:</strong> <dd>The first call to <code>H5Pset_external</code> sets the - <i>external storage</i> property in the property list, - thus designating that the dataset will be stored in - one or more non-HDF5 file(s) external to the HDF5 file. - This call also adds the file <code>name</code> as the - first file in the list of external files. - Subsequent calls to the function add the named file as - the next file in the list. + <i>external storage</i> property in the property list, + thus designating that the dataset will be stored in + one or more non-HDF5 file(s) external to the HDF5 file. + This call also adds the file <code>name</code> as the + first file in the list of external files. + Subsequent calls to the function add the named file as + the next file in the list. <p> If a dataset is split across multiple files, then the files should be defined in order. The total size of the dataset is - the sum of the <code>size</code> arguments for all the external files. If - the total size is larger than the size of a dataset then the + the sum of the <code>size</code> arguments for all the external files. + If the total size is larger than the size of a dataset then the dataset can be extended (provided the data space also allows the extending). <p> @@ -6458,12 +6465,12 @@ END SUBROUTINE h5pset_edc_check_f external file can be of unlimited size and no more files can be added to the external files list. <p> - All of the external files for a given dataset must be - specified with <code>H5Pset_external</code> - <i>before</i> <code>H5Dcreate</code> is called to create - the dataset. - If one these files does not exist on the system when - <code>H5Dwrite</code> is called to write data to it, + All of the external files for a given dataset must be + specified with <code>H5Pset_external</code> + <i>before</i> <code>H5Dcreate</code> is called to create + the dataset. + If one these files does not exist on the system when + <code>H5Dwrite</code> is called to write data to it, the library will create the file. <dt><strong>Parameters:</strong> <ul><table> @@ -7336,16 +7343,14 @@ END SUBROUTINE h5pset_fapl_mpiposix_f <dt><strong>Fortran90 Interface:</strong> h5pset_fapl_multi_f <dd> <pre> -SUBROUTINE h5pset_fapl_multi_f(prp_id, memb_map, memb_fapl, memb_name, & +SUBROUTINE h5pset_fapl_multi_f(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr) IMPLICIT NONE INTEGER(HID_T),INTENT(IN) :: prp_id ! Property list identifier INTEGER,DIMENSION(0:H5FD_MEM_NTYPES_F-1),INTENT(IN) :: memb_map INTEGER(HID_T),DIMENSION(0:H5FD_MEM_NTYPES_F-1),INTENT(IN) :: memb_fapl - CHARACTER(LEN=*),DIMENSION(0:H5FD_MEM_NTYPES_F-1),INTENT(IN) :: memb_name</pre> -<!-- NEW PAGE --> -<pre> + CHARACTER(LEN=*),DIMENSION(0:H5FD_MEM_NTYPES_F-1),INTENT(IN) :: memb_name REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr ! Numbers in the interval [0,1) (e.g. 0.0 0.1 0.5 0.2 0.3 0.4) ! real address in the file will be calculated as X*HADDR_MAX @@ -8357,7 +8362,7 @@ END SUBROUTINE h5pset_hyper_vector_size_f <dt><strong>Name:</strong> <a name="Property-SetIstoreK">H5Pset_istore_k</a> <dt><strong>Signature:</strong> <dd><em>herr_t </em><code>H5Pset_istore_k</code>(<em>hid_t</em> <code>plist</code>, - <em>int</em> <code>ik</code> + <em>unsigned</em> <code>ik</code> ) <dt><strong>Purpose:</strong> <dd>Sets the size of the parameter used to control the @@ -8377,7 +8382,7 @@ END SUBROUTINE h5pset_hyper_vector_size_f <td valign="top"><em>hid_t</em> <code>plist </code></td> <td valign="top">IN: Identifier of property list to query.</td></tr> <tr> - <td valign="top"><em>int</em> <code>ik</code></td> + <td valign="top"><em>unsigned</em> <code>ik</code></td> <td valign="top">IN: 1/2 rank of chunked storage B-tree.</td></tr> </table></ul> <dt><strong>Returns:</strong> @@ -8717,9 +8722,9 @@ END SUBROUTINE h5pset_preserve_f closely related to each other and putting them together can increase the compression ratio. <p> - As implied above, the primary value of the shuffle filter + As implied above, the primary value of the shuffle filter lies in its coordinated use with a compression filter; - it does not provide data compression when used alone. + it does not provide data compression when used alone. When the shuffle filter is applied to a dataset immediately prior to the use of a compression filter, the compression ratio achieved is often superior to that @@ -8952,8 +8957,8 @@ END SUBROUTINE h5pset_small_data_block_size_f <dt><strong>Name:</strong> <a name="Property-SetSymK">H5Pset_sym_k</a> <dt><strong>Signature:</strong> <dd><em>herr_t </em><code>H5Pset_sym_k</code>(<em>hid_t</em> <code>plist</code>, - <em>int</em> <code>ik</code>, - <em>int</em> <code>lk</code> + <em>unsigned</em> <code>ik</code>, + <em>unsigned</em> <code>lk</code> ) <dt><strong>Purpose:</strong> <dd>Sets the size of parameters used to control the symbol table nodes. @@ -8981,10 +8986,10 @@ END SUBROUTINE h5pset_small_data_block_size_f <td valign="top"><em>hid_t</em> <code>plist </code></td> <td valign="top">IN: Identifier for property list to query.</td></tr> <tr> - <td valign="top"><em>int</em> <code>ik</code></td> + <td valign="top"><em>unsigned</em> <code>ik</code></td> <td valign="top">IN: Symbol table tree rank.</td></tr> <tr> - <td valign="top"><em>int</em> <code>lk</code></td> + <td valign="top"><em>unsigned</em> <code>lk</code></td> <td valign="top">IN: Symbol table node size.</td></tr> </table></ul> <dt><strong>Returns:</strong> @@ -9023,9 +9028,53 @@ END SUBROUTINE h5pset_sym_k_f <dt><strong>Purpose:</strong> <dd>Sets up use of the SZIP compression filter. <dt><strong>Description:</strong> - <dd><code>H5Pset_szip</code> sets a filter for the dataset - to SZIP compression, <code>H5Z_FILTER_SZIP</code>, - a compression method designed for use with scientific data. + <dd><code>H5Pset_szip</code> sets an SZIP compression filter, + <code>H5Z_FILTER_SZIP</code>, for a dataset. + SZIP is a compression method designed for use with scientific data. + <p> + Before proceeding, be aware that there are factors that affect + your rights and ability to use SZIP compression. + See the documents at + <a href="http://hdf.ncsa.uiuc.edu/HDF5/doc_resource/SZIP/index.html" + target="External">SZIP Compression in HDF5</a> + for <em>important information regarding terms of use and + the SZIP copyright notice</em>, + for further discussion of SZIP compression in HDF5, + and for a list of SZIP-related references. + + <p> + In the text below, the term <em>pixel</em> refers to + an HDF5 data element. + This terminology derives from SZIP compression's use with image data, + where pixel referred to an image pixel. + <p> + The SZIP <code>bits_per_pixel</code> value (see <b>Notes</b>, below) + is automatically set, based on the HDF5 datatype. + SZIP can be used with atomic datatypes that may have size + of 8, 16, 32, or 64 bits. + Specifically, a dataset with a datatype that is + 8-, 16-, 32-, or 64-bit + signed or unsigned integer; + char; or + 32- or 64-bit float + can be compressed with SZIP. + See <b>Notes</b>, below, for further discussion of the + the SZIP <code>bits_per_pixel</code> setting. + + <p> + SZIP compression cannot be applied to + compound datatypes, + array datatypes, + variable-length datatypes, + enumerations, or + any other user-defined datatypes. + If an SZIP filter is set up for a dataset containing a non-allowed + datatype, <code>H5Pset_szip</code> will succeed but the subsequent call + to <a href="RM_H5D.html#Dataset-Create"><code>H5Dcreate</code></a> + will fail; + the conflict is detected only when the property list is used. + + <p> SZIP options are passed in an options mask, <code>options_mask</code>, as follows. @@ -9038,62 +9087,20 @@ END SUBROUTINE h5pset_sym_k_f <hr> <b>Description</b> <br> - <font size=-1>(Paired options are mutually exclusive.)</font> - </td></tr> - - <tr valign=top align=left><td> - <hr> - <code>H5_SZIP_CHIP_OPTION_MASK </code> - </td><td> - <hr> - Compresses exactly as in hardware. - </td></tr> - <tr valign=top align=left><td> - <code>H5_SZIP_ALLOW_K13_OPTION_MASK </code> - </td><td> - Allows k split = 13 compression mode. (Default) + <font size=-1>(Mutually exclusive; select one.)</font> </td></tr> - <tr valign=top align=left><td> <hr> - <code>H5_SZIP_EC_OPTION_MASK</code> + <code>H5_SZIP_EC_OPTION_MASK </code> </td><td> <hr> - Selects entropy coding method. (Default) + Selects entropy coding method. </td></tr> <tr valign=top align=left><td> <code>H5_SZIP_NN_OPTION_MASK</code> </td><td> Selects nearest neighbor coding method. </td></tr> - -<!-- THESE OPTIONS ARE SET DIRECTLY BY THE LIBRARY AND - ARE NOT AVAILABLE FOR USER CONTROL - - <tr valign=top align=left><td> - <hr> - <code>LSB_OPTION_MASK</code> - </td><td> - <hr> - Data format is least significant byte first. (Default) - </td></tr> - <tr valign=top align=left><td> - <code>MSB_OPTION_MASK</code> - </td><td> - Data format is most significant byte first. - </td></tr> - - <tr valign=top align=left><td> - <hr> - <code>RAW_OPTION_MASK</code> - </td><td> - <hr> - Do not output SZIP header.<br> - Not a default setting, but should always be set in HDF5. - </td></tr> - -END LIBRARY-SET OPTION TAGS --> - <tr valign=top align=left><td> <hr> </td><td> @@ -9101,50 +9108,50 @@ END LIBRARY-SET OPTION TAGS --> </td></tr> </table> </center> - Some typical usages are as follows: + The following guidelines can be used in determining + which option to select: <ul> - <li>One of the compression methods, - <code>H5_SZIP_EC_OPTION_MASK</code> or - <code>H5_SZIP_NN_OPTION_MASK</code>, is specified. - <li>The <code>H5_SZIP_ALLOW_K13_OPTION_MASK</code> is used. + <li>The entropy coding method, the EC option specified by + <code>H5_SZIP_EC_OPTION_MASK</code>, is best suited for + data that has been processed. + The EC method works best for small numbers. + <li>The nearest neighbor coding method, the NN option + specified by <code>H5_SZIP_NN_OPTION_MASK</code>, + preprocesses the data then the applies EC method as above. </ul> - <p> - Options are combined to create the options mask by means of - a logical <code>OR</code> operation. For example, the - option mask can be set as follows: - <br><br><code> - options_mask = H5_SZIP_NN_OPTION_MASK | H5_SZIP_ALLOW_K13_OPTION_MASK; - </code> + Other factors may affect results, but the above criteria + provides a good starting point for optimizing data compression. + <p> SZIP compresses data block by block, with a user-tunable block size. This block size is passed in the parameter - <code>pixels_per_block</code> and must be even, + <code>pixels_per_block</code> and must be even and not greater than 32, with typical values being <code>8</code>, <code>10</code>, - <code>16</code>, and <code>32</code>. - The more pixel values vary, the smaller this number should be. - For optimal performance, the number of pixels per scan line - (i.e., the size of the fastest-changing dimension in the chunk) - should be an even multiple of the number of pixels per block. - <p> - <dt><strong>Notes:</strong> - <dd>SZIP works only with datasets with 1 through 24 bits/pixel, - 32 pits/pixel, or 64 bits/pixel. + <code>16</code>, or <code>32</code>. + This parameter affects compression ratio; + the more pixel values vary, the smaller this number should be to + achieve better performance. <p> - SZIP typically requires that the user application also supply - the number of pixels in the object to be compressed, - the number of bits per pixel, and the number of pixels per scan line. - These values need not be independently supplied in the HDF5 - environment as they are derived from the datatype and dataspace, - which are already known. + In HDF5, compression can be applied only to chunked datasets. + If <code>pixels_per_block</code> is bigger than the total + number of elements in a dataset chunk, + <code>H5Pset_szip</code> will succeed but the subsequent call to + <a href="RM_H5D.html#Dataset-Create"><code>H5Dcreate</code></a> + will fail; the conflict is detected only when the property list + is used. <p> - Also see - <a href="http://hdf.ncsa.uiuc.edu/HDF5/doc_resource/SZIP/index.html" - target="External">SZIP Compression in HDF5</a> - for further discussion of SZIP compression in HDF5, - for <em>important information regarding terms of use and - the SZIP copyright notice</em>, - and for a list of SZIP-related references. - + To achieve optimal performance for SZIP compression, + it is recommended that a chunk's fastest-changing dimension + be equal to <em>N</em> times <code>pixels_per_block</code> + where <em>N</em> is the maximum number of blocks per scan line + allowed by the SZIP library. + In the current version of SZIP, <em>N</em> is set to 128. + <p> + <code>H5Pset_szip</code> will fail if SZIP encoding is + disabled in the available copy of the SZIP library. + <a href="RM_H5Z.html#Compression-GetFilterInfo"> + <code>H5Zget_filter_info</code></a> can be employed + to avoid such a failure. <dt><strong>Parameters:</strong> <ul><table> <tr> @@ -9153,7 +9160,9 @@ END LIBRARY-SET OPTION TAGS --> identifier.</td></tr> <tr> <td valign="top"><em>unsigned int</em> <code>options_mask</code></td> - <td valign="top">IN: A bit-mask conveying the desired SZIP options.</td></tr> + <td valign="top">IN: A bit-mask conveying the desired SZIP options. + Valid values are <code>H5_SZIP_EC_OPTION_MASK</code> + and <code>H5_SZIP_NN_OPTION_MASK</code>.</td></tr> <tr> <td valign="top"><em>unsigned int</em> <code>pixels_per_block </code></td> <td valign="top">IN: The number of pixels or data elements in each data block.</td></tr> @@ -9161,6 +9170,81 @@ END LIBRARY-SET OPTION TAGS --> <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; otherwise returns a negative value. + <dt><strong>Notes:</strong> + <dd>The following notes are of interest primarily to those who have + used SZIP compression outside of the HDF5 context. + <p> + In non-HDF5 applications, SZIP typically requires that the + user application supply additional parameters: + <ul> + <li><code>pixels_in_object</code>, + the number of pixels in the object to be compressed + <li><code>bits_per_pixel</code>, + the number of bits per pixel + <li><code>pixels_per_scanline</code>, + the number of pixels per scan line + </ul> + <p> + These values need not be independently supplied in the HDF5 + environment as they are derived from the datatype and dataspace, + which are already known. + In particular, HDF5 sets + <code>pixels_in_object</code> to the number of elements in a chunk + and <code>bits_per_pixel</code> to the size of the element or + pixel datatype. + The following algorithm is used to set + <code>pixels_per_scanline</code>: + <ul> + <li>If the size of a chunk's fastest-changing dimension, + <em>size</em>, is greater than 4K, + set <code>pixels_per_scanline</code> to + 128 times <code>pixels_per_block</code>. + <li>If <em>size</em> is less than 4K + but greater than <code>pixels_per_block</code>, + set <code>pixels_per_scanline</code> to the minimum of + <em>size</em> and 128 times <code>pixels_per_block</code>. + <li>If <em>size</em> is less than <code>pixels_per_block</code> + but greater than the number elements in the chunk, + set <code>pixels_per_scanline</code> to the minimum of + the number elements in the chunk and + 128 times <code>pixels_per_block</code>. + </ul> + + <p> + The HDF5 datatype may have precision that is less than the + full size of the data element, e.g., an 11-bit integer can be + defined using + <a href="RM_H5T.html#Datatype-SetPrecision"><code>H5Tset_precision</code></a>. + To a certain extent, SZIP can take advantage of the + precision of the datatype to improve compression: + <ul><li> + If the HDF5 datatype size is 24-bit or less and + the offset of the bits in the HDF5 datatype is zero + (see <a href="RM_H5T.html#Datatype-SetOffset"><code>H5Tset_offset</code></a> + or <a href="RM_H5T.html#Datatype-GetOffset"><code>H5Tget_offset</code></a>), + the data is the in lowest N bits of the data element. + In this case, the SZIP <code>bits_per_pixel</code> + is set to the precision + of the HDF5 datatype. + <li> + If the offset is not zero, the SZIP <code>bits_per_pixel</code> + will be set to the number of bits in the full size of the data + element. + <li> + If the HDF5 datatype precision is 25-bit to 32-bit, + the SZIP <code>bits_per_pixel</code> will be set to 32. + <li> + If the HDF5 datatype precision is 33-bit to 64-bit, + the SZIP <code>bits_per_pixel</code> will be set to 64. + </ul> + + <p> + HDF5 always modifies the options mask provided by the user + to set up usage of <code>RAW_OPTION_MASK</code>, + <code>ALLOW_K13_OPTION_MASK</code>, and one of + <code>LSB_OPTION_MASK</code> or <code>MSB_OPTION_MASK</code>, + depending on endianness of the datatype. + <dt><strong>Fortran90 Interface:</strong> h5pset_szip_f <dd> <pre> diff --git a/doc/html/RM_H5R.html b/doc/html/RM_H5R.html index 5c93eb9..6573567 100644 --- a/doc/html/RM_H5R.html +++ b/doc/html/RM_H5R.html @@ -151,6 +151,7 @@ as the corresponding C function. <p> <!-- NEW PAGE --> +<!-- HEADER RIGHT " " --> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Rcreate" --> <hr> @@ -218,8 +219,8 @@ as the corresponding C function. otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5rcreate_f - <dd><p><strong>To create an object reference</strong> - + <p><strong>To create an object reference</strong> + <dd> <pre> SUBROUTINE h5rcreate_f(loc_id, name, ref, hdferr) IMPLICIT NONE @@ -233,8 +234,8 @@ END SUBROUTINE h5rcreate_f </pre></dt> <!-- NEW PAGE --> -<dt><dd><strong>To create a region reference</strong> - +<dt><strong>To create a region reference</strong> + <dd> <pre> SUBROUTINE h5rcreate_f(loc_id, name, space_id, ref, hdferr) IMPLICIT NONE diff --git a/doc/html/RM_H5S.html b/doc/html/RM_H5S.html index 7b50c0d..cea30c5 100644 --- a/doc/html/RM_H5S.html +++ b/doc/html/RM_H5S.html @@ -234,6 +234,7 @@ of the <cite>HDF5 User's Guide.</cite>. --> <!-- NEW PAGE --> +<!-- HEADER RIGHT " " --> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sclose" --> <hr> @@ -500,8 +501,8 @@ END SUBROUTINE h5sextent_copy_f <dt><strong>Name:</strong> <a name="Dataspace-SelectBounds">H5Sget_select_bounds</a> <dt><strong>Signature:</strong> <dd><em>herr_t </em><code>H5Sget_select_bounds</code>(<em>hid_t </em><code>space_id</code>, - <em>hssize_t *</em><code>start</code>, - <em>hssize_t *</em><code>end</code> + <em>hsize_t *</em><code>start</code>, + <em>hsize_t *</em><code>end</code> ) <dt><strong>Purpose:</strong> <dd>Gets the bounding box containing the current selection. @@ -529,10 +530,10 @@ END SUBROUTINE h5sextent_copy_f <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">IN: Identifier of dataspace to query.</td></tr> <tr> - <td valign="top"><em>hssize_t *</em><code>start</code></td> + <td valign="top"><em>hsize_t *</em><code>start</code></td> <td valign="top">OUT: Starting coordinates of the bounding box.</td></tr> <tr> - <td valign="top"><em>hssize_t *</em><code>end</code></td> + <td valign="top"><em>hsize_t *</em><code>end</code></td> <td valign="top">OUT: Ending coordinates of the bounding box, i.e., the coordinates of the diagonally opposite corner.</td></tr> </table></ul> @@ -546,9 +547,9 @@ SUBROUTINE h5sget_select_bounds_f(space_id, start, end, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier - INTEGER(HSSIZE_T), DIMENSION(*), INTENT(OUT) :: start + INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: start ! Starting coordinates of the bounding box - INTEGER(HSSIZE_T), DIMENSION(*), INTENT(OUT) :: end + INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: end ! Ending coordinates of the bounding box, ! i.e., the coordinates of the diagonally ! opposite corner @@ -662,7 +663,7 @@ END SUBROUTINE h5sget_select_elem_npoints_f <dt><strong>Fortran90 Interface:</strong> h5sget_select_elem_pointlist_f <dd> <pre> -SUBROUTINE h5sget_select_elem_pointlist_f(space_id, startpoint, num_points, & +SUBROUTINE h5sget_select_elem_pointlist_f(space_id, startpoint, num_points, buf, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier @@ -741,7 +742,7 @@ END SUBROUTINE h5sget_select_elem_pointlist_f <dt><strong>Fortran90 Interface:</strong> h5sget_select_hyper_blocklist_f <dd> <pre> -SUBROUTINE h5sget_select_hyper_blocklist_f(space_id, startblock, num_blocks, & +SUBROUTINE h5sget_select_hyper_blocklist_f(space_id, startblock, num_blocks, buf, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier @@ -1270,7 +1271,7 @@ END SUBROUTINE h5sselect_all_f <dd><em>herr_t</em> <code>H5Sselect_elements</code>(<em>hid_t </em><code>space_id</code>, <em>H5S_seloper_t</em> <code>op</code>, <em>const size_t</em> <code>num_elements</code>, - <em>const hssize_t *</em><code>coord</code>[ ] + <em>const hsize_t *</em><code>coord</code>[ ] ) <dt><strong>Purpose:</strong> <dd>Selects array elements to be included in the selection for a dataspace. @@ -1336,7 +1337,7 @@ END SUBROUTINE h5sselect_all_f <td valign="top"><em>const size_t</em> <code>num_elements </code></td> <td valign="top">Number of elements to be selected.</td></tr> <tr> - <td valign="top"><em>const hssize_t *</em><code>coord</code>[ ]</td> + <td valign="top"><em>const hsize_t *</em><code>coord</code>[ ]</td> <td valign="top">A 2-dimensional array of 0-based values specifying the coordinates of the elements being selected.</td></tr> </table></ul> @@ -1346,7 +1347,7 @@ END SUBROUTINE h5sselect_all_f <dt><strong>Fortran90 Interface:</strong> h5sselect_elements_f <dd> <pre> -SUBROUTINE h5sselect_elements_f(space_id, operator, num_elements, & +SUBROUTINE h5sselect_elements_f(space_id, operator, num_elements, coord, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier @@ -1354,7 +1355,7 @@ SUBROUTINE h5sselect_elements_f(space_id, operator, num_elements, & ! H5S_SELECT_SET_F ! H5S_SELECT_OR_F INTEGER, INTENT(IN) :: num_elements ! Number of elements to be selected - INTEGER(HSSIZE_T), DIMENSION(*,*), INTENT(IN) :: coord + INTEGER(HSIZE_T), DIMENSION(*,*), INTENT(IN) :: coord ! Array with the coordinates ! of the selected elements: ! coord(num_elements, rank)</pre> @@ -1381,7 +1382,7 @@ END SUBROUTINE h5sselect_elements_f <dt><strong>Signature:</strong> <dd><em>herr_t</em> <code>H5Sselect_hyperslab</code>(<em>hid_t</em> <code>space_id</code>, <em>H5S_seloper_t</em> <code>op</code>, - <em>const hssize_t *</em><code>start</code>, + <em>const hsize_t *</em><code>start</code>, <em>const hsize_t *</em><code>stride</code>, <em>const hsize_t *</em><code>count</code>, <em>const hsize_t *</em><code>block</code> @@ -1492,7 +1493,7 @@ END SUBROUTINE h5sselect_elements_f <td valign="top"><em>H5S_seloper_t</em> <code>op</code></td> <td valign="top">IN: Operation to perform on current selection.</td></tr> <tr> - <td valign="top"><em>const hssize_t *</em><code>start</code></td> + <td valign="top"><em>const hsize_t *</em><code>start</code></td> <td valign="top">IN: Offset of start of hyperslab</td></tr> <tr> <td valign="top"><em>const hsize_t *</em><code>count</code></td> @@ -1510,14 +1511,14 @@ END SUBROUTINE h5sselect_elements_f <dt><strong>Fortran90 Interface:</strong> h5sselect_hyperslab_f <dd> <pre> -SUBROUTINE h5sselect_hyperslab_f(space_id, operator, start, count, & +SUBROUTINE h5sselect_hyperslab_f(space_id, operator, start, count, hdferr, stride, block) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER, INTENT(IN) :: op ! Flag, valid values are: ! H5S_SELECT_SET_F ! H5S_SELECT_OR_F - INTEGER(HSSIZE_T), DIMENSION(*), INTENT(IN) :: start + INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: start ! Starting coordinates of hyperslab INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: count ! Number of blocks to select @@ -1719,7 +1720,7 @@ END SUBROUTINE h5sset_extent_none_f <dt><strong>Fortran90 Interface:</strong> h5sset_extent_simple_f <dd> <pre> -SUBROUTINE h5sset_extent_simple_f(space_id, rank, current_size, & +SUBROUTINE h5sset_extent_simple_f(space_id, rank, current_size, maximum_size, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier diff --git a/doc/html/RM_H5T.html b/doc/html/RM_H5T.html index 87591bc..2bcb045 100644 --- a/doc/html/RM_H5T.html +++ b/doc/html/RM_H5T.html @@ -164,6 +164,7 @@ of a dataset. <br> +<!-- NEW PAGE --> <i>Alphabetical Listing</i> <table border="0" width=100%> <tr> @@ -376,6 +377,7 @@ See <a href="Datatypes.html"><cite>The Datatype Interface (H5T)</cite></a> in the <cite>HDF5 User's Guide</cite> for further information, including a complete list of all supported datatypes. <!-- NEW PAGE --> +<!-- HEADER RIGHT " " --> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Tarray_create" --> <hr> @@ -1593,7 +1595,7 @@ END SUBROUTINE h5tget_inpad_f <dt><strong>Signature:</strong> <dd><em>H5T_class_t</em> <code>H5Tget_member_class</code>( <em>hid_t</em> <code>cdtype_id</code>, - <em>int </em><code>member_no</code> + <em>unsigned </em><code>member_no</code> ) <dt><strong>Purpose:</strong> <dd>Returns datatype class of compound datatype member. @@ -1607,7 +1609,7 @@ END SUBROUTINE h5tget_inpad_f <td valign="top"><em>hid_t</em> <code>cdtype_id </code></td> <td valign="top">IN: Datatype identifier of compound object.</td></tr> <tr> - <td valign="top"><em>int</em> <code>member_no</code></td> + <td valign="top"><em>unsigned</em> <code>member_no</code></td> <td valign="top">IN: Compound object member number.</td></tr> </table></ul> <dt><strong>Returns:</strong> @@ -1684,7 +1686,7 @@ END SUBROUTINE h5tget_inpad_f <dt><strong>Name:</strong> <a name="Datatype-GetMemberName">H5Tget_member_name</a> <dt><strong>Signature:</strong> <dd><em>char *</em> <code>H5Tget_member_name</code>(<em>hid_t </em><code>type_id</code>, - <em>int</em> <code>field_idx</code> + <em>unsigned</em> <code>field_idx</code> ) <dt><strong>Purpose:</strong> <dd>Retrieves the name of a compound or enumeration datatype member. @@ -1708,7 +1710,7 @@ END SUBROUTINE h5tget_inpad_f <td valign="top"><em>hid_t</em> <code>type_id </code></td> <td valign="top">Identifier of datatype to query.</td></tr> <tr> - <td valign="top"><em>int</em> <code>field_idx</code></td> + <td valign="top"><em>unsigned</em> <code>field_idx</code></td> <td valign="top">Zero-based index of the field or element whose name is to be retrieved.</td></tr> </table></ul> @@ -1746,7 +1748,7 @@ END SUBROUTINE h5tget_member_name_f <dt><strong>Name:</strong> <a name="Datatype-GetMemberOffset">H5Tget_member_offset</a> <dt><strong>Signature:</strong> <dd><em>size_t</em> <code>H5Tget_member_offset</code>(<em>hid_t </em><code>type_id</code>, - <em>int</em> <code>memb_no</code> + <em>unsigned</em> <code>memb_no</code> ) <dt><strong>Purpose:</strong> <dd>Retrieves the offset of a field of a compound datatype. @@ -1761,7 +1763,7 @@ END SUBROUTINE h5tget_member_name_f <td valign="top"><em>hid_t</em> <code>type_id </code></td> <td valign="top">Identifier of datatype to query.</td></tr> <tr> - <td valign="top"><em>int</em> <code>memb_no</code></td> + <td valign="top"><em>unsigned</em> <code>memb_no</code></td> <td valign="top">Number of the field whose offset is requested.</td></tr> </table></ul> <dt><strong>Returns:</strong> @@ -1799,7 +1801,7 @@ END SUBROUTINE h5tget_member_offset_f <dt><strong>Name:</strong> <a name="Datatype-GetMemberType">H5Tget_member_type</a> <dt><strong>Signature:</strong> <dd><em>hid_t</em> <code>H5Tget_member_type</code>(<em>hid_t </em><code>type_id</code>, - <em>int</em> <code>field_idx</code> + <em>unsigned</em> <code>field_idx</code> ) <dt><strong>Purpose:</strong> <dd>Returns the datatype of the specified member. @@ -1812,7 +1814,7 @@ END SUBROUTINE h5tget_member_offset_f <td valign="top"><em>hid_t</em> <code>type_id </code></td> <td valign="top">Identifier of datatype to query.</td></tr> <tr> - <td valign="top"><em>int</em> <code>field_idx</code></td> + <td valign="top"><em>unsigned</em> <code>field_idx</code></td> <td valign="top">Field index (0-based) of the field type to retrieve.</td></tr> </table></ul> <dt><strong>Returns:</strong> @@ -1848,7 +1850,7 @@ END SUBROUTINE h5tget_member_type_f <dt><strong>Name:</strong> <a name="Datatype-GetMemberValue">H5Tget_member_value</a> <dt><strong>Signature:</strong> <dd><em>hid_t</em> <code>H5Tget_member_value</code>(<em>hid_t</em> <code>type</code> - <em>int</em> <code>memb_no</code>, + <em>unsigned</em> <code>memb_no</code>, <em>void</em> *<code>value</code> ) <dt><strong>Purpose:</strong> @@ -1865,7 +1867,7 @@ END SUBROUTINE h5tget_member_type_f <td valign="top"><em>hid_t</em> <code>type</code></td> <td valign="top">IN: Datatype identifier for the enumeration datatype.</td></tr> <tr> - <td valign="top"><em>int</em> <code>memb_no</code>,</td> + <td valign="top"><em>unsigned</em> <code>memb_no</code>,</td> <td valign="top">IN: Number of the enumeration datatype member.</td></tr> <tr> <td valign="top"><em>void</em> *<code>value </code></td> diff --git a/doc/html/RM_H5Z.html b/doc/html/RM_H5Z.html index 2310e7b..b0497db 100644 --- a/doc/html/RM_H5Z.html +++ b/doc/html/RM_H5Z.html @@ -143,18 +143,18 @@ are as follows: <table align=center border=0> <tr valign=top align=left> <td> - <code>H5Z_FILTER_DEFLATE</code></td><td>The gzip compression, + <code>H5Z_FILTER_DEFLATE</code></td><td>The gzip compression, or deflation, filter </td></tr><tr><td> <code>H5Z_FILTER_SZIP</code></td><td>The SZIP compression filter </td></tr><tr><td> <code>H5Z_FILTER_SHUFFLE</code></td><td>The shuffle algorithm filter </td></tr><tr><td> - <code>H5Z_FILTER_FLETCHER32 </code></td><td>The Fletcher32 checksum, + <code>H5Z_FILTER_FLETCHER32 </code></td><td>The Fletcher32 checksum, or error checking, filter </td></tr> </table> -Custom filters that have been registered with the library will have +Custom filters that have been registered with the library will have additional unique identifiers. <p> See <a href="Datasets.html"><cite>The Dataset Interface (H5D)</cite></a> @@ -162,6 +162,7 @@ in the <cite>HDF5 User's Guide</cite> for further information regarding data compression. <!-- NEW PAGE --> +<!-- HEADER RIGHT " " --> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Zfilter_avail" --> <hr> @@ -301,7 +302,8 @@ END SUBROUTINE h5zfilter_avail_f <dd>Returns a non-negative value on success, a negative value on failure. -<dt><strong>Fortran90 Interface:</strong> +<!-- NEW PAGE --> +<dt><strong>Fortran90 Interface:</strong> <dd> <pre> SUBROUTINE h5zget_filter_info_f(filter, config_flags, hdferr) diff --git a/doc/html/References.html b/doc/html/References.html index 2b7b4cf..766b92c 100644 --- a/doc/html/References.html +++ b/doc/html/References.html @@ -339,7 +339,7 @@ write the dataset to the file. href_t data[10][10]; /* HDF5 reference type */ int rank; size_t dimsf[2]; - hssize_t start[3],count[3]; + hsize_t start[3],count[3]; int i, j; /* Open the file */ diff --git a/doc/html/Tutor/examples/h5_copy.c b/doc/html/Tutor/examples/h5_copy.c index b0a5e00..357596b 100644 --- a/doc/html/Tutor/examples/h5_copy.c +++ b/doc/html/Tutor/examples/h5_copy.c @@ -38,7 +38,7 @@ int main (void) int bufnew[DIM1][DIM2]; int val[] = {53, 59}; hsize_t marray[] = {2}; - hssize_t coord[NUMP][RANK]; + hsize_t coord[NUMP][RANK]; herr_t ret; uint i, j; @@ -95,7 +95,7 @@ int main (void) coord[0][0] = 0; coord[0][1] = 3; coord[1][0] = 0; coord[1][1] = 1; - ret = H5Sselect_elements (fid1, H5S_SELECT_SET, NUMP, (const hssize_t **)coord); + ret = H5Sselect_elements (fid1, H5S_SELECT_SET, NUMP, (const hsize_t **)coord); ret = H5Dwrite (dataset1, H5T_NATIVE_INT, mid1, fid1, H5P_DEFAULT, val); diff --git a/doc/html/Tutor/examples/h5_extend.c b/doc/html/Tutor/examples/h5_extend.c index ae26ed6..1f81827 100644 --- a/doc/html/Tutor/examples/h5_extend.c +++ b/doc/html/Tutor/examples/h5_extend.c @@ -32,7 +32,7 @@ main (void) hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED}; hsize_t size[2]; - hssize_t offset[2]; + hsize_t offset[2]; hsize_t i,j; herr_t status, status_n; int data1[3][3] = { {1, 1, 1}, /* data to write */ diff --git a/doc/html/Tutor/examples/h5_hyperslab.c b/doc/html/Tutor/examples/h5_hyperslab.c index fc953d5..120e30d 100644 --- a/doc/html/Tutor/examples/h5_hyperslab.c +++ b/doc/html/Tutor/examples/h5_hyperslab.c @@ -40,9 +40,9 @@ main (void) int data_out[NX][NY][NZ ]; /* output buffer */ hsize_t count[2]; /* size of the hyperslab in the file */ - hssize_t offset[2]; /* hyperslab offset in the file */ + hsize_t offset[2]; /* hyperslab offset in the file */ hsize_t count_out[3]; /* size of the hyperslab in memory */ - hssize_t offset_out[3]; /* hyperslab offset in memory */ + hsize_t offset_out[3]; /* hyperslab offset in memory */ int i, j, k, status_n, rank; diff --git a/doc/html/Tutor/examples/h5_read.c b/doc/html/Tutor/examples/h5_read.c index 31cb882..8f2f179 100644 --- a/doc/html/Tutor/examples/h5_read.c +++ b/doc/html/Tutor/examples/h5_read.c @@ -36,9 +36,9 @@ main (void) int data_out[NX][NY][NZ ]; /* output buffer */ hsize_t count[2]; /* size of the hyperslab in the file */ - hssize_t offset[2]; /* hyperslab offset in the file */ + hsize_t offset[2]; /* hyperslab offset in the file */ hsize_t count_out[3]; /* size of the hyperslab in memory */ - hssize_t offset_out[3]; /* hyperslab offset in memory */ + hsize_t offset_out[3]; /* hyperslab offset in memory */ int i, j, k, status_n, rank; for (j = 0; j < NX; j++) { diff --git a/doc/html/Tutor/examples/h5_ref2regr.c b/doc/html/Tutor/examples/h5_ref2regr.c index 26b5daf..9f747ae 100644 --- a/doc/html/Tutor/examples/h5_ref2regr.c +++ b/doc/html/Tutor/examples/h5_ref2regr.c @@ -24,8 +24,8 @@ main(void) hid_t sid1, /* Dataspace ID #1 */ sid2; /* Dataspace ID #2 */ hsize_t * coords; /* Coordinate buffer */ - hssize_t low[SPACE2_RANK]; /* Selection bounds */ - hssize_t high[SPACE2_RANK]; /* Selection bounds */ + hsize_t low[SPACE2_RANK]; /* Selection bounds */ + hsize_t high[SPACE2_RANK]; /* Selection bounds */ hdset_reg_ref_t *rbuf; /* buffer to to read disk */ int *drbuf; /* Buffer for reading numeric data from disk */ int i, j; /* counting variables */ diff --git a/doc/html/Tutor/examples/h5_ref2regw.c b/doc/html/Tutor/examples/h5_ref2regw.c index 5f27950..35352f8 100644 --- a/doc/html/Tutor/examples/h5_ref2regw.c +++ b/doc/html/Tutor/examples/h5_ref2regw.c @@ -18,18 +18,18 @@ int main(void) { - hid_t fid1; /* HDF5 File IDs */ - hid_t dset1, /* Dataset ID */ + hid_t fid1; /* HDF5 File IDs */ + hid_t dset1, /* Dataset ID */ dset2; /* Dereferenced dataset ID */ - hid_t sid1, /* Dataspace ID #1 */ + hid_t sid1, /* Dataspace ID #1 */ sid2; /* Dataspace ID #2 */ - hsize_t dims1[] = {SPACE1_DIM1}, + hsize_t dims1[] = {SPACE1_DIM1}, dims2[] = {SPACE2_DIM1, SPACE2_DIM2}; - hssize_t start[SPACE2_RANK]; /* Starting location of hyperslab */ - hsize_t stride[SPACE2_RANK]; /* Stride of hyperslab */ - hsize_t count[SPACE2_RANK]; /* Element count of hyperslab */ - hsize_t block[SPACE2_RANK]; /* Block size of hyperslab */ - hssize_t coord1[POINT1_NPOINTS][SPACE2_RANK]; + hsize_t start[SPACE2_RANK]; /* Starting location of hyperslab */ + hsize_t stride[SPACE2_RANK]; /* Stride of hyperslab */ + hsize_t count[SPACE2_RANK]; /* Element count of hyperslab */ + hsize_t block[SPACE2_RANK]; /* Block size of hyperslab */ + hsize_t coord1[POINT1_NPOINTS][SPACE2_RANK]; /* Coordinates for point selection */ hdset_reg_ref_t *wbuf; /* buffer to write to disk */ int *dwbuf; /* Buffer for writing numeric data to disk */ @@ -88,7 +88,7 @@ main(void) coord1[7][0]=9; coord1[7][1]=0; coord1[8][0]=7; coord1[8][1]=1; coord1[9][0]=3; coord1[9][1]=3; - ret = H5Sselect_elements(sid2,H5S_SELECT_SET,POINT1_NPOINTS,(const hssize_t **)coord1); + ret = H5Sselect_elements(sid2,H5S_SELECT_SET,POINT1_NPOINTS,(const hsize_t **)coord1); /* Store second dataset region */ ret = H5Rcreate(&wbuf[1],fid1,"/Dataset2",H5R_DATASET_REGION,sid2); diff --git a/doc/html/Tutor/examples/refregexample.f90 b/doc/html/Tutor/examples/refregexample.f90 index 05fcf3f..5d72f1e 100644 --- a/doc/html/Tutor/examples/refregexample.f90 +++ b/doc/html/Tutor/examples/refregexample.f90 @@ -27,13 +27,13 @@ TYPE(hdset_reg_ref_t_f) , DIMENSION(2) :: ref_out ! INTEGER(HSIZE_T), DIMENSION(2) :: dims = (/2,9/) ! Datasets dimensions INTEGER(HSIZE_T), DIMENSION(1) :: dimsr = (/2/) ! - INTEGER(HSSIZE_T), DIMENSION(2) :: start + INTEGER(HSIZE_T), DIMENSION(2) :: start INTEGER(HSIZE_T), DIMENSION(2) :: count INTEGER :: rankr = 1 INTEGER :: rank = 2 INTEGER , DIMENSION(2,9) :: data INTEGER , DIMENSION(2,9) :: data_out = 0 - INTEGER(HSSIZE_T) , DIMENSION(2,3) :: coord + INTEGER(HSIZE_T) , DIMENSION(2,3) :: coord INTEGER(SIZE_T) ::num_points = 3 ! Number of selected points INTEGER :: i, j INTEGER :: ref_size diff --git a/doc/html/Tutor/examples/selectele.f90 b/doc/html/Tutor/examples/selectele.f90 index c75958c..8727bd9 100644 --- a/doc/html/Tutor/examples/selectele.f90 +++ b/doc/html/Tutor/examples/selectele.f90 @@ -38,7 +38,7 @@ ! Memory dataspace dimensions INTEGER(HSIZE_T), DIMENSION(2) :: dimsf = (/3,4/) ! File dataspace dimensions - INTEGER(HSSIZE_T), DIMENSION(RANK,NUMP) :: coord ! Elements coordinates + INTEGER(HSIZE_T), DIMENSION(RANK,NUMP) :: coord ! Elements coordinates ! in the file INTEGER, DIMENSION(3,4) :: buf1, buf2, bufnew ! Data buffers diff --git a/doc/html/Tutor/select.html b/doc/html/Tutor/select.html index b8381e5..b4109b0 100644 --- a/doc/html/Tutor/select.html +++ b/doc/html/Tutor/select.html @@ -195,7 +195,7 @@ add to the current selected region for a specified dataspace. <I><B>C</B></I>: <pre> herr_t H5Sselect_hyperslab (hid_t space_id, H5S_seloper_t operator, - const hssize_t *start, const hsize_t *stride, + const hsize_t *start, const hsize_t *stride, const hsize_t *count, const hsize_t *block ) </pre> <P> @@ -206,7 +206,7 @@ add to the current selected region for a specified dataspace. space_id IN: INTEGER(HID_T) operator IN: INTEGER - start IN: INTEGER(HSSIZE_T), DIMENSION(*) + start IN: INTEGER(HSIZE_T), DIMENSION(*) count IN: INTEGER(HSIZE_T), DIMENSION(*) hdferr OUT: INTEGER stride IN: INTEGER(HSIZE_T), DIMENSION(*), OPTIONAL diff --git a/doc/html/Tutor/selectc.html b/doc/html/Tutor/selectc.html index c73b754..59c464c 100644 --- a/doc/html/Tutor/selectc.html +++ b/doc/html/Tutor/selectc.html @@ -71,7 +71,7 @@ included in the selection for a dataspace: <pre> herr_t H5Sselect_elements (hid_t space_id, H5S_seloper_t operator, size_t num_elements, - const hssize_t **coord ) + const hsize_t **coord ) </pre> <P> <I><B>FORTRAN</B></I>: @@ -81,7 +81,7 @@ included in the selection for a dataspace: space_id IN: INTEGER(HID_T) operator IN: INTEGER num_elements IN: INTEGER - coord IN: INTEGER(HSSIZE_T), DIMENSION(*,*) + coord IN: INTEGER(HSIZE_T), DIMENSION(*,*) hdferr OUT: INTEGER </pre> <P> diff --git a/doc/html/cpplus/CppInterfaces.html b/doc/html/cpplus/CppInterfaces.html index 66bddfd..f8f37f2 100644 --- a/doc/html/cpplus/CppInterfaces.html +++ b/doc/html/cpplus/CppInterfaces.html @@ -253,10 +253,10 @@ class CompType : public DataType int getNmembers() const; // Returns the name of a member of this compound datatype. - string getMemberName( int member_num ) const; + string getMemberName( unsigned member_num ) const; // Returns the offset of a member of this compound datatype. - size_t getMemberOffset( int memb_no ) const; + size_t getMemberOffset( unsigned memb_no ) const; // Returns the dimensionality of the specified member of this compound datatype. int getMemberDims( int member_num, size_t* dims, int* perm ) const; @@ -264,7 +264,7 @@ class CompType : public DataType // Returns the type class of the specified member of this compound // datatype. It provides to the user a way of knowing what type // to create another datatype of the same class. - H5T_class_t getMemberClass( int member_num ) const; + H5T_class_t getMemberClass( unsigned member_num ) const; // Returns the generic datatype of the specified member in // this compound datatype. @@ -405,7 +405,7 @@ class DataSpace : public IdComponent // Selects array elements to be included in the selection for // this dataspace. - void selectElements ( H5S_seloper_t op, const size_t num_elements, const hssize_t* coord[ ] ) const; + void selectElements ( H5S_seloper_t op, const size_t num_elements, const hsize_t* coord[ ] ) const; // Selects the entire dataspace. void selectAll () const; @@ -417,7 +417,7 @@ class DataSpace : public IdComponent bool selectValid () const; // Selects a hyperslab region to add to the current selected region. - void selectHyperslab( H5S_seloper_t op, const hsize_t *count, const hssize_t *start, const hsize_t *stride = NULL, const hsize_t *block = NULL ) const; + void selectHyperslab( H5S_seloper_t op, const hsize_t *count, const hsize_t *start, const hsize_t *stride = NULL, const hsize_t *block = NULL ) const; // Default constructor DataSpace(); @@ -560,7 +560,7 @@ class DSetCreatPropList : public PropList int getExternalCount() const; // Returns information about an external file - void getExternal( int idx, size_t name_size, char* name, off_t& offset, hsize_t& size ) const; + void getExternal( unsigned idx, size_t name_size, char* name, off_t& offset, hsize_t& size ) const; // Creates a copy of an existing dataset creation property list // using the property list id @@ -674,7 +674,7 @@ class EnumType : public DataType void valueOf( const char* name, void *value ) const; // Returns the value of an enumeration datatype member - void getMemberValue( int memb_no, void *value ) const; + void getMemberValue( unsigned memb_no, void *value ) const; // Default constructor EnumType(); @@ -872,7 +872,7 @@ class FileCreatPropList : public PropList FileCreatPropList& operator=( const FileCreatPropList& rhs ); // Retrieves version information for various parts of a file. - void getVersion( int& boot, int& freelist, int& stab, int& shhdr ) const; + void getVersion( unsigned& boot, unsigned& freelist, unsigned& stab, unsigned& shhdr ) const; // Sets the userblock size field of a file creation property list. void setUserblock( hsize_t size ) const; @@ -888,18 +888,18 @@ class FileCreatPropList : public PropList void getSizes( size_t& sizeof_addr, size_t& sizeof_size ) const; // Sets the size of parameters used to control the symbol table nodes. - void setSymk( int int_nodes_k, int leaf_nodes_k ) const; + void setSymk( unsigned int_nodes_k, unsigned leaf_nodes_k ) const; // Retrieves the size of the symbol table B-tree 1/2 rank and the // symbol table leaf node 1/2 size. - void getSymk( int& int_nodes_k, int& leaf_nodes_k ) const; + void getSymk( unsigned& int_nodes_k, unsigned& leaf_nodes_k ) const; // Sets the size of parameter used to control the B-trees for // indexing chunked datasets. - void setIstorek( int ik ) const; + void setIstorek( unsigned ik ) const; // Returns the 1/2 rank of an indexed storage B-tree. - int getIstorek() const; + unsigned getIstorek() const; // Creates a copy of an existing file create property list // using the property list id. diff --git a/doc/html/h5s.examples b/doc/html/h5s.examples index e7a479f..688382f 100644 --- a/doc/html/h5s.examples +++ b/doc/html/h5s.examples @@ -51,7 +51,7 @@ Example 2: Create a simple fixed size 3-D dataspace in memory and on disk and hid_t dataset; /* Dataset ID */ hid_t mem_space, file_space; /* Dataspaces for memory and the file */ uint8 *buf; /* Buffer for data */ - hssize_t start[3]={3,4,5}; /* Start of hyperslab */ + hsize_t start[3]={3,4,5}; /* Start of hyperslab */ hsize_t stride[3]={1,2,2}; /* Stride for hyperslab */ hsize_t count[3]={3,3,3}; /* Hyperslab block count in each dimension */ hsize_t block[3]={2,2,2}; /* Hyperslab block size in each dimension */ @@ -169,7 +169,7 @@ Example 4: Create a simple fixed size 3-D dataspace in memory and on disk and hid_t dataset; /* Dataset ID */ hid_t mem_space, file_space; /* Dataspaces for memory and the file */ uint8 *buf; /* Buffer for data */ - hssize_t start[3]; /* Start of hyperslab */ + hsize_t start[3]; /* Start of hyperslab */ hsize_t stride[3]; /* Stride for hyperslab */ hsize_t count[3]; /* Hyperslab block count in each dimension */ hsize_t block[3]; /* Hyperslab block size in each dimension */ @@ -299,7 +299,7 @@ Example 6: Create a stored dataspace on disk and use the H5Ssubspace function { hid_t file; /* File ID */ hid_t space1, space2; /* Dataspace IDs */ - hssize_t start[3]; /* Start of hyperslab */ + hsize_t start[3]; /* Start of hyperslab */ hsize_t count[3]; /* Hyperslab block count in each dimension */ hsize_t curr_dims[3]={13,14,15};/* Dimensions of the dataset */ diff --git a/doc/html/ph5example.c b/doc/html/ph5example.c index 84f5ab7..a69f221 100644 --- a/doc/html/ph5example.c +++ b/doc/html/ph5example.c @@ -70,7 +70,7 @@ int dowrite=1; /* write test */ * Assume dimension rank is 2. */ void -slab_set(hssize_t start[], hsize_t count[], hsize_t stride[], int mode) +slab_set(hsize_t start[], hsize_t count[], hsize_t stride[], int mode) { switch (mode){ case BYROW: @@ -110,7 +110,7 @@ slab_set(hssize_t start[], hsize_t count[], hsize_t stride[], int mode) * Assume dimension rank is 2 and data is stored contiguous. */ void -dataset_fill(hssize_t start[], hsize_t count[], hsize_t stride[], DATATYPE * dataset) +dataset_fill(hsize_t start[], hsize_t count[], hsize_t stride[], DATATYPE * dataset) { DATATYPE *dataptr = dataset; int i, j; @@ -127,7 +127,7 @@ dataset_fill(hssize_t start[], hsize_t count[], hsize_t stride[], DATATYPE * dat /* * Print the content of the dataset. */ -void dataset_print(hssize_t start[], hsize_t count[], hsize_t stride[], DATATYPE * dataset) +void dataset_print(hsize_t start[], hsize_t count[], hsize_t stride[], DATATYPE * dataset) { DATATYPE *dataptr = dataset; int i, j; @@ -146,7 +146,7 @@ void dataset_print(hssize_t start[], hsize_t count[], hsize_t stride[], DATATYPE /* * Print the content of the dataset. */ -int dataset_vrfy(hssize_t start[], hsize_t count[], hsize_t stride[], DATATYPE *dataset, DATATYPE *original) +int dataset_vrfy(hsize_t start[], hsize_t count[], hsize_t stride[], DATATYPE *dataset, DATATYPE *original) { #define MAX_ERR_REPORT 10 /* Maximum number of errors reported */ DATATYPE *dataptr = dataset; @@ -204,7 +204,7 @@ phdf5writeInd(char *filename) {SPACE1_DIM1,SPACE1_DIM2}; /* local dataspace dim sizes */ DATATYPE data_array1[SPACE1_DIM1][SPACE1_DIM2]; /* data buffer */ - hssize_t start[SPACE1_RANK]; /* for hyperslab setting */ + hsize_t start[SPACE1_RANK]; /* for hyperslab setting */ hsize_t count[SPACE1_RANK], stride[SPACE1_RANK]; /* for hyperslab setting */ herr_t ret; /* Generic return value */ @@ -342,7 +342,7 @@ phdf5readInd(char *filename) DATATYPE data_array1[SPACE1_DIM1][SPACE1_DIM2]; /* data buffer */ DATATYPE data_origin1[SPACE1_DIM1][SPACE1_DIM2]; /* expected data buffer */ - hssize_t start[SPACE1_RANK]; /* for hyperslab setting */ + hsize_t start[SPACE1_RANK]; /* for hyperslab setting */ hsize_t count[SPACE1_RANK], stride[SPACE1_RANK]; /* for hyperslab setting */ herr_t ret; /* Generic return value */ @@ -466,7 +466,7 @@ phdf5writeAll(char *filename) {SPACE1_DIM1,SPACE1_DIM2}; /* dataspace dim sizes */ DATATYPE data_array1[SPACE1_DIM1][SPACE1_DIM2]; /* data buffer */ - hssize_t start[SPACE1_RANK]; /* for hyperslab setting */ + hsize_t start[SPACE1_RANK]; /* for hyperslab setting */ hsize_t count[SPACE1_RANK], stride[SPACE1_RANK]; /* for hyperslab setting */ herr_t ret; /* Generic return value */ @@ -670,7 +670,7 @@ phdf5readAll(char *filename) DATATYPE data_array1[SPACE1_DIM1][SPACE1_DIM2]; /* data buffer */ DATATYPE data_origin1[SPACE1_DIM1][SPACE1_DIM2]; /* expected data buffer */ - hssize_t start[SPACE1_RANK]; /* for hyperslab setting */ + hsize_t start[SPACE1_RANK]; /* for hyperslab setting */ hsize_t count[SPACE1_RANK], stride[SPACE1_RANK]; /* for hyperslab setting */ herr_t ret; /* Generic return value */ |