<html> <head><title> HDF5/H5S API Specification </title> <!-- #BeginLibraryItem "/ed_libs/styles_RM.lbi" --> <!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright by the Board of Trustees of the University of Illinois. * * All rights reserved. * * * * This file is part of HDF5. The full HDF5 copyright notice, including * * terms governing use, modification, and redistribution, is contained in * * the files COPYING and Copyright.html. COPYING can be found at the root * * of the source code distribution tree; Copyright.html can be found at the * * root level of an installed copy of the electronic HDF5 document set and * * is linked from the top-level documents page. It can also be found at * * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have * * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * --> <link href="ed_styles/RMelect.css" rel="stylesheet" type="text/css"> <!-- #EndLibraryItem --></head> <body bgcolor="#FFFFFF"> <!-- HEADER RIGHT " " --> <!-- #BeginLibraryItem "/ed_libs/NavBar_RM.lbi" --><hr> <center> <table border=0 width=98%> <tr><td valign=top align=left> <a href="index.html">HDF5 documents and links</a> <br> <a href="H5.intro.html">Introduction to HDF5</a> <br> <a href="http://hdf.ncsa.uiuc.edu/HDF5/doc/UG/index.html">HDF5 User Guide</a> <br> <!-- <a href="Glossary.html">Glossary</a><br> --> </td> <td valign=top align=right> And in this document, the <a href="RM_H5Front.html">HDF5 Reference Manual</a> <br> <a href="RM_H5.html">H5</a> <a href="RM_H5A.html">H5A</a> <a href="RM_H5D.html">H5D</a> <a href="RM_H5E.html">H5E</a> <a href="RM_H5F.html">H5F</a> <a href="RM_H5G.html">H5G</a> <a href="RM_H5I.html">H5I</a> <a href="RM_H5P.html">H5P</a> <br> <a href="RM_H5R.html">H5R</a> <a href="RM_H5S.html">H5S</a> <a href="RM_H5T.html">H5T</a> <a href="RM_H5Z.html">H5Z</a> <a href="Tools.html">Tools</a> <a href="PredefDTypes.html">Datatypes</a> </td></tr> </table> </center> <hr><!-- #EndLibraryItem --><center> <h1>H5S: Dataspace Interface</h1> </center> <h2>Dataspace Object API Functions</h2> These functions create and manipulate the dataspace in which to store the elements of a dataset. <p> <strong>The C Interfaces:</strong> <table border=0> <tr><td valign=top> <li><a href="#Dataspace-Create">H5Screate</a> <li><a href="#Dataspace-Copy">H5Scopy</a> <li><a href="#Dataspace-Close">H5Sclose</a> <li><a href="#Dataspace-CreateSimple">H5Screate_simple</a> <li><a href="#Dataspace-IsSimple">H5Sis_simple</a> <li><a href="#Dataspace-OffsetSimple">H5Soffset_simple</a> <li><a href="#Dataspace-ExtentDims">H5Sget_simple_extent_dims</a> <li><a href="#Dataspace-ExtentNdims">H5Sget_simple_extent_ndims</a> </td><td> </td><td valign=top> <li><a href="#Dataspace-ExtentNpoints">H5Sget_simple_extent_npoints</a> <li><a href="#Dataspace-ExtentType">H5Sget_simple_extent_type</a> <!-- NOT YET IMPLEMENTED (R1.2 -- 9908) <li><a href="#Dataspace-ExtentClass">H5Sextent_class</a> --> <li><a href="#Dataspace-ExtentCopy">H5Sextent_copy</a> <li><a href="#Dataspace-SetExtentSimple">H5Sset_extent_simple</a> <li><a href="#Dataspace-SetExtentNone">H5Sset_extent_none</a> <li><a href="#Dataspace-GetSelectType">H5Sget_select_type</a> <li><a href="#Dataspace-SelectNpoints">H5Sget_select_npoints</a> <li><a href="#Dataspace-SelectHyperNBlocks">H5Sget_select_hyper_nblocks</a> <li><a href="#Dataspace-SelectHyperBlockList">H5Sget_select_hyper_blocklist</a> </td><td> </td><td valign=top> <li><a href="#Dataspace-SelectElemNPoints">H5Sget_select_elem_npoints</a> <li><a href="#Dataspace-SelectElemPointList">H5Sget_select_elem_pointlist</a> <li><a href="#Dataspace-SelectBounds">H5Sget_select_bounds</a> <li><a href="#Dataspace-SelectElements">H5Sselect_elements</a> <li><a href="#Dataspace-SelectAll">H5Sselect_all</a> <li><a href="#Dataspace-SelectNone">H5Sselect_none</a> <li><a href="#Dataspace-SelectValid">H5Sselect_valid</a> <li><a href="#Dataspace-SelectHyperslab">H5Sselect_hyperslab</a> <!--<li><a href="#Dataspace-CombineHyperslab">H5Scombine_hyperslab</a> --> <!--<li><a href="#Dataspace-CombineSelect">H5Scombine_select</a> --> <!--<li><a href="#Dataspace-SelectSelect">H5Sselect_select</a> --> </td></tr> </table> <br> <i>Alphabetical Listing</i> <table border="0"> <tr> <td valign="top"> <li><a href="#Dataspace-Close">H5Sclose</a> <li><a href="#Dataspace-Copy">H5Scopy</a> <li><a href="#Dataspace-Create">H5Screate</a> <li><a href="#Dataspace-CreateSimple">H5Screate_simple</a> <li><a href="#Dataspace-ExtentCopy">H5Sextent_copy</a> <li><a href="#Dataspace-SelectBounds">H5Sget_select_bounds</a> <li><a href="#Dataspace-SelectElemNPoints">H5Sget_select_elem_npoints</a> <li><a href="#Dataspace-SelectElemPointList">H5Sget_select_elem_pointlist</a> <li><a href="#Dataspace-SelectHyperBlockList">H5Sget_select_hyper_blocklist</a> </td> <td> </td> <td valign="top"> <li><a href="#Dataspace-SelectHyperNBlocks">H5Sget_select_hyper_nblocks</a> <li><a href="#Dataspace-SelectNpoints">H5Sget_select_npoints</a> <li><a href="#Dataspace-GetSelectType">H5Sget_select_type</a> <li><a href="#Dataspace-ExtentDims">H5Sget_simple_extent_dims</a> <li><a href="#Dataspace-ExtentNdims">H5Sget_simple_extent_ndims</a> <li><a href="#Dataspace-ExtentNpoints">H5Sget_simple_extent_npoints</a> <li><a href="#Dataspace-ExtentType">H5Sget_simple_extent_type</a> <li><a href="#Dataspace-IsSimple">H5Sis_simple</a> <li><a href="#Dataspace-OffsetSimple">H5Soffset_simple</a> </td> <td> </td> <td valign="top"> <li><a href="#Dataspace-SelectAll">H5Sselect_all</a> <li><a href="#Dataspace-SelectElements">H5Sselect_elements</a> <li><a href="#Dataspace-SelectHyperslab">H5Sselect_hyperslab</a> <li><a href="#Dataspace-SelectNone">H5Sselect_none</a> <li><a href="#Dataspace-SelectValid">H5Sselect_valid</a> <li><a href="#Dataspace-SetExtentNone">H5Sset_extent_none</a> <li><a href="#Dataspace-SetExtentSimple">H5Sset_extent_simple</a> </td> </tr> </table> <br> <strong>The FORTRAN90 Interfaces:</strong> <br> In general, each FORTRAN90 subroutine performs exactly the same task as the corresponding C function. <br> <table border=0> <tr><td valign=top> <li><a href="#Dataspace-Create">h5screate_f</a> <li><a href="#Dataspace-Copy">h5scopy_f</a> <li><a href="#Dataspace-Close">h5sclose_f</a> <li><a href="#Dataspace-CreateSimple">h5screate_simple_f</a> <li><a href="#Dataspace-IsSimple">h5sis_simple_f</a> <li><a href="#Dataspace-OffsetSimple">h5soffset_simple_f</a> <li><a href="#Dataspace-ExtentDims">h5sget_simple_extent_dims_f</a> <li><a href="#Dataspace-ExtentNdims">h5sget_simple_extent_ndims_f</a> </td><td> </td><td valign=top> <li><a href="#Dataspace-ExtentNpoints">h5sget_simple_extent_npoints_f</a> <li><a href="#Dataspace-ExtentType">h5sget_simple_extent_type_f</a> <!-- NOT YET IMPLEMENTED (R1.2 -- 9908) <li><a href="#Dataspace-ExtentClass">h5sextent_class_f</a> --> <li><a href="#Dataspace-ExtentCopy">h5sextent_copy_f</a> <li><a href="#Dataspace-SetExtentSimple">h5sset_extent_simple_f</a> <li><a href="#Dataspace-SetExtentNone">h5sset_extent_none_f</a> <li><a href="#Dataspace-GetSelectType">h5sget_select_type_f</a> <li><a href="#Dataspace-SelectNpoints">h5sget_select_npoints_f</a> <li><a href="#Dataspace-SelectHyperNBlocks">h5sget_select_hyper_nblocks_f</a> <li><a href="#Dataspace-SelectHyperBlockList">h5sget_select_hyper_blocklist_f</a> <!--<li><a href="#Dataspace-SelectBounds">h5sget_select_bounds_f</a> --> </td><td> </td><td valign=top> <li><a href="#Dataspace-SelectElemNPoints">h5sget_select_elem_npoints_f</a> <li><a href="#Dataspace-SelectElemPointList">h5sget_select_elem_pointlist_f</a> <li><a href="#Dataspace-SelectElements">h5sselect_elements_f</a> <li><a href="#Dataspace-SelectAll">h5sselect_all_f</a> <li><a href="#Dataspace-SelectNone">h5sselect_none_f</a> <li><a href="#Dataspace-SelectValid">h5sselect_valid_f</a> <li><a href="#Dataspace-SelectHyperslab">h5sselect_hyperslab_f</a> <!--<li><a href="#Dataspace-CombineHyperslab">h5scombine_hyperslab_f</a> --> <!--<li><a href="#Dataspace-CombineSelect">h5scombine_select_f</a> --> <!--<li><a href="#Dataspace-SelectSelect">h5sselect_select_f</a> --> </td></tr> </table> <!-- Unimplemented functions <p> The following H5S functions are included in the HDF5 specification, but have not yet been implemented. They are described in the <a href="Dataspaces.html">The Dataspace Interface (H5S)</a> section of the <cite>HDF5 User's Guide.</cite>. <table border=0> <tr><td valign=top> <ul> <li>H5Scommit <li>H5Sis_subspace <li>H5Slock </ul> </td><td> </td><td valign=top> <ul> <li>H5Sopen <li>H5Sselect_op <li>H5Sselect_order </ul> </td><td> </td><td valign=top> <ul> <li>H5Ssubspace <li>H5Ssubspace_name <li>H5Ssubspace_location </ul> </td></tr> </table> --> <!-- NEW PAGE --> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sclose" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-Close">H5Sclose</a> <dt><strong>Signature:</strong> <dd><em>herr_t </em><code>H5Sclose</code>(<em>hid_t </em><code>space_id</code> ) <dt><strong>Purpose:</strong> <dd>Releases and terminates access to a dataspace. <dt><strong>Description:</strong> <dd><code>H5Sclose</code> releases a dataspace. Further access through the dataspace identifier is illegal. Failure to release a dataspace with this call will result in resource leaks. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">Identifier of dataspace to release.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sclose_f <dd> <pre> SUBROUTINE h5sclose_f(space_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5sclose_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Scopy" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-Copy">H5Scopy</a> <dt><strong>Signature:</strong> <dd><em>hid_t </em><code>H5Scopy</code>(<em>hid_t </em><code>space_id</code> ) <dt><strong>Purpose:</strong> <dd>Creates an exact copy of a dataspace. <dt><strong>Description:</strong> <dd><code>H5Scopy</code> creates a new dataspace which is an exact copy of the dataspace identified by <code>space_id</code>. The dataspace identifier returned from this function should be released with <code>H5Sclose</code> or resource leaks will occur. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">Identifier of dataspace to copy.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a dataspace identifier if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5scopy_f <dd> <pre> SUBROUTINE h5scopy_f(space_id, new_space_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER(HID_T), INTENT(OUT) :: new_space_id ! Identifier of dataspace copy INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5scopy_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Screate" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-Create">H5Screate</a> <dt><strong>Signature:</strong> <dd><em>hid_t</em> <code>H5Screate</code>(<em>H5S_class_t</em> <code>type</code>) <dt><strong>Purpose:</strong> <dd>Creates a new dataspace of a specified type. <dt><strong>Description:</strong> <dd><code>H5Screate</code> creates a new dataspace of a particular <code>type</code>. The types currently supported are <code>H5S_SCALAR</code> and <code>H5S_SIMPLE</code>; others are planned to be added later. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>H5S_class_t</em> <code>type </code></td> <td valign="top">The type of dataspace to be created.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a dataspace identifier if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5screate_f <dd> <pre> SUBROUTINE h5screate_f(classtype, space_id, hdferr) IMPLICIT NONE INTEGER, INTENT(IN) :: classtype ! The type of the dataspace ! to be created. Possible values ! are: ! H5S_SCALAR_F ! H5S_SIMPLE_F INTEGER(HID_T), INTENT(OUT) :: space_id ! Dataspace identifier INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5screate_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Screate_simple" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-CreateSimple">H5Screate_simple</a> <dt><strong>Signature:</strong> <dd><em>hid_t</em> <code>H5Screate_simple</code>(<em>int</em> <code>rank</code>, <em>const hsize_t *</em> <code>dims</code>, <em>const hsize_t *</em> <code>maxdims</code> ) <dt><strong>Purpose:</strong> <dd>Creates a new simple dataspace and opens it for access. <dt><strong>Description:</strong> <dd><code>H5Screate_simple</code> creates a new simple dataspace and opens it for access. <p> <code>rank</code> is the number of dimensions used in the dataspace. <p> <code>dims</code> is an array specifying the size of each dimension of the dataset while <code>maxdims</code> is an array specifying the upper limit on the size of each dimension. <code>maxdims</code> may be the null pointer, in which case the upper limit is the same as <code>dims</code>. <p> If an element of <code>maxdims</code> is <code>H5S_UNLIMITED</code>, (<code>-1</code>), the maximum size of the corresponding dimension is unlimited. Otherwise, no element of <code>maxdims</code> should be smaller than the corresponding element of <code>dims</code>. <p> The dataspace identifier returned from this function must be released with <code>H5Sclose</code> or resource leaks will occur. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>int</em> <code>rank</code></td> <td valign="top">Number of dimensions of dataspace.</td></tr> <tr> <td valign="top"><em>const hsize_t *</em> <code>dims</code></td> <td valign="top">An array of the size of each dimension.</td></tr> <tr> <td valign="top"><em>const hsize_t *</em> <code>maxdims </code></td> <td valign="top">An array of the maximum size of each dimension.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a dataspace identifier if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5screate_simple_f <dd> <pre> SUBROUTINE h5screate_simple_f(rank, dims, space_id, hdferr, maxdims) IMPLICIT NONE INTEGER, INTENT(IN) :: rank ! Number of dataspace dimensions INTEGER(HSIZE_T), INTENT(IN) :: dims(*) ! Array with the dimension sizes INTEGER(HID_T), INTENT(OUT) :: space_id ! Dataspace identifier INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure INTEGER(HSIZE_T), OPTIONAL, INTENT(IN) :: maxdims(*) ! Array with the maximum ! dimension sizes END SUBROUTINE h5screate_simple_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sextent_copy" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-ExtentCopy">H5Sextent_copy</a> <dt><strong>Signature:</strong> <dd><em>herr_t</em> <code>H5Sextent_copy</code>(<em>hid_t</em> <code>dest_space_id</code>, <em>hid_t</em> <code>source_space_id</code> ) <dt><strong>Purpose:</strong> <dd>Copies the extent of a dataspace. <dt><strong>Description:</strong> <dd><code>H5Sextent_copy</code> copies the extent from <code>source_space_id</code> to <code>dest_space_id</code>. This action may change the type of the dataspace. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>dest_space_id</code></td> <td valign="top">IN: The identifier for the dataspace to which the extent is copied.</td></tr> <tr> <td valign="top"><em>hid_t</em> <code>source_space_id </code></td> <td valign="top">IN: The identifier for the dataspace from which the extent is copied.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sextent_copy_f <dd> <pre> SUBROUTINE h5sextent_copy_f(dest_space_id, source_space_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dest_space_id ! Identifier of destination ! dataspace INTEGER(HID_T), INTENT(IN) :: source_space_id ! Identifier of source ! dataspace INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5sextent_copy_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sget_select_bounds" --> <hr> <dl> <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> ) <dt><strong>Purpose:</strong> <dd>Gets the bounding box containing the current selection. <dt><strong>Description:</strong> <dd><code>H5Sget_select_bounds</code> retrieves the coordinates of the bounding box containing the current selection and places them into user-supplied buffers. <p> The <code>start</code> and <code>end</code> buffers must be large enough to hold the dataspace rank number of coordinates. <p> The bounding box exactly contains the selection. I.e., if a 2-dimensional element selection is currently defined as containing the points (4,5), (6,8), and (10,7), then the bounding box will be (4, 5), (10, 8). <p> The bounding box calculation includes the current offset of the selection within the dataspace extent. <p> Calling this function on a <code>none</code> selection will return <code>FAIL</code>. <dt><strong>Parameters:</strong> <ul><table> <tr> <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">OUT: Starting coordinates of the bounding box.</td></tr> <tr> <td valign="top"><em>hssize_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> <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> <dd> <pre> 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 ! Starting coordinates of the bounding box INTEGER(HSSIZE_T), DIMENSION(*), INTENT(OUT) :: end ! Ending coordinates of the bounding box, ! i.e., the coordinates of the diagonally ! opposite corner INTEGER, INTENT(OUT) :: hdferr ! Error code END SUBROUTINE h5sget_select_bounds_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sget_select_elem_npoints" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-SelectElemNPoints">H5Sget_select_elem_npoints</a> <dt><strong>Signature:</strong> <dd><em>hssize_t </em><code>H5Sget_select_elem_npoints</code>(<em>hid_t </em><code>space_id</code> ) <dt><strong>Purpose:</strong> <dd>Gets the number of element points in the current selection. <dt><strong>Description:</strong> <dd><code>H5Sget_select_elem_npoints</code> returns the number of element points in the current dataspace selection. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">IN: Identifier of dataspace to query.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns the number of element points in the current dataspace selection if successful. Otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sget_select_elem_npoints_f <dd> <pre> SUBROUTINE h5sget_select_elem_npoints_f(space_id, num_points, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER, INTENT(OUT) :: num_points ! Number of points in ! the current elements selection INTEGER, INTENT(OUT) :: hdferr ! Error code END SUBROUTINE h5sget_select_elem_npoints_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sget_select_elem_pointlist" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-SelectElemPointList">H5Sget_select_elem_pointlist</a> <dt><strong>Signature:</strong> <dd><em>herr_t </em><code>H5Sget_select_elem_pointlist</code>(<em>hid_t </em><code>space_id</code>, <em>hsize_t </em><code>startpoint</code>, <em>hsize_t </em><code>numpoints</code>, <em>hsize_t *</em><code>buf</code> ) <dt><strong>Purpose:</strong> <dd>Gets the list of element points currently selected. <dt><strong>Description:</strong> <dd><code>H5Sget_select_elem_pointlist</code> returns the list of element points in the current dataspace selection. Starting with the <code>startpoint</code>-th point in the list of points, <code>numpoints</code> points are put into the user's buffer. If the user's buffer fills up before <code>numpoints</code> points are inserted, the buffer will contain only as many points as fit. <p> The element point coordinates have the same dimensionality (rank) as the dataspace they are located within. The list of element points is formatted as follows: <br> <coordinate>, followed by <br> the next coordinate, <br> etc. <br> until all of the selected element points have been listed. <p> The points are returned in the order they will be iterated through when the selection is read/written from/to disk. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id</code></td> <td valign="top">IN: Dataspace identifier of selection to query.</td></tr> <tr> <td valign="top"><em>hsize_t </em><code>startpoint </code></td> <td valign="top">IN: Element point to start with.</td></tr> <tr> <td valign="top"><em>hsize_t </em><code>numpoints</code></td> <td valign="top">IN: Number of element points to get.</td></tr> <tr> <td valign="top"><em>hsize_t *</em><code>buf</code></td> <td valign="top">OUT: List of element points selected.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sget_select_elem_pointlist_f <dd> <pre> SUBROUTINE h5sget_select_elem_pointlist_f(space_id, startpoint, num_points, & buf, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER(HSIZE_T), INTENT(IN) :: startpoint ! Element point to start with INTEGER, INTENT(OUT) :: num_points ! Number of points to get in ! the current element selection INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf ! List of points selected INTEGER, INTENT(OUT) :: hdferr ! Error code END SUBROUTINE h5sget_select_elem_pointlist_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sget_select_hyper_blocklist" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-SelectHyperBlockList">H5Sget_select_hyper_blocklist</a> <dt><strong>Signature:</strong> <dd><em>herr_t </em><code>H5Sget_select_hyper_blocklist</code>(<em>hid_t </em><code>space_id</code>, <em>hsize_t </em><code>startblock</code>, <em>hsize_t </em><code>numblocks</code>, <em>hsize_t *</em><code>buf</code> ) <dt><strong>Purpose:</strong> <dd>Gets the list of hyperslab blocks currently selected. <dt><strong>Description:</strong> <dd><code>H5Sget_select_hyper_blocklist</code> returns a list of the hyperslab blocks currently selected. Starting with the <code>startblock</code>-th block in the list of blocks, <code>numblocks</code> blocks are put into the user's buffer. If the user's buffer fills up before <code>numblocks</code> blocks are inserted, the buffer will contain only as many blocks as fit. <p> The block coordinates have the same dimensionality (rank) as the dataspace they are located within. The list of blocks is formatted as follows: <br> <"start" coordinate>, immediately followed by <br> <"opposite" corner coordinate>, followed by <br> the next "start" and "opposite" coordinates, <br> etc. <br> until all of the selected blocks have been listed. <p> No guarantee is implied as the order in which blocks are listed. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id</code></td> <td valign="top">IN: Dataspace identifier of selection to query.</td></tr> <tr> <td valign="top"><em>hsize_t </em><code>startblock </code></td> <td valign="top">IN: Hyperslab block to start with.</td></tr> <tr> <td valign="top"><em>hsize_t </em><code>numblocks</code></td> <td valign="top">IN: Number of hyperslab blocks to get.</td></tr> <tr> <td valign="top"><em>hsize_t *</em><code>buf</code></td> <td valign="top">OUT: List of hyperslab blocks selected.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sget_select_hyper_blocklist_f <dd> <pre> SUBROUTINE h5sget_select_hyper_blocklist_f(space_id, startblock, num_blocks, & buf, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER(HSIZE_T), INTENT(IN) :: startblock ! Hyperslab block to start with INTEGER, INTENT(OUT) :: num_blocks ! Number of hyperslab blocks to ! get in the current hyperslab ! selection INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf ! List of hyperslab blocks selected INTEGER, INTENT(OUT) :: hdferr ! Error code END SUBROUTINE h5sget_select_hyper_blocklist_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sget_select_hyper_nblocks" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-SelectHyperNBlocks">H5Sget_select_hyper_nblocks</a> <dt><strong>Signature:</strong> <dd><em>hssize_t </em><code>H5Sget_select_hyper_nblocks</code>(<em>hid_t </em><code>space_id</code> ) <dt><strong>Purpose:</strong> <dd>Get number of hyperslab blocks. <dt><strong>Description:</strong> <dd><code>H5Sget_select_hyper_nblocks</code> returns the number of hyperslab blocks in the current dataspace selection. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">IN: Identifier of dataspace to query.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns the number of hyperslab blocks in the current dataspace selection if successful. Otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sget_select_hyper_nblocks_f <dd> <pre> SUBROUTINE h5sget_select_hyper_nblocks_f(space_id, num_blocks, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER, INTENT(OUT) :: num_blocks ! Number of hyperslab blocks in ! the current hyperslab selection INTEGER, INTENT(OUT) :: hdferr ! Error code END SUBROUTINE h5sget_select_hyper_nblocks_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sget_select_npoints" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-SelectNpoints">H5Sget_select_npoints</a> <dt><strong>Signature:</strong> <dd><em>hssize_t</em> <code>H5Sget_select_npoints</code>(<em>hid_t</em> <code>space_id</code>) <dt><strong>Purpose:</strong> <dd>Determines the number of elements in a dataspace selection. <dt><strong>Description:</strong> <dd><code>H5Sget_select_npoints</code> determines the number of elements in the current selection of a dataspace. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">Dataspace identifier.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns the number of elements in the selection if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sget_select_npoints_f <dd> <pre> SUBROUTINE h5sget_select_npoints_f(space_id, npoints, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER(HSSIZE_T), INTENT(OUT) :: npoints ! Number of elements in the ! selection INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5sget_select_npoints_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sget_select_type" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-GetSelectType">H5Sget_select_type</a> <dt><strong>Signature:</strong> <dd><em>H5S_sel_type</em> <code>H5Sget_select_type</code>(<em>hid_t</em> <code>space_id</code>) <dt><strong>Purpose:</strong> <dd>Determines the type of the dataspace selection. <dt><strong>Description:</strong> <dd><code>H5Sget_select_type</code> retrieves the type of selection currently defined for the dataspace <code>space_id</code>. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">Dataspace identifier.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns the dataspace selection type, a value of the enumerated datatype <code>H5S_sel_type</code>, if successful. Valid return values are as follows: <center> <table width=90% border=0> <tr><td valign=top> <code>H5S_SEL_NONE</code> </td><td valign=top> No selection is defined. </td></tr><tr><td valign=top> <code>H5S_SEL_POINTS</code> </td><td valign=top> A sequence of points is selected. </td></tr><tr><td valign=top> <code>H5S_SEL_HYPERSLABS</code> </td><td valign=top> A hyperslab or compound hyperslab is selected. </td></tr><tr><td valign=top> <code>H5S_SEL_ALL</code> </td><td valign=top> The entire dataset is selected. </td></tr> </table> </center> Otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sget_select_type_f <dd> <pre> SUBROUTINE h5sget_select_type_f(space_id, type, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER, INTENT(OUT) :: type ! Selection type ! Valid values are: ! H5S_SEL_ERROR_F ! H5S_SEL_NONE_F ! H5S_SEL_POINTS_F ! H5S_SEL_HYPERSLABS_F ! H5S_SEL_ALL_F INTEGER, INTENT(OUT) :: hdferr ! Error code END SUBROUTINE h5sget_select_type_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sget_simple_extent_dims" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-ExtentDims">H5Sget_simple_extent_dims</a> <dt><strong>Signature:</strong> <dd><em>int</em> <code>H5Sget_simple_extent_dims</code>(<em>hid_t</em> <code>space_id</code>, <em>hsize_t *</em><code>dims</code>, <em>hsize_t *</em><code>maxdims</code> ) <dt><strong>Purpose:</strong> <dd>Retrieves dataspace dimension size and maximum size. <dt><strong>Description:</strong> <dd><code>H5Sget_simple_extent_dims</code> returns the size and maximum sizes of each dimension of a dataspace through the <code>dims</code> and <code>maxdims</code> parameters. <p> Either or both of <code>dims</code> and <code>maxdims</code> may be NULL. <p> If a value in the returned array <code>maxdims</code> is <code>H5S_UNLIMITED</code> (</code>-1</code>), the maximum size of that dimension is unlimited. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id</code></td> <td valign="top">IN: Identifier of the dataspace object to query</td></tr> <tr> <td valign="top"><em>hsize_t *</em><code>dims</code></td> <td valign="top">OUT: Pointer to array to store the size of each dimension.</td></tr> <tr> <td valign="top"><em>hsize_t *</em><code>maxdims </code></td> <td valign="top">OUT: Pointer to array to store the maximum size of each dimension.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns the number of dimensions in the dataspace if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sget_simple_extent_dims_f <dd> <pre> SUBROUTINE h5sget_simple_extent_dims_f(space_id, dims, maxdims, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: dims ! Array to store dimension sizes INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: maxdims ! Array to store max dimension sizes INTEGER, INTENT(OUT) :: hdferr ! Error code ! Dataspace rank on success ! and -1 on failure END SUBROUTINE h5sget_simple_extent_dims_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sget_simple_extent_ndims" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-ExtentNdims">H5Sget_simple_extent_ndims</a> <dt><strong>Signature:</strong> <dd><em>int</em> <code>H5Sget_simple_extent_ndims</code>(<em>hid_t</em> <code>space_id</code>) <dt><strong>Purpose:</strong> <dd>Determines the dimensionality of a dataspace. <dt><strong>Description:</strong> <dd><code>H5Sget_simple_extent_ndims</code> determines the dimensionality (or rank) of a dataspace. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">Identifier of the dataspace</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns the number of dimensions in the dataspace if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sget_simple_extent_ndims_f <dd> <pre> SUBROUTINE h5sget_simple_extent_ndims_f(space_id, rank, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER, INTENT(OUT) :: rank ! Number of dimensions INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5sget_simple_extent_ndims_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sget_simple_extent_npoints" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-ExtentNpoints">H5Sget_simple_extent_npoints</a> <dt><strong>Signature:</strong> <dd><em>hssize_t</em> <code>H5Sget_simple_extent_npoints</code>(<em>hid_t </em><code>space_id</code>) <dt><strong>Purpose:</strong> <dd>Determines the number of elements in a dataspace. <dt><strong>Description:</strong> <dd><code>H5Sget_simple_extent_npoints</code> determines the number of elements in a dataspace. For example, a simple 3-dimensional dataspace with dimensions 2, 3, and 4 would have 24 elements. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">ID of the dataspace object to query</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns the number of elements in the dataspace if successful; otherwise returns 0. <dt><strong>Fortran90 Interface:</strong> h5sget_simple_extent_npoints_f <dd> <pre> SUBROUTINE h5sget_simple_extent_npoints_f(space_id, npoints, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER(HSIZE_T), INTENT(OUT) :: npoints ! Number of elements in dataspace INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5sget_simple_extent_npoints_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sget_simple_extent_type" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-ExtentType">H5Sget_simple_extent_type</a> <dt><strong>Signature:</strong> <dd><em>H5S_class_t</em> <code>H5Sget_simple_extent_type</code>(<em>hid_t</em> <code>space_id</code>) <dt><strong>Purpose:</strong> <dd>Determine the current class of a dataspace. <dt><strong>Description:</strong> <dd><code>H5Sget_simple_extent_type</code> queries a dataspace to determine the current class of a dataspace. <p> The function returns a class name, one of the following: <code>H5S_SCALAR</code>, <code>H5S_SIMPLE</code>, or <code>H5S_NONE</code>. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">Dataspace identifier.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a dataspace class name if successful; otherwise H5S_NO_CLASS (-1). <dt><strong>Fortran90 Interface:</strong> h5sget_simple_extent_type_f <dd> <pre> SUBROUTINE h5sget_simple_extent_type_f(space_id, classtype, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER, INTENT(OUT) :: classtype ! Class type ! Possible values are: ! H5S_NO_CLASS_F ! H5S_SCALAR_F ! H5S_SIMPLE_F INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5sget_simple_extent_type_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sis_simple" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-IsSimple">H5Sis_simple</a> <dt><strong>Signature:</strong> <dd><em>htri_t </em><code>H5Sis_simple</code>(<em>hid_t </em><code>space_id</code>) <dt><strong>Purpose:</strong> <dd>Determines whether a dataspace is a simple dataspace. <dt><strong>Description:</strong> <dd><code>H5Sis_simple</code> determines whether a dataspace is a simple dataspace. [Currently, all dataspace objects are simple dataspaces, complex dataspace support will be added in the future] <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">Identifier of the dataspace to query</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>When successful, returns a positive value, for <code>TRUE</code>, or <code>0</code> (zero), for <code>FALSE</code>. Otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sis_simple_f <dd> <pre> SUBROUTINE h5sis_simple_f(space_id, flag, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier LOGICAL, INTENT(OUT) :: flag ! Flag, indicates if dataspace ! is simple or not: ! TRUE or FALSE INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5sis_simple_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Soffset_simple" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-OffsetSimple">H5Soffset_simple</a> <dt><strong>Signature:</strong> <dd><em>herr_t</em> <code>H5Soffset_simple</code>(<em>hid_t</em> <code>space_id</code>, <em>const hssize_t *</em><code>offset</code> ) <dt><strong>Purpose:</strong> <dd>Sets the offset of a simple dataspace. <dt><strong>Description:</strong> <dd><code>H5Soffset_simple</code> sets the offset of a simple dataspace <code>space_id</code>. The <code>offset</code> array must be the same number of elements as the number of dimensions for the dataspace. If the <code>offset</code> array is set to <TT>NULL</TT>, the offset for the dataspace is reset to 0. <p> This function allows the same shaped selection to be moved to different locations within a dataspace without requiring it to be redefined. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id</code></td> <td valign="top">IN: The identifier for the dataspace object to reset.</td></tr> <tr> <td valign="top"><em>const hssize_t *</em><code>offset </code></td> <td valign="top">IN: The offset at which to position the selection.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5soffset_simple_f <dd> <pre> SUBROUTINE h5soffset_simple_f(space_id, offset, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER(HSSIZE_T), DIMENSION(*), INTENT(IN) :: offset ! The offset at which to position ! the selection INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5soffset_simple_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sselect_all" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-SelectAll">H5Sselect_all</a> <dt><strong>Signature:</strong> <dd><em>herr_t</em> <code>H5Sselect_all</code>(<em>hid_t</em> <code>space_id</code>) <dt><strong>Purpose:</strong> <dd>Selects the entire dataspace. <dt><strong>Description:</strong> <dd><code>H5Sselect_all</code> selects the entire extent of the dataspace <code>space_id</code>. <p> More specifically, <code>H5Sselect_all</code> selects the special <tt>5S_SELECT_ALL</tt> region for the dataspace <code>space_id</code>. <tt>H5S_SELECT_ALL</tt> selects the entire dataspace for any dataspace it is applied to. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">IN: The identifier for the dataspace in which the selection is being made.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sselect_all_f <dd> <pre> SUBROUTINE h5sselect_all_f(space_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5sselect_all_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sselect_elements" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-SelectElements">H5Sselect_elements</a> <dt><strong>Signature:</strong> <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>[ ] ) <dt><strong>Purpose:</strong> <dd>Selects array elements to be included in the selection for a dataspace. <dt><strong>Description:</strong> <dd><code>H5Sselect_elements</code> selects array elements to be included in the selection for the <code>space_id</code> dataspace. <p> The number of elements selected is set in the <code>num_elements</code> parameter. <p> The <code>coord</code> array is a two-dimensional array of size <code><i>dataspace_rank</i></code> by <code>num_elements</code> containing a list of of zero-based values specifying the coordinates in the dataset of the selected elements. The order of the element coordinates in the <code>coord</code> array specifies the order in which the array elements are iterated through when I/O is performed. Duplicate coordinate locations are not checked for. <p> The selection operator <code>op</code> determines how the new selection is to be combined with the previously existing selection for the dataspace. The following operators are supported: <center> <table width=90% border=0> <tr><td valign=top> <code>H5S_SELECT_SET</code> </td><td valign=top> Replaces the existing selection with the parameters from this call. Overlapping blocks are not supported with this operator. <!-- </td></tr><tr><td valign=top> <code>H5S_SELECT_OR</code> </td><td valign=top> --> Adds the new selection to the existing selection. </td></tr><tr><td valign=top> <code>H5S_SELECT_APPEND</code> </td><td valign=top> Adds the new selection following the last element of the existing selection. </td></tr><tr><td valign=top> <code>H5S_SELECT_PREPEND </code> </td><td valign=top> Adds the new selection preceding the first element of the existing selection. </td></tr> </table> </center> <!-- When operator <code>H5S_SELECT_OR</code> is used to combine a new selection with an existing selection, the selection ordering is reset to C array ordering. --> <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id</code></td> <td valign="top">Identifier of the dataspace.</td></tr> <tr> <td valign="top"><em>H5S_seloper_t</em> <code>op</code></td> <td valign="top">Operator specifying how the new selection is to be combined with the existing selection for the dataspace.</td></tr> <tr> <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">A 2-dimensional array of 0-based values specifying the coordinates of the elements being selected.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sselect_elements_f <dd> <pre> SUBROUTINE h5sselect_elements_f(space_id, operator, num_elements, & coord, hdferr) 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, INTENT(IN) :: num_elements ! Number of elements to be selected INTEGER(HSSIZE_T), DIMENSION(*,*), INTENT(IN) :: coord ! Array with the coordinates ! of the selected elements: ! coord(num_elements, rank)</pre> <!-- NEW PAGE --> <pre> INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5sselect_elements_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sselect_hyperslab" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-SelectHyperslab">H5Sselect_hyperslab</a> <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>stride</code>, <em>const hsize_t *</em><code>count</code>, <em>const hsize_t *</em><code>block</code> ) <dt><strong>Purpose:</strong> <dd>Selects a hyperslab region to add to the current selected region. <dt><strong>Description:</strong> <dd><code>H5Sselect_hyperslab</code> selects a hyperslab region to add to the current selected region for the dataspace specified by <code>space_id</code>. <p> The <code>start</code>, <code>stride</code>, <code>count</code>, and <code>block</code> arrays must be the same size as the rank of the dataspace. <p> The selection operator <code>op</code> determines how the new selection is to be combined with the already existing selection for the dataspace. The following operators are supported: <center> <table width=90% border=0> <tr><td valign=top> <code>H5S_SELECT_SET</code> </td><td valign=top> Replaces the existing selection with the parameters from this call. Overlapping blocks are not supported with this operator. </td></tr><tr><td valign=top> <code>H5S_SELECT_OR</code> </td><td valign=top> Adds the new selection to the existing selection. (Binary OR) </td></tr><tr><td valign=top> <code>H5S_SELECT_AND</code> </td><td valign=top> Retains only the overlapping portions of the new selection and the existing selection. (Binary AND) </td></tr><tr><td valign=top> <code>H5S_SELECT_XOR</code> </td><td valign=top> Retains only the elements that are members of the new selection or the existing selection, excluding elements that are members of both selections. (Binary exclusive-OR, XOR) </td></tr><tr><td valign=top> <code>H5S_SELECT_NOTB </code> </td><td valign=top> Retains only elements of the existing selection that are not in the new selection. </td></tr><tr><td valign=top> <code>H5S_SELECT_NOTA</code> </td><td valign=top> Retains only elements of the new selection that are not in the existing selection. </td></tr> </table> </center> <p> The <code>start</code> array determines the starting coordinates of the hyperslab to select. <p> The <code>stride</code> array chooses array locations from the dataspace with each value in the <code>stride</code> array determining how many elements to move in each dimension. Setting a value in the <code>stride</code> array to 1 moves to each element in that dimension of the dataspace; setting a value of <code>2</code> in alocation in the <code>stride</code> array moves to every other element in that dimension of the dataspace. In other words, the <code>stride</code> determines the number of elements to move from the <code>start</code> location in each dimension. Stride values of <code>0</code> are not allowed. If the <code>stride</code> parameter is <code>NULL</code>, a contiguous hyperslab is selected (as if each value in the <code>stride</code> array were set to all 1's). <p> The <code>count</code> array determines how many blocks to select from the dataspace, in each dimension. <p> The <code>block</code> array determines the size of the element block selected from the dataspace. If the <code>block</code> parameter is set to <code>NULL</code>, the block size defaults to a single element in each dimension (as if the <code>block</code> array were set to all <code>1</code>'s). <p> For example, in a 2-dimensional dataspace, setting <code>start</code> to [1,1], <code>stride</code> to [4,4], <code>count</code> to [3,7], and <code>block</code> to [2,2] selects 21 2x2 blocks of array elements starting with location (1,1) and selecting blocks at locations (1,1), (5,1), (9,1), (1,5), (5,5), etc. <p> Regions selected with this function call default to C order iteration when I/O is performed. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id</code></td> <td valign="top">IN: Identifier of dataspace selection to modify</td></tr> <tr> <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">IN: Offset of start of hyperslab</td></tr> <tr> <td valign="top"><em>const hsize_t *</em><code>count</code></td> <td valign="top">IN: Number of blocks included in hyperslab.</td></tr> <tr> <td valign="top"><em>const hsize_t *</em><code>stride </code></td> <td valign="top">IN: Hyperslab stride.</td></tr> <tr> <td valign="top"><em>const hsize_t *</em><code>block</code></td> <td valign="top">IN: Size of block in hyperslab.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sselect_hyperslab_f <dd> <pre> 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 ! Starting coordinates of hyperslab INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: count ! Number of blocks to select ! from dataspace INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure INTEGER(HSIZE_T), DIMENSION(*), OPTIONAL, INTENT(IN) :: stride ! Array of how many elements to ! move in each direction INTEGER(HSIZE_T), DIMENSION(*), OPTIONAL, INTENT(IN) :: block ! Size of the element block END SUBROUTINE h5sselect_hyperslab_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sselect_none" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-SelectNone">H5Sselect_none</a> <dt><strong>Signature:</strong> <dd><em>herr_t</em> <code>H5Sselect_none</code>(<em>hid_t</em> <code>space_id</code>) <dt><strong>Purpose:</strong> <dd>Resets the selection region to include no elements. <dt><strong>Description:</strong> <dd><code>H5Sselect_none</code> resets the selection region for the dataspace <code>space_id</code> to include no elements. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">IN: The identifier for the dataspace in which the selection is being reset.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sselect_none_f <dd> <pre> SUBROUTINE h5sselect_none_f(space_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5sselect_none_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sselect_valid" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-SelectValid">H5Sselect_valid</a> <dt><strong>Signature:</strong> <dd><em>htri_t</em> <code>H5Sselect_valid</code>(<em>hid_t</em> <code>space_id</code>) <dt><strong>Purpose:</strong> <dd>Verifies that the selection is within the extent of the dataspace. <dt><strong>Description:</strong> <dd><code>H5Sselect_valid</code> verifies that the selection for the dataspace <code>space_id</code> is within the extent of the dataspace if the current offset for the dataspace is used. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">The identifier for the dataspace being queried.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a positive value, for <code>TRUE</code>, if the selection is contained within the extent or <code>0</code> (zero), for <code>FALSE</code>, if it is not. Returns a negative value on error conditions such as the selection or extent not being defined. <dt><strong>Fortran90 Interface:</strong> h5sselect_valid_f <dd> <pre> SUBROUTINE h5sselect_valid_f(space_id, flag, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier LOGICAL, INTENT(OUT) :: flag ! TRUE if the selection is ! contained within the extent, ! FALSE otherwise. INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5sselect_valid_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sset_extent_none" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-SetExtentNone">H5Sset_extent_none</a> <dt><strong>Signature:</strong> <dd><em>herr_t</em> <code>H5Sset_extent_none</code>(<em>hid_t</em> <code>space_id</code>) <dt><strong>Purpose:</strong> <dd>Removes the extent from a dataspace. <dt><strong>Description:</strong> <dd><code>H5Sset_extent_none</code> removes the extent from a dataspace and sets the type to <tt>H5S_NO_CLASS</tt>. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id </code></td> <td valign="top">The identifier for the dataspace from which the extent is to be removed.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a non-negative value if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sset_extent_none_f <dd> <pre> SUBROUTINE h5sset_extent_none_f(space_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5sset_extent_none_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NEW PAGE --> <!-- HEADER RIGHT "H5Sset_extent_simple" --> <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-SetExtentSimple">H5Sset_extent_simple</a> <dt><strong>Signature:</strong> <dd><em>herr_t</em> <code>H5Sset_extent_simple</code>(<em>hid_t</em> <code>space_id</code>, <em>int</em> <code>rank</code>, <em>const hsize_t *</em><code>current_size</code>, <em>const hsize_t *</em><code>maximum_size</code> ) <dt><strong>Purpose:</strong> <dd>Sets or resets the size of an existing dataspace. <dt><strong>Description:</strong> <dd><code>H5Sset_extent_simple</code> sets or resets the size of an existing dataspace. <p> <code>rank</code> is the dimensionality, or number of dimensions, of the dataspace. <p> <code>current_size</code> is an array of size <code>rank</code> which contains the new size of each dimension in the dataspace. <code>maximum_size</code> is an array of size <code>rank</code> which contains the maximum size of each dimension in the dataspace. <p> Any previous extent is removed from the dataspace, the dataspace type is set to <code>H5S_SIMPLE</code>, and the extent is set as specified. <dt><strong>Parameters:</strong> <ul><table> <tr> <td valign="top"><em>hid_t</em> <code>space_id</code></td> <td valign="top">Dataspace identifier.</td> <tr> <td valign="top"><em>int</em> <code>rank</code></td> <td valign="top">Rank, or dimensionality, of the dataspace.</td> <tr> <td valign="top"><em>const hsize_t *</em><code>current_size </code></td> <td valign="top">Array containing current size of dataspace.</td> <tr> <td valign="top"><em>const hsize_t *</em><code>maximum_size</code></td> <td valign="top">Array containing maximum size of dataspace.</td></tr> </table></ul> <dt><strong>Returns:</strong> <dd>Returns a dataspace identifier if successful; otherwise returns a negative value. <dt><strong>Fortran90 Interface:</strong> h5sset_extent_simple_f <dd> <pre> SUBROUTINE h5sset_extent_simple_f(space_id, rank, current_size, & maximum_size, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier INTEGER, INTENT(IN) :: rank ! Dataspace rank INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: current_size ! Array with the new sizes ! of dimensions INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: ! Array with the new maximum ! sizes of dimensions INTEGER, INTENT(OUT) :: hdferr ! Error code ! 0 on success and -1 on failure END SUBROUTINE h5sset_extent_simple_f </pre> <!--<dt><strong>Non-C API(s):</strong> <dd> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> </dl> <!-- NOT YET IMPLEMENTED (R1.2 -- 9908) <hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-ExtentClass">H5Sextent_class</a> <dt><strong>Signature:</strong> <dd><em>H5S_class_t</em> <code>H5Sextent_class</code>(<em>hid_t</em> <code>space_id</code>) <dt><strong>Purpose:</strong> <dd>Determine the current class of a dataspace. <dt><strong>Description:</strong> <dd><code>H5Sextent_class</code> queries a dataspace to determine the current class of a dataspace. <p> The function returns a class name, one of the following: <code>H5S_SCALAR</code>, <code>H5S_SIMPLE</code>. <dt><strong>Parameters:</strong> <dl> <dt><em>hid_t</em> <code>space_id</code> <dd>Dataspace identifier. </dl> <dt><strong>Returns:</strong> <dd>Returns a dataspace class name if successful; otherwise H5S_NO_CLASS (-1). <dt><strong>Non-C API(s):</strong> <dd><a href="fortran/h5s_FORTRAN.html#h5sextent_class_f" target="FortranWin"><img src="Graphics/FORTRAN.gif" border=0></a> <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> </dl> --> <!--<hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-CombineHyperslab">H5Scombine_hyperslab</a> <dt><strong>Non-C API(s):</strong> <dd><a href="fortran/h5s_FORTRAN.html#h5scombine_hyperslab_f" target="FortranWin"><img src="Graphics/FORTRAN.gif" border=0></a> --> <!-- <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> <!--</dl> --> <!--<hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-CombineSelect">H5Scombine_select</a> <dt><strong>Non-C API(s):</strong> <dd><a href="fortran/h5s_FORTRAN.html#h5scombine_select_f" target="FortranWin"><img src="Graphics/FORTRAN.gif" border=0></a> --> <!-- <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> <!--</dl> --> <!--<hr> <dl> <dt><strong>Name:</strong> <a name="Dataspace-SelectSelect">H5Sselect_select</a> <dt><strong>Non-C API(s):</strong> <dd><a href="fortran/h5s_FORTRAN.html#h5sselect_select_f" target="FortranWin"><img src="Graphics/FORTRAN.gif" border=0></a> --> <!-- <img src="Graphics/Java.gif"> <img src="Graphics/C++.gif"> --> <!--</dl> --> <!-- #BeginLibraryItem "/ed_libs/NavBar_RM.lbi" --><hr> <center> <table border=0 width=98%> <tr><td valign=top align=left> <a href="index.html">HDF5 documents and links</a> <br> <a href="H5.intro.html">Introduction to HDF5</a> <br> <a href="http://hdf.ncsa.uiuc.edu/HDF5/doc/UG/index.html">HDF5 User Guide</a> <br> <!-- <a href="Glossary.html">Glossary</a><br> --> </td> <td valign=top align=right> And in this document, the <a href="RM_H5Front.html">HDF5 Reference Manual</a> <br> <a href="RM_H5.html">H5</a> <a href="RM_H5A.html">H5A</a> <a href="RM_H5D.html">H5D</a> <a href="RM_H5E.html">H5E</a> <a href="RM_H5F.html">H5F</a> <a href="RM_H5G.html">H5G</a> <a href="RM_H5I.html">H5I</a> <a href="RM_H5P.html">H5P</a> <br> <a href="RM_H5R.html">H5R</a> <a href="RM_H5S.html">H5S</a> <a href="RM_H5T.html">H5T</a> <a href="RM_H5Z.html">H5Z</a> <a href="Tools.html">Tools</a> <a href="PredefDTypes.html">Datatypes</a> </td></tr> </table> </center> <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 </address><!-- #EndLibraryItem --><SCRIPT LANGUAGE="JAVASCRIPT"> <!-- document.writeln("Last modified: 15 March 2004"); --> </SCRIPT> </body> </html>