<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>&nbsp;<br>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="http://hdf.ncsa.uiuc.edu/HDF5/doc/UG/index.html">HDF5 User Guide</a>&nbsp;<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>&nbsp;&nbsp;
<br>
<a href="RM_H5.html">H5</a>&nbsp;&nbsp;
<a href="RM_H5A.html">H5A</a>&nbsp;&nbsp;
<a href="RM_H5D.html">H5D</a>&nbsp;&nbsp;
<a href="RM_H5E.html">H5E</a>&nbsp;&nbsp;
<a href="RM_H5F.html">H5F</a>&nbsp;&nbsp;
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5I.html">H5I</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
<br>
<a href="RM_H5R.html">H5R</a>&nbsp;&nbsp;
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;
<a href="RM_H5Z.html">H5Z</a>&nbsp;&nbsp;
<a href="Tools.html">Tools</a>&nbsp;&nbsp;
<a href="PredefDTypes.html">Datatypes</a>&nbsp;&nbsp;
</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
    <li>H5Sopen
    <li>H5Sselect_op
    <li>H5Sselect_order
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>type&nbsp;&nbsp;&nbsp;&nbsp;</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&nbsp;hsize_t&nbsp;*</em>&nbsp;<code>maxdims&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>source_space_id&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;
            &lt;coordinate&gt;, followed by 
            <br>&nbsp;&nbsp;&nbsp;&nbsp;
            the next coordinate, 
            <br>&nbsp;&nbsp;&nbsp;&nbsp;
            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&nbsp;</em><code>startpoint&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;
            &lt;"start" coordinate&gt;, immediately followed by 
            <br>&nbsp;&nbsp;&nbsp;&nbsp;
            &lt;"opposite" corner coordinate&gt;, followed by 
            <br>&nbsp;&nbsp;&nbsp;&nbsp;
            the next "start" and "opposite" coordinates, 
            <br>&nbsp;&nbsp;&nbsp;&nbsp;
            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&nbsp;</em><code>startblock&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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&nbsp;*</em><code>maxdims&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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&nbsp;hssize_t&nbsp;*</em><code>offset&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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&nbsp;&nbsp;</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&nbsp;size_t</em>&nbsp;<code>num_elements&nbsp;&nbsp;&nbsp;&nbsp;</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.
	    &nbsp;&nbsp;
	    (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.
	    &nbsp;&nbsp;
	    (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.
	    &nbsp;&nbsp;
	    (Binary exclusive-OR, XOR)
          </td></tr><tr><td valign=top>
            <code>H5S_SELECT_NOTB&nbsp;&nbsp;</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&nbsp;hsize_t&nbsp;*</em><code>stride&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<code>space_id&nbsp;&nbsp;&nbsp;&nbsp;</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&nbsp;hsize_t&nbsp;*</em><code>current_size&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<br>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="http://hdf.ncsa.uiuc.edu/HDF5/doc/UG/index.html">HDF5 User Guide</a>&nbsp;<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>&nbsp;&nbsp;
<br>
<a href="RM_H5.html">H5</a>&nbsp;&nbsp;
<a href="RM_H5A.html">H5A</a>&nbsp;&nbsp;
<a href="RM_H5D.html">H5D</a>&nbsp;&nbsp;
<a href="RM_H5E.html">H5E</a>&nbsp;&nbsp;
<a href="RM_H5F.html">H5F</a>&nbsp;&nbsp;
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5I.html">H5I</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
<br>
<a href="RM_H5R.html">H5R</a>&nbsp;&nbsp;
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;
<a href="RM_H5Z.html">H5Z</a>&nbsp;&nbsp;
<a href="Tools.html">Tools</a>&nbsp;&nbsp;
<a href="PredefDTypes.html">Datatypes</a>&nbsp;&nbsp;
</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>