diff options
Diffstat (limited to 'doc/html/Tutor/compound.html')
-rw-r--r-- | doc/html/Tutor/compound.html | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/doc/html/Tutor/compound.html b/doc/html/Tutor/compound.html deleted file mode 100644 index 93df933..0000000 --- a/doc/html/Tutor/compound.html +++ /dev/null @@ -1,234 +0,0 @@ -<HTML><HEAD> -<TITLE>HDF5 Tutorial - Compound Datatypes -</TITLE> -</HEAD> - -<body bgcolor="#ffffff"> - -<!-- BEGIN MAIN BODY --> - - - [ <A HREF="title.html"><I>HDF5 Tutorial Top</I></A> ] -<H1> -<BIG><BIG><BIG><FONT COLOR="#c101cd">Compound Datatypes</FONT> -</BIG></BIG></BIG></H1> - -<hr noshade size=1> - -<BODY> -<H2>Contents:</H2> -<UL> - <LI><A HREF="#def">Creating Compound Datatypes</A> - <LI>Programming Example -<UL> - <LI> <A HREF="#desc">Description</A> - <LI> <A HREF="#rem">Remarks</A> - <LI> <A HREF="#fc">File Contents</A> -</UL> -</UL> -<HR> -<A NAME="def"> -<H2>Creating Compound Datatypes</H2> -A compound datatype is similar to a struct in C or a common block in -FORTRAN. It is a collection of one or more atomic types or small arrays of -such types. To create and use a compound datatype you need to be familiar -with various properties of the compound datatype: -<UL> - <LI>It is of class <strong>compound</strong>. - <LI>It has a fixed total size, in bytes. - <LI>It consists of zero or more members (defined in any order) with - unique names and occupying non-overlapping regions within the datum. - <LI>Each member has its own datatype. - <LI>Each member is referenced by an index number between zero and <em>N</em>-1, - where <em>N</em> is the number of members in the compound datatype. - <LI>Each member has a name which is unique among its siblings in a - compound datatype. - <LI>Each member has a fixed byte offset, which locates the first byte - (smallest byte address) of that member in the compound datatype. - <LI>Each member can be a small array of up to four dimensions. -</UL> -Properties of members of a compound datatype are defined when the -member is added to the compound datatype and cannot be subsequently modified. -<P> -Compound datatypes must be built out of other datatypes. First, one -creates an empty compound datatype and specifies its total size. Then -members are added to the compound datatype in any order. - -<H2> Programming Example</H2> -<A NAME="desc"> -<H3><U>Description</U></H3> - -This example shows how to create a compound datatype, write an array -to the file which uses the compound datatype, and read back subsets of -the members. -<p> -<UL> -[ <A HREF="examples/h5_compound.c">C Example</A> ] - <code>h5_compound.c</code> -<BR> -[ <A HREF="examples/compound.f90">Fortran 90 Example</A> ] -- <code>compound.f90</code> -<BR> -[ <A HREF="examples/java/Compound.java">Java Example</A> ] - <code>Compound.java</code> -</UL> -The program outputs the following: -<PRE> - -Field c : -1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 0.1429 0.1250 0.1111 0.1000 - -Field a : -0 1 2 3 4 5 6 7 8 9 - -Field b : -0.0000 1.0000 4.0000 9.0000 16.0000 25.0000 36.0000 49.0000 64.0000 81.0000 - -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -</PRE> - -<A NAME="rem"> -<H3><U>Remarks</U></H3> -<UL> -<LI><CODE>H5Tcreate</CODE> creates a new datatype of the specified class with -the specified number of bytes. -<PRE> - hid_t H5Tcreate ( H5T_class_t class, size_t size ) -</PRE> -<UL> -<LI>The <I>class</I> parameter specifies the datatype to create. -Currently only the <CODE>H5T_COMPOUND</CODE> datatype class is supported with this -function. -<LI>The <I>size</I> parameter specifies the number of bytes in the -datatype to create. -</UL> -<P> -<LI><CODE>H5Tinsert</CODE> adds a member to the compound datatype specified by -<I>type_id</I>. -<PRE> - herr_t H5Tinsert ( hid_t type_id, const char * name, off_t offset, - hid_t field_id ) -</PRE> -<UL> -<LI>The <I>type_id</I> parameter is the identifier of the compound datatype -to modify. -<LI>The <I>name</I> parameter is the name of the field to insert. The new -member name must be unique within a compound datatype. -<LI>The <I>offset</I> parameter is the offset in the memory structure of -the field to insert. - -The library defines the <CODE>HOFFSET</CODE> macro to compute the offset of a member within -a struct: -<PRE> - HOFFSET ( s, m ) -</PRE> -This macro computes the offset of member <I>m</I> within a struct -variable <I>s</I>. - -<LI>The <I>field_id</I> parameter is the datatype identifier of the -field to insert. -</UL> -<P> -<LI><CODE>H5Tclose</CODE> releases a datatype. -<PRE> - herr_t H5Tclose ( hid_t type_id ) -</PRE> -The <I>type_id</I> parameter is the identifier of the datatype to release. -</UL> -<A NAME="fc"> -<H3><U>File Contents</U></H3> - -<PRE> -HDF5 "SDScompound.h5" { -GROUP "/" { - DATASET "ArrayOfStructures" { - DATATYPE { - H5T_STD_I32BE "a_name"; - H5T_IEEE_F32BE "b_name"; - H5T_IEEE_F64BE "c_name"; - } - DATASPACE { SIMPLE ( 10 ) / ( 10 ) } - DATA { - { - [ 0 ], - [ 0 ], - [ 1 ] - }, - { - [ 1 ], - [ 1 ], - [ 0.5 ] - }, - { - [ 2 ], - [ 4 ], - [ 0.333333 ] - }, - { - [ 3 ], - [ 9 ], - [ 0.25 ] - }, - { - [ 4 ], - [ 16 ], - [ 0.2 ] - }, - { - [ 5 ], - [ 25 ], - [ 0.166667 ] - }, - { - [ 6 ], - [ 36 ], - [ 0.142857 ] - }, - { - [ 7 ], - [ 49 ], - [ 0.125 ] - }, - { - [ 8 ], - [ 64 ], - [ 0.111111 ] - }, - { - [ 9 ], - [ 81 ], - [ 0.1 ] - } - } - } -} -} -</PRE> - - - -<!-- BEGIN FOOTER INFO --> - -<P><hr noshade size=1> -<font face="arial,helvetica" size="-1"> - <a href="http://www.ncsa.uiuc.edu/"><img border=0 -src="footer-ncsalogo.gif" - width=78 height=27 alt="NCSA"><br> - The National Center for Supercomputing Applications</A><br> - <a href="http://www.uiuc.edu/">University of Illinois - at Urbana-Champaign</a><br> - <br> -<!-- <A HREF="helpdesk.mail.html"> --> -<A HREF="mailto:hdfhelp@ncsa.uiuc.edu"> -hdfhelp@ncsa.uiuc.edu</A> -<br> -<BR> <H6>Last Modified: June 22, 2001</H6><BR> -<!-- modified by Barbara Jones - bljones@ncsa.uiuc.edu --> -<!-- modified by Frank Baker - fbaker@ncsa.uiuc.edu --> -</FONT> -<BR> -<!-- <A HREF="mailto:hdfhelp@ncsa.uiuc.edu"> --> - -</BODY> -</HTML> - - - |