/** \page UG HDF5 User Guide

<center>
HDF5 Release 1.10

\image html HDFG-logo.png "The HDF Group"

</center>

\ref sec_data_model
\li \ref subsec_data_model_intro
\li \ref subsec_data_model_abstract
    <ul>
        <li> \ref subsubsec_data_model_abstract_file
        <li> \ref subsubsec_data_model_abstract_group
        <li> \ref subsubsec_data_model_abstract_dataset
        <li> \ref subsubsec_data_model_abstract_space
        <li> \ref subsubsec_data_model_abstract_type
        <li> \ref subsubsec_data_model_abstract_attr
        <li> \ref subsubsec_data_model_abstract_plist
        <li> \ref subsubsec_data_model_abstract_link
    </ul>
\li \ref subsec_data_model_storage
    <ul>
        <li> \ref subsubsec_data_model_storage_spec
        <li> \ref subsubsec_data_model_storage_imple
    </ul>
\li \ref subsec_data_model_structure
    <ul>
        <li> \ref subsubsec_data_model_structure_file
        <li> \ref subsubsec_data_model_structure_path
        <li> \ref subsubsec_data_model_structure_example
    </ul>

\ref sec_program
\li \ref subsec_program_intro
\li \ref subsec_program_model
    <ul>
        <li> \ref subsubsec_program_model_create
        <li> \ref subsubsec_program_model_dset
        <li> \ref subsubsec_program_model_close
        <li> \ref subsubsec_program_model_data
        <li> \ref subsubsec_program_model_partial
        <li> \ref subsubsec_program_model_info
        <li> \ref subsubsec_program_model_compound
        <li> \ref subsubsec_program_model_extend
        <li> \ref subsubsec_program_model_group
        <li> \ref subsubsec_program_model_attr
    </ul>
\li \ref subsec_program_transfer_pipeline

\ref sec_file
\li \ref subsec_file_intro
\li \ref subsec_file_access_modes
\li \ref subsec_file_creation_access
\li \ref subsec_file_drivers
\li \ref subsec_file_program_model
    <ul>
        <li> \ref subsubsec_file_program_model_create
        <li> \ref subsubsec_file_program_model_open
        <li> \ref subsubsec_file_program_model_close
    </ul>
\li \ref subsec_file_h5dump
\li \ref subsec_file_summary
\li \ref subsec_file_create
\li \ref subsec_file_closes
\li \ref subsec_file_property_lists
    <ul>
        <li> \ref subsubsec_file_property_lists_create
        <li> \ref subsubsec_file_property_lists_props
        <li> \ref subsubsec_file_property_lists_access
    </ul>
\li \ref subsec_file_alternate_drivers
    <ul>
        <li> \ref subsubsec_file_alternate_drivers_id
        <li> \ref subsubsec_file_alternate_drivers_sec2
        <li> \ref subsubsec_file_alternate_drivers_direct
        <li> \ref subsubsec_file_alternate_drivers_log
        <li> \ref subsubsec_file_alternate_drivers_win
        <li> \ref subsubsec_file_alternate_drivers_stdio
        <li> \ref subsubsec_file_alternate_drivers_mem
        <li> \ref subsubsec_file_alternate_drivers_family
        <li> \ref subsubsec_file_alternate_drivers_multi
        <li> \ref subsubsec_file_alternate_drivers_split
        <li> \ref subsubsec_file_alternate_drivers_par
    </ul>
\li \ref subsec_file_examples
    <ul>
        <li> \ref subsubsec_file_examples_trunc
        <li> \ref subsubsec_file_examples_props
        <li> \ref subsubsec_file_examples_access
    </ul>
\li \ref subsec_file_multiple

\ref sec_group
\li \ref subsec_group_intro
\li \ref subsec_group_descr
    <ul>
        <li> \ref subsubsec_group_descr_object
        <li> \ref subsubsec_group_descr_model
        <li> \ref subsubsec_group_descr_path
        <li> \ref subsubsec_group_descr_impl
    </ul>
\li \ref subsec_group_h5dump
\li \ref subsec_group_function
\li \ref subsec_group_program
    <ul>
        <li> \ref subsubsec_group_program_create
        <li> \ref subsubsec_group_program_open
        <li> \ref subsubsec_group_program_dataset
        <li> \ref subsubsec_group_program_close
        <li> \ref subsubsec_group_program_links
        <li> \ref subsubsec_group_program_info
        <li> \ref subsubsec_group_program_objs
        <li> \ref subsubsec_group_program_all
    </ul>
\li \ref subsec_group_examples

\ref sec_dataset
\li \ref subsec_dataset_intro
\li \ref subsec_dataset_function
\li \ref subsec_dataset_program
    <ul>
        <li> \ref subsubsec_dataset_program_general
        <li> \ref subsubsec_dataset_program_create
        <li> \ref subsubsec_dataset_program_transfer
        <li> \ref subsubsec_dataset_program_read
    </ul>
\li \ref subsec_dataset_transfer Data Transfer
    <ul>
        <li> \ref subsubsec_dataset_transfer_pipe
        <li> \ref subsubsec_dataset_transfer_filter
        <li> \ref subsubsec_dataset_transfer_drive
        <li> \ref subsubsec_dataset_transfer_props
        <li> \ref subsubsec_dataset_transfer_store
        <li> \ref subsubsec_dataset_transfer_partial
    </ul>
\li \ref subsec_dataset_allocation
    <ul>
        <li> \ref subsubsec_dataset_allocation_store
        <li> \ref subsubsec_dataset_allocation_delete
        <li> \ref subsubsec_dataset_allocation_release
        <li> \ref subsubsec_dataset_allocation_ext
    </ul>
\li \ref subsec_dataset_filters
    <ul>
        <li> \ref subsubsec_dataset_filters_nbit
        <li> \ref subsubsec_dataset_filters_scale
        <li> \ref subsubsec_dataset_filters_szip
    </ul>

\ref sec_datatype
\li \ref subsec_datatype_intro
\li \ref subsec_datatype_model
    <ul>
        <li> \ref subsubsec_datatype_model_class
        <li> \ref subsubsec_datatype_model_predefine
    </ul>
\li \ref subsec_datatype_usage
    <ul>
        <li> \ref subsubsec_datatype_usage_object
        <li> \ref subsubsec_datatype_usage_create
        <li> \ref subsubsec_datatype_usage_transfer
        <li> \ref subsubsec_datatype_usage_discover
        <li> \ref subsubsec_datatype_usage_user
    </ul>
\li \ref subsec_datatype_function
\li \ref subsec_datatype_program
    <ul>
        <li> \ref subsubsec_datatype_program_discover
        <li> \ref subsubsec_datatype_program_define
    </ul>
\li \ref subsec_datatype_other
    <ul>
        <li> \ref subsubsec_datatype_other_strings
        <li> \ref subsubsec_datatype_other_refs
        <li> \ref subsubsec_datatype_other_enum
        <li> \ref subsubsec_datatype_other_opaque
        <li> \ref subsubsec_datatype_other_bitfield
    </ul>
\li \ref subsec_datatype_fill
\li \ref subsec_datatype_complex
    <ul>
        <li> \ref subsubsec_datatype_complex_create
        <li> \ref subsubsec_datatype_complex_analyze
    </ul>
\li \ref subsec_datatype_life
\li \ref subsec_datatype_transfer
\li \ref subsec_datatype_text

\ref sec_dataspace
\li \ref subsec_dataspace_intro
\li \ref subsec_dataspace_function
\li \ref subsec_dataspace_program
    <ul>
        <li> \ref subsubsec_dataspace_program_object
        <li> \ref subsubsec_dataspace_program_model
    </ul>
\li \ref subsec_dataspace_transfer
    <ul>
        <li> \ref subsubsec_dataspace_transfer_select
        <li> \ref subsubsec_dataspace_transfer_model
    </ul>
\li \ref subsec_dataspace_select
\li \ref subsec_dataspace_refer
    <ul>
        <li> \ref subsubsec_dataspace_refer_use
        <li> \ref subsubsec_dataspace_refer_create
        <li> \ref subsubsec_dataspace_refer_read
    </ul>
\li \ref subsec_dataspace_sample

\ref sec_attribute
\li \ref subsec_attribute_intro
\li \ref subsec_attribute_program
    <ul>
        <li> <!-- \subsubsection subsubsec_attribute_program_exist --> To Open and Read or Write an Existing Attribute </li>
    </ul>
\li \ref subsec_error_H5A
\li \ref subsec_attribute_work
    <ul>
        <li> \ref subsubsec_attribute_work_struct
        <li> \ref subsubsec_attribute_work_create
        <li> \ref subsubsec_attribute_work_access
        <li> \ref subsubsec_attribute_work_info
        <li> \ref subsubsec_attribute_work_iterate
        <li> \ref subsubsec_attribute_work_delete
        <li> \ref subsubsec_attribute_work_close
    </ul>
\li \ref subsec_attribute_special

\ref sec_error
\li \ref subsec_error_intro
\li \ref subsec_error_program
\li \ref subsec_error_H5E
\li \ref subsec_error_ops
    <ul>
        <li> \ref subsubsec_error_ops_stack
        <li> \ref subsubsec_error_ops_print
        <li> \ref subsubsec_error_ops_mute
        <li> \ref subsubsec_error_ops_custom_print
        <li> \ref subsubsec_error_ops_walk
        <li> \ref subsubsec_error_ops_travers
    </ul>
\li \ref subsec_error_adv
    <ul>
        <li> \ref subsubsec_error_adv_more
        <li> \ref subsubsec_error_adv_app
    </ul>

\ref sec_plist
\li \ref subsec_plist_intro
\li \ref subsec_plist_class
    <ul>
        <li> \ref subsubsec_plist_class
        <li> \ref subsubsec_plist_lists
        <li> \ref subsubsec_plist_props
    </ul>
\li \ref subsec_plist_program
    <ul>
        <li> \ref subsubsec_plist_default
        <li> \ref subsubsec_plist_basic
        <li> \ref subsubsec_plist_additional
    </ul>
\li \ref subsec_plist_generic
\li \ref subsec_plist_H5P
\li \ref subsec_plist_resources
\li \ref subsec_plist_notes

\ref sec_addition

\page AR_UG Additional Resources

\section sec_addition Additional Resources
These documents provide additional information for the use and tuning of specific HDF5 features.
 <table style=" border-spacing:0; padding-left:6.00pt; padding-top:6.00pt; padding-right:6.00pt; padding-bottom:6.00pt; float:aligncenter; width:100%; max-width:432.00pt;" cellspacing="0">
  <caption x-list-start="1" style="font-size: 12.0pt;">Table of Additional resources</caption>
  <tr style="height: 23.00pt;">
  <th style="width: 234.000pt; border-top-style: solid; border-top-width: 1px; border-top-color: #228a22; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align : top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>Document</p>
</th>
  <th style="width: 198.000pt; border-top-style: solid; border-top-width: 1px; border-top-color: #228a22; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align : top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>Comments</p>
</th>
</tr>
  <tr style="height: 23.00pt;">
  <td style="width: 234.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p style="font-style: italic; color: #0000ff;"><span><a href="http://www.hdfgroup.org/HDF5/examples/">HDF5 Examples</a></span></p>
</td>
  <td style="width: 198.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>Code examples by API. </p>
</td>
</tr>
  <tr style="height: 36.00pt;">
  <td style="width: 234.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p style="font-style: italic; color: #0000ff;"><span><a href="http://www.hdfgroup.org/HDF5/doc/Advanced/Chunking/index.html">Chunking in HDF5</a></span></p>
</td>
  <td style="width: 198.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>Structuring the use of chunking and tuning it for performance.</p>
</td>
</tr>
  <tr style="height: 36.00pt;">
  <td style="width: 234.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p style="font-style: italic; color: #0000ff;"><span class="FM_LT_LinkText"><a href="http://www.hdfgroup.org/HDF5/doc/Advanced/DirectChunkWrite/UsingDirectChunkWrite.pdf">Using the Direct Chunk Write Function</a></span></p>
</td>
  <td style="width: 198.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>Describes another way that chunks can be written to datasets.</p>
</td>
</tr>
  <tr style="height: 88.00pt;">
  <td style="width: 234.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p style="font-style: italic; color: #0000ff;"><span><a href="http://www.hdfgroup.org/HDF5/doc/Advanced/CommittedDatatypeCopying/CopyingCommittedDatatypesWithH5Ocopy.pdf">Copying Committed Datatypes with H5Ocopy</a></span></p>
</td>
  <td style="width: 198.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>Describes how to copy to another file a dataset that uses a committed datatype or an object with an attribute that uses a committed datatype so that the committed datatype in the destination file can be used by multiple objects.</p>
</td>
</tr>
  <tr style="height: 36.00pt;">
  <td style="width: 234.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p style="font-style: italic; color: #0000ff;"><span><a href="http://www.hdfgroup.org/HDF5/doc/Advanced/MetadataCache/index.html">Metadata Caching in HDF5</a></span></p>
</td>
  <td style="width: 198.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>Managing the HDF5 metadata cache and tuning it for performance.</p>
</td>
</tr>
  <tr style="height: 49.00pt;">
  <td style="width: 234.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p style="font-style: italic; color: #0000ff;"><span><a href="http://www.hdfgroup.org/HDF5/doc/Advanced/DynamicallyLoadedFilters/HDF5DynamicallyLoadedFilters.pdf">HDF5 Dynamically Loaded Filters</a></span></p>
</td>
  <td style="width: 198.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>Describes how an HDF5 application can apply a filter that is not registered with the HDF5 Library.</p>
</td>
</tr>
  <tr style="height: 62.00pt;">
  <td style="width: 234.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p style="font-style: italic; color: #0000ff;"><span><a href="http://www.hdfgroup.org/HDF5/doc/Advanced/FileImageOperations/HDF5FileImageOperations.pdf">HDF5 File Image Operations</a></span></p>
</td>
  <td style="width: 198.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>Describes how to work with HDF5 files in memory. Disk I/O is not required when file images are opened, created, read from, or written to.</p>
</td>
</tr>
  <tr style="height: 62.00pt;">
  <td style="width: 234.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p style="font-style: italic; color: #0000ff;"><span><a href="http://www.hdfgroup.org/HDF5/doc/Advanced/ModifiedRegionWrites/ModifiedRegionWrites.pdf">Modified Region Writes</a></span></p>
</td>
  <td style="width: 198.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>Describes how to set write operations for in-memory files so that only modified regions are written to storage. Available when the Core (Memory) VFD is used.</p>
</td>
</tr>
  <tr style="height: 36.00pt;">
  <td style="width: 234.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p style="font-style: italic; color: #0000ff;"><span><a href="http://www.hdfgroup.org/HDF5/doc/Advanced/UsingIdentifiers/index.html">Using Identifiers</a></span></p>
</td>
  <td style="width: 198.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>Describes how identifiers behave and how they should be treated.</p>
</td>
</tr>
  <tr style="height: 36.00pt;">
  <td style="width: 234.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p style="font-style: italic; color: #0000ff;"><span><a href="http://www.hdfgroup.org/HDF5/doc/Advanced/UsingUnicode/index.html">Using UTF-8 Encoding in HDF5 Applications</a></span></p>
</td>
  <td style="width: 198.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>Describes the use of UTF-8 Unicode character encodings in HDF5 applications.</p>
</td>
</tr>
  <tr style="height: 49.00pt;">
  <td style="width: 234.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p style="font-style: italic; color: #0000ff;"><span><a href="http://www.hdfgroup.org/HDF5/doc/Advanced/FreeingMemory/FreeingMemoryAllocatedByTheHdf5Library.pdf">Freeing Memory Allocated by the HDF5 Library</a></span></p>
</td>
  <td style="width: 198.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>Describes how inconsistent memory management can cause heap corruption or resource leaks and possible solutions.</p>
</td>
</tr>
  <tr style="height: 23.00pt;">
  <td style="width: 234.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p style="font-style: italic; color: #0000ff;"><span><a href="http://www.hdfgroup.org/HDF5/doc/Glossary.html">HDF5 Glossary</a></span></p>
</td>
  <td style="width: 198.000pt; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #228a22; vertical-align: top;padding-left: 6.00pt; padding-top: 3.00pt; padding-right: 6.00pt; padding-bottom: 3.00pt;">
  <p>A glossary of terms.</p>
</td>
</tr>
 </table>

Previous Chapter \ref sec_plist

<!-- 
<table>
<tr><td style="border: none;">
\li \ref H5A "Attributes (H5A)"
\li \ref H5D "Datasets (H5D)"
\li \ref H5S "Dataspaces (H5S)"
\li \ref H5T "Datatypes (H5T)"
\li \ref H5E "Error Handling (H5E)"
\li \ref H5F "Files (H5F)"
\li \ref H5Z "Filters (H5Z)"
\li \ref H5G "Groups (H5G)"
</td><td style="border: none;">
\li \ref H5I "Identifiers (H5I)"
\li \ref H5 "Library General (H5)"
\li \ref H5L "Links (H5L)"
\li \ref H5O "Objects (H5O)"
\li \ref H5P "Property Lists (H5P)"
\li \ref H5PL "Dynamically-loaded Plugins (H5PL)"
\li \ref H5R "References (H5R)"
</td><td style="border: none;vertical-align: top;">
\li \ref api-compat-macros
\li <a href="./deprecated.html">Deprecated functions</a>
\li High-level Extensions
    <ul>
    <li><a href="https://portal.hdfgroup.org/display/HDF5/Lite">\Bold{HDF5 Lite} (H5LT)</a></li>
    <li><a href="https://portal.hdfgroup.org/display/HDF5/Images">\Bold{HDF5 Image} (H5IM)</a></li>
    <li><a href="https://portal.hdfgroup.org/display/HDF5/Tables">\Bold{HDF5 Table} (H5TB)</a></li>
    <li><a href="https://portal.hdfgroup.org/display/HDF5/Packet+Tables">\Bold{HDF5 Packet Table} (H5TB)</a></li>
    <li><a href="https://portal.hdfgroup.org/display/HDF5/Dimension+Scales">\Bold{HDF5 Dimension Scale} (H5DS)</a></li>
    </ul>
</td></tr>
<tr><td colspan="3" style="border: none;">
\ref H5 \ref H5A \ref H5D \ref H5E \ref H5F \ref H5G \ref H5I \ref H5L
\ref H5O \ref H5P \ref H5PL \ref H5R \ref H5S \ref H5T \ref H5Z
</td></tr>
</table>

</td></tr>
</table>
 -->

\par Don't like what you see? - You can help to improve this User Guide
     Complete the survey linked near the top of this page!\n
     We treat documentation like code: Fork the
     <a href="https://github.com/HDFGroup/hdf5">HDF5 repo</a>, make changes, and create a
     <a href="https://github.com/HDFGroup/hdf5/pulls">pull request</a> !\n

*/