Compare commits

...

420 Commits

Author SHA1 Message Date
Albert Cheng
dad3adba53 [svn-r2414] Committing information updated by the release script for the official
1.2.2 release.
2000-06-26 10:47:04 -05:00
Barbara Jones
8ff1200b1e [svn-r2408] change 5-1.2.1 entries to 5-1.2.2, and a couple of other things 2000-06-23 10:30:41 -05:00
Barbara Jones
5bf6b28eb3 [svn-r2407] few syntax errors corrected. 2000-06-23 10:05:23 -05:00
Barbara Jones
894c62f925 [svn-r2406] Fixed a few syntax errors and took out line about referring to
HISTORY file for more details.
2000-06-23 10:01:23 -05:00
Elena Pourmal
bbf1e8afca [svn-r2405]
I missed J90 info. Fixed.
2000-06-22 14:03:15 -05:00
Elena Pourmal
3c130073f0 [svn-r2404]
Last update to the file: fixed OS and compiler versions for AIX systems tested by
Albert.
2000-06-22 12:55:02 -05:00
Frank Baker
800dfe1239 [svn-r2403] XML_DTD/DesignNotes.html: Revision of 12 June 2000 2000-06-22 11:13:22 -05:00
Elena Pourmal
931f66eb4b [svn-r2401]
Forgot to add testing results reported by Robb for Linux.
2000-06-22 10:09:32 -05:00
Elena Pourmal
261363dc42 [svn-r2400]
I removed hdf5-1.2.2 release information from the HISTORY file. I will add it after
the release.

I updated RELEASE file: added information about WIN2000 support, added info about
testing results on SP2 (LLNL).
2000-06-22 09:58:23 -05:00
Bill Wendling
883dbf2455 [svn-r2398] I messed up and didn't add the config/hpux11.00 into the MANIFEST...DOH 2000-06-21 11:36:58 -05:00
Frank Baker
800ddf8afb [svn-r2396] Removed xml_dtd/HDF5-File.dtd. 2000-06-20 10:19:47 -05:00
Albert Cheng
0f36ffd051 [svn-r2395] Updated the instructions. 2000-06-19 17:12:39 -05:00
Albert Cheng
6ea3b11837 [svn-r2394] Removed h5dumptst from PROGS=...
h5dumptst is not a user tool.  It is used to generate the
test files for tools tests.  It is useless for HDF5 users
and may do harm since it just creates a bunch of *.h5 files
which may wipe out users' files that have the same name.
The more correct fix would be to create a PUB_PROGS that
contains tools to be installed, just like PUB_HDR and PUB_LIBS.
2000-06-19 12:42:48 -05:00
Albert Cheng
b9a9477ceb [svn-r2392] Updated information of new features and bug fixed. Also platforms
information for AIX, IRIX64 and TFLOPS.
2000-06-19 11:23:28 -05:00
Bill Wendling
ba16d6a352 [svn-r2390] Configuration file for HP/UX 11.00. This is just a copy of the one for
HP/UX 10.20
2000-06-19 09:47:57 -05:00
Elena Pourmal
a835da5336 [svn-r2389]
Added info about HP-UX 11.00 support.
2000-06-17 10:08:49 -05:00
Elena Pourmal
5dfca0e253 [svn-r2388]
Updated files for the hdf5-1.2.2 release
2000-06-16 14:52:18 -05:00
Frank Baker
5cde2e1499 [svn-r2386] RM_H5S.html: H5Sget_select_bounds -- Corrected return value. 2000-06-13 16:09:59 -05:00
Elena Pourmal
31665106e3 [svn-r2385]
Changed H5_VERS_SUBRELEASE string to "" for the hdf5-1.2.2 release.
2000-06-09 14:38:12 -05:00
Frank Baker
0795224bbb [svn-r2384] Updated "Last modified:" date. 2000-06-09 13:44:39 -05:00
Frank Baker
59934304f0 [svn-r2383] Datatypes.html
RM_H5T.html
	Updated descriptions of H5T_conv_t.
2000-06-09 13:42:57 -05:00
Frank Baker
5d097e596f [svn-r2382] Added line to each HTML doc file noting release number. 2000-06-09 13:02:51 -05:00
Frank Baker
833a8db230 [svn-r2381] Added line to each HTML doc file noting release number.
In many cases, also updated "Last modified:" date.
2000-06-09 13:02:29 -05:00
Elena Pourmal
804a2e3850 [svn-r2380]
Updated "Introduction" and "Platforms tested" sections for the hdf5-1.2.2 release.
2000-06-09 10:21:11 -05:00
Frank Baker
4d9ed8cffe [svn-r2379] RM_H5P.html: Corrected H5Pset_mpi purpose statement 2000-06-08 17:45:28 -05:00
Frank Baker
59128b09d8 [svn-r2378] Corrected H5Pset_mpi purpose statement in RM_H5P.html. 2000-06-08 17:44:58 -05:00
Frank Baker
3c6e451973 [svn-r2377] PSandPDF/index.html: Corrected "Last modified" date.
Added line "Describes HDF5 Release 1.2.2, June 2000".
2000-06-08 17:34:10 -05:00
Frank Baker
9d45e32828 [svn-r2376] PSandPDF/index.html: Edited entire page.
Added list of R1.2.2 doc changes (technical items only).
2000-06-08 17:30:10 -05:00
Bill Wendling
1665acca64 [svn-r2375] Prototype for H5Pget_gc_references function was misnamed. 2000-06-08 14:51:23 -05:00
Bill Wendling
9083a95ab3 [svn-r2374] An HRETURN_ERROR macro was returning a "NULL" value when it should be
returning "FAIL".
2000-06-08 14:50:32 -05:00
Frank Baker
49b37bc530 [svn-r2373] Copyright.html: Spelling correction and minor clean-up. 2000-06-08 11:46:32 -05:00
Frank Baker
3553752b06 [svn-r2372] COPYING: Added LLNL statement to copyright notice. 2000-06-08 11:43:37 -05:00
Robb Matzke
c4411531bd [svn-r2370] Added note about struct(opt) type converter fix. 2000-06-08 10:15:01 -05:00
Elena Pourmal
6e11942370 [svn-r2369]
While building hdf5_1_2 on WinNT and Win98 I found two problems:

Library would not compile.
I had to modify toolslib and toolslibD projects. Both had hfindshd.c
file listed in the source list, but file cannot be found.

dumptest.bat file did not have test for nested compound datatypes.
I also redirected output of the diff commnad for the h5dump results to the file since
redirection of the dumptest.bat output does not work on Win98.
2000-06-08 08:57:36 -05:00
Frank Baker
2fdb5c66e6 [svn-r2368] Tutor/Copyright.html: Added 2000 to copyright year line.
Added LLNL statement.
2000-06-07 17:23:31 -05:00
Frank Baker
f89708ca6b [svn-r2367] Copyright.html: Add LLNL statement. 2000-06-07 17:19:25 -05:00
Frank Baker
d617baa222 [svn-r2366] MANIFEST: Add new "HDF5 App Developer's Guide" and "HDF5 Tutorial" files. 2000-06-07 16:23:21 -05:00
Frank Baker
2522bfcecd [svn-r2365] Tutor/H5DocInsert: Contains link that must added to (or deleted from)
Tutor/Content*.html to differentiate between versions served
	from the HDF5 web site and distributed with HDF5 releases.
2000-06-07 16:10:04 -05:00
Frank Baker
836be0cfec [svn-r2364] Tutor/Contents*.html: Adding link to return user to HDF5 doc set. 2000-06-07 16:05:50 -05:00
Albert Cheng
12e9676504 [svn-r2363] Changed the file searching pattern to look for end of line to match
a complete file name.  This distinguish file ./config/unicos from
./config/unicosmk.
Tossed in a cleanup feature by removing the temporary file when finished.
2000-06-07 15:41:51 -05:00
Frank Baker
73ef4b96db [svn-r2361] Updating "HDF5 Tutorial." 2000-06-07 14:56:04 -05:00
Patrick Lu
798760fe15 [svn-r2360] made the same changes I made to the dev branch. decided to add to the release branch after all
since the changes will not affect the release branch.  the changes have a conditional compile statement
around some of it so it shouldnt break anything
2000-06-07 14:52:19 -05:00
Frank Baker
9d25162448 [svn-r2358] ADGuide.html: Minor copyedits and formatting.
Added "Mapping HDF4 Objects to HDF5 Objects."
	Revised opening paragraph and "The XML DTD for HDF5" description.
2000-06-07 12:21:37 -05:00
Frank Baker
c8a797e284 [svn-r2357] H4toH5Mapping.pdf: New file for "HDF5 App Developer's Guide."
H4-to-H5 object mapping guidelines
2000-06-07 11:57:19 -05:00
Frank Baker
8e8550af43 [svn-r2356] Navigational cross-linking fixes within the distributed HDF5 doc set
and from index.html to the HDF5 website.
2000-06-07 11:36:06 -05:00
Frank Baker
837cd6e477 [svn-r2355] XML_DTD.html: Navigational link fixes.
Commented out links to undistributed documents.
2000-06-07 11:25:24 -05:00
Frank Baker
1a00f9fdb0 [svn-r2354] ImageSpec.html: Minor copyedits. Navigational link fixes. 2000-06-07 11:23:00 -05:00
Frank Baker
62bbf9197b [svn-r2353] PSandPDF/index.html
Created separate link sections for "HDF5 Doc Development"
	    web page and distribution versions of this page.
	Edited distribution version of links so that only combined
	    PDF is local and all other links refer to the "HDF5 Doc
	    Development" page.
2000-06-07 11:20:15 -05:00
Frank Baker
14c582131d [svn-r2352] Added .doc/html/PSandPDF/H5-Rx.x.DocSet.pdf 2000-06-07 11:00:45 -05:00
Frank Baker
bb527854d9 [svn-r2351] HDF5 Release 1.2 user doc set (Intro, Tutorial, UG, RM) in PDF format. 2000-06-07 10:58:17 -05:00
Albert Cheng
b953406a86 [svn-r2349] updated. 2000-06-07 08:58:26 -05:00
Albert Cheng
e37d221818 [svn-r2347] Regenerated since h5dumptst.c has been changed. 2000-06-06 14:46:35 -05:00
Albert Cheng
1cf1e4f5a1 [svn-r2346] Changed the generation of the nested compound types routine.
It now uses the standard data for the file type.  Also, C char
is actually an integer type.  The old code treated it as a null
terminated String was a potential error.  Changed the file type
for that case to STD_I8BE for now.  May come back later to really
make that field as string type.
2000-06-06 14:46:10 -05:00
Frank Baker
51d2cdb1d0 [svn-r2338] Updating structural cross-links within doc set. 2000-06-05 10:44:34 -05:00
Frank Baker
23118eb6b6 [svn-r2337] HeapMgmt.html, LibMaint.html, ObjectHeader.html, and SymbolTables.html:
Correcting "Last modified" date.
2000-06-05 10:36:56 -05:00
Frank Baker
6daa7625b3 [svn-r2336] Updating files used in creating PDF version of HDF5 doc set. 2000-06-05 10:32:05 -05:00
Frank Baker
4d1ff63f4a [svn-r2335] RM_H5.html: Added H5garbage_collect. 2000-06-02 17:20:23 -05:00
Frank Baker
6dae18b993 [svn-r2334] MANIFEST: Added the following documentation files:
./doc/html/ADGuide.html
	./doc/html/ImageSpec.html
    Removed ./doc/html/Palettes.html
2000-06-02 17:17:20 -05:00
Frank Baker
2acc920eef [svn-r2333] index.html: Minor editing and reformatting.
Added release number.
	Added "HDF5-File.dtd" link to "HDF Links at NCSA."
	Labeled main portion as "HDF5 User Documentation."
		Added "HDF5 Application Developer's Guide."
		Added "XML DTD for HDF5: Design Notes."
	Created "HDF5 Library Development Documentation" section.
		Includes "HDF5 File Format Spec."
		Includes "HDF5 Technical Notes."
2000-06-02 17:11:52 -05:00
Frank Baker
f84e5cbb84 [svn-r2332] Copyright.html: Added '2000' to list of copyright years. 2000-06-02 17:04:14 -05:00
Frank Baker
7398f8c885 [svn-r2331] H5.intro.html: Fixed confusing reference(s) to "simple datatypes." 2000-06-02 17:03:23 -05:00
Frank Baker
6ff669ade2 [svn-r2330] RM_H5Front.html -- Minor reformatting.
RM_H5A.html -- H5Aiterate: Changed function type to herr_t.
RM_H5F.html -- H5Freopen: Corrected description of file_id parameter.
	    Added comment about eventually closing returned identifier.
	    Added clarification that function cannot open closed files.
RM_H5T.html -- H5Tget_class:  Removed numbers from class identifiers list.
	    Added H5T_VLEN to class identifiers list.
2000-06-02 17:02:04 -05:00
Frank Baker
a8bc29e611 [svn-r2329] RM_H5P.html: Minor copy-editing and formatting fixes.
H5Pget_chunk: Changed max_ndims parameter description to IN.
	H5Pget/set_gc_references: Corrected signature errors,
	    added missing parameter description and values.
	H5Pget/set_family:  Removed.  These are not implemented.
	H5Pget/set_hyper_cache: Corrected signature and parameter
	    expressions, added missing parameter description.
	H5Pset_buffer:  Added units for parameter 'size'.RM_H5P.html
	H5Pget/set_split:  Corrected misnamed parameters.
	H5Pset_alignment and H5_set_core:
	    Edited for clarity.
	    Added statement regarding "special case" effect of
	    setting 'threshold' to 0 (zero).
	    Stated clearly that 'threshold' is non-negative and
	    'alignment' and 'increment' are both positive.
	H5Pget/set_vlen_mem_manager:
	    Corrected cross-ref to H5Dvlen_reclaim.
	    Minor clarification regarding circumstances under which
	    contents of a parameter are ignored.
	H5Pget_cache: Removed redundant material.
2000-06-02 16:58:20 -05:00
Frank Baker
c4426337ff [svn-r2328] H5.user.html: Minor reformatting.
Removed old "Developer Docs" section to move to "HDF5 Tech Notes."
Datatypes.html:  Minor edits.
	Fixed confusing references to "simple datatypes."
Attributes.html
	H5Aiterate: Changed function type to herr_t.
2000-06-02 16:56:50 -05:00
Frank Baker
de8cefbe98 [svn-r2327] ADGuide.html: 'Front page' for new 'HDF5 Application Developer's Guide'. 2000-06-02 16:53:08 -05:00
Frank Baker
e37be3b36a [svn-r2326] ImageSpec.html: Replaces Palettes.html. Major rewrite for Release 1.2.2.
Moved from UG to 'HDF5 Application Developer's Guide'.
2000-06-02 16:50:19 -05:00
Frank Baker
ed4403336c [svn-r2325] Palettes.html: Removed. Replaces with ImageSpec.html. 2000-06-02 16:48:04 -05:00
Frank Baker
a9a0190c1f [svn-r2324] MANIFEST: Added 3 files regarding HDF5 File XML DTD:
./xml_dtd/HDF5-File.dtd
	./doc/html/XML_DTD.html
	./doc/html/XML_DTD/DesignNotes.html
2000-06-02 13:55:24 -05:00
Frank Baker
3b121997e0 [svn-r2323] XML_DTD/DesignNotes.html: Revision of 28 April 2000 2000-06-02 11:02:24 -05:00
Frank Baker
d2b108ea23 [svn-r2322] XML_DTD/DesignNotes.html: Design notes for HDF5 File XML DTD.
(original version)
2000-06-02 11:01:23 -05:00
Frank Baker
b75fee618e [svn-r2321] XML_DTD.html: Overview page for developers listing and linking to
several XML_DTD docs.
2000-06-02 11:00:33 -05:00
Quincey Koziol
71fb1d5ff0 [svn-r2319] Patched "print_stats" routine parameters for machines with no getrusage() call.
(Like the Crays)
2000-06-02 09:30:53 -05:00
Quincey Koziol
7659424cc8 [svn-r2316] Close a small memory leak in the test program (not library). 2000-06-01 18:42:03 -05:00
cvs2svn
4ee39d737c [svn-r2314] This commit was manufactured by cvs2svn to create branch 'hdf5_1_2'. 2000-05-31 12:37:17 -05:00
Patrick Lu
8130eaff8f [svn-r2313] added a function to create the bitfields test file.
taken from the dset test file
2000-05-31 12:36:38 -05:00
Patrick Lu
71b68698a8 [svn-r2312] made the dumper print out the bitfield data using the tools lib 2000-05-31 12:34:29 -05:00
Patrick Lu
5744c37769 [svn-r2311] same changes as on the dev side.
release-added note about opaque and bitfield types being supported now
manifest added files for the bitfield tests
2000-05-31 12:33:46 -05:00
Patrick Lu
c9c9bf881b [svn-r2303] made the ddl reflect the current output format for the compound types 2000-05-30 11:49:44 -05:00
Patrick Lu
f7edcdc98f [svn-r2302] fixed the output of the nested compound types so the closing curly brace is
aligned with the opening brace.
2000-05-30 11:48:15 -05:00
Patrick Lu
192cf585d0 [svn-r2301] removed the -xml option from the usage statement 2000-05-30 11:39:51 -05:00
Patrick Lu
cb783c37a3 [svn-r2300] changed the name of the FILE macro to be FILENAME. wasn't compiling for
the dev so brought changes to rel
2000-05-30 11:34:04 -05:00
Patrick Lu
be52f2bc73 [svn-r2299] removed the xml option and put in info about the obj id and the width option
this was already done in the dev but needed it in the rel
2000-05-30 11:09:01 -05:00
Quincey Koziol
10ccf05000 [svn-r2295] Patched to detect FreeBSD 4.x correctly 2000-05-26 14:44:17 -05:00
Elena Pourmal
61cb182481 [svn-r2283]
Changed H5_VERS_SUBRELEASE to snap1.
2000-05-19 15:24:27 -05:00
Patrick Lu
625439cc9f [svn-r2282] the same changes that were made for the dev branch 2000-05-19 11:00:17 -05:00
Patrick Lu
5aac77ae03 [svn-r2281] same changes i just made for dev 2000-05-19 10:59:07 -05:00
Albert Cheng
807864b6ce [svn-r2270] Problem: When --srcidr is used with configure, it creates the .distdep
file in $srcdir.  This may make other hosts that are running
--srcdir in paralle get confused.  Changed the creation of .distdep
happen only when -srcdir is NOT used.
2000-05-18 23:16:57 -05:00
Albert Cheng
ee7fb27f9b [svn-r2269] updated. 2000-05-18 19:14:16 -05:00
Robb Matzke
a43b8cd780 [svn-r2267] Minor change for 64-bit libs 2000-05-18 14:47:05 -05:00
Robb Matzke
60a2da988d [svn-r2266] Minor change for 64-bit libs 2000-05-18 14:47:04 -05:00
Robb Matzke
1560984302 [svn-r2265] *** empty log message *** 2000-05-18 14:46:51 -05:00
Robb Matzke
fecde2d176 [svn-r2263] * 2000-05-18
** src/H5Tconv.c		[1.2,1.3]
** src/H5Tpkg.h			[1.2,1.3]
** src/H5Tpublic.h		[1.2,1.3]
	The H5T_conv_struct_opt() function had a design flaw -- it
	didn't keep information about the stride to use to step
	through the temporary/background-value buffer and thus nested
	invocations would clobber each other's temp buffers.  This was
	fixed by splitting the `stride' argument into `buf_stride' and
	`bkg_stride' arguments for all the conversion functions. THIS
	IS AN API CHANGE, but users will get a compiler warning when
	they pass their conversion function pointer to H5Tregister().

** src/H5T.c			[1.2,1.3]
** src/H5Tprivate.h		[1.2,1.3]
	Added a bkg_stride argument to the H5T_convert() definition in
	order to fix a bug related to the optimized compound datatype
	conversion function.

** src/H5T.c			[1.2,1.3]
** src/H5A.c			[1.2,1.3]
** src/H5D.c			[1.2,1.3]
** src/H5Ofill.c		[1.2,1.3]
** src/H5P.c			[1.2,1.3]
	Added bkg_stride=0 argument to the H5T_convert() calls.

** test/dtypes.c		[1.2,1.3]
	Added a test for the H5T_conv_struct_opt() bug fixed above.
2000-05-18 13:08:22 -05:00
Albert Cheng
ffd07d8f2d [svn-r2260] Updated all these dependant files. 2000-05-17 17:22:19 -05:00
Elena Pourmal
1ed6c1404b [svn-r2258]
Fixed a typo in the H5Pget_gc_references function name (was H5Pget_gc_reference).
2000-05-17 08:25:36 -05:00
Albert Cheng
45c453d75c [svn-r2257] (This had been applied to the development main branch.)
Problem:
   The Makefile target triggers gmake to redo the whole auto-configure
    process if it sees any autoconfigure related files changed.  It causes
    couple problems.  One is that when multiple machines using --srcdir
    are running make, they may detect the changes and launch the autoconf
    at the same time.  These end up as multiple hosts updating the same
    srcdir area together--bad things can happen.  Another one is that
    when one modifies some Makefile.in, then try "make distclean" before
    launching the configure process.  Instead of cleaning things, it
    started a configure, recreate all Makefiles and other files, then
    finally come around to do the distclean--who knows what it cleans
    by now since the Makefile is changed too.  Last problem was that
    this auto-process will launch even for command "gmake -n ...".
Solution:
    Renamed Makefile target to reconfigure so that the auto-checking
    is still available but must be launched explicitedly.  If one
    wishes to have the auto-checking as default, one may do
    alias gmake "\gmake -i reconfigure; gmake \!* ".
2000-05-16 17:21:09 -05:00
Patrick Lu
4bd2ae82f6 [svn-r2255] added an extra conditional to the the for loop in the h5dump_simple_mem
function.  it was entering the loop even when the ndims and i were equal to 0
which shouldnt have happened(only in dangermouse).  didnt know how else to fix
it
2000-05-16 11:26:04 -05:00
Patrick Lu
3bd8b7b023 [svn-r2254] checked in an older version of this file before by accident.
this one has semicolons after the opaque data.
2000-05-15 08:49:46 -05:00
Albert Cheng
5e5aaca007 [svn-r2252] Updated. 2000-05-13 11:10:13 -05:00
Patrick Lu
23c4c575d4 [svn-r2251] added entries for the opaque testfiles and ddl, and the tnestedcomp testfiles and ddl 2000-05-12 12:56:35 -05:00
Patrick Lu
f2b2f98739 [svn-r2250] new files for the release branch. taken from dev branch 2000-05-12 12:53:46 -05:00
cvs2svn
4995633524 [svn-r2249] This commit was manufactured by cvs2svn to create branch 'hdf5_1_2'. 2000-05-12 12:53:46 -05:00
Patrick Lu
9da2236284 [svn-r2248] more update testfiles. come from the dev branch 2000-05-12 12:49:40 -05:00
Patrick Lu
68039896e7 [svn-r2247] these are new testfiles and ddl files. to correspond with the new merged tools lib 2000-05-12 12:41:00 -05:00
Patrick Lu
3f99e35c0a [svn-r2246] needed to add new hdf files to match with the changes done to the dump output 2000-05-12 12:38:05 -05:00
Albert Cheng
2d83c652d5 [svn-r2244] Put in the missing ';' for H5T_OPAQUE printing. 2000-05-11 17:21:35 -05:00
Albert Cheng
bcfdc623e0 [svn-r2241] Removed h5dumputil.c. Its functions have been migrated to h5tools.c. 2000-05-11 17:04:07 -05:00
Albert Cheng
174ac7c316 [svn-r2240] Removed h5findshd.c. Its routines have been moved to libh5tools.c. 2000-05-11 12:23:19 -05:00
Albert Cheng
18ed617aa9 [svn-r2239] Folded all the changes done in version 1.3 into this 1.2 branch
so that all the added features and bug fixes are included in the
release branch.  (Patrick did most of the work.)
2000-05-11 12:17:14 -05:00
Elena Pourmal
89c69c1036 [svn-r2238]
Changes below were done in preparation to the hdf5-1.2.2 release.

Makefile.in    - File was modified to NOT install documentation

configure.in   - Set default flags to  --enable-production --disable-debug --disable-trace
configure      - File was updated by autoconf
2000-05-10 14:54:14 -05:00
Frank Baker
aab3746dca [svn-r2237] Updating doc/html/TechNotes/ directory. Adding "Memory Management and
Free Lists" (FreeLists.html) and "Testing the Chunked Layout of HDF5"
(ChunkingStudy.html and several ChStudy* image files) to the "HDF5
Technical Notes" collection.
2000-05-09 15:51:11 -05:00
Frank Baker
ec7a89ce95 [svn-r2236] Adding "Memory Management and Free Lists" to "HDF5 Technical Notes." 2000-05-09 15:43:59 -05:00
Frank Baker
337ac48c30 [svn-r2234] Edit "Testing the Chunked Layout" entry. Other minor edits. 2000-05-09 15:38:47 -05:00
Frank Baker
101059c31f [svn-r2233] Adding the "Testing the Chunked Layout of HDF5" to "HDF5 Technical Notes." 2000-05-09 15:31:33 -05:00
Patrick Lu
f06026d9c7 [svn-r2231] removed the tools lib dependency from the debug,import and repart tools 2000-05-09 13:08:10 -05:00
Patrick Lu
18f506c636 [svn-r2224] this is the dev version of the external test. fixes a problem on win98
where it is reading garbage in the part of the file that is not written to.
2000-05-09 09:57:18 -05:00
Frank Baker
1d12b5b4bc [svn-r2210] Created and moved files for new "HDF5 Technical Notes" document. 2000-05-02 17:15:30 -05:00
Frank Baker
692202a802 [svn-r2209] pipe1.gif pipe2.gif pipe3.gif pipe4.gif pipe5.gif
pipe1.obj    pipe2.obj    pipe3.obj    pipe4.obj    pipe5.obj
version.gif  version.obj
	Image files for "HDF5 Technical Notes" documents.
	Moved from doc/html/ to doc/html/TechNotes/.
2000-05-01 16:34:30 -05:00
Frank Baker
7749127d80 [svn-r2208] Big.html --> BigDataSmMach.html
Coding.html           --> NamingScheme.html
CodeReview.html
ExternalFiles.html
compat.html           --> H4-H5Compat.html
heap.txt              --> HeapMgmt.html
IOPipe.html
Lib_Maint.html        --> LibMaint.html
MemoryManagement.html
move.html             --> MoveDStruct.html
ObjectHeader.txt
storage.html          --> RawDStorage.html
symtab                --> SymbolTables.html
Version.html
	Above files moved from doc/html/ to doc/html/TechNotes/
	   for into new "HDF5 Technical Notes" document.
	Filenames changed as indicated.
2000-05-01 16:31:11 -05:00
Frank Baker
74f1fc208d [svn-r2207] Opening page for new "HDF5 Technical Notes" document (first draft).
Includes "Free Lists" doc, everything from the old "Developer Docs"
   section of UG, and several previously-unlinked files in doc/html/.
All of the included files (i.e., everything except TechNotes.html
   itself) can now be found in the directory doc/html/TechNotes/.
2000-05-01 16:23:18 -05:00
Frank Baker
184a091c3a [svn-r2206] version.gif version.obj
Files moved to doc/html/TechNotes/ for "HDF5 Technical Notes"
	document.
2000-05-01 16:08:45 -05:00
Frank Baker
3c1776bb6b [svn-r2205] pipe1.gif pipe2.gif pipe3.gif pipe4.gif pipe5.gif
pipe1.obj pipe2.obj pipe3.obj pipe4.obj pipe5.obj
	Files moved to doc/html/TechNotes/ for "HDF5 Technical Notes"
	document.
2000-05-01 16:03:22 -05:00
Albert Cheng
c6bd672556 [svn-r2204] Shared libraries configuration now works fine for IRIX64.
Removed the disable-shared setting.
Tested in modi4.
2000-04-29 16:43:54 -05:00
Frank Baker
609201adf3 [svn-r2203] Files moved to TechNotes/ for new "HDF5 Technical Notes" document. 2000-04-28 14:17:55 -05:00
Frank Baker
d72495873b [svn-r2202] Version.html
IOPipe.html
ExternalFiles.html
Big.html              --> BigDataSmMach.html
MemoryManagement.html
Coding.html           --> NamingScheme.html
compat.html           --> H4-H5Compat.html
CodeReview.html
heap.txt              --> HeapMgmt.html
Lib_Maint.html        --> LibMaint.html
move.html             --> MoveDStruct.html
ObjectHeader.txt
storage.html          --> RawDStorage.html
symtab                --> SymbolTables.html
	Above files deleted from doc/html/ to doc/html/TechNotes/.
	Incorporated into new "HDF5 Technical Notes" document with
	    filenames changed where indicated.
2000-04-28 14:01:14 -05:00
Patrick Lu
43b0506f62 [svn-r2201] i think i updated the project files correctly this time. 2000-04-26 12:48:10 -05:00
Patrick Lu
f8c37d10e2 [svn-r2200] made the line that tells where to extract the hdf5 files into more clear 2000-04-25 12:22:56 -05:00
Patrick Lu
66d9f4326b [svn-r2199] i forgot to check in the updated projects and zip files for the release branch
these changes were to remove the h5tb.c and add h5fl.c to the projects
2000-04-25 11:22:30 -05:00
Albert Cheng
c30f23d573 [svn-r2197] Figure out the whole path of the $CC command if it is in simple
command form (e.g., cc, gcc) and put that in the libhdf5.settings
file.  This would help show exactly which compiler was used during
the configure stage.  It may not be 100% "correct" in some cases
such as "configure done in one machine but compiling done in another."
2000-04-24 15:33:59 -05:00
Quincey Koziol
1266a2b5e8 [svn-r2194] Fixed up differences in how addresses are handled between development and
release branches.
2000-04-22 16:57:16 -05:00
Quincey Koziol
c892e2a7b9 [svn-r2193] Changed hash function for caching to avoid as many hash clashes. 2000-04-22 16:20:27 -05:00
Quincey Koziol
807bf55e48 [svn-r2192] Turned on address sorting when flushing metadata for entire file, which
improves performance significantly when lots of metadata I/O occurs when the
file closes.
2000-04-22 16:20:08 -05:00
Quincey Koziol
dd6986420d [svn-r2188] Added "depend" target to Makefile 2000-04-22 15:36:19 -05:00
Quincey Koziol
64ea85f9b8 [svn-r2187] Re-generated from updated configure.in 2000-04-22 15:34:56 -05:00
Quincey Koziol
34202e19b2 [svn-r2186] Fixed typo in dependencies for tools directory 2000-04-22 15:34:30 -05:00
Robb Matzke
30f8818af4 [svn-r2185] ./src/tools/h5tools.c
Added hyphen to version printf format.

	./src/tools/h5ls.c
		Calls print_version() instead of doing it by hand.
2000-04-21 14:50:39 -05:00
Robb Matzke
cd8b614f83 [svn-r2184] ./src/H5Epublic.h
Removed `do{...} while(0)' to fix compiler warnings.

	./src/H5T.c
		Removed a blank line (wow!)

	./src/H5public.h
		Added some more #undef's

		Removed leading hyphen from H5_VERS_SUBRELEASE

		Changed the subrelease from `pre0' to `snap0'
2000-04-21 14:50:15 -05:00
Robb Matzke
538db3d9b7 [svn-r2183] ./config/conclude.in
Fixed `make uninstall' to remove possible sh syntax
		error.
2000-04-21 14:35:20 -05:00
Robb Matzke
eedec840ff [svn-r2182] ./bin/h5vers
Version numbers include an annotation string consisting of a
		sequence of letters and digits and is printed by this
		script as either:

			1.2.3-pre4
			version 1.2 release 3 (pre4)

		Other tools should print version numbers similarly.

		A `-i annot' switch was added to increment the
		annotation (the first subsequence of digits is what is
		incremented, e.g., `pre9' becomes `pre10').

		The `-i' switch (with no argument) was changed to
		increment the annotation string if present, or the
		release number otherwise.
2000-04-21 14:35:00 -05:00
Robb Matzke
a5a0657220 [svn-r2181] ./RELEASE
./configure.in
		Fixed the bug that caused libhdf5.settings to
		sometimes list the wrong byte-sex.
2000-04-21 14:34:43 -05:00
Quincey Koziol
66278363c4 [svn-r2174] Updated dependency information 2000-04-21 13:47:45 -05:00
Quincey Koziol
7a9e1b6ed9 [svn-r2173] Updated dependency and API tracing information 2000-04-21 13:47:40 -05:00
Quincey Koziol
cfd07017e2 [svn-r2171] Fixed a few typos in FUNC_ENTER macros and return types that Binh-Minh found. 2000-04-21 10:00:33 -05:00
Quincey Koziol
08d7016ab0 [svn-r2170] Sprinkled some AC_CACHE_SAVE's into configure.in and re-ran autoconf 2000-04-20 13:42:16 -05:00
Quincey Koziol
4e4125b49a [svn-r2166] Fixed last batch of problems when using free-lists on the SGI machines. They
should (hopefully) work on all platforms again now.
2000-04-20 11:47:08 -05:00
Quincey Koziol
77b9fa488e [svn-r2161] Modified B-tree splits so they avoid the redundant metadata I/O which was
occurring when moving a metadata block in the file.
2000-04-19 17:54:56 -05:00
Quincey Koziol
e2f1274922 [svn-r2160] Added note about improved metadata I/O 2000-04-19 17:54:31 -05:00
Quincey Koziol
e13a5f7747 [svn-r2152] Modified H5_term_library to not reported errors when H5Eset_auto(NULL,NULL)
has turned off error reporting in the library.
    Also, changed the way property lists are managed and closed so that they
can be automatically closed when the library terminates.
2000-04-15 15:28:39 -05:00
Quincey Koziol
5cef4102cd [svn-r2148] Corrected a few problems in the free-list code and added more assert() macros
to double-check things.  I've turned them back on again now.  I also changed
the internal representation of a few struct fields to be float instead of
double, since the HP/UX 10.20 compiler was having problems with the alignment
of the doubles.
2000-04-14 14:08:58 -05:00
Quincey Koziol
e4579cb725 [svn-r2135] Tested H5Screate_simple & H5Sset_extent_simple disallowing
size 0 dimensions without corresponding unlimited dimension.
2000-04-12 17:08:11 -05:00
Quincey Koziol
6039064e30 [svn-r2134] Changed H5Screate_simple & H5Sset_extent_simple to disallow
size 0 dimensions without corresponding unlimited dimension.
2000-04-12 17:07:58 -05:00
Quincey Koziol
e713b35a05 [svn-r2133] Documented change of H5Screate_simple & H5Sset_extent_simple to disallow
size 0 dimensions without corresponding unlimited dimension.
2000-04-12 17:07:45 -05:00
Quincey Koziol
4ee7f4c17b [svn-r2129] Changed test slightly to reflect change in return type for H5Aiterate. 2000-04-12 16:12:48 -05:00
Quincey Koziol
03cfc650ae [svn-r2128] Changed return type of H5Aiterate and the H5A_operator_t to herr_t, to align
them with the dataset & group iterator functions.
2000-04-12 16:12:35 -05:00
Quincey Koziol
8e7d389194 [svn-r2127] Documented change to H5Aiterate and H5A_operator_t for next release. 2000-04-12 16:12:12 -05:00
Quincey Koziol
b91b42eb70 [svn-r2123] Fixed small problem with va_arg & shorts and floats in HDfprintf. This closes
bug #401.
2000-04-12 14:48:12 -05:00
Quincey Koziol
11164f5006 [svn-r2121] Added test for error in which groups with more than one level of B-tree nodes
and callback functions which returned non-zero were not working correctly.
2000-04-12 10:45:35 -05:00
Quincey Koziol
ddc4a7f061 [svn-r2120] Fixed error which manifested in H5Giterate, causing groups with more than one
level of B-tree nodes and callback functions which returned non-zero to not
work correctly.
2000-04-12 10:45:22 -05:00
Quincey Koziol
5dabd38529 [svn-r2119] Added note about H5Giterate bug fix. 2000-04-12 10:45:08 -05:00
Quincey Koziol
080d11b2ad [svn-r2113] Documented hyperslab bug fix for next release. 2000-04-11 13:27:41 -05:00
Quincey Koziol
b925cf014d [svn-r2111] Added random generator of 5-D hyperslabs to tests. 2000-04-11 13:24:00 -05:00
Quincey Koziol
a8dcaf9b21 [svn-r2109] Re-wrote a good chunk of the hyperslab code to work correctly in several
situations which weren't tested before.  Things should be both faster and
easier to understand in this code now.
2000-04-11 13:23:03 -05:00
Quincey Koziol
4ef9ffba8a [svn-r2107] Fixed small bug where we were reading a value out of a piece of memory we'd
just free'd.  A small bug, but it will cause problems in a threaded
environment.  (And it was filling up the purify logfile with junk.. :-)
2000-04-11 13:20:52 -05:00
Quincey Koziol
2d8919bf73 [svn-r2104] Turned off the free lists until I can debug them on the platforms they are
failing on...
2000-04-10 13:41:15 -05:00
Quincey Koziol
3b321da550 [svn-r2103] Checking in newer version of free-list code with easy way to turn off the
free-lists for the library.  To turn off the free-lists, edit H5FL.c and
uncomment the "NO_FREE_LISTS" macro definition near the top of the file.
(Or define the macro during compile time)
2000-04-10 13:40:27 -05:00
Quincey Koziol
aaa28b3af6 [svn-r2096] Added test to check for correct staggered hyperslab iteration. 2000-04-07 15:39:37 -05:00
Quincey Koziol
a1fa7989a3 [svn-r2095] Fixed error in iterating through hyperslabs in certain situations where
hyperslabs were staggered in the dataset.
2000-04-07 15:38:47 -05:00
Quincey Koziol
4618e1f1fd [svn-r2094] Logged hyperslab bug fix. 2000-04-07 15:38:10 -05:00
Frank Baker
70e48f28e5 [svn-r2093] RM_H5D.html
H5Dclose: Corrected return type to herr_t (was hid_t).
	H5Dcreate: Inserted missing spaces in function syntax statement.
RM_H5E.html
	H5Ewalk: Added H5E_walk_t prototype and prototype parameter
	    descriptions.
RM_H5F.html
	H5Fclose: Corrected behavior description, eliminating
	    comment that function fials if other access identifiers
	    are still open and describing actual behavior.
RM_H5T.html
	H5Tget_class: Corrected H5T_ENUM and H5T_REFERENCE entries in
	        class identifiers table (they were reversed).
        H5Tregister:  Corrected possible 'pers' values to H5T_PERS_HARD
            (was HARD) and H5T_PERS_SOFT (was SOFT).
        H5Tfind: Corrected 'pcdata' parameter IN/OUT designation.
2000-04-07 14:46:47 -05:00
Frank Baker
14a07c3f3e [svn-r2092] Datasets.html
Removed H5Pset_compression (commented it out, actually) and
	changed example which used it to use H5Pset_deflate.
H5.format.html
	Fixed centered paragraph formatting error and moved first two
	figures to right margin.
FF-IH_FileGroup.gif  ('File-Group' image for Format Spec)
	Changed 'Boot Block' to 'Super Block'.
2000-04-07 14:45:08 -05:00
Albert Cheng
34ee6f291f [svn-r2085] Added back the two lines of doc/html/PSandPDF/* which were
removed by my mistakes.
2000-04-05 19:29:03 -05:00
Albert Cheng
62058bd123 [svn-r2083] Updated. 2000-04-05 17:06:49 -05:00
Quincey Koziol
3852f53432 [svn-r2079] Added additional group & attribute iteration tests. 2000-04-05 15:50:53 -05:00
Quincey Koziol
fd441eff15 [svn-r2078] Fixed a problem in H5Giterate which was not updating the 'index' paramater for
certain return values from the callback.
2000-04-05 15:50:36 -05:00
Quincey Koziol
2225575b58 [svn-r2077] Added information about the H5Giterate bug fixed & added the new test module
(test/titerate.c) to the MANIFEST
2000-04-05 15:49:58 -05:00
Quincey Koziol
f0c798fe15 [svn-r2075] Updated to add free-lists and H5garbage_collect() API function. 2000-04-04 16:12:45 -05:00
Quincey Koziol
d8939f458f [svn-r2072] Added free-list code to the library and took out the older "temporary buffer"
code, since the functionality was superceded.  See the followup document for
details on the free-list code.
2000-04-04 15:59:07 -05:00
Albert Cheng
45d7af1ab5 [svn-r2071] Changed it to use a different directory to do snapshots work
from the development branch.  This allows them to run independently.
The release feature is temporary turned off--needs some work to
separate this release branch from the development branch.
2000-04-04 12:02:53 -05:00
Albert Cheng
e6da7868e5 [svn-r2068] Folded the changes made to 1.3 into 1.2 branch also.
chkmanifest:
    Print a message when all is well.
release:
    Moved the MANIFEST checking to a separate command file (chkmanifest)
    so that it can be invoked individually.
    Make sure new file created in the FTP area have all readiable bits
    on.  This does not dictate the accessibility at the NCSA FTP sites
    which use AFS ACL.  Just to make it complete.
snapshot:
    Folded all the chanages between 1.24 to 1.32 into the version 1.2.x
    branch.
2000-04-03 22:06:28 -05:00
Albert Cheng
4e2b98c19f [svn-r2064] Updated. 2000-03-30 20:27:10 -05:00
Albert Cheng
84cefb6311 [svn-r2063] Purpose:
Configuration improvement

[These changes were done to the 1.3 branch first.  I am folding to
the 1.2 branch too.]

Problem:
Arabica has a zlib library that is a dynamic lib in /usr/ncsa/lib.
Binary generated would fail to run with a missig libz.so complain
if /usr/ncsa/lib is not in $LD_LIBRARY_PATH.  This exposed the
problem that if the binary is linked with -L$mylibpath -lxyz
where libxyz is a dynamic type, the binary can't run if $mylibpath
is not in $LD_LIBRARY_PATH (or equivalent) or as part of the
system default library paths (e.g., /usr/lib, /usr/local/lib).
This problem also caused failures during configure (when trying
to see what format to print long long) and during H5detect.
The base cause is because libtool does not "transfer" the
knowledge of -L$mylibpath to the wrapper file its mode=link
generates.

Solution:
bin/ltmain.sh:
    Changed it so that it transfers the libpaths from -Llibpaths
    to the wrapper generated.  I used the already defined variable
    finalize_shlibpath.  Not sure it is correct to use it this way.
    Need to check on this.
configure.in:
    Put in a patch to transfer information from LDFLAGS to LD_LIBRARY_PATH
    right before the AC_TRY_RUN.  The above fix for ltmain.sh does not
    work here because libtool is generated later than this point.
    There should be a cleaner way to do this.
    Removed the hardcode of NCSA_LT_LINK_EXE because it is no longer
    needed.
    Also changed the parsing of --enable-debug option to case statement
    style instead of it-then-else.  It makes it easier to understand
    and easier to change the defaults of it.
configure:
    Derived from configure.in.
src/Makefile.in:
    Another patch of LDFLAGS to LD_LIBRARY_PATH because I could not
    make it to generate H5detect in the wrapper form of libtool.
    Need to make it to use the libtool correctly. Later.

Platform tested:
arabica (solaris 2.7)
2000-03-30 20:22:36 -05:00
Albert Cheng
efe70a0ee6 [svn-r2060] Configure.in:
Changed the defaults of enable-production to off (-g on),
    enable-debug to on and enable-trace to on.  They should
    be switched to on, off and off respectively when it is time
    for a release, and then switched back.  Yes, lots of work but
    the debugging helps finding bugs and slows down the speed.
configure:
    Derived from configure.in by autoconf.
Platforms tested:
    IRIX64 (modi4) and Solaris 2.6(baldric).
2000-03-26 09:41:57 -05:00
Elena Pourmal
d5a38ca39d [svn-r2055]
RELEASE file was brought up to date.
This file is under construction for 1.2.2 release. All major changes done to the 1_2 branch
MUST be reflected in one of the following sections of this file
                         * bug fixes
                         * known problems
                         * platfoms tested  (if you decide to port 1_2 to IBM360 for example)

HISTORY file was brought up to date. It contains release information for
HDF5 1.2.0 and 1.2.1 along with the historical changes to Alpha and Beta
versions of HDF5 1.0.X.
2000-03-23 16:12:23 -05:00
Albert Cheng
32fef032e7 [svn-r2053] H5I_dec_ref was returning 1 instead of FAIL when it failed.
Fixed.
2000-03-23 11:24:27 -05:00
Patrick Lu
20ca60f32b [svn-r2039] update the big fixes since hdf5-1.2.1 to show that hte committed type error
was fixed.
2000-03-20 10:27:40 -05:00
Patrick Lu
ec4958bc11 [svn-r2038] removed the known bug saying that the committed type is not displayed correctly. 2000-03-20 10:09:04 -05:00
Patrick Lu
824ee2edd2 [svn-r2037] put the changes from the development branch that fixed the error with
the committed types.  the error was that committed types were not being
printed in the dump output.
2000-03-19 14:59:39 -05:00
Albert Cheng
f4687bcf61 [svn-r2025] Updated. 2000-03-13 11:58:32 -05:00
Quincey Koziol
5f1b5a48fc [svn-r2021] Back-ported changes from 1.3 branch, to set the CC major, minor & release
version information portably.
2000-03-10 12:55:03 -05:00
Albert Cheng
e1eaeac4b4 [svn-r2010] Updated with bug fixes information that I know. 2000-03-08 21:26:32 -05:00
Albert Cheng
13499b289b [svn-r2008] Purpose
Bug fix.
Description
    When converting a floating point zero to a different format (e.g. Cray),
    the mantissa part was not set to zeros complete.  Cray does not
    seem to mind since the exponent part was set to all 0's.  Somehow,
    the HDF4 does not like it and convert that pattern to a non-zero
    value in IEEE.
Solution
    corrected the code to set the whole mantissa to zeros completely.
Platform tested:
    J90 & Solaris 2.6.
2000-03-08 18:25:06 -05:00
Albert Cheng
4d42626054 [svn-r2000] Purpose:
Bug fix.
Description:
    Failed on T3E in which int32 is typedef to a short (4 bytes)
    but the converter just used H5T_NATIVE_INT for conversion of
    a STD_INT32.  Int in a T3E is actually 64bit big.
Solution:
    Recoded the h5type to h4type matching algorithm by making sure
    the size of the H4 type used is equal to the size of the
    H5 native type.
    Remark: current implementation is not efficient--it does all
    the sizes checking repeatedly.  Should have done the type mapping
    once at the beginning as initialization.
    Old code are still retain via the macro NEWWAY.  Need to verify
    the correctness of the converter in more platforms before
    finalized on the code.
Platforms tested:
    Baldric (Solaris 2.6), arabica (Solaris 2.7)
    T3E
2000-03-06 18:02:37 -05:00
Albert Cheng
99a30e1e60 [svn-r1998] Adjusted the library version information to identify this as
development version.  Got to remember doing this immediately
after a formal release.
2000-03-03 20:19:19 -05:00
Albert Cheng
0cba6a50e0 [svn-r1997] Removed the copying of Makefile.dist because it is causing problems
when "distclean" is run if --srcdir was used.
2000-03-03 18:05:55 -05:00
Elena Pourmal
a8f2f173e2 [svn-r1991]
Problem: Example did not define string datatype correctly for one of                                      the attributes. H5Tset_strpad call was missing.                                                                                                                                          This fix closes bug #323.
2000-02-24 17:15:54 -05:00
Patrick Lu
3624c090c2 [svn-r1987] same changes that i made to the development release. fixed the error with the
meory alignments.
2000-02-23 15:21:05 -05:00
Barbara Jones
6d1910d0b5 [svn-r1964] Added 2000 to the copyright dates 2000-02-16 12:25:51 -05:00
Quincey Koziol
d174e73c3f [svn-r1943] Fixed bug which was not allowing the "start_point" parameter to
H5Sget_select_elem_pointlist to actually get used.  It was always returning a
list of points selected which started with the beginning of the list of points.
2000-01-21 17:32:10 -05:00
Quincey Koziol
06e0e761de [svn-r1931] Reversed the order that hyperslab blocks are added to the internal list of
block to reduce amount of memory moving required.  This corrects the
exponential increase in time to add blocks for larger numbers of blocks.
2000-01-06 12:00:44 -05:00
Elena Pourmal
3c073e1a60 [svn-r1922]
Changed date to December 21, 1999
1999-12-21 12:28:32 -05:00
Elena Pourmal
01102e10e4 [svn-r1921]
RELEASE me file was updated for HDF5-1.2.1 release.
1999-12-21 08:50:40 -05:00
Elena Pourmal
77ed8d5efb [svn-r1920]
Changed version number from 1.2.0 to 1.2.1
1999-12-20 16:24:04 -05:00
Albert Cheng
0b1dd95190 [svn-r1913] Set ready for 1.2.1 release by removing the "1.2.1-pre1" heading. 1999-12-20 09:49:15 -05:00
Albert Cheng
de5230d94c [svn-r1911] Document a fix to bypass a make problem in Janus. 1999-12-20 09:21:57 -05:00
Frank Baker
45ebe9c661 [svn-r1910] Corrected link to HDF5 FTP archives. 1999-12-18 22:25:25 -05:00
Frank Baker
6c5d5aa9e9 [svn-r1909] Fix spelling error. 1999-12-18 21:47:44 -05:00
Frank Baker
d85fe56bf4 [svn-r1908] PSandPDF/index.html
Added H5Dopen item to "Significant Changes in R1.2.1 Doc Set."
1999-12-18 21:45:35 -05:00
Frank Baker
79a3cec4bd [svn-r1907] RM_H5D.html H5Dopen: Corrected description of 'loc_id' parameter.
H5.intro.html   Added paragraph stating that changes in bugfix releases
	        are listed in the RELEASE, HISTORY, and README files.
1999-12-18 21:30:04 -05:00
Albert Cheng
de91bbab6d [svn-r1906] Setup correct release version information by setting SUBRELEASE to
empty.
1999-12-17 18:05:53 -05:00
Frank Baker
493af3568d [svn-r1905] Added ./doc/html/PSandPDF/index.html (public document) and
./doc/html/PSandPDF/process.txt (an internal document).
1999-12-17 17:36:06 -05:00
Frank Baker
e9d23dd377 [svn-r1904] Moved H5.user.PrintGen.html and H5.user.PrintTpg.html from public
(distributed) to private (not distributed) section.
1999-12-17 17:34:11 -05:00
Frank Baker
d2989de850 [svn-r1903] index.html
Provides user access to PS and PDF versions of documents.
	This first checked-in version links to PS and PDF copies of the
	Rel 1.2 docs and lists the technical changes that were made to
	create the Rel 1.2.1 docs.
process.txt
	An internal document listing the steps required to create the PS
	and PDF versions.
1999-12-17 17:24:46 -05:00
Albert Cheng
bc69458a6d [svn-r1902] Update the Parallel HDF5 instruction for release 1.2.1. 1999-12-17 17:17:00 -05:00
Frank Baker
1dc7260d8a [svn-r1901] Update version to 'HDF5 Release 1.2.1' or 'HDF5 Release 1.2.x'. 1999-12-17 14:26:03 -05:00
Frank Baker
1be0e51101 [svn-r1896] RM_H5T.html
Datatypes.html
	H5Tget/set_fields:  Added spos parameter.  (RM_H5T.html only)
	H5Tconvert:  Added plist_id parameter.  (Both)
	    (Datatypes.html may still need explanatory text.)
1999-12-17 10:49:50 -05:00
Frank Baker
b39406d969 [svn-r1895] Tools.html h5dump: Added -V option.
Glossary.html      selection: added 2nd definition.
Filters.html       Added reference in section 4 to zlib website.
1999-12-17 10:48:10 -05:00
Frank Baker
00e5ea26b6 [svn-r1892] RM_H5S.html
H5Sselect_hyperslab, H5Sget_select_elem_pointlist,
	H5Sget_select_bounds:
	    Inserted missing punctuation and missing space between words.
	H5Sget_simple_extent_dims:  Added statement that either or both of
	    'dims' and 'maxdims' may be NULL.
1999-12-17 10:44:32 -05:00
Frank Baker
e4dc804d30 [svn-r1891] RM_H5G.html H5Giterate: Corrected H5G_operator_t to read H5G_iterate_t.
Minor corrections to H5G_iterate_t prototype syntax.
	         Added note that H5Giterate's behavior is undefined if
                   the group structure or membership changes.
1999-12-17 10:42:52 -05:00
Frank Baker
d0505ef917 [svn-r1888] RM_H5F.html H5Fcreate, H5Fopen: Clarified description of file access flags
in parameters section and removed reference to H5Fpublic.h.
RM_H5D.html    H5Dvlen_reclaim: Inserted missing punctuation.
	       H5Dcreate: Added paragraph explaining that 'name' must be unique.
1999-12-17 10:37:56 -05:00
Frank Baker
a1e336f860 [svn-r1887] RM_H5P.html
H5Pset/get_cache: Added missing rdcc_nelmts parameter.
	    Corrected inconsistent references to rdcc_wo parameter.
	    Clarified Purpose and Description sections.
 	H5Pget_sec2:  Corrected return type from 'returntype' to 'herr_t'.
1999-12-17 10:35:14 -05:00
Frank Baker
1aaa020c4c [svn-r1884] RM_H5.html H5check_version: Grammar correction.
RM_H5A.html    H5Acreate: Restructured and expanded the Description section,
 	       with particular attention to the fact that the attribute name
	       specified in H5Acreate must be unique.
1999-12-17 10:31:07 -05:00
Frank Baker
36c33298f0 [svn-r1877] index.html
Added link to PS/PDF version.
	Minor formatting changes.
1999-12-14 14:02:18 -05:00
Frank Baker
032537f13a [svn-r1876] Datatypes.html
Formatting fixes found in the process of creating PS/PDF version.
1999-12-14 14:01:34 -05:00
Frank Baker
42f49894fc [svn-r1875]
HDF5 Reference Manual
	Backs out FORTRAN API info. (It was checked into wrong tree.)
	Retains minor edits and formatting fixes that were made while
	   inserting FORTRAN.
1999-12-14 09:45:34 -05:00
Albert Cheng
fea8f05ec9 [svn-r1872] Changed it to indicate it is v1.2.1-pre1 release. 1999-12-10 16:23:39 -05:00
Albert Cheng
c94a6b3b11 [svn-r1871] Changed it to indicate as v1.2.1-pre1 release. 1999-12-10 16:23:20 -05:00
Albert Cheng
b0b8ffb720 [svn-r1869] h5dump.c:
Added -V option for displaying version information.
h5tools.c:
    Added print_version routine to display version information.
h5tools.h:
    Added print_version prototype.
1999-12-10 15:43:59 -05:00
Albert Cheng
eea5f9cb3f [svn-r1867] Added a new component, H5_VERS_SUBRELEASE, to the release information.
It is for all those pre-release situations like alpha, beta, pre-n, ...
In normal releases, it should be an empty string.
1999-12-10 15:04:24 -05:00
Patrick Lu
29a4de7786 [svn-r1866] getting rid of the changes i just made. 1999-12-10 11:10:22 -05:00
Patrick Lu
20f2faee42 [svn-r1865] fixed the commited datatype error 1999-12-10 10:21:31 -05:00
Albert Cheng
e83cdf402f [svn-r1862] The old way of testing **argv against NULL would cause coredump in
some machines.  Changed it to use argc to control the looping.
Still need to clean some more.
1999-12-09 18:53:21 -05:00
Robb Matzke
767ac8d994 [svn-r1860] ** src/H5T.c
Fixed a bug with enumeration types not having the correct object
	header pointer.

** src/H5public.h
	Added #undef for SIZEOF___INT64 to fix namespace clash with DMF.
	This has been completely fixed in hdf5-1.3.x.
1999-12-09 06:17:42 -05:00
Quincey Koziol
f725d4d7f7 [svn-r1856] Fixed error in decoding hyperslab regions for dataset region references.
Data is ok in the file, just mixed up when trying to dereference the region.
1999-12-07 14:44:33 -05:00
Robb Matzke
5fd0eb61c8 [svn-r1828] Added some #undef tweaks to make this work when hdf5 is used by other
applications that use autoconf. These are the same changes that were
made to the 1.3 branch while the 1.2 branch was frozen.
1999-11-04 11:41:53 -05:00
Frank Baker
c276782ca3 [svn-r1827] Added Fortran90 API functions for Release 1.2 Fortran90 prototype. 1999-11-04 10:32:11 -05:00
Albert Cheng
7e241b3dd0 [svn-r1825] Updated 1.2 version with the 1.3 version.
Also added "uname" to have some ready identification.
Removed some lines that are commented already
1999-11-04 01:46:19 -05:00
Albert Cheng
b2584c5cc1 [svn-r1824] fixed a typo. 1999-11-03 19:30:03 -05:00
cvs2svn
f097a45ad4 [svn-r1822] This commit was manufactured by cvs2svn to create branch 'hdf5_1_2'. 1999-11-03 19:28:59 -05:00
Albert Cheng
3f365c17af [svn-r1821] Updated with added file. 1999-11-03 19:28:38 -05:00
Albert Cheng
b6ea860b0f [svn-r1819] Updated with deleted file 1999-11-03 19:24:00 -05:00
Albert Cheng
ff3926a2d7 [svn-r1817] Testpar have been integrated. File no longer needed. 1999-11-03 19:22:46 -05:00
Albert Cheng
fce67a5a0a [svn-r1810] Purpose:
New feature
configure.in:
    When just --enable-parallel is used, will try to test if MPI and MPI-IO
    library codes are linkable.  If not, try -lmpi and -lmpio as the most
    commonly used library names for them.
    Also, set default value for RUNPARALLEL if not set.
    Now, for systems, like SGI Crays where there are the system supported
    MPI libraries, "./configure --enable-parallel" would configure
    correctly.
Configure:
    Derived from configure.in via autoconf.
Platform tested:
    SGI O2K.
1999-11-02 22:16:35 -05:00
Albert Cheng
932526243d [svn-r1808] Fixed a missing line continuation backslash. 1999-11-02 21:51:12 -05:00
Albert Cheng
f11c7e8842 [svn-r1803] [folded in changes made to v.1.3.]
Purpose:
    Bug fix.
Description:
    If the H4DUMP (hdp) is not executable for some reasons (e.g., not
    in $PATH), it produced zero sized files.  The test script did not
    detect the abnormality but compared the zero sized files the same
    and concluded the test passed.
Solution:
    Test if H4DUMP can produce valid output.  If not, print warning
    messages.  Also check the size of output files to make sure they
    are reasonably valid.
1999-11-01 23:31:36 -05:00
Barbara Jones
297b9f0b59 [svn-r1781] Changed platforms supported list. 1999-10-18 10:13:28 -05:00
Frank Baker
a23812a6d0 [svn-r1780] Added ./doc/html/Performance.html. 1999-10-18 05:26:26 -05:00
Frank Baker
3993c1a685 [svn-r1779] Added Performance.html 1999-10-18 05:21:56 -05:00
Frank Baker
e624c7e728 [svn-r1778] Completed the first version. Now linked into doc set. 1999-10-18 05:02:46 -05:00
Frank Baker
4a42e6e12e [svn-r1777] H5.format.html
Technical changes and major additions in B-tree node discussion.
	New tables and text for enumeration datatypes.
	Added links to other docs, in the header and footer. Reformatted TOC.
1999-10-18 05:01:32 -05:00
Frank Baker
90ab4c42b7 [svn-r1776] H5Gget_obj_info: Fixed datatype of struct element. 1999-10-17 15:48:17 -05:00
Frank Baker
044a84e972 [svn-r1775] HDF5 User's Guide files
Added Performance.html to TOC lists.
 	Made "data type" and "datatype" consistently one word.
1999-10-17 15:41:58 -05:00
Frank Baker
db3fa8951d [svn-r1774] index.html
Added links to
		HDF5 Overview (slide show on HDF web server)
		HDF5 Tutorial (within distributed docs)
		HDF5 Glossary
		HDF5 Docs, Bugs in This Release and Snapshot
		  of Next Release (on HDF web server)
		PDFs of HDF5 docs "available mid-11/99"
	Minor formatting changes.
	Consistent title for "HDF5 File Format Specification"
1999-10-17 15:36:27 -05:00
Frank Baker
ebd8bee9d7 [svn-r1773] H5.intro.html
Added "Working with referecences to objects" and "Working with
	  references to dataset regions" from Tutorial.
	Revised "Limitations of Current Release," "Changes in Current
	  Release," and some of the introductory paragraphs (:.
	Other minor edits and formatting fixes.
1999-10-17 15:34:01 -05:00
Frank Baker
bcf445038d [svn-r1772] Performance.html
New UG chapter.  Chunking pointer; brief Pablo discussion and pointer.
1999-10-17 15:29:44 -05:00
Patrick Lu
4ad0afab45 [svn-r1771] updated the testing part to tell about the timing tests 1999-10-15 19:26:17 -05:00
Patrick Lu
7255af7224 [svn-r1770] separated the timing tests from the regular tests 1999-10-15 19:23:06 -05:00
Albert Cheng
468bc7b351 [svn-r1757] Updated for files added and deleted.
Should be ready for release 1.2.0.
1999-10-15 10:51:07 -05:00
Albert Cheng
e20b3e4d2b [svn-r1756] Should not be added because it is derived from Makefile.in. 1999-10-15 10:49:15 -05:00
Albert Cheng
5a84822569 [svn-r1755] HISTORY:
RELEASE:
    Updated supported platforms information.
    Removed AIX problem which is solved.
INSTALL:
    Added a paragraph of how to use bin/install-sh explicitedly.
1999-10-15 10:23:37 -05:00
Frank Baker
60ded69d6c [svn-r1752] RM_H5T.html
H5Tenum_valueof: corrected PURPOSE statement.
1999-10-14 16:17:40 -05:00
Frank Baker
65e484b19e [svn-r1751] H5.format.html
MANY technical changes, perhaps hundreds, based on developer input.
	Deleted Complex Dataspace and minimized Free-sapce Index sections.
	Many copy edits and formatting fixes.
	Consistent title: HDF5 File Format Specification.
FF-IH_FileGroup.gif
	Revised drawing for HDF5 File Format Specification.
1999-10-14 16:13:00 -05:00
Frank Baker
2eabae2d3a [svn-r1750] Datatypes.html (all VL datatypes work)
Added VL example code.
	H5Pset_vlen_mem_manage_type:  Removed.
	H5Pset_vlen_mem_manager:  More complete discussion of usage
	  of default and user-defined memory management functions.
RM_H5P.html
	H5Pset_vlen_mem_manager: rewrote usage description
	  for alloc and free paramaters and added summary.
	H5Pget_btree_ratios: corrected PURPOSE statement.
1999-10-14 15:48:14 -05:00
Frank Baker
39a012fb45 [svn-r1749] Added "HDF5 Tutorial" files in ./doc/html/Tutor/ 1999-10-13 21:53:25 -05:00
Elena Pourmal
8f6e04cd2d [svn-r1748]
Files were modified by Barbara for the upcoming release of hdf5-1.2.0

README -  reference to the HISTORY file was added
RELEASE - contains information relevant ot the release of hdf5-1.2.0
          New Features and Changes since hdf5-1.01
          Platforms Tested
          Known problems ( I deleted AIX problem as Albert suggested )

HISTORY - former RELEASE file. Contains HDF5 history from first ALPHA release.
1999-10-13 14:45:53 -05:00
Frank Baker
cba03198d1 [svn-r1747] Copied doc/html/Copyright.html into doc/html/Tutor/Copyright.html.
(The tutorial has a separate copy of the copyright notice so that it can
stand alone without the rest of the documentation tree.  This change
synchronizes the tutorial's copy with the rest of the documentation's
notice and with the code's copyright notice.)
1999-10-13 14:13:44 -05:00
Frank Baker
af71874ae0 [svn-r1746] Modified format to be consistent with rest of docs.
Revised "All publications and advertising materials..." requirement.
Added 1999 to copyright dates.
1999-10-13 14:03:02 -05:00
Frank Baker
e115255383 [svn-r1745] Revised "All publications and advertising materials..." requirement.
Added 1999 to copyright date and gzip authors to contributors list.
1999-10-13 13:57:55 -05:00
Patrick Lu
e3877e5529 [svn-r1740] made note of a new error found under win95 for external test 1999-10-11 15:10:41 -05:00
Frank Baker
fb1c2856c9 [svn-r1737] HDF5 Tutorial: First version of Tutorial to be checked in for distribution. 1999-10-08 18:03:26 -05:00
Frank Baker
3c2fc7a967 [svn-r1736] HDF5 Tutorial: First version of Tutorial to be checked in for distribution. 1999-10-08 18:03:05 -05:00
Patrick Lu
59b430fbdd [svn-r1735] last second changes to the installation instructions 1999-10-08 15:20:20 -05:00
Patrick Lu
1fac8bfab3 [svn-r1734]
updated the line about where to find the zlib dll
1999-10-08 15:12:11 -05:00
Albert Cheng
e5ff89e5db [svn-r1726] Created separated targets for install-doc and uninstall-doc.
install and uninstall no longer turns around to call them.
Document installation and uninstallation have to be invoked
here manually for now.
1999-10-06 11:08:29 -05:00
Patrick Lu
7dc4fa3f5e [svn-r1724] updated the config file to allow printing of long long 1999-10-06 10:00:39 -05:00
Quincey Koziol
b3a4a363e9 [svn-r1723] Close & re-open file to detect object header encode/decode errors. 1999-10-05 19:39:13 -05:00
Quincey Koziol
66b0cbed3b [svn-r1722] Corrected coding error in computing size of variable-length datatypes, also
allocate "parent" datatype when decoding datatype now.
1999-10-05 19:38:41 -05:00
Frank Baker
c2306a366b [svn-r1721] RM_H5F.html
H5Funmount: Corrected description of second argument.
	  Clarified descriptions of loc_id and name.
	H5Gget_objinfo: Corrected datatype within H5G_stat_t struct.
	H5Fopen, H5Fcreate:  Corrected lists of allowable flags.
	  Corrected/expanded access_id and create_id descriptions.
	One simple copy edit.
1999-10-04 16:56:37 -05:00
Frank Baker
2c3783004c [svn-r1720] RM_H5T.html
H5Tget_nmembers: Corrected return type.
	H5Tinsert_array: Explained that perm parameter is not yet
		implemented; value should currently be set to NULL.
	  Specified limits on value of ndims.
	  Slightly expanded description of offset.
1999-10-04 16:55:31 -05:00
Frank Baker
636ab41cf0 [svn-r1719] RM_H5A.html
H5Aread: Corrected description of buf.
RM_H5P.html
	H5Pset_buffer: Expanded description of buffer size requirements.
	  Minor copy edits.
RM_H5S.html
	H5Sselect_elements, H5Sselect_hyperslab: Corrected op return type.
1999-10-04 16:54:22 -05:00
Frank Baker
538b76ea64 [svn-r1718] RM_H5.html
H5check_version: Deleted extraneous entry from PARAMETERS.
	  Added description of ABORT behavior when version
		numbers do not match.
	  Corrected parameter notation in PARAMETERS.
	H5check_version, H5get_libversion: Added IN/OUT to PARAMS.
1999-10-04 16:52:07 -05:00
Albert Cheng
1772537cf3 [svn-r1717] Updated with Makefile.in of the install-doc target. 1999-10-03 20:19:25 -05:00
Albert Cheng
06871f48c0 [svn-r1716] Got rid of the no longer needed forward reference of struct definition.
The definition of the struct is now before it.
1999-10-03 01:34:18 -05:00
Albert Cheng
a65d75525f [svn-r1715] Moved INSTALL_MAINT to doc/html/Lib_Maint.html.
Did a quick change to the file to make it an html file.
1999-10-03 01:22:24 -05:00
Albert Cheng
a5ae4827d0 [svn-r1714] IRIX complains about undefined variable even if it is not involved
in the building target.  Added a predefined valued for $DOCDIR
to pacify it.
1999-10-03 00:42:03 -05:00
Albert Cheng
28415a8e06 [svn-r1713] Added the target to do install-doc in doc and its sub-directories.
For now, the Makefile in doc "translates" targets "install" and
"uninstall" to "install-doc" and "uninstall-doc" for its sub-directories.
1999-10-02 12:46:55 -05:00
Albert Cheng
6ffa54231a [svn-r1712] Added the target to do install-doc in doc and its sub-directories.
For now, the Makefile in doc "translates" targets "install" and
"uninstall" to "install-doc" and "uninstall-doc" for its sub-directories.
1999-10-02 12:46:49 -05:00
Albert Cheng
d6acdd05ba [svn-r1708] Turned off compression feature if zlib.h is off. 1999-10-01 15:53:54 -05:00
Albert Cheng
a65e21032f [svn-r1706] Changed to different locations or filenames.
INSTALL.ascired -> INSTALL_TFLOPS
INSTALL.ibm.sp.parallel -> bin/config_para_ibm_sp.sh
INSTALL_parallel.ascired -> bin/config_para_tflops.sh
1999-10-01 12:56:57 -05:00
Albert Cheng
cfd9daf743 [svn-r1703] Used n.m. numbers to identify paragraphs. Added a table of content. 1999-10-01 10:25:31 -05:00
Albert Cheng
d2a3c6afe0 [svn-r1699] Changed names of files to better reflect their purposes.
INSTALL.ascired:
    Becomes INSTALL_TFLOPS.
INSTALL_parallel.ascired:
    Becomes bin/config_para_tflops.sh
INSTALL.ibm.sp.parallel:
    Becomes bin/config_para_ibm_sp.sh
1999-09-30 12:13:16 -05:00
Albert Cheng
75c57d6ec0 [svn-r1698] Removed the note of beta-release. 1999-09-30 11:46:23 -05:00
Patrick Lu
6f84d4d2c5 [svn-r1692] removed the last warnings from these files. 1999-09-29 11:46:30 -05:00
Patrick Lu
f724f3da34 [svn-r1687] updated the testing section. gave directions on how to test with the single
bat files.
1999-09-28 15:53:10 -05:00
Patrick Lu
cb6286627c [svn-r1684] removed the separate bat files for the testing and replaced them with 2 bat
files that take in command line arguments to determine which versions to test
1999-09-28 15:37:12 -05:00
Albert Cheng
07e54e3ec4 [svn-r1681] Did some cleanup. 1999-09-28 13:19:46 -05:00
Albert Cheng
8c0a91af90 [svn-r1680] Added the ability to accept command line arguements. 1999-09-28 13:18:57 -05:00
Elena Pourmal
5f28e7a7ac [svn-r1679]
DatatypesEnum.html and VLdatatypes.html were removed from doc/html directory.
MANIFEST file was brought up-to-date.
1999-09-28 12:52:33 -05:00
Frank Baker
e6c1d392e3 [svn-r1678] Tools.html
Palettes.html
	Various copy-edits and cleaned up HTML.
Caching.html
	Edited section headers and added an <h1> header.
Errors.html
	Added section title "Error Handling Operations."
1999-09-27 21:03:05 -05:00
Frank Baker
7f885e42ac [svn-r1677] RM_H5P.html
Added 'Name' to H5Pget_core.
RM_H5D.html
	Added 'Purpose' to H5Dclose.
1999-09-27 20:58:26 -05:00
Frank Baker
6d81d3e643 [svn-r1676] Datatypes.html
Integrated DataypesEnum.html and VLdatatypes.html into this
		file to create a single Datatypes document for the UG.
	Changed to consistent use of 'datatype' (where we had both
		'datatype' and 'data type').
1999-09-27 20:56:55 -05:00
Frank Baker
8210433773 [svn-r1675] DataypesEnum.html
VLdatatypes.html
	Removed these files; material has been merged into Datatypes.html.
1999-09-27 20:54:53 -05:00
Frank Baker
1c8a7fbd04 [svn-r1674] Dataspaces.html
RM_H5S.html
	Commented out H5Sextent_class.  It's still in the plan but not
	yet implemented.
RM_H5S.html
	Removed H5Sselect_name from list of functions that are not yet
		implemented but are described in the UG.
	Updated return value descriptions for H5Sis_simple
		and H5Sselect_valid to correspond to the earlier
		hbool_t -> htri_t change.
1999-09-27 20:51:56 -05:00
Frank Baker
ab1a73dd3a [svn-r1673] RM_H5T.html
Added H5Tget_member_offset.
	Corrected H5Tinsert description to read that an element of a
		compound datatype can itself be a compound datatype.
	Font correction.
RM_H5F.html
RM_H5T.html
	Updated return value descriptions for H5Fis_hdf5, H5Tcommitted,
	and H5Tequal to correspond to the earlier hbool_t -> htri_t change.
1999-09-27 20:48:44 -05:00
Albert Cheng
36583b79eb [svn-r1671] bin/ltconfig:
ltconfig used just an empty source file to test the share lib
    compiler options.  SUNSpro CC returns succeed though it issues
    a warning too.  ltconfig did not like the warning.
    Changed it to test with a file containing a simple dummy program.
    Platform tested: solaris 2.6 and 2.7

config/solaris2.x:
    Changed default compiler to "cc" now that Sunpro CC can produce
    static and shared codes correctly.
    Also added -s to PROD_CFLAGS to produce leaner binary files.
1999-09-27 19:00:58 -05:00
Patrick Lu
0eb61a5689 [svn-r1669] got rid of more warnings with this file
changed the type on the variable in the for loops from hsize_t to int and just
casted it to hsize_t when we need to do the comparison
1999-09-27 11:43:40 -05:00
Patrick Lu
6e4bbdfd57 [svn-r1666] fixed a fwe warnings. most of them just needed a cast to an int
for the parameter to isdigit or isprintf functions
1999-09-27 11:04:19 -05:00
Patrick Lu
bb3e313419 [svn-r1662] file wouldn't compile. needed an #include <fcntl.h> for some macros
it didn't know about.(O_EXCL, O_RDWR, etc)
1999-09-25 13:58:42 -05:00
Patrick Lu
ffaff7a404 [svn-r1660] remved some(not all) of the warnings 1999-09-25 10:58:19 -05:00
Patrick Lu
0794a557e5 [svn-r1658] removed some of the warnings 1999-09-25 10:25:47 -05:00
Patrick Lu
26d4fc8ee7 [svn-r1656] added the 4 new batch files to test the dumper 1999-09-24 18:55:21 -05:00
Patrick Lu
f1a3416a9c [svn-r1654] added some lines in the test section about the dumptest batch files 1999-09-24 18:50:25 -05:00
Quincey Koziol
c65ab6e0da [svn-r1652] Removed unneeded sys/fcntl.h include line, which was causing the J90 problems. 1999-09-24 18:06:41 -05:00
Quincey Koziol
32a8bfe491 [svn-r1650] Changed integer error checking in dtypes.c to use the bits of precision instead
of the size of the datatype in bytes, which was causing problems on the J90.
Also changed the references test to use native integers.
1999-09-24 13:15:23 -05:00
Quincey Koziol
1f24212ef6 [svn-r1649] Tweaks for J90 port. 1999-09-24 13:14:25 -05:00
Quincey Koziol
5b7ec7e586 [svn-r1648] New unicos (vector Cray) config file. 1999-09-24 13:14:13 -05:00
Quincey Koziol
b6c7eda6b0 [svn-r1647] Tweak to stop dumping entire environment on Cray J90. 1999-09-24 13:13:57 -05:00
Quincey Koziol
8d57b54148 [svn-r1646] Cray J90 port changes 1999-09-24 13:13:15 -05:00
Albert Cheng
3393ca8f56 [svn-r1644] conclude.in:
Problems:
    libtool generated compiler linking commands with dependency_libs
    appended to any dynamic library used but only "-lz -lmfhdf ..." were
    appended but "-L...", if used, are not appended.  So, the "-lz ..."
    information is incomplete and solaris cc does not allow even if the
    "-L..." information is provide in later part of the command.
    Solution:
    Included $LDFLAGS in the building of $(LIB).

irix5.x:
irix6.x:
    Added "-s" to PROD_CFLAGS so that production code are striped for
    smaller sizes.

Platform Tested:
    Solaris 2.6
1999-09-22 13:01:45 -05:00
Patrick Lu
57a3b563a8 [svn-r1641] the version of this file that was just removed from the all.zip 1999-09-17 12:28:35 -05:00
Patrick Lu
e7a89d48ab [svn-r1640] removed the installation file from the zip since it is already present outside of it 1999-09-17 12:26:58 -05:00
Patrick Lu
22a912c860 [svn-r1637] updated the install instructions for windows. added the installExamples batch file
that is mentioned in the instructions.

update the project files for the allexamples to have settings for the alpha
1999-09-17 12:08:06 -05:00
Frank Baker
dd6bb6f4eb [svn-r1635] Added two doc images:
./doc/html/FF-IH_FileGroup.gif
        ./doc/html/FF-IH_FileObject.gif
1999-09-10 12:10:53 -05:00
Patrick Lu
2e7251d1c5 [svn-r1631] added a dir containing the zlib and the zlib dll. Updated the h5config.h file
and the zlib.h and zconf.h files.  the installation instructions were also updated.
the project files for the hdf lib abd the hdfdll were updated also.
1999-09-08 11:54:31 -05:00
Patrick Lu
98a436fab0 [svn-r1630] added instructions on how to replace/remove the zlib from the projects 1999-09-08 11:52:26 -05:00
Quincey Koziol
72cd51737c [svn-r1628] Fixed error in point selections which was incorrectly computing the offsets of
array elements for most datatypes.
1999-09-06 11:01:16 -05:00
Quincey Koziol
67c3ca2fbe [svn-r1626] Removed incorrect comment about only allowing atomic fields in a compound
datatype.
1999-09-02 15:55:57 -05:00
Robb Matzke
2c224df36d [svn-r1618] *** empty log message *** 1999-08-30 14:49:15 -05:00
Robb Matzke
9856f7259c [svn-r1617] ./src/H5O.c [1.2, 1.3]
Fixed a read-uninitialized-memory error that resulted in the
	file containing small amounts (<8 bytes each) of uninitialized
	data. These padding areas (which are never read by hdf5) are
	initialized to zero now.
1999-08-30 14:49:04 -05:00
Quincey Koziol
b7fb4a4e07 [svn-r1611] Added check for reading an attribute immediately after writing it. 1999-08-27 17:04:21 -05:00
Quincey Koziol
58c2ef0ded [svn-r1610] Fixed bug in attribute writing which was causing core dump if an attribute was
read back in immediately after being written out (without closing the attribute
in between).
1999-08-27 17:03:21 -05:00
Robb Matzke
abaa7f6e9a [svn-r1609] ./src/libhdf5.settings.in [1.2, 1.3]
Added C proprocessor flags and non-library linker flags to the
	description.

./src/H5T.c				[1.2, 1.3]
	Changed return type in tracing macros to H5Tenum_nameof() and
	H5Tenum_valueof().
1999-08-27 13:29:06 -05:00
Robb Matzke
7160928262 [svn-r1605] ./tools/h5ls.c [1.2, 1.3]
Fixed a bug where the `Data:' tag didn't get printed for
	attributes that have more than five values.
./src/H5O.c				[1.2, 1.3]
	Initialzed the padding area between the end of a message and
	the end of the space allocated for that message. This
	hopefully fixes an UMR error found by Quincey and prevents the
	file from containing unwanted data.
1999-08-26 09:26:33 -05:00
Robb Matzke
cff2a39a5e [svn-r1604] ./src/H5O.c [1.2, 1.3]
Initialzed the padding area between the end of a message and
	the end of the space allocated for that message. This
	hopefully fixes an UMR error found by Quincey and prevents the
	file from containing unwanted data.
1999-08-26 09:26:22 -05:00
Robb Matzke
b12caa0e14 [svn-r1603] ./configure.in [1.2, 1.3]
./configure				[REGENERATED]
./Makefile.in
	Fixed a couple spelling errors.
1999-08-26 09:26:02 -05:00
Frank Baker
e8ea992779 [svn-r1601] RM_H5T.htm
Corrected return types for H5Tenum_valueof and H5Tenum_nameof.
1999-08-25 17:36:42 -05:00
Frank Baker
2addc89f28 [svn-r1600]
RM_H5T.html
	Deleted H5Tregister_hard and H5Tregister_soft.
	Added H5Tregister.
	In H5Tunregister, removed duplicate description of conversion
		function pointer type declaration, referring reader to
		H5Tregister.
	Added H5Tenum_create, H5Tenum_insert, H5Tenum_nameof, H5Tenum_valueof,
		H5Tget_member_value, H5Tgset/get_tag, and H5Tget_super.
	Restructured the linked list of functions at the top of the page to
		accommodate the new entries.
RM_H5Front.html
	Since these are the last of the missing functions, removed the
	list of functions missing from the RM.
1999-08-25 17:18:12 -05:00
Quincey Koziol
f813407a7b [svn-r1598] Changed return type of H5Tenum_nameof and H5Tenum_valueof from hid_t to herr_t 1999-08-25 17:00:47 -05:00
Quincey Koziol
9ae1e4a593 [svn-r1596] Expanded size of buffer for string read in. 1999-08-25 15:20:11 -05:00
Quincey Koziol
8ad6cf32ac [svn-r1589] Updated MANIFEST for new doc files 1999-08-24 18:33:13 -05:00
Frank Baker
80d964e6cf [svn-r1588] RM_H5S.html
Edited H5Sget_select bounds entry.
1999-08-24 15:25:18 -05:00
Frank Baker
48b014bc9a [svn-r1587]
RM_H5S.html
	Added H5Sget_select_hyper_nblocks, H5Sget_select_hyper_blocklist,
	H5Sget_select_elem_npoints, H5Sget_select_elem_pointlist, and
        H5Sget_select_bounds.
RM_H5Front.html
	As functions were added to the Reference Manual (above), they were
	removed from "functions missing in the RM" list in this document.
1999-08-24 15:14:18 -05:00
Frank Baker
8cffd507bf [svn-r1584] RM_H5D.html
Added H5DGet_storage_size and H5Diterate.
RM_H5F.html
	Rearranged TOC.
RM_H5P.html
	Added H5Pset/get_hyper_cache, H5Pset/get_btree_ratios, H5Pset/get_gc_references,
	and H5Pget_vlen_mem_manager.
RM_H5R.html
	Added H5Rget_object_type.
RM_H5Front.html
	As functions were added to the Reference Manual (above), they were
	removed from "functions missing in the RM" list in this document.
1999-08-23 15:31:25 -05:00
Robb Matzke
088a7b9c52 [svn-r1581] ./src/H5private.h [1.2, 1.3]
The prototype for strdup() is protected in case strdup is also
	a macro. This should fix a bug on Linux RedHat 6.0 (untested).
1999-08-20 11:59:55 -05:00
Robb Matzke
64a989603d [svn-r1580] Changes since 19990817
----------------------

./configure.in			[1.2, 1.3]
./configure			[REGENERATED]
	The checking for C9x types includes <stdint.h> if it
	exists. This should fix a bug on Linux RedHat 6.0 (untested).
1999-08-20 11:58:07 -05:00
Frank Baker
e7c0ca229f [svn-r1579]
H5.format.html
	Expanded introduction.
	New HDF5 Group and HDF5 Object drawings.
	Beginnings of a general edit.

FF-IH_FileGroup.gif
FF-IH_FileObject.gif
	New drawings for Format Spec (H5.format.html).

Glossary.html
	Have begun adding terms, though as yet without definitions.
1999-08-19 15:43:51 -05:00
Frank Baker
8d2f82f859 [svn-r1578]
Attributes.html
RM_H5A.html
	Corrected H5Aget_name return type.
	(Each file had a different return type; both were wrong!)
1999-08-19 15:27:21 -05:00
Frank Baker
91e75701b4 [svn-r1571]
RM_H5Front.html
	Added list of functions that are not yet documented in the
	Release 1.2 Beta Reference manual.
1999-08-13 15:07:02 -05:00
Frank Baker
3229952348 [svn-r1570]
RM_H5F.html
RM_H5S.html
RM_H5T.html
Dataspaces.html
Datatypes.html
	Corrected return type (nbool_t to htri_t) for the functions
	H5Fis_hdf5, H5Sis_simple, H5Sselect_valid, H5Tcommitted, and H5Tequal.

RM_H5S.html
	Corrected h5s_selopt_t to H5S_selopt_t (3 places).
	Corrected description of H5Sget_select_npoints.
1999-08-13 14:39:29 -05:00
Quincey Koziol
31431c076f [svn-r1567] Changed C++ "operator" keyword to "op" 1999-08-10 13:54:47 -05:00
Albert Cheng
9cd7681d3a [svn-r1564] The last commit for Version 1.2.0beta checked in a damaged file.
This one is complete.
1999-08-02 17:28:38 -05:00
Albert Cheng
0070553086 [svn-r1562] Version 1.2.0beta commit 1999-08-02 17:12:46 -05:00
Albert Cheng
d6d6047bc4 [svn-r1560] Appranantely, "tail -n +2" is not recognized by a version of tail in
Baldric (solaris 2.6).  Changed it to "tail +2l".
1999-08-02 15:21:38 -05:00
Albert Cheng
749a61c320 [svn-r1558] Updated for the newly added INSTALL_Windows.txt file. 1999-08-02 15:10:37 -05:00
Albert Cheng
fc26a66ed0 [svn-r1556] Put in a beta release notice. 1999-08-02 14:20:52 -05:00
Albert Cheng
e1054dd631 [svn-r1555] INSTALL:
Edited for 1.2.0beta release.
INSTALL.ascired:
    Updated with simplified steps.
INSTALL_parallel:
    Updated with information that was in INSTALL and INSTALL.parallel.
INSTALL_parallel.ascired:
    Removed old setup no longer needed.
    RUNPARALEL, RUNSERIAL, disable-shared are specified in config/intel-osf1.
README:
    Update mailing list subscription instruction.
RELEASE:
    Updated for 1.2.0beta release information.
INSTALL_Windows.txt:
    Contains Windows platform installation instructions.
INSTALL.parallel:
    Removed because its content has been moved to INSTALL_parallel.
1999-08-02 14:19:44 -05:00
Albert Cheng
3b12d2cc9d [svn-r1553] Changed it to use the tflops predefined __PUMAGON__ to identify
the tflops system.
1999-08-02 12:54:58 -05:00
Robb Matzke
5eb306c5dd [svn-r1551] ./RELEASE [1.2,1.3]
Updated release notes for 1.2.0 release
1999-07-30 13:08:50 -05:00
Frank Baker
cb010d75da [svn-r1550] VLdatatypes.html
Removed H5Pset_vlen_mem_manage_type; it is no longer
	in the specification.

RM_H5P.html
	Added H5Pset_vlen_mem_manager.
1999-07-30 12:40:10 -05:00
Albert Cheng
fbbb05510c [svn-r1546] Updated for newly added files. 1999-07-26 11:21:49 -05:00
Albert Cheng
ebc87c1357 [svn-r1545] Updated the information for TFLOPS and SGI O2K. 1999-07-26 09:57:29 -05:00
Quincey Koziol
b1fb467f2f [svn-r1542] Added some casts to pacify the T3E compiler. 1999-07-23 18:30:45 -05:00
Quincey Koziol
fa4aeeca74 [svn-r1541] Added -h scalar0 to production CC flags to produce correct code. 1999-07-23 18:30:18 -05:00
Frank Baker
b3491fd4d1 [svn-r1540] RM_H5D.html
Correct spelling error in H5Dget_vlen_buf_size.
1999-07-23 18:15:09 -05:00
Frank Baker
b872c241d3 [svn-r1539]
Datatypes.html
VLdatatypes.html (temporary doc file)
RM_H5T.html
RM_H5D.html
	Adding variable-length datatype information to the user docs.
        VLdatatypes.html is a temporary file; it will be removed once
	all of the information is incorporated into Datatypes.html
	and the RM.
1999-07-23 18:08:41 -05:00
Quincey Koziol
40fc03de3f [svn-r1537] Updated instructions for subscribing to mailing lists. 1999-07-23 17:56:28 -05:00
Quincey Koziol
8d299cf834 [svn-r1535] Fixed alignment problems on DEC Alpha platform. 1999-07-23 16:19:13 -05:00
Robb Matzke
07ca255ce3 [svn-r1534] ./configure [REGENERATED] 1999-07-23 14:51:20 -05:00
Robb Matzke
61763c324f [svn-r1531] ./test/dtypes.c [1.2, 1.3]
Fixed the decimal value which is printed for `dst' when an
	error is detected. The hexadecimal value was correct.
1999-07-23 14:47:21 -05:00
Robb Matzke
580171f642 [svn-r1530] ./configure.in [1.2, 1.3]
Changed $USER to `whoami` for setting the user name in
	libhdf5.settings.
1999-07-23 14:46:45 -05:00
Frank Baker
80c105b802 [svn-r1529] Palettes.html
Fixed image pathnames.

PaletteExample1.gif
Palettes.fm.anc.gif
	Images for Palettes.html.
1999-07-22 16:12:55 -05:00
Frank Baker
229cac82de [svn-r1528]
All HDF5 User's Guide files
	Integrated Palettes.html.
	Integrated MountingFiles.html.
	Cleaned up page footers.
	Made <title>---</title> entries somewhat more consistent.

Files.html
Errors.html
Datasets.html
	Fixed minor formatting errors.

Palettes.html
MountingFiles.html
	These new sections were added to the HDF5 User's Guide.

Environment.html
	Deleted duplicate text.
1999-07-22 15:58:29 -05:00
Albert Cheng
72810358b2 [svn-r1527] From: "Patrick P. Weidhaas" <weidhaas@k2.llnl.gov>
The line "setenv CFLAGS ...." caused an "undefined variable" error, so
we commented it.  Also, we use the mpich (romio) compiler for most of
our tests, so we uncommented it, and at the same time commented out the
"ibm mpi" compiler.
1999-07-22 15:11:35 -05:00
Frank Baker
2f3da042cf [svn-r1524]
RM_H5R.html
   H5Rget_region
	Removed "Not yet implemented" note.
	Corrected syntax to agree with description in H5R.c
	Added mention of valid 'ref_type' value; deleted reference to User's Guide.
   H5Rdereference
	Added list of valid 'ref_type' values; deleted reference to User's Guide.

RM_H5T.html
   H5Tget_class
	Added H5T_ENUM and H5T_REFERENCE to list of return values.
   H5Topen
	Corrected description of 'loc_id'; clarified description of 'name'.
   H5Tinsert
	Corrected 'offset' datatype.

RM_H5P.html
Datasets.html
   Fixed minor formatting errors.
   H5Pset_layout
   H5Pget_layout
	Added comment that H5D_COMPACT layout type is not yet implemented.
   H5Pset_external
	Added note regarding setting 'size' to H5F_UNLIMITED.
   H5Pset_family                                           (RM_H5P.html only)
	Removed extra function entry ('original version').
   H5Pget_split                                            (RM_H5P.html only)
	Corrected pair of typos in 'meta_ext' description.
1999-07-21 15:46:42 -05:00
Frank Baker
0a8859d589 [svn-r1523]
Datatypes.html
   Changed references to 'handle' to read 'identifier'.

References.html
   Corrected reference to H5Ddereference to read H5Rdereference.
1999-07-21 15:45:37 -05:00
Albert Cheng
7178b5c35d [svn-r1522] configure.in:
Added the checking for zlib and jpeg libraries when doing the -with-hdf4
    option.  HDF4 applications in general needs lib mfhdf, df, z, and jpeg.
    Removed the earlier alone test for jpeg.  It conflicted with the hdf4
    tests.  Also, moved the hdf5-own library test for zlib after the hdf4
    tests so that when hdf4 is used, the results would cover the zlib
    test.
configure:
    derived from configure.in by autoconf.

Platforms tested:
    IRIX 6.5, IRIX64 6.5, Solaris 2.6 (if the default gcc is used),
    FreeBSD.

Comments:
    This still generates compile commands that listed the "-lmfhdf ..."
    library list before the -L/usr/ncsa/lib.  I traced the problem to
    the libtool.  (I stopped at the door and dared not to enter this
    libtool cave. :-)  Most compilers, except solaris' cc, tolerate
    the "duplicated" library list.
1999-07-21 15:45:07 -05:00
Albert Cheng
a4f7ae28a7 [svn-r1520] Forgot to change the arguments for the $diff command when I changed
them for $cmp the last time.  Updated it.  now it works for --srcdir
option too.
1999-07-20 17:09:29 -05:00
Albert Cheng
8628270b03 [svn-r1518] Updated the expected output according to the changes Patrick just
made.
1999-07-20 16:42:35 -05:00
Patrick Lu
8e32b16821 [svn-r1516] fixed the dll proj settings for the alpha 1999-07-20 11:46:25 -05:00
Patrick Lu
8d3b19d8b1 [svn-r1511] new version of this file. has the string after the array 1999-07-19 12:53:22 -05:00
Patrick Lu
188af9405a [svn-r1510]
reordered the struct for the tstr.h5 file.  now the array prints out before the string
in the dumper.
1999-07-19 12:52:36 -05:00
Robb Matzke
11b4b23d81 [svn-r1509] ./bin/release [1.2, 1.3]
The SunOS 5.6 version of `sed' must have slashes as delimiters
	so I made sure that's all that's used in this script even
	though it makes one pattern almost unreadable.
1999-07-19 12:40:47 -05:00
Quincey Koziol
4aafdc1675 [svn-r1504] Uncommented VL datatypes in compound datatypes test, since it's working now.
Some other memory leaks in the tests fixed.
1999-07-17 18:57:55 -05:00
Quincey Koziol
185b1d1cd1 [svn-r1503] Bug fixes to get VL datatype fields in compound datatypes working. Also, some
memory leaks plugged in other routines.
1999-07-17 18:57:05 -05:00
Quincey Koziol
443738bded [svn-r1502] Regenated configure script. 1999-07-17 18:53:20 -05:00
Quincey Koziol
be3eea64e3 [svn-r1501] Updated ddl files for new h5dump output 1999-07-17 01:05:50 -05:00
Albert Cheng
cccca61d76 [svn-r1499] Changed the default action for the search of HDF4 library and header files
to try locating them under /usr/ncsa/{lib,include} first.  (/usr/ncsa/
is the default location for non-vendor software.)
1999-07-16 16:59:02 -05:00
Albert Cheng
ed13f6a117 [svn-r1497] Updated the expected output file since h5dumptst has changed the
content of the corresponding h5 file.
1999-07-16 16:53:46 -05:00
Quincey Koziol
782d1ccca2 [svn-r1493] Corrections and small bugfixes to VL testing. The compound vlen test is
commented out currently as VL fields in compound datatypes isn't working yet.
1999-07-16 13:11:18 -05:00
Quincey Koziol
abdcb57fdf [svn-r1492] Lots of various bug-fixes on VL datatypes. VL datatype fields in compound
datatypes aren't yet working, but other ways of using them (vlen atomic, vlen
compound and vlen vlen atomic, etc.) are working.
1999-07-16 13:10:32 -05:00
Patrick Lu
2fb4a69253 [svn-r1490]
fixed one small typo
1999-07-16 11:37:23 -05:00
Patrick Lu
0eddb58a27 [svn-r1489]
removed a function that was not being compiled and put in a preliminary check in case
the indentation is more than the number of columns.
1999-07-16 11:35:49 -05:00
Patrick Lu
0e4dda2a79 [svn-r1487]
update the h5dump and the h5dumpdll projects so it isn't using the dumputil.c file anymore
1999-07-16 10:06:15 -05:00
Robb Matzke
4f8c215385 [svn-r1485] ./src/H5B.c [1.2, 1.3]
./src/H5Fistore.c	[1.2, 1.3]
./src/H5Sall.c		[1.2, 1.3]
	Replaced second argument of HGOTO_ERROR/HRETURN_ERROR with a
	minor error symbol (H5E_INTERNAL is a major error symbol).
1999-07-16 09:57:17 -05:00
Robb Matzke
0c2771850c [svn-r1483] ./tools/h5tools.c
Fixed a bug reported by Albert: the indices for data printed
	by h5ls were starting over at zero for each pass through the
	strip mining loop.
1999-07-14 15:02:25 -05:00
Patrick Lu
75680a0bda [svn-r1482] changed teh order that the tests were called int he test_vltypes function.
moved the vlen_compound test to the last instead of the 2nd since this
was causing a strange crash on nt.
1999-07-14 13:28:07 -05:00
Patrick Lu
1639e28b46 [svn-r1479] changed a setting for the release verison of the dll project 1999-07-14 13:22:01 -05:00
Patrick Lu
8c28140832 [svn-r1478]
changed the dll project.  should hopefully get rid of the debug dll problems.
1999-07-14 10:37:43 -05:00
Robb Matzke
f65d37d9c4 [svn-r1472] ./src/H5D.c [1.2, 1.3]
./src/H5P.c		[1.2, 1.3]
./src/H5T.c		[1.2, 1.3]
	Added definitions for H5D_operator_t, H5MM_allocate_t, and
	H5MM_free_t and regenerated tracing calls for the affected API
	functions.
1999-07-13 12:54:41 -05:00
Robb Matzke
a5aee55da1 [svn-r1471] ./config/gnu-flags [1.2, 1.3]
A warning is printed for all versions of EGCS before 2.91.67.
1999-07-13 12:54:15 -05:00
Robb Matzke
7378acff83 [svn-r1470] ./bin/trace [1.2, 1.3]
Added definitions for H5D_operator_t, H5MM_allocate_t, and
	H5MM_free_t and regenerated tracing calls for the affected API
	functions.
1999-07-13 12:53:59 -05:00
Robb Matzke
25cea5bba6 [svn-r1469] ./configure.in [1.2]
./configure		[REGENERATED]
	Changed defaults: optimizations on, debugging and tracing off.
1999-07-13 11:04:44 -05:00
Robb Matzke
a98b9a2261 [svn-r1468] ./h5ls.c
Fixed usage message.
1999-07-13 10:15:48 -05:00
Robb Matzke
5dde4f189a [svn-r1467] ./INSTALL
Updated version numbers. Fixed a couple typos.
1999-07-13 10:15:32 -05:00
Albert Cheng
68eb01301a [svn-r1464] src/H5Fmpio.c:
Removed the unnecessary #include of mpi.h and mpio.h.  (They are
    included already in H5public.h when applicable.)  Changed couple
    debug printing to be controlled like the others.
src/H5public.h:
    Officially, mpio.h should be in mpi.h but MPIO are not always
    supported by the vendor yet.  Make the #include of mpio.h conditional
    when it is not in mpi.h.
testpar/testphdf5.h:
    Removed the unnecessary #include of mpi.h and mpio.h.  (They are
    included already in H5public.h when applicable.)
1999-07-12 12:37:24 -05:00
Patrick Lu
5e8041533a [svn-r1462] added projects for the tools lib for the alpha. i forgot to do this before 1999-07-12 10:15:29 -05:00
Albert Cheng
f7a246beff [svn-r1461] Removed DOS386 macro. It was used for some special code in TFLOP.
That had been replaced by the more appropriate TFLOP predefined
macro __PUMAGON__.
1999-07-10 19:07:37 -05:00
Albert Cheng
cf386a9380 [svn-r1459] Changed the disable-shared to be default only if not set.
Added cached sizes for the leastN_t and fastN_t types which are not
defined as system types for TFLOP.
1999-07-10 18:16:11 -05:00
Patrick Lu
b8f45e3928 [svn-r1456]
fixed the unnamed data type bug(wasn't printing the root part of the name)
1999-07-09 10:55:28 -05:00
Elena Pourmal
5b440e7661 [svn-r1455]
File had several ^M in it. Would not compile on UNIX. Fixed.

Tested on IRIX 6.5 (fuga)
1999-07-09 10:50:30 -05:00
Patrick Lu
9a2028f254 [svn-r1453]
removed the comma after the last enum type in the file
1999-07-09 09:43:44 -05:00
Albert Cheng
7f7aa9f1dd [svn-r1451] Updated installation instruction provided by Richard Hedges of LLNL. 1999-07-08 14:43:00 -05:00
Albert Cheng
2178b8bdd4 [svn-r1450] Added two IBM specific configuration files which are provided by
Richard Hedges of LLNL.
1999-07-08 14:40:07 -05:00
cvs2svn
bb1dab9333 [svn-r1449] This commit was manufactured by cvs2svn to create branch 'hdf5_1_2'. 1999-07-08 14:40:07 -05:00
Albert Cheng
d1a7b058e4 [svn-r1447] Makefile.ibmsp is no longer needed. Configure generates the right
Makefile for it.
1999-07-07 23:06:38 -05:00
Quincey Koziol
e95f56f325 [svn-r1443] Fixed regular expression for sed 1999-07-07 17:39:10 -05:00
Quincey Koziol
99c3c28d60 [svn-r1442] Updated Manifest for missing files 1999-07-07 17:38:44 -05:00
Quincey Koziol
64b1897a16 [svn-r1439] Regenerated HDF5 testfiles. 1999-07-07 15:18:35 -05:00
Quincey Koziol
a4667adeb7 [svn-r1438] Fixed distclean target 1999-07-07 15:18:17 -05:00
Quincey Koziol
f8b952010c [svn-r1435] Changed version number to 1.2.0 for beta release 1999-07-06 16:27:12 -05:00
Quincey Koziol
892963e190 [svn-r1434] Made perl script more portable. 1999-07-06 16:26:58 -05:00
Quincey Koziol
774fa582ea [svn-r1433] Changed version to 1.2.0 for beta release 1999-07-06 16:26:45 -05:00
425 changed files with 40486 additions and 13736 deletions

52
COPYING
View File

@@ -1,22 +1,24 @@
Copyright Notice and Statement for NCSA Hierarchical Data Format (HDF)
Software Library and Utilities
NCSA Hierarchical Data Format (HDF) Software Library and Utilities Copyright
1998 the Board of Trustees of the University of Illinois. All rights reserved.
NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities
Copyright 1998, 1999, 2000 by the Board of Trustees of the University of
Illinois. All rights reserved.
Contributors: National Center for Supercomputing Applications (NCSA) at the
University of Illinois, Lawrence Livermore Nat'l Laboratory (LLNL), Sandia
National Laboratories (SNL), Los Alamos National Laboratory (LANL).
University of Illinois at Urbana-Champaign (UIUC), Lawrence Livermore
National Laboratory (LLNL), Sandia National Laboratories (SNL), Los Alamos
National Laboratory (LANL), Jean-loup Gailly and Mark Adler (gzip library).
Redistribution and use in source and binary forms, with or without
modification, are permitted for any purpose (including commercial purposes)
provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
this list of conditions, and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
this list of conditions, and the following disclaimer in the documentation
and/or materials provided with the distribution.
3. In addition, redistributions of modified forms of the source or binary
@@ -24,9 +26,9 @@ provided that the following conditions are met:
changed and the date of the change.
4. All publications or advertising materials mentioning features or use of
this software must acknowledge that it was developed by the National
Center for Supercomputing Applications at the University of Illinois, and
credit the Contributors.
this software are asked, but not required, to acknowledge that it was
developed by the National Center for Supercomputing Applications at the
University of Illinois at Urbana-Champaign and to credit the contributors.
5. Neither the name of the University nor the names of the Contributors may
be used to endorse or promote products derived from this software without
@@ -37,3 +39,35 @@ provided that the following conditions are met:
shall the University or the Contributors be liable for any damages
suffered by the users arising out of the use of this software, even if
advised of the possibility of such damage.
--------------------------------------------------------------------------
Portions of HDF5 were developed with support from the University of
California, Lawrence Livermore National Laboratory (UC LLNL).
The following statement applies to those portions of the product
and must be retained in any redistribution of source code, binaries,
documentation, and/or accompanying materials:
This work was partially produced at the University of California,
Lawrence Livermore National Laboratory (UC LLNL) under contract no.
W-7405-ENG-48 (Contract 48) between the U.S. Department of Energy
(DOE) and The Regents of the University of California (University)
for the operation of UC LLNL.
DISCLAIMER:
This work was prepared as an account of work sponsored by an agency
of the United States Government. Neither the United States
Government nor the University of California nor any of their
employees, makes any warranty, express or implied, or assumes any
liability or responsibility for the accuracy, completeness, or
usefulness of any information, apparatus, product, or process
disclosed, or represents that its use would not infringe privately-
owned rights. Reference herein to any specific commercial products,
process, or service by trade name, trademark, manufacturer, or
otherwise, does not necessarily constitute or imply its endorsement,
recommendation, or favoring by the United States Government or the
University of California. The views and opinions of authors
expressed herein do not necessarily state or reflect those of the
United States Government or the University of California, and shall
not be used for advertising or product endorsement purposes.
--------------------------------------------------------------------------

847
HISTORY Normal file
View File

@@ -0,0 +1,847 @@
HDF5 HISTORY
============
CONTENTS
I. Release Information for hdf5-1.2.1
II. Release Information for hdf5-1.2.0
A. Platforms Supported
B. Known Problems
C. Changes Since Version 1.0.1
1. Documentation
2. Configuration
3. Debugging
4. Datatypes
5. Dataspaces
6. Persistent Pointers
7. Parallel Support
8. New API Functions
a. Property List Interface
b. Dataset Interface
c. Dataspace Interface
d. Datatype Interface
e. Identifier Interface
f. Reference Interface
g. Ragged Arrays
9. Tools
III. Changes Since the Version 1.0.0 Release
IV. Changes Since the Beta 1.0.0 Release
V. Changes Since the Second Alpha 1.0.0 Release
VI. Changes Since the First Alpha 1.0.0 Release
-----------------------------------------------------------------------
I. Release Information for hdf5-1.2.1
Bug fixes since HDF5-1.2.0
==========================
Configuration
-------------
* The hdf5.h include file was fixed to allow the HDF5 Library to be compiled
with other libraries/applications that use GNU autoconf.
* Configuration for parallel HDF5 was improved. Configure now attempts to
link with libmpi.a and/or libmpio.a as the MPI libraries by default.
It also uses "mpirun" to launch MPI tests by default. It tests to
link MPIO routines during the configuration stage, rather than failing
later as before. One can just do "./configure --enable-parallel"
if the MPI library is in the system library.
Library
-------
* Error was fixed which was not allowing dataset region references to have
their regions retrieved correctly.
* Added internal free-lists to reduce memory required by the library and
H5garbage_collect API function
* Fixed error in H5Giterate which was not updating the "index" parameter
correctly.
* Fixed error in hyperslab iteration which was not walking through the
correct sequence of array elements if hyperslabs were staggered in a
certain pattern
* Fixed several other problems in hyperslab iteration code.
Tests
------
* Added additional tests for group and attribute iteration.
* Added additional test for staggered hyperslab iteration.
* Added additional test for random 5-D hyperslab selection.
Tools
------
* Added an option, -V, to show the version information of h5dump.
* Fixed a core dumping bug of h5toh4 when executed on platforms like
TFLOPS.
* The test script for h5toh4 used to not able to detect the hdp
dumper command was not valid. It now detects and reports the
failure of hdp execution.
Documentation
-------------
* User's Guide and Reference Manual were updated.
See doc/html/PSandPDF/index.html for more details.
Platforms Tested:
================
Note: Due to the nature of bug fixes, only static versions of the library and tools were tested.
AIX 4.3.2 (IBM SP) 3.6.6
Cray T3E 2.0.4.81 cc 6.3.0.1
mpt.1.3
FreeBSD 3.3-STABLE gcc 2.95.2
HP-UX B.10.20 HP C HP92453-01 A.10.32
IRIX 6.5 MIPSpro cc 7.30
IRIX64 6.5 (64 & n32) MIPSpro cc 7.3.1m
mpt.1.3 (SGI MPI 3.2.0.0)
Linux 2.2.10 SuSE egcs-2.91.66 configured with
(i686-pc-linux-gnu) --disable-hsizet
mpich-1.2.0 egcs-2.91.66 19990314/Linux
OSF1 V4.0 DEC-V5.2-040
SunOS 5.6 cc WorkShop Compilers 4.2 no optimization
SunOS 5.7 cc WorkShop Compilers 5.0
TFLOPS 2.8 cicc (pgcc Rel 3.0-5i)
mpich-1.1.2 with local changes
Windows NT4.0 sp5 MSVC++ 6.0
Known Problems:
==============
o SunOS 5.6 with C WorkShop Compilers 4.2: Hyperslab selections will
fail if library is compiled using optimization of any level.
II. Release Information for hdf5-1.2.0
A. Platforms Supported
-------------------
Operating systems listed below with compiler information and MPI library, if
applicable, are systems that HDF5 1.2.0 was tested on.
Compiler & libraries
Platform Information Comment
-------- ---------- --------
AIX 4.3.2 (IBM SP) 3.6.6
Cray J90 10.0.0.6 cc 6.3.0.0
Cray T3E 2.0.4.61 cc 6.2.1.0
mpt.1.3
FreeBSD 3.2 gcc 2.95.1
HP-UX B.10.20 HP C HP92453-01 A.10.32
gcc 2.8.1
IRIX 6.5 MIPSpro cc 7.30
IRIX64 6.5 (64 & n32) MIPSpro cc 7.3.1m
mpt.1.3 (SGI MPI 3.2.0.0)
Linux 2.2.10 egcs-2.91.66 configured with
--disable-hsizet
lbraries: glibc2
OSF1 V4.0 DEC-V5.2-040
SunOS 5.6 cc WorkShop Compilers 4.2
no optimization
gcc 2.8.1
SunOS 5.7 cc WorkShop Compilers 5.0
gcc 2.8.1
TFLOPS 2.7.1 cicc (pgcc Rel 3.0-4i)
mpich-1.1.2 with local changes
Windows NT4.0 intel MSVC++ 5.0 and 6.0
Windows NT alpha 4.0 MSVC++ 5.0
Windows 98 MSVC++ 5.0
B. Known Problems
--------------
* NT alpha 4.0
Dumper utiliy h5dump fails if linked with DLL.
* SunOS 5.6 with C WorkShop Compilers 4.2
Hyperslab selections will fail if library is compiled using optimization
of any level.
C. Changes Since Version 1.0.1
---------------------------
1. Documentation
-------------
* More examples
* Updated user guide, reference manual, and format specification.
* Self-contained documentation for installations isolated from the
Internet.
* HDF5 Tutorial was added to the documentation
2. Configuration
-------------
* Better detection and support for MPI-IO.
* Recognition of compilers with known code generation problems.
* Support for various compilers on a single architecture (e.g., the
native compiler and the GNU compilers).
* Ability to build from read-only media and with different compilers
and/or options concurrently.
* Added a libhdf5.settings file which summarizes the configuration
information and is installed along with the library.
* Builds a shared library on most systems that support it.
* Support for Cray T3E, J90 and Windows/NT.
3. Debugging
---------
* Improved control and redirection of debugging and tracing messages.
4. Datatypes
---------
* Optimizations to compound datatype conversions and I/O operations.
* Added nearly 100 optimized conversion functions for native datatypes
including support for non-aligned data.
* Added support for bitfield, opaque, and enumeration types.
* Added distinctions between signed and unsigned char types to the
list of predefined native hdf5 datatypes.
* Added HDF5 type definitions for C9x types like int32_t.
* Application-defined type conversion functions can handle non-packed
data.
* Changed the H5Tunregister() function to use wildcards when matching
conversion functions. H5Tregister_hard() and H5Tregister_soft()
were combined into H5Tregister().
* Support for variable-length datatypes (arrays of varying length per
dataset element). Variable length strings currently supported only
as variable length arrays of 1-byte integers.
5. Dataspaces
----------
* New query functions for selections.
* I/O operations bypass the stripmining loop and go directly to
storage for certain contiguous selections in the absense of type
conversions. In other cases the stripmining buffers are used more
effectively.
* Reduced the number of I/O requests under certain circumstances,
improving performance on systems with high I/O latency.
6. Persistent Pointers
-------------------
* Object (serial and parallel) and dataset region (serial only)
references are implemented.
7. Parallel Support
----------------
* Improved parallel I/O performance.
* Supported new platforms: Cray T3E, Linux, DEC Cluster.
* Use vendor supported version of MPIO on SGI O2K and Cray platforms.
* Improved the algorithm that translates an HDF5 hyperslab selection
into an MPI type for better collective I/O performance.
8. New API functions
-----------------
a. Property List Interface:
------------------------
H5Pset_xfer - set data transfer properties
H5Pset_preserve - set dataset transfer property list status
H5Pget_preserve - get dataset transfer property list status
H5Pset_hyper_cache - indicates whether to cache hyperslab blocks during I/O
H5Pget_hyper_cache - returns information regarding the caching of
hyperslab blocks during I/O
H5Pget_btree_ratios - sets B-tree split ratios for a dataset
transfer property list
H5Pset_btree_ratios - gets B-tree split ratios for a dataset
transfer property list
H5Pset_vlen_mem_manager - sets the memory manager for variable-length
datatype allocation
H5Pget_vlen_mem_manager - sets the memory manager for variable-length
datatype allocation
b. Dataset Interface:
------------------
H5Diterate - iterate over all selected elements in a dataspace
H5Dget_storage_size - return the amount of storage required for a dataset
H5Dvlen_reclaim - reclaim VL datatype memory buffers
c. Dataspace Interface:
--------------------
H5Sget_select_hyper_nblocks - get number of hyperslab blocks
H5Sget_select_hyper_blocklist - get the list of hyperslab blocks
currently selected
H5Sget_select_elem_npoints - get the number of element points
in the current selection
H5Sget_select_elem_pointlist - get the list of element points
currently selected
H5Sget_select_bounds - gets the bounding box containing
the current selection
d. Datatype Interface:
-------------------
H5Tget_super - return the base datatype from which a
datatype is derived
H5Tvlen_create - creates a new variable-length dataype
H5Tenum_create - creates a new enumeration datatype
H5Tenum_insert - inserts a new enumeration datatype member
H5Tenum_nameof - returns the symbol name corresponding to a
specified member of an enumeration datatype
H5Tvalueof - return the value corresponding to a
specified member of an enumeration datatype
H5Tget_member_value - return the value of an enumeration datatype member
H5Tset_tag - tags an opaque datatype
H5Tget_tag - gets the tag associated with an opaque datatype
e. Identifier Interface:
---------------------
H5Iget_type - retrieve the type of an object
f. Reference Interface:
--------------------
H5Rcreate - creates a reference
H5Rdereference - open the HDF5 object referenced
H5Rget_region - retrieve a dataspace with the specified region selected
H5Rget_object_type - retrieve the type of object that an
object reference points to
g. Ragged Arrays (alpha) (names of those API functions were changed):
------------------------------------------------------------------
H5RAcreate - create a new ragged array (old name was H5Rcreate)
H5RAopen - open an existing array (old name was H5Ropen)
H5RAclose - close a ragged array (old name was H5Rclose)
H5RAwrite - write to an array (old name was H5Rwrite)
H5RAread - read from an array (old name was H5Rread)
9. Tools
-----
* Enhancements to the h5ls tool including the ability to list objects
from more than one file, to display raw hexadecimal data, to
show file addresses for raw data, to format output more reasonably,
to show object attributes, and to perform a recursive listing,
* Enhancements to h5dump: support new data types added since previous
versions.
* h5toh4: An hdf5 to hdf4 converter.
III. Changes Since The Version 1.0.0 Release
* [Improvement]: configure sets up the Makefile in the parallel tests
suit (testpar/) correctly.
* [Bug-Fix]: Configure failed for all IRIX versions other than 6.3.
It now configures correctly for all IRIX 6.x version.
* Released Parallel HDF5
Supported Features:
------------------
HDF5 files are accessed according to the communicator and INFO
object defined in the property list set by H5Pset_mpi.
Independent read and write accesses to fixed and extendable dimension
datasets.
Collective read and write accesses to fixed dimension datasets.
Supported Platforms:
-------------------
Intel Red
IBM SP2
SGI Origin 2000
Changes In This Release:
-----------------------
o Support of Access to Extendable Dimension Datasets.
Extendable dimension datasets must use chunked storage methods.
A new function, H5Dextend, is created to extend the current
dimensions of a dataset. The current release requires the
MPI application must make a collective call to extend the
dimensions of an extendable dataset before writing to the
newly extended area. (The serial does not require the
call of H5Dextend. The dimensions of an extendable
dataset is increased when data is written to beyond the
current dimensions but within the maximum dimensions.)
The required collective call of H5Dextend may be relaxed
in future release.
This release only support independent read and write accesses
to extendable datasets. Collective accesses to extendable
datasets will be implemented in future releases.
o Collective access to fixed dimension datasets.
Collective access to a dataset can be specified in the transfer
property list argument in H5Dread and H5Dwrite. The current
release supports collective access to fixed dimension datasets.
Collective access to extendable datasets will be implemented in
future releases.
o HDF5 files are opened according to Communicator and INFO object.
H5Dopen now records the communicator and INFO setup by H5Pset_mmpi
and pass them to the corresponding MPIO open file calls for
processing.
o This release has been tested on IBM SP2, Intel Red and SGI Origin 2000
systems. It uses the ROMIO version of MPIO interface for parallel
I/O supports.
IV. Changes Since The Beta 1.0.0 Release
* Added fill values for datasets. For contiguous datasets fill value
performance may be quite poor since the fill value is written to the
entire dataset when the dataset is created. This will be remedied
in a future version. Chunked datasets using fill values do not
incur any additional overhead. See H5Pset_fill_value().
* Multiple hdf5 files can be "mounted" on one another to create a
larger virtual file. See H5Fmount().
* Object names can be removed or changed but objects are never
actually removed from the file yet. See H5Gunlink() and H5Gmove().
* Added a tuning mechanism for B-trees to insure that sequential
writes to chunked datasets use less overhead. See H5Pset_btree_ratios().
* Various optimizations and bug fixes.
V. Changes Since The Second Alpha 1.0.0 Release
* Strided hyperslab selections in dataspaces now working.
* The compression API has been replaced with a more general filter
API. See doc/html/Filters.html for details.
* Alpha-quality 2d ragged arrays are implemented as a layer built on
top of other hdf5 objects. The API and storage format will almost
certainly change.
* More debugging support including API tracing. See Debugging.html.
* C and Fortran style 8-bit fixed-length character string types are
supported with space or null padding or null termination and
translations between them.
* Added function H5Fflush() to write all cached data immediately to
the file.
* Datasets maintain a modification time which can be retrieved with
H5Gstat().
* The h5ls tool can display much more information, including all the
values of a dataset.
VI. Changes Since The First Alpha 1.0.0 Release
* Two of the packages have been renamed. The data space API has been
renamed from `H5P' to `H5S' and the property list (template) API has
been renamed from `H5C' to `H5P'.
* The new attribute API `H5A' has been added. An attribute is a small
dataset which can be attached to some other object (for instance, a
4x4 transformation matrix attached to a 3-dimensional dataset, or an
English abstract attached to a group).
* The error handling API `H5E' has been completed. By default, when an
API function returns failure an error stack is displayed on the
standard error stream. The H5Eset_auto() controls the automatic
printing and H5E_BEGIN_TRY/H5E_END_TRY macros can temporarily
disable the automatic error printing.
* Support for large files and datasets (>2GB) has been added. There
is an html document that describes how it works. Some of the types
for function arguments have changed to support this: all arguments
pertaining to sizes of memory objects are `size_t' and all arguments
pertaining to file sizes are `hsize_t'.
* More data type conversions have been added although none of them are
fine tuned for performance. There are new converters from integer
to integer and float to float, but not between integers and floating
points. A bug has been fixed in the converter between compound
types.
* The numbered types have been removed from the API: int8, uint8,
int16, uint16, int32, uint32, int64, uint64, float32, and float64.
Use standard C types instead. Similarly, the numbered types were
removed from the H5T_NATIVE_* architecture; use unnumbered types
which correspond to the standard C types like H5T_NATIVE_INT.
* More debugging support was added. If tracing is enabled at
configuration time (the default) and the HDF5_TRACE environment
variable is set to a file descriptor then all API calls will emit
the function name, argument names and values, and return value on
that file number. There is an html document that describes this.
If appropriate debugging options are enabled at configuration time,
some packages will display performance information on stderr.
* Data types can be stored in the file as independent objects and
multiple datasets can share a data type.
* The raw data I/O stream has been implemented and the application can
control meta and raw data caches, so I/O performance should be
improved from the first alpha release.
* Group and attribute query functions have been implemented so it is
now possible to find out the contents of a file with no prior
knowledge.
* External raw data storage allows datasets to be written by other
applications or I/O libraries and described and accessed through
HDF5.
* Hard and soft (symbolic) links are implemented which allow groups to
share objects. Dangling and recursive symbolic links are supported.
* User-defined data compression is implemented although we may
generalize the interface to allow arbitrary user-defined filters
which can be used for compression, checksums, encryption,
performance monitoring, etc. The publicly-available `deflate'
method is predefined if the GNU libz.a can be found at configuration
time.
* The configuration scripts have been modified to make it easier to
build debugging vs. production versions of the library.
* The library automatically checks that the application was compiled
with the correct version of header files.
Parallel HDF5 Changes
* Parallel support for fixed dimension datasets with contiguous or
chunked storages. Also, support unlimited dimension datasets which
must use chunk storage. No parallel support for compressed datasets.
* Collective data transfer for H5Dread/H5Dwrite. Collective access
support for datasets with contiguous storage only, thus only fixed
dimension datasets for now.
* H5Pset_mpi and H5Pget_mpi no longer have the access_mode
argument. It is taken over by the data-transfer property list
of H5Dread/H5Dwrite.
* New functions H5Pset_xfer and H5Pget_xfer to handle the
specification of independent or collective data transfer_mode
in the dataset transfer properties list. The properties
list can be used to specify data transfer mode in the H5Dwrite
and H5Dread function calls.
* Added parallel support for datasets with chunked storage layout.
When a dataset is extend in a PHDF5 file, all processes that open
the file must collectively call H5Dextend with identical new dimension
sizes.
LIST OF API FUNCTIONS
The following functions are implemented. Errors are returned if an
attempt is made to use some feature which is not implemented and
printing the error stack will show `not implemented yet'.
Library
H5check - check that lib version matches header version
H5open - initialize library (happens automatically)
H5close - shut down the library (happens automatically)
H5dont_atexit - don't call H5close on exit
H5get_libversion - retrieve library version info
H5check_version - check for specific library version
Property Lists
H5Pclose - release template resources
H5Pcopy - copy a template
H5Pcreate - create a new template
H5Pget_chunk - get chunked storage properties
H5Pset_chunk - set chunked storage properties
H5Pget_class - get template class
H5Pget_istore_k - get chunked storage properties
H5Pset_istore_k - set chunked storage properties
H5Pget_layout - get raw data layout class
H5Pset_layout - set raw data layout class
H5Pget_sizes - get address and size sizes
H5Pset_sizes - set address and size sizes
H5Pget_sym_k - get symbol table storage properties
H5Pset_sym_k - set symbol table storage properties
H5Pget_userblock - get user-block size
H5Pset_userblock - set user-block size
H5Pget_version - get file version numbers
H5Pget_alignment - get data alignment properties
H5Pset_alignment - set data alignment properties
H5Pget_external_count- get count of external data files
H5Pget_external - get information about an external data file
H5Pset_external - add a new external data file to the list
H5Pget_driver - get low-level file driver class
H5Pget_stdio - get properties for stdio low-level driver
H5Pset_stdio - set properties for stdio low-level driver
H5Pget_sec2 - get properties for sec2 low-level driver
H5Pset_sec2 - set properties for sec2 low-level driver
H5Pget_core - get properties for core low-level driver
H5Pset_core - set properties for core low-level driver
H5Pget_split - get properties for split low-level driver
H5Pset_split - set properties for split low-level driver
H5P_get_family - get properties for family low-level driver
H5P_set_family - set properties for family low-level driver
H5Pget_cache - get meta- and raw-data caching properties
H5Pset_cache - set meta- and raw-data caching properties
H5Pget_buffer - get raw-data I/O pipe buffer properties
H5Pset_buffer - set raw-data I/O pipe buffer properties
H5Pget_preserve - get type conversion preservation properties
H5Pset_preserve - set type conversion preservation properties
H5Pget_nfilters - get number of raw data filters
H5Pget_filter - get raw data filter properties
H5Pset_filter - set raw data filter properties
H5Pset_deflate - set deflate compression filter properties
H5Pget_mpi - get MPI-IO properties
H5Pset_mpi - set MPI-IO properties
H5Pget_xfer - get data transfer properties
+ H5Pset_xfer - set data transfer properties
+ H5Pset_preserve - set dataset transfer property list status
+ H5Pget_preserve - get dataset transfer property list status
+ H5Pset_hyper_cache - indicates whether to cache hyperslab blocks during I/O
+ H5Pget_hyper_cache - returns information regarding the caching of
hyperslab blocks during I/O
+ H5Pget_btree_ratios - sets B-tree split ratios for a dataset
transfer property list
+ H5Pset_btree_ratios - gets B-tree split ratios for a dataset
transfer property list
+ H5Pset_vlen_mem_manager - sets the memory manager for variable-length
datatype allocation
+ H5Pget_vlen_mem_manager - sets the memory manager for variable-length
datatype allocation
Datasets
H5Dclose - release dataset resources
H5Dcreate - create a new dataset
H5Dget_space - get data space
H5Dget_type - get data type
H5Dget_create_plist - get dataset creation properties
H5Dopen - open an existing dataset
H5Dread - read raw data
H5Dwrite - write raw data
H5Dextend - extend a dataset
+ H5Diterate - iterate over all selected elements in a dataspace
+ H5Dget_storage_size - return the amount of storage required for a dataset
+ H5Dvlen_reclaim - reclaim VL datatype memory buffers
Attributes
H5Acreate - create a new attribute
H5Aopen_name - open an attribute by name
H5Aopen_idx - open an attribute by number
H5Awrite - write values into an attribute
H5Aread - read values from an attribute
H5Aget_space - get attribute data space
H5Aget_type - get attribute data type
H5Aget_name - get attribute name
H5Anum_attrs - return the number of attributes for an object
H5Aiterate - iterate over an object's attributes
H5Adelete - delete an attribute
H5Aclose - close an attribute
Errors
H5Eclear - clear the error stack
H5Eprint - print an error stack
H5Eget_auto - get automatic error reporting settings
H5Eset_auto - set automatic error reporting
H5Ewalk - iterate over the error stack
H5Ewalk_cb - the default error stack iterator function
H5Eget_major - get the message for the major error number
H5Eget_minor - get the message for the minor error number
Files
H5Fclose - close a file and release resources
H5Fcreate - create a new file
H5Fget_create_plist - get file creation property list
H5Fget_access_plist - get file access property list
H5Fis_hdf5 - determine if a file is an hdf5 file
H5Fopen - open an existing file
H5Freopen - reopen an HDF5 file
H5Fmount - mount a file
H5Funmount - unmount a file
H5Fflush - flush all buffers associated with a file to disk
Groups
H5Gclose - close a group and release resources
H5Gcreate - create a new group
H5Gopen - open an existing group
H5Giterate - iterate over the contents of a group
H5Gmove - change the name of some object
H5Glink - create a hard or soft link to an object
H5Gunlink - break the link between a name and an object
H5Gget_objinfo - get information about a group entry
H5Gget_linkval - get the value of a soft link
H5Gget_comment - get the comment string for an object
H5Gset_comment - set the comment string for an object
Dataspaces
H5Screate - create a new data space
H5Scopy - copy a data space
H5Sclose - release data space
H5Screate_simple - create a new simple data space
H5Sset_space - set simple data space extents
H5Sis_simple - determine if data space is simple
H5Sset_extent_simple - set simple data space dimensionality and size
H5Sget_simple_extent_npoints - get number of points in simple extent
H5Sget_simple_extent_ndims - get simple data space dimensionality
H5Sget_simple_extent_dims - get simple data space size
H5Sget_simple_extent_type - get type of simple extent
H5Sset_extent_none - reset extent to be empty
H5Sextent_copy - copy the extent from one data space to another
H5Sget_select_npoints - get number of points selected for I/O
H5Sselect_hyperslab - set hyperslab dataspace selection
H5Sselect_elements - set element sequence dataspace selection
H5Sselect_all - select entire extent for I/O
H5Sselect_none - deselect all elements of extent
H5Soffset_simple - set selection offset
H5Sselect_valid - determine if selection is valid for extent
+ H5Sget_select_hyper_nblocks - get number of hyperslab blocks
+ H5Sget_select_hyper_blocklist - get the list of hyperslab blocks
currently selected
+ H5Sget_select_elem_npoints - get the number of element points
in the current selection
+ H5Sget_select_elem_pointlist - get the list of element points
currently selected
+ H5Sget_select_bounds - gets the bounding box containing
the current selection
Datatypes
H5Tclose - release data type resources
H5Topen - open a named data type
H5Tcommit - name a data type
H5Tcommitted - determine if a type is named
H5Tcopy - copy a data type
H5Tcreate - create a new data type
H5Tequal - compare two data types
H5Tlock - lock type to prevent changes
H5Tfind - find a data type conversion function
H5Tconvert - convert data from one type to another
H5Tregister - register a conversion function
H5Tunregister - remove a conversion function
H5Tget_overflow - get function that handles overflow conv. cases
H5Tset_overflow - set function to handle overflow conversion cases
H5Tget_class - get data type class
H5Tget_cset - get character set
H5Tget_ebias - get exponent bias
H5Tget_fields - get floating point fields
H5Tget_inpad - get inter-field padding
H5Tget_member_dims - get struct member dimensions
H5Tget_member_name - get struct member name
H5Tget_member_offset - get struct member byte offset
H5Tget_member_type - get struct member type
H5Tget_nmembers - get number of struct members
H5Tget_norm - get floating point normalization
H5Tget_offset - get bit offset within type
H5Tget_order - get byte order
H5Tget_pad - get padding type
H5Tget_precision - get precision in bits
H5Tget_sign - get integer sign type
H5Tget_size - get size in bytes
H5Tget_strpad - get string padding
H5Tinsert - insert scalar struct member
H5Tinsert_array - insert array struct member
H5Tpack - pack struct members
H5Tset_cset - set character set
H5Tset_ebias - set exponent bias
H5Tset_fields - set floating point fields
H5Tset_inpad - set inter-field padding
H5Tset_norm - set floating point normalization
H5Tset_offset - set bit offset within type
H5Tset_order - set byte order
H5Tset_pad - set padding type
H5Tset_precision - set precision in bits
H5Tset_sign - set integer sign type
H5Tset_size - set size in bytes
H5Tset_strpad - set string padding
+ H5Tget_super - return the base datatype from which a
datatype is derived
+ H5Tvlen_create - creates a new variable-length dataype
+ H5Tenum_create - creates a new enumeration datatype
+ H5Tenum_insert - inserts a new enumeration datatype member
+ H5Tenum_nameof - returns the symbol name corresponding to a
specified member of an enumeration datatype
+ H5Tvalueof - return the value corresponding to a
specified member of an enumeration datatype
+ H5Tget_member_value - return the value of an enumeration datatype member
+ H5Tset_tag - tags an opaque datatype
+ H5Tget_tag - gets the tag associated with an opaque datatype
- H5Tregister_hard - register specific type conversion function
- H5Tregister_soft - register general type conversion function
Filters
H5Tregister - register a conversion function
Compression
H5Zregister - register new compression and uncompression
functions for a method specified by a method number
Identifiers
+ H5Iget_type - retrieve the type of an object
References
+ H5Rcreate - creates a reference
+ H5Rdereference - open the HDF5 object referenced
+ H5Rget_region - retrieve a dataspace with the specified region selected
+ H5Rget_object_type - retrieve the type of object that an
object reference points to
Ragged Arrays (alpha)
H5RAcreate - create a new ragged array
H5RAopen - open an existing array
H5RAclose - close a ragged array
H5RAwrite - write to an array
H5RAread - read from an array

234
INSTALL
View File

@@ -1,33 +1,77 @@
-*- outline -*-
This file contains instructions for the installation of HDF5 on
Unix-like systems. Users of the Intel TFLOPS machine should see the
INSTALL.ascired for instructions.
Instructions for the Installation of the HDF5 Software
======================================================
* Obtaining HDF5
CONTENTS
--------
1. Obtaining HDF5
2. Warnings about compilers
2.1. GNU (Intel platforms)
2.2. DEC
2.3. SGI (Irix64 6.2)
2.4. Windows/NT
3. Quick installation
3.1. TFLOPS
3.2. Windows
4. HDF5 dependencies
4.1. Zlib
4.2. MPI and MPI-IO
5. Full installation instructions for source distributions
5.1. Unpacking the distribution
5.1.1. Non-compressed tar archive (*.tar)
5.1.2. Compressed tar archive (*.tar.Z)
5.1.3. Gzip'd tar archive (*.tar.gz)
5.1.4. Bzip'd tar archive (*.tar.bz2)
5.2. Source vs. Build Directories
5.3. Configuring
5.3.1. Specifying the installation directories
5.3.2. Using an alternate C compiler
5.3.3. Additional compilation flags
5.3.4. Specifying other programs
5.3.5. Specifying other libraries and headers
5.3.6. Static versus shared linking
5.3.7. Optimization versus symbolic debugging
5.3.8. Large (>2GB) vs. small (<2GB) file capability
5.3.9. Parallel vs. serial library
5.4. Building
5.5. Testing
5.6. Installing
6. Using the Library
7. Support
*****************************************************************************
1. Obtaining HDF5
The latest supported public release of HDF5 is available from
ftp://hdf.ncsa.uiuc.edu/pub/dist/HDF5 and is available in tar
format uncompressed or compressed with compress, gzip, or
bzip2.
ftp://hdf.ncsa.uiuc.edu/pub/dist/HDF5. For Unix platforms, it
is available in tar format uncompressed or compressed with
compress, gzip, or bzip2. For Microsoft Windows, it is in
ZIP format.
The HDF team also makes snapshots of the source code available
on a regular basis but these. These snapshots are unsupported
(that is, the HDF team will not release a bug-fix on a
particular snapshot; rather any bug fixes will be rolled into
the next snapshot). Furthermore, the snapshots have only been
tested on a few machines and may not test correctly for
parallel applications. Snapshots can be found at
The HDF team also makes snapshots of the source code available
on a regular basis. These snapshots are unsupported (that is,
the HDF team will not release a bug-fix on a particular
snapshot; rather any bug fixes will be rolled into the next
snapshot). Furthermore, the snapshots have only been tested on
a few machines and may not test correctly for parallel
applications. Snapshots can be found at
ftp://hdf.ncsa.uiuc.edu/pub/outgoing/hdf5/snapshots in a
limited number for formats.
limited number of formats.
* Warnings about compilers
2. Warnings about compilers
OUTPUT FROM THE FOLLOWING COMPILERS SHOULD BE EXTREMELY
SUSPECT WHEN USED TO COMPILE THE HDF5 LIBRARY, ESPECIALLY IF
OPTIMIZATIONS ARE ENABLED. IN ALL CASES, HDF5 ATTEMPTS TO WORK
AROUND THE COMPILER BUGS BUT THE HDF5 DEVELOPMENT TEAM MAKES
NO GUARANTEES THAT THERE ARE OTHER CODE GENERATION PROBLEMS.
** GNU (Intel platforms)
2.1. GNU (Intel platforms)
Versions before 2.8.1 have serious problems allocating
registers when functions contain operations on `long long'
data types. Supplying the `--disable-hsizet' switch to
@@ -35,68 +79,88 @@ INSTALL.ascired for instructions.
`long long' data types in situations that are known not to
work, but it limits the hdf5 address space to 2GB.
** DEC
2.2. DEC
The V5.2-038 compiler (and possibly others) occasionally
generates incorrect code for memcpy() calls when optimizations
are enabled, resulting in unaligned access faults. HDF5 works
around the problem by casting the second argument to `char*'.
** SGI (Irix64 6.2)
2.3. SGI (Irix64 6.2)
The Mongoose 7.00 compiler has serious optimization bugs and
should be upgraded to MIPSpro 7.2.1.2m. Patches are available
from SGI.
** Windows/NT
2.4. Windows/NT
The MicroSoft Win32 5.0 compiler is unable to cast unsigned
long long values to doubles. HDF5 works around this bug by
first casting to signed long long and then to double.
* Quick installation
3. Quick installation
For those that don't like to read ;-) the following steps can
be used to configure, build, test, and install the HDF5
library, header files, and support programs.
$ gunzip <hdf5-1.0.0.tar.gz |tar xf -
$ cd hdf5-1.0.0
$ gunzip hdf5-1.2.2.tar.gz | tar xf -
$ cd hdf5-1.2.2
$ make check
$ make install
* HDF5 dependencies
** Zlib
3.1. TFLOPS
Users of the Intel TFLOPS machine, after reading this file,
should see the INSTALL_TFLOPS for more instructions.
3.2. Windows
Users of Microsoft Windows should see the INSTALL_Windows.txt
for detailed instructions.
4. HDF5 dependencies
4.1. Zlib
The HDF5 library has a predefined compression filter that uses
the "deflate" method for chunked datatsets. If zlib-1.1.2 or
later is found then hdf5 will use it, otherwise HDF5's
later is found then HDF5 will use it, otherwise HDF5's
predefined compression method will degenerate to a no-op (the
compression filter will succeed but the data will not be
compressed).
** MPI and MPI-IO
4.2. MPI and MPI-IO
The parallel version of the library is built upon the
foundation provided by MPI and MPI-IO. If these libraries are
not available when HDF5 is configured then only a serial
version of HDF5 can be built.
* Full installation instructions for source distributions
** Unpacking the distribution
5. Full installation instructions for source distributions
5.1. Unpacking the distribution
The HDF5 source code is distributed in a variety of formats
which can be unpacked with the following commands, each of
which creates an `hdf5-1.0.0' directory.
which creates an `hdf5-1.2.2' directory.
*** Non-compressed tar archive (*.tar)
$ tar xf hdf5-1.0.0.tar
5.1.1. Non-compressed tar archive (*.tar)
$ tar xf hdf5-1.2.2.tar
*** Compressed tar archive (*.tar.Z)
$ uncompress -c <hdf5-1.0.0.tar.Z |tar xf -
5.1.2. Compressed tar archive (*.tar.Z)
$ uncompress -c hdf5-1.2.2.tar.Z |tar xf -
*** Gzip'd tar archive (*.tar.gz)
$ gunzip <hdf5-1.0.0.tar.gz |tar xf -
5.1.3. Gzip'd tar archive (*.tar.gz)
$ gunzip hdf5-1.2.2.tar.gz |tar xf -
*** Bzip'd tar archive (*.tar.bz2)
$ bunzip2 <hdf5-1.0.0.tar.gz |tar xf -
5.1.4. Bzip'd tar archive (*.tar.bz2)
$ bunzip2 hdf5-1.2.2.tar.gz |tar xf -
** Configuring
5.2. Source vs. Build Directories
On most systems the build can occur in a directory other than
the source directory, allowing multiple concurrent builds
and/or read-only source code. In order to accomplish this, one
should create a build directory, cd into that directory, and
run the `configure' script found in the source directory
(configure details are below).
Unfortunately, this does not work on recent Irix platforms
(6.5? and later) because that `make' doesn't understand the
VPATH variable. This will be fixed in the next release.
5.3. Configuring
HDF5 uses the GNU autoconf system for configuration, which
detects various features of the host system and creates the
Makefiles. On most systems it should be sufficient to say:
@@ -114,20 +178,20 @@ INSTALL.ascired for instructions.
influences the behavior of configure by setting or augmenting
shell variables.
*** Specifying the installation directories
5.3.1. Specifying the installation directories
Typing `make install' will install the HDF5 library, header
files, and support programs in /usr/local/lib,
/usr/local/include, and /usr/local/bin. To use a path other
than /usr/local specify the path with the `--prefix=PATH'
switch:
$ ./configure --prefix=/home/robb
$ ./configure --prefix=$HOME
If shared libraries are being built (the default) then the
final home of the shared library must be specified with this
switch before the library and executables are built.
*** Using an alternate C compiler
5.3.2. Using an alternate C compiler
By default, configure will look for the C compiler by trying
`gcc' and `cc'. However, if the environment variable "CC" is
set then its value is used as the C compiler (users of csh and
@@ -145,12 +209,18 @@ INSTALL.ascired for instructions.
$ CC=/usr/local/mpi/bin/mpicc ./configure
On Irix64 the default compiler is `cc -64'. To use an
On Irix64 the default compiler is `cc'. To use an
alternate compiler specify it with the CC variable:
$ CC='cc -o32' ./configure
$ CC='cc -n32' ./configure
*** Additional compilation flags
One may also use various environment variables to change the
behavior of the compiler. E.g., to ask for -n32 ABI:
$ SGI_ABI=-n32
$ export SGI_ABI
$ ./configure
5.3.3. Additional compilation flags
If addtional flags must be passed to the compilation commands
then specify those flags with the CFLAGS variable. For
instance, to enable symbolic debugging of a production version
@@ -158,7 +228,7 @@ INSTALL.ascired for instructions.
$ CFLAGS=-g ./confgure --enable-production
*** Specifying other programs
5.3.4. Specifying other programs
The build system has been tuned for use with GNU make but
works also with other versions of make. If the `make' command
runs a non-GNU version but a GNU version is available under a
@@ -179,9 +249,8 @@ INSTALL.ascired for instructions.
install program detected automatically by configure. If none
is found then the shell script bin/install-sh is
used. Configure doesn't check that the install script actually
works, but if a bad install is detected on your system (e.g.,
on the ASCI blue machine as of March 2, 1999) you have two
choices:
works, but if a bad install is detected on your system, you
have two choices:
1. Copy the bin/install-sh program to your $HOME/bin
directory, name it `install', and make sure that
@@ -195,7 +264,7 @@ INSTALL.ascired for instructions.
program to also change file ownership and/or access
permissions.
*** Specifying other libraries and headers
5.3.5. Specifying other libraries and headers
Configure searches the standard places (those places known by
the systems compiler) for include files and header
files. However, additional directories can be specified by
@@ -229,7 +298,7 @@ INSTALL.ascired for instructions.
version of hdf4 the confidence testing will fail in the tools
directory.
*** Static versus shared linking
5.3.6. Static versus shared linking
The build process will create static libraries on all systems
and shared libraries on systems that support dynamic linking
to a sufficient degree. Either form of library may be
@@ -237,7 +306,7 @@ INSTALL.ascired for instructions.
$ ./configure --disable-shared
*** Optimization versus symbolic debugging
5.3.7. Optimization versus symbolic debugging
The library can be compiled to provide symbolic debugging
support so it can be debugged with gdb, dbx, ddd, etc or it
can be compiled with various optimizations. To compile for
@@ -276,7 +345,7 @@ INSTALL.ascired for instructions.
releases). The tracing must also be enabled at runtime to see
any output (see Debugging.html).
*** Large (>2GB) vs. small (<2GB) file capability
5.3.8. Large (>2GB) vs. small (<2GB) file capability
In order to read or write files that could potentially be
larger than 2GB it is necessary to use the non-ANSI `long
long' data type on some platforms. However, some compilers
@@ -287,46 +356,13 @@ INSTALL.ascired for instructions.
$ ./configure --disable-hsizet
*** Parallel vs. serial library
5.3.9. Parallel vs. serial library
The HDF5 library can be configured to use MPI and MPI-IO for
parallelizm on a distributed multi-processor system. The easy
way to do this is to have a properly installed parallel
compiler (e.g., MPICH's mpicc or IBM's mpcc) and supply that
executable as the value of the CC environment variable:
parallelism on a distributed multi-processor system. Read the
file INSTALL_parallel for detailed explanations.
$ CC=mpcc ./configure
$ CC=/usr/local/mpi/bin/mpicc ./configure
If no such wrapper script is available then you must specify
your normal C compiler along with the distribution of
MPI/MPI-IO which is to be used (values other than `mpich' will
be added at a later date):
$ ./configure --enable-parallel=mpich
If the MPI/MPI-IO include files and/or libraries cannot be
found by the compiler then their directories must be given as
arguments to CPPFLAGS and/or LDFLAGS:
$ CPPFLAGS=-I/usr/local/mpi/include \
LDFLAGS=-L/usr/local/mpi/lib/LINUX/ch_p4 \
./configure --enable-parallel=mpich
If a parallel library is being built then configure attempts
to determine how to run a parallel application on one
processor and on many processors. If the compiler is mpicc
and the user hasn't specified values for RUNSERIAL and
RUNPARALLEL then configure chooses `mpirun' from the same
directory as `mpicc':
RUNSERIAL: /usr/local/mpi/bin/mpirun -np 1
RUNPARALLEL: /usr/local/mpi/bin/mpirun -np $${NPROCS:=2}
The `$${NPROCS:=2}' will be substituted with the value of the
NPROCS environment variable at the time `make check' is run
(or the value 2).
** Building
5.4. Building
The library, confidence tests, and programs can be build by
saying just
@@ -343,7 +379,7 @@ INSTALL.ascired for instructions.
$ make -j -l6
** Testing
5.5. Testing
HDF5 comes with various test suites, all of which can be run
by saying
@@ -359,7 +395,7 @@ INSTALL.ascired for instructions.
fails. To prevent deletion of the files define the
HDF5_NOCLEANUP environment variable.
** Installing
5.6. Installing
The HDF5 library, include files, and support programs can be
installed in a (semi-)public place by saying `make
install'. The files are installed under the directory
@@ -368,6 +404,12 @@ INSTALL.ascired for instructions.
exist prior to `make install', but its subdirectories are
created automatically.
If `make install' fails because the install command at your
site somehow fails, you may use the install-sh that comes
with the source. You need to run ./configure again.
$ INSTALL="$PWD/bin/install-sh -c" ./configure ...
$ make install
The library can be used without installing it by pointing the
compiler at the `src' directory for both include files and
libraries. However, the minimum which must be installed to
@@ -393,7 +435,7 @@ INSTALL.ascired for instructions.
./tools/h5debug (low-level file debugging)
./tools/h5import (a demo)
* Using the Library
6. Using the Library
Please see the User Manual in the doc/html directory.
Most programs will include <hdf5.h> and link with
@@ -405,6 +447,6 @@ INSTALL.ascired for instructions.
libhdf5.settings file in the same directory as the static
and/or shared hdf5 libraries.
* Support
Support is described in the README file.
7. Support
Support is described in the RELEASE file.

View File

@@ -1,133 +0,0 @@
FOR THE INTEL TFLOPS MACHINE:
Below are the step-by-step procedures for building, testing, and
installing both the sequential and parallel versions of the HDF5 library.
---------------
Sequential HDF5:
---------------
The setup process for building the sequential HDF5 library for the
ASCI Red machine is done by a coordination of events from sasn100 and
janus. Special effort must be made to move the compiled and linked
testers to disks local to the processors for execution. This special
effort is shown here at steps 9) and steps 10).
The total required steps are something similar to:
FROM SASN100,
1) uncompress hdf5-1.1.0.tar.Z
2) tar xvf hdf5-1.1.0.tar
3) cd ./hdf5
4) ./configure tflop
5) make H5detect
FROM JANUS,
6) cd ./hdf5
7) make H5Tinit.c
FROM SASN100,
8) make >&! comp.out &
When everything is finished compiling and linking,
FROM JANUS,
9) cp -r ../hdf5 /scratch
10) cd /scratch/hdf5/test
11) make test >&! test.out
Once satisfied with the test results, as long as you
have the correct permission,
FROM SASN100,
12) make install
---------------
Parallel HDF5:
---------------
The setup process for building the parallel version of the HDF5 library for the
ASCI Red machine is very similar to the sequential version. It is done by a
coordination of events from sasn100 and janus. Special effort must be made to
move the compiled and linked single processor testers to disks local to the
processor for execution. This special effort is shown here at steps 9) and
steps 10). Following these test, there are the edit, compile, link, and
execution of parallel tests described in steps 12) through 16).
The total required steps are something similar to:
FROM SASN100,
1) uncompress hdf5-1.1.0.tar.Z
2) tar xvf hdf5-1.1.0.tar
3) cd ./hdf5
4) sh INSTALL_parallel.ascired /* this is different from the sequential version */
5) make H5detect
FROM JANUS,
6) cd ./hdf5
7) make H5Tinit.c
FROM SASN100,
8) make >&! comp.out &
When everything is finished compiling and linking,
FROM JANUS,
9) cp -rp ../hdf5 /scratch
10) cd /scratch/hdf5/test
11) make test >&! test.out
Once satisfied with the single processor test results,
FROM SASN100,
12) cd testpar
13) go through the README file.
14) make -f Makefile.ascired
When everything is finished compiling and linking,
FROM JANUS,
15) cd ./hdf5/testpar
16) make test -f Makefile.ascired >&! test.out
Once satisfied with the parallel test results, as long as you
have the correct permission,
FROM SASN100,
17) make install

View File

@@ -1,28 +0,0 @@
This file contains instructions for the installation a version of HDF5
that uses the parallel file I/O facilities of the MPI-IO library. A
parallel version of HDF5 can run in a serial environment as long as
the appropriate MPI-IO and MPI header files and libraries are
available.
The parallel version of hdf5 can be build by generally following the
instructions in the INSTALL file for building a serial version and
using `mpicc' as the C compiler. This can be done by setting the CC
environment variable before invoking configure as with:
$ CC=mpicc ./configure
If the mpicc compiler is not available then a parallel library can
still be built as long as the appropriate header files and libraries
can be found. If these files are part of the default compiler search
paths then configuration is as simple as:
$ ./configure --enable-parallel
Otherwise, if the MPI and MPI-IO header files or library cannot be
found then the compiler search paths can be corrected, the files can
be moved, or configure can be told about the file locations. The
latter is done with something like:
$ CPPFLAGS=-I/usr/local/mpi/include \
LDFLAGS=-L/usr/local/mpi/lib/LINUX/ch_p4 \
./configure --enable-parallel

155
INSTALL_TFLOPS Normal file
View File

@@ -0,0 +1,155 @@
FOR THE INTEL TFLOPS MACHINE:
Below are the step-by-step procedures for building, testing, and
installing both the sequential and parallel versions of the HDF5 library.
---------------
Sequential HDF5:
---------------
The setup process for building the sequential HDF5 library for the
ASCI Red machine is done by a coordination of events from sasn100 and
janus. Though janus can do compiling, it is better to build it
from sasn100 which has more complete building tools and runs faster.
It is also anti-social to tie up janus with compiling. The HDF5 building
requires the use of janus because one of steps is to execute a program
to find out the run-time characteristics of the TFLOPS machine.
Assuming you have already unpacked the HDF5 tar-file into the
directory <hdf5>, follow the steps below:
FROM SASN100,
1) cd <hdf5>
2) ./configure tflop
2.1) Due to a bug, you must first edit the files, src/Makefile and
test/Makefile with the following shell commands before doing make.
# Patch up various Makefile's.
# patch up src/Makefile
ed - src/Makefile <<'EOF'
/^LT_RUN=.*/s//LT_RUN=$(RUNTEST)/
w
q
EOF
# patch up test/Makefile
ed - test/Makefile <<'EOF'
/^RUNTEST=$(LT_RUN)/s/^/#/
w
q
EOF
3) make H5detect
FROM JANUS,
4) cd <hdf5>
5) make H5Tinit.c
FROM SASN100,
6) make
When everything is finished compiling and linking,
you can run the tests by
FROM JANUS,
7) make check
Note: Sometimes the "make check" fails in the sub-directories of test
or tools with a message as "print not found". This is due to the
"make" of Janus thinking some binary code needs to be recompiled.
I suspect it may be due to file timestamp problems between SASN100
and JANUS. The easiest way to fix it is
FROM SASN100
cd <hdf5>/test # or cd <hdf5>/tools
make clean; make # re-make all binary
Once satisfied with the test results, you can install
the software by
FROM SASN100,
8) make install
---------------
Parallel HDF5:
---------------
The setup process for building the parallel version of the HDF5 library for the
ASCI Red machine is very similar to the sequential version. Since TFLOPS
does not support MPIO, we have prepared a shell-script file that configures
with the appropriate MPI library.
Assuming you have already unpacked the HDF5 tar-file into the
directory <hdf5>, follow the steps below:
FROM SASN100,
1) cd <hdf5>
2) CC=/usr/community/mpich/mpich-1.1.2/bin/mpicc ./configure --enable-parallel
/* If you want to use your own MPI and/or MPIO libraries, */
/* you may check the file bin/config_para_tflops.sh for details. */
2.1) Due to a bug, you must first edit the files, src/Makefile and
test/Makefile with the following shell commands before doing make.
# Patch up various Makefile's.
# patch up src/Makefile
ed - src/Makefile <<'EOF'
/^LT_RUN=.*/s//LT_RUN=$(RUNTEST)/
w
q
EOF
# patch up test/Makefile
ed - test/Makefile <<'EOF'
/^RUNTEST=$(LT_RUN)/s/^/#/
w
q
EOF
3) make H5detect
FROM JANUS,
4) cd <hdf5>
5) make H5Tinit.c
FROM SASN100,
6) make
When everything is finished compiling and linking,
FROM JANUS,
7) make check
Note: Sometimes the "make check" fails in the sub-directories of test
or tools with a message as "print not found". This is due to the
"make" of Janus thinking some binary code needs to be recompiled.
I suspect it may be due to file timestamp problems between SASN100
and JANUS. The easiest way to fix it is
FROM SASN100
cd <hdf5>/test # or cd <hdf5>/tools
make clean; make # re-make all binary
Once satisfied with the parallel test results, as long as you
have the correct permission,
FROM SASN100,
8) make install

337
INSTALL_Windows.txt Normal file
View File

@@ -0,0 +1,337 @@
HDF5 Install Instructions for Windows NT/95/98.
-------------------------------------------------------------------------
The instructions which follow assume that you will be using the the source
code release 'zip' file (hdf5-1_2_2.zip).
The following sections discuss in detail installation procedures.
Building from Source Code Release (hdf5-1_2_2.zip)
===============================================
STEP I: Preconditions
To build the HDF5 and tests, it is assumed that you have done the following:
1. Installed MicroSoft Developer Studio, and Visual C++ 6.0.
2. Set up a directory structure to unpack the library. For
example:
c:\ (any drive)
MyHDFstuff\ (any folder name)
3. Copied the source distribution archive to that directory
and unpacked it using the appropriate archiver options to
create a directory hierarchy.
Run WinZip on hdf5-1_2_2.zip (the entire source tree).
This creates a directory called 'hdf5' which
contains several files and directories.
4. You do not have a version of the zlib library and you would like to
use it. If you do not want to use the zlib library or have your own
version read the section about the zlib library.
STEP II: Building the Libraries and tests.
1. Rename the directory under C:\myHDFstuff\ from hdf5xxx to hdf5.
2. Unpack the c:\myHDFstuff\hdf5\all.zip into the 'myHDFstuff' directory
and move the zlib.dll from c:\myHDFstuff\hdf5\src\zlib\dll to the Windows
system directory.
NOTE TO ALPHA USERS- the version of zlib that is packaged in all.zip
is for Intel platforms. The Alpha versions of the libraries can be
obtained from ftp://hdf.ncsa.uiuc.edu/HDF5/. The file to download
is Alphazlib.zip. After the file is downloaded replace the src\zlib
directory with the files from Alphazlib.zip.
3. Invoke Microsoft Visual C++, go to "File" and select
the "Open Workspace" option.
Then open the c:\myHDFstuff\hdf5\proj\all\all.dsw workspace.
4. Select "Build", then Select "Set Active Configuration".
On Windows platform select as the active configuration
"all -- Win32 Debug" to build debug versions of single-threaded
static libraries, and tests.
or
"all -- Win32 Release" to build release versions of single-threaded
static libraries, and tests.
On the Alpha platform select as the active configuration
"all -- Win32 AlphaDbg" to build debug versions of single-threaded
static libraries, and tests.
or
"all -- Win32 AlphaRel" to build release versions of single-threaded
static libraries, and tests.
Select "Build" and "Build all.exe" to
build the corresponding version of the HDF5 library.
NOTE: "all" is a dummy target. You will get a link error when
"all.exe." is built :
LINK: error LNK2001: unresolved external symbol
_mainCRTStartup.....
all.exe - 2 error(s), ....
Warning messages can be ignored. The "all.exe" is never created,
so it is OK.
When the debug or release build is done the directories listed
below will contain the following files :
c:\MyHDFstuff\hdf5\proj\hdf5\debug -
c:\MyHDFstuff\hdf5\proj\hdf5\release -
hdf5.lib- the hdf5 library
c:\MyHDFstuff\hdf5\proj\hdf5dll\debug -
c:\MyHDFstuff\hdf5\proj\hdf5dll\release -
hdf5.dll- the hdf5 library
hdf5.lib- the dll export library
c:\MyHDFstuff\hdf5\test\"test directory"-
where test directory is one of the following:
big
bittests
chunk
cmpd_dset
dsets
dtypes
enum
extend
external
fillval
flush1
flush2
gheap
hyperslab
iopipe
istore
links
mount
mtime
ohdr
overhead
ragged
stab
testhdf5
unlink
Each test directory contains debug and release subdirectories with the
corresponding tests.
STEP III: TESTING THE BUILD
In a command prompt window run the test batch file which
resides in the hdf5\test directory to make sure that the library
was built correctly.
To test, cd into the hdf5\test directory. Then type:
"hdf5test [debug or release] [dll]" depending on which version you would
like to test.
To use the timing tests use the hdf5timingtest.bat file found in the hdf5\test
directory. Type: "hdf5timingtest [debug or release] [dll]" depending on which
version you would like to test.
To test the h5dump utility, cd into hdf5\tools. Then type:
"dumptest [debug or release] [dll]" depending on which version you would like
to test. Some differences are expected in the output of these 4 tests.
NOTE: the appropriate dll should be placed in the Windows\system directory
before using the dlls.
NOTE: The debug dll tests on the Alpha platform currently are not completely
working. The release dll is fine though.
NOTE: The dll versions of h5dump are currently not working correctly.
NOTE: There is an error in the external test. The external file feature
is working correctly but there is an error in logic for the test which
only appears under certain operating systems. The external test fails
for the last case "Testing write external dataset"
STEP IV: BUILDING THE EXAMPLES
1. Invoke Microsoft Visual C++, go to "File" and select
the "Open Workspace" option.
Then open the c:\myHDFstuff\hdf5\examples\allexamples\allexamples.dsw
workspace.
2. Select "Build", then Select "Set Active Configuration".
On Windows platform select as the active configuration
"allexamples -- Win32 Debug" to build debug versions of the examples.
or
"allexamples -- Win32 Release" to build release versions the examples.
On Alpha platform select as the active configuration
"allexamples -- Win32 AlphaDbg" to build debug versions of the examples.
or
"allexamples -- Win32 AlphaRel" to build release versions the
examples.
Select "Build" and "Build allexamples.exe" to
build the corresponding version of the examples.
When the debug build or release build is done there should be the
following subdirectories in C:\myHDFstuff\hdf5\examples\
attributetest
chunkread
compoundtest
extendwritetest
grouptest
readtest
selecttest
writetest
3. Run the batch file "InstallExamples.bat" which resides in the top
level directory. This file creates 2 new directories, examplesREL and
examplesDBG, in the examples directory and places all the executables
in it. Both the release and debug versions of the examples should be
built before this step is done. The examples should be tested in these
2 new directories due to some dependencies between the examples.
STEP V:
BUILDING AN APPLICATION USING THE HDF5 LIBRARY - SOME HELPFUL POINTERS
=====================================================================
If you are building an application that uses the HDF5 library
the following locations will need to be specified for locating
header files and linking in the HDF libraries:
<top-level HDF5 directory>\src
where <top-level HDF5 directory> may be
C:\MyHDFstuff\hdf5\
MORE HELPFUL POINTERS
=====================
Here are some notes that may be of help if you are not familiar
with using the Visual C++ Development Environment.
Project name and location issues:
The files in all.zip must end up in the hdf5\ directory
installed by hdf5-1_2_1.zip
If you must install all.dsw and all.dsp in another directory, relative
to hdf5\ , you will be asked to locate the sub-project files,
when you open the project all.dsw.
If you want to rename all (the entire project), you will need to modify
two files all.dsw and all.dsp as text (contrary to the explicit warnings
in the files).
You can also modify all.dsw and all.dsp as text, to allow these 2 files
to be installed in another directory.
Settings... details:
If you create your own project, the necessary settings can be
read from the all.dsp file(as text), or from the Project Settings in
the Developer Studio project settings dialog.
Project
Settings
C/C++
Category
PreProcessor
Code Generation
Use run-time Library
These are all set to use
Single-Threaded
ZLIB LIBRARY- REMOVING OR CHANGING THE PATH
============================================
If you would like to remove the zlib library from the hdf5 library or
use your own version of the zlib library then follow the steps below.
Removing the zlib library completely:
Open the all.dsw workspace file in Microsoft Visual C++. Go to the hdf5
project. Select the zlib.lib file from this project and delete(press the
'delete' key) it. Next open the H5config.h file from the src directory.
Remove the the following two lines:
#define HAVE_LIBZ 1
#define HAVE_COMPRESS2
then save the file.
Next go to the hdf5dll project. Remove the zlib.lib from this project too.
Open the project settings for the hdf5dll project. Go to the C/C++
settings tab and under the preprocessor definitions remove the ZLIB_DLL
in both the debug and the release settings. Recompile the all project and
then save the workspace.
Replacing the zlib library:
Open the all.dsw workspace and go to the hdf5 project. Delete the
zlib.lib file from the file listing. Then select the hdf5 project and
richt click to get a menu. Pick the "add files to project..." option
and find the version of the zlib that you would like to use. Then click OK
in the file chooser dialog. Repeat the steps for the hdf5dll project.
You may also want to replace the zlib.h and zconf.h files which are in
the src directory with your own versions of these files. Then recompile
the all project.

View File

@@ -1,6 +1,5 @@
Installation instructions for Parallel HDF5
-------------------------------------------
(last updated: May 21, 1999)
1. Overview
-----------
@@ -9,7 +8,7 @@ HDF5. Platforms supported by this release are SGI Origin 2000,
IBM SP2, and the Intel TFLOP. The steps are kind of unnatural and
will be more automized in the next release. If you have difficulties
installing the software in your system, please send mail to
hdfparallel@ncsa.uiuc.edu
hdfhelp@ncsa.uiuc.edu
In your mail, please enclose the output of "uname -a". Also attach the
content of "config.log" if you have run the "configure" command.
@@ -27,30 +26,38 @@ configure for a few machines we tested. If your particular platform
is not shown or somehow the steps do not work for yours, please go
to the next section for more detail explanations.
IBM SP2: follow the instructions in INSTALL.ibm.sp.parallel.
2.1. IBM SP2
------------
Follow the instructions in bin/config_para_ibm_sp.sh.
TFLOPS: follow the instuctions in INSTALL.ascired.
2.2. TFLOPS
-----------
Follow the instuctions in INSTALL_TFLOPS.
SGI Origin 2000:
Cray T3E:
(where MPI-IO is part of system MPI library such as mpt 1.3)
2.3. SGI/CRAY (Origin 2000, T3E)
--------------------------------
For SGI/CRAY systems in which MPI-IO is part of system MPI library
such as mpt 1.3, use the following steps.
#!/bin/sh
RUNPARALLEL="mpirun -np 2"
export RUNPARALLEL
LIBS="-lmpi"
export LIBS
./configure --enable-parallel --disable-shared --prefix=$PWD/installdir
./configure --enable-parallel --prefix=$PWD/installdir
make
make check
make install
SGI Origin 2000:
Cray T3E:
(where MPI-IO is not part of system MPI library or I want to
use my own version of MPIO)
2.4. MPICH systems
------------------
For systems in which the latest MPICH library with ROMIO is installed,
use the following steps.
CC=mpicc ./configure --prefix=$PWD/installdir
2.5. Other machines
-------------------
For systems in which MPI and/or MPI-IO are not part of system library
or I want to use my own version of MPI or MPIO libraries, use the
following steps.
mpi1_inc="" #mpi-1 include
@@ -61,17 +68,19 @@ mpio_lib="-L$HOME/ROMIO/lib/IRIX64" #mpio library
MPI_INC="$mpio_inc $mpi1_inc"
MPI_LIB="$mpio_lib $mpi1_lib"
#for version 1.1
# Specify where to find the MPI and/or MPI-IO headers and libraries
CPPFLAGS=$MPI_INC
export CPPFLAGS
LDFLAGS=$MPI_LIB
export LDFLAGS
RUNPARALLEL="mpirun -np 2"
export RUNPARALLEL
LIBS="-lmpio -lmpi"
export LIBS
./configure --enable-parallel --disable-shared --prefix=$PWD/installdir
# Specify how to run MPI parallel jobs
RUNPARALLEL="mpirun -np 2"
export RUNPARALLEL
./configure --enable-parallel --prefix=$PWD/installdir
make
make check
make install
@@ -79,9 +88,40 @@ make install
3. Detail explanation
---------------------
[Work in progress. Please send mail to hdfparallel@ncsa.uiuc.edu.]
The HDF5 library can be configured to use MPI and MPI-IO for
parallelizm on a distributed multi-processor system. The easy
way to do this is to have a properly installed parallel
compiler (e.g., MPICH's mpicc or IBM's mpcc) and supply that
executable as the value of the CC environment variable:
$ CC=mpcc ./configure
$ CC=/usr/local/mpi/bin/mpicc ./configure
If no such wrapper script is available then you must specify
your normal C compiler along with the distribution of
MPI/MPI-IO which is to be used (values other than `mpich' will
be added at a later date):
$ ./configure --enable-parallel=mpich
If the MPI/MPI-IO include files and/or libraries cannot be
found by the compiler then their directories must be given as
arguments to CPPFLAGS and/or LDFLAGS:
$ CPPFLAGS=-I/usr/local/mpi/include \
LDFLAGS=-L/usr/local/mpi/lib/LINUX/ch_p4 \
./configure --enable-parallel=mpich
If a parallel library is being built then configure attempts
to determine how to run a parallel application on one
processor and on many processors. If the compiler is mpicc
and the user hasn't specified values for RUNSERIAL and
RUNPARALLEL then configure chooses `mpirun' from the same
directory as `mpicc':
RUNSERIAL: /usr/local/mpi/bin/mpirun -np 1
RUNPARALLEL: /usr/local/mpi/bin/mpirun -np $${NPROCS:=2}
The `$${NPROCS:=2}' will be substituted with the value of the
NPROCS environment variable at the time `make check' is run
(or the value 2).

266
MANIFEST
View File

@@ -6,12 +6,11 @@
#------------------------------------------------------------------------------
./COPYING
./HISTORY
./INSTALL
./INSTALL.ascired
./INSTALL.ibm.sp.parallel
./INSTALL_MAINT
./INSTALL_TFLOPS
./INSTALL_parallel
./INSTALL_parallel.ascired
./INSTALL_Windows.txt
./MANIFEST
./Makefile.dist
./Makefile.in
@@ -25,8 +24,11 @@
./bin/checkapi _DO_NOT_DISTRIBUTE_
./bin/checkposix _DO_NOT_DISTRIBUTE_
./bin/chkmanifest
./bin/config.guess
./bin/config.sub
./bin/config_para_ibm_sp.sh
./bin/config_para_tflops.sh
./bin/debug-ohdr _DO_NOT_DISTRIBUTE_
./bin/distdep
./bin/errors _DO_NOT_DISTRIBUTE_
@@ -49,6 +51,7 @@
./config/freebsd
./config/gnu-flags
./config/hpux10.20
./config/hpux11.00
./config/hpux9.03
./config/intel-osf1
./config/irix5.x
@@ -57,12 +60,17 @@
./config/linux-gnulibc1
./config/linux-gnulibc2
./config/powerpc-ibm-aix4.x
./config/powerpc-ibm-aix4.2.1.0
./config/powerpc-ibm-aix4.3.2.0
./config/rs6000-ibm-aix4.x
./config/solaris2.x
./config/unicos
./config/unicosmk
./doc/Makefile.in
./doc/html/ADGuide.html
./doc/html/ADGuide/H4toH5Mapping.pdf
./doc/html/Attributes.html
./doc/html/Big.html
./doc/html/Caching.html
./doc/html/Chunking.html
./doc/html/Chunk_f1.gif
@@ -74,21 +82,21 @@
./doc/html/Chunk_f5.gif
./doc/html/Chunk_f6.gif
./doc/html/Chunk_f6.obj _DO_NOT_DISTRIBUTE_
./doc/html/CodeReview.html _DO_NOT_DISTRIBUTE_
./doc/html/Coding.html
./doc/html/Copyright.html
./doc/html/Datasets.html
./doc/html/Dataspaces.html
./doc/html/Datatypes.html
./doc/html/DatatypesEnum.html
./doc/html/ddl.html
./doc/html/Debugging.html
./doc/html/EnumMap.gif
./doc/html/Environment.html
./doc/html/Errors.html
./doc/html/ExternalFiles.html _DO_NOT_DISTRIBUTE_
./doc/html/FF-IH_FileGroup.gif
./doc/html/FF-IH_FileObject.gif
./doc/html/Files.html
./doc/html/Filters.html
./doc/html/FF-IH_FileGroup.gif
./doc/html/FF-IH_FileObject.gif
./doc/html/Glossary.html
./doc/html/Groups.html
./doc/html/H5.api_map.html
@@ -96,17 +104,25 @@
./doc/html/H5.intro.html
./doc/html/H5.sample_code.html
./doc/html/H5.user.html
./doc/html/H5.user.PrintGen.html _DO_NOT_DISTRIBUTE_
./doc/html/H5.user.PrintTpg.html _DO_NOT_DISTRIBUTE_
./doc/html/IH_map1.gif
./doc/html/IH_map2.gif
./doc/html/IH_map3.gif
./doc/html/IH_map4.gif
./doc/html/IH_mapFoot.gif
./doc/html/IH_mapHead.gif
./doc/html/IOPipe.html
./doc/html/MemoryManagement.html _DO_NOT_DISTRIBUTE_
./doc/html/ImageSpec.html
./doc/html/Makefile.in
./doc/html/MountingFiles.html
./doc/html/NCSAfooterlogo.gif
./doc/html/ObjectHeader.txt _DO_NOT_DISTRIBUTE_
./doc/html/PaletteExample1.gif
./doc/html/Palettes.fm.anc.gif
./doc/html/Performance.html
./doc/html/Properties.html
./doc/html/PSandPDF/H5-Rx.x.DocSet.pdf
./doc/html/PSandPDF/index.html
./doc/html/PSandPDF/process.txt _DO_NOT_DISTRIBUTE_
./doc/html/Ragged.html
./doc/html/References.html
./doc/html/RM_H5.html
@@ -123,11 +139,199 @@
./doc/html/RM_H5S.html
./doc/html/RM_H5T.html
./doc/html/RM_H5Z.html
./doc/html/TechNotes.html
./doc/html/TechNotes/BigDataSmMach.html
./doc/html/TechNotes/ChStudy_1000x1000.gif
./doc/html/TechNotes/ChStudy_250x250.gif
./doc/html/TechNotes/ChStudy_499x499.gif
./doc/html/TechNotes/ChStudy_5000x1000.gif
./doc/html/TechNotes/ChStudy_500x500.gif
./doc/html/TechNotes/ChStudy_p1.gif
./doc/html/TechNotes/ChStudy_p1.obj _DO_NOT_DISTRIBUTE_
./doc/html/TechNotes/ChunkingStudy.html
./doc/html/TechNotes/CodeReview.html
./doc/html/TechNotes/ExternalFiles.html
./doc/html/TechNotes/FreeLists.html
./doc/html/TechNotes/H4-H5Compat.html
./doc/html/TechNotes/HeapMgmt.html
./doc/html/TechNotes/IOPipe.html
./doc/html/TechNotes/LibMaint.html
./doc/html/TechNotes/MemoryMgmt.html
./doc/html/TechNotes/MoveDStruct.html
./doc/html/TechNotes/NamingScheme.html
./doc/html/TechNotes/ObjectHeader.html
./doc/html/TechNotes/RawDStorage.html
./doc/html/TechNotes/SymbolTables.html
./doc/html/TechNotes/Version.html
./doc/html/TechNotes/pipe1.gif
./doc/html/TechNotes/pipe1.obj _DO_NOT_DISTRIBUTE_
./doc/html/TechNotes/pipe2.gif
./doc/html/TechNotes/pipe2.obj _DO_NOT_DISTRIBUTE_
./doc/html/TechNotes/pipe3.gif
./doc/html/TechNotes/pipe3.obj _DO_NOT_DISTRIBUTE_
./doc/html/TechNotes/pipe4.gif
./doc/html/TechNotes/pipe4.obj _DO_NOT_DISTRIBUTE_
./doc/html/TechNotes/pipe5.gif
./doc/html/TechNotes/pipe5.obj _DO_NOT_DISTRIBUTE_
./doc/html/TechNotes/version.gif
./doc/html/TechNotes/version.obj _DO_NOT_DISTRIBUTE_
./doc/html/Tools.html
./doc/html/Version.html
./doc/html/Tutor/Contents.html
./doc/html/Tutor/ContentsAdd.html
./doc/html/Tutor/ContentsAdv.html
./doc/html/Tutor/ContentsFull.html
./doc/html/Tutor/ContentsIntro.html
./doc/html/Tutor/Copyright.html
./doc/html/Tutor/Graphics/AddInfo.gif
./doc/html/Tutor/Graphics/AdvTopics.gif
./doc/html/Tutor/Graphics/BLANK.gif
./doc/html/Tutor/Graphics/ChunkExt.gif
./doc/html/Tutor/Graphics/CompDTypes.gif
./doc/html/Tutor/Graphics/Copy.gif
./doc/html/Tutor/Graphics/CreateAttr.gif
./doc/html/Tutor/Graphics/CreateDset1.gif
./doc/html/Tutor/Graphics/CreateDset2.gif
./doc/html/Tutor/Graphics/CreateFile.gif
./doc/html/Tutor/Graphics/CreateGrp1.gif
./doc/html/Tutor/Graphics/CreateGrp2.gif
./doc/html/Tutor/Graphics/Examples.gif
./doc/html/Tutor/Graphics/FileOrg.gif
./doc/html/Tutor/Graphics/FullTOC1.gif
./doc/html/Tutor/Graphics/FullTOC2.gif
./doc/html/Tutor/Graphics/Glossary.gif
./doc/html/Tutor/Graphics/H5API.gif
./doc/html/Tutor/Graphics/Intro.gif
./doc/html/Tutor/Graphics/IntroTopics.gif
./doc/html/Tutor/Graphics/Iterate.gif
./doc/html/Tutor/Graphics/Makefile.in
./doc/html/Tutor/Graphics/MountFile.gif
./doc/html/Tutor/Graphics/Quiz.gif
./doc/html/Tutor/Graphics/QuizAns.gif
./doc/html/Tutor/Graphics/RdWrDataset.gif
./doc/html/Tutor/Graphics/RefObject.gif
./doc/html/Tutor/Graphics/RefRegion.gif
./doc/html/Tutor/Graphics/References.gif
./doc/html/Tutor/Graphics/SelectElemCp.gif
./doc/html/Tutor/Graphics/SelectHyp.gif
./doc/html/Tutor/Graphics/TOC.gif
./doc/html/Tutor/Graphics/TOCFull.gif
./doc/html/Tutor/Graphics/TOCShort.gif
./doc/html/Tutor/Graphics/TitlePg.gif
./doc/html/Tutor/Graphics/Utilities.gif
./doc/html/Tutor/H5DocInsert _DO_NOT_DISTRIBUTE_
./doc/html/Tutor/Makefile.in
./doc/html/Tutor/answers.html
./doc/html/Tutor/api.html
./doc/html/Tutor/bighdf2sp.JPG
./doc/html/Tutor/compound.html
./doc/html/Tutor/crtatt.html
./doc/html/Tutor/crtdat.html
./doc/html/Tutor/crtfile.html
./doc/html/Tutor/crtgrp.html
./doc/html/Tutor/crtgrpar.html
./doc/html/Tutor/crtgrpd.html
./doc/html/Tutor/examples/Makefile.in
./doc/html/Tutor/examples/attrexample.f90
./doc/html/Tutor/examples/chunk.f90
./doc/html/Tutor/examples/dsetexample.f90
./doc/html/Tutor/examples/fileexample.f90
./doc/html/Tutor/examples/groupexample.f90
./doc/html/Tutor/examples/grpdsetexample.f90
./doc/html/Tutor/examples/grpit.f90
./doc/html/Tutor/examples/grpsexample.f90
./doc/html/Tutor/examples/h5_compound.c
./doc/html/Tutor/examples/h5_copy.c
./doc/html/Tutor/examples/h5_crtatt.c
./doc/html/Tutor/examples/h5_crtdat.c
./doc/html/Tutor/examples/h5_crtfile.c
./doc/html/Tutor/examples/h5_crtgrp.c
./doc/html/Tutor/examples/h5_crtgrpar.c
./doc/html/Tutor/examples/h5_crtgrpd.c
./doc/html/Tutor/examples/h5_extend.c
./doc/html/Tutor/examples/h5_hyperslab.c
./doc/html/Tutor/examples/h5_iterate.c
./doc/html/Tutor/examples/h5_mount.c
./doc/html/Tutor/examples/h5_rdwt.c
./doc/html/Tutor/examples/h5_read.c
./doc/html/Tutor/examples/h5_ref2objr.c
./doc/html/Tutor/examples/h5_ref2objw.c
./doc/html/Tutor/examples/h5_ref2regr.c
./doc/html/Tutor/examples/h5_ref2regw.c
./doc/html/Tutor/examples/h5_reference.c
./doc/html/Tutor/examples/hyperslab.f90
./doc/html/Tutor/examples/java/Compound.java
./doc/html/Tutor/examples/java/Copy.java
./doc/html/Tutor/examples/java/CreateAttribute.java
./doc/html/Tutor/examples/java/CreateDataset.java
./doc/html/Tutor/examples/java/CreateFile.java
./doc/html/Tutor/examples/java/CreateFileInput.java
./doc/html/Tutor/examples/java/CreateGroup.java
./doc/html/Tutor/examples/java/CreateGroupAR.java
./doc/html/Tutor/examples/java/CreateGroupDataset.java
./doc/html/Tutor/examples/java/DatasetRdWt.java
./doc/html/Tutor/examples/java/HyperSlab.java
./doc/html/Tutor/examples/java/Makefile
./doc/html/Tutor/examples/java/Makefile.in
./doc/html/Tutor/examples/java/README
./doc/html/Tutor/examples/java/readme.html
./doc/html/Tutor/examples/java/runCompound.sh
./doc/html/Tutor/examples/java/runCompound.sh.in
./doc/html/Tutor/examples/java/runCopy.sh
./doc/html/Tutor/examples/java/runCopy.sh.in
./doc/html/Tutor/examples/java/runCreateAttribute.sh
./doc/html/Tutor/examples/java/runCreateAttribute.sh.in
./doc/html/Tutor/examples/java/runCreateDataset.sh
./doc/html/Tutor/examples/java/runCreateDataset.sh.in
./doc/html/Tutor/examples/java/runCreateFile.sh
./doc/html/Tutor/examples/java/runCreateFile.sh.in
./doc/html/Tutor/examples/java/runCreateFileInput.sh
./doc/html/Tutor/examples/java/runCreateFileInput.sh.in
./doc/html/Tutor/examples/java/runCreateGroup.sh
./doc/html/Tutor/examples/java/runCreateGroup.sh.in
./doc/html/Tutor/examples/java/runCreateGroupAR.sh
./doc/html/Tutor/examples/java/runCreateGroupAR.sh.in
./doc/html/Tutor/examples/java/runCreateGroupDataset.sh
./doc/html/Tutor/examples/java/runCreateGroupDataset.sh.in
./doc/html/Tutor/examples/java/runDatasetRdWt.sh
./doc/html/Tutor/examples/java/runDatasetRdWt.sh.in
./doc/html/Tutor/examples/java/runHyperSlab.sh
./doc/html/Tutor/examples/java/runHyperSlab.sh.in
./doc/html/Tutor/examples/mount.f90
./doc/html/Tutor/examples/refobjexample.f90
./doc/html/Tutor/examples/refregexample.f90
./doc/html/Tutor/examples/rwdsetexample.f90
./doc/html/Tutor/examples/selectele.f90
./doc/html/Tutor/extend.html
./doc/html/Tutor/fileorg.html
./doc/html/Tutor/glossary.html
./doc/html/Tutor/img001.gif
./doc/html/Tutor/img002.gif
./doc/html/Tutor/img003.gif
./doc/html/Tutor/img004.gif
./doc/html/Tutor/img005.gif
./doc/html/Tutor/index.html
./doc/html/Tutor/intro.html
./doc/html/Tutor/iterate.html
./doc/html/Tutor/iterator.txt
./doc/html/Tutor/mount.html
./doc/html/Tutor/questions.html
./doc/html/Tutor/rdwt.html
./doc/html/Tutor/references.html
./doc/html/Tutor/reftoobj.html
./doc/html/Tutor/reftoreg.html
./doc/html/Tutor/select.html
./doc/html/Tutor/selectc.html
./doc/html/Tutor/title.html
./doc/html/Tutor/util.html
./doc/html/XML_DTD.html
./doc/html/XML_DTD/DesignNotes.html
./doc/html/chunk1.gif
./doc/html/chunk1.obj _DO_NOT_DISTRIBUTE_
./doc/html/compat.html
./doc/html/dataset_p1.gif
./doc/html/dataset_p1.obj
./doc/html/extern1.gif
@@ -145,25 +349,9 @@
./doc/html/ph5design.html
./doc/html/ph5example.c
./doc/html/ph5implement.txt
./doc/html/pipe1.gif
./doc/html/pipe1.obj _DO_NOT_DISTRIBUTE_
./doc/html/pipe2.gif
./doc/html/pipe2.obj _DO_NOT_DISTRIBUTE_
./doc/html/pipe3.gif
./doc/html/pipe3.obj _DO_NOT_DISTRIBUTE_
./doc/html/pipe4.gif
./doc/html/pipe4.obj _DO_NOT_DISTRIBUTE_
./doc/html/pipe5.gif
./doc/html/pipe5.obj _DO_NOT_DISTRIBUTE_
./doc/html/heap.txt _DO_NOT_DISTRIBUTE_
./doc/html/index.html
./doc/html/move.html _DO_NOT_DISTRIBUTE_
./doc/html/review1.html _DO_NOT_DISTRIBUTE_
./doc/html/review1a.html _DO_NOT_DISTRIBUTE_
./doc/html/storage.html _DO_NOT_DISTRIBUTE_
./doc/html/symtab _DO_NOT_DISTRIBUTE_
./doc/html/version.gif
./doc/html/version.obj _DO_NOT_DISTRIBUTE_
./doc/src/Copyright.html _DO_NOT_DISTRIBUTE_
./doc/src/Glossary.html _DO_NOT_DISTRIBUTE_
./doc/src/H5.intro.doc _DO_NOT_DISTRIBUTE_
@@ -245,6 +433,9 @@
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5FL.c
./src/H5FLprivate.h
./src/H5FLpublic.h
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
@@ -308,8 +499,6 @@
./src/H5Tprivate.h
./src/H5Tpublic.h
./src/H5Tvlen.c
./src/H5TB.c
./src/H5TBprivate.h
./src/H5V.c
./src/H5Vprivate.h
./src/H5Z.c
@@ -358,6 +547,7 @@
./test/tfile.c
./test/th5s.c
./test/th5s.h5
./test/titerate.c
./test/tmeta.c
./test/trefer.c
./test/tselect.c
@@ -365,21 +555,18 @@
./test/unlink.c
./testpar/Makefile.in
./testpar/Makefile.ibmsp
./testpar/README
./testpar/t_dset.c
./testpar/t_file.c
./testpar/t_mpi.c
./testpar/testphdf5.c
./testpar/testphdf5.h
./tools/.distdep
./tools/Makefile.in
./tools/h5debug.c
./tools/h5dump.c
./tools/h5dump.h
./tools/h5dumptst.c
./tools/h5dumputil.c
./tools/h5findshd.c
./tools/h5import.c
./tools/h5ls.c
./tools/h5repart.c
@@ -398,6 +585,8 @@
./tools/testfiles/tattr-2.ddl
./tools/testfiles/tattr-3.ddl
./tools/testfiles/tattr.h5
./tools/testfiles/tbitfields-1.ddl
./tools/testfiles/tbitfields.h5
./tools/testfiles/tcomp-1.ddl
./tools/testfiles/tcomp-2.ddl
./tools/testfiles/tcomp-3.ddl
@@ -424,8 +613,12 @@
./tools/testfiles/tloop.h5
./tools/testfiles/tloop2.h5
./tools/testfiles/tmany.h5
./tools/testfiles/tnestcomp-1.ddl
./tools/testfiles/tnestedcomp.h5
./tools/testfiles/tobjref.h5
./tools/testfiles/tobjref.ddl
./tools/testfiles/topaque.h5
./tools/testfiles/topaque.ddl
./tools/testfiles/tslink-1.ddl
./tools/testfiles/tslink-2.ddl
./tools/testfiles/tslink.h5
@@ -446,3 +639,4 @@
./tools/testfiles/Expected/tslink.hdf
./tools/testfiles/Expected/tstr.hdf
./tools/testfiles/Expected/tstr2.hdf

View File

@@ -105,10 +105,9 @@ distclean:
-$(RM) config/commence config/conclude config/depend
-$(RM) config.cache config.log config.status src/H5config.h
-$(RM) config/stamp1 config/stamp2 libtool Makefile
-$(CP) Makefile.dist Makefile
maintainer-clean:
@echo "This command is intented for maintainers to use;"
@echo "This target is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
@@SETX@; for d in $(SUBDIRS) examples pablo; do \
(cd $$d && $(MAKE) $@); \

35
README
View File

@@ -1,36 +1,39 @@
This is hdf5-1.1.110 currently under development
This is hdf5-1.2.2 released on Fri Jun 23 10:49:46 CDT 2000
Please refer to the INSTALL file for installation instructions.
------------------------------------------------------------------------------
This release is almost fully functional for the entire API defined in the
documentation, see the RELEASE file in this directory for information
This release is fully functional for the entire API defined in the
documentation. See the RELEASE file in this directory for information
specific to this release of the library. The INSTALL file contains
instructions on compiling and installing the library. The INSTALL_parallel
file contains instructions on installing the parallel version of the
library.
library. The INSTALL_Windows.txt contains instructions on installing the HDF5
library on Windows/NT platforms. The HISTORY file contains complete
information about changes since the first release of the HDF5 library.
Documentation for this release is in the html directory. Start with the
"index.html" in that dictectory.
Documentation for this release is in the doc/html directory. Start with the
"index.html" in that directory.
Four mailing lists are currently set up for use with the HDF5
library.
hdf5 - For general discussion of the HDF5 library with
other users.
other users.
hdf5dev - For discussion of the HDF5 library development
with developers and other interested parties.
with developers and other interested parties.
hdf5announce - For announcements of HDF5 related developments,
not a discussion list.
hdf5announce - For announcements of HDF5 related developments -
not a discussion list.
hdf5cvs - For checkin notices of code development on the library,
not a discussion list.
hdf5cvs - For checking notices of code development in the library -
not a discussion list.
To subscribe to a list, send mail to "<list>-request@ncsa.uiuc.edu",
(e.g., hdf5-request@ncsa.uiuc.edu) with "subscribe <your e-mail
address> in the _body_ of the message. Messages to be sent to
the list should be sent to "<list>@ncsa.uiuc.edu".
To subscribe to a list, send mail to "majordomo@ncsa.uiuc.edu",
with "subscribe <list>" in the _body_, not the Subject, of the message.
E.g., subscribe hdf5
Messages to be sent to the list should be sent to "<list>@ncsa.uiuc.edu".
Nearly daily code snapshots are now being provided at the following URL:
ftp://hdf.ncsa.uiuc.edu/pub/outgoing/hdf5/snapshots

513
RELEASE
View File

@@ -1,402 +1,119 @@
Release information for hdf5-1.1.x
------------------------------------
CHANGES SINCE THE Version 1.0.0 RELEASE
HDF5 Release 1.2.2
INTRODUCTION
This document describes the differences between HDF5-1.2.1 and
HDF5-1.2.2, and contains information on the platforms where HDF5-1.2.2
was tested and known problems in HDF5-1.2.2.
The HDF5 documentation can be found on the NCSA ftp server
(ftp.ncsa.uiuc.edu) in the directory:
/HDF/HDF5/docs/
For more information look at the HDF5 home page at:
http://hdf.ncsa.uiuc.edu/HDF5/
If you have any questions or comments, please send them to:
hdfhelp@ncsa.uiuc.edu
CONTENTS
- Features Added since HDF5-1.2.1
- Bug Fixes since HDF5-1.2.1
- Known Problems
- Platforms Tested
Features Added since HDF5-1.2.1
===============================
* Added internal free-lists to reduce memory required by the library and
H5garbage_collect API function.
* h5dump displays opaque and bitfield types.
* New features added to snapshots. Use 'snapshot help' to see a
complete list of features.
* Improved configure to detect if MPIO routines are available when
parallel mode is requested.
Bug Fixes since HDF5-1.2.1
==========================
* h5dump correctly displays compound datatypes, including simple and
nested compound types.
* h5dump correctly displays the committed copy of predefined types.
* Corrected an error in h5toh4 which did not convert the 32-bit
int from HDF5 to HDF4 correctly for the T3E platform.
* Corrected a floating point number conversion error for the
Cray J90 platform. The error did not convert the value 0.0
correctly.
* Fixed error in H5Giterate which was not updating the "index" parameter
correctly.
* Fixed error in hyperslab iteration which was not walking through the
correct sequence of array elements if hyperslabs were staggered in a
certain pattern.
* Fixed several other problems in hyperslab iteration code.
* Fixed another H5Giterate bug which caused groups with large numbers
of objects in them to misbehave when the callback function returned
non-zero values.
* Changed return type of H5Aiterate and H5A_operator_t typedef to be
herr_t, to align them with the dataset and group iterator functions.
* Changed H5Screate_simple and H5Sset_extent_simple to not allow dimensions
of size 0 without the same dimension being unlimited.
* Improved metadata hashing & caching algorithms to avoid
many hash flushes and also removed some redundant I/O when moving metadata
blocks in the file.
* The libhdf5.settings file shows the correct machine byte-sex.
* The "struct(opt)" type conversion function which gets invoked for
certain compound datatype conversions was fixed for nested compound
types. This required a small change in the datatype conversion
function API.
Known Problems
==============
o SunOS 5.6 with C WorkShop Compilers 4.2: hyperslab selections will
fail if library is compiled using optimization of any level.
o TFLOPS: dsets test fails if compiled with optimization turned on.
o J90: tools fail to dispay data for the datasets with a compound datatype.
Platforms Tested
================
AIX 4.3.3 (IBM SP) 3.6.6 | binaries
mpicc using mpich 1.1.2 | are not
mpicc_r using IBM MPI-IO prototype | available
AIX 4.3.2.0 (IBM SP) xlc 5.0.1.0
Cray J90 10.0.0.7 cc 6.3.0.2
Cray T3E 2.0.5.29 cc 6.3.0.2
mpt.1.3
FreeBSD 4.0 gcc 2.95.2
HP-UX B.10.20 HP C HP92453-01 A.10.32
HP-UX B.11.00 HP92453-01 A.11.00.13 HP C Compiler
(static library only, h5toh4 tool is not available)
IRIX 6.5 MIPSpro cc 7.30
IRIX64 6.5 (64 & n32) MIPSpro cc 7.3.1m
mpt.1.4
Linux 2.2.10 SMP gcc 2.95.1
mpicc(gcc-2.95.1)
gcc (egcs-2.91.66)
mpicc (egcs-2.91.66)
Linux 2.2.16 (RedHat 6.2) gcc 2.95.2
OSF1 V4.0 DEC-V5.2-040
SunOS 5.6 cc WorkShop Compilers 5.0 no optimization
SunOS 5.7 cc WorkShop Compilers 5.0
SolarisX86 SunOS 5.5.1 gcc version 2.7.2 with --disable-hsizet
TFLOPS 3.2.1 pgcc Rel 3.1-3i
mpich-1.1.2 with local changes
Windows NT4.0 sp5 MSVC++ 6.0
Windows 98 MSVC++ 6.0
Windows 2000 MSVC++ 6.0
* [Improvement]: configure sets up the Makefile in the parallel tests
suit (testpar/) correctly. (Tested for O2K only.)
* [Bug-Fix]: Configure failed for all IRIX versions other than 6.3.
It now configures correctly for all IRIX 6.x version.
CHANGES SINCE THE BETA RELEASE
* Added fill values for datasets. For contiguous datasets fill value
performance may be quite poor since the fill value is written to the
entire dataset when the dataset is created. This will be remedied
in a future version. Chunked datasets using fill values do not
incur any additional overhead. See H5Pset_fill_value().
* Multiple hdf5 files can be "mounted" on one another to create a
larger virtual file. See H5Fmount().
* Object names can be removed or changed but objects are never
actually removed from the file yet. See H5Gunlink() and H5Gmove().
* Added a tuning mechanism for B-trees to insure that sequential
writes to chunked datasets use less overhead. See H5Pset_btree_ratios().
* Various optimizations and bug fixes.
CHANGES SINCE THE SECOND ALPHA
* Strided hyperslab selections in dataspaces now working.
* The compression API has been replaced with a more general filter
API. See doc/html/Filters.html for details.
* Alpha-quality 2d ragged arrays are implemented as a layer built on
top of other hdf5 objects. The API and storage format will almost
certainly change.
* More debugging support including API tracing. See Debugging.html.
* C and Fortran style 8-bit fixed-length character string types are
supported with space or null padding or null termination and
translations between them.
* Added function H5Fflush() to write all cached data immediately to
the file.
* Datasets maintain a modification time which can be retrieved with
H5Gstat().
* The h5ls tool can display much more information, including all the
values of a dataset.
CHANGES SINCE THE FIRST ALPHA
* Two of the packages have been renamed. The data space API has been
renamed from `H5P' to `H5S' and the property list (template) API has
been renamed from `H5C' to `H5P'.
* The new attribute API `H5A' has been added. An attribute is a small
dataset which can be attached to some other object (for instance, a
4x4 transformation matrix attached to a 3-dimensional dataset, or an
English abstract attached to a group).
* The error handling API `H5E' has been completed. By default, when an
API function returns failure an error stack is displayed on the
standard error stream. The H5Eset_auto() controls the automatic
printing and H5E_BEGIN_TRY/H5E_END_TRY macros can temporarily
disable the automatic error printing.
* Support for large files and datasets (>2GB) has been added. There
is an html document that describes how it works. Some of the types
for function arguments have changed to support this: all arguments
pertaining to sizes of memory objects are `size_t' and all arguments
pertaining to file sizes are `hsize_t'.
* More data type conversions have been added although none of them are
fine tuned for performance. There are new converters from integer
to integer and float to float, but not between integers and floating
points. A bug has been fixed in the converter between compound
types.
* The numbered types have been removed from the API: int8, uint8,
int16, uint16, int32, uint32, int64, uint64, float32, and float64.
Use standard C types instead. Similarly, the numbered types were
removed from the H5T_NATIVE_* architecture; use unnumbered types
which correspond to the standard C types like H5T_NATIVE_INT.
* More debugging support was added. If tracing is enabled at
configuration time (the default) and the HDF5_TRACE environment
variable is set to a file descriptor then all API calls will emit
the function name, argument names and values, and return value on
that file number. There is an html document that describes this.
If appropriate debugging options are enabled at configuration time,
some packages will display performance information on stderr.
* Data types can be stored in the file as independent objects and
multiple datasets can share a data type.
* The raw data I/O stream has been implemented and the application can
control meta and raw data caches, so I/O performance should be
improved from the first alpha release.
* Group and attribute query functions have been implemented so it is
now possible to find out the contents of a file with no prior
knowledge.
* External raw data storage allows datasets to be written by other
applications or I/O libraries and described and accessed through
HDF5.
* Hard and soft (symbolic) links are implemented which allow groups to
share objects. Dangling and recursive symbolic links are supported.
* User-defined data compression is implemented although we may
generalize the interface to allow arbitrary user-defined filters
which can be used for compression, checksums, encryption,
performance monitoring, etc. The publicly-available `deflate'
method is predefined if the GNU libz.a can be found at configuration
time.
* The configuration scripts have been modified to make it easier to
build debugging vs. production versions of the library.
* The library automatically checks that the application was compiled
with the correct version of header files.
Parallel HDF5 Changes
* Parallel support for fixed dimension datasets with contiguous or
chunked storages. Also, support unlimited dimension datasets which
must use chunk storage. No parallel support for compressed datasets.
* Collective data transfer for H5Dread/H5Dwrite. Collective access
support for datasets with contiguous storage only, thus only fixed
dimension datasets for now.
* H5Pset_mpi and H5Pget_mpi no longer have the access_mode
argument. It is taken over by the data-transfer property list
of H5Dread/H5Dwrite.
* New functions H5Pset_xfer and H5Pget_xfer to handle the
specification of independent or collective data transfer_mode
in the dataset transfer properties list. The properties
list can be used to specify data transfer mode in the H5Dwrite
and H5Dread function calls.
* Added parallel support for datasets with chunked storage layout.
When a dataset is extend in a PHDF5 file, all processes that open
the file must collectively call H5Dextend with identical new dimension
sizes.
LIST OF API FUNCTIONS
The following functions are implemented. Errors are returned if an
attempt is made to use some feature which is not implemented and
printing the error stack will show `not implemented yet'.
Library
H5check - check that lib version matches header version
H5open - initialize library (happens automatically)
H5close - shut down the library (happens automatically)
H5dont_atexit - don't call H5close on exit
H5get_libversion - retrieve library version info
H5check_version - check for specific library version
Property Lists
H5Pclose - release template resources
H5Pcopy - copy a template
H5Pcreate - create a new template
H5Pget_chunk - get chunked storage properties
H5Pset_chunk - set chunked storage properties
H5Pget_class - get template class
H5Pget_istore_k - get chunked storage properties
H5Pset_istore_k - set chunked storage properties
H5Pget_layout - get raw data layout class
H5Pset_layout - set raw data layout class
H5Pget_sizes - get address and size sizes
H5Pset_sizes - set address and size sizes
H5Pget_sym_k - get symbol table storage properties
H5Pset_sym_k - set symbol table storage properties
H5Pget_userblock - get user-block size
H5Pset_userblock - set user-block size
H5Pget_version - get file version numbers
H5Pget_alignment - get data alignment properties
H5Pset_alignment - set data alignment properties
H5Pget_external_count- get count of external data files
H5Pget_external - get information about an external data file
H5Pset_external - add a new external data file to the list
H5Pget_driver - get low-level file driver class
H5Pget_stdio - get properties for stdio low-level driver
H5Pset_stdio - set properties for stdio low-level driver
H5Pget_sec2 - get properties for sec2 low-level driver
H5Pset_sec2 - set properties for sec2 low-level driver
H5Pget_core - get properties for core low-level driver
H5Pset_core - set properties for core low-level driver
H5Pget_split - get properties for split low-level driver
H5Pset_split - set properties for split low-level driver
H5P_get_family - get properties for family low-level driver
H5P_set_family - set properties for family low-level driver
H5Pget_cache - get meta- and raw-data caching properties
H5Pset_cache - set meta- and raw-data caching properties
H5Pget_buffer - get raw-data I/O pipe buffer properties
H5Pset_buffer - set raw-data I/O pipe buffer properties
H5Pget_preserve - get type conversion preservation properties
H5Pset_preserve - set type conversion preservation properties
H5Pget_nfilters - get number of raw data filters
H5Pget_filter - get raw data filter properties
H5Pset_filter - set raw data filter properties
H5Pset_deflate - set deflate compression filter properties
H5Pget_mpi - get MPI-IO properties
H5Pset_mpi - set MPI-IO properties
H5Pget_xfer - get data transfer properties
H5Pset_xfer - set data transfer properties
Datasets
H5Dclose - release dataset resources
H5Dcreate - create a new dataset
H5Dget_space - get data space
H5Dget_type - get data type
H5Dget_create_plist - get dataset creation properties
H5Dopen - open an existing dataset
H5Dread - read raw data
H5Dwrite - write raw data
H5Dextend - extend a dataset
Attributes
H5Acreate - create a new attribute
H5Aopen_name - open an attribute by name
H5Aopen_idx - open an attribute by number
H5Awrite - write values into an attribute
H5Aread - read values from an attribute
H5Aget_space - get attribute data space
H5Aget_type - get attribute data type
H5Aget_name - get attribute name
H5Anum_attrs - return the number of attributes for an object
H5Aiterate - iterate over an object's attributes
H5Adelete - delete an attribute
H5Aclose - close an attribute
Errors
H5Eclear - clear the error stack
H5Eprint - print an error stack
H5Eget_auto - get automatic error reporting settings
H5Eset_auto - set automatic error reporting
H5Ewalk - iterate over the error stack
H5Ewalk_cb - the default error stack iterator function
H5Eget_major - get the message for the major error number
H5Eget_minor - get the message for the minor error number
Files
H5Fclose - close a file and release resources
H5Fcreate - create a new file
H5Fget_create_plist - get file creation property list
H5Fget_access_plist - get file access property list
H5Fis_hdf5 - determine if a file is an hdf5 file
H5Fopen - open an existing file
Groups
H5Gclose - close a group and release resources
H5Gcreate - create a new group
H5Gopen - open an existing group
H5Gpop - pop a group from the cwg stack
H5Gpush - push a group onto the cwg stack
H5Gset - set the current working group (cwg)
H5Giterate - iterate over the contents of a group
H5Gmove - change the name of some object
H5Glink - create a hard or soft link to an object
H5Gunlink - break the link between a name and an object
H5Gget_objinfo - get information about a group entry
H5Gget_linkval - get the value of a soft link
H5Gget_comment - get the comment string for an object
H5Gset_comment - set the comment string for an object
Dataspaces
H5Screate - create a new data space
H5Scopy - copy a data space
H5Sclose - release data space
H5Screate_simple - create a new simple data space
H5Sset_space - set simple data space extents
H5Sis_simple - determine if data space is simple
H5Sset_extent_simple - set simple data space dimensionality and size
H5Sget_simple_extent_npoints - get number of points in simple extent
H5Sget_simple_extent_ndims - get simple data space dimensionality
H5Sget_simple_extent_dims - get simple data space size
H5Sget_simple_extent_type - get type of simple extent
H5Sset_extent_none - reset extent to be empty
H5Sextent_copy - copy the extent from one data space to another
H5Sget_select_npoints - get number of points selected for I/O
H5Sselect_hyperslab - set hyperslab dataspace selection
H5Sselect_elements - set element sequence dataspace selection
H5Sselect_all - select entire extent for I/O
H5Sselect_none - deselect all elements of extent
H5Soffset_simple - set selection offset
H5Sselect_valid - determine if selection is valid for extent
Datatypes
H5Tclose - release data type resources
H5Topen - open a named data type
H5Tcommit - name a data type
H5Tcommitted - determine if a type is named
H5Tcopy - copy a data type
H5Tcreate - create a new data type
H5Tequal - compare two data types
H5Tlock - lock type to prevent changes
H5Tfind - find a data type conversion function
H5Tconvert - convert data from one type to another
H5Tregister_hard - register specific type conversion function
H5Tregister_soft - register general type conversion function
H5Tunregister - remove a type conversion function
H5Tget_overflow - get function that handles overflow conv. cases
H5Tset_overflow - set function to handle overflow conversion cases
H5Tget_class - get data type class
H5Tget_cset - get character set
H5Tget_ebias - get exponent bias
H5Tget_fields - get floating point fields
H5Tget_inpad - get inter-field padding
H5Tget_member_dims - get struct member dimensions
H5Tget_member_name - get struct member name
H5Tget_member_offset - get struct member byte offset
H5Tget_member_type - get struct member type
H5Tget_nmembers - get number of struct members
H5Tget_norm - get floating point normalization
H5Tget_offset - get bit offset within type
H5Tget_order - get byte order
H5Tget_pad - get padding type
H5Tget_precision - get precision in bits
H5Tget_sign - get integer sign type
H5Tget_size - get size in bytes
H5Tget_strpad - get string padding
H5Tinsert - insert scalar struct member
H5Tinsert_array - insert array struct member
H5Tpack - pack struct members
H5Tset_cset - set character set
H5Tset_ebias - set exponent bias
H5Tset_fields - set floating point fields
H5Tset_inpad - set inter-field padding
H5Tset_norm - set floating point normalization
H5Tset_offset - set bit offset within type
H5Tset_order - set byte order
H5Tset_pad - set padding type
H5Tset_precision - set precision in bits
H5Tset_sign - set integer sign type
H5Tset_size - set size in bytes
H5Tset_strpad - set string padding
Filters
H5Tregister - register a new filter method
Ragged Arrays (alpha)
H5Rcreate - create a new ragged array
H5Ropen - open an existing array
H5Rclose - close a ragged array
H5Rwrite - write to an array
H5Rread - read from an array
This release has been tested on UNIX platforms only; specifically:
Linux, FreedBSD, IRIX, Solaris & Dec UNIX.
RELEASE INFORMATION FOR PARALLEL HDF5
-------------------------------------
* Current release supports independent access to fixed dimension datasets
only.
* The comm and info arguments of H5Cset_mpi are not used. All parallel
I/O are done via MPI_COMM_WORLD. Access_mode for H5Cset_mpi can be
H5ACC_INDEPENDENT only.
* This release of parallel HDF5 has been tested on IBM SP2 and SGI
Origin 2000 systems. It uses the ROMIO version of MPIO interface
for parallel I/O supports.
* Useful URL's.
Parallel HDF webpage: "http://hdf.ncsa.uiuc.edu/Parallel_HDF/"
ROMIO webpage: "http://www.mcs.anl.gov/home/thakur/romio/"
* Some to-do items for future releases
support for Intel Teraflop platform.
support for unlimited dimension datasets.
support for file access via a communicator besides MPI_COMM_WORLD.
support for collective access to datasets.
support for independent create/open of datasets.
PLATFORMS SUPPORTED
-------------------
Platform(OS) C-Compiler Fortran-Compiler
------------ ---------- ----------------
Sun4(Solaris 2.5) CC SC4.0 f77 SC4.0
SGI (IRIX v6.5) CC 7.21 f77 7.21
SGI-Origin(IRIX64 v6.4-n32) CC 7.2.1.2m f77 7.2.1.2m
SGI-Origin(IRIX64 v6.4-64) CC 7.2.1.2m f77 7.2.1.2m

BIN
all.zip

Binary file not shown.

46
bin/chkmanifest Executable file
View File

@@ -0,0 +1,46 @@
#!/bin/sh
# Check that all the files in MANIFEST exist and that (if this is a
# CVS checkout) that all the CVS-managed files appear in the
# MANIFEST.
verbose=yes
MANIFEST=/tmp/H5_MANIFEST.$$
# clean up $MANIFEST file when exits
trap "rm -f $MANIFEST" 0
# Copy the manifest file to get a list of file names.
grep '^\.' MANIFEST | expand | cut -f1 -d' ' >$MANIFEST
test "$verbose" && echo " Checking MANIFEST..." 1>&2
test -f $MANIFEST || exit 1
for file in `cat $MANIFEST`; do
if [ ! -f $file ]; then
echo "- $file"
fail=yes
fi
done
for cvs in `find . -type d -name CVS -print`; do
path=`echo $cvs |sed 's/\/CVS//'`
for file in `grep '^\/' $cvs/Entries |cut -d/ -f2`; do
if (grep $path/$file$ $MANIFEST >/dev/null); then
:
else
echo "+ $path/$file"
fail=yes
fi
done
done
if [ "X$fail" = "Xyes" ]; then
cat 1>&2 <<EOF
The MANIFEST is out of date. Files marked with a minus sign (-) no
longer exist; files marked with a plus sign (+) are CVS-managed but do
not appear in the MANIFEST. Please remedy the situation and try again.
EOF
exit 1
fi
test "$verbose" && echo " The MANIFEST is up to date." 1>&2
exit 0

View File

@@ -37,9 +37,18 @@
# (We use csh here, but of course you can adapt to whatever shell you like.)
# compile for MPI jobs
# setenv CC mpcc (for IBM's MPI)
# setenv CC "/usr/local/mpich-1.1.1/lib/rs6000/ch_mpl/mpicc" (for mpich)
setenv CC "/usr/local/mpich-1.1.1/lib/rs6000/ch_mpl/mpicc"
setenv CC "/usr/local/mpich-1.1.2+romio_lgfiles/bin/mpicc"
#
# next 4 for IBM mpi
#
#setenv CC /usr/lpp/ppe.poe/bin/mpcc_r
#
# for both
#
setenv MP_PROCS 1
# These compiler flags work on ASCI baby blue pacific (IBM SP),
# using IBM's MPI and Argonne's MPI-IO (ROMIO):
@@ -51,7 +60,7 @@ setenv CC "/usr/local/mpich-1.1.1/lib/rs6000/ch_mpl/mpicc"
# -bI:/usr/include/piofs/piofs.exp this MPI-IO uses PIOFS file system
# -L/usr /local/mpio/lib/ibm -lmpio link to this MPI-IO lib
#
setenv CFLAGS "-g -qfullpath -bnoobjreorder -D_LARGE_FILES -DHAVE_FUNCTION"
#setenv CFLAGS "-D_LARGE_FILES $CFLAGS"
# The configure/make process needs to be able to run some programs,
# need to specify a processor pool.
@@ -61,12 +70,19 @@ setenv MP_RMPOOL 0
setenv MP_LABELIO no
# Once these variables are set to the proper values for your installation,
# you can run the configure program (i.e., ./configure --enable-parallel=mpio)
# you can run the configure program (i.e., ./configure)
# to set up the Makefiles, etc.
# After configuring, run the make as described in the INSTALL file.
# Once the configuration is complete, you can set any of your
# environment variables to whatever you like.
# the files in the config directory, such as
# config/powerpc-ibm-aix4.2.1.0
# config/powerpc-ibm-aix4.x
# config/powerpc-ibm-aix4.3.2.0
# sometimes will need some help depending on subtlties of the installation
# When compiling and linking your application, don't forget to compile with
# mpcc and link to the MPI-IO library and the parallel version of the HDF5
# library (that was created and installed with the configure/make process).

View File

@@ -1,8 +1,8 @@
#! /bin/sh
# How to create a parallel version of HDF5 on the Intel Asci Red System
# that uses MPI and MPI-IO.
# How to configure a parallel version of HDF5 on the Sandia National Laboratory
# TFLOPS System that uses MPI and MPI-IO.
# Read the INSTALL.ascired file to understand the configure/make process
# Read the INSTALL_TFLOPS file to understand the configure/make process
# for the sequential (i.e., uniprocessor) version of HDF5.
# The process for creating the parallel version of HDF5 using MPI-IO
# is similar, but first you will have to set up some environment variables
@@ -23,8 +23,6 @@
# The following flags are only needed when compiling/linking a user program
# for execution.
#
debug="-g -UH5O_DEBUG -DH5F_OPT_SEEK=0"
default_mode="-DDOS386 $debug -DH5F_LOW_DFLT=H5F_LOW_SEC2"
# Using the MPICH libary by Daniel Sands.
# It contains both MPI-1 and MPI-IO functions.
@@ -44,14 +42,6 @@ mpio_lib="-L$ROMIO/lib"
MPI_INC="$mpi1_inc $mpio_inc"
MPI_LIB="$mpi1_lib $mpio_lib"
#for version 1.1 and later
RUNSERIAL="yod -sz 1"
export RUNSERIAL
RUNPARALLEL="yod -sz 8"
export RUNPARALLEL
LIBS="-lmpich"
export LIBS
# Once these variables are set to the proper values for your installation,
# you can run the configure program (i.e., ./configure tflop --enable-parallel=mpio)
@@ -62,7 +52,7 @@ export LIBS
# cicc and link to the MPI-IO library and the parallel version of the HDF5
# library (that was created and installed with the configure/make process).
CFLAGS="$default_mode" \
CPPFLAGS=$MPI_INC \
LDFLAGS=$MPI_LIB \
./configure --enable-parallel --disable-shared tflop
LIBS="-lmpich" \
./configure --enable-parallel tflop $@

View File

@@ -1,5 +1,10 @@
#!/usr/bin/perl -w
#! /bin/sh
perl -x -S $0 "$@"
exit
#! perl
require 5.003;
use strict;
### Copyright © 1998 NCSA.
# Robb Matzke <matzke@llnl.gov>
@@ -17,8 +22,14 @@ require 5.003;
# Without options this program only displays the current version and
# doesn't modify any files or create backups. The default is to print
# the version number as a dotted triple like `1.0.24' but with the
# `-v' option the version will be printed as `version 1.0 release 24'.
# the version number like X.Y.Z-A where X is the major version number,
# Y is the minor version number, Z is the release number, and A is
# a short annotation string (the `-' is printed only if A is not empty).
# If the `-v' switch is given the version will be printed like:
#
# version X.Y release Z (A)
#
# The space and parentheses around A are only printed if A is not empty.
#
# The `-s VERSION' switch will set the version as specified. If the
# string contains a dotted triple then it will be used as the version
@@ -27,12 +38,19 @@ require 5.003;
# number. If any numbers are missing then zero is assumed. This
# allows versions to be specified like `-s "version 2.1 release 8"' or
# `-s hdf5-2.1.8.tar.bz2'. If the new version is less than the old
# version then a warning message is generated on standard error.
# version then a warning message is generated on standard error. The
# annotation string, A, is set only if it appears immediately after the
# third number, separated by a dash (e.g., `1.2.3-pre1') or in parentheses
# (e.g., `version 1.2 release 3 (pre1)').
#
# The `-i [major|minor|release]' option increments the major, minor,
# or release (the default) number. If the minor number is incremented
# then the release number is set to zero; if the major number is
# incremented then the minor and release numbers are set to zero.
# The `-i [major|minor|release|annot|last]' option increments the major
# number, minor number, release number, or annotation string. The `last'
# switch increments the annotation string if present, otherwise the
# release number. If the release number is incremented then the annotation
# string is cleared. If the minor number is incremented then the release
# number is set to zero and the annotation string is cleared; if the major
# number is incremented then the minor and release numbers are set to zero
# and the annotation string is cleared.
#
# If a file is specified then that file is used instead of
# ./H5public.h or ./src/H5public.h.
@@ -40,7 +58,7 @@ require 5.003;
# If the version number is changed (either `-s' or `-i' was used on
# the command line) then the first line of the README file one
# directory above the H5public.h file is also modified so it looks
# something like: This is hdf5-1.2.3 currently under development.
# something like: This is hdf5-1.2.3-pre1 currently under development.
##############################################################################
sub getvers {
@@ -50,6 +68,7 @@ sub getvers {
($vers[0]) = /^\#\s*define\s+H5_VERS_MAJOR\s+(\d+)/m;
($vers[1]) = /^\#\s*define\s+H5_VERS_MINOR\s+(\d+)/m;
($vers[2]) = /^\#\s*define\s+H5_VERS_RELEASE\s+(\d+)/m;
($vers[3]) = /^\#\s*define\s+H5_VERS_SUBRELEASE\s+\"([^\"]*)\"/m;
return @vers;
}
@@ -58,22 +77,23 @@ sub setvers {
$_[0] =~ s/^(\#\s*define\s+H5_VERS_MAJOR\s+)\d+/$1$vers[0]/m;
$_[0] =~ s/^(\#\s*define\s+H5_VERS_MINOR\s+)\d+/$1$vers[1]/m;
$_[0] =~ s/^(\#\s*define\s+H5_VERS_RELEASE\s+)\d+/$1$vers[2]/m;
$_[0] =~ s/^(\#\s*define\s+H5_VERS_SUBRELEASE\s+\")[^\"]*/$1$vers[3]/m;
}
sub usage {
my ($prog) = $0 =~ /([^\/]+)$/;
print STDERR <<EOF;
Usage: $prog [OPTS] [FILE]
-i major|minor|release
-i major|minor|release|annot
Increment specified version component and set following components
to zero.
-s VERSION
Set the version as specified. The version number can be embedded in
some other string such as \"hdf5-1.1.0.tar.bz2\" or even \"this is
hdf5 version 1.1 release 0\" for convenience.
some other string such as \"hdf5-1.1.0-pre1.tar.bz2\" or even
\"this is hdf5 version 1.1 release 0 (pre1)\" for convenience.
-v
Instead of displaying only a dotted triple version number a line such
as \"version 1.1 release 0\" will be printed.
as \"version 1.1 release 0 (pre1)\" will be printed.
FILE
The name of the file that contains version information. This is
seldom necessary since files H5public.h, src/H5public.h and
@@ -93,10 +113,10 @@ while ($_ = shift) {
};
$_ eq "-i" && do {
if (@ARGV && $ARGV[1]=~/^(major|minor|release)$/) {
if (@ARGV && $ARGV[0]=~/^(major|minor|release|annot)$/) {
$inc = shift;
} else {
$inc = "release";
$inc = "last";
}
next;
};
@@ -120,8 +140,9 @@ unless ($file) {
($file=$_,last) if -f $_;
}
}
die "unable to find source files\n" unless defined $file;
die "unable to read file: $file\n" unless -r $file;
$README = $file;
my $README = $file;
$README =~ s/[^\/]*$/..\/README/;
die "unable to read file: $README\n" unless -r $file;
@@ -132,47 +153,58 @@ close FILE;
my (@curver) = getvers $contents;
# Determine the new version number.
my @newver; #new version
if ($set) {
if ($set =~ /(\d+)\.(\d+)\.(\d+)/) {
@newver = ($1, $2, $3);
} elsif ($set =~ /(\d+)\D+(\d+)\D+(\d+)\D*$/) {
@newver = ($1, $2, $3);
if ($set =~ /(\d+)\.(\d+)\.(\d+)(-([a-zA-Z]\w*))?/) {
@newver = ($1, $2, $3, $5);
} elsif ($set =~ /(\d+)\D+(\d+)\D+(\d+)(\s*\(([a-zA-Z]\w*)\))?\D*$/) {
@newver = ($1, $2, $3, $5);
} elsif ($set =~ /(\d+)\D+(\d+)\D*$/) {
@newver = ($1, $2, 0);
@newver = ($1, $2, 0, "");
} elsif ($set =~ /(\d+)\D*$/) {
@newver = ($1, 0, 0);
@newver = ($1, 0, 0, "");
} else {
die "illegal version number specified: $set\n";
}
} elsif ($inc && $inc eq "major") {
$newver[0] = $curver[0]+1;
@newver[1,2] = (0,0);
} elsif ($inc && $inc eq "minor") {
$newver[0] = $curver[0];
$newver[1] = $curver[1]+1;
$newver[2] = 0;
} elsif ($inc && $inc eq "release") {
@newver[0,1] = @curver[0,1];
$newver[2] = $curver[2]+1;
} elsif ($inc) {
die "unknown increment field: $inc\n";
$inc = $curver[3] eq "" ? 'release' : 'annot' if $inc eq 'last';
if ($inc eq "major") {
$newver[0] = $curver[0]+1;
@newver[1,2,3] = (0,0,"");
} elsif ($inc eq "minor") {
$newver[0] = $curver[0];
$newver[1] = $curver[1]+1;
@newver[2,3] = (0,"");
} elsif ($inc eq "release") {
@newver[0,1] = @curver[0,1];
$newver[2] = $curver[2]+1;
$newver[3] = "";
} elsif ($inc eq "annot") {
@newver[0,1,2] = @curver[0,1,2];
$newver[3] = $curver[3];
$newver[3] =~ s/(\d+)/$1+1/e or
die "Annotation \"".$newver[3]."\" cannot be incremented.\n";
} else {
die "unknown increment field: $inc\n";
}
} else {
# Nothing to do but print result
$README = "";
@newver = @curver;
}
# Print a warning if the version got smaller.
# Print a warning if the version got smaller (don't check annot field)
if ($newver[0]*1000000 + $newver[1]*1000 + $newver[2] <
$curver[0]*1000000 + $curver[1]*1000 + $curver[2]) {
printf STDERR "Warning: version decreased from %d.%d.%d to %d.%d.%d\n",
@curver, @newver;
@curver[0,1,2], @newver[0,1,2];
}
# Update the version number if it changed.
if ($newver[0]!=$curver[0] ||
$newver[1]!=$curver[1] ||
$newver[2]!=$curver[2]) {
$newver[2]!=$curver[2] ||
$newver[3]ne$curver[3]) {
setvers $contents, @newver or die "unable to set version\n";
rename $file, "$file~" or die "unable to save backup file\n";
open FILE, ">$file" or die "unable to open $file but backup saved!\n";
@@ -183,10 +215,12 @@ if ($newver[0]!=$curver[0] ||
# Update the README file
if ($README) {
open FILE, $README or die "$README: $!\n";
@contents = <FILE>;
my @contents = <FILE>;
close FILE;
$contents[0] = sprintf("This is hdf5-%d.%d.%d currently under development\n",
@newver);
$contents[0] = sprintf("This is hdf5-%d.%d.%d%s %s",
@newver[0,1,2],
$newver[3] eq "" ? "" : "-".$newver[3],
"currently under development\n");
open FILE, ">$README" or die "$README: $!\n";
print FILE @contents;
close FILE;
@@ -194,9 +228,18 @@ if ($README) {
# Print the new version number
if ($verbose) {
printf "version %d.%d release %d\n", @newver;
printf("version %d.%d release %d%s\n", @newver[0,1,2],
$newver[3] eq "" ? "" : " (".$newver[3].")");
} else {
printf "%d.%d.%d\n", @newver;
printf("%d.%d.%d%s\n", @newver[0,1,2],
$newver[3] eq "" ? "" : "-".$newver[3]);
}
exit 0;
# Because the first line of this file looks like a Bourne shell script, we
# must tell XEmacs explicitly that this is really a perl script.
#
# Local Variables:
# mode:perl
# End:

View File

@@ -541,7 +541,7 @@ if test -n "$pic_flag"; then
# Check to make sure the pic_flag actually works.
echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6
$rm conftest*
echo > conftest.c
echo 'main(){return(0);}' > conftest.c
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $pic_flag -DPIC"
echo "$progname:547: checking if $compiler PIC flag $pic_flag works" >&5
@@ -777,7 +777,7 @@ else
;;
# FreeBSD 3, at last, uses gcc -shared to do shared libraries.
freebsd3*)
freebsd3* | freebsd4*)
archive_cmds='$CC -shared -o $lib$libobjs'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
@@ -1123,7 +1123,7 @@ amigaos*)
finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
;;
freebsd2* | freebsd3*)
freebsd2* | freebsd3* | freebsd4*)
version_type=sunos
library_names_spec='${libname}${release}.so.$versuffix $libname.so'
finish_cmds='PATH="$PATH:/sbin" ldconfig -m $libdir'

View File

@@ -495,8 +495,13 @@ if test -z "$show_help"; then
-L*)
dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'`
case "$dir" in
/* | [A-Za-z]:\\*)
/*)
# Add the corresponding hardcode_libdir_flag, if it is not identical.
finalize_shlibpath="$finalize_shlibpath$dir:"
;;
[A-Za-z]:\\*)
# Add the corresponding hardcode_libdir_flag, if it is not identical.
finalize_shlibpath="$finalize_shlibpath$dir;"
;;
*)
$echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2
@@ -1496,10 +1501,11 @@ else
if test -f \"\$progdir/\$program\"; then"
# Export our shlibpath_var if we have one.
if test -n "$shlibpath_var" && test -n "$temp_rpath"; then
if test -n "$shlibpath_var" &&
(test -n "$temp_rpath" || test -n "$finalize_shlibpath"); then
$echo >> $output "\
# Add our own library path to $shlibpath_var
$shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
$shlibpath_var=\"$finalize_shlibpath$temp_rpath\$$shlibpath_var\"
# Some systems cannot cope with colon-terminated $shlibpath_var
$shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\`
@@ -2172,7 +2178,9 @@ libdir='$install_libdir'\
if test -z "$run"; then
# Export the shlibpath_var.
eval "export $shlibpath_var"
if test -n "$shlibpath_var"; then
eval "export $shlibpath_var"
fi
# Now actually exec the command.
eval "exec \$cmd$args"

View File

@@ -30,6 +30,14 @@
# /tmp/hdf5-1.0.38.tar.gz
# /tmp/hdf5-1.0.38.tar.bz2
#
# Modifications
# Robb Matzke, 1999-07-16
# The SunOS 5.6 sed *must* have slashes as delimiters. I changed things like
# `sed s+/CVS++' to `sed 's/\/CVS//'
#
# Albert Cheng, 1999-10-26
# Moved the MANIFEST checking to a separate command file so that
# it can be invoked individually.
# Defaults
DEST=releases
@@ -72,49 +80,9 @@ if [ ! -d $DEST ]; then
exit 1
fi
# Copy the manifest file to get a list of file names.
MANIFEST=/tmp/H5_MANIFEST.$$
grep '^\.' MANIFEST | expand | cut -f1 -d' ' >$MANIFEST
# Check that all the files in MANIFEST exist and that (if this is a
# CVS checkout) that all the CVS-managed files appear in the
# MANIFEST.
test "$verbose" && echo " Checking manifest..." 1>&2
test -f $MANIFEST || exit 1
for file in `cat $MANIFEST`; do
if [ ! -f $file ]; then
echo "- $file"
fail=yes
fi
done
for cvs in `find . -type d -name CVS -print`; do
path=`echo $cvs |sed s+/CVS++`
for file in `grep '^\/' $cvs/Entries |cut -d/ -f2`; do
if (grep $path/$file $MANIFEST >/dev/null); then
:
else
echo "+ $path/$file"
fail=yes
fi
done
done
# for file in ./Changes `sh -c 'svf ls' 2>/dev/null`; do
# if (grep $file $MANIFEST >/dev/null); then
# :
# elif [ $file = ./Changes ]; then
# :
# else
# echo "+ $file"
# fail=yes
# fi
# done
# Check the validity of the MANIFEST file.
bin/chkmanifest || fail=yes
if [ "X$fail" = "Xyes" ]; then
cat 1>&2 <<EOF
The MANIFEST is out of date. Files marked with a minus sign (-) no
longer exist; files marked with a plus sign (+) are CVS-managed but do
not appear in the MANIFEST. Please remedy the situation and try again.
EOF
if [ $check = yes ]; then
exit 1
else
@@ -123,6 +91,7 @@ EOF
fi
# Create a manifest that contains only files for distribution.
MANIFEST=/tmp/H5_MANIFEST.$$
grep '^\.' MANIFEST | grep -v _DO_NOT_DISTRIBUTE_ >$MANIFEST
# Prepare the source tree for a release.
@@ -131,16 +100,18 @@ ln -s `pwd` ../hdf5-$VERS || exit 1
mv Makefile ../Makefile.x 2>/dev/null #might fail
cp -p Makefile.dist Makefile
echo "This is hdf5-$VERS released on `date`" >README.x
tail -n +2 <README >>README.x
tail +2l README >>README.x
mv README.x README
test "$verbose" && echo " Running tar..." 1>&2
( \
cd ..; \
tar cf x.tar hdf5-$VERS/Makefile \
`sed s+^.+hdf5-$VERS+ $MANIFEST` || exit 1 \
`sed 's/^\.\//hdf5-'$VERS'\//' $MANIFEST` || exit 1 \
)
# Compress
# Make sure new files are of the right access mode
umask 0133
for comp in $methods; do
case $comp in
tar)

View File

@@ -1,6 +1,7 @@
#!/bin/sh
set -x
date
uname -a
#
# This script should be run nightly from cron. It checks out hdf5
# from the CVS source tree and compares it against the previous
@@ -25,6 +26,9 @@ HDF4LIB=$HDF4LIB_default
# What compression methods to use?
METHODS="gzip bzip2"
# Use User's MAKE if set. Else use generic make.
MAKE=${MAKE:-make}
# Make sure cvs would work
if [ -z "$CVSROOT" ]; then
echo "Where is the CVS repository?" 1>&2
@@ -34,6 +38,7 @@ fi
#
# Command options
cmd="all"
test_opt=""
errcode=0
echo '$#=' $# '$*="' $* '"'
while [ $# -gt 0 ] ; do
@@ -49,10 +54,28 @@ while [ $# -gt 0 ] ; do
cmdtest="test"
cmd=""
;;
srcdir)
#use srcdir option for test
srcdir="yes"
;;
srcdirname)
shift
if [ $# -lt 1 ]; then
echo "srcdirname <dir> missing"
errcode=1
cmd="help"
break
fi
SRCDIRNAME="$1"
;;
release)
cmdrel="release"
cmd=""
;;
clean | distclean)
cmdclean="$1"
cmd=""
;;
help)
cmd="help"
break
@@ -77,6 +100,16 @@ while [ $# -gt 0 ] ; do
fi
ARCHIVES="$1"
;;
op-configure)
shift
if [ $# -lt 1 ]; then
echo "op-configure option missing"
errcode=1
cmd="help"
break
fi
OP_CONFIGURE="$OP_CONFIGURE $1"
;;
*)
echo "Unkown option $1"
errcode=1
@@ -89,34 +122,52 @@ done
if [ "$cmd" = help ]; then
set -
echo "Usage: $0 [all] [checkout] [test] [release] [help] [hdf4 <hdf4lib_path>] [archive <arch_path> ]"
echo " all: Run all commands (checkout, test & release)"
echo " [Default is all]"
echo " checkout: Run cvs checkout"
echo " test: Run test"
echo " release: Run release"
echo " help: Print this message"
echo " hdf4 <hdf4lib_path>:"
echo " Use <hdf4lib_path> as the HDF4LIB locations"
echo " [Default is $HDF4LIB_default]"
echo " archive <arch_path>: "
echo " Use <arch_path> as the release ARCHIVE area"
echo " [<arch_path> default as $ARCHIVES_default]"
cat <<EOF
Usage: $0 [all] [checkout] [test] [srcdir] [release] [help]
[hdf4 <hdf4lib_path>] [archive <arch_path>] [dir <dir>]
[op-configure <option>]
all: Run all commands (checkout, test & release)
[Default is all]
checkout: Run cvs checkout
test: Run test
release: Run release
clean: Run make clean
distclean:Run make distclean
srcdir: Use srcdir option (does not imply other commands)
"snapshot srcdir" is equivalent to "snapshot srcdir all"
"snapshot srcdir checkout" is equivalent to "snapshot checkout"
srcdirname <dir>:
Use <dir> as the srcdir testing directory if srcdir is choosen.
If <dir> starts with '-', it is append to the default name
E.g., "snapshot srcdir srcdirname -xx" uses hostname-xx
[Default is hostname]
help: Print this message
hdf4 <hdf4lib_path>:
Use <hdf4lib_path> as the HDF4LIB locations
[Default is $HDF4LIB_default]
archive <arch_path>:
Use <arch_path> as the release ARCHIVE area
[Default is $ARCHIVES_default]
op-configure <option>:
Pass <option> to the configure command
E.g., "snapshot op-configure --enable-parallel"
configures for parallel mode
EOF
exit $errcode
fi
# Setup the proper configure option (--with-hdf4) to use hdf4 library
# provide HDF4LIB is non-empty.
HDF4LIB=${HDF4LIB:+"--with-hdf4="$HDF4LIB}
CONFIGURE="./configure $HDF4LIB"
CONFIGURE="./configure $HDF4LIB $OP_CONFIGURE"
# Execute the requests
snapshot=yes
# Show all settings right before execution.
# set
# exit 0
H5VERSION=hdf5_1_2
BASEDIR=${HOME}/snapshots-${H5VERSION}
CURRENT=${BASEDIR}/current
PREVIOUS=${BASEDIR}/previous
#=============================
# Run CVS checkout
@@ -125,11 +176,10 @@ if [ "$cmd" = "all" -o -n "$cmdcheckout" ]; then
# Create a working directory. Hopefully one is left over from last
# time that still has the contents of the previous release. But if
# not, just create one and assume that a snapshot is necessary.
COMPARE=${HOME}/hdf5-snapshots
test -d ${COMPARE} || mkdir -p ${COMPARE} || exit 1
test -d ${BASEDIR} || mkdir -p ${BASEDIR} || exit 1
# Check out the current version from CVS
cvs -Q co -d ${COMPARE}/current hdf5 || exit 1
cvs -Q co -d ${CURRENT} -r ${H5VERSION} hdf5 || exit 1
fi # Do CVS checkout
@@ -137,15 +187,40 @@ fi # Do CVS checkout
# Run Test the HDF5 library
#=============================
if [ "$cmd" = "all" -o -n "$cmdtest" ]; then
# setup if srcdir is used.
if [ -z "$srcdir" ]; then
TESTDIR=${CURRENT}
else
#create TESTDIR if not exist yet
case "$SRCDIRNAME" in
"")
SRCDIRNAME=`hostname`
;;
-*)
SRCDIRNAME="`hostname`$SRCDIRNAME"
;;
esac
TESTDIR=${BASEDIR}/TestDir/${SRCDIRNAME}
test -d ${TESTDIR} || mkdir ${TESTDIR}
fi
# Make sure current version exists and is clean
if [ -d ${TESTDIR} ]; then
(cd ${TESTDIR} && ${MAKE} distclean)
else
errcode=$?
snapshot=no
exit $errcode
fi
# Compare it with the previous version. Compare only files listed in
# the MANIFEST plus the MANIFEST itself.
if [ -d ${COMPARE}/previous ]; then
if (diff -c ${COMPARE}/previous/MANIFEST ${COMPARE}/current/MANIFEST); then
if [ -d ${PREVIOUS} ]; then
if (diff -c ${PREVIOUS}/MANIFEST ${CURRENT}/MANIFEST); then
snapshot=no
for src in `grep '^\.' ${COMPARE}/current/MANIFEST|expand|cut -f1 -d' '`; do
for src in `grep '^\.' ${CURRENT}/MANIFEST|expand|cut -f1 -d' '`; do
diff -I H5_VERS_RELEASE -I " released on " \
-I " currently under development" \
${COMPARE}/previous/$src ${COMPARE}/current/$src || \
${PREVIOUS}/$src ${CURRENT}/$src || \
snapshot=yes
# Don't break because we want to see all the diffs.
done
@@ -154,12 +229,14 @@ if [ "$cmd" = "all" -o -n "$cmdtest" ]; then
# Make sure all the serial tests work.
if [ "$snapshot" = "yes" ]; then
if (cd ${COMPARE}/current; \
${CONFIGURE}; \
make _test); then
if (cd ${TESTDIR}; \
${srcdir:+${CURRENT}/}${CONFIGURE}; \
${MAKE} check); then
:
else
errcode=$?
snapshot=no
exit $errcode
fi
fi
fi # Test the HDF5 library
@@ -169,24 +246,61 @@ fi # Test the HDF5 library
# Run Release snapshot, update version, and commit to cvs and tag
#=============================
if [ "$cmd" = "all" -o -n "$cmdrel" ]; then
echo "Release is under construction. No release done."
errcode=1
snapshot=no
break
exit $errcord
if [ "$snapshot" = "yes" ]; then
(cd ${COMPARE}/current; make distclean)
(cd ${CURRENT}; ${MAKE} distclean)
(
# Turn on exit on error in the sub-shell so that it does not
# cvs commit if errors encounter here.
set -e
cd ${COMPARE}/current
cvs -Q tag hdf5-`perl -w bin/h5vers |tr . _`
cd ${CURRENT}
bin/release -d $ARCHIVES $METHODS
RELEASE_VERSION="`perl -w bin/h5vers -v`"
perl -w bin/h5vers -i
RELEASE_VERSION="`perl bin/h5vers -v`"
perl bin/h5vers -i
cvs -Q commit -m "Snapshot $RELEASE_VERSION"
)
errcode=$?
fi
# Replace the previous version with the current version.
rm -rf ${COMPARE}/previous
mv ${COMPARE}/current ${COMPARE}/previous
# Should check if the errcode of the release process but there
# are other failures after release was done (e.g. h5vers or cvs failures)
# that should allow the replacement to occure.
rm -rf ${PREVIOUS}
mv ${CURRENT} ${PREVIOUS}
fi #Release snapshot
exit 0
#=============================
# Clean the test area. Default is no clean.
#=============================
if [ -n "$cmdclean" ]; then
# setup if srcdir is used.
if [ -z "$srcdir" ]; then
TESTDIR=${CURRENT}
else
case "$SRCDIRNAME" in
"")
SRCDIRNAME=`hostname`
;;
-*)
SRCDIRNAME="`hostname`$SRCDIRNAME"
;;
esac
TESTDIR=${BASEDIR}/TestDir/${SRCDIRNAME}
fi
# Make sure current version exists and is clean
if [ -d ${TESTDIR} ]; then
(cd ${TESTDIR} && ${MAKE} $cmdclean )
else
errcode=$?
snapshot=no
exit $errcode
fi
fi # Clean the Test directory
exit $errcode

View File

@@ -53,9 +53,12 @@ $Source = "";
"void*" => "x",
"FILE*" => "x",
"H5A_operator_t" => "x",
"H5D_operator_t" => "x",
"H5E_auto_t" => "x",
"H5E_walk_t" => "x",
"H5G_iterate_t" => "x",
"H5MM_allocate_t" => "x",
"H5MM_free_t" => "x",
"H5T_cdata_t**" => "x",
"H5T_conv_t" => "x",
"H5T_overflow_t" => "x",

View File

@@ -34,6 +34,7 @@ exec_prefix=@exec_prefix@
bindir=@bindir@
libdir=@libdir@
includedir=@includedir@
docdir=@exec_prefix@/doc
PUB_LIB=$(LIB)
# Shared libraries
@@ -46,6 +47,10 @@ LT_INSTALL_PROG=$(LT) --mode=install $(INSTALL_PROGRAM)
LT_INSTALL_LIB=$(LT) --mode=install $(INSTALL_DATA)
LT_UNINSTALL=$(LT) --mode=uninstall $(RM)
## Optional variables. We must declare them here because Irix pmake
## complains if it sees a reference to a variable which has never been
## defined. The main makefile is free to redefine these to something else.
DOCDIR=$(docdir)
# The default is to build the library and/or programs. We must build
# them sequentially.
@@ -88,6 +93,11 @@ all:
# a version of make that doesn't treat the makefile as the initial target
# the user may want to occassionally type `make Makefile' in any source
# directory.
# The `Makefile' target has been renamed to `reconfigure' so that the
# autoconf and make depend processes do not start up automatically.
# One must do `make reconfigure' explicitedly to start the process.
# (When srcdir is used and if more than one machines are running,
# this automatic Makefile/autoconf can get things unstable.)
#
STAMP1=$(top_builddir)/config/stamp1
STAMP2=$(top_builddir)/config/stamp2
@@ -112,7 +122,8 @@ $(top_srcdir)/configure: $(top_srcdir)/configure.in
$(top_builddir)/config.status: $(top_srcdir)/configure $(STAMP1)
-cd $(top_builddir); ./config.status --recheck
Makefile: $(MAKEFILE_PARTS) $(STAMP2)
# rerun the autoconf process if any configure components have changed.
reconfigure: $(MAKEFILE_PARTS) $(STAMP2)
-cd $(top_builddir); CONFIG_HEADERS= ./config.status
#------------------------------------------------------------------------------

View File

@@ -9,7 +9,7 @@
#
lib: $(LIB)
$(LIB) __no_library__: $(LIB_OBJ)
@$(LT_LINK_LIB) -o $@ $(CFLAGS) $(LIB_OBJ) $(LIBS)
@$(LT_LINK_LIB) -o $@ $(CFLAGS) $(LIB_OBJ) $(LDFLAGS) $(LIBS)
progs: $(LIB) $(PROGS)
@@ -55,6 +55,9 @@ $(includedir):
$(bindir):
mkdir $@ && chmod 755 $@
$(DOCDIR):
mkdir $@ && chmod 755 $@
# Install the library, the public header files, and programs.
install: $(PUB_LIB) $(PUB_HDR) $(PROGS) $(libdir) $(includedir) $(bindir)
@for f in X $(PUB_LIB); do \
@@ -81,20 +84,49 @@ install: $(PUB_LIB) $(PUB_HDR) $(PROGS) $(libdir) $(includedir) $(bindir)
fi; \
done
# Install the documents.
install-doc: $(PUB_DOCS) $(DOCDIR)
@for d in X $(SUBDIRS); do \
if test $$d != X; then \
(set -x; cd $$d && $(MAKE) $@) || exit 1; \
fi; \
done
@for f in X $(PUB_DOCS); do \
if test $$f != X; then \
if test -f $$f; then \
(set -x; $(INSTALL_DATA) $$f $(DOCDIR)/. || exit 1); \
else \
(set -x; $(INSTALL_DATA) $(srcdir)/$$f $(DOCDIR)/. || \
exit 1); \
fi; \
fi; \
done
# Removes those things that `make install' (would have) installed.
uninstall:
@if test "X$(LIB)" != X; then \
for f in $(LIB); do \
@for f in X $(LIB); do \
if test $$f != X; then \
$(LT_UNINSTALL) $(libdir)/$$f; \
done; \
fi
fi; \
done
@if test "X$(PUB_HDR)" != X; then \
set -x; cd $(includedir) && $(RM) $(PUB_HDR); \
fi
@if test "X$(PROGS)" != X; then \
for f in $(PROGS); do \
@for f in X $(PROGS); do \
if test $$f != X; then \
$(LT_UNINSTALL) $(bindir)/$$f; \
done; \
fi; \
done
# Removes those things that `make install-doc' (would have) installed.
uninstall-doc:
@for d in X $(SUBDIRS); do \
if test $$d != X; then \
(set -x; cd $$d && $(MAKE) $@) || exit 1; \
fi; \
done
@if test "X$(PUB_DOCS)" != X; then \
set -x; cd $(DOCDIR) && $(RM) $(PUB_DOCS); \
fi
# Removes temporary files without removing the final target files. That is,
@@ -147,6 +179,8 @@ maintainer-clean: distclean
# These files are part of the distribution and are generated automatically on
# GNU/GCC systems.
#------------------------------------------------------------------------------
.PHONY: dep depend
dep depend: .distdep
@DEPEND1@
@DEPEND2@

View File

@@ -38,7 +38,9 @@ dep depend: .distdep
$(CC) -M -MG $(CPPFLAGS) $$dep |sed 's/\.o/.lo/' >>$@; \
fi; \
done;
-perl -p $(top_srcdir)/bin/distdep .depend >$(srcdir)/.distdep
@if test "$(srcdir)" = "."; then \
perl -p $(top_srcdir)/bin/distdep .depend >.distdep; \
fi
-include .depend

View File

@@ -22,12 +22,20 @@ if test X = "X$cc_flags_set"; then
if test "-" != "$cc_vendor-$cc_version"; then
echo "compiler '$CC' is GNU $cc_vendor-$cc_version"
fi
# Some version numbers
cc_vers_major=`echo $cc_version | cut -f1 -d.`
cc_vers_minor=`echo $cc_version | cut -f2 -d.`
cc_vers_patch=`echo $cc_version | cut -f3 -d.`
test -n "$cc_vers_major" || cc_vers_major=0
test -n "$cc_vers_minor" || cc_vers_minor=0
test -n "$cc_vers_patch" || cc_vers_patch=0
cc_vers_all=`expr $cc_vers_major '*' 1000000 + $cc_vers_minor '*' 1000 + $cc_vers_patch`
fi
# Warn about old GNU compilers that don't work right.
case "$cc_vendor-$cc_version" in
gcc-2.7.*)
cat <<EOF
# GCC compilers before gcc-2.8.1 have problems with `long long'.
if test gcc = $cc_vendor -a $cc_vers_all -lt 2008001; then
cat <<EOF
**
** This compiler may be unable to properly compile the long long
** data type used extensively by hdf5, although specifying
@@ -37,15 +45,23 @@ case "$cc_vendor-$cc_version" in
** gcc version 2.8.1 before reporting bugs to the HDF5 team.
**
EOF
sleep 5
;;
pgcc-2.*)
v2=`echo $cc_version |cut -f2 -d.`
v3=`echo $cc_version |cut -f3 -d.`
v=`expr $v2 '*' 1000 + $v3`
if test $v -le 91066; then
cat <<EOF
sleep 5
# Current EGCS compilers have problems with `long long' and register
# allocation when optimizations are turned on for x86 systems.
elif test egcs = $cc_vendor -a $cc_vers_all -le 2091066; then
cat <<EOF
**
** This compiler may have problems allocating registers when
** optimizations are enabled on some platforms. Specifying
** --disable-hsizet usually avoids the bug.
**
EOF
sleep 5
# All current versions of PGCC have problems also.
elif test pgcc = $cc_vendor -a $cc_vers_all -le 2091066; then
cat <<EOF
**
** This compiler may have problems allocating registers for long
** long data types when optimizations are enabled. There may be
@@ -54,10 +70,9 @@ EOF
** Please use gcc-2.8 or egcs-1.1.1 before reporting bugs.
**
EOF
sleep 5
fi
;;
esac
sleep 5
fi
# Architecture-specific flags
case "$host_cpu" in
@@ -153,4 +168,4 @@ esac
if test X = "X$cc_flags_set"; then
cc_vendor=
cc_version=
fi
fi

36
config/hpux11.00 Normal file
View File

@@ -0,0 +1,36 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for details.
# Default compiler is `cc'
if test "X-" = "X-$CC"; then
CC=cc
CC_BASENAME=cc
fi
# Flags
case "X-$CC" in
X-gcc)
CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions
DEBUG_CFLAGS="-g -fverbose-asm"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O3"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=
;;
*)
CFLAGS="$CFLAGS -Ae"
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS="-Ae"
PROD_CFLAGS=-O
PROD_CPPFLAGS="-Ae"
PROFILE_CFLAGS=
PROFILE_CPPFLAGS="-Ae"
;;
esac

View File

@@ -6,6 +6,8 @@
#
# See BlankForm in this directory for details.
# This is for the ASCI RED TFLOPS machine
# The default compiler is `cicc'
if test "X-" = "X-$CC"; then
CC=cicc
@@ -49,12 +51,33 @@ enable_shared="${enable_shared:-no}"
# `ll' or if the format would be `%qd' set it to `q'.
hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}
# Hard set sizeof_intn_t to 0 because they are not supported.
# Hard set sizeof_intN_t to 0 because they are not supported.
ac_cv_sizeof_int8_t=${ac_cv_sizeof_int8_t='0'}
ac_cv_sizeof_int16_t=${ac_cv_sizeof_int16_t='0'}
ac_cv_sizeof_int32_t=${ac_cv_sizeof_int32_t='0'}
ac_cv_sizeof_int64_t=${ac_cv_sizeof_int64_t='0'}
ac_cv_sizeof_int8_t=${ac_cv_sizeof_int8_t='0'}
ac_cv_sizeof_uint8_t=${ac_cv_sizeof_uint8_t='0'}
ac_cv_sizeof_uint16_t=${ac_cv_sizeof_uint16_t='0'}
ac_cv_sizeof_uint32_t=${ac_cv_sizeof_uint32_t='0'}
ac_cv_sizeof_uint64_t=${ac_cv_sizeof_uint64_t='0'}
ac_cv_sizeof_uint8_t=${ac_cv_sizeof_uint8_t='0'}
# Hard set sizeof_int_leastN_t to 0 because they are not supported.
ac_cv_sizeof_int_least8_t=${ac_cv_sizeof_int_least8_t='0'}
ac_cv_sizeof_int_least16_t=${ac_cv_sizeof_int_least16_t='0'}
ac_cv_sizeof_int_least32_t=${ac_cv_sizeof_int_least32_t='0'}
ac_cv_sizeof_int_least64_t=${ac_cv_sizeof_int_least64_t='0'}
ac_cv_sizeof_uint_least8_t=${ac_cv_sizeof_uint_least8_t='0'}
ac_cv_sizeof_uint_least16_t=${ac_cv_sizeof_uint_least16_t='0'}
ac_cv_sizeof_uint_least32_t=${ac_cv_sizeof_uint_least32_t='0'}
ac_cv_sizeof_uint_least64_t=${ac_cv_sizeof_uint_least64_t='0'}
# Hard set sizeof_int_fastN_t to 0 because they are not supported.
ac_cv_sizeof_int_fast8_t=${ac_cv_sizeof_int_fast8_t='0'}
ac_cv_sizeof_int_fast16_t=${ac_cv_sizeof_int_fast16_t='0'}
ac_cv_sizeof_int_fast32_t=${ac_cv_sizeof_int_fast32_t='0'}
ac_cv_sizeof_int_fast64_t=${ac_cv_sizeof_int_fast64_t='0'}
ac_cv_sizeof_uint_fast8_t=${ac_cv_sizeof_uint_fast8_t='0'}
ac_cv_sizeof_uint_fast16_t=${ac_cv_sizeof_uint_fast16_t='0'}
ac_cv_sizeof_uint_fast32_t=${ac_cv_sizeof_uint_fast32_t='0'}
ac_cv_sizeof_uint_fast64_t=${ac_cv_sizeof_uint_fast64_t='0'}

View File

@@ -40,7 +40,7 @@ case "X-$CC_BASENAME" in
# Extra production flags
# Note: higher optimizations relax alignment requirements needed.
PROD_CFLAGS=-O
PROD_CFLAGS="-O -s"
PROD_CPPFLAGS=
# Extra profiling flags

View File

@@ -74,14 +74,11 @@ case "X-$CC_BASENAME" in
DEBUG_CPPFLAGS=
# Extra production flags
PROD_CFLAGS=-O
PROD_CFLAGS="-O -s"
PROD_CPPFLAGS=
# Extra profiling flags
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
# Turn off shared lib option. It does not work for IRIX64 yet.
test `uname -s` = IRIX64 && enable_shared="${enable_shared:-no}"
;;
esac

View File

@@ -0,0 +1,22 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#
# See BlankForm in this directory for details.
# Cross compiling defaults
hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}
ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
ac_cv_header_stdc=${ac_cv_header_stdc='yes'}
ac_cv_sizeof_short=${ac_cv_sizeof_short=2}
ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
ac_cv_sizeof_long=${ac_cv_sizeof_long=4}
ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8}
ac_cv_sizeof_float=${ac_cv_sizeof_float=4}
ac_cv_sizeof_double=${ac_cv_sizeof_double=8}
ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=8}
ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=4}
ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=8}

View File

@@ -0,0 +1,63 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
# What must *always* be present for things to compile correctly?
#CFLAGS="$CFLAGS -ansi"
#CPPFLAGS="$CPPFLAGS -I."
# What compiler flags should be used for code development?
DEBUG_CFLAGS=
DEBUG_CPPFLAGS=
# What compiler flags should be used for building a production
# library?
PROD_CFLAGS=
PROD_CPPFLAGS=
# What compiler flags enable code profiling?
PROFILE_CFLAGS=
PROFILE_CPPFLAGS=
#----------------------------------------------------------------------------
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}
ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
ac_cv_header_stdc=${ac_cv_header_stdc='yes'}
ac_cv_sizeof_short=${ac_cv_sizeof_short=2}
ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
ac_cv_sizeof_long=${ac_cv_sizeof_long=4}
ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long=8}
ac_cv_sizeof_float=${ac_cv_sizeof_float=4}
ac_cv_sizeof_double=${ac_cv_sizeof_double=8}
ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=8}
ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=4}
ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=8}
ac_cv_sizeof_uint8_t=${ac_cv_sizeof_uint8_t=1}
ac_cv_sizeof_uint16_t=${ac_cv_sizeof_uint16_t=2}
ac_cv_sizeof_uint32_t=${ac_cv_sizeof_uint32_t=4}
ac_cv_sizeof_uint64_t=${ac_cv_sizeof_uint64_t=8}
ac_cv_sizeof_int8_t=${ac_cv_sizeof_int8_t=1}
ac_cv_sizeof_int16_t=${ac_cv_sizeof_int16_t=2}
ac_cv_sizeof_int32_t=${ac_cv_sizeof_int32_t=4}
ac_cv_sizeof_int64_t=${ac_cv_sizeof_int64_t=8}
ac_cv_sizeof___int64=${ac_cv_sizeof___int64=8}
ac_cv_sizeof_char=${ac_cv_sizeof_char=1}
ac_cv_header_sys_ioctl_h=${ac_cv_header_sys_ioctl_h=yes}
ac_cv_path_install=${ac_cv_path_install='cp -r'}
RUNPARALLEL="MP_PROCS=2 poe"

View File

@@ -6,10 +6,10 @@
#
# See BlankForm in this directory for details
# The default compiler is `gcc'
# The default compiler is `sunpro cc'
if test "X-" = "X-$CC"; then
CC=gcc
CC_BASENAME=gcc
CC=cc
CC_BASENAME=cc
fi
# Try gcc compiler flags
@@ -20,9 +20,13 @@ if test "X-" = "X-$cc_flags_set"; then
CFLAGS="-erroff=%none"
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS="-DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS=-xO2
PROD_CFLAGS="-O -s"
PROD_CPPFLAGS=
PROFILE_CFLAGS=-xpg
PROFILE_CPPFLAGS=
cc_flags_set=yes
# Turn off optimization flag for SUNpro compiler versions 4.x which
# have an optimization bug. Version 5.0 works.
($CC -V 2>&1) | grep -s 'cc: .* C 4\.' >/dev/null 2>&1 \
&& PROD_CFLAGS="`echo $PROD_CFLAGS | sed -e 's/-O//'`"
fi

138
config/unicos Normal file
View File

@@ -0,0 +1,138 @@
# -*- shell-script -*-
#
# This file is part of the HDF5 build script. It is processed shortly
# after configure starts and defines, among other things, flags for
# the various compile modes.
#----------------------------------------------------------------------------
# Compiler flags. The CPPFLAGS values should not include package debug
# flags like `-DH5G_DEBUG' since these are added with the
# `--enable-debug' switch of configure.
#----------------------------------------------------------------------------
# Choosing a C Compiler
# ---------------------
#
# The user should be able to specify the compiler by setting the CC
# environment variable to the name of the compiler and any switches it
# requires for proper operation. If CC is unset then this script may
# set it. If CC is unset by time this script completes then configure
# will try `gcc' and `cc' in that order (perhaps some others too).
#
# Note: Code later in this file may depend on the value of $CC_BASENAME
# in order to distinguish between different compilers when
# deciding which compiler command-line switches to use. This
# variable is set based on the incoming value of $CC and is only
# used within this file.
if test "X-" = "X-$CC"; then
CC=cc
CC_BASENAME=cc
fi
# no need to use RANLIB
RANLIB=:
# C Compiler and Preprocessor Flags
# ---------------------------------
#
# Flags that end with `_CFLAGS' are always passed to the compiler.
# Flags that end with `_CPPFLAGS' are passed to the compiler when
# compiling but not when linking.
#
# DEBUG_CFLAGS Flags to pass to the compiler to create a
# DEBUG_CPPFLAGS library suitable for use with debugging
# tools. Usually this list will exclude
# optimization switches (like `-O') and include
# switches that turn on symbolic debugging
# support (like `-g').
#
# PROD_CFLAGS Flags to pass to the compiler to create a
# PROD_CPPFLAGS production version of the library. These
# usualy exclude symbolic debugging switches
# (like `-g') and include optimization switches
# (like `-O').
#
# PROFILE_CFLAGS Flags to pass to the compiler to create a
# PROFILE_CPPFLAGS library suitable for performance testing (like
# `-pg'). This may or may not include debugging
# or production flags.
#
# CFLAGS Flags can be added to this variable which
# might already be partially initialized. These
# flags will always be passed to the compiler
# and should include switches to turn on full
# warnings. HDF5 attempts to be ANSI and Posix
# compliant and employ good programming
# practices resulting in few if any
# warnings.
#
# Warning flags do not have to be added to CFLAGS
# variable if the compiler is the GNU gcc
# compiler or a descendent of gcc such as EGCS or PGCC.
#
# The CFLAGS should contains *something* or else
# configure will probably add `-g'. For most
# systems this isn't a problem but some systems
# will disable optimizations in favor of the
# `-g'.
#
#
# These flags should be set according to the compiler being used.
# There are two ways to check the compiler. You can try using `-v' or
# `--version' to see if the compiler will print a version string. You
# can use the value of $CC_BASENAME which is the base name of the
# first word in $CC (note that the value of CC may have changed
# above).
case $CC_BASENAME in
gcc)
CFLAGS="$CFLAGS -Wsign-compare" #Only works for some versions
DEBUG_CFLAGS="-g -fverbose-asm"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O3 -fomit-frame-pointer"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=
;;
cc)
CFLAGS="$CFLAGS"
DEBUG_CFLAGS="-g -h zero"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O2 -h scalar0"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=
;;
*)
CFLAGS="$CFLAGS -ansi"
DEBUG_CFLAGS="-g"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=
;;
esac
# Overriding Configure Tests
# --------------------------
#
# Values for overriding configuration tests when cross compiling.
# This includes compiling on some machines where the serial front end
# compiles for a parallel back end.
# Set this to `yes' or `no' depending on whether the target is big
# endian or little endian.
ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
# Set this to the width required by printf() to print type `long
# long'. For instance, if the format would be `%lld' then set it to
# `ll' or if the format would be `%qd' set it to `q'.
#hdf5_cv_printf_ll=${hdf5_cv_printf_ll='ll'}

View File

@@ -102,7 +102,7 @@ case $CC_BASENAME in
CFLAGS="$CFLAGS"
DEBUG_CFLAGS="-g -h zero"
DEBUG_CPPFLAGS="-DH5F_OPT_SEEK=0 -DH5F_LOW_DFLT=H5F_LOW_SEC2"
PROD_CFLAGS="-O2"
PROD_CFLAGS="-O2 -h scalar0"
PROD_CPPFLAGS=
PROFILE_CFLAGS="-pg"
PROFILE_CPPFLAGS=

2247
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -136,14 +136,14 @@ AC_MSG_CHECKING(for production mode)
AC_ARG_ENABLE(production,
[ --enable-production Determines how to run the compiler.])
case "X-$enableval" in
X-yes)
case "X-$enable_production" in
X-|X-yes)
AC_MSG_RESULT("production")
CONFIG_MODE=production
CFLAGS="$CFLAGS $PROD_CFLAGS"
CPPFLAGS="$CPPFLAGS $PROD_CPPFLAGS"
;;
X-|X-no)
X-no)
AC_MSG_RESULT("development")
CONFIG_MODE=development
CFLAGS="$CFLAGS $DEBUG_CFLAGS"
@@ -166,8 +166,7 @@ dnl Check for system libraries.
dnl
AC_CHECK_LIB(m,ceil)
AC_CHECK_LIB(nsl,xdr_int) dnl ...for Solaris and hdf4
AC_CHECK_LIB(coug,main) dnl ...for ASCI/Red
AC_CHECK_LIB(jpeg,main) dnl ...required for linking hdf4 apps
dnl AC_CHECK_LIB(coug,main) dnl ...for ASCI/Red
dnl ----------------------------------------------------------------------
dnl Check for system header files.
@@ -176,7 +175,8 @@ AC_HEADER_STDC
AC_HEADER_TIME
dnl Unix
AC_CHECK_HEADERS(sys/resource.h sys/time.h unistd.h sys/ioctl.h sys/stat.h)
AC_CHECK_HEADERS(stddef.h setjmp.h stdint.h)
AC_CHECK_HEADERS(stddef.h setjmp.h)
AC_CHECK_HEADERS(stdint.h, C9x=yes)
dnl Windows
AC_CHECK_HEADERS(io.h winsock.h sys/timeb.h)
@@ -207,10 +207,19 @@ AC_CHECK_SIZEOF(float, 4)
AC_CHECK_SIZEOF(double, 8)
AC_CHECK_SIZEOF(long double, 8)
dnl Checkpoint the cache
AC_CACHE_SAVE
dnl Posix.1g types (C9x)
cat >>confdefs.h <<\EOF
#include <sys/types.h>
EOF
if test "Xyes" = "X$C9x"; then
cat >>confdefs.h <<\EOF
#include <stdint.h>
EOF
fi
AC_CHECK_SIZEOF( int8_t, 1)
AC_CHECK_SIZEOF( uint8_t, 1)
AC_CHECK_SIZEOF( int_least8_t, 1)
@@ -267,6 +276,63 @@ case $HSIZET in
;;
esac
dnl Checkpoint the cache
AC_CACHE_SAVE
dnl ----------------------------------------------------------------------
dnl Is HDF4 present? If so then we can compile the h5toh4 converter. We
dnl assume h5toh4 can be compiled and then prove otherwise when we don't find
dnl a header file or library.
dnl
AC_SUBST(H5TOH4)
H5TOH4=h5toh4
AC_SUBST(TESTH5TOH4)
TESTH5TOH4='$(srcdir)/testh5toh4'
AC_ARG_WITH(hdf4,[ --with-hdf4=INC,LIB Use the HDF4 library],,withval=[/usr/ncsa/include,/usr/ncsa/lib])
case $withval in
yes)
AC_CHECK_HEADERS(mfhdf.h,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(z,deflate,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(jpeg,jpeg_start_compress,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(df,Hstartaccess,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(mfhdf,SDstart,,unset H5TOH4 TESTH5TOH4)
;;
no)
AC_MSG_CHECKING(for HDF4)
AC_MSG_RESULT(suppressed)
unset H5TOH4 TESTH5TOH4
;;
*)
hdf4_inc="`echo $withval |cut -f1 -d,`"
if test "X" != "$hdf4_inc"; then
saved_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -I$hdf4_inc"
AC_CHECK_HEADERS(mfhdf.h,,
CPPFLAGS="$saved_CPPFLAGS"
unset H5TOH4 TESTH5TOH4
)
else
AC_CHECK_HEADERS(mfhdf.h)
fi
hdf4_lib="`echo $withval |cut -f2 -d, -s`"
if test "X" != "$hdf4_lib"; then
saved_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -L$hdf4_lib"
AC_CHECK_LIB(z,deflate,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(jpeg,jpeg_start_compress,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(df,Hstartaccess,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(mfhdf,SDstart,,unset H5TOH4 TESTH5TOH4)
else
AC_CHECK_LIB(z,deflate,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(jpeg,jpeg_start_compress,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(df,Hstartaccess)
AC_CHECK_LIB(mfhdf,SDstart)
fi
;;
esac
dnl ----------------------------------------------------------------------
dnl Is the GNU zlib present? It has a header file `zlib.h' and a library
dnl `-lz' and their locations might be specified with the `--enable-zlib'
@@ -296,7 +362,7 @@ case $withval in
fi
zlib_lib="`echo $withval |cut -f2 -d, -s`"
if test "X" != "$zlb_lib"; then
if test "X" != "$zlib_lib"; then
saved_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -L$zlib_lib"
AC_CHECK_LIB(z, compress,,LDFLAGS="$saved_LDFLAGS")
@@ -305,55 +371,9 @@ case $withval in
fi
;;
esac
dnl ----------------------------------------------------------------------
dnl Is HDF4 present? If so then we can compile the h5toh4 converter. We
dnl assume h5toh4 can be compiled and then prove otherwise when we don't find
dnl a header file or library.
dnl
AC_SUBST(H5TOH4)
H5TOH4=h5toh4
AC_SUBST(TESTH5TOH4)
TESTH5TOH4='$(srcdir)/testh5toh4'
AC_ARG_WITH(hdf4,[ --with-hdf4=INC,LIB Use the HDF4 library],,withval=yes)
case $withval in
yes)
AC_CHECK_HEADERS(mfhdf.h,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(df,main,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(mfhdf,main,,unset H5TOH4 TESTH5TOH4)
;;
no)
AC_MSG_CHECKING(for HDF4)
AC_MSG_RESULT(suppressed)
unset H5TOH4 TESTH5TOH4
;;
*)
hdf4_inc="`echo $withval |cut -f1 -d,`"
if test "X" != "$hdf4_inc"; then
saved_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -I$hdf4_inc"
AC_CHECK_HEADERS(mfhdf.h,,
CPPFLAGS="$saved_CPPFLAGS"
unset H5TOH4 TESTH5TOH4
)
else
AC_CHECK_HEADERS(mfhdf.h)
fi
hdf4_lib="`echo $withval |cut -f2 -d, -s`"
if test "X" != "$hdf4_lib"; then
saved_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -L$hdf4_lib"
AC_CHECK_LIB(df,main,,unset H5TOH4 TESTH5TOH4)
AC_CHECK_LIB(mfhdf,main,,unset H5TOH4 TESTH5TOH4)
else
AC_CHECK_LIB(df,main)
AC_CHECK_LIB(mfhdf,main)
fi
;;
esac
dnl Checkpoint the cache
AC_CACHE_SAVE
dnl ----------------------------------------------------------------------
dnl How does one figure out the local time zone? Anyone know of a
@@ -474,9 +494,14 @@ dnl ----------------------------------------------------------------------
dnl Try to figure out how to print `long long'. Some machines use `%lld'
dnl and others use `%qd'. There may be more! The final `l' is a
dnl default in case none of the others work.
dnl Need to patch up LD_LIBRARY_PATH so that the execution can find all
dnl the dynamic library. The correct way to do it should be updating
dnl LD_LIBRARY_PATH along with LDFLAGS or do it with the AC_TRY_RUN macro.
dnl
AC_MSG_CHECKING(how to print long long)
AC_CACHE_VAL(hdf5_cv_printf_ll,
LD_LIBRARY_PATH="$LD_LIBRARY_PATH`echo $LDFLAGS | sed -e 's/-L/:/g' -e 's/ //g'`"
export LD_LIBRARY_PATH
for hdf5_cv_printf_ll in l L q ll unknown; do
AC_TRY_RUN([
#include <stdio.h>
@@ -504,21 +529,26 @@ AC_ARG_ENABLE(debug,
AC_SUBST(DEBUG_PKG)
all_packages="ac,b,d,e,f,g,hg,hl,i,mf,mm,o,p,s,t,v,z"
if test X = "X$DEBUG_PKG" -o Xyes = "X$DEBUG_PKG"; then
DEBUG_PKG="d,e,f,g,hg,i,mm,o,p,s,t,v,z"
CPPFLAGS="$CPPFLAGS -UNDEBUG"
AC_MSG_RESULT(default ($DEBUG_PKG))
elif test Xall = "X$DEBUG_PKG"; then
DEBUG_PKG=$all_packages
CPPFLAGS="$CPPFLAGS -UNDEBUG"
AC_MSG_RESULT(all ($DEBUG_PKG))
elif test Xno = "X$DEBUG_PKG" -o Xnone = "X$DEBUG_PKG"; then
AC_MSG_RESULT(none)
DEBUG_PKG=
CPPFLAGS="$CPPFLAGS -DNDEBUG"
else
AC_MSG_RESULT($DEBUG_PKG)
fi
case X-$DEBUG_PKG in
X-yes)
DEBUG_PKG="d,e,f,g,hg,i,mm,o,p,s,t,v,z"
CPPFLAGS="$CPPFLAGS -UNDEBUG"
AC_MSG_RESULT(default ($DEBUG_PKG))
;;
X-all)
DEBUG_PKG=$all_packages
CPPFLAGS="$CPPFLAGS -UNDEBUG"
AC_MSG_RESULT(all ($DEBUG_PKG))
;;
X-|X-no|X-none)
AC_MSG_RESULT(none)
DEBUG_PKG=
CPPFLAGS="$CPPFLAGS -DNDEBUG"
;;
*)
AC_MSG_RESULT($DEBUG_PKG)
;;
esac
if test "X" != "X$DEBUG_PKG"; then
for pkg in `echo $DEBUG_PKG | tr 'a-z,' 'A-Z '`; do
@@ -535,7 +565,7 @@ AC_ARG_ENABLE(trace,
TRACE=$enableval)
AC_SUBST(TRACE_API)
if test X = "X$TRACE" -o Xyes = "X$TRACE"; then
if test Xyes = "X$TRACE"; then
AC_MSG_RESULT(yes)
TRACE_API=yes
CPPFLAGS="$CPPFLAGS -DH5_DEBUG_API"
@@ -545,6 +575,9 @@ else
CPPFLAGS="$CPPFLAGS -UH5_DEBUG_API"
fi
dnl Checkpoint the cache
AC_CACHE_SAVE
dnl ----------------------------------------------------------------------
dnl The following variables are used to distinguish between building a
dnl serial and parallel library.
@@ -658,9 +691,24 @@ case "X-$enable_parallel" in
X-yes)
# We want to compile a parallel library with a compiler that
# already knows how to link with MPI and MPI-IO.
# may already know how to link with MPI and MPI-IO.
AC_MSG_RESULT(provided by compiler)
PARALLEL=yes
# Try link a simple MPI program. If fail, try again with -lmpi.
AC_TRY_LINK(,MPI_Init(),,AC_CHECK_LIB(mpi,MPI_Init,,PARALLEL=no))
# Then try link a simple MPI-IO program. If fail, try again with
# -lmpio.
if test "yes" = "$PARALLEL"; then
AC_TRY_LINK(,MPI_File_open(),,
AC_CHECK_LIB(mpio,MPI_File_open,,PARALLEL=no))
fi
# Set RUNPARALLEL to mpirun if not set yet.
if test "yes" = "$PARALLEL" -a "X-" = "X-$RUNPARALLEL"; then
RUNPARALLEL="mpirun -np \$\${NPROCS:=2}"
fi
;;
X-mpich)
@@ -707,11 +755,11 @@ if test "X-" != "X-$PARALLEL"; then
AC_MSG_RESULT($RUNPARALLEL)
# Check that we can link a simple MPI and MPI-IO application
dnl AC_MSG_CHECKING(whether a simple MPI-IO program can be linked)
dnl AC_TRY_LINK(,[MPI_Init();MPI_File_open();],
dnl AC_MSG_RESULT(yes),
dnl AC_MSG_RESULT(no)
dnl AC_MSG_ERROR('unable to link a simple MPI-IO application'))
AC_MSG_CHECKING(whether a simple MPI-IO program can be linked)
AC_TRY_LINK(,[MPI_Init();MPI_File_open();],
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
AC_MSG_ERROR('unable to link a simple MPI-IO application'))
# There *must* be some way to run in parallel even if it's just the
@@ -743,7 +791,7 @@ AC_SUBST(H5_VERSION)
AC_SUBST(CONFIG_DATE) CONFIG_DATE=`date`
# User doing the configuration
AC_SUBST(CONFIG_USER) CONFIG_USER="$USER@`hostname`"
AC_SUBST(CONFIG_USER) CONFIG_USER="`whoami`@`hostname`"
if test "X-$ORGANIZATION" != "X-"; then
CONFIG_USER="$CONFIG_USER at $ORGANIZATION"
fi
@@ -753,10 +801,10 @@ AC_SUBST(CONFIG_MODE)
# Byte sex from the AC_C_BIGENDIAN macro.
AC_SUBST(BYTESEX)
if test "X-$WORDS_BIGENDIAN" = "X-"; then
BYTESEX="little-endian"
else
if test $ac_cv_c_bigendian = yes; then
BYTESEX="big-endian"
else
BYTESEX="little-endian"
fi
# Are we compiling static libraries, shared libraries, or both?
@@ -779,7 +827,18 @@ AC_SUBST(CC_VERSION)
if test "X-$cc_vendor" != "X-" && test "X-$cc_version" != "X-"; then
CC_VERSION="$CC ($cc_vendor-$cc_version)"
else
CC_VERSION="$CC"
# If $CC contains directory component, take it as is;
# else search it among PATH components.
if `echo $CC | grep / 2>&1 /dev/null`; then
CC_VERSION="$CC"
else
for x in `echo $PATH | sed -e 's/:/ /g'`; do
if test -x $x/$CC; then
CC_VERSION="$x/$CC"
break
fi
done
fi
fi
@@ -800,7 +859,7 @@ else
AC_SUBST_FILE(DEPEND1) DEPEND1=$srcdir/src/.distdep
AC_SUBST_FILE(DEPEND2) DEPEND2=$srcdir/test/.distdep
AC_SUBST_FILE(DEPEND3) DEPEND3=$srcdir/testpar/.distdep
AC_SUBST_FILE(DEPEND4) DEPEND4=$srcdirtools/.distdep
AC_SUBST_FILE(DEPEND4) DEPEND4=$srcdir/tools/.distdep
fi
dnl We don't need to say when we're entering directories if we're using
@@ -839,7 +898,8 @@ saved_no_create=$no_create
no_create=yes
AC_OUTPUT(src/libhdf5.settings config/depend config/commence config/conclude \
Makefile src/Makefile pablo/Makefile test/Makefile \
testpar/Makefile tools/Makefile examples/Makefile)
testpar/Makefile tools/Makefile examples/Makefile \
doc/Makefile doc/html/Makefile doc/html/Tutor/Makefile)
no_create=$saved_no_create
# Then the stamp2 file for H5config.h

64
doc/Makefile.in Normal file
View File

@@ -0,0 +1,64 @@
# HDF5 Library Doc Makefile(.in)
#
# Copyright (C) 1997 National Center for Supercomputing Applications.
# All rights reserved.
#
#
# This is the top level makefile of the Doc directory. It mostly just
# reinvokes make in the various subdirectories.
# You can alternatively invoke make from each subdirectory manually.
#
top_srcdir=@top_srcdir@
top_builddir=..
srcdir=@srcdir@
VPATH=.:@srcdir@
@COMMENCE@
# Subdirectories in build-order
SUBDIRS=html
##===========================================================================
lib progs check test _test install uninstall:
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@) || exit 1; \
done
tests TAGS dep depend:
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@) || exit 1; \
done
$(docdir):
mkdir $@ && chmod 755 $@
install-doc: $(docdir)
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@) || exit 1; \
done
uninstall-doc:
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@) || exit 1; \
done
.PHONY: all lib progs test _test install uninstall dep depend clean \
mostlyclean distclean maintainer-clean
clean mostlyclean:
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@); \
done
distclean:
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@); \
done
-$(RM) Makefile
maintainer-clean: distclean
@echo "This target is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@); \
done

125
doc/html/ADGuide.html Normal file
View File

@@ -0,0 +1,125 @@
<html>
<head>
<title>
HDF5 User's Guide
</title>
</head>
<body bgcolor="#FFFFFF">
<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="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
</td></tr>
</table>
</center>
<hr>
<center>
<h1>HDF5 Application Developer's Guide</h1>
</center>
<center>
<table border=0 width=80%>
<tr><td valign=top colspan=3>
These documents provide guidelines and standards specifications
for HDF5 application developers.
</td></tr>
<tr><td colspan=2>&nbsp;</td></tr>
<tr><td valign=top><a href="XML_DTD.html">The XML DTD </a>
<br>&nbsp;&nbsp;&nbsp;<a href="XML_DTD.html">for HDF5</a>
</td><td></td><td valign=top>The standard HDF5 XML DTD and
design notes.
</td></tr>
<tr><td colspan=2>&nbsp;</td></tr>
<tr><td valign=top width=35%><a href="ImageSpec.html">
HDF5 Image and</a>
<br>&nbsp;&nbsp;&nbsp;<a href="ImageSpec.html">Palette Specification</a>
</td><td></td><td valign=top>A specification for the implementation
of images and palettes in HDF5 applications.
</td></tr>
<tr><td colspan=2>&nbsp;</td></tr>
<tr><td valign=top width=35%><a href="ADGuide/H4toH5Mapping.pdf">
Mapping HDF4 Objects</a>
<br>&nbsp;&nbsp;&nbsp;<a href="ADGuide/H4toH5Mapping.pdf">to HDF5 Objects</a>
</td><td></td><td valign=top>Guidelines for translating
HDF4 file objects into valid HDF5 file objects.
<i>(PDF format only)</i>
</td></tr>
<tr><td colspan=2>&nbsp;</td></tr>
<!--
<tr><td valign=top><a href="xxx.html">xxx</a>
<br>&nbsp;&nbsp;&nbsp;<a href="xxx.html">xxx</a>
</td><td></td><td valign=top>xxx
<br>&nbsp;&nbsp;&nbsp;
xxx
</td></tr>
-->
</table>
</center>
<br>
<br>
<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="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
</td></tr>
</table>
</center>
<hr>
<address>
<table width=100% border=0>
<tr><td align=left valign=top>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<br>
Last modified: 9 June 2000
</td><td align=right valign=top>
<a href="Copyright.html">Copyright</a>&nbsp;&nbsp;
<br>
Describes HDF5 Release 1.2.2, June 2000
</td></tr>
</table>
</body>
</html>

Binary file not shown.

View File

@@ -1,7 +1,7 @@
<html>
<head>
<title>Attributes</title>
<title>Attribute Interface (H5A)</title>
</head>
<body bgcolor="#FFFFFF">
@@ -11,56 +11,39 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
Attributes&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -174,7 +157,7 @@ And in this document, the
<h2>4. Attribute Inquiry Functions</h2>
<dl>
<dt><code>int H5Aiterate (hid_t <em>loc_id</em>,
<dt><code>herr_t H5Aiterate (hid_t <em>loc_id</em>,
unsigned *<em>attr_number</em>,
H5A_operator <em>operator</em>,
void *<em>operator_data</em>)</code>
@@ -217,7 +200,7 @@ And in this document, the
or resource leaks will develop.
This function returns a datatype ID for success or negative for failure.
<br><br>
<dt><code>size_t H5Aget_name (hid_t <em>attr_id</em>,
<dt><code>ssize_t H5Aget_name (hid_t <em>attr_id</em>,
size_t <em>buf_size</em>, char *<em>buf</em>)</code>
<dd>This function retrieves the name of an attribute for an attribute ID.
Up to <em>buf_size</em> characters are stored in <em>buf</em> followed by a
@@ -238,56 +221,39 @@ And in this document, the
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
Attributes&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -296,9 +262,11 @@ And in this document, the
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 2 June 2000
<br>
Last modified: 30 October 1998
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -11,63 +11,48 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
Caching&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>Meta Data Caching</h1>
<h1>Data Caching</h1>
<h2>1. Meta Data Caching</h2>
<p>The HDF5 library caches two types of data: meta data and raw
data. The meta data cache holds file objects like the file
@@ -79,7 +64,7 @@ And in this document, the
are handled by preempting the older object in favor of the new
one.
<h1>Raw Data Chunk Caching</h1>
<h2>2. Raw Data Chunk Caching</h2>
<p>Raw data chunks are cached because I/O requests at the
application level typically don't map well to chunks at the
@@ -112,7 +97,7 @@ And in this document, the
a diagonal accross the dataset where each request overlaps the
previous request would benefit from a small <em>w0</em>.
<h1>The API</h1>
<h2>3. Data Caching Operations</h2>
<p>The cache parameters for both caches are part of a file access
property list and are set and queried with this pair of
@@ -139,78 +124,56 @@ And in this document, the
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
Caching&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Tue May 26 15:20:14 EDT 1998 -->
<!-- hhmts start -->
<!--
Last modified: Tue May 26 15:38:27 EDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
<!-- Created: Tue May 26 15:20:14 EDT 1998 -->
<!-- hhmts start -->
Last modified: 14 October 1999
<!-- hhmts end -->
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Dataset Chunking Issues</title>
<title>Dataset Chunking</title>
</head>
<body bgcolor="#FFFFFF">
@@ -11,56 +11,39 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
Chunking&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -248,78 +231,56 @@ And in this document, the
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
Chunking&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Tue Oct 20 12:38:40 EDT 1998 -->
<!-- hhmts start -->
<!--
Last modified: Fri Oct 23 10:30:52 EDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
<!-- Created: Tue Oct 20 12:38:40 EDT 1998 -->
<!-- hhmts start -->
Last modified: 14 October 1999
<!-- hhmts end -->
<br>
Last modified: 30 October 1998
Describes HDF5 Release 1.2.2, June 2000
</body>

View File

@@ -1,31 +1,35 @@
<html>
<head><title>
HDF5 Copyright Notice
</title></head>
<html>
<head>
<title>
HDF5 Copyright Notice
</title>
</head>
<body bgcolor="#FFFFFF">
<body>
<hr>
<h3>Copyright Notice and Statement for
<br>
NCSA Hierarchical Data Format (HDF) Software Library and Utilities</h3>
NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities</h3>
<hr>
<p>
NCSA Hierarchical Data Format (HDF) Software Library and Utilities
NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities
<br>
Copyright 1998 the Board of Trustees of the University of Illinois
Copyright 1998, 1999, 2000 by the Board of Trustees of the University of Illinois
<br>
<strong>All rights reserved.</strong>
<p>
Contributors: National Center for Supercomputing Applications (NCSA) at
the University of Illinois, Lawrence Livermore Nat'l Laboratory (LLNL),
Sandia National Laboratories (SNL), Los Alamos National Laboratory (LANL),
Jean-loup Gailly and Mark Adler (gzip library)
the University of Illinois at Urbana-Champaign (UIUC), Lawrence Livermore
National Laboratory (LLNL), Sandia National Laboratories (SNL), Los Alamos
National Laboratory (LANL), Jean-loup Gailly and Mark Adler (gzip library).
<p>
Redistribution and use in source and binary forms, with or without
@@ -35,10 +39,10 @@ provided that the following conditions are met:
<ol>
<li>Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
this list of conditions, and the following disclaimer.
<li>Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
notice, this list of conditions, and the following disclaimer in the
documentation and/or materials provided with the distribution.
<li>In addition, redistributions of modified forms of the source or binary
@@ -46,9 +50,9 @@ code must carry prominent notices stating that the original code was
changed and the date of the change.
<li>All publications or advertising materials mentioning features or use of
this software must acknowledge that it was developed by the National Center
for Supercomputing Applications at the University of Illinois, and credit
the Contributors.
this software are asked, but not required, to acknowledge that it was
developed by the National Center for Supercomputing Applications at the
University of Illinois at Urbana-Champaign and to credit the contributors.
<li>Neither the name of the University nor the names of the Contributors may
be used to endorse or promote products derived from this software without
@@ -63,13 +67,52 @@ the possibility of such damage.
</ol>
<hr>
Portions of HDF5 were developed with support from the University of
California, Lawrence Livermore National Laboratory (UC LLNL).
The following statement applies to those portions of the product
and must be retained in any redistribution of source code, binaries,
documentation, and/or accompanying materials:
<dir>
This work was partially produced at the University of California,
Lawrence Livermore National Laboratory (UC LLNL) under contract no.
W-7405-ENG-48 (Contract 48) between the U.S. Department of Energy
(DOE) and The Regents of the University of California (University)
for the operation of UC LLNL.
<p>
<b>DISCLAIMER:</b>
This work was prepared as an account of work sponsored by an agency
of the United States Government. Neither the United States
Government nor the University of California nor any of their
employees, makes any warranty, express or implied, or assumes any
liability or responsibility for the accuracy, completeness, or
usefulness of any information, apparatus, product, or process
disclosed, or represents that its use would not infringe privately-
owned rights. Reference herein to any specific commercial products,
process, or service by trade name, trademark, manufacturer, or
otherwise, does not necessarily constitute or imply its endorsement,
recommendation, or favoring by the United States Government or the
University of California. The views and opinions of authors
expressed herein do not necessarily state or reflect those of the
United States Government or the University of California, and shall
not be used for advertising or product endorsement purposes.
</dir>
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 7 June 2000
<br>
Last modified: 8 September 1998
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>The Dataset Interface (H5D)</title>
<title>Dataset Interface (H5D)</title>
</head>
<body bgcolor="#FFFFFF">
@@ -10,56 +10,39 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
Datasets&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -83,7 +66,7 @@ And in this document, the
<dt>Constant Meta Data
<dd>Meta data that is created when the dataset is created and
exists unchanged for the life of the dataset. For instance,
the data type of stored array elements is defined when the
the datatype of stored array elements is defined when the
dataset is created and cannot be subsequently changed.
<dt>Persistent Meta Data
@@ -96,7 +79,7 @@ And in this document, the
<dd>Meta data that exists to describe how raw data is organized
in the application's memory space. For instance, the data
type of elements in an application array might not be the same
as the data type of those elements as stored in the HDF5 file.
as the datatype of those elements as stored in the HDF5 file.
<dt>Transport Meta Data
<dd>Meta data that is used only during the transfer of raw data
@@ -107,7 +90,7 @@ And in this document, the
<p>Each of these classes of meta data is handled differently by
the library although the same API might be used to create them.
For instance, the data type exists as constant meta data and as
For instance, the datatype exists as constant meta data and as
memory meta data; the same API (the <code>H5T</code> API) is
used to manipulate both pieces of meta data but they're handled
by the dataset API (the <code>H5D</code> API) in different
@@ -137,7 +120,7 @@ And in this document, the
<br><br>
<dl>
<dt><code>H5D_COMPACT</code>
<dt><code>H5D_COMPACT</code> &nbsp;&nbsp; <i><b>(Not yet implemented.)</b></i>
<dd>The raw data is presumably small and can be stored
directly in the object header. Such data is
non-extendible, non-compressible, non-sparse, and cannot
@@ -145,7 +128,7 @@ And in this document, the
arbitrary but are enforced because of the small size of
the raw data. Storing data in this format eliminates the
disk seek/read request normally necessary to read raw
data. <b>This layout is not implemented yet.</b>
data.
<br><br>
<dt><code>H5D_CONTIGUOUS</code>
@@ -185,7 +168,9 @@ And in this document, the
</dl>
</dl>
<a name="Dataset_PSetChunk">
<p>Once the general layout is defined, the user can define
</a>
properties of that layout. Currently, the only layout that has
user-settable properties is the <code>H5D_CHUNKED</code> layout,
which needs to know the dimensionality and chunk size.
@@ -236,10 +221,12 @@ H5Pset_chunk (plist, 2, size);
<h2>3. Compression Properties</h2>
<p>Some types of storage layout allow data compression which is
defined by the functions described here. <b>Compression is not
implemented yet.</b>
<p>Chunked data storage
(see <a href="#Dataset_PSetChunk"><code>H5Pset_chunk</code></a>)
allows data compression as defined by the function
<code>H5Pset_deflate</code>.
<!--
<dl>
<dt><code>herr_t H5Pset_compression (hid_t <em>plist_id</em>,
H5Z_method_t <em>method</em>)</code>
@@ -262,6 +249,7 @@ H5Pset_chunk (plist, 2, size);
(LZ77) encoding is used, the same encoding used by the
free GNU <code>gzip</code> program.
</dl>
-->
<br><br>
<dt><code>herr_t H5Pset_deflate (hid_t <em>plist_id</em>,
@@ -299,7 +287,8 @@ H5Pset_chunk (plist, 2, size);
continues for <em>size</em> bytes. The space represented by this
segment is adjacent to the space already represented by the external
file list. The last segment in a file list may have the size
<code>H5F_UNLIMITED</em>.
<code>H5F_UNLIMITED</code>, in which case the external file may be
of unlimited size and no more files can be added to the external files list.
<br><br>
<dt><code>int H5Pget_external_count (hid_t <em>plist</em>)</code>
@@ -397,28 +386,28 @@ H5Pset_external (plist, "scan3.data", 0, 16);
through some other library.
<h2>5. Data Type</h2>
<h2>5. Datatype</h2>
<p>Raw data has a constant data type which describes the data type
of the raw data stored in the file, and a memory data type that
describes the data type stored in application memory. Both data
<p>Raw data has a constant datatype which describes the datatype
of the raw data stored in the file, and a memory datatype that
describes the datatype stored in application memory. Both data
types are manipulated with the <a
href="Datatypes.html"><code>H5T</code></a> API.
<p>The constant file data type is associated with the dataset when
<p>The constant file datatype is associated with the dataset when
the dataset is created in a manner described below. Once
assigned, the constant datatype can never be changed.
<p>The memory data type is specified when data is transferred
<p>The memory datatype is specified when data is transferred
to/from application memory. In the name of data sharability,
the memory data type must be specified, but can be the same
type identifier as the constant data type.
the memory datatype must be specified, but can be the same
type identifier as the constant datatype.
<p>During dataset I/O operations, the library translates the raw
data from the constant data type to the memory data type or vice
versa. Structured data types include member offsets to allow
data from the constant datatype to the memory datatype or vice
versa. Structured datatypes include member offsets to allow
reordering of struct members and/or selection of a subset of
members and array data types include index permutation
members and array datatypes include index permutation
information to allow things like transpose operations (<b>the
prototype does not support array reordering</b>) Permutations
are relative to some extrinsic descritpion of the dataset.
@@ -452,7 +441,7 @@ H5Pset_external (plist, "scan3.data", 0, 16);
<p>Each dataset has a set of constant and persistent properties
which describe the layout method, pre-compression
transformation, compression method, data type, external storage,
transformation, compression method, datatype, external storage,
and data space. The constant properties are set as described
above in a dataset creation property list whose identifier is
passed to <code>H5Dcreate()</code>.
@@ -462,8 +451,8 @@ H5Pset_external (plist, "scan3.data", 0, 16);
*<em>name</em>, hid_t <em>type_id</em>, hid_t
<em>space_id</em>, hid_t <em>create_plist_id</em>)</code>
<dd>A dataset is created by calling <code>H5Dcreate</code> with
a file identifier, a dataset name, a data type, a data space,
and constant properties. The data type and data space are the
a file identifier, a dataset name, a datatype, a data space,
and constant properties. The datatype and data space are the
type and space of the dataset as it will exist in the file,
which may be different than in application memory. The
<em>create_plist_id</em> is a <code>H5P_DATASET_CREATE</code>
@@ -511,7 +500,7 @@ H5Pset_external (plist, "scan3.data", 0, 16);
<dl>
<dt><code>hid_t H5Dget_type (hid_t <em>dataset_id</em>)</code>
<dd>Returns an identifier for a copy of the dataset permanent
data type or negative for failure.
datatype or negative for failure.
<dt><code>hid_t H5Dget_space (hid_t <em>dataset_id</em>)</code>
<dd>Returns an identifier for a copy of the dataset permanent
@@ -534,7 +523,7 @@ H5Pset_external (plist, "scan3.data", 0, 16);
<p>A dataset also has memory properties which describe memory
within the application, and transfer properties that control
various aspects of the I/O operations. The memory can have a
data type different than the permanent file data type (different
datatype different than the permanent file datatype (different
number types, different struct member offsets, different array
element orderings) and can also be a different size (memory is a
subset of the permanent dataset elements, or vice versa). The
@@ -555,7 +544,7 @@ H5Pset_external (plist, "scan3.data", 0, 16);
<dt><code>size_t H5Pget_buffer (hid_t <em>xfer_plist</em>, void
**<em>tconv_buf</em>, void **<em>bkg_buf</em>)</code>
<dd>Sets or retrieves the maximum size in bytes of the temporary
buffer used for data type conversion in the I/O pipeline. An
buffer used for datatype conversion in the I/O pipeline. An
application-defined buffer can also be supplied as the
<em>tconv_buf</em> argument, otherwise a buffer will be
allocated and freed on demand by the library. A second
@@ -593,7 +582,7 @@ H5Pset_external (plist, "scan3.data", 0, 16);
a dataset transfer property list so that strip mining
does not occur. It takes an (optional) dataset transfer
property list, a dataset, a data space that describes
what data points are being transfered, and a data type
what data points are being transfered, and a datatype
for the data points in memory. It returns a (new)
dataset transfer property list with the temporary
buffer size set to an appropriate value. The return
@@ -604,7 +593,7 @@ H5Pset_external (plist, "scan3.data", 0, 16);
2 disable_strip_mining (hid_t xfer_plist, hid_t dataset,
3 hid_t space, hid_t mem_type)
4 {
5 hid_t file_type; /* File data type */
5 hid_t file_type; /* File datatype */
6 size_t type_size; /* Sizeof larger type */
7 size_t size; /* Temp buffer size */
8 hid_t xfer_plist; /* Return value */
@@ -643,10 +632,10 @@ H5Pset_external (plist, "scan3.data", 0, 16);
<h2>11. Raw Data I/O</h2>
<p>All raw data I/O is accomplished through these functions which
take a dataset handle, a memory data type, a memory data space,
take a dataset handle, a memory datatype, a memory data space,
a file data space, transfer properties, and an application
memory buffer. They translate data between the memory data type
and space and the file data type and space. The data spaces can
memory buffer. They translate data between the memory datatype
and space and the file datatype and space. The data spaces can
be used to describe partial I/O operations.
<dl>
@@ -655,7 +644,7 @@ H5Pset_external (plist, "scan3.data", 0, 16);
<em>file_space_id</em>, hid_t <em>xfer_plist_id</em>,
void *<em>buf</em>/*out*/)</code>
<dd>Reads raw data from the specified dataset into <em>buf</em>
converting from file data type and space to memory data type
converting from file datatype and space to memory datatype
and space.
<br><br>
@@ -664,8 +653,8 @@ H5Pset_external (plist, "scan3.data", 0, 16);
<em>file_space_id</em>, hid_t <em>xfer_plist_id</em>,
const void *<em>buf</em>)</code>
<dd>Writes raw data from an application buffer <em>buf</em> to
the specified dataset converting from memory data type and
space to file data type and space.
the specified dataset converting from memory datatype and
space to file datatype and space.
</dl>
@@ -673,7 +662,7 @@ H5Pset_external (plist, "scan3.data", 0, 16);
supplied. However, it can be the same identifier as was used to
create the dataset or as was returned by
<code>H5Dget_type()</code>; the library will not implicitly
derive memory data types from constant data types.
derive memory datatypes from constant datatypes.
<p>For complete reads of the dataset one may supply
<code>H5S_ALL</code> as the argument for the file data space.
@@ -732,10 +721,10 @@ H5Pset_external (plist, "scan3.data", 0, 16);
26 chunk_size[0] = chunk_size[1] = 100;
27 properties = H5Pcreate (H5P_DATASET_CREATE);
28 H5Pset_chunk (properties, 2, chunk_size);
29 H5Pset_compression (properties, H5D_COMPRESS_LZ77);
29 H5Pset_deflate (properties, 9);
30
31 /*
32 * Create a new dataset within the file. The data type
32 * Create a new dataset within the file. The datatype
33 * and data space describe the data on disk, which may
34 * be different than the format used in the application's
35 * memory.
@@ -744,7 +733,7 @@ H5Pset_external (plist, "scan3.data", 0, 16);
38 data_space, properties);
39
40 /*
41 * Write the array to the file. The data type and data
41 * Write the array to the file. The datatype and data
42 * space describe the format of the data in the `dd'
43 * buffer. The raw data is translated to the format
44 * required on disk defined above. We use default raw
@@ -865,7 +854,7 @@ H5Pset_external (plist, "scan3.data", 0, 16);
8 dataset = H5Dopen (file, "dataset");
9
10 /*
11 * Describe the memory data type, a struct with a single
11 * Describe the memory datatype, a struct with a single
12 * "delta" member.
13 */
14 type = H5Tcreate (H5T_COMPOUND, sizeof(double));
@@ -894,78 +883,56 @@ H5Pset_external (plist, "scan3.data", 0, 16);
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
Datasets&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Tue Dec 2 09:17:09 EST 1997 -->
<!-- hhmts start -->
<!--
Last modified: Wed May 13 18:57:47 EDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
<!-- Created: Tue Dec 2 09:17:09 EST 1997 -->
<!-- hhmts start -->
Last modified: 7 April 2000
<!-- hhmts end -->
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -1,7 +1,7 @@
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>The Data Space Interface (H5S)</TITLE>
<TITLE>Dataspace Interface (H5S)</TITLE>
</HEAD>
<body bgcolor="#FFFFFF">
@@ -10,56 +10,39 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
Dataspaces&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -311,6 +294,8 @@ Releases resources associated with a dataspace. Subsequent use of the
dataspace identifier after this call is undefined.
</DD>
<!-- NOT YET IMPLEMENTED (R1.2 -- 9908)
<DT>
<TT>H5S_class_t H5Sextent_class (hid_t <I>space</I>)</TT></DT>
@@ -319,6 +304,9 @@ Query a dataspace to determine the current class of a dataspace. The value
which is returned is one of: H5S_SCALAR, H5S_SIMPLE on success or
H5S_NO_CLASS on failure.
</DD>
-->
</DL>
@@ -557,7 +545,7 @@ may execute slower.
</DD>
<DT>
<TT>hbool_t H5Sselect_valid (hid_t <I>space</I>)</TT></DT>
<TT>htri_t H5Sselect_valid (hid_t <I>space</I>)</TT></DT>
<DD>
This function verifies that the selection for a dataspace is within the extent
@@ -647,82 +635,56 @@ is returned.
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
Dataspaces&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<ADDRESS>
<A HREF="mailto:matzke@llnl.gov">Robb Matzke</A></ADDRESS>
<ADDRESS>
<A HREF="mailto:koziol@ncsa.uiuc.edu">Quincey Koziol</A></ADDRESS>
<BR>
-->
<!-- Created: Thu Dec 4 14:57:32 EST 1997 --><!-- hhmts start -->
<!--
Last modified: Thu May 28 15:12:04 EST 1998&nbsp;
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
<!-- Created: Thu Dec 4 14:57:32 EST 1997 -->
<!-- hhmts start -->
Last modified: 14 October 1999
<!-- hhmts end -->
<br>
Last modified: 26 April 1999
Describes HDF5 Release 1.2.2, June 2000
</BODY>
</HTML>

File diff suppressed because it is too large Load Diff

View File

@@ -1,921 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Enumeration Data Types in the Data Type Interface (H5T)</title>
</head>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<h1>The Data Type Interface (H5T) <font size=-1><i>(contitnued)</i></font></h1>
<p align=right><font size=-1><i>
(Return to <a href="Datatypes.html#Datatypes_Enum">Data Types Interface (H5T)</a>.)
</font></i>
<h2>7. Enumeration Data Types</h2>
<h3>7.1. Introduction</h2>
<p>An HDF enumeration data type is a 1:1 mapping between a set of
symbols and a set of integer values, and an order is imposed on
the symbols by their integer values. The symbols are passed
between the application and library as character strings and all
the values for a particular enumeration type are of the same
integer type, which is not necessarily a native type.
<h3>7.2. Creation</h2>
<p>Creation of an enumeration data type resembles creation of a
compound data type: first an empty enumeration type is created,
then members are added to the type, then the type is optionally
locked.
<dl>
<dt><code>hid_t H5Tcreate(H5T_class_t <em>type_class</em>,
size_t <em>size</em>)</code>
<dd>This function creates a new empty enumeration data type based
on a native signed integer type. The first argument is the
constant <code>H5T_ENUM</code> and the second argument is the
size in bytes of the native integer on which the enumeration
type is based. If the architecture does not support a native
signed integer of the specified size then an error is
returned.
<pre>
/* Based on a native signed short */
hid_t hdf_en_colors = H5Tcreate(H5T_ENUM, sizeof(short));</pre>
<dt><code>hid_t H5Tenum_create(hid_t <em>base</em>)</code>
<dd>This function creates a new empty enumeration data type based
on some integer data type <em>base</em> and is a
generalization of the <code>H5Tcreate()</code> function. This
function is useful when creating an enumeration type based on
some non-native integer data type, but it can be used for
native types as well.
<pre>
/* Based on a native unsigned short */
hid_t hdf_en_colors_1 = H5Tenum_create(H5T_NATIVE_USHORT);
/* Based on a MIPS 16-bit unsigned integer */
hid_t hdf_en_colors_2 = H5Tenum_create(H5T_MIPS_UINT16);
/* Based on a big-endian 16-bit unsigned integer */
hid_t hdf_en_colors_3 = H5Tenum_create(H5T_STD_U16BE);</pre>
<dt><code>herr_t H5Tenum_insert(hid_t <em>etype</em>, const char
*<em>symbol</em>, void *<em>value</em>)</code>
<dd>Members are inserted into the enumeration data type
<em>etype</em> with this function. Each member has a symbolic
name <em>symbol</em> and some integer representation
<em>value</em>. The <em>value</em> argument must point to a value
of the same data type as specified when the enumeration type
was created. The order of member insertion is not important
but all symbol names and values must be unique within a
particular enumeration type.
<pre>
short val;
H5Tenum_insert(hdf_en_colors, "RED", (val=0,&amp;val));
H5Tenum_insert(hdf_en_colors, "GREEN", (val=1,&amp;val));
H5Tenum_insert(hdf_en_colors, "BLUE", (val=2,&amp;val));
H5Tenum_insert(hdf_en_colors, "WHITE", (val=3,&amp;val));
H5Tenum_insert(hdf_en_colors, "BLACK", (val=4,&amp;val));</pre>
<dt><code>herr_t H5Tlock(hid_t <em>etype</em>)</code>
<dd>This function locks a data type so it cannot be modified or
freed unless the entire HDF5 library is closed. Its use is
completely optional but using it on an application data type
makes that data type act like a predefined data type.
<pre>
H5Tlock(hdf_en_colors);</pre>
</dl>
<h3>7.3. Integer Operations</h2>
<p>Because an enumeration data type is derived from an integer
data type, any operation which can be performed on integer data
types can also be performed on enumeration data types. This
includes:
<p>
<center>
<table>
<tr>
<td><code>H5Topen()</code></td>
<td><code>H5Tcreate()</code></td>
<td><code>H5Tcopy()</code></td>
<td><code>H5Tclose()</code></td>
</tr><tr>
<td><code>H5Tequal()</code></td>
<td><code>H5Tlock()</code></td>
<td><code>H5Tcommit()</code></td>
<td><code>H5Tcommitted()</code></td>
</tr><tr>
<td><code>H5Tget_class()</code></td>
<td><code>H5Tget_size()</code></td>
<td><code>H5Tget_order()</code></td>
<td><code>H5Tget_pad()</code></td>
</tr><tr>
<td><code>H5Tget_precision()</code></td>
<td><code>H5Tget_offset()</code></td>
<td><code>H5Tget_sign()</code></td>
<td><code>H5Tset_size()</code></td>
</tr><tr>
<td><code>H5Tset_order()</code></td>
<td><code>H5Tset_precision()</code></td>
<td><code>H5Tset_offset()</code></td>
<td><code>H5Tset_pad()</code></td>
</tr><tr>
<td><code>H5Tset_sign()</code></td>
</tr>
</table>
</center>
<p>In addition, the new function <code>H5Tget_super()</code> will
be defined for all data types that are derived from existing
types (currently just enumeration types).
<dl>
<dt><code>hid_t H5Tget_super(hid_t <em>type</em>)</code>
<dd>Return the data type from which <em>type</em> is
derived. When <em>type</em> is an enumeration data type then
the returned value will be an integer data type but not
necessarily a native type. One use of this function would be
to create a new enumeration type based on the same underlying
integer type and values but with possibly different symbols.
<pre>
hid_t itype = H5Tget_super(hdf_en_colors);
hid_t hdf_fr_colors = H5Tenum_create(itype);
H5Tclose(itype);
short val;
H5Tenum_insert(hdf_fr_colors, "ouge", (val=0,&amp;val));
H5Tenum_insert(hdf_fr_colors, "vert", (val=1,&amp;val));
H5Tenum_insert(hdf_fr_colors, "bleu", (val=2,&amp;val));
H5Tenum_insert(hdf_fr_colors, "blanc", (val=3,&amp;val));
H5Tenum_insert(hdf_fr_colors, "noir", (val=4,&amp;val));
H5Tlock(hdf_fr_colors);</pre>
</dl>
<h3>7.4. Type Functions</h2>
<p>A small set of functions is available for querying properties
of an enumeration type. These functions are likely to be used
by browsers to display data type information.
<dl>
<dt><code>int H5Tget_nmembers(hid_t <em>etype</em>)</code>
<dd>When given an enumeration data type <em>etype</em> this
function returns the number of members defined for that
type. This function is already implemented for compound data
types.
<br><br>
<dt><code>char *H5Tget_member_name(hid_t <em>etype</em>, int
<em>membno</em>)</code>
<dd>Given an enumeration data type <em>etype</em> this function
returns the symbol name for the member indexed by
<em>membno</em>. Members are numbered from zero to
<em>N</em>-1 where <em>N</em> is the return value from
<code>H5Tget_nmembers()</code>. The members are stored in no
particular order. This function is already implemented for
compound data types. If an error occurs then the null pointer
is returned. The return value should be freed by calling
<code>free()</code>.
<br><br>
<dt><code>herr_t H5Tget_member_value(hid_t <em>etype</em>, int
<em>membno</em>, void *<em>value</em>/*out*/)</code>
<dd>Given an enumeration data type <em>etype</em> this function
returns the value associated with the member indexed by
<em>membno</em> (as described for
<code>H5Tget_member_name()</code>). The value returned
is in the domain of the underlying integer
data type which is often a native integer type. The
application should ensure that the memory pointed to by
<em>value</em> is large enough to contain the result (the size
can be obtained by calling <code>H5Tget_size()</code> on
either the enumeration type or the underlying integer type
when the type is not known by the C compiler.
<pre>
int i, n = H5Tget_nmembers(hdf_en_colors);
for (i=0; i&lt;n; i++) {
char *symbol = H5Tget_member_name(hdf_en_colors, i);
short val;
H5Tget_member_value(hdf_en_colors, i, &amp;val);
printf("#%d %20s = %d\n", i, symbol, val);
free(symbol);
}</pre>
<p>
Output:
<pre>
#0 BLACK = 4
#1 BLUE = 2
#2 GREEN = 1
#3 RED = 0
#4 WHITE = 3</pre>
</dl>
<h3>7.5. Data Functions</h2>
<p>In addition to querying about the enumeration type properties,
an application may want to make queries about enumerated
data. These functions perform efficient mappings between symbol
names and values.
<dl>
<dt><code>herr_t H5Tenum_valueof(hid_t <em>etype</em>, const char
*<em>symbol</em>, void *<em>value</em>/*out*/)</code>
<dd>Given an enumeration data type <em>etype</em> this function
returns through <em>value</em> the bit pattern associated with
the symbol name <em>symbol</em>. The <em>value</em> argument
should point to memory which is large enough to hold the result,
which is returned as the underlying integer data type specified
when the enumeration type was created, often a native integer
type.
<br><br>
<dt><code>herr_t H5Tenum_nameof(hid_t <em>etype</em>, void
*<em>value</em>, char *<em>symbol</em>, size_t
<em>size</em>)</code>
<dd>This function translates a bit pattern pointed to by
<em>value</em> to a symbol name according to the mapping
defined in the enumeration data type <em>etype</em> and stores
at most <em>size</em> characters of that name (counting the
null terminator) to the <em>symbol</em> buffer. If the name is
longer than the result buffer then the result is not null
terminated and the function returns failure. If <em>value</em>
points to a bit pattern which is not in the domain of the
enumeration type then the first byte of the <em>symbol</em>
buffer is set to zero and the function fails.
<pre>
short data[1000] = {4, 2, 0, 0, 5, 1, ...};
int i;
char symbol[32];
for (i=0; i<1000; i++) {
if (H5Tenum_nameof(hdf_en_colors, data+i, symbol,
sizeof symbol))&lt;0) {
if (symbol[0]) {
strcpy(symbol+sizeof(symbol)-4, "...");
} else {
strcpy(symbol, "UNKNOWN");
}
}
printf("%d %s\n", data[i], symbol);
}
printf("}\n");</pre>
<p>
Output:
<pre>
4 BLACK
2 BLUE
0 RED
0 RED
5 UNKNOWN
1 GREEN
...</pre>
</dl>
<h3>7.6. Conversion</h2>
<p>Enumerated data can be converted from one type to another
provided the destination enumeration type contains all the
symbols of the source enumeration type. The conversion operates
by matching up the symbol names of the source and destination
enumeration types to build a mapping from source value to
destination value. For instance, if we are translating from an
enumeration type that defines a sequence of integers as the
values for the colors to a type that defines a different bit for
each color then the mapping might look like this:
<p><img src="EnumMap.gif" alt="Enumeration Mapping">
<p>That is, a source value of <code>2</code> which corresponds to
<code>BLUE</code> would be mapped to <code>0x0004</code>. The
following code snippet builds the second data type, then
converts a raw data array from one data type to another, and
then prints the result.
<pre>
/* Create a new enumeration type */
short val;
hid_t bits = H5Tcreate(H5T_ENUM, sizeof val);
H5Tenum_insert(bits, "RED", (val=0x0001,&amp;val));
H5Tenum_insert(bits, "GREEN", (val=0x0002,&amp;val));
H5Tenum_insert(bits, "BLUE", (val=0x0004,&amp;val));
H5Tenum_insert(bits, "WHITE", (val=0x0008,&amp;val));
H5Tenum_insert(bits, "BLACK", (val=0x0010,&amp;val));
/* The data */
short data[6] = {1, 4, 2, 0, 3, 5};
/* Convert the data from one type to another */
H5Tconvert(hdf_en_colors, bits, 5, data, NULL);
/* Print the data */
for (i=0; i&lt;6; i++) {
printf("0x%04x\n", (unsigned)(data[i]));
}</pre>
<p>
Output:
<pre>
0x0002
0x0010
0x0004
0x0001
0x0008
0xffff</pre>
<p>If the source data stream contains values which are not in the
domain of the conversion map then an overflow exception is
raised within the library, causing the application defined
overflow handler to be invoked (see
<code>H5Tset_overflow()</code>). If no overflow handler is
defined then all bits of the destination value will be set.
<p>The HDF library will not provide conversions between enumerated
data and integers although the application is free to do so
(this is a policy we apply to all classes of HDF data
types). However, since enumeration types are derived from
integer types it is permissible to treat enumerated data as
integers and perform integer conversions in that context.
<h3>7.7. Symbol Order</h2>
<p>Symbol order is determined by the integer values associated
with each symbol. When the integer data type is a native type,
testing the relative order of two symbols is an easy process:
simply compare the values of the symbols. If only the symbol
names are available then the values must first be determined by
calling <code>H5Tenum_valueof()</code>.
<pre>
short val1, val2;
H5Tenum_valueof(hdf_en_colors, "WHITE", &amp;val1);
H5Tenum_valueof(hdf_en_colors, "BLACK", &amp;val2);
if (val1 &lt; val2) ...</pre>
<p>When the underlying integer data type is not a native type then
the easiest way to compare symbols is to first create a similar
enumeration type that contains all the same symbols but has a
native integer type (HDF type conversion features can be used to
convert the non-native values to native values). Once we have a
native type we can compare symbol order as just described. If
<code>foreign</code> is some non-native enumeration type then a
native type can be created as follows:
<pre>
int n = H5Tget_nmembers(foreign);
hid_t itype = H5Tget_super(foreign);
void *val = malloc(n * MAX(H5Tget_size(itype), sizeof(int)));
char *name = malloc(n * sizeof(char*));
int i;
/* Get foreign type information */
for (i=0; i&lt;n; i++) {
name[i] = H5Tget_member_name(foreign, i);
H5Tget_member_value(foreign, i,
(char*)val+i*H5Tget_size(foreign));
}
/* Convert integer values to new type */
H5Tconvert(itype, H5T_NATIVE_INT, n, val, NULL);
/* Build a native type */
hid_t native = H5Tenum_create(H5T_NATIVE_INT);
for (i=0; i&lt;n; i++) {
H5Tenum_insert(native, name[i], ((int*)val)[i]);
free(name[i]);
}
free(name);
free(val);</pre>
<p>It is also possible to convert enumerated data to a new type
that has a different order defined for the symbols. For
instance, we can define a new type, <code>reverse</code> that
defines the same five colors but in the reverse order.
<pre>
short val;
int i;
char sym[8];
short data[5] = {0, 1, 2, 3, 4};
hid_t reverse = H5Tenum_create(H5T_NATIVE_SHORT);
H5Tenum_insert(reverse, "BLACK", (val=0,&amp;val));
H5Tenum_insert(reverse, "WHITE", (val=1,&amp;val));
H5Tenum_insert(reverse, "BLUE", (val=2,&amp;val));
H5Tenum_insert(reverse, "GREEN", (val=3,&amp;val));
H5Tenum_insert(reverse, "RED", (val=4,&amp;val));
/* Print data */
for (i=0; i<5; i++) {
H5Tenum_nameof(hdf_en_colors, data+i, sym, sizeof sym);
printf ("%d %s\n", data[i], sym);
}
puts("Converting...");
H5Tconvert(hdf_en_colors, reverse, 5, data, NULL);
/* Print data */
for (i=0; i<5; i++) {
H5Tenum_nameof(reverse, data+i, sym, sizeof sym);
printf ("%d %s\n", data[i], sym);
}</pre>
<p>
Output:
<pre>
0 RED
1 GREEN
2 BLUE
3 WHITE
4 BLACK
Converting...
4 RED
3 GREEN
2 BLUE
1 WHITE
0 BLACK</pre>
<h3>7.8. Equality</h2>
<p>The order that members are inserted into an enumeration type is
unimportant; the important part is the associations between the
symbol names and the values. Thus, two enumeration data types
will be considered equal if and only if both types have the same
symbol/value associations and both have equal underlying integer
data types. Type equality is tested with the
<code>H5Tequal()</code> function.
<h3>7.9. Interacting with C's <code>enum</code> Type</h2>
<p>Although HDF enumeration data types are similar to C
<code>enum</code> data types, there are some important
differences:
<p>
<center>
<table border width="80%">
<tr>
<th>Difference</th>
<th>Motivation/Implications</th>
</tr>
<tr>
<td valign=top>Symbols are unquoted in C but quoted in
HDF.</td>
<td valign=top>This allows the application to manipulate
symbol names in ways that are not possible with C.</td>
</tr>
<tr>
<td valign=top>The C compiler automatically replaces all
symbols with their integer values but HDF requires
explicit calls to do the same.</td>
<td valign=top>C resolves symbols at compile time while
HDF resolves symbols at run time.</td>
</tr>
<tr>
<td valign=top>The mapping from symbols to integers is
<em>N</em>:1 in C but 1:1 in HDF.</td>
<td valign=top>HDF can translate from value to name
uniquely and large <code>switch</code> statements are
not necessary to print values in human-readable
format.</td>
</tr>
<tr>
<td valign=top>A symbol must appear in only one C
<code>enum</code> type but may appear in multiple HDF
enumeration types.</td>
<td valign=top>The translation from symbol to value in HDF
requires the data type to be specified while in C the
data type is not necessary because it can be inferred
from the symbol.</td>
</tr>
<tr>
<td valign=top>The underlying integer value is always a
native integer in C but can be a foreign integer type in
HDF.</td>
<td valign=top>This allows HDF to describe data that might
reside on a foreign architecture, such as data stored in
a file.</td>
</tr>
<tr>
<td valign=top>The sign and size of the underlying integer
data type is chosen automatically by the C compiler but
must be fully specified with HDF.</td>
<td valign=top>Since HDF doesn't require finalization of a
data type, complete specification of the type must be
supplied before the type is used. Requiring that
information at the time of type creation was a design
decision to simplify the library.</td>
</tr>
</table>
</center>
<p>The examples below use the following C data types:
<p>
<table width="90%" bgcolor="white">
<tr>
<td>
<code><pre>
/* English color names */
typedef enum {
RED,
GREEN,
BLUE,
WHITE,
BLACK
} c_en_colors;
/* Spanish color names, reverse order */
typedef enum {
NEGRO
BLANCO,
AZUL,
VERDE,
ROJO,
} c_sp_colors;
/* No enum definition for French names */
</pre></code>
</td>
</tr>
</table>
<h4>Creating HDF Types from C Types</h3>
<p>An HDF enumeration data type can be created from a C
<code>enum</code> type simply by passing pointers to the C
<code>enum</code> values to <code>H5Tenum_insert()</code>. For
instance, to create HDF types for the <code>c_en_colors</code>
type shown above:
<p>
<table width="90%" bgcolor="white">
<tr>
<td>
<code><pre>
c_en_colors val;
hid_t hdf_en_colors = H5Tcreate(H5T_ENUM, sizeof(c_en_colors));
H5Tenum_insert(hdf_en_colors, "RED", (val=RED, &amp;val));
H5Tenum_insert(hdf_en_colors, "GREEN", (val=GREEN,&amp;val));
H5Tenum_insert(hdf_en_colors, "BLUE", (val=BLUE, &amp;val));
H5Tenum_insert(hdf_en_colors, "WHITE", (val=WHITE,&amp;val));
H5Tenum_insert(hdf_en_colors, "BLACK", (val=BLACK,&amp;val));</pre></code>
</td>
</tr>
</table>
<h4>Name Changes between Applications</h3>
<p>Occassionally two applicatons wish to exchange data but they
use different names for the constants they exchange. For
instance, an English and a Spanish program may want to
communicate color names although they use different symbols in
the C <code>enum</code> definitions. The communication is still
possible although the applications must agree on common terms
for the colors. The following example shows the Spanish code to
read the values assuming that the applications have agreed that
the color information will be exchanged using Enlish color
names:
<p>
<table width="90%" bgcolor="white">
<tr>
<td>
<code><pre>
c_sp_colors val, data[1000];
hid_t hdf_sp_colors = H5Tcreate(H5T_ENUM, sizeof(c_sp_colors));
H5Tenum_insert(hdf_sp_colors, "RED", (val=ROJO, &amp;val));
H5Tenum_insert(hdf_sp_colors, "GREEN", (val=VERDE, &amp;val));
H5Tenum_insert(hdf_sp_colors, "BLUE", (val=AZUL, &amp;val));
H5Tenum_insert(hdf_sp_colors, "WHITE", (val=BLANCO, &amp;val));
H5Tenum_insert(hdf_sp_colors, "BLACK", (val=NEGRO, &amp;val));
H5Dread(dataset, hdf_sp_colors, H5S_ALL, H5S_ALL, H5P_DEFAULT, data);</pre></code>
</td>
</tr>
</table>
<h4>Symbol Ordering across Applications</h3>
<p>Since symbol ordering is completely determined by the integer values
assigned to each symbol in the <code>enum</code> definition,
ordering of <code>enum</code> symbols cannot be preserved across
files like with HDF enumeration types. HDF can convert from one
application's integer values to the other's so a symbol in one
application's C <code>enum</code> gets mapped to the same symbol
in the other application's C <code>enum</code>, but the relative
order of the symbols is not preserved.
<p>For example, an application may be defined to use the
definition of <code>c_en_colors</code> defined above where
<code>WHITE</code> is less than <code>BLACK</code>, but some
other application might define the colors in some other
order. If each application defines an HDF enumeration type based
on that application's C <code>enum</code> type then HDF will
modify the integer values as data is communicated from one
application to the other so that a <code>RED</code> value
in the first application is also a <code>RED</code> value in the
other application.
<p>A case of this reordering of symbol names was also shown in the
previous code snippet (as well as a change of language), where
HDF changed the integer values so 0 (<code>RED</code>) in the
input file became 4 (<code>ROJO</code>) in the <code>data</code>
array. In the input file, <code>WHITE</code> was less than
<code>BLACK</code>; in the application the opposite is true.
<p>In fact, the ability to change the order of symbols is often
convenient when the enumeration type is used only to group
related symbols that don't have any well defined order
relationship.
<h4>Internationalization</h3>
<p>The HDF enumeration type conversion features can also be used
to provide internationalization of debugging output. A program
written with the <code>c_en_colors</code> data type could define
a separate HDF data type for languages such as English, Spanish,
and French and cast the enumerated value to one of these HDF
types to print the result.
<p>
<table width="90%" bgcolor="white">
<tr>
<td>
<code><pre>
c_en_colors val, *data=...;
hid_t hdf_sp_colors = H5Tcreate(H5T_ENUM, sizeof val);
H5Tenum_insert(hdf_sp_colors, "ROJO", (val=RED, &amp;val));
H5Tenum_insert(hdf_sp_colors, "VERDE", (val=GREEN, &amp;val));
H5Tenum_insert(hdf_sp_colors, "AZUL", (val=BLUE, &amp;val));
H5Tenum_insert(hdf_sp_colors, "BLANCO", (val=WHITE, &amp;val));
H5Tenum_insert(hdf_sp_colors, "NEGRO", (val=BLACK, &amp;val));
hid_t hdf_fr_colors = H5Tcreate(H5T_ENUM, sizeof val);
H5Tenum_insert(hdf_fr_colors, "OUGE", (val=RED, &amp;val));
H5Tenum_insert(hdf_fr_colors, "VERT", (val=GREEN, &amp;val));
H5Tenum_insert(hdf_fr_colors, "BLEU", (val=BLUE, &amp;val));
H5Tenum_insert(hdf_fr_colors, "BLANC", (val=WHITE, &amp;val));
H5Tenum_insert(hdf_fr_colors, "NOIR", (val=BLACK, &amp;val));
void
nameof(lang_t language, c_en_colors val, char *name, size_t size)
{
switch (language) {
case ENGLISH:
H5Tenum_nameof(hdf_en_colors, &amp;val, name, size);
break;
case SPANISH:
H5Tenum_nameof(hdf_sp_colors, &amp;val, name, size);
break;
case FRENCH:
H5Tenum_nameof(hdf_fr_colors, &amp;val, name, size);
break;
}
}</pre></code>
</td>
</tr>
</table>
<h3>7.10. Goals That Have Been Met</h2>
<p>The main goal of enumeration types is to provide communication
of enumerated data using symbolic equivalence. That is, a
symbol written to a dataset by one application should be read as
the same symbol by some other application.
<p>
<table width="90%">
<tr>
<td valign=top><b>Architecture Independence</b></td>
<td valign=top>Two applications shall be able to exchange
enumerated data even when the underlying integer values
have different storage formats. HDF accomplishes this for
enumeration types by building them upon integer types.</td>
</tr>
<tr>
<td valign=top><b>Preservation of Order Relationship</b></td>
<td valign=top>The relative order of symbols shall be
preserved between two applications that use equivalent
enumeration data types. Unlike numeric values that have
an implicit ordering, enumerated data has an explicit
order defined by the enumeration data type and HDF
records this order in the file.</td>
</tr>
<tr>
<td valign=top><b>Order Independence</b></td>
<td valign=top>An application shall be able to change the
relative ordering of the symbols in an enumeration data
type. This is accomplished by defining a new type with
different integer values and converting data from one type
to the other.</td>
</tr>
<tr>
<td valign=top><b>Subsets</b></td>
<td valign=top>An application shall be able to read
enumerated data from an archived dataset even after the
application has defined additional members for the
enumeration type. An application shall be able to write
to a dataset when the dataset contains a superset of the
members defined by the application. Similar rules apply
for in-core conversions between enumerated data
types.</td>
</tr>
<tr>
<td valign=top><b>Targetable</b></td>
<td valign=top>An application shall be able to target a
particular architecture or application when storing
enumerated data. This is accomplished by allowing
non-native underlying integer types and converting the
native data to non-native data.</td>
</tr>
<tr>
<td valign=top><b>Efficient Data Transfer</b></td>
<td valign=top>An application that defines a file dataset
that corresponds to some native C enumerated data array
shall be able to read and write to that dataset directly
using only Posix read and write functions. HDF already
optimizes this case for integers, so the same optimization
will apply to enumerated data.
</tr>
<tr>
<td valign=top><b>Efficient Storage</b></td>
<td valign=top>Enumerated data shall be stored in a manner
which is space efficient. HDF stores the enumerated data
as integers and allows the application to chose the size
and format of those integers.</td>
</tr>
</table>
<p align=right><font size=-1><i>
(Return to <a href="Datatypes.html#Datatypes_Enum">Data Types Interface (H5T)</a>.)
</font></i>
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
Data Types&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
<!-- Created: Thu Dec 4 14:57:32 EST 1997 -->
<!-- hhmts start -->
Last modified: 30 April 1999
<!-- hhmts end -->
</body>
</html>

View File

@@ -11,56 +11,39 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
Debugging&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -100,7 +83,7 @@ And in this document, the
<br><br>
<dt><b>Timings and Statistics</b>
<dd>The library can be configured to accumulate certain
statistics about things like cache performance, data type
statistics about things like cache performance, datatype
conversion, data space conversion, and data filters. The code
is included on a per-package basis and enabled at runtime by
an environment variable.
@@ -262,7 +245,7 @@ IOT Trap, core dumped.
<tr>
<td align=center>t</td>
<td align=center>Yes</td>
<td>Data types</td>
<td>Datatypes</td>
</tr>
<tr>
<td align=center>v</td>
@@ -297,7 +280,7 @@ IOT Trap, core dumped.
</tr>
<tr valign=top>
<td><code>all -t -s</code></td>
<td>Debugging output for all packages except data types
<td>Debugging output for all packages except datatypes
and data spaces will appear on the standard error
stream.</td>
</tr>
@@ -467,78 +450,56 @@ H5E.c:336: warning: trace info was not inserted
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
Debugging&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Wed Jun 17 12:29:12 EDT 1998 -->
<!-- hhmts start -->
<!--
Last modified: Thu Aug 20 10:43:42 PDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
<!-- Created: Wed Jun 17 12:29:12 EDT 1998 -->
<!-- hhmts start -->
Last modified: 14 October 1999
<!-- hhmts end -->
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -1,8 +1,8 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<<<<<<< Environment.html
<head>
<title>HDF5 Library Environment Variables and Configuration Parameters</title>
<title>Environment Variables and Configuration Parameters</title>
</head>
<body bgcolor="#FFFFFF">
@@ -12,56 +12,39 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
Environment&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -120,164 +103,52 @@ will display the current list of parameters and their effects.
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
Environment&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
=======
<head>
<title>HDF5 Library Environment Variables
and Configuration Parameters</title>
</head>
<body>
<h1>HDF5 Library Environment Variables and Configuration Parameters</h1>
<h2>1. Environment Variables</h2>
The HDF5 library uses UNIX environment variables to control
or adjust certain library features at runtime. The variables and
their defined effects are as follows:
<center>
<table width="90%">
<tr>
<th>Variable</th>
<th>Description</th>
</tr>
<tr valign=top>
<td><code>HDF5_DEBUG</code></td>
<td>Defines a list of debugging switches documented in the
<a href="Debugging.html">Debugging</a> section of the
<cite>HDF5 User's Guide</cite>.</td>
</tr>
<tr valign=top>
<td><code>HDF5_NOCLEANUP</code></td>
<td>If set then programs in the test directories do not
remove temporary files. The default is for each test to
remove the files before exit if the test succeeds but to
leave the files if the test fails.</td>
</tr>
<tr valign=top>
<td><code>HDF5_PREFIX</code></td>
<td>The value of this variable is prepended to all temporary
file names created by the test programs and separated from
the base name of the file by a slash. The default is no
prefix.</td>
</tr>
<tr valign=top>
<td><ode>HDF5_DRIVER</code></td>
<td>This variable should hold the name of a low-level HDF5
file driver such as <code>sec2</code>, <code>stdio</code>,
<code>core</code>, <code>split</code>, or
<code>family</code>. The family driver also takes an
optional real-valued family member size in MB which
defaults to 1. If this variable is not set or empty then
the library-defined default file driver is used (which can
be set at configuration time with the H5F_LOW_DFLT cpp
constant, usually <code>sec2</code>).</td>
</tr>
<tr valign=top>
<td><code>HDF5_MPI_OPT_TYPES</code></td>
<td>When set to <code>1</code>, parallel HDF5 will use the
MPI-optimized code to perform parallel read/write accesses
to datasets. Currently, this optimization fails when
accessing extendable datasets. The default is not to use
the optimized code.</td>
</tr>
<tr valign=top>
<td><code>HDF5_MPI_1_METAWRITE</code></td>
<td>When set to <code>1</code>, parallel HDF5 will write the
metadata via process 0 of each opened parallel HDF5 file.
This should improve I/O throughput. The default is not to
use this optimization.</td>
</tr>
</table>
</center>
<h2>2. Configuration Parameters</h2>
The HDF5 configuration script accepts a list of parameters to control
configuration features when creating the Makefiles for the library.
The command
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;configure --help </code>
<br>
will display the current list of parameters and their effects.
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 25 November 1998
Last modified: 14 October 1999
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>The Error Handling Interface (H5E)</title>
<title>Error Handling Interface (H5E)</title>
</head>
<body bgcolor="#FFFFFF">
@@ -11,56 +11,39 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
Error Handling&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -80,6 +63,8 @@ And in this document, the
next API function which is called (with a few exceptions) resets
the stack.
<h2>2. Error Handling Operations</h2>
<p>In normal circumstances, an error causes the stack to be
printed on the standard error stream. The first item, number
"#000" is produced by the API function itself and is usually
@@ -93,14 +78,14 @@ And in this document, the
<tr>
<td>
<p>If an application calls <code>H5Tclose</code> on a
predefined data type then the following message is
predefined datatype then the following message is
printed on the standard error stream. This is a
simple error that has only one component, the API
function; other errors may have many components.
<p><code><pre>
HDF5-DIAG: Error detected in thread 0. Back trace follows.
#000: H5T.c line 462 in H5Tclose(): predefined data type
#000: H5T.c line 462 in H5Tclose(): predefined datatype
major(01): Function argument
minor(05): Bad value
</code></pre>
@@ -248,7 +233,7 @@ H5Eset_auto (my_hdf5_error_handler, NULL);
sequence number beginning at zero (regardless of
<em>direction</em>), a pointer to an error description record,
and the <em>client_data</em> pointer. If <em>direction</em>
is <code>H5E_WALK_UPWARD</em> then traversal begins at the
is <code>H5E_WALK_UPWARD</code> then traversal begins at the
inner-most function that detected the error and concludes with
the API function. The opposite order is
<code>H5E_WALK_DOWNWARD</code>.
@@ -336,78 +321,56 @@ H5Ewalk_cb(int n, H5E_error_t *err_desc, void *client_data)
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
Error Handling&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:hdf5dev@ncsa.uiuc.edu">Robb Matzke</a></address>
-->
<!-- Created: Fri Feb 27 23:42:52 EST 1998 -->
<!-- hhmts start -->
<!--
Last modified: Wed Mar 4 10:06:17 EST 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
<!-- Created: Fri Feb 27 23:42:52 EST 1998 -->
<!-- hhmts start -->
Last modified: 14 October 1999
<!-- hhmts end -->
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>HDF5 Files</title>
<title>File Interface (H5F)</title>
</head>
<body bgcolor="#FFFFFF">
@@ -10,56 +10,39 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
Files&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
Files&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -522,7 +505,7 @@ And in this document, the
returns a negative value. On successful return,
<em>access_properties</em> will point to a copy of the member
access property list which should be closed by calling
<code>H5Pclose()</em> when the application is finished with
<code>H5Pclose()</code> when the application is finished with
it. If <em>memb_size</em> is non-null then it will contain
the logical size in bytes of each family member. In the
future, additional arguments may be added to this function to
@@ -573,7 +556,7 @@ And in this document, the
returns a negative value. On successful return,
<em>meta_properties</em> and <em>raw_properties</em> will
point to copies of the meta and raw access property lists
which should be closed by calling <code>H5Pclose()</em> when
which should be closed by calling <code>H5Pclose()</code> when
the application is finished with them, but if the meta and/or
raw file has no property list then a negative value is
returned for that property list handle. Also, if
@@ -593,79 +576,56 @@ And in this document, the
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
Files&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
Files&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:koziol@ncsa.uiuc.edu">Quincey Koziol</a></address>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Tue Jan 27 09:11:27 EST 1998 -->
<!-- hhmts start -->
<!--
Last modified: Tue Sep 8 14:43:31 EDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
<!-- Created: Tue Jan 27 09:11:27 EST 1998 -->
<!-- hhmts start -->
Last modified: 14 October 1999
<!-- hhmts end -->
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -11,56 +11,39 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
Filters&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -324,6 +307,9 @@ And in this document, the
permanent output pipeline but was automatically excluded because
it didn't exist when the data was written.
<p><code>zlib</code> can be acquired from
<code><a href="http://www.cdrom.com/pub/infozip/zlib/">http://www.cdrom.com/pub/infozip/zlib/</a></code>.
<h2>5. Example</h2>
<p>This example shows how to define and register a simple filter
@@ -526,76 +512,56 @@ H5Z: filter statistics accumulated over life of library:
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
Filters&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Fri Apr 17 13:39:35 EDT 1998 -->
<!-- hhmts start -->
Last modified: Mon Jan 18 13:32:14 EST 1999
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
<!-- Created: Fri Apr 17 13:39:35 EDT 1998 -->
<!-- hhmts start -->
Last modified: 17 December 1999
<!-- hhmts end -->
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -6,18 +6,19 @@ HDF5 Glossary
<hr>
<center>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;&nbsp;
<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_H5P.html">H5P</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;
Glossary
<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;
</td>
<td valign=top align=right>
&nbsp;&nbsp;
</td>
<td valign=top align=right>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;
</td></tr>
</table>
</center>
<hr>
@@ -25,85 +26,524 @@ Glossary
<h1>HDF5 Glossary</h1>
</center>
<i>(<b>Under construction!</b>
This is the bare beginning of a Glossary to accompany the HDF5
documentation; it is by no means complete.)</i>
<ul>
<li><a href="#Glossary-Basic">basic data types</a>
<li><a href="#Glossary-Complex">complex data types</a>
<li>data types
<ul>
<li><a href="#Glossary-Basic">basic data types</a>
<li><a href="#Glossary-Complex">complex data types</a>
<li><a href="#Glossary-DiskIO">disk I/O data types</a>
</ul>
<li><a href="#Glossary-DiskIO">disk I/O data types</a>
</ul>
<center>
<table width=90% border=0>
<tr><td valign=top align=left width=33%>
<dl>
<dt><a href="#Glossary-AtomicDType">atomic datatype</a>
<dt><a href="#Glossary-Attribute">attribute</a>
<!--<dt><a href="#Glossary-BasicDType">basic datatype</a>-->
<dt><a href="#Glossary-LayoutChunked">chunked layout</a>
<dt><a href="#Glossary-Chunking">chunking</a>
<!--<dt><a href="#Glossary-ComplexDType">complex datatype</a>-->
<dt><a href="#Glossary-CompoundDType">compound datatype</a>
<!--<dt>compound element-->
<dt><a href="#Glossary-LayoutContig">contiguous layout</a>
<!--<dt>conversion function-->
<dt><a href="#Glossary-Dataset">dataset</a>
<dt><a href="#Glossary-Dataspace">dataspace</a>
<!--<dl>-->
<!-- <dt>dimensions-->
<!-- <dt>selection-->
<!--</dl>-->
<dt><a href="#Glossary-Datatype">datatype</a>
<dl>
<dt><a href="#Glossary-AtomicDType">atomic</a>
<!-- <dt><a href="#Glossary-BasicDType">basic</a>-->
<!-- <dt><a href="#Glossary-ComplexDType">complex</a>-->
<dt><a href="#Glossary-CompoundDType">compound</a>
<!-- <dt>conversion function-->
<!-- <dt><a href="#Glossary-DiskIO">disk I/O</a>-->
<dt><a href="#Glossary-DTypeEnum">enumeration</a>
<dt><a href="#Glossary-DTypeNamed">named</a>
<dt><a href="#Glossary-DTypeOpaque">opaque</a>
<!-- <dt>transient-->
<dt><a href="#Glossary-DTypeVLen">variable-length</a>
</dl>
<!--<dt>DDL-->
<!--<dt>dimensions-->
<!--<dt><a href="#Glossary-DiskIO">disk I/O datatype</a>-->
<!--<dt>element-->
<dt><a href="#Glossary-DTypeEnum">enumeration datatype</a>
<dt><a href="#Glossary-File">file</a>
<dl>
<!-- <dt>compound element-->
<!-- <dt>element-->
<dt><a href="#Glossary-Group">group</a>
<dt><a href="#Glossary-Path">path</a>
<dt><a href="#Glossary-RootGroup">root group</a>
<dt><a href="#Glossary-SuperBlock">super block</a>
</dl>
</dl>
</td>
<td valign=top align=left width=34%>
<dl>
<dt><a href="#Glossary-FileAccessMode">file access mode</a>
<dt><a href="#Glossary-Group">group</a>
<dl>
<!-- <dt>element-->
<dt><a href="#Glossary-GroupMember">member</a>
<dt><a href="#Glossary-RootGroup">root group</a>
</dl>
<dt><a href="#Glossary-LinkHard">hard link</a>
<!--<dt>HDF5-->
<dt><a href="#Glossary-Hyperslab">hyperslab</a>
<dt><a href="#Glossary-Identifier">identifier</a>
<dt><a href="#Glossary-Link">link</a>
<dl>
<dt><a href="#Glossary-LinkHard">hard</a>
<dt><a href="#Glossary-LinkSoft">soft</a>
<!-- <dt><a href="#Glossary-LinkSoftName">soft link name</a>-->
<!-- <dt>target-->
</dl>
<dt><a href="#Glossary-GroupMember">member</a>
<dt><a href="#Glossary-Name">name</a>
<dt><a href="#Glossary-DTypeNamed">named datatype</a>
<dt><a href="#Glossary-DTypeOpaque">opaque datatype</a>
<dt><a href="#Glossary-Path">path</a>
<!--<dt>parallel I/O-->
<dt><a href="#Glossary-PList">property list</a>
<dl>
<dt><a href="#Glossary-PListDataTransfer">data transfer</a>
<dt><a href="#Glossary-PListDSetAccess">dataset access</a>
<dt><a href="#Glossary-PListDSetCreate">dataset creation</a>
<dt><a href="#Glossary-PListFileAccess">file access</a>
<dt><a href="#Glossary-PListFileCreate">file creation</a>
</dl>
</dl>
</td>
<td valign=top align=left width=33%>
<dl>
<dt><a href="#Glossary-RootGroup">root group</a>
<dt><a href="#Glossary-Selection">selection</a>
<dl>
<dt><a href="#Glossary-Hyperslab">hyperslab</a>
<!-- <dt>point-->
</dl>
<dt><a href="#Glossary-Serialization">serialization</a>
<dt><a href="#Glossary-LinkSoft">soft link</a>
<!--<dt><a href="#Glossary-LinkSoftName">soft link name</a>-->
<dt><a href="#Glossary-StorageLayout">storage layout</a>
<dl>
<dt><a href="#Glossary-LayoutChunked">chunked</a>
<dt><a href="#Glossary-Chunking">chunking</a>
<dt><a href="#Glossary-LayoutContig">contiguous</a>
</dl>
<dt><a href="#Glossary-SuperBlock">super block</a>
<!--<dt>target-->
<!--<dt>threadsafe-->
<!--<dt>transient datatype-->
<dt><a href="#Glossary-DTypeVLen">variable-length datatype</a>
</dl>
</td></tr>
</table>
</center>
<hr>
<a name="Glossary-Basic">basic data types:</a>
<ul>
<li><em>(Some data types may change substantially en route to
Release 1.0.)</em>
<li>char - 8-bit character (only for ASCII information)
<li>int8 - 8-bit signed integer
<li>uint8 - 8-bit unsigned integer
<li>int16 - 16-bit signed integer
<li>uint16 - 16-bit unsigned integer
<li>int32 - 32-bit signed integer
<li>uint32 - 32-bit unsigned integer
<li>intn - "native" signed integer
<li>uintn - "native" unsigned integer
<li>int64 - 64-bit signed integer (new)
<li>uint64 - 64-bit unsigned integer (new)
<li>float32 - 32-bit IEEE float
<li>float64 - 64-bit IEEE float
</ul>
<a name="Glossary-Complex">Complex data types:</a>
<ul>
<li><em>(Some data types may change substantially en route to
Release 1.0.)</em>
<li>hid_t - 32-bit unsigned integer used as ID for memory objects
<li>hoid_t - 32-bit unsigned integer (currently) used as ID for disk-based
objects
<li>hbool_t - boolean to indicate true/false/error codes from functions
<li>herr_t - 32-bit integer to indicate succeed/fail codes from functions
</ul>
<DL>
<a name="Glossary-DiskIO">disk I/O data types:</a>
<dt><strong><a name="Glossary-AtomicDType">atomic datatype</a></strong>
<dd>A datatype which cannot be decomposed into smaller units at the
API level.
<P>
<DT><a name="Glossary-Attribute"><B>attribute</B></a>
<DD>A small dataset that can be used to describe the nature and/or
the intended usage of the object it is attached to.
<P>
<!--
<dt><strong><a name="Glossary-Basic">basic datatypes</a></strong>
<ul>
<li>char - 8-bit character (only for ASCII information)
<li>int8 - 8-bit signed integer
<li>uint8 - 8-bit unsigned integer
<li>int16 - 16-bit signed integer
<li>uint16 - 16-bit unsigned integer
<li>int32 - 32-bit signed integer
<li>uint32 - 32-bit unsigned integer
<li>intn - "native" signed integer
<li>uintn - "native" unsigned integer
<li>int64 - 64-bit signed integer (new)
<li>uint64 - 64-bit unsigned integer (new)
<li>float32 - 32-bit IEEE float
<li>float64 - 64-bit IEEE float
</ul>
<P>
-->
<dt><strong><a name="Glossary-LayoutChunked">chunked layout</a></strong>
<dd>The storage layout of a chunked dataset.
<P>
<dt><strong><a name="Glossary-Chunking">chunking</a></strong>
<dd>A storage layout where a dataset is partitioned into fixed-size
multi-dimensional chunks. Chunking tends to improve performance
and facilitates dataset extensibility.
<P>
<dt><strong><a name="Glossary-CompoundDType">compound datatype</a></strong>
<dd>A collection of one or more atomic types or small arrays of such types.
Similar to a struct in C or a common block in Fortran.
<P>
<!--
<dt><strong><a name="Glossary-ComplexDType">complex datatype</a></strong>
<dd>A collection of one or more atomic types or small arrays of such types.
<ul>
<li>hid_t - 32-bit unsigned integer used as ID for memory objects
<li>hoid_t - 32-bit unsigned integer (currently) used as ID for
disk-based objects
<li>hbool_t - boolean to indicate true/false/error codes from functions
<li>herr_t - 32-bit integer to indicate succeed/fail codes from
functions
</ul>
<P>
-->
<dt><strong><a name="Glossary-LayoutContig">contiguous layout</a></strong>
<dd>The storage layout of a dataset that is not chunked, so that the entire
data portion of the dataset is stored in a single contiguous block.
<P>
<DT><B><a name="Glossary-PListDataTransfer">data transfer property list</B></a>
<DD>The data transfer property list is used to control various aspects
of the I/O, such as caching hints or collective I/O information.
<P>
<DT><B><a name="Glossary-Dataset">dataset</B></a>
<DD>A multi-dimensional array of data elements, together with
supporting metadata.
<P>
<DT><B><a name="Glossary-PListDSetAccess">dataset access property list</B></a>
<DD>A property list containing information on how a dataset is to be accessed.
<P>
<DT><B><a name="Glossary-PListDSetCreate">dataset creation property list</B></a>
<DD>A property list containing information on how
raw data is organized on disk and how the raw data is compressed.
<!--
The dataset API partitions these terms by layout, compression,
and external storage:
<UL>
<B> Layout:</B>
<UL>
<LI>H5D_COMPACT: Data is small and can be stored in object header (not
implemented yet). This eliminates disk seek/read requests.
<LI>H5D_CONTIGUOUS: (<B>default</B>) The data is large, non-extendible,
non-compressible, non-sparse, and can be stored externally.
<LI>H5D_CHUNKED: The data is large and can be extended in any dimension.
It is partitioned into chunks so each chunk is the same logical size.
</UL>
<B>Compression:</B> (gzip compression)<BR>
<B>External Storage Properties:</B> The data must be contiguous to be
stored externally. It allows you to store
the data in one or more non-HDF5 files.
</UL>
-->
<P>
<DT><B><a name="Glossary-Dataspace">dataspace</B></a>
<DD>An object that describes the dimensionality of the data array.
A dataspace is either a regular N-dimensional array of data points,
called a simple dataspace, or a more general collection of data points
organized in another manner, called a complex dataspace.
<P>
<DT><B><a name="Glossary-Datatype">datatype</B></a>
<DD>An object that describes the storage format of the individual data
points of a data set.
There are two categories of datatypes: atomic and compound datatypes.
An atomic type is a type which cannot be decomposed into smaller
units at the API level. A compound datatype is a collection of one or
more atomic types or small arrays of such types.
<P>
<!--
<DT><B>DDL</B>
<DD>A detailed description of the HDF5 format and objects, written in a
Data Description Language using Backus-Naur Form.
<P>
-->
<!--
<dt><strong><a name="Glossary-DiskIO">disk I/O datatypes</a></strong>
<ul>
<li><em>(Some data types may change substantially en route to
Release 1.0.)</em>
<li>hoff_t - (64-bit?) offset on disk in bytes
<li>hlen_t - (64-bit?) length on disk in bytes
</ul>
<P>
-->
<dt><strong><a name="Glossary-DTypeEnum">enumeration datatype</a></strong>
<dd>A one-to-one mapping between a set of symbols and a set of
integer values, and an order is imposed on the symbols by their
integer values. The symbols are passed between the application
and library as character strings and all the values for a
particular enumeration datatype are of the same integer type,
which is not necessarily a native type.
<P>
<DT><B><a name="Glossary-File">file</B></a>
<DD>A container for storing grouped collections of
multi-dimensional arrays containing scientific data.
<P>
<DT><B><a name="Glossary-FileAccessMode">file access mode</B></a>
<DD>Determines whether an existing file will be overwritten,
opened for read-only access, or opened for read/write access.
All newly created files are opened for both reading and
writing.
<!--
Possible values are:
<PRE>
H5F_ACC_RDWR: Allow read and write access to file.
H5F_ACC_RDONLY: Allow read-only access to file.
H5F_ACC_TRUNC: Truncate file, if it already exists, erasing all data
previously stored in the file.
H5F_ACC_EXCL: Fail if file already exists.
H5F_ACC_DEBUG: Print debug information.
H5P_DEFAULT: Apply default file access and creation properties.
</PRE>
-->
<P>
<DT><B><a name="Glossary-PListFileAccess">file access property list</B></a>
<DD>File access property lists are used to control different methods
of performing I/O on files:
<!--
<UL>
<B>Unbuffered I/O:</B> Local permanent files can be accessed with the
functions described in Section 2 of the Posix manual, namely open(),
lseek(), read(), write(), and close(). <BR>
<B>Buffered I/O:</B> Local permanent files can be accessed with the
functions declared in the stdio.h header file, namely fopen(),
fseek(), fread(), fwrite(), and fclose().<BR>
<B>Memory I/O:</B> Local temporary files can be created and accessed
directly from memory without ever creating permanent storage.
The library uses malloc() and free() to create storage space for the
file<BR>
<B>Parallel Files using MPI I/O:</B> This driver allows parallel access
to a file through the MPI I/O library. The parameters which can be
modified are the MPI communicator, the info object, and the access mode.
The communicator and info object are saved and then passed to
MPI_File_open() during file creation or open. The access_mode
controls the kind of parallel access the application intends.<BR>
<B>Data Alignment:</B> Sometimes file access is faster if certain things
are aligned on file blocks. This can be controlled by setting alignment
properties of a file access property list with the H5Pset_alignment()
function.
</UL>
-->
<P>
<DT><B><a name="Glossary-PListFileCreate">file creation property list</B></a>
<DD>The property list used to control file metadata.
<!--
The parameters that can be modified are:
<UL>
<B>User-Block Size:</B> The "user-block" is a fixed length block
of data located at the beginning of the file which is ignored
by the HDF5 library and may be used to store any data information
found to be useful to applications.
<BR>
<B>Offset and Length Sizes:</B> The number of bytes used to store the
offset and length of objects in the HDF5 file can be controlled
with this parameter.
<BR>
<b>Symbol Table Parameters:</b> The size of symbol table B-trees can
be controlled by setting the 1/2 rank and 1/2 node size
parameters of the B-tree.
<BR>
<B>Indexed Storage Parameters:</B> The size of indexed storage
B-trees can be controlled by setting the 1/2 rank and 1/2 node
size parameters of the B-tree.
</UL>
-->
<P>
<DT><B><a name="Glossary-Group">group</B></a>
<DD>A structure containing zero or more HDF5 objects,
together with supporting metadata.
The two primary HDF5 objects are datasets and groups.
<P>
<dt><strong><a name="Glossary-LinkHard">hard link</a></strong>
<dd>A direct association between a name and the object where both exist
in a single HDF5 address space.
<P>
<!--
<DT><B>HDF5</B>
<DD>HDF5 is an abbreviation for Hierarchical Data Format Version 5.
This file format is intended to make it easy to write and read
scientific data
<P>
<UL>
<LI>by including the information needed to understand the data
within the file
<P>
<LI>by providing a library of C, FORTRAN, and other language
programs that reduce the work required to provide efficient
writing and reading - even with parallel IO
</UL>
<P>
-->
<DT><B><a name="Glossary-Hyperslab">hyperslab</B></a>
<DD>A portion of a dataset. A hyperslab selection can be a
logically contiguous collection of points in a dataspace or
a regular pattern of points or blocks in a dataspace.
<P>
<dt><strong><a name="Glossary-Identifier">identifier</a></strong>
<dd>A unique entity provided by the HDF5 library and used to access
an HDF5 object, such as a file, goup, dataset, datatype, etc.
<P>
<dt><strong><a name="Glossary-Link">link</a></strong>
<dd>An association between a name and the object in an HDF5 file group.
<P>
<dt><strong><a name="Glossary-GroupMember">member</a></strong>
<dd>A group or dataset that is in another dataset, <i>dataset A</i>,
is a member of <i>dataset A</i>.
<P>
<DT><B><a name="Glossary-Name">name</B></a>
<DD>A slash-separated list of components that uniquely identifies an
element of an HDF5 file. A name begins that begins with a slash
is an absolute name which is accessed beginning with the root group
of the file; all other names are relative names and the associated
objects are accessed beginning with the current or specified group.
<P>
<dt><strong><a name="Glossary-DTypeNamed">named datatype</a></strong>
<dd>A datatype that is named and stored in a file. Naming is permanent;
a datatype cannot be changed after being named.
<P>
<dt><strong><a name="Glossary-DTypeOpaque">opaque datatype</a></strong>
<dd>A mechanism for describing data which cannot be otherwise described
by HDF5. The only properties associated with opaque types are a
size in bytes and an ASCII tag.
<P>
<!--
<DT><B>parallel I/O HDF5</B>
<DD>The parallel I/O version of HDF5 supports parallel file access using
MPI (Message Passing Interface).
<P>
-->
<dt><strong><a name="Glossary-Path">path</a></strong>
<dd>The slash-separated list of components that forms the name
uniquely identifying an element of an HDF5 file.
<P>
<dt><strong><a name="Glossary-PList">property list</a></strong>
<dd>A collection of name/value pairs that can be passed to other
HDF5 functions to control features that are typically unimportant
or whose default values are usually used.
<P>
<dt><strong><a name="Glossary-RootGroup">root group</a></strong>
<dd>The group that is the entry point to the group graph in an HDF5 file.
Every HDF5 file has exactly one root group.
<P>
<dt><strong><a name="Glossary-Selection">selection</a></strong>
<dd>(1) A subset of a dataset or a dataspace, up to the entire dataset or
dataspace.
(2) The elements of an array or dataset that are marked for I/O.
<P>
<dt><strong><a name="Glossary-Serialization">serialization</a></strong>
<dd>The flattening of an <em>N</em>-dimensional data object into a
1-dimensional object so that, for example, the data object can be
transmitted over the network as a 1-dimensional bitstream.
<P>
<dt><strong><a name="Glossary-LinkSoft">soft link</a></strong>
<dd>An indirect association between a name and an object in an
HDF5 file group.
<P>
<dt><strong><a name="Glossary-StorageLayout">storage layout</a></strong>
<dd>The manner in which a dataset is stored, either contiguous or
chunked, in the HDF5 file.
<P>
<DT><B><a name="Glossary-SuperBlock">super block</B></a>
<DD>A block of data containing the information required to portably access
HDF5 files on multiple platforms, followed by information about the groups
and datasets in the file.
The super block contains information about the size of offsets,
lengths of objects, the number of entries in group tables,
and additional version information for the file.
<P>
<!--
<DT><B>threadsafe</B>
<DD>A "thread-safe" version of HDF-5 (TSHDF5) is one that can be called
from any thread of a multi-threaded program. Any calls to HDF
can be made in any order, and each individual HDF call will perform
correctly. A calling program does not have to explicitly lock the HDF
library in order to do I/O. Applications programmers may assume that
the TSHDF5 guarantees the following:
<UL>
<LI>the HDF-5 library does not create or destroy threads.
<LI>the HDF-5 library uses modest amounts of per-thread
private memory.
<LI>the HDF-5 library only locks/unlocks it's own locks (no locks
are passed in or returned from HDF), and the internal locking
is guaranteed to be deadlock free.
</UL>
<P>
These properties mean that the TSHDF5 library will not interfere
with an application's use of threads. A TSHDF5 library is the same
library as regular HDF-5 library, with additional code to synchronize
access to the HDF-5 library's internal data structures.
<P>
-->
<dt><strong><a name="Glossary-DTypeVLen">variable-length datatype</a></strong>
<dd>A sequence of an existing datatype (atomic, variable-length (VL),
or compound) which are not fixed in length from one dataset location
to another.
<P>
</DL>
<hr>
<center>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;&nbsp;
<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_H5P.html">H5P</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;
Glossary
<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;
</td>
<td valign=top align=right>
&nbsp;&nbsp;
</td>
<td valign=top align=right>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;
</td></tr>
</table>
</center>
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 18 October 1999
<br>
Last modified: 14 July 1998
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Groups</title>
<title>Group Interface (H5G)</title>
</head>
<body bgcolor="#FFFFFF">
@@ -11,56 +11,39 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
Groups&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -323,78 +306,56 @@ And in this document, the
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
Groups&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Tue Jan 27 09:11:27 EST 1998 -->
<!-- hhmts start -->
<!--
Last modified: Wed Jul 22 14:24:34 EDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
<!-- Created: Tue Jan 27 09:11:27 EST 1998 -->
<!-- hhmts start -->
Last modified: 14 October 1999
<!-- hhmts end -->
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -55,9 +55,7 @@ with a single print command as follows:
</td><td></td><td valign=top>A guide to the <strong>H5D</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Datatypes.html" target="PrintWin">Data Types</a> and
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<a href="DatatypesEnum.html" target="PrintWin">Enumeration Data Types</a>
<tr><td valign=top><a href="Datatypes.html" target="PrintWin">Datatypes</a>
</td><td></td><td valign=top>A guide to the <strong>H5T</strong>
interface.
</td></tr>
@@ -97,6 +95,10 @@ with a single print command as follows:
</td><td></td><td valign=top>A guide to the issues and pitfalls
of dataset chunking.
</td></tr>
<tr><td valign=top><a href="MountingFiles.html" target="PrintWin">Mounting Files</a>
</td><td></td><td valign=top>A guide to mounting files containing
external HDF5 datasets.
</td></tr>
<tr><td valign=top><a href="Debugging.html" target="PrintWin">Debugging</a>
</td><td></td><td valign=top>A guide to debugging HDF5 API calls.
</td></tr>
@@ -127,7 +129,7 @@ with a single print command as follows:
<tr><td align=left valign=top>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<br>
Last modified: 1 June 1999
Last modified: 22 July 1999
</table>

View File

@@ -15,7 +15,7 @@
<center>
<font size=7>
A User's Guide for HDF5
HDF5 User's Guide
</font>
<br><br><br>
@@ -24,9 +24,9 @@ A User's Guide for HDF5
<br><br><br>
<font size=6>
Release 1.0
Release 1.2
<br>
January 1999
October 1999
</font>
<br><br><br><br>
@@ -51,21 +51,25 @@ University of Illinois at Urbana-Champaign (UIUC)
<strong>A Note to the Reader:</strong>
The primary HDF5 user documents are the online HTML documents
distributed with the HDF5 code and binaries and found on the HDF5 website.
Several users have expressed a desire for documents in an alternative format:
These PDF and PostScript versions are generated from the HTML to provide
the following capabilites:
<ul>
<li>Some have requested a version that can be reasonably printed in a
<li>To provide a version that can be reasonably printed in a
single print operation.
<li>Others have requested an easily searchable version.
<li>To provide an easily searchable version.
</ul>
This PDF file has been created expressly to meet these needs.
<p>
The reader will note that each section of this document looks very much
as the corresponding HTML page would look in a web browser. That is not
accidental as the HTML version remains the HDF5 development team's primary
documentation vehicle.
In this package, you will find four PDF and PostScript documents:
<ul>
<li><cite>Introduction to HDF5</cite>
<li><cite>A User's Guide for HDF5</cite>
<li><cite>HDF5 Reference Manual</cite>
<li>All three of the above documents concatenated into a single file
</ul>
Note that these versions were created in response to user feedback;
the HDF Group is eager to hear from you so as to improve the delivered
product.
</blockquote>
<br><br>
<hr>

View File

@@ -12,60 +12,17 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
<!--
&nbsp;&nbsp;
And in this document, the
HDF5 User's Guide:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
-->
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -74,13 +31,18 @@ And in this document, the
<center><h1>A User's Guide for HDF5</h1></center>
<p>The following documents form a loosely organized user's guide
to the HDF5 library.
<center>
<table border=0>
<table border=0 width=80%>
<tr><td valign=top><a href="Files.html">HDF5 Files</a>
<tr><td valign=top colspan=3>
The following documents form a loosely organized user's guide
to the HDF5 library.
<br>
<br>
</td></tr>
<tr><td valign=top width=35%><a href="Files.html">HDF5 Files</a>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td valign=top>A guide to the <strong>H5F</strong> interface.
</td></tr>
@@ -88,7 +50,7 @@ And in this document, the
</td><td></td><td valign=top>A guide to the <strong>H5D</strong>
interface.
</td></tr>
<tr><td valign=top><a href="Datatypes.html">Data Types</a>
<tr><td valign=top><a href="Datatypes.html">Datatypes</a>
</td><td></td><td valign=top>A guide to the <strong>H5T</strong>
interface.
</td></tr>
@@ -128,6 +90,14 @@ And in this document, the
</td><td></td><td valign=top>A guide to the issues and pitfalls
of dataset chunking.
</td></tr>
<tr><td valign=top><a href="MountingFiles.html">Mounting Files</a>
</td><td></td><td valign=top>A guide to mounting files containing
external HDF5 <br>&nbsp;&nbsp;&nbsp;datasets.
</td></tr>
<tr><td valign=top><a href="Performance.html">Performance</a>
</td><td></td><td valign=top>A guide to performance issues and
analysis tools.
</td></tr>
<tr><td valign=top><a href="Debugging.html">Debugging</a>
</td><td></td><td valign=top>A guide to debugging HDF5 API calls.
</td></tr>
@@ -136,121 +106,66 @@ And in this document, the
<br>&nbsp;&nbsp;&nbsp;<a href="Environment.html">Configuration
Parameters</a>
</td><td></td><td valign=top>A list of HDF5 environment variables
and <br>&nbsp;&nbsp;&nbsp;configuration parameters.
and configuration <br>&nbsp;&nbsp;&nbsp;parameters.
</td></tr>
<tr><td valign=top><a href="ddl.html">DDL for HDF5</a>
</td><td></td><td valign=top>A DDL in BNF for HDF5.
</td></tr>
<tr><td valign=top><hr noshade size=1><a href="Ragged.html">Ragged Arrays</a>
</td><td></td><td valign=top><hr noshade size=1>A guide to the
<tr><td valign=bottom><hr noshade size=1><a href="Ragged.html">Ragged Arrays</a>
</td><td></td><td valign=bottom>A guide to the
<strong>H5RA</strong> interface.
&nbsp;&nbsp;<em><font color=red>(Experimental)</font></em>
</td></tr>
</table>
</center>
<br>
<!--
<p>The following documents form a loosely organized developer's guide to
aspects of the HDF5 library. (Some of the following documents
may be rather out of date as they were working papers for design
goals.)
<tr><td valign=top colspan=3>
<a name="AppDevGuide">
<hr>
</a>
<h2>HDF5 Application Developer's Guide</h2>
These documents are intended for HDF5 application developers.
Other documents for this <cite>Guide</cite>
(e.g., <cite>HDF4 to HDF5 File Mappings</cite>)
are in development but are not ready for this release.
</td></tr>
<ul>
<li><a href="Version.html">Version Numbers</a> -
A description of HDF5 version numbers.
<li><a href="IOPipe.html">I/O Pipeline</a> -
A description of the raw data I/O pipeline.
<li><a href="ExternalFiles.html">Working with External Files</a> -
A guide to the use of multiple files with HDF5.
<li><a href="Big.html">Large Datasets</a> -
A guide to accessing large datasets on small computers.
<li><a href="MemoryManagement.html">Memory Management</a> -
A white paper about memory management issues in HDF5.
<li><a href="Coding.html">Coding Style</a> -
A white paper about coding style in the HDF5 library code.
<li><a href="compat.html">HDF4/HDF5 Compatibility</a> -
A white paper about compatibility issues between HDF4 and HDF5.
<li><a href="study.html">Chunking Performance Study</a> -
A white paper describing the HDF5 chunking performance.
</ul>
<tr><td valign=top width=35%><a href="Palettes.html">
HDF5 Image and</a>
<br>&nbsp;&nbsp;&nbsp;<a href="Palettes.html">Palette Specification</a>
</td><td></td><td valign=top>A specification for the implementation
of images
<br>&nbsp;&nbsp;&nbsp;
and palettes in HDF5 applications.
</td></tr>
-->
</table>
</center>
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
<!--
&nbsp;&nbsp;
And in this document, the
HDF5 User's Guide:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<br>
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
-->
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:koziol@ncsa.uiuc.edu">Quincey Koziol</a></address>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- hhmts start -->
<!--
Last modified: Wed Aug 19 15:29:11 PDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
@@ -258,10 +173,12 @@ Last modified: Wed Aug 19 15:29:11 PDT 1998
<tr><td align=left valign=top>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<br>
Last modified: 30 October 1998
Last modified: 2 June 2000
</td><td align=right valign=top>
<a href="Copyright.html">Copyright</a>&nbsp;&nbsp;
<a href="Copyright.html">Copyright</a>
<br>
Describes HDF5 Release 1.2.2, June 2000
</td></tr>
</table>

730
doc/html/ImageSpec.html Executable file
View File

@@ -0,0 +1,730 @@
<html>
<head>
<title>Palettes</title>
</head>
<body bgcolor="#FFFFFF">
<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="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
Return to the
<a href="ADGuide.html">HDF5 Application Developer's Guide</a>&nbsp;<br>
</td></tr>
</table>
</center>
<hr>
<center>
<h1>HDF5 Image and Palette Specification</h1>
<h3><i>(Major revision: Designated Version 1.1 of the
Image and Palette Specification)</i></h3>
</center>
The HDF5 specification defines the standard objects and storage for the
standard HDF5 objects. (For information about the HDF5 library, model and
specification, see the HDF documentation.)&nbsp; This document is an additional
specification do define a standard profile for how to store image data
in HDF5. Image data in HDF5 is stored as HDF5 datasets with standard attributes
to define the properties of the image.
<p>This specification defines:
<ul>
<li>
Standard attributes for an Image dataset</li>
<li>
Standard storage and attributes for Palettes</li>
<li>
Standard for associating Palettes with Images.</li>
</ul>
<h2>
1. HDF5 Image Specification</h2>
<h3>
1.1 Overview</h3>
Image data is stored as an HDF5 dataset with values of HDF5 class Integer
or Float.&nbsp; A common example would be a two dimensional dataset, with
elements of type Integer.&nbsp; However, this specification does not limit
the dimensions or number type that may be used for an Image.
<p>The dataset for an image is distinguished from other datasets by giving
it an attribute "CLASS=IMAGE".&nbsp; In addition, the Image dataset has
an attribute "PALETTE" that points to one or more palettes.
<p>A Palette is ha HDF5 dataset.&nbsp; A Pallet dataset has an attribute
"an" and other attributes indicating the type and size of the palette.&nbsp;
A Palette is an independent object, which can be shared among several Image
datasets.
<h3>
1.2&nbsp; Image Attributes</h3>
<dl>
<dt>
Attribute name="<b>CLASS</b>"</dt>
<dd>
This attribute is of type H5T_C_S1, with size 6.</dd>
<dd>
For all Images, the value of this attribute is "IMAGE".</dd>
</dl>
<dd>
This attribute identifies this data set as intended to be interpreted as
an image that conforms to the specifications on this page.</dd>
<dl>
<dt>
Attribute name="<b>IMAGE_SUBCLASS</b>"</dt>
<dd>
If present, the value of this attribute indicates the type of Palette that
should be used with the Image.&nbsp; This attribute is of type H5T_C_S1,
with size according to the string.&nbsp; The values are:</dd>
<dl>
<dt>
"IMAGE_GRAYSCALE"</dt>
<dd>
A grayscale image, values 0-255 indicating brightness.</dd>
<dt>
"IMAGE_BITMAP"</dt>
<dd>
A "bit map" image (???)</dd>
<dt>
"IMAGE_TRUECOLOR"</dt>
<dd>
A truecolor image</dd>
<dt>
"IMAGE_INDEXED"</dt>
<dd>
An indexed image</dd>
</dl>
</dl>
<dt>
Attribute name="<b>IMAGE_WHITE_IS_ZERO</b>"</dt>
<dl>
<dd>
This attribute is of type H5T_NATIVE_UCHAR.&nbsp; 0 = false, 1 = true .&nbsp;
This is used for images with IMAGE_SUBCLASS="IMAGE_GRAYSCALE" or "IMAGE_BITMAP".</dd>
</dl>
<dl>
<dt>
Attribute name="<b>IMAGE_MINMAXRANGE</b>"</dt>
<dd>
If present, this attribute is an array of two numbers, of the same HDF5
datatype as the data.&nbsp; The first element is the minimum value of the
data, and the second is the maximum.&nbsp; This is used for images with
IMAGE_SUBCLASS="IMAGE_GRAYSCALE", "IMAGE_BITMAP" or "IMAGE_INDEXED".</dd>
</dl>
<dt>
Attribute name="<b>IMAGE_BACKGROUNDINDEX</b>"</dt>
<dl>
<dd>
If set, this attribute indicates the index value that should be interpreted
as the "background color".&nbsp; This attribute is HDF5 type H5T_NATIVE_UINT.</dd>
</dl>
<dt>
Attribute name="<b>IMAGE_TRANSPARENCY</b>"</dt>
<dl>
<dd>
If set, this attribute indicates the index value that should be interpreted
as the "transparent color".&nbsp; This attribute is HDF5 type H5T_NATIVE_UINT.&nbsp;
This attribute may not be used for IMAGE_SUBCLASS="IMAGE_TRUE_COLOR".</dd>
</dl>
<dt>
Attribute name="<b>IMAGE_ASPECTRATIO</b>"</dt>
<dl>
<dd>
If set, this attribute indicates the aspect ratio.&nbsp; This attribute
is HDF5 type H5T_NATIVE_UINT.</dd>
</dl>
<dt>
Attribute name="<b>IMAGE_COLORMODEL</b>"</dt>
<dl>
<dd>
If set, this attribute indicates the color model of Palette that should
be used with the Image.&nbsp; This attribute is of type H5T_C_S1, with
size 4,5, or 6.&nbsp; The value is one of the color models described in
the Palette specification below.&nbsp; This attribute may be used only
for IMAGE_SUBCLASS="IMAGE_TRUECOLOR" or "IMAGE_INDEXED".</dd>
</dl>
<dt>
Attribute name="<b>IMAGE_GAMMACORRECTION</b>"</dt>
<dl>
<dd>
If set, this attribute gives the Gamma correction.&nbsp; The type is H5T_NATIVE_FLOAT.&nbsp;
This attribute may be used only for IMAGE_SUBCLASS="IMAGE_TRUECOLOR" or
"IMAGE_INDEXED".</dd>
</dl>
<dt>
Attribute name="<b>PALETTE</b>"</dt>
<dl>
<dd>
A dataset within an HDF5 file may optionally specify an array of palettes
to be viewed with. The dataset will have an attribute field called "<b>PALETTE</b>"
which contains an array of object reference pointers which refer to palettes
in the file. The first palette in this array will be the default palette
that the data may be viewed with.</dd>
</dl>
Attribute name="<b>IMAGE_VERSION</b>"
<dl>
<dd>
This attribute is of type H5T_C_S1, with size corresponding to the length
of the version string.&nbsp; This attribute identifies the version number
of this specification to which it conforms.&nbsp; The initial version number
is "1.0".</dd>
<br>&nbsp;
<p>&nbsp;
<br>&nbsp;
<br>&nbsp;
<center><table BORDER=2 BGCOLOR="#FFFFFF" >
<caption>Attributes of an Image Dataset</caption>
<tr>
<td><b>Attribute Name</b></td>
<td></td>
<td><b>Type</b></td>
<td><b>Value</b></td>
</tr>
<tr>
<td>CLASS</td>
<td>R</td>
<td>String</td>
<td>"IMAGE"</td>
</tr>
<tr>
<td>PALETTE</td>
<td>O</td>
<td>Array of Object References</td>
<td>&lt;references to Palette datasets><sup>1</sup></td>
</tr>
<tr>
<td>IMAGE_SUBCLASS</td>
<td>O<sup>2</sup></td>
<td>String</td>
<td>
<dt>
"IMAGE_GRAYSCALE",</dt>
<dt>
"IMAGE_BITMAP",</dt>
<dt>
"IMAGE_TRUECOLOR",</dt>
<dt>
"IMAGE_INDEXED"</dt>
</td>
</tr>
<tr>
<td>PALETTE</td>
<td>O</td>
<td>Array of Object Reference</td>
<td>&lt;references to Palette datasets></td>
</tr>
<tr>
<td>IMAGE_WHITE_IS_ZERO</td>
<td>O<sup>3,4</sup></td>
<td>Unsigned Integer</td>
<td>0 = false, 1 = true</td>
</tr>
<tr>
<td>IMAGE_MINMAXRANGE</td>
<td>O<sup>3,5</sup></td>
<td>Unsigned Integer[2]</td>
<td>The (&lt;minimum>, &lt;maximum>) value of the data.</td>
</tr>
<tr>
<td>IMAGE_BACKGROUNDINDEX</td>
<td>O<sup>3</sup></td>
<td>Unsigned Integer</td>
<td>The index of the background color.</td>
</tr>
<tr>
<td>IMAGE_TRANSPARENCY</td>
<td>O<sup>3,5</sup></td>
<td>Unsigned Integer</td>
<td>The index of the transparent color.</td>
</tr>
<tr>
<td>IMAGE_ASPECTRATIO</td>
<td>O<sup>3,4</sup></td>
<td>Unsigned Integer</td>
<td>The aspect ratio.</td>
</tr>
<tr>
<td>IMAGE_COLORMODEL</td>
<td>O<sup>3,6</sup></td>
<td>String</td>
<td>The color model, as defined below in the Palette specification for
attribute <b>PAL_COLORMODEL</b>.</td>
</tr>
<tr>
<td>IMAGE_GAMMACORRECTION</td>
<td>O<sup>3,6</sup></td>
<td>Float</td>
<td>The gamma correction.</td>
</tr>
<tr>
<td>IMAGE_VERSION</td>
<td>R</td>
<td>String</td>
<td>&lt;specification version number></td>
</tr>
</table></center>
<dl><font size=-1>1.&nbsp; The first element of the array is the default
Palette.</font>
<br><font size=-1>2.&nbsp; This attribute is <b>required</b> for images
that are converted from one of the standard types listed.</font>
<br><font size=-1>3. This attribute is <b>required</b> if set for images
converted from the applicable standard type.</font>
<br><font size=-1>4.&nbsp; This applies to gray scale images:&nbsp; IMAGE_SUBCLASS="IMAGE_GRAYSCALE"
or "IMAGE_BITMAP".</font>
<br><font size=-1>5.&nbsp; This applies to gray scale images:&nbsp; IMAGE_SUBCLASS="IMAGE_GRAYSCALE",
"IMAGE_BITMAP", or "IMAGE_INDEXED".</font>
<br><font size=-1>5.&nbsp; This applies to gray scale images:&nbsp; IMAGE_SUBCLASS="IMAGE_TRUECOLOR",
or "IMAGE_INDEXED".</font></dl>
</dl>
<h3>
1.3 Storage Properties for Images</h3>
Image datasets may be stored with any chunking or compression properties
supported by HDF5.
<h2>
2.&nbsp; HDF5 Palette Specification</h2>
<h3>
2.1 Overview</h3>
A palette is the means by which color is applied to an image and is also
referred to as a color lookup table. It is a table in which every row contains
the numerical representation of a particular color. In the example of an
8-bit standard RGB color model palette, this numerical representation of
a color is presented as a triplet specifying the intensity of red, green,
and blue components that make up each color.
<center>
<p><img SRC="Palettes.fm.anc.gif" ></center>
<p>In this example, the color component numeric type is an 8-bit unsigned
integer. While this is most common and recommended for general use, other
component color numeric datatypes, such as a 16-bit unsigned integer ,
may be used. This type is specified as the type attribute of the palette
dataset. (see H5Tget_type(), H5Tset_type())
<p>The minimum and maximum values of the component color numeric are specified
as attribute of the palette dataset. See below (attribute PAL_MINMAXNUMERIC).
If these attributes do not exist, it is assumed that the range of values
will fill the space of the color numeric type. i.e. with an 8-bit unsigned
integer, the valid range would be 0 to 255 for each color component.
<p>The HDF5 palette specification additionally allows for color models
beyond RGB. YUV, HSV, CMY, CMYK, YCbCr color models are supported, and
may be specified as a color model attribute of the palette dataset. <i>(see
"Palette Attributes" for details)</i>.
<p>In HDF 4 and earlier, palettes were limited to 256 colors. The HDF5
palette specification allows for palettes of varying length. The length
is specified as the number of rows of the palette dataset.
<p>In a standard palette, the color entries are indexed directly. HDF5
supports the notion of a range index table. Such a table defines an ascending
ordered of ranges that map dataset values to the palette. If a range index
table exists for the palette, the PAL_TYPE attribute will be set to "RANGEINDEX",
and the PAL_RANGEINDEX attribute will contain an object reference to a
range index table array. If not, the PAL_TYPE attribute either does not
exist, or will be set to "STANDARD".
<p>The range index table array consists of a one dimensional array with
the same length as the palette dataset - 1. Ideally, the range index would
be of the same type as the dataset it refers to, however this is not a
requirement.
<p><b>Example 2: A range index array of type floating point</b>
<center>
<p><img SRC="PaletteExample1.gif" ></center>
<p>The range index array attribute defines the "<i>to</i>" of the range.
Notice that the range index array attribute is one less entry in size than
the palette. The first entry of 0.1259, specifies that all values below
and up to 0.1259 inclusive, will map to the first palette entry. The second
entry signifies that all values greater than 0.1259 up to 0.3278 inclusive,
will map to the second palette entry, etc. All value greater than the last
range index array attribute (100000) map to the last entry in the palette.
<h3>
2.2. Palette Attributes</h3>
A palette exists in an HDF file as an independent data set with accompanying
attributes.
<p>These attributes are defined as follows:
<dl>
<dt>
Attribute name="<b>CLASS</b>"</dt>
<dd>
This attribute is of type H5T_C_S1, with size 8.</dd>
<dd>
For all palettes, the value of this attribute is "PALETTE". This attribute
identifies this palette data set as a palette that conforms to the specifications
on this page.</dd>
<dt>
Attribute name="<b>PAL_COLORMODEL</b>"</dt>
<dd>
This attribute is of type H5T_C_S1, with size 4, 5, or 6.</dd>
<dd>
Possible values for this are "RGB", "YUV", "CMY", "CMYK", "YCbCr", "HSV".</dd>
<dd>
This defines the color model that the entries in the palette data set represent.</dd>
<dl>
<dt>
"RGB"</dt>
<dd>
Each color index contains a triplet where the the first value defines the
red component, second defines the green component, and the third the blue
component.</dd>
<dt>
"CMY"</dt>
<dd>
Each color index contains a triplet where the the first value defines the
cyan component, second defines the magenta component, and the third the
yellow component.</dd>
<dt>
"CMYK"</dt>
<dd>
Each color index contains a quadruplet where the the first value defines
the cyan component, second defines the magenta component, the third the
yellow component, and the forth the black component.</dd>
<dt>
"YCbCr"</dt>
<dd>
Class Y encoding model. Each color index contains a triplet where the the
first value defines the luminance, second defines the Cb Chromonance, and
the third the Cr Chromonance.</dd>
<dt>
"YUV"</dt>
<dd>
Composite encoding color model. Each color index contains a triplet where
the the first value defines the luminance component, second defines the
chromonance component, and the third the value component.</dd>
<dt>
"HSV"</dt>
<dd>
Each color index contains a triplet where the the first value defines the
hue component, second defines the saturation component, and the third the
value component. The hue component defines the hue spectrum with a low
value representing magenta/red progressing to a high value which would
represent blue/magenta, passing through yellow, green, cyan. A low value
for the saturation component means less color saturation than a high value.
A low value for <i>value</i> will be darker than a high value.</dd>
</dl>
<dt>
Attribute name="<b>PAL_TYPE</b>"</dt>
<dd>
This attribute is of type H5T_C_S1, with size 10 or 11.</dd>
<br>The current supported values for this attribute are : "STANDARD8" or
"RANGEINDEX"
<p>A PAL_TYPE of "STANDARD8" defines a palette dataset such that the first
entry defines index 0, the second entry defines index 1, etc. up until
the length of the palette - 1. This assumes an image dataset with direct
indexes into the palette.
<p>If the PAL_TYPE is set to "RANGEINDEX", there will be an additional
attribute with a name of "<b>PAL_RANGEINDEX</b>",&nbsp; (See example 2
for more details)
<dt>
Attribute name="<b>PAL_RANGEINDEX</b>"</dt>
<dd>
The <b>PAL_RANGEINDEX</b> attribute contains an HDF object reference pointer
which specifies a range index array in the file to be used for color lookups
for the palette.&nbsp; (Only for PAL_TYPE="RANGEINDEX"</dd>
<dt>
Attribute name="<b>PAL_MINMAXNUMERIC</b>"</dt>
<dl>
<dt>
If present, this attribute is an array of two numbers, of the same HDF5
datatype as the palette elements or color numerics.</dt>
<br>They specify the minimum and maximum values of the color numeric components.
For example, if the palette was an RGB of type Float, the color numeric
range for Red, Green, and Blue could be set to be between 0.0 and 1.0.
The intensity of the color guns would then be scaled accordingly to be
between this minimum and maximum attribute.</dl>
Attribute name="<b>PAL_VERSION</b>"
<dl>This attribute is of type H5T_C_S1, with size corresponding to the
length of the version string.&nbsp; This attribute identifies the version
number of this specification to which it conforms.&nbsp; The initial version
number is "1.0".</dl>
<center><table BORDER=2 BGCOLOR="#FFFFFF" >
<caption><b>Attributes of a Palette Dataset</b></caption>
<tr>
<td><b>Attribute Name</b></td>
<td></td>
<td><b>Type</b></td>
<td><b>Value</b></td>
</tr>
<tr>
<td>CLASS</td>
<td>R</td>
<td>String</td>
<td>"PALETTE"</td>
</tr>
<tr>
<td>PAL_COLORMODEL</td>
<td>R</td>
<td>String</td>
<td>Color Model:&nbsp; "RGB", YUV", "CMY", "CMYK", "YCbCr", or "HSV"</td>
</tr>
<tr>
<td>PAL_TYPE</td>
<td>R</td>
<td>String</td>
<td>"STANDARD8" or "RANGEINDEX"</td>
</tr>
<tr>
<td>RANGE_INDEX</td>
<td>R<sup>1</sup></td>
<td>Object Reference&nbsp;</td>
<td>&lt;Object Reference to Dataset of range index values></td>
</tr>
<tr>
<td>PAL_MINMAXNUMERIC</td>
<td>O</td>
<td>Array[2] of &lt;same datatype as palette></td>
<td>The first value is the &lt;Minimum value for color values>, the second
value is &lt;Maximum value for color values><sup>2</sup></td>
</tr>
<tr>
<td>PAL_VERSION</td>
<td>R</td>
<td>String</td>
<td>&lt;specification version number></td>
</tr>
</table></center>
<dl><font size=-1>1.&nbsp; The RANGE_INDEX attribute is required if the
PAL_TYPE is "RANGEINDEX".&nbsp; Otherwise, the RANGE_INDEX attribute should
be omitted.</font>
<br><font size=-1>2.&nbsp; The minimum and maximum are optional.&nbsp;
If not set, the range is assumed to the maximum range of the number type.&nbsp;
If one of these attributes is set, then both should be set.&nbsp; The value
of the minumum must be less than or equal to the value of the maximum.</font></dl>
</dl>
<h3>
2.3. Storage Layout for Palettes</h3>
The values of the Palette are stored as a dataset.&nbsp; The datatype can
be any HDF 5 atomic numeric type.&nbsp; The dataset will have dimensions
(<tt>nentries</tt>&nbsp; by&nbsp; <tt>ncomponents</tt>), where '<tt>nentries</tt>'
is the number of colors (usually 256) and '<tt>ncomponents'</tt> is the
number of values per color (3 for <b>RGB</b>, 4 for <b>CMYK</b>, etc.)
<br>&nbsp;
<h2>
3.&nbsp; Consistency and Correlation of Image and Palette Attributes</h2>
The objects in this specification are an extension to the base HDF5 specification
and library.&nbsp; They are accessible with the standard HDF5 library,
but the semantics of the objects are not enforced by the base library.&nbsp;
For example, it is perfectly possible to add an attribute called <b>IMAGE</b>
to <i>any</i> dataset, or to include an object reference to <i>any</i>
HDF5 dataset as a "palette" in a <b>PALETTE</b> attribute.&nbsp; this would
be a perfectly valid HDF5 file, but not conformant to this specification.&nbsp;
The rules defined in this specification must be implemented with appropriate
software, and applications must use conforming software to assure correctness.
<p>The Image and Palette specifications include several mutually redundant
standard attributes, such as the <b>IMAGE_COLORMODEL</b> and the <b>PAL_COLORMODEL</b>.&nbsp;
These attributes are informative not normative, in that it is acceptable
to attach a Palette to an Image dataset even if their attributes do not
match.&nbsp; Software is not required to enforce consistency, and files
may contain mismatched associations of Images and Palettes.&nbsp; In all
cases, it is up to applications to determine what kinds of images and color
models can be supported.
<p>For example, an Image that was created from a file with an "RGB" may
have a "YUV" Palette in its <b>PALETTE</b> attribute array.&nbsp; This
would be a legal HDF5 file and also a conforms to this specification, although
it may or may not be correct or useable for a given application.
<p>
<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="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
Return to the
<a href="ADGuide.html">HDF5 Application Developer's Guide</a>&nbsp;<br>
</td></tr>
</table>
</center>
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
<!-- Created: Spring 1999 -->
<!-- hhmts start -->
Last modified: 22 May 2000
<!-- hhmts end -->
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

56
doc/html/Makefile.in Normal file
View File

@@ -0,0 +1,56 @@
# HDF5 Library Makefile(.in)
#
# Copyright (C) 1997 National Center for Supercomputing Applications.
# All rights reserved.
#
#
top_srcdir=@top_srcdir@
top_builddir=../..
srcdir=@srcdir@
VPATH=.:@srcdir@
@COMMENCE@
# Subdirectories in build-order (not including `examples')
SUBDIRS=Tutor
DOCDIR=$(docdir)/hdf5
TRACE=perl $(top_srcdir)/bin/trace
# Add `-I.' to the C preprocessor flags.
CPPFLAGS=-I. -I@srcdir@ @CPPFLAGS@
# Temporary files
MOSTLYCLEAN=
# Public doc files (to be installed)...
PUB_DOCS= Attributes.html Big.html Caching.html Chunking.html Chunk_f1.gif \
Chunk_f2.gif Chunk_f3.gif Chunk_f4.gif Chunk_f5.gif Chunk_f6.gif \
Coding.html Copyright.html Datasets.html Dataspaces.html \
Datatypes.html ddl.html Debugging.html EnumMap.gif Environment.html \
Errors.html FF-IH_FileGroup.gif FF-IH_FileObject.gif Files.html \
Filters.html FF-IH_FileGroup.gif FF-IH_FileObject.gif Glossary.html \
Groups.html H5.api_map.html H5.format.html H5.intro.html \
H5.sample_code.html H5.user.html \
IH_map1.gif IH_map2.gif IH_map3.gif IH_map4.gif \
IH_mapFoot.gif IH_mapHead.gif IOPipe.html MountingFiles.html \
NCSAfooterlogo.gif PaletteExample1.gif Palettes.fm.anc.gif \
Palettes.html Performance.html Properties.html Ragged.html \
References.html RM_H5.html \
RM_H5A.html RM_H5D.html RM_H5E.html RM_H5F.html RM_H5Front.html \
RM_H5G.html RM_H5I.html RM_H5P.html RM_H5R.html RM_H5RA.html \
RM_H5S.html RM_H5T.html RM_H5Z.html Tools.html Version.html chunk1.gif \
compat.html dataset_p1.gif dataset_p1.obj extern1.gif extern2.gif \
group_p1.gif group_p2.gif group_p3.gif h5s.examples hdf2.jpg \
ph5design.html ph5example.c ph5implement.txt pipe1.gif pipe2.gif \
pipe3.gif pipe4.gif pipe5.gif index.html version.gif
# Other doc files (not to be installed)...
PRIVATE_DOCS= Chunk_f1.obj Chunk_f2.obj Chunk_f6.obj CodeReview.html \
ExternalFiles.html H5.user.PrintGen.html H5.user.PrintTpg.html \
MemoryManagement.html ObjectHeader.txt chunk1.obj \
extern1.obj extern2.obj group_p1.obj group_p2.obj group_p3.obj \
pipe1.obj pipe2.obj pipe3.obj pipe4.obj pipe5.obj heap.txt move.html \
review1.html review1a.html storage.html symtab version.obj \
Lib_Maint.html
@CONCLUDE@

417
doc/html/MountingFiles.html Normal file
View File

@@ -0,0 +1,417 @@
<html>
<head>
<title>Mounting Files</title>
</head>
<body bgcolor="#FFFFFF">
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
Mounting Files&nbsp;&nbsp;
<br>
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
</td></tr>
</table>
</center>
<hr>
<h1>Mounting Files</h1>
<h2>Purpose</h2>
<p>This document contrasts two methods for mounting an hdf5 file
on another hdf5 file: the case where the relationship between
files is a tree and the case where it's a graph. The tree case
simplifies current working group functions and allows symbolic
links to point into ancestor files whereas the graph case is
more consistent with the organization of groups within a
particular file.
<h2>Definitions</h2>
<p>If file <code>child</code> is mounted on file
<code>parent</code> at group <code>/mnt</code> in
<code>parent</code> then the contents of the root group of
<code>child</code> will appear in the group <code>/mnt</code> of
<code>parent</code>. The group <code>/mnt</code> is called the
<em>mount point</em> of the child in the parent.
<h2>Common Features</h2>
<p>These features are common to both mounting schemes.
<ul>
<li>The previous contents of <code>/mnt</code> in
<code>parent</code> is temporarily hidden. If objects in that
group had names from other groups then the objects will still
be visible by those other names.
<li>The mount point is actually an OID (not a name) so if there
are other names besides <code>/mnt</code> for that group then
the root group of the child will be visible in all those
names.
<li>At most one file can be mounted per mount point but a parent
can have any number of mounted children.
<li>Name lookups will entail a search through the mount table at
each stage of the lookup. The search will be O(log
<em>N</em>) where <em>N</em> is the number of children mounted
on that file.
<li>Files open for read-only can be mounted on other files that
are open for read-only. Mounting a file in no way changes the
contents of the file.
<li>Mounting a child may hide mount points that exist below the
child's mount point, but it does not otherwise affect mounted
files.
<li>Hard links cannot cross file boundaries. An object cannot
be moved or renamed with <code>H5Gmove()</code> in such a way
that the new location would be in a different file than the
original location.
<li>The child can be accessed in a manner different from the
parent. For instance, a read-write child in a read-only
parent, a parallel child in a serial parent, <em>etc</em>.
<li>If some object in the child is open and the child is
unmounted and/or closed, the object will remain open and
accessible until explicitly closed. As in the mountless case,
the underlying UNIX file will be held open until all member
objects are closed.
<li>Current working groups that point into a child will remain
open and usable even after the child has been unmounted and/or
closed.
<li>Datasets that share a committed datatype must reside in the
same file as the datatype.
</ul>
<h2>Contrasting Features</h2>
<center>
<table border width="90%">
<tr>
<th width="50%">Tree</th>
<th width="50%">Graph</th>
</tr>
<tr valign=top>
<td>The set of mount-related files makes a tree.</td>
<td>The set of mount-related files makes a directed
graph.</td>
</tr>
<tr valign=top>
<td>A file can be mounted at only one mount point.</td>
<td>A file can be mounted at any number of mount points.</td>
</tr>
<tr valign=top>
<td>Symbolic links in the child that have a link value which
is an absolute name can be interpreted with respect to the
root group of either the child or the root of the mount
tree, a property which is determined when the child is
mounted.</td>
<td>Symbolic links in the child that have a link value which
is an absolute name are interpreted with respect to the
root group of the child.</td>
</tr>
<tr valign=top>
<td>Closing a child causes it to be unmounted from the
parent.</td>
<td>Closing a child has no effect on its relationship with
the parent. One can continue to access the child contents
through the parent.</td>
</tr>
<tr valign=top>
<td>Closing the parent recursively unmounts and closes all
mounted children.</td>
<td>Closing the parent unmounts all children but
does not close them or unmount their children.</td>
</tr>
<tr valign=top>
<td>The current working group functions
<code>H5Gset()</code>, <code>H5Gpush()</code>, and
<code>H5Gpop()</code> operate on the root of the mount
tree.</td>
<td>The current working group functions operate on the file
specified by their first argument.</td>
</tr>
<tr valign=top>
<td>Absolute name lookups (like for <code>H5Dopen()</code>)
are always performed with respect to the root of the mount
tree.</td>
<td>Absolute name lookups are performed with respect to the
file specified by the first argument.</td>
</tr>
<tr valign=top>
<td>Relative name lookups (like for <code>H5Dopen()</code>)
are always performed with respect to the specified group
or the current working group of the root of the mount
tree.</td>
<td>Relative name lookups are always performed with respect
to the specified group or the current working group of the
file specified by the first argument.</td>
</tr>
<tr valign=top>
<td>Mounting a child temporarily hides the current working
group stack for that child</td>
<td>Mounting a child has no effect on its current working
group stack.</td>
</tr>
<tr valign=top>
<td>Calling <code>H5Fflush()</code> will flush all files of
the mount tree regardless of which file is specified as
the argument.</td>
<td>Calling <code>H5Fflush()</code> will flush only the
specified file.</td>
</tr>
</table>
</center>
<h2>Functions</h2>
<dl>
<dt><code>herr_t H5Fmount(hid_t <em>loc</em>, const char
*<em>name</em>, hid_t <em>child</em>, hid_t
<em>plist</em>)</code>
<dd>The file <em>child</em> is mounted at the specified location
in the parent. The <em>loc</em> and <em>name</em> specify the
mount point, a group in the parent. The <em>plist</em>
argument is an optional mount property list. The call will
fail if some file is already mounted on the specified group.
<table border>
<tr>
<th width="50%">Tree</th>
<th width="50%">Graph</th>
</tr>
<tr valign=top>
<td>The call will fail if the child is already mounted
elsewhere.</td>
<td>A child can be mounted at numerous mount points.</td>
</tr>
<tr valign=top>
<td>The call will fail if the child is an ancestor of the
parent.</td>
<td>The mount graph is allowed to have cycles.</td>
</tr>
<tr valign=top>
<td>Subsequently closing the child will cause it to be
unmounted from the parent.</td>
<td>Closing the child has no effect on its mount
relationship with the parent.</td>
</tr>
</table>
<br><br>
<dt><code>herr_t H5Funmount(hid_t <em>loc</em>, const char
*<em>name</em>)</code>
<dd>Any file mounted at the group specified by <em>loc</em> and
<em>name</em> is unmounted. The child is not closed. This
function fails if no child is mounted at the specified point.
<br><br>
<dt><code>hid_t H5Pcreate(H5P_MOUNT)</code>
<dd>Creates and returns a new mount property list initialized
with default values.
<br><br>
<dt><code>herr_t H5Pset_symlink_locality(hid_t <em>plist</em>,
H5G_symlink_t <em>locality</em>)</code>
<dt><code>herr_t H5Pget_symlink_locality(hid_t <em>plist</em>,
H5G_symlink_t *<em>locality</em>)</code>
<dd>These functions exist only for the tree scheme. They set or
query the property that determines whether symbolic links with
absolute name value in the child are looked up with respect to
the child or to the mount root. The possible values are
<code>H5G_SYMLINK_LOCAL</code> or
<code>H5G_SYMLINK_GLOBAL</code> (the default).
<br><br>
<dt><code>hid_t H5Freopen(hid_t <em>file</em>)</code>
<dd>A file handle is reopened, creating an additional file
handle. The new file handle refers to the same file but has an
empty current working group stack.
<table border>
<tr>
<th width="50%">Tree</th>
<th width="50%">Graph</th>
</tr>
<tr valign=top>
<td>The new handle is not mounted but the old handle
continues to be mounted.</td>
<td>The new handle is mounted at the same location(s) as
the original handle.</td>
</tr>
</table>
</dl>
<h2>Example</h2>
<p>A file <code>eos.h5</code> contains data which is constant for
all problems. The output of a particular physics application is
dumped into <code>data1.h5</code> and <code>data2.h5</code> and
the physics expects various constants from <code>eos.h5</code>
in the <code>eos</code> group of the two data files. Instead of
copying the contents of <code>eos.h5</code> into every physics
output file we simply mount <code>eos.h5</code> as a read-only
child of <code>data1.h5</code> and <code>data2.h5</code>.
<center>
<table border width="90%">
<tr><td><h3>Tree</h3><code><pre>
/* Create data1.h5 */
data1 = H5Fcreate("data1.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
H5Gclose(H5Gcreate(data1, "/eos", 0));
H5Gset_comment(data1, "/eos", "EOS mount point");
/* Create data2.h5 */
data2 = H5Fcreate("data2.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
H5Gclose(H5Gcreate(data2, "/eos", 0));
H5Gset_comment(data2, "/eos", "EOS mount point");
/* Open eos.h5 and mount it in both files */
eos1 = H5Fopen("eos.h5", H5F_ACC_RDONLY, H5P_DEFAULT);
H5Fmount(data1, "/eos", eos1, H5P_DEFAULT);
eos2 = H5Freopen(eos1);
H5Fmount(data2, "/eos", eos2, H5P_DEFAULT);
... physics output ...
H5Fclose(data1);
H5Fclose(data2);
</pre></code></td></tr>
<tr><td><h3>Graph</h3><code><pre>
/* Create data1.h5 */
data1 = H5Fcreate("data1.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
H5Gclose(H5Gcreate(data1, "/eos", 0));
H5Gset_comment(data1, "/eos", "EOS mount point");
/* Create data2.h5 */
data2 = H5Fcreate("data2.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
H5Gclose(H5Gcreate(data2, "/eos", 0));
H5Gset_comment(data2, "/eos", "EOS mount point");
/* Open eos.h5 and mount it in both files */
eos = H5Fopen("eos.h5", H5F_ACC_RDONLY, H5P_DEFAULT);
H5Fmount(data1, "/eos", eos, H5P_DEFAULT);
H5Fmount(data2, "/eos", eos, H5P_DEFAULT);
H5Fclose(eos);
... physics output ...
H5Fclose(data1);
H5Fclose(data2);
</pre></code></td></tr>
</table>
</center>
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
Mounting Files&nbsp;&nbsp;
<br>
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
</td></tr>
</table>
</center>
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
<!-- Created: Spring 1999 -->
<!-- hhmts start -->
Last modified: 14 October 1999
<!-- hhmts end -->
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

Binary file not shown.

View File

@@ -0,0 +1,332 @@
<html>
<head>
<title>
HDF5 - PDF and PostScript Documents
</title>
</head>
<BODY BGCOLOR="#ffffff">
<hr>
<center>
<table cellspacing=0 cellpadding=0 border=0 width=98%>
<tr><td valign=top align=left>
<a href="../index.html">HDF5 Document Index and HDF Links</a>&nbsp;<br>
<a href="../H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="../Tutor/index.html">HDF5 Tutorial</a>&nbsp;<br>
</td>
<td valign=top align=right>
<a href="../H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="../RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="../Glossary.html">HDF5 Glossary</a><br>
</td></tr>
</table>
</center>
<hr>
<center>
<br>
<h1><img src="../hdf2.jpg" alt="HDF Logo" align=left>HDF5 Release 1.2 Documentation<br>
PDF and PostScript Versions</H1>
</center>
<hr>
<font color=blue>
This page provides links to PDF and PostScript versions of the
HDF documentation set. These versions, derived from the
original HTML documents, are intended to provide the following
features:
<ul>
<li>A copy that can be reasonably printed in a single print operation.
<li>An easily searchable copy. (The PDF files can be searched using
the Adobe Acrobat Reader with Search, Version 3.1 or later. See
<a href="http://www.adobe.com/products/acrobat/readstep.html"
target="ADOBE">Adobe's website</a>.)
</ul>
<p>
Note that these versions were created in response to user feedback;
the HDF Group is eager to hear from HDF and HDF5 users so that we
can better meet our users' needs. Send comments, requests, and
bug reports to the HDF Help Desk at
<a href="mailto:hdfhelp@ncsa.uiuc.edu">hdfhelp@ncsa.uiuc.edu.</a>
</font>
<!-- Comment out first table for use on HDF5 Doc Dev website. -->
<p>
<hr>
<CENTER>
<table border=0 bgcolor="#BBFFFF" width=80%>
<tr valign=top align=left><td>
A combined document, including
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<cite>Introduction to HDF5</cite>,
<cite>HDF5 Tutorial</cite>,
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<cite>User's Guide for HDF5</cite> and
<cite>HDF5 Reference Manual</cite>,
<br>
is available locally in PDF format.
</td><td>
<a href="H5-Rx.x.DocSet.pdf">PDF</a>
</td></tr>
<tr valign=top align=left><td colspan=2>
<hr>
Individual files for each document, in both PDF and PS formats,
are available from the
<A HREF="http://hdf.ncsa.uiuc.edu/HDF5/doc_dev_snapshot/index.html"
target="DocDev">HDF5 Doc Development</A> site.
</td></tr>
</table>
</CENTER>
<!-- Comment out second table for release and distribution. -->
<!--
<hr>
<CENTER>
<table border=0 bgcolor="#BBFFFF" width=80%>
<tr valign=top align=left><td>
Introduction to HDF5
</td><td>
<a href="H5-R12.Intro.pdf">PDF</a>
</td><td>
<a href="H5-R12.Intro.ps">PS</a>
</td></tr>
<tr><td>
HDF5 Tutorial
</td><td>
<a href="H5-R12.Tutor.pdf">PDF</a>
</td><td>
<a href="H5-R12.Tutor.ps">PS</a>
</td></tr>
<tr><td>
A User's Guide for HDF5
</td><td>
<a href="H5-R12.UG.pdf">PDF</a>
</td><td>
<a href="H5-R12.UG.ps">PS</a>
</td></tr>
<tr><td>
HDF5 Reference Manual
</td><td>
<a href="H5-R12.RM.pdf">PDF</a>
</td><td>
<a href="H5-R12.RM.ps">PS</a>
</td></tr>
<tr><td>
<i>All of the above in a single file</i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</td><td>
<a href="H5-R12.DocSet.pdf">PDF</a> &nbsp;&nbsp;
</td><td>
<a href="H5-R12.DocSet.ps">PS</a> &nbsp;&nbsp;
</td></tr>
<tr><td colspan=3 align=right>
<font size=-1>
<i>(Last update of linked documents: 15 November 1999)</i>
</font>
</td></tr>
</table>
</CENTER>
-->
<hr>
<p>
The PS and PDF formatted documents presented here are from Release 1.2.
Several small but important changes (see below) were made for Release 1.2.1
and Release 1.2.2
and are included in the HTML document set that is distributed with the HDF5
software and is available from the <a href="../index.html">HDF5 documents
index</a>.
<p>
<h3>Significant Changes in Release 1.2.1 and Release 1.2.2 Document Sets</h3>
This section lists the changes in the HDF5 documents, from Release 1.2
to Release 1.2.1 and Release 1.2.2, that affect technical understanding.
Minor grammatical and formatting changes are not included.
None of these changes below are reflected in the PS and PDF versions
referenced above.
<dl>
<dt><b>New documents:</b>:
<dt><cite>HDF5 Application Developer's Guide</cite>, which includes the following:
<dd><cite>HDF5 Image and Palette Specification</cite>
<dd><cite>HDF5 File XML DTD: Design Notes</cite> and
a link to the HDF5 file XML DTD
<dd><cite>Mapping HDF4 Objects to HDF5 Objects</cite>
<dt><cite>HDF5 Technical Notes</cite>
<dd>An informal but highly technical document intended for
HDF5 library developers.
<br><br>
<dt><b>General change:</b>
<dd>Changed references to the HDF5 file's &nbsp;<i>boot block</i> to
refer to the &nbsp;<i>super block</i>.
<br><br>
<dt><b>In the <cite>HDF5 Reference Manual:</cite></b>
<dt>H5 -- General Library Functions
<dd><code>H5garbage_collect</code>:
New function.
<dt>H5A -- Attributes Interface
<dd><code>H5Acreate</code>:
Restructured and expanded the description section,
with particular attention to the fact that the attribute name
specified in <code>H5Acreate</code> must be unique.
<dd><code>H5Aiterate</code>:
Corrected function return type to <code>herr_t</code>.
<dt>H5D -- Dataset Interface
<dd><code>H5Dcreate</code>:
Added paragraph explaining that <em>name</em> must be unique.
<dd><code>H5Dopen</code>:
Corrected description of <em>loc_id</em> parameter.
<dd><code>H5Dclose</code>:
Corrected return type to <code>herr_t</code>.
<dd><code>H5Dcreate</code>:
Inserted missing spaces in function syntax statement.
<dt>H5E -- Error Interface
<dd><code>H5Ewalk</code>:
Added <code>H5E_walk_t</code> prototype and prototype parameter
descriptions.
<dt>H5F -- File Interface
<dd><code>H5Fclose</code>:
Corrected behavior description.
<dd><code>H5Fcreate</code> and <code> H5Fopen</code>:
Clarified description of file access flags in parameters section.
<dd><code>H5Freopen</code>:
Corrected description of <code>file_id</code> parameter.
Added comment about eventually closing returned identifier.
Added clarification that function cannot open closed files.
<dt>H5G -- Group Interface
<dd><code>H5Giterate</code>: Corrected <em>operator</em> parameter
datatype to <code>H5G_iterate_t</code>.
Made minor corrections to <code>H5G_iterate_t</code> prototype syntax.
Added note that <code>H5Giterate</code> behavior is undefined
if the group structure or membership changes during the iteration.
<dt>H5P -- Property List Interface
<dd><code>H5Pset_mpi</code>:
Corrected purpose section.
<dd><code>H5Pset/get_cache</code>:
Added missing <em>rdcc_nelmts</em> parameter.
Corrected inconsistent references to <em>rdcc_wo</em> parameter.
Clarified purpose and description sections.
<dd><code>H5Pget_sec2</code>:
Corrected return type to <code>herr_t</code>.
<dd><code>H5Pget_chunk</code>:
Changed <em>max_ndims</em> parameter description to IN.
<dd><code>H5Pget/set_gc_references</code>:
Corrected signature errors.
Added missing parameter description and values.
<dd><code>H5Pget/set_family</code>:
These functions were removed; they have not been implemented.
<dd><code>H5Pget/set_hyper_cache</code>:
Corrected signature and parameter expressions.
Added missing parameter description.
<dd><code>H5Pset_buffer</code>:
Added units for parameter <em>size</em>.
<dd><code>H5Pget/set_split</code>:
Corrected misnamed parameters.
<dd><code>H5Pset_alignment</code> and <code>H5Pset_core</code>:
Added statement regarding "special case" effect of
setting <em>threshold</em> to <code>0</code> (zero).
Added clarification that <em>threshold</em> is non-negative and
<em>alignment</em> and <em>increment</em> are both positive.
<dd><code>H5Pget/set_vlen_mem_manager</code>:
Corrected cross-reference to <code>H5Dvlen_reclaim</code>.
Clarified circumstances under which the contents of a parameter
are ignored.
<dt>H5S -- Dataspace Interface
<dd><code>H5Sget_simple_extent_dims</code>:
Added statement that either or both of <em>dims</em>
and <em>maxdims</em> may be <code>NULL</code>.
<dt>H5T-- Datatype Interface
<dd><code>H5Tconvert</code>:
Added missing <em>plist_id</em> parameter.
<dd><code>H5Tget_class</code>:
Added <code>H5T_VLEN</code> to class identifiers list.
Corrected <code>H5T_ENUM</code> and <code>H5T_REFERENCE</code>
entries in class identifiers table (they were reversed).
<dd><code>H5Tget/set_fields</code>:
Added missing <em>spos</em> parameter.
<dd><code>H5Tregister</code>:
Corrected possible <em>pers</em> values to <code>H5T_PERS_HARD</code>
(was <code>HARD</code>) and <code>H5T_PERS_SOFT</code>
(was <code>SOFT</code>).
<dd><code>H5Tfind</code>:
Corrected <em>pcdata</em> parameter IN/OUT designation.
<dt>HDF5 Tools
<dd><code>h5dump</code>:
Added <code>-V</code> option, which displays version information.
<br><br>
<dt><b>In the <cite>HDF5 User's Guide</cite>:</b>
<dt>The Dataset Interface (H5D)
<dd>Removed <code>H5Pset_compression</code> and changed the example
which used it to use <code>H5Pset_deflate</code>.
<dt>The Datatype Interface (H5T)
<dd><code>H5Tconvert</code>:
Added <em>plist_id</em> parameter where this function is used in
code examples.
<dd>Reviewed confusing references to <cite>simple datatypes</cite>;
where the intended meaning is <cite>atomic datatypes</cite>,
that term is now used.
<dt>The Attribute Interface (H5A)
<dd><code>H5Aiterate</code>:
Corrected function return type to <code>herr_t</code>.
<dt>Filters in HDF5
<dd>Added reference in Section 4 to the <code>zlib</code> website.
<dt>Palette Specification
<dd>This specification was moved to
<cite>HDF5 Image and Palette Specification</cite> in the
<cite>HDF5 Application Developer's Guide</cite>.
<br><br>
<dt><b>In the <cite>Introduction to HDF5</cite>:</b>
<dd>Reviewed confusing references to <cite>simple datatypes</cite>;
where the intended meaning is <cite>atomic datatypes</cite>,
that term is now used.
</dl>
<!-- BEGIN FOOTER INFO -->
<P><hr>
<font face="arial,helvetica" size="-1">
<a href="http://www.ncsa.uiuc.edu/">
<img border=0 src="../NCSAfooterlogo.gif" width=78 height=27 alt="NCSA Logo"><br>
The National Center for Supercomputing Applications</A><br>
<a href="http://www.uiuc.edu/">University of Illinois
at Urbana-Champaign</a>
<p>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<!-- hhmts start -->
<br>
Last modified: 8 June 2000
<!-- hhmts end -->
<br>
Describes HDF5 Release 1.2.2, June 2000
</font>
</body>
</html>

View File

@@ -0,0 +1,130 @@
========================================================================
Process for Creating PDF/PS Versions of HDF5 docs from HTML Source Files
========================================================================
Last modified: 19 Nov 1999
The PDF/PS versions of the HDF5 docs are created from scratch at each
release from the primary version of the documentation which is
maintained in HTML. (Assuming, of course, that we continue to produce
PDF/PS versions.)
1 Using MS Word (Framemaker might work even better, but I have not
tried it yet), open a master file that will serve as the repository
for gathering the document set. This file will contain all of the
documents to be converted to PDF/PS.
2 Start the file off with the DocSet frontmatter.
3 Open each HTML file and copy it, placing it in proper order, into the
repository file.
3a Insert Glossary. (For R1.2, it was appended to UG and to RM.
Alternatively, it could be inserted as a separate document.)
3b Insert Copyright page after each title page, including after
DocSet title page.
4 Adjust the Styles so that type faces and font sizes are appropriate.
(I used 10 pt New Times Roman with 9 and 10 pt supplementary fonts
in Release 1.2. I am considering Garamond or New Century Schoolbook
for the next release.)
5 Create a trial PDF to make sure all of the images have been imported.
4a Print the compiled document, selecting "Print to file".
4b Change the .prn suffix on the output file to .ps.
4c Convert that PostScript file to PDF with Distiller.
6 Scan the output PDF file for images. (A visual test of the compiled
MS Word file online is insufficient as an image's presence on the
screen does not guarantee its presence in the PDF file.)
7 If any images are missing, open the appropriate HTML file in Internet
Explorer (Netscape at the time of R1.2, did not provide this 'copy'
capability), right click on the image, select copy, select the
offending image or its placeholder in the MS Word file, and paste
the image in.
8 Repeat 4 and 5, with variations on 6, as necessary.
9 Add headers, footers, and page numbers in the consolidated file.
(NCSA and UIUC on inside of facing footers with page numbers on the
outside, release # and doc title place holder on outside of facing
headers. "Different first page" so that title page can be header
and footer free.
10 Once you are sure that
-- all of the images are securely showing up in the PDF and
-- all of the styles are as you want them,
separate the consolidated file into separate files for each document
and for the DocSet frontmatter.
11 Add section break at the title page and the first page of text for
each document.
12 Set page numbering and finalize headers and footers (h/f).
12a Unset "Different first page" on text section h/f.
12b Set text section page numbering to start at 1.
12c Set frontmatter page numbering to start at i. (R1.2 did not
set page numbering in frontmatter.)
13 Reset headers and footers for each document (from the initial generic
setting).
14 Check hyperlinks.
14a Where reasonable (e.g., not appropriate to leave as internal link
for user instalation), set link as external with full DNS address.
14b Remove internal links; reword as necessary, giving user sufficient
clues to find info in printed docs. (The links themselves do not
survive the Word->PDF translation, so removing a link is generally
as simple as removing the color/underline properties.)
15 Check and adjust pagination throughout.
15a Each chapter (and, in some cases, major sections) begins on an
odd page.
15b Watch for widows and orphans, examples and sections that start
embarrassingly close to the bottom of the page, etc.
15c Add enough blank pages (with no h/f) so that each document is
printed with one completely blank sheet of paper at the back.
16 Insert a TOC into each document as appropriate. (R1.2 went 3 or 4
levels deep, depending on the document.)
17 Change Tutorial "Indes of Examples" to point to directory of Tutorial
examples (instead of individual links). Keep list?
18 Do a visual scan of all docs to ensure that "everything is as it
should be." (Something has probably been left out of this process
description!)
19 Create PDFs of each document and the DocSet frontmatter.
(See above.)
20 Do a visual scan of all PDFs to ensure that "everything is as it
should be."
21 Create a consolidated DocSet file for those who want a single file
containing all of the doucuments.
22 Correct errors and repeat steps as necessary. ;>
23 Create distributable PS files by printing the PDFs "to a file"
from Adobe Acrobat Exchange. (This results in mush smaller PS
files than those generated in the above MS Word -> PS process.)
24 Post and distribute PS and PDF copies of
-- each document and
-- the consolidated set.

BIN
doc/html/PaletteExample1.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
doc/html/Palettes.fm.anc.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

160
doc/html/Performance.html Normal file
View File

@@ -0,0 +1,160 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Performance</title>
</head>
<body bgcolor="#FFFFFF">
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
Performance&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
</td></tr>
</table>
</center>
<hr>
<h1>Performance Analysis and Issues</h1>
<h2>1. Introduction</h2>
<p>This section includes brief discussions of performance issues
in HDF5 and performance analysis tools for HDF5 or pointers to
such discussions.
<h2>2. Dataset Chunking</h2>
Appropriate dataset chunking can make a siginificant difference
in HDF5 performance. This topic is discussed in
<a href="Chunking.html">Dataset Chunking Issues</a> elsewhere
in this <cite>User's Guide</cite>.
<h2>3. Use of the Pablo Instrumentation of HDF5</h2>
Pablo HDF5 Trace software provides a means of measuring the
performance of programs using HDF5.
<p>The Pablo software consists
of an instrumented copy of the HDF5 library, the Pablo Trace and
Trace Extensions libraries, and some utilities for processing the
output. The instrumented version of the HDF5 library has hooks
inserted into the HDF5 code which call routines in the Pablo Trace
library just after entry to each instrumented HDF5 routine and
just prior to exit from the routine. The Pablo Trace Extension
library has programs that track the I/O activity between the
entry and exit of the HDF5 routine during execution.
<p>A few lines of code must be inserted in the user's main program
to enable tracing and to specify which HDF5 procedures are to be
traced. The program is linked with the special HDF5 and Pablo
libraries to produce an executable. Running this executable on
a single processor produces an output file called the trace file
which contains records, called Pablo Self-Defining Data Format
(SDDF) records, which can later be analyzed using the
HDF5 Analysis Utilities. The HDF5 Analysis Utilites can be used
to interpret the SDDF records in the trace files to produce a
report describing the HDF5 IO activity that occurred during
execution.
<p>For further instructions, see the file <code>READ_ME</code>
in the <code> $(toplevel)/hdf5/pablo/ </code> subdirectory of
the HDF5 source code distribution.
<p>For further information about Pablo and the
Self-Defining Data Format, visit the Pablo website at
<code><a href="http://www-pablo.cs.uiuc.edu/">http://www-pablo.cs.uiuc.edu/</a></code>.
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
Performance&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
</td></tr>
</table>
</center>
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
<!-- Created: Thu Oct 14 16:46:00 CDT 1999 -->
<!-- hhmts start -->
Last modified: 14 October 1999
<!-- hhmts end -->
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -11,56 +11,39 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
Property Lists&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -137,79 +120,56 @@ And in this document, the
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
Property Lists&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
<address><a href="mailto:koziol@ncsa.uiuc.edu">Quincey Koziol</a></address>
-->
<!-- Created: Tue Feb 10 17:06:58 PST 1998 -->
<!-- hhmts start -->
<!--
Last modified: Tue Feb 10 17:26:41 PST 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
<!-- Created: Tue Feb 10 17:06:58 PST 1998 -->
<!-- hhmts start -->
Last modified: 14 October 1999
<!-- hhmts end -->
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -10,9 +10,9 @@ HDF5/H5 API Specification
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -62,6 +62,7 @@ and it users.
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
<li><a href="#Library-GarbageCollect">H5garbage_collect</a>
<li><a href="#Library-DontAtExit">H5dont_atexit</a>
</ul>
</td></tr>
@@ -114,6 +115,37 @@ and it users.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Library-GarbageCollect">H5garbage_collect</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5garbage_collect</code>(<em>void</em>)
<dt><strong>Purpose:</strong>
<dd>Garbage collects on all free-lists of all types.
<dt><strong>Description:</strong>
<dd><code>H5garbage_collect</code> walks through all the garbage
collection routines of the library, freeing any unused memory.
<p>
It is not required that <code>H5garbage_collect</code> be called
at any particular time; it is only necessary in certain situations
where the application has performed actions that cause the library
to allocate many objects. The application should call
<code>H5garbage_collect</code> if it eventually releases those
objects and wants to reduce the memory used by the library from
the peak usage required.
<p>
The library automatically garbage collects all the free lists
when the application ends.
<dt><strong>Parameters:</strong>
<dl>
<dt>None.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Library-DontAtExit">H5dont_atexit</a>
@@ -162,11 +194,11 @@ and it users.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>unsigned *</em><code>majnum</code>
<dd>The major version of the library.
<dd>OUT: The major version of the library.
<dt><em>unsigned *</em><code>minnum</code>
<dd>The minor version of the library.
<dd>OUT: The minor version of the library.
<dt><em>unsigned *</em><code>relnum</code>
<dd>The release number of the library.
<dd>OUT: The release number of the library.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
@@ -187,22 +219,25 @@ and it users.
<dt><strong>Description:</strong>
<dd><code>H5check_version</code> verifies that the arguments match the
version numbers compiled into the library. This function is intended
to be called from user to verify that the versions of header files
compiled into the application match the version of the HDF5 library.
to be called by the user to verify that the version of the header files
compiled into the application matches the version of the HDF5 library
being used.
<p>
Due to the risks of data corruption or segmentation faults,
<code>H5check_version</code> causes the application to abort if the
version numbers do not match.
<p>
If the version numbers of the library do not match
the version numbers in the header files being checked, the library calls the
standard C function <code>abort()</code>.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>unsigned *</em><code>majnum</code>
<dd>The major version of the library.
<dt><em>unsigned *</em><code>minnum</code>
<dd>The minor version of the library.
<dt><em>unsigned *</em><code>relnum</code>
<dd>The release number of the library.
<dt><em>unsigned *</em><code>patnum</code>
<dd>The patch number of the library.
<dt><em>unsigned </em><code>majnum</code>
<dd>IN: The major version of the library.
<dt><em>unsigned </em><code>minnum</code>
<dd>IN: The minor version of the library.
<dt><em>unsigned </em><code>relnum</code>
<dd>IN: The release number of the library.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful.
@@ -214,9 +249,9 @@ and it users.
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -248,9 +283,11 @@ H5&nbsp;&nbsp;
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 2 June 2000
<br>
Last modified: 30 October 1998
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -10,9 +10,9 @@ HDF5/H5A API Specification
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -108,22 +108,28 @@ See <a href="Attributes.html"><cite>Attributes</cite></a> in the
<dd>Creates a dataset as an attribute of another group, dataset,
or named datatype.
<dt><strong>Description:</strong>
<dd><code>H5Acreate</code> creates an attribute which is attached
to the object specified with <code>loc_id</code>.
<code>loc_id</code> is an identifier of a group, dataset,
or named datatype. The name specified with <code>name</code>
for each attribute for an object must be unique for that object.
<dd><code>H5Acreate</code> creates an attribute named <code>name</code>
and attached to the object specified with <code>loc_id</code>.
<code>loc_id</code> is a group, dataset, or named datatype identifier.
<p>
The attribute name specified in <code>name</code> must be unique.
Attempting to create an attribute with the same name as an already
existing attribute will fail, leaving the pre-existing attribute
in place. To overwrite an existing attribute with a new attribute
of the same name, first call <code>H5Adelete</code> then recreate
the attribute with <code>H5Acreate</code>.
<p>
The datatype and dataspace identifiers of the attribute,
<code>type_id</code> and <code>space_id</code>, respectively,
are created with the H5T and H5S interfaces, respectively.
Currently only simple dataspaces are allowed for attribute
dataspaces. The <code>create_plist_id</code> property list
is currently unused, but will be used int the future for optional
properties of attributes. The attribute identifier returned from
this function must be released with <code>H5Aclose</code> or
resource leaks will develop. Attempting to create an attribute
with the same name as an already existing attribute will fail,
leaving the pre-existing attribute in place.
<p>
Currently only simple dataspaces are allowed for attribute dataspaces.
<p>
The <code>create_plist_id</code> property list is currently unused;
it will be used in the future for optional attribute properties.
<p>
The attribute identifier returned from this function must be released
with <code>H5Aclose</code> or resource leaks will develop.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>loc_id</code>
@@ -276,7 +282,7 @@ See <a href="Attributes.html"><cite>Attributes</cite></a> in the
<dt><em>hid_t</em> <code>mem_type_id</code>
<dd>IN: Identifier of the attribute datatype (in memory).
<dt><em>void *</em><code>buf</code>
<dd>IN: Buffer for data to be read.
<dd>OUT: Buffer for data to be read.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
@@ -340,7 +346,7 @@ See <a href="Attributes.html"><cite>Attributes</cite></a> in the
<dl>
<dt><strong>Name:</strong> <a name="Annot-GetName">H5Aget_name</a>
<dt><strong>Signature:</strong>
<dd><em>hssize_t</em> <code>H5Aget_name</code>(<em>hid_t</em> <code>attr_id</code>,
<dd><em>ssize_t</em> <code>H5Aget_name</code>(<em>hid_t</em> <code>attr_id</code>,
<em>size_t</em> <code>buf_size</code>,
<em>char *</em><code>buf</code>
)
@@ -352,7 +358,7 @@ See <a href="Attributes.html"><cite>Attributes</cite></a> in the
Up to <code>buf_size</code> characters are stored in
<code>buf</code> followed by a <code>\0</code> string
terminator. If the name of the attribute is longer than
<code>buf_size</code> -1, the string terminator is stored in the
<code>(buf_size -1)</code>, the string terminator is stored in the
last position of the buffer to properly terminate the string.
<dt><strong>Parameters:</strong>
<dl>
@@ -397,7 +403,7 @@ See <a href="Attributes.html"><cite>Attributes</cite></a> in the
<dl>
<dt><strong>Name:</strong> <a name="Annot-Iterate">H5Aiterate</a>
<dt><strong>Signature:</strong>
<dd><em>int</em> <code>H5Aiterate</code>(<em>hid_t</em> <code>loc_id</code>,
<dd><em>herr_t</em> <code>H5Aiterate</code>(<em>hid_t</em> <code>loc_id</code>,
<em>unsigned *</em> <code>idx</code>,
<em>H5A_operator_t</em> <code>op</code>,
<em>void *</em><code>op_data</code>
@@ -514,9 +520,9 @@ See <a href="Attributes.html"><cite>Attributes</cite></a> in the
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -548,9 +554,11 @@ H5A&nbsp;&nbsp;
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 2 June 2000
<br>
Last modified: 30 October 1998
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -10,9 +10,9 @@ HDF5/H5D API Specification
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -56,19 +56,26 @@ and set and retrieve their constant or persistent properties.
<ul>
<li><a href="#Dataset-Create">H5Dcreate</a>
<li><a href="#Dataset-Open">H5Dopen</a>
<li><a href="#Dataset-GetSpace">H5Dget_space</a>
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
<li><a href="#Dataset-GetType">H5Dget_type</a>
<li><a href="#Dataset-GetCreatePlist">H5Dget_create_plist</a>
<li><a href="#Dataset-Read">H5Dread</a>
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
<li><a href="#Dataset-Write">H5Dwrite</a>
<li><a href="#Dataset-Extend">H5Dextend</a>
<li><a href="#Dataset-Close">H5Dclose</a>
<li><a href="#Dataset-GetSpace">H5Dget_space</a>
<li><a href="#Dataset-GetType">H5Dget_type</a>
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
<li><a href="#Dataset-GetCreatePlist">H5Dget_create_plist</a>
<li><a href="#Dataset-GetStorageSize">H5Dget_storage_size</a>
<li><a href="#Dataset-GetVLBuf">H5Dget_vlen_buf_size</a>
<li><a href="#Dataset-VLReclaim">H5Dvlen_reclaim</a>
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
<li><a href="#Dataset-Read">H5Dread</a>
<li><a href="#Dataset-Write">H5Dwrite</a>
<li><a href="#Dataset-Iterate">H5Diterate</a>
<!--
<li><a href="#Dataset-Debug">H5Ddebug</a>
-->
<li><a href="#Dataset-Extend">H5Dextend</a>
</ul>
</td></tr>
</table>
@@ -80,9 +87,9 @@ and set and retrieve their constant or persistent properties.
<dt><strong>Signature:</strong>
<dd><em>hid_t </em><code>H5Dcreate</code>(<em>hid_t </em><code>loc_id</code>,
<em>const char *</em><code>name</code>,
<em>hid_t</em><code>type_id</code>,
<em>hid_t</em><code>space_id</code>,
<em>hid_t</em><code>create_plist_id</code>
<em>hid_t</em> <code>type_id</code>,
<em>hid_t</em> <code>space_id</code>,
<em>hid_t</em> <code>create_plist_id</code>
)
<dt><strong>Purpose:</strong>
<dd>Creates a dataset at the specified location.
@@ -98,6 +105,11 @@ and set and retrieve their constant or persistent properties.
Dataset creation properties are specified by the argument
<code>create_plist_id</code>.
<p>
Dataset names within a group are unique:
<code>H5Dcreate</code> will return an error if a dataset with
the name specified in <code>name</code> already exists at the
location specified in <code>loc_id</code>.
<p>
<code>create_plist_id</code> is a <code>H5P_DATASET_CREATE</code>
property list created with <code>H5Pcreate()</code> and
initialized with the various functions described above.
@@ -140,8 +152,7 @@ and set and retrieve their constant or persistent properties.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>loc_id</code>
<dd>Identifier of the dataset to open or the file or group
to access the dataset within.
<dd>Identifier of the file or group to access the dataset within.
<dt><em>const char *</em> <code>name</code>
<dd>The name of the dataset to access.
</dl>
@@ -228,6 +239,115 @@ and set and retrieve their constant or persistent properties.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Dataset-GetStorageSize">H5Dget_storage_size</a>
<dt><strong>Signature:</strong>
<dd><em>hsize_t </em><code>H5Dget_storage_size</code>(<em>hid_t </em><code>dataset_id</code>
)
<dt><strong>Purpose:</strong>
<dd>Returns the amount of storage required for a dataset.
<dt><strong>Description:</strong>
<dd><code>H5Dget_storage_size</code> returns the amount of storage
that is required for the specified dataset, <code>dataset_id</code>.
For chunked datasets, this is the number of allocated chunks times
the chunk size.
The return value may be zero if no data has been stored.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>dataset_id</code>
<dd>Identifier of the dataset to query.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns the amount of storage space allocated for the dataset,
not counting meta data;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Dataset-GetVLBuf">H5Dget_vlen_buf_size</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>(Not yet implemented.)</b></i>
<dt><strong>Signature:</strong>
<dd><em>herr_t </em><code>H5Dget_vlen_buf_size</code>(<em>hid_t </em><code>dataset_id</code>,
<em>hid_t</em> <code>type_id</code>,
<em>hid_t</em> <code>space_id</code>,
<em>hsize_t</em> *<code>size</code>
)
<dt><strong>Purpose:</strong>
<dd>Determines the number of bytes required to store VL data.
<dt><strong>Description:</strong>
<dd><code>H5Dget_vlen_buf_size</code> determines the number of bytes
required to store the VL data from the dataset, using the
<code>space_id</code> for the selection in the dataset on
disk and the <code>type_id</code> for the memory representation
of the VL data in memory.
<p>
<code>*size</code> is returned with the number of bytes are
required to store the VL data in memory.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>dataset_id</code>
<dd>Identifier of the dataset to query.
<dt><em>hid_t</em> <code>type_id</code>
<dd>Identifier of the datatype.
<dt><em>hid_t</em> <code>space_id</code>
<dd>Identifier of the dataspace.
<dt><em>hsize_t</em> *<code>size</code>
<dd>The size in bytes of the buffer required to store the VL data.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Dataset-VLReclaim">H5Dvlen_reclaim</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t </em><code>H5Dvlen_reclaim</code>(<em>hid_t </em><code>type_id</code>,
<em>hid_t</em> <code>space_id</code>,
<em>hid_t</em> <code>plist_id</code>,
<em>void</em> *<code>buf</code>
)
<dt><strong>Purpose:</strong>
<dd>Reclaims VL datatype memory buffers.
<dt><strong>Description:</strong>
<dd><code>H5Dvlen_reclaim</code> reclaims memory buffers created to
store VL datatypes.
<p>
The <code>type_id</code> must be the datatype stored in the buffer.
The <code>space_id</code> describes the selection for the memory buffer
to free the VL datatypes within.
The <code>plist_id</code> is the dataset transfer property list which
was used for the I/O transfer to create the buffer.
And <code>buf</code> is the pointer to the buffer to be reclaimed.
<p>
The VL structures (<code>hvl_t</code>) in the user's buffer are
modified to zero out the VL information after the memory has been reclaimed.
<p>
If nested VL datatypes were used to create the buffer,
this routine frees them <em>from the bottom up</em>, releasing all
the memory without creating memory leaks.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>type_id</code>
<dd>Identifier of the datatype.
<dt><em>hid_t</em> <code>space_id</code>
<dd>Identifier of the dataspace.
<dt><em>hid_t</em> <code>plist_id</code>
<dd>Identifier of the property list used to create the buffer.
<dt><em>void</em> *<code>buf</code>
<dd>Pointer to the buffer to be reclaimed.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Dataset-Read">H5Dread</a>
@@ -398,10 +518,10 @@ and set and retrieve their constant or persistent properties.
<dl>
<dt><strong>Name:</strong> <a name="Dataset-Close">H5Dclose</a>
<dt><strong>Signature:</strong>
<dd><em>hid_t </em><code>H5Dclose</code>(<em>hid_t </em><code>dataset_id</code>
<dd><em>herr_t </em><code>H5Dclose</code>(<em>hid_t </em><code>dataset_id</code>
)
<dt><strong>Purpose:</strong>
<dd>
<dd>Closes the specified dataset.
<dt><strong>Description:</strong>
<dd><code>H5Dclose</code> ends access to a dataset specified by
<code>dataset_id</code> and releases resources used by it.
@@ -418,13 +538,63 @@ and set and retrieve their constant or persistent properties.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Dataset-Iterate">H5Diterate</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t </em><code>H5Diterate</code>(
<em>void *</em><code>buf</code>,
<em>hid_t </em><code>type_id</code>,
<em>hid_t </em><code>space_id</code>,
<em>H5D_operator_t </em><code>operator</code>,
<em>void *</em><code>operator_data</code>
)
<dt><strong>Purpose:</strong>
<dd>Iterates over all selected elements in a dataspace.
<dt><strong>Description:</strong>
<dd><code>H5Diterate</code> iterates over all the elements selected
in a memory buffer. The callback function is called once for each
element selected in the dataspace.
<p>
The selection in the dataspace is modified so that any elements
already iterated over are removed from the selection if the
iteration is interrupted (by the <code>H5D_operator_t</code>
function returning non-zero) before the iteration is complete;
the iteration may then be re-started by the user where it left off.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>void *</em><code>buf</code>
<dd>IN/OUT: Pointer to the buffer in memory containing the
elements to iterate over.
<dt><em>hid_t </em><code>type_id</code>
<dd>IN: Datatype identifier for the elements stored in
<code>buf</code>.
<dt><em>hid_t </em><code>space_id</code>
<dd>IN: Dataspace identifier for <code>buf</code>.
Also contains the selection to iterate over.
<dt><em>H5D_operator_t </em><code>operator</code>
<dd>IN: Function pointer to the routine to be called
for each element in <code>buf</code> iterated over.
<dt><em>void *</em><code>operator_data</code>
<dd>IN/OUT: Pointer to any user-defined data associated
with the operation.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns the return value of the last operator if it was non-zero,
or zero if all elements have been processed.
Otherwise returns a negative value.
</dl>
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -456,9 +626,11 @@ H5D&nbsp;&nbsp;
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 7 April 2000
<br>
Last modified: 30 October 1998
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -10,9 +10,9 @@ HDF5/H5E API Specification
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -244,6 +244,32 @@ errors within the H5E package.
regardless of stack traversal direction), an error stack entry,
and the <code>client_data</code> pointer passed to
<code>H5E_print</code>.
The <code>H5E_walk_t</code> prototype is as follows:
<dir>
<p>
<code>typedef</code> <em>herr_t</em> <code>(*H5E_walk_t)(</code><em>int</em> <code>n,</code>
<em>H5E_error_t *</em><code>err_desc,</code>
<em>void *</em><code>client_data)</code>
<p>
where the parameters have the following meanings:
<dl>
<dt><em>int</em> <code>n</code>
<dd>Indexed position of the error in the stack.
<dt><em>H5E_error_t *</em><code>err_desc</code>
<dd>Pointer to a data structure describing the error.
<em>(This structure is currently described only in the
source code file </em><code>hdf5/src/H5Epublic.h</code><em>.
That file also contains the definitive list of major
and minor error codes. That information will
eventually be presented as an appendix to this
<cite>Reference Manual</cite>.)</em>
<dt><em>void *</em><code>client_data</code>
<dd>Pointer to client data in the format expected by
the user-defined function.
</dl>
</dir>
<p>
<code>H5Ewalk</code> can fail if there are problems initializing
the library.
@@ -358,9 +384,9 @@ errors within the H5E package.
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -392,9 +418,11 @@ H5E&nbsp;&nbsp;
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 7 April 2000
<br>
Last modified: 30 October 1998
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -10,9 +10,9 @@ HDF5/H5F API Specification
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -55,17 +55,17 @@ documented below.
<table border=0>
<tr><td valign=top>
<ul>
<li><a href="#File-Open">H5Fopen</a>
<li><a href="#File-Create">H5Fcreate</a>
<li><a href="#File-IsHDF5">H5Fis_hdf5</a>
<li><a href="#File-Open">H5Fopen</a>
<li><a href="#File-Reopen">H5Freopen</a>
<li><a href="#File-Close">H5Fclose</a>
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
<li><a href="#File-Flush">H5Fflush</a>
<li><a href="#File-Close">H5Fclose</a>
<li><a href="#File-IsHDF5">H5Fis_hdf5</a>
<li><a href="#File-Mount">H5Fmount</a>
<li><a href="#File-Unmount">H5Funmount</a>
<li><a href="#File-Reopen">H5Freopen</a>
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
@@ -115,10 +115,25 @@ documented below.
<dt><em>const char *</em><code>name</code>
<dd>Name of the file to access.
<dt><em>unsigned</em> <code>flags</code>
<dd>File access flags. See the <code>H5Fcreate</code>
parameters list for a list of possible values.
<dd>File access flags. Allowable values are:
<ul><dl>
<dt>H5F_ACC_RDWR
<dd>Allow read and write access to file.
<dt>H5F_ACC_RDONLY
<dd>Allow read-only access to file.
</dl></ul>
<li><code>H5F_ACC_RDWR</code> and <code>H5F_ACC_RDONLY</code>
are mutually exclusive; use exactly one.
<li>An additional flag, <code>H5F_ACC_DEBUG</code>, prints debug
information. This flag is used only by HDF5 library
developers; it is neither tested nor supported
for use in applications.
<dt><em>hid_t</em> <code>access_id</code>
<dd>Identifier for the file access properties list.
If parallel file access is desired, this is a collective
call according to the communicator stored in the
<code>access_id</code>.
Use <code>H5P_DEFAULT</code> for default file access properties.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a file identifier if successful;
@@ -151,38 +166,36 @@ documented below.
are controlled through the file-creation and file-access
property lists. The value of <code>H5P_DEFAULT</code> for
a property list value indicates that the library should use
the default values for the appropriate property list. Also see
<code>H5Fpublic.h</code> for the list of supported flags.
the default values for the appropriate property list.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>const char *</em><code>name</code>
<dd>Name of the file to access.
<dt><em>uintn</em> <code>flags</code>
<dd>File access flags. Possible values include:
<dd>File access flags. Allowable values are:
<ul><dl>
<dt>H5F_ACC_RDWR
<dd>Allow read and write access to file.
<dt>H5F_ACC_RDONLY
<dd>Allow read-only access to file.
<dt>H5F_ACC_TRUNC
<dd>Truncate file, if it already exists,
erasing all data previously stored in the file.
<dt>H5F_ACC_EXCL
<dd>Fail if file already exists.
<dt>H5F_ACC_DEBUG
<dd>Print debug information.
<dt>H5P_DEFAULT
<dd>Apply default file access and creation properties.
</dl></ul>
<li><code>H5F_ACC_TRUNC</code> and <code>H5F_ACC_EXCL</code>
are mutually exclusive; use exactly one.
<li>An additional flag, <code>H5F_ACC_DEBUG</code>, prints debug
information. This flag is used only by HDF5 library
developers; it is neither tested nor supported
for use in applications.
<dt><em>hid_t</em> <code>create_id</code>
<dd>File creation property list identifier, used when modifying
default file meta-data.
Use <code>H5P_DEFAULT</code> for default file creation properties.
<dt><em>hid_t</em> <code>access_id</code>
<dd>File access property list identifier.
If parallel file access is desired, this is a collective
call according to the communicator stored in the
<code>access_id</code>.
Use <code>0</code> for default access properties.
Use <code>H5P_DEFAULT</code> for default file access properties.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a file identifier if successful;
@@ -222,7 +235,7 @@ documented below.
</center>
<dt><strong>Parameters:</strong>
<dl>
<dt><em>const char *</em><code>object_id</code>
<dt><em>hid_t </em><code>object_id</code>
<dd>Identifier of object used to identify the file.
<dt><em>H5F_scope_t</em> <code>scope</code>
<dd>Specifies the scope of the flushing action.
@@ -237,7 +250,7 @@ documented below.
<dl>
<dt><strong>Name:</strong> <a name="File-IsHDF5">H5Fis_hdf5</a>
<dt><strong>Signature:</strong>
<dd><em>hbool_t </em><code>H5Fis_hdf5</code>(<em>const char *</em><code>name</code>
<dd><em>htri_t </em><code>H5Fis_hdf5</code>(<em>const char *</em><code>name</code>
)
<dt><strong>Purpose:</strong>
<dd>Determines whether a file is in the HDF5 format.
@@ -250,7 +263,8 @@ documented below.
<dd>File name to check format.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns <code>TRUE</code> or <code>FALSE</code> if successful.
<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.
</dl>
@@ -326,9 +340,19 @@ documented below.
<dd>Terminates access to an HDF5 file.
<dt><strong>Description:</strong>
<dd><code>H5Fclose</code> terminates access to an HDF5 file.
If this is the last file identifier open for a file
and if access identifiers are still in use,
this function will fail.
<p>
If this is the last file identifier open for the file
and no other access identifier is open (e.g., a dataset
identifier, group identifier, or shared datatype identifier),
the file will be fully closed and access will end.
<p>
If this is the last file identifier open for the file
and other access identifiers are still in use,
those access identifiers remain valid until separately
closed and can still be used.
(But the file identifier is no longer valid and cannot be used.)
Once all of the remaining access identifiers are closed,
the file will be fully closed and access will end.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>file_id</code>
@@ -357,8 +381,8 @@ documented below.
<code>loc_id</code> and <code>name</code> using
the mount properties <code>plist_id</code>.
<p>
Note that <code>loc_id</code> identifies a file or group.
<code>name</code> then specifies a group relative to <code>loc_id</code>.
Note that <code>loc_id</code> is either a file or group identifier
and <code>name</code> is relative to <code>loc_id</code>.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>loc_id</code>
@@ -394,19 +418,22 @@ documented below.
from the file mounted there. This function
does not close either file.
<p>
The mount point can either be the group in the
The mount point can be either the group in the
parent or the root group of the mounted file
(both groups have the same name). If the mount
point was opened before the mount then it is the
group in the parent; if it was opened after the
mount then it is the root group of the child.
<p>
Note that <code>loc_id</code> is either a file or group identifier
and <code>name</code> is relative to <code>loc_id</code>.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>loc_id</code>
<dd>The file or group identifier for the location at which
the specified file is to be unmounted.
<dt><em>const char *</em><code>name</code>
<dd>The name of the file to be unmounted.
<dd>The name of the mount point.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
@@ -418,22 +445,32 @@ documented below.
<dl>
<dt><strong>Name:</strong> <a name="File-Reopen">H5Freopen</a>
<dt><strong>Signature:</strong>
<dd><em>hid__t </em><code>H5Freopen</code>(<em>hid_t</em> <code>file_id</code>
<dd><em>hid_t </em><code>H5Freopen</code>(<em>hid_t</em> <code>file_id</code>
)
<dt><strong>Purpose:</strong>
<dd>Reopens an HDF5 file.
<dd>Returns a new identifier for a previously-opened HDF5 file.
<dt><strong>Description:</strong>
<dd><code>H5Freopen</code> reopens an HDF5 file. The new
file identifier which is returned points to the same file
as the specified file idetifier, <code>file_id</code>.
<dd><code>H5Freopen</code> returns a new file identifier for an
already-open HDF5 file, as specified by <code>file_id</code>.
Both identifiers share caches and other information.
The only difference between the identifiers is that the
new identifier is not mounted anywhere and no files are
mounted on it.
<p>
Note that there is no circumstance under which
<code>H5Freopen</code> can actually open a closed file;
the file must already be open and have an active
<code>file_id</code>. E.g., one cannot close a file with
<code> H5Fclose&nbsp;(file_id) </code> then use
<code> H5Freopen&nbsp;(file_id) </code> to reopen it.
<p>
The new file identifier should be closed by calling
<code>H5Fclose()</code> when it is no longer needed.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>file_id</code>
<dd>Identifier of a file to terminate access to.
<dd>Identifier of a file for which an additional identifier
is required.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a new file identifier if successful;
@@ -445,9 +482,9 @@ documented below.
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -479,9 +516,11 @@ H5F&nbsp;&nbsp;
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 2 June 2000
<br>
Last modified: 30 October 1998
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -8,10 +8,10 @@ HDF5 API Specification
<hr>
<center>
<table cellspacing=0 cellpadding=0 border=0 width=98%>
<tr><td valign=top align=left>
<tr><td valign=top aliOther gn=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<a href="index.html">HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -46,12 +46,16 @@ HDF5 Reference Manual&nbsp;&nbsp;
<center>
<h1>HDF5: API Specification<br>Reference Manual</h1>
</center>
The HDF5 library provides several interfaces, each of which provides the
tools required to meet specific aspects of the HDF5 data-handling requirements.
<center>
<table border=0>
<table border=0 width=85%>
<tr><td valign=top colspan=3>
The HDF5 library provides several interfaces, each of which provides the
tools required to meet specific aspects of the HDF5 data-handling requirements.
<br>
<br>
</td></tr>
<tr><td valign=top><a href="RM_H5.html">Library Functions</a>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>The general-purpose <strong>H5</strong> functions.
</td></tr>
@@ -104,15 +108,15 @@ tools required to meet specific aspects of the HDF5 data-handling requirements.
</table>
</center>
<br><br>
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -149,10 +153,12 @@ HDF5 Reference Manual&nbsp;&nbsp;
<tr><td align=left valign=top>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<br>
Last modified: 26 April 1999
Last modified: 2 June 2000
</td><td align=right valign=top>
<a href="Copyright.html">Copyright</a>&nbsp;&nbsp;
<br>
Describes HDF5 Release 1.2.2, June 2000
</td></tr>
</table>

View File

@@ -10,9 +10,9 @@ HDF5/H5G API Specification
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -295,7 +295,7 @@ create or access function.
<dd><em>int</em> <code>H5Giterate</code>(<em>hid_t</em> <code>loc_id</code>,
<em>const char</em> <code>*name</code>,
<em>int</em> <code>*idx</code>,
<em>H5G_operator_t</em> <code>operator</code>,
<em>H5G_iterate_t</em> <code>operator</code>,
<em>void</em> <code>*operator_data</code>
)
<dt><strong>Purpose:</strong>
@@ -315,10 +315,11 @@ create or access function.
cannot be restarted if one of the calls to its operator returns
non-zero.
<p>
The prototype for <code>H5G_operator_t</code> is:
The prototype for <code>H5G_iterate_t</code> is:
<ul><dl>
<dd><code>typedef</code> <em>herr_t *</em>(<code>H5G_operator_t</code>)(<em>hid_t</em> <code>group_id</code>,
<em>const char *</em><code>member_name</code>, <em>void *</em><code>operator_data/*in,out*/</code>);
<dd><code>typedef</code> <em>herr_t </em>(*<code>H5G_iterate_t</code>)(<em>hid_t</em> <code>group_id</code>,
<em>const char *</em><code>member_name</code>,
<em>void *</em><code>operator_data</code>);
</dl></ul>
<dd>The operation receives the group identifier for the group being
iterated over, <code>group_id</code>, the name of the current
@@ -337,6 +338,11 @@ create or access function.
indicating failure. The iterator can be restarted at the next
group member.
</ul>
<p>
<code>H5Giterate</code> assumes that the membership of the group
identified by <code>name</code> remains unchanged through the
iteration. If the membership changes during the iteration,
the function's behavior is undefined.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>loc_id</code>
@@ -422,7 +428,7 @@ create or access function.
unsigned long fileno[2];
unsigned long objno[2];
unsigned nlink;
H5G_type_t type;
int type;
time_t mtime;
size_t linklen;
} H5G_stat_t
@@ -607,9 +613,9 @@ create or access function.
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -641,9 +647,11 @@ H5G&nbsp;&nbsp;
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 17 December 1999
<br>
Last modified: 26 April 1999
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -10,9 +10,9 @@ HDF5/H5I API Specification
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -120,9 +120,9 @@ This function provides a tool for working with object identifiers.
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -154,9 +154,11 @@ H5I&nbsp;&nbsp;
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
<br>
Last modified: 30 October 1998
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -10,9 +10,9 @@ HDF5/H5P API Specification
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -50,7 +50,6 @@ H5P&nbsp;&nbsp;
These functions manipulate property list objects to allow objects which require
many different parameters to be easily manipulated.
<dir>
<table border=0>
<tr><td valign=top>
@@ -74,11 +73,12 @@ many different parameters to be easily manipulated.
<li><a href="#Property-SetIstoreK">H5Pset_istore_k</a>
<li><a href="#Property-GetIstoreK">H5Pget_istore_k</a>
</ul>
<br>&nbsp;
<br>
||&nbsp;&nbsp;&nbsp;<i>Available only in the
<br>&nbsp;&nbsp;&nbsp;&nbsp;
parallel HDF5 library.</i>
<p><i>Variable-length Datatype Properties</i>
<ul>
<li><a href="#Property-SetVLMemManager">H5Pset_vlen_mem_manager</a>
<li><a href="#Property-GetVLMemManager">H5Pget_vlen_mem_manager</a>
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
@@ -95,14 +95,28 @@ parallel HDF5 library.</i>
<li><a href="#Property-GetCore">H5Pget_core</a>
<li><a href="#Property-SetMPI">H5Pset_mpi</a>&nbsp;&nbsp;&nbsp;||
<li><a href="#Property-GetMPI">H5Pget_mpi</a>&nbsp;&nbsp;&nbsp;||
<!-- Not implemented. Probably never will be.
<li><a href="#Property-SetFamily">H5Pset_family</a>
<li><a href="#Property-GetFamily">H5Pget_family</a>
-->
<li><a href="#Property-SetCache">H5Pset_cache</a>
<li><a href="#Property-GetCache">H5Pget_cache</a>
<li><a href="#Property-SetSplit">H5Pset_split</a>
<li><a href="#Property-GetSplit">H5Pget_split</a>
<li><a href="#Property-SetGCReferences">H5Pset_gc_references</a>
<li><a href="#Property-GetGCReferences">H5Pget_gc_references</a>
</ul>
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<br>
||&nbsp;&nbsp;<i>Available only in the
parallel HDF5 library.</i>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<i>Dataset Creation Properties</i>
@@ -133,6 +147,10 @@ parallel HDF5 library.</i>
<li><a href="#Property-GetBuffer">H5Pget_buffer</a>
<li><a href="#Property-SetPreserve">H5Pset_preserve</a>
<li><a href="#Property-GetPreserve">H5Pget_preserve</a>
<li><a href="#Property-SetHyperCache">H5Pset_hyper_cache</a>
<li><a href="#Property-GetHyperCache">H5Pget_hyper_cache</a>
<li><a href="#Property-SetBTreeRatios">H5Pset_btree_ratios</a>
<li><a href="#Property-GetBTreeRatios">H5Pget_btree_ratios</a>
<li><a href="#Property-SetXfer">H5Pset_xfer</a>&nbsp;&nbsp;&nbsp;||
<li><a href="#Property-GetXfer">H5Pget_xfer</a>&nbsp;&nbsp;&nbsp;||
</ul>
@@ -147,7 +165,6 @@ parallel HDF5 library.</i>
-->
</table>
</dir
<hr>
@@ -430,7 +447,7 @@ parallel HDF5 library.</i>
<em>MPI_Info</em> <code>info</code>
)
<dt><strong>Purpose:</strong>
<dd>Retrieves the access mode for parallel I/O and the user supplied
<dd>Sets the access mode for parallel I/O and the user supplied
communicator and info object.
<dt><strong>Description:</strong>
<dd><code>H5Pset_mpi</code> stores the access mode for MPIO call and the user supplied
@@ -440,7 +457,7 @@ parallel HDF5 library.</i>
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>plist</code>
<dd>IN: Identifier of property list to modify
<dd>IN: Identifier of property list to modify.
<dt><em>MPI_Comm</em> <code>comm</code>
<dd>IN: MPI communicator to be used for file open as defined in
MPI_FILE_OPEN of MPI-2. This function does not make a
@@ -713,7 +730,7 @@ parallel HDF5 library.</i>
This function is only valid for dataset creation property lists.
Valid parameters for <code>layout</code> are:
<ul><dl>
<dt>H5D_COMPACT
<dt>H5D_COMPACT &nbsp;&nbsp; <i><b>(Not yet implemented.)</b></i>
<dd>Store raw data and object header contiguously in file.
This should only be used for very small amounts of raw
data (suggested less than 1KB).
@@ -750,7 +767,7 @@ parallel HDF5 library.</i>
a dataset. This function is only valid for dataset creation
property lists. Valid types for <code>layout</code> are:
<ul> <dl>
<dt>H5D_COMPACT
<dt>H5D_COMPACT &nbsp;&nbsp; <i><b>(Not yet implemented.)</b></i>
<dd>Raw data and object header stored contiguously in file.
<dt>H5D_CONTIGUOUS
<dd>Raw data stored separately from object header in one
@@ -827,7 +844,7 @@ parallel HDF5 library.</i>
<dt><em>hid_t</em> <code>plist</code>
<dd>IN: Identifier of property list to query.
<dt><em>int</em> <code>max_ndims</code>
<dd>OUT: Size of the <code>dims</code> array.
<dd>IN: Size of the <code>dims</code> array.
<dt><em>hsize_t *</em> <code>dims</code>
<dd>OUT: Array to store the chunk dimensions.
</dl>
@@ -850,14 +867,16 @@ parallel HDF5 library.</i>
<dt><strong>Description:</strong>
<dd><code>H5Pset_alignment</code> sets the alignment properties
of a file access property list
so that any file object >= THRESHOLD bytes will be aligned on
an address which is a multiple of ALIGNMENT. The addresses
so that any file object greater or equal in size to
<code>threshold</code> bytes will be aligned on an address
which is a multiple of <code>alignment</code>. The addresses
are relative to the end of the user block; the alignment is
calculated by subtracting the user block size from the
absolute file address and then adjusting the address to be a
multiple of ALIGNMENT.
multiple of <code>alignment</code>.
<p>
Default values for THRESHOLD and ALIGNMENT are one, implying
Default values for <code>threshold</code> and
<code>alignment</code> are one, implying
no alignment. Generally the default values will result in
the best performance for single-process access to the file.
For MPI-IO and other parallel systems, choose an alignment
@@ -868,8 +887,13 @@ parallel HDF5 library.</i>
<dd>IN: Identifier for a file access property list.
<dt><em>hsize_t</em> <code>threshold</code>
<dd>IN: Threshold value.
Must be non-negative.
Note that setting the threshold value to 0 (zero) has
the effect of a special case, forcing everything
to be aligned.
<dt><em>hsize_t</em> <code>alignment</code>
<dd>IN: Alignment value.
Must be a positive value.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
@@ -925,10 +949,16 @@ parallel HDF5 library.</i>
<p>
If a dataset is split across multiple files then the files
should be defined in order. The total size of the dataset is
the sum of the SIZE arguments for all the external files. If
the sum of the <code>size</code> arguments for all the external files. If
the total size is larger than the size of a dataset then the
dataset can be extended (provided the data space also allows
the extending).
<p>
The <code>size</code> argument specifies number of bytes reserved
for data in the external file.
If <code>size</code> is set to <code>H5F_UNLIMITED</code>, the
external file can be of unlimited size and no more files can be added to
the external files list.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>plist</code>
@@ -951,7 +981,7 @@ parallel HDF5 library.</i>
<dl>
<dt><strong>Name:</strong> <a name="Property-GetExternalCount">H5Pget_external_count</a>
<dt><strong>Signature:</strong>
<dd><em>int</em> <code>H5Pget_external_count</code>(<em>hid_t</em> <code>plist</code>,
<dd><em>int</em> <code>H5Pget_external_count</code>(<em>hid_t</em> <code>plist</code>
)
<dt><strong>Purpose:</strong>
<dd>Returns the number of external files for a dataset.
@@ -1162,7 +1192,7 @@ parallel HDF5 library.</i>
<dd>IN: Bit vector specifying certain general properties
of the filter.
<dt><em>size_t</em> <code>cd_nelmts</code>
<dd>IN: Number of elements in <code>cd_values</code>
<dd>IN: Number of elements in <code>cd_values</code>.
<dt><em>const unsigned int</em> <code>cd_values[]</code>
<dd>IN: Auxiliary data for the filter.
</dl>
@@ -1268,7 +1298,7 @@ parallel HDF5 library.</i>
<dd>OUT: Bit vector specifying certain general properties
of the filter.
<dt><em>size_t *</em><code>cd_nelmts</code>
<dd>IN/OUT: Number of elements in <code>cd_values</code>
<dd>IN/OUT: Number of elements in <code>cd_values</code>.
<dt><em>unsigned int *</em><code>cd_values</code>
<dd>OUT: Auxiliary data for the filter.
<dt><em>size_t</em> <code>namelen</code>
@@ -1286,7 +1316,7 @@ parallel HDF5 library.</i>
<dl>
<dt><strong>Name:</strong> <a name="Property-GetDriver">H5Pget_driver</a>
<dt><strong>Signature:</strong>
<dd><em>H5F_driver_t</em> <code>H5Pget_driver</code>(<em>hid_t</em> <code>plist</code>,
<dd><em>H5F_driver_t</em> <code>H5Pget_driver</code>(<em>hid_t</em> <code>plist</code>
)
<dt><strong>Purpose:</strong>
<dd>Returns a low-level file driver identifier.
@@ -1364,7 +1394,7 @@ parallel HDF5 library.</i>
<dl>
<dt><strong>Name:</strong> <a name="Property-SetSec2">H5Pset_sec2</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Pset_sec2</code>(<em>hid_t</em> <code>plist</code>,
<dd><em>herr_t</em> <code>H5Pset_sec2</code>(<em>hid_t</em> <code>plist</code>
)
<dt><strong>Purpose:</strong>
<dd>Sets the low-level file driver to use the declared functions.
@@ -1388,7 +1418,7 @@ parallel HDF5 library.</i>
<dl>
<dt><strong>Name:</strong> <a name="Property-GetSec2">H5Pget_sec2</a>
<dt><strong>Signature:</strong>
<dd><em>returntype</em> <code>H5Pget_sec2</code>(<em>hid_t</em> <code>plist</code>)
<dd><em>herr_t</em> <code>H5Pget_sec2</code>(<em>hid_t</em> <code>plist</code>)
<dt><strong>Purpose:</strong>
<dd>Checks whether the file access property list is set
to the sec2 driver.
@@ -1424,7 +1454,7 @@ parallel HDF5 library.</i>
This driver is restricted to temporary files which are not
larger than the amount of virtual memory available.
The <code>increment</code> argument determines the file block size
and memory will be allocated in multiples of INCREMENT bytes.
and memory will be allocated in multiples of <code>increment</code> bytes.
A liberal <code>increment</code> results in fewer calls to
<code>realloc()</code> and probably less memory fragmentation.
<dt><strong>Parameters:</strong>
@@ -1433,6 +1463,7 @@ parallel HDF5 library.</i>
<dd>IN: Identifier of a file access property list.
<dt><em>size_t</em> <code>increment</code>
<dd>IN: File block size in bytes.
Must be a positive value.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
@@ -1442,7 +1473,7 @@ parallel HDF5 library.</i>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Property-GetCore"></a>
<dt><strong>Name:</strong> <a name="Property-GetCore">H5Pget_core</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Pget_core</code>(<em>hid_t</em> <code>plist</code>,
<em>size_t</em> <code>*increment</code>
@@ -1489,11 +1520,11 @@ parallel HDF5 library.</i>
raw data in another file. The meta file will have a name
which is formed by adding <em>meta_extension</em> (recommended
default value: <code>.meta</code>) to the end of the base name
and will be accessed according to the <em>meta_properties</em>.
and will be accessed according to the <em>meta_plist</em>.
The raw file will have a name which is formed by appending
<em>raw_extension</em> (recommended default value:
<code>.raw</code>) to the base name and will be accessed according
to the <em>raw_properties</em>.
to the <em>raw_plist</em>.
Additional parameters may be added to this function in the future.
<dt><strong>Parameters:</strong>
<dl>
@@ -1523,10 +1554,10 @@ parallel HDF5 library.</i>
<dd><em>herr_t</em> <code>H5Pget_split</code>(<em>hid_t</em> <code>plist</code>,
<em>size_t</em> <code>meta_ext_size</code>,
<em>char</em> <code>*meta_ext</code>,
<em>hid_t</em> <code>*meta_properties</code>,
<em>hid_t</em> <code>*meta_plist</code>,
<em>size_t</em> <code>raw_ext_size</code>,
<em>char</em> <code>*raw_ext</code>,
<em>hid_t</em> <code>*raw_properties</code>
<em>hid_t</em> <code>*raw_plist</code>
)
<dt><strong>Purpose:</strong>
<dd>Determines whether the file access property list is set
@@ -1535,7 +1566,7 @@ parallel HDF5 library.</i>
<dd><code>H5Pget_split</code> checks to determine whether the file
access property list is set to the split driver.
On successful return,
<code>meta_properties</code> and <code>raw_properties</code> will
<code>meta_plist</code> and <code>raw_plist</code> will
point to copies of the meta and raw access property lists
which should be closed by calling <code>H5Pclose()</code> when
the application is finished with them, but if the meta and/or
@@ -1557,16 +1588,16 @@ parallel HDF5 library.</i>
<dt><em>size_t</em> <code>meta_ext_size</code>
<dd>IN: Number of characters of the meta file extension to be
copied to the <code>meta_ext</code> buffer.
<dt><em>OUT</em> <code>*meta_ext</code>
<dd>IN: Meta file extension.
<dt><em>hid_t</em> <code>*meta_properties</code>
<dt><em>char</em> <code>*meta_ext</code>
<dd>OUT: Meta file extension.
<dt><em>hid_t</em> <code>*meta_plist</code>
<dd>OUT: Pointer to a copy of the meta file access property list.
<dt><em>size_t</em> <code>raw_ext_size</code>
<dd>IN: Number of characters of the raw file extension to be
copied to the <code>raw_ext</code> buffer.
<dt><em>char</em> <code>*raw_ext</code>
<dd>OUT: Raw file extension.
<dt><em>hid_t</em> <code>*raw_properties</code>
<dt><em>hid_t</em> <code>*raw_plist</code>
<dd>OUT: Pointer to a copy of the raw file access property list.
</dl>
<dt><strong>Returns:</strong>
@@ -1578,42 +1609,65 @@ parallel HDF5 library.</i>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Property-SetFamily">H5Pset_family</a>
<dt><strong>Name:</strong> <a name="Property-SetGCReferences">H5Pset_gc_references</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Pset_family</code>(<em>hid_t</em> <code>plist</code>,
<em>hsize_t</em> <code>memb_size</code>,
<em>hid_t</em> <code>memb_plist</code>
<dd><em>herr_t</em> <code>H5Pset_gc_references</code>(<em>hid_t</em> <code>plist</code>,
<em>unsigned</em> <code>gc_ref</code>
)
<dt><strong>Purpose:</strong>
<dd>Sets the file access properties list to the <em>family</em>
driver.
<dd>Sets garbage collecting references flag.
<dt><strong>Description:</strong>
<dd><i>Original version. Edited version below.</i>
<dd><code>H5Pset_family</code> sets the file access properties
to use the <em>family</em>
driver; any previously defined driver properties are erased
from the property list. Each member of the file family will
use <em>member_properties</em> as its file access property
list. The <em>memb_size</em> argument gives the logical size
in bytes of each family member but the actual size could be
smaller depending on whether the file contains holes. The
member size is only used when creating a new file or
truncating an existing file; otherwise the member size comes
from the size of the first member of the family being
opened. Note: if the size of the <code>off_t</code> type is
four bytes then the maximum family member size is usually
2^31-1 because the byte at offset 2,147,483,647 is generally
inaccessible. Additional parameters may be added to this
function in the future.
<dd><code>H5Pset_gc_references</code> sets the flag for
garbage collecting references for the file.
<p>
Dataset region references and other reference types use space
in an HDF5 file's global heap. If garbage collection is on
and the user passes in an uninitialized value in a reference structure,
the heap might get corrupted. When garbage collection is off, however,
and the user re-uses a reference, the previous heap block will be
orphaned and not returned to the free heap space.
<p>
When garbage collection is on, the user must initialize the
reference structures to 0 or risk heap corruption.
<p>
The default value for garbage collecting references is off.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>plist</code>
<dd>IN: Identifier of the file access property list.
<dt><em>hsize_t</em> <code>memb_size</code>
<dd>IN: Logical size, in bytes, of each family member.
<dt><em>hid_t</em> <code>memb_plist</code>
<dd>IN: Identifier of the file access property list
for each member of the family.
<dd>IN: File access property list identifier.
<dt><em>unsigned</em> <code>gc_ref</code>
<dd>IN: Flag setting reference garbage collection to
on (<code>1</code>) or off (<code>0</code>).
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Property-GetGCReferences">H5Pget_gc_references</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Pget_gc_references</code>(<em>hid_t</em> <code>plist</code>,
<em>unsigned</em> *<code>gc_ref</code>
)
<dt><strong>Purpose:</strong>
<dd>Returns garbage collecting references setting.
<dt><strong>Description:</strong>
<dd><code>H5Pget_gc_references</code> returns the current setting
for the garbage collection references property from
the specified file access property list.
The garbage collection references property is set
by <a href="#Property-SetGCReferences">H5Pset_gc_references</a>.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>plist</code>
<dd>IN: File access property list identifier.
<dt><em>unsigned</em> <code>gc_ref</code>
<dd>OUT: Flag returning the state of reference garbage collection.
A returned value of <code>1</code> indicates that
garbage collection is on while
<code>0</code> indicates that garbage collection is off.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
@@ -1621,6 +1675,7 @@ parallel HDF5 library.</i>
</dl>
<!-- Not implemented. Probably never will be.
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Property-SetFamily">H5Pset_family</a>
@@ -1630,12 +1685,10 @@ parallel HDF5 library.</i>
<em>hid_t</em> <code>memb_plist</code>
)
<dt><strong>Purpose:</strong>
<dd>Sets the file access properties list to the <code>family</code>
driver.
<dd>Sets the file access properties list to the family driver.
<dt><strong>Description:</strong>
<dd><i>Edited version. Original version above.</i>
<dd><code>H5Pset_family</code> sets the file access properties
to use the <code>family</code> driver; any previously defined
to use the family driver; any previously defined
driver properties are erased from the property list.
See <a href="Files.html#File_Families">File Families</a>
in the <cite>HDF5 User's Guide</cite> for a discussion
@@ -1712,34 +1765,38 @@ parallel HDF5 library.</i>
to the family driver.
Otherwise returns a negative value.
</dl>
-->
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Property-SetCache">H5Pset_cache</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Pset_cache</code>(<em>hid_t</em> <code>plist</code>,
<dd><em>herr_t</em> <code>H5Pset_cache</code>(<em>hid_t</em> <code>plist_id</code>,
<em>int</em> <code>mdc_nelmts</code>,
<em>int</em> <code>rdcc_nelmts</code>,
<em>size_t</em> <code>rdcc_nbytes</code>,
<em>double</em> <code>rdcc_w0</code>
)
<dt><strong>Purpose:</strong>
<dd>Sets the number of elements in the meta data cache and the
total number of bytes in the raw data chunk cache.
<dd>Sets the meta data cache and raw data chunk cache parameters.
<dt><strong>Description:</strong>
<dd><code>H5Pset_cache</code> sets the number of elements (objects)
in the meta data cache and the total number of bytes in the
raw data chunk cache.
<dd><code>H5Pset_cache</code> sets
the number of elements (objects) in the meta data cache and
the number of elements, the total number of bytes, and
the preemption policy value in the raw data chunk cache.
<p>
Sets or queries the meta data cache and raw data chunk cache
parameters. The <em>plist</em> is a file access property
list. The number of elements (objects) in the meta data cache
is <em>mdc_nelmts</em>. The total size of the raw data chunk
cache and the preemption policy is <em>rdcc_nbytes</em> and
<em>w0</em>. For <code>H5Pget_cache()</code> any (or all) of
the pointer arguments may be null pointers.
The <em>plist_id</em> is a file access property list.
The number of elements (objects) in the meta data cache
and the raw data chunk cache are <em>mdc_nelmts</em> and
<em>rdcc_nelmts</em>, respectively.
The total size of the raw data chunk cache and the preemption policy
are <em>rdcc_nbytes</em> and <em>rdcc_w0</em>.
<p>
The RDCC_W0 value should be between 0 and 1 inclusive and
Any (or all) of the <code>H5Pget_cache()</code> pointer arguments
may be null pointers.
<p>
The <em>rdcc_w0</em> value should be between 0 and 1 inclusive and
indicates how much chunks that have been fully read are
favored for preemption. A value of zero means fully read
chunks are treated no differently than other chunks (the
@@ -1747,10 +1804,12 @@ parallel HDF5 library.</i>
read chunks are always preempted before other chunks.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>plist</code>
<dt><em>hid_t</em> <code>plist_id</code>
<dd>IN: Identifier of the file access property list.
<dt><em>int</em> <code>mdc_nelmts</code>
<dd>IN: Number of elements (objects) in the meta data cache.
<dt><em>int</em> <code>rdcc_nelmts</code>
<dd>IN: Number of elements (objects) in the raw data chunk cache.
<dt><em>size_t</em> <code>rdcc_nbytes</code>
<dd>IN: Total size of the raw data chunk cache, in bytes.
<dt><em>double</em> <code>rdcc_w0</code>
@@ -1766,25 +1825,29 @@ parallel HDF5 library.</i>
<dl>
<dt><strong>Name:</strong> <a name="Property-GetCache">H5Pget_cache</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Pget_cache</code>(<em>hid_t</em> <code>plist</code>,
<dd><em>herr_t</em> <code>H5Pget_cache</code>(<em>hid_t</em> <code>plist_id</code>,
<em>int</em> <code>*mdc_nelmts</code>,
<em>int</em> <code>*rdcc_nelmts</code>,
<em>size_t</em> <code>*rdcc_nbytes</code>,
<em>double</em> <code>*rdcc_w0</code>
)
<dt><strong>Purpose:</strong>
<dd>Retrieves maximum sizes of meta data cache and RDCC_WO.
<dd>Retrieves maximum sizes of data caches and the preemption policy value.
<dt><strong>Description:</strong>
<dd>Retrieves the maximum possible number of elements in the meta
data cache and the maximum possible number of bytes and the
RDCC_W0 value in the raw data chunk cache. Any (or all)
arguments may be null pointers in which case the corresponding
datum is not returned.
data cache and raw data chunk cache, the maximum possible number of
bytes in the raw data chunk cache, and the preemption policy value.
<p>
Any (or all) arguments may be null pointers in which case the
corresponding datum is not returned.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>plist</code>
<dt><em>hid_t</em> <code>plist_id</code>
<dd>IN: Identifier of the file access property list.
<dt><em>int</em> <code>*mdc_nelmts</code>
<dd>IN/OUT: Number of elements (objects) in the meta data cache.
<dt><em>int</em> <code>*rdcc_nelmts</code>
<dd>IN/OUT: Number of elements (objects) in the raw data chunk cache.
<dt><em>size_t</em> <code>*rdcc_nbytes</code>
<dd>IN/OUT: Total size of the raw data chunk cache, in bytes.
<dt><em>double</em> <code>*rdcc_w0</code>
@@ -1796,6 +1859,165 @@ parallel HDF5 library.</i>
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Property-SetHyperCache">H5Pset_hyper_cache</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Pset_hyper_cache</code>(<em>hid_t</em> <code>plist</code>,
<em>unsigned</em> <code>cache</code>,
<em>unsigned</em> <code>limit</code>
)
<dt><strong>Purpose:</strong>
<dd>Indicates whether to cache hyperslab blocks during I/O.
<dt><strong>Description:</strong>
<dd>Given a dataset transfer property list, <code>H5Pset_hyper_cache</code>
indicates whether to cache hyperslab blocks during I/O,
a process which can significantly increase I/O speeds.
<p>
When working with hyperslab selections, it is possible to
significantly speed up I/O operations by retrieving an
entire hyperslab from the file in one operation and
caching it in memory.
The <code>cache</code> parameter specifies whether to turn
caching on for hyperslab I/O operations.
If <code>cache</code> is set to <code>1</code>,
caching is turned on;
if set to <code>0</code>, caching is turned off.
<p>
The parameter <code>limit</code> sets the maximum size of the
hyperslab block to cache. If a block is smaller than that limit,
it may still not be cached if no memory is available.
Setting <code>limit</code> to <code>0</code> (zero) indicates
no limitation on the size of block to attempt to cache.
<p>
The default is to cache blocks with no limit on block size
for serial I/O and to not cache blocks for parallel I/O.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>plist</code>
<dd>IN: Dataset transfer property list identifier.
<dt><em>unsigned</em> <code>cache</code>
<dd>IN: A flag indicating whether caching is to be
set to on (<code>1</code>) or off (<code>0</code>).
<dt><em>unsigned</em> <code>limit</code>
<dd>IN: Maximum size of the hyperslab block to cache.
<code>0</code> (zero) indicates no limit.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Property-GetHyperCache">H5Pget_hyper_cache</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Pget_hyper_cache</code>(<em>hid_t</em> <code>plist</code>,
<em>unsigned</em> *<code>cache</code>,
<em>unsigned</em> *<code>limit</code>
)
<dt><strong>Purpose:</strong>
<dd>Returns information regarding the caching of hyperslab blocks during I/O.
<dt><strong>Description:</strong>
<dd>Given a dataset transfer property list, <code>H5Pget_hyper_cache</code>
returns instructions regarding the caching of hyperslab blocks during I/O.
These parameters are set with the <code>H5Pset_hyper_cache</code> function.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>plist</code>
<dd>IN: Dataset transfer property list identifier.
<dt><em>unsigned</em> *<code>cache</code>
<dd>OUT: A flag indicating whether caching is
set to on (<code>1</code>) or off (<code>0</code>).
<dt><em>unsigned</em> *<code>limit</code>
<dd>OUT: Maximum size of the hyperslab block to cache.
<code>0</code> (zero) indicates no limit.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Property-SetBTreeRatios">H5Pset_btree_ratios</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Pset_btree_ratios</code>(<em>hid_t</em> <code>plist</code>,
<em>double</em> <code>left</code>,
<em>double</em> <code>middle</code>,
<em>double</em> <code>right</code>
)
<dt><strong>Purpose:</strong>
<dd>Sets B-tree split ratios for a dataset transfer property list.
<dt><strong>Description:</strong>
<dd><code>H5Pset_btree_ratios</code> sets the B-tree split ratios
for a dataset transfer property list. The split ratios determine
what percent of children go in the first node when a node splits.
<p>
The ratio <code>left</code> is used when the splitting node is
the left-most node at its level in the tree;
the ratio <code>right</code> is used when the splitting node is
the right-most node at its level;
and the ratio <code>middle</code> is used for all other cases.
<p>
A node which is the only node at its level in the tree uses
the ratio <code>right</code> when it splits.
<p>
All ratios are real numbers between 0 and 1, inclusive.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>plist</code>
<dd>IN: The dataset transfer property list identifier.
<dt><em>double</em> <code>left</code>
<dd>IN: The B-tree split ratio for left-most nodes.
<dt><em>double</em> <code>right</code>
<dd>IN: The B-tree split ratio for right-most nodes and lone nodes.
<dt><em>double</em> <code>middle</code>
<dd>IN: The B-tree split ratio for all other nodes.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Property-GetBTreeRatios">H5Pget_btree_ratios</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Pget_btree_ratios</code>(<em>hid_t</em> <code>plist</code>,
<em>double</em> *<code>left</code>,
<em>double</em> *<code>middle</code>,
<em>double</em> *<code>right</code>
)
<dt><strong>Purpose:</strong>
<dd>Gets B-tree split ratios for a dataset transfer property list.
<dt><strong>Description:</strong>
<dd><code>H5Pget_btree_ratios</code> returns the B-tree split ratios
for a dataset transfer property list.
<p>
The B-tree split ratios are returned through the non-<code>NULL</code>
arguments <code>left</code>, <code>middle</code>, and <code>right</code>,
as set by the <a href="#Property-SetBTreeRatios">H5Pset_btree_ratios</a> function.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>plist</code>
<dd>IN: The dataset transfer property list identifier.
<dt><em>double</em> <code>left</code>
<dd>OUT: The B-tree split ratio for left-most nodes.
<dt><em>double</em> <code>right</code>
<dd>OUT: The B-tree split ratio for right-most nodes and lone nodes.
<dt><em>double</em> <code>middle</code>
<dd>OUT: The B-tree split ratio for all other nodes.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Property-SetBuffer">H5Pset_buffer</a>
@@ -1811,15 +2033,21 @@ parallel HDF5 library.</i>
<dd> Given a dataset transfer property list, <code>H5Pset_buffer</code>
sets the maximum size
for the type conversion buffer and background buffer and
optionally supply pointers to application-allocated buffers.
optionally supplies pointers to application-allocated buffers.
If the buffer size is smaller than the entire amount of data
being transferred between application and file, and a type
conversion buffer or background buffer is required then
strip mining will be used. However, certain restrictions
apply for the size of buffer which can be used for strip
mining. For instance, when strip mining a 100x200x300
hyperslab of a simple data space the buffer must be large
enough to hold a 1x200x300 slab.
being transferred between the application and the file, and a type
conversion buffer or background buffer is required, then
strip mining will be used.
<p>
Note that there are minimum size requirements for the buffer.
Strip mining can only break the data up along the first dimension,
so the buffer must be large enough to accommodate a complete slice
that encompasses all of the remaining dimensions.
For example, when strip mining a 100x200x300 hyperslab
of a simple data space, the buffer must be large enough to
hold 1x200x300 data elements.
When strip mining a 100x200x300x150 hyperslab of a simple data space,
the buffer must be large enough to hold 1x200x300x150 data elements.
<p>
If <code>tconv</code> and/or <code>bkg</code> are null pointers,
then buffers will be allocated and freed during the data transfer.
@@ -1830,7 +2058,7 @@ parallel HDF5 library.</i>
<dt><em>hid_t</em> <code>plist</code>
<dd>IN: Identifier for the dataset transfer property list.
<dt><em>size_t</em> <code>size</code>
<dd>IN: Size for the type conversion and background buffers.
<dd>IN: Size, in bytes, of the type conversion and background buffers.
<dt><em>void</em> <code>tconv</code>
<dd>IN: Pointer to application-allocated type conversion buffer.
<dt><em>void</em> <code>bkg</code>
@@ -1867,7 +2095,7 @@ parallel HDF5 library.</i>
background buffer.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns buffer size if successful;
<dd>Returns buffer size, in bytes, if successful;
otherwise 0 on failure.
</dl>
@@ -2032,7 +2260,7 @@ parallel HDF5 library.</i>
<dt><strong>Description:</strong>
<dd><code>H5Pset_deflate</code> sets the compression method for a
dataset creation property list to <code>H5D_COMPRESS_DEFLATE</code>
and the compression level to <code>level<>/code>, which should
and the compression level to <code>level</code>, which should
be a value from zero to nine, inclusive.
Lower compression levels are faster but result in less compression.
This is the same algorithm as used by the GNU gzip program.
@@ -2076,13 +2304,136 @@ parallel HDF5 library.</i>
-->
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Property-SetVLMemManager">H5Pset_vlen_mem_manager</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Pset_vlen_mem_manager</code>(<em>hid_t</em> <code>plist</code>,
<em>H5MM_allocate_t</em> <code>alloc</code>,
<em>void</em> *<code>alloc_info</code>,
<em>H5MM_free_t</em> <code>free</code>,
<em>void</em> *<code>free_info</code>
)
<dt><strong>Purpose:</strong>
<dd>Sets the memory manager for variable-length datatype allocation in
<code>H5Dread</code> and <code>H5Dvlen_reclaim</code>.
<dt><strong>Description:</strong>
<dd><code>H5Pset_vlen_mem_manager</code> sets the memory manager for
variable-length datatype allocation in <code>H5Dread</code>
and free in <code>H5Dvlen_reclaim</code>.
<p>
The <code>alloc</code> and <code>free</code> parameters
identify the memory management routines to be used.
If the user has defined custom memory management routines,
<code>alloc</code> and/or <code>free</code> should be set to make
those routine calls (i.e., the name of the routine is used as
the value of the parameter);
if the user prefers to use the system's <code> malloc</code>
and/or <code>free</code>, the <code>alloc</code> and
<code>free</code> parameters, respectively, should be set to
<code> NULL</code>
<p>
The prototypes for these user-defined functions would appear as follows:
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<em>typedef void</em> *(*<code>H5MM_allocate_t</code>)(<em>size_t</em> <code>size</code>,
<em>void</em> *<code>alloc_info</code>) ;
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<em>typedef void</em> (*<code>H5MM_free_t</code>)(<em>void</em> *<code>mem</code>,
<em>void</em> *<code>free_info</code>) ;
<br>
The <code>alloc_info</code> and <code>free_info</code> parameters
can be used to pass along any required information to
the user's memory management routines.
<p>
In summary, if the user has defined custom memory management
routines, the name(s) of the routines are passed in the
<code>alloc</code> and <code>free</code> parameters and the
custom routines' parameters are passed in the
<code>alloc_info</code> and <code>free_info</code> parameters.
If the user wishes to use the system <code> malloc</code> and
<code>free</code> functions, the <code>alloc</code> and/or
<code>free</code> parameters are set to <code> NULL</code>
and the <code>alloc_info</code> and <code>free_info</code>
parameters are ignored.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>plist</code>
<dd>IN: Identifier for the dataset transfer property list.
<dt><em>H5MM_allocate_t</em> <code>alloc</code>
<dd>IN: User's allocate routine, or &nbsp;
<code> NULL</code> for system &nbsp; <code> malloc</code>.
<dt><em>void</em> *<code>alloc_info</code>
<dd>IN: Extra parameter for user's allocation routine.
<br>
Contents are ignored if preceding parameter is &nbsp;
<code>NULL</code>.
<dt><em>H5MM_free_t</em> <code>free</code>
<dd>IN: User's free routine, or &nbsp; <code> NULL</code>
for system <code>free</code>.
<dt><em>void</em> *<code>free_info</code>
<dd>IN: Extra parameter for user's free routine.
<br>
Contents are ignored if preceding parameter is &nbsp;
<code>NULL</code>.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Property-GetVLMemManager">H5Pget_vlen_mem_manager</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Pget_vlen_mem_manager</code>(<em>hid_t</em> <code>plist</code>,
<em>H5MM_allocate_t</em> *<code>alloc</code>,
<em>void</em> **<code>alloc_info</code>,
<em>H5MM_free_t</em> *<code>free</code>,
<em>void</em> **<code>free_info</code>
)
<dt><strong>Purpose:</strong>
<dd>Gets the memory manager for variable-length datatype allocation in
<code>H5Dread</code> and <code>H5Dvlen_reclaim</code>.
<dt><strong>Description:</strong>
<dd><code>H5Pget_vlen_mem_manager</code> is the companion function to
<code>H5Pset_vlen_mem_manager</code>, returning the parameters
set by that function.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>plist</code>
<dd>IN: Identifier for the dataset transfer property list.
<dt><em>H5MM_allocate_t</em> <code>alloc</code>
<dd>OUT: User's allocate routine, or &nbsp; <code> NULL</code>
for system &nbsp; <code> malloc</code>.
<dt><em>void</em> *<code>alloc_info</code>
<dd>OUT: Extra parameter for user's allocation routine.
<br>
Contents are ignored if preceding parameter is &nbsp;
<code> NULL</code>.
<dt><em>H5MM_free_t</em> <code>free</code>
<dd>OUT: User's free routine, or &nbsp; <code> NULL</code> for
system <code>free</code>.
<dt><em>void</em> *<code>free_info</code>
<dd>OUT: Extra parameter for user's free routine.
<br>
Contents are ignored if preceding parameter is &nbsp;
<code> NULL</code>.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -2114,9 +2465,11 @@ H5P&nbsp;&nbsp;
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 2 June 2000
<br>
Last modified: 30 October 1998
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -10,9 +10,9 @@ HDF5/H5R API Specification
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -57,14 +57,16 @@ to specific objects and data regions in an HDF5 file.
<tr><td valign=top width=33%>
<ul>
<li><a href="#Reference-Create">H5Rcreate</a>
<li><a href="#Reference-Dereference">H5Rdereference</a>
</ul>
</td><td valign=top width=33%>
<ul>
<li><a href="#Reference-Dereference">H5Rdereference</a>
<li><a href="#Reference-GetRegion">H5Rget_region</a>
<li><a href="#Reference-GetObjectType">H5Rget_object_type</a>
</ul>
</td><td valign=top width=34%>
<ul>
<li><a href="#Reference-GetRegion">H5Rget_region</a>
</ul>
</td></tr>
</table>
@@ -129,10 +131,12 @@ to specific objects and data regions in an HDF5 file.
opens that object and returns an identifier.
<p>
The parameter <code>ref_type</code> specifies the reference type
of <code>ref</code>. See
<a href="References.html#Reference-RefTypes">Reference Types</a> in
<a href="References.html"><i>References (H5R)</i></a>
for a list of valid reference types.
of <code>ref</code>.
<code>ref_type</code> may contain either of the following values:
<ul>
<li><code>H5R_OBJECT</code> (<code>0</code>)
<li><code>H5R_DATASET_REGION</code> (<code>1</code>)
</ul>
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>dataset</code>
@@ -151,9 +155,8 @@ to specific objects and data regions in an HDF5 file.
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Reference-GetRegion">H5Rget_region</a>
&nbsp;&nbsp;<i>(Not yet implemented.)</i>
<dt><strong>Signature:</strong>
<dd><em>H5S_t</em> <code>H5Rget_region</code>(<em>H5D_t</em> <code>dataset</code>,
<dd><em>hid_t</em> <code>H5Rget_region</code>(<em>hid_t</em> <code>dataset</code>,
<em>H5R_type_t</em> <code>ref_type</code>,
<em>void *</em><code>ref</code>
)
@@ -166,10 +169,11 @@ to specific objects and data regions in an HDF5 file.
which is the region pointed to.
<p>
The parameter <code>ref_type</code> specifies the reference type
of <code>ref</code>. See
<a href="References.html#Reference-RefTypes">Reference Types</a> in
<a href="References.html"><i>References (H5R)</i></a>
for a list of valid reference types.
of <code>ref</code>.
<code>ref_type</code> may contain the following value:
<ul>
<li><code>H5R_DATASET_REGION</code> (<code>1</code>)
</ul>
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>dataset</code>,
@@ -185,13 +189,41 @@ to specific objects and data regions in an HDF5 file.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Reference-GetObjectType">H5Rget_object_type</a>
<dt><strong>Signature:</strong>
<dd><em>int</em> <code>H5Rget_object_type</code>(<em>hid_t</em> <code>id</code>,
<em>void *</em><code>ref</code>
)
<dt><strong>Purpose:</strong>
<dd>Retrieves the type of object that an object reference points to.
<dt><strong>Description:</strong>
<dd>Given a reference to an object <code>ref</code>,
<code>H5Rget_object_type</code> returns the
type of the object pointed to.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>id</code>,
<dd>IN: The dataset containing the reference object or
the location identifier of the object that the dataset
is located within.
<dt><em>void *</em><code>ref</code>
<dd>IN: Reference to query.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns an object type as defined in <code>H5Gpublic.h</code>;
otherwise returns <code>H5G_UNKNOWN</code>.
</dl>
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -223,9 +255,11 @@ H5R&nbsp;&nbsp;
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
<br>
Last modified: 30 October 1998
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -10,9 +10,9 @@ HDF5/H5RA Experimental API Specification
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -324,9 +324,9 @@ name of the ragged array.
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -358,9 +358,12 @@ H5RA&nbsp;&nbsp;
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
<br>
Last modified: 30 October 1998
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -10,9 +10,9 @@ HDF5/H5S API Specification
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -53,34 +53,35 @@ elements of a dataset.
<table border=0>
<tr><td valign=top>
<ul>
<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-Copy">H5Scopy</a>
<li><a href="#Dataspace-ExtentClass">H5Sextent_class</a>
<li><a href="#Dataspace-ExtentCopy">H5Sextent_copy</a>
</ul>
<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>
<ul>
<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-SelectNpoints">H5Sget_select_npoints</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>
</ul>
<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>
<ul>
<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-Close">H5Sclose</a>
</ul>
</td></tr>
</table>
@@ -95,11 +96,10 @@ of the <cite>HDF5 User's Guide.</cite>.
<li>H5Scommit
<li>H5Sis_subspace
<li>H5Slock
<li>H5Sopen
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
<li>H5Sselect_name
<li>H5Sopen
<li>H5Sselect_op
<li>H5Sselect_order
</ul>
@@ -205,7 +205,7 @@ of the <cite>HDF5 User's Guide.</cite>.
<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>dh5s_selopt_t</em> <code>op</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>[ ]
)
@@ -248,7 +248,7 @@ of the <cite>HDF5 User's Guide.</cite>.
<dl>
<dt><em>hid_t</em> <code>space_id</code>
<dd>Identifier of the dataspace.
<dt><em>dh5s_selopt_t</em> <code>op</code>
<dt><em>H5S_seloper_t</em> <code>op</code>
<dd>operator specifying how the new selection is to be
combined with the existing selection for the dataspace.
<dt><em>const size_t</em> <code>num_elements</code>
@@ -316,7 +316,7 @@ of the <cite>HDF5 User's Guide.</cite>.
<dl>
<dt><strong>Name:</strong> <a name="Dataspace-SelectValid">H5Sselect_valid</a>
<dt><strong>Signature:</strong>
<dd><em>hbool_t</em> <code>H5Sselect_valid</code>(<em>hid_t</em> <code>space_id</code>)
<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>
@@ -330,9 +330,10 @@ of the <cite>HDF5 User's Guide.</cite>.
selection is being reset.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns <tt>TRUE</tt> if the selection is contained within
the extent and <tt>FALSE</tt> if it is not.
Returns returns a negative value on error conditions
<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.
</dl>
@@ -365,7 +366,7 @@ of the <cite>HDF5 User's Guide.</cite>.
<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.
<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.
@@ -415,6 +416,9 @@ of the <cite>HDF5 User's Guide.</cite>.
<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.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>space_id</code>
@@ -504,7 +508,7 @@ of the <cite>HDF5 User's Guide.</cite>.
<dl>
<dt><strong>Name:</strong> <a name="Dataspace-IsSimple">H5Sis_simple</a>
<dt><strong>Signature:</strong>
<dd><em>hbool_t </em><code>H5Sis_simple</code>(<em>hid_t </em><code>space_id</code>)
<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>
@@ -517,8 +521,9 @@ of the <cite>HDF5 User's Guide.</cite>.
<dd>Identifier of the dataspace to query
</dl>
<dt><strong>Returns:</strong>
<dd>Returns TRUE or FALSE if Successful;
otherwise returns a negative value.
<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.
</dl>
@@ -555,6 +560,8 @@ of the <cite>HDF5 User's Guide.</cite>.
</dl>
<!-- NOT YET IMPLEMENTED (R1.2 -- 9908)
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Dataspace-ExtentClass">H5Sextent_class</a>
@@ -579,6 +586,8 @@ of the <cite>HDF5 User's Guide.</cite>.
otherwise H5S_NO_CLASS (-1).
</dl>
-->
<hr>
<dl>
@@ -635,9 +644,9 @@ of the <cite>HDF5 User's Guide.</cite>.
<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_selopt_t</em><code>op</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>stride</code>,
<em>const hsize_t *</em><code>count</code>,
<em>const hsize_t *</em><code>block</code>
)
@@ -736,6 +745,200 @@ I/O is performed.
</dl>
<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>
<dl>
<dt><em>hid_t</em> <code>space_id</code>
<dd>IN: Identifier of dataspace to query.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns the number of hyperslab blocks in
the current dataspace selection if successful.
Otherwise returns a negative value.
</dl>
<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>
<dl>
<dt><em>hid_t</em> <code>space_id</code>
<dd>IN: Dataspace identifier of selection to query.
<dt><em>hsize_t </em><code>startblock</code>
<dd>IN: Hyperslab block to start with.
<dt><em>hsize_t </em><code>numblocks</code>
<dd>IN: Number of hyperslab blocks to get.
<dt><em>hsize_t *</em><code>buf</code>
<dd>OUT: List of hyperslab blocks selected.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<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>
<dl>
<dt><em>hid_t</em> <code>space_id</code>
<dd>IN: Identifier of dataspace to query.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns the number of element points in the current dataspace selection if successful.
Otherwise returns a negative value.
</dl>
<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>
<dl>
<dt><em>hid_t</em> <code>space_id</code>
<dd>IN: Dataspace identifier of selection to query.
<dt><em>hsize_t </em><code>startpoint</code>
<dd>IN: Element point to start with.
<dt><em>hsize_t </em><code>numpoints</code>
<dd>IN: Number of element points to get.
<dt><em>hsize_t *</em><code>buf</code>
<dd>OUT: List of element points selected.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<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>hsize_t *</em><code>start</code>,
<em>hsize_t *</em><code>end</code>
)
<dt><strong>Purpose:</strong>
<dd>Gets the bounding box containing the current selection.
<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>
<dl>
<dt><em>hid_t</em> <code>space_id</code>
<dd>IN: Identifier of dataspace to query.
<dt><em>hsize_t *</em><code>start</code>
<dd>OUT: Starting coordinates of the bounding box.
<dt><em>hsize_t *</em><code>end</code>
<dd>OUT: Ending coordinates of the bounding box,
i.e., the coordinates of the diagonally opposite corner.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Dataspace-Close">H5Sclose</a>
@@ -764,9 +967,9 @@ I/O is performed.
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -798,9 +1001,11 @@ H5S&nbsp;&nbsp;
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 17 December 1999
<br>
Last modified: 30 October 1998
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -10,9 +10,9 @@ HDF5/H5T API Specification
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -63,10 +63,19 @@ of a dataset.
<li><a href="#Datatype-Lock">H5Tlock</a>
<li><a href="#Datatype-GetClass">H5Tget_class</a>
<li><a href="#Datatype-GetSize">H5Tget_size</a>
<li><a href="#Datatype-GetSuper">H5Tget_super</a>
<li><a href="#Datatype-Close">H5Tclose</a>
<p>
<i>Conversion Functions</i>
<li><a href="#Datatype-Convert">H5Tconvert</a>
<li><a href="#Datatype-Find">H5Tfind</a>
<li><a href="#Datatype-SetOverflow">H5Tset_overflow</a>
<li><a href="#Datatype-GetOverflow">H5Tget_overflow</a>
<li><a href="#Datatype-Register">H5Tregister</a>
<li><a href="#Datatype-Unregister">H5Tunregister</a>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<i>Atomic Datatype</i>
<i>Atomic Datatype Properties</i>
<table><tr><td valign=top>
<li><a href="#Datatype-SetSize">H5Tset_size</a>
<li><a href="#Datatype-GetOrder">H5Tget_order</a>
<li><a href="#Datatype-SetOrder">H5Tset_order</a>
@@ -78,12 +87,11 @@ of a dataset.
<li><a href="#Datatype-SetPad">H5Tset_pad</a>
<li><a href="#Datatype-GetSign">H5Tget_sign</a>
<li><a href="#Datatype-SetSign">H5Tset_sign</a>
</td><td valign=top>
<i>Properties</i>
<li><a href="#Datatype-GetFields">H5Tget_fields</a>
<li><a href="#Datatype-SetFields">H5Tset_fields</a>
<li><a href="#Datatype-GetEbias">H5Tget_ebias</a>
<li><a href="#Datatype-SetEbias">H5Tset_ebias</a>
</td><td valign=top>
<li><a href="#Datatype-GetNorm">H5Tget_norm</a>
<li><a href="#Datatype-SetNorm">H5Tset_norm</a>
<li><a href="#Datatype-GetInpad">H5Tget_inpad</a>
@@ -92,9 +100,12 @@ of a dataset.
<li><a href="#Datatype-SetCset">H5Tset_cset</a>
<li><a href="#Datatype-GetStrpad">H5Tget_strpad</a>
<li><a href="#Datatype-SetStrpad">H5Tset_strpad</a>
</td></tr></table>
<p>
<i>Variable-length Datatypes</i>
<li><a href="#Datatype-VLCreate">H5Tvlen_create</a>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<i>Properties of Compound Types</i>
<i>Compound Datatype Properties</i>
<li><a href="#Datatype-GetNmembers">H5Tget_nmembers</a>
<li><a href="#Datatype-GetMemberName">H5Tget_member_name</a>
<li><a href="#Datatype-GetMemberOffset">H5Tget_member_offset</a>
@@ -104,14 +115,16 @@ of a dataset.
<li><a href="#Datatype-Pack">H5Tpack</a>
<li><a href="#Datatype-InsertArray">H5Tinsert_array</a>
<p>
<i>Conversion Functions</i>
<li><a href="#Datatype-Convert">H5Tconvert</a>
<li><a href="#Datatype-Find">H5Tfind</a>
<li><a href="#Datatype-SetOverflow">H5Tset_overflow</a>
<li><a href="#Datatype-GetOverflow">H5Tget_overflow</a>
<li><a href="#Datatype-RegisterHard">H5Tregister_hard</a>
<li><a href="#Datatype-RegisterSoft">H5Tregister_soft</a>
<li><a href="#Datatype-Unregister">H5Tunregister</a>
<i>Enumeration Datatypes</i>
<li><a href="#Datatype-EnumCreate">H5Tenum_create</a>
<li><a href="#Datatype-EnumInsert">H5Tenum_insert</a>
<li><a href="#Datatype-EnumNameOf">H5Tenum_nameof</a>
<li><a href="#Datatype-EnumValueOf">H5Tenum_valueof</a>
<li><a href="#Datatype-GetMemberValue">H5Tget_member_value</a>
<p>
<i>Opaque Datatypes</i>
<li><a href="#Datatype-SetTag">H5Tset_tag</a>
<li><a href="#Datatype-GetTag">H5Tget_tag</a>
</td></tr>
</table>
@@ -162,9 +175,9 @@ in the <cite>HDF5 User's Guide</cite> for further information, including a compl
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>loc_id</code>
<dd>A file, group, or datatype identifier.
<dd>IN: A file or group identifier.
<dt><em>const char *</em> <code>name</code>
<dd>A datatype name.
<dd>IN: A datatype name, defined within the file or group identified by <code>loc_id</code>.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a named datatype identifier if successful;
@@ -191,11 +204,11 @@ in the <cite>HDF5 User's Guide</cite> for further information, including a compl
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>loc_id</code>
<dd>A file or group identifier.
<dd>IN: A file or group identifier.
<dt><em>const char *</em> <code>name</code>
<dd>A datatype name.
<dd>IN: A datatype name.
<dt><em>hid_t</em> <code>type</code>
<dd>A datatype identifier.
<dd>IN: A datatype identifier.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
@@ -207,7 +220,7 @@ in the <cite>HDF5 User's Guide</cite> for further information, including a compl
<dl>
<dt><strong>Name:</strong> <a name="Datatype-Committed">H5Tcommitted</a>
<dt><strong>Signature:</strong>
<dd><em>hbool_t</em><code>H5Tcommitted</code>(<em>hid_t</em> <code>type</code>)
<dd><em>htri_t</em><code>H5Tcommitted</code>(<em>hid_t</em> <code>type</code>)
<dt><strong>Purpose:</strong>
<dd>Determines whether a datatype is a named type or a transient type.
<dt><strong>Description:</strong>
@@ -220,11 +233,13 @@ in the <cite>HDF5 User's Guide</cite> for further information, including a compl
able to share the datatype with other datasets in the same file.
<dt><strong>Parameters:</strong>
<dl>
<dt>hid_t</em> <code>type</code>
<dd>Datatype identifier.
<dt><em>hid_t</em> <code>type</code>
<dd>IN: Datatype identifier.
</dl>
<dt><strong>Returns:</strong>
<dd>The successful return values are TRUE if committed, else FALSE.
<dd>When successful, returns a positive value, for <code>TRUE</code>,
if the datatype has been committed, or <code>0</code> (zero),
for <code>FALSE</code>, if the datatype has not been committed.
Otherwise returns a negative value.
</dl>
@@ -250,27 +265,39 @@ in the <cite>HDF5 User's Guide</cite> for further information, including a compl
and the size of the array is </em><code>dim</code>.
The new member's name, <code>name</code>, must be unique
within the compound datatype.
The <code>offset</code> argument defines the start of the
The <code>offset</code> argument defines the byte offset of the start of the
member in an instance of the compound datatype and
<code>member_id</code> is the type identifier of the new member.
The total member size should be relatively small.
<p>
The functionality of the <code>perm</code> parameter has
not yet been implemented.
Currently, <code>perm</code> is best set to <code>NULL</code>.
(When implemented, <code>perm</code> will specify the mapping
of dimensions within a struct. At that time, a
<code>NULL</code> value for <code>perm</code> will mean
no mappiing change is to take place. Thus, using a value
of <code>NULL</code> ensures that application behavior will
remain unchanged upon implementation of this functionality.)
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>parent_id</code>
<dd>Identifier of the parent compound datatype.
<dd>IN: Identifier of the parent compound datatype.
<dt><em>const char *</em><code>name</code>
<dd>Name of new member.
<dd>IN: Name of new member.
<dt><em>size_t</em> <code>offset</code>
<dd>Offset to start of new member within compound datatype.
<dd>IN: Offset to start of new member within compound datatype.
<dt><em>int</em> <code>ndims</code>
<dd>Dimensionality of new member.
<dd>IN: Dimensionality of new member.
Valid values are <code>0</code> (zero)
through <code>4</code> (four).
<dt><em>const size_t *</em><code>dim</code>
<dd>Size of new member array.
<dd>IN: Size of new member array.
<dt><em>const int *</em><code>perm</code>
<dd>Pointer to buffer to store the permutation vector of
<dd>IN: Pointer to buffer to store the permutation vector of
the field.
<dt><em>hid_t</em> <code>member_id</code>
<dd>Identifier of the datatype of the new member.
<dd>IN: Identifier of the datatype of the new member.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
@@ -299,11 +326,11 @@ in the <cite>HDF5 User's Guide</cite> for further information, including a compl
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>src_id</code>
<dd>Identifier for the source datatype.
<dd>IN: Identifier for the source datatype.
<dt><em>hid_t</em> <code>dst_id</code>
<dd>Identifier for the destination datatype.
<dd>IN: Identifier for the destination datatype.
<dt><em>H5T_cdata_t **</em><code>pcdata</code>
<dd>Pointer to type conversion data.
<dd>OUT: Pointer to type conversion data.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a pointer to a suitable conversion function if successful.
@@ -319,7 +346,8 @@ in the <cite>HDF5 User's Guide</cite> for further information, including a compl
<em>hid_t</em> <code>dst_id</code>,
<em>size_t</em> <code>nelmts</code>,
<em>void *</em><code>buf</code>,
<em>void *</em><code>background</code>
<em>void *</em><code>background</code>,
<em>hid_t</em> <code>plist_id</code>
)
<dt><strong>Purpose:</strong>
<dd>Converts data from between specified datatypes.
@@ -337,6 +365,11 @@ in the <cite>HDF5 User's Guide</cite> for further information, including a compl
<code>b</code> fields already initialized and the conversion
of <code>buf</code> supplies the <code>c</code> and <code>d</code>
field values).
<p>
The parameter <code>plist_id</code> contains the dataset transfer
property list identifier which is passed to the conversion functions.
As of Release 1.2.x, this parameter is only used to pass along the
variable-length datatype custom allocation information.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>src_id</code>
@@ -349,6 +382,8 @@ in the <cite>HDF5 User's Guide</cite> for further information, including a compl
<dd>Array containing pre- and post-conversion values.
<dt><em>void *</em><code>background</code>
<dd>Optional background buffer.
<dt><em>hid_t</em> <code>plist_id</code>
<dd>Dataset transfer property list identifier.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
@@ -427,9 +462,16 @@ H5Tget_overflow ()
<dt><strong>Description:</strong>
<dd><code>H5Tcreate</code> creates a new dataype of the specified
class with the specified number of bytes.
Currently, only the <code>H5T_COMPOUND</code> datatype class is
supported with this function. Use <code>H5Tcopy</code>
to create integer or floating-point datatypes.
<p>
The following datatype classes are supported with this function:
<ul>
<li><code>H5T_COMPOUND</code>
<li><code>H5T_OPAQUE</code>
<li><code>H5T_ENUM</code>
</ul>
<p>
Use <code>H5Tcopy</code> to create integer or floating-point datatypes.
<p>
The datatype identifier returned from this function should be
released with <code>H5Tclose</code> or resource leaks will result.
<dt><strong>Parameters:</strong>
@@ -445,6 +487,38 @@ H5Tget_overflow ()
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-VLCreate">H5Tvlen_create</a>
<dt><strong>Signature:</strong>
<dd><em>hid_t </em><code>H5Tvlen_create</code>(<em>hid_t </em><code>base_type_id</code>
)
<dt><strong>Purpose:</strong>
<dd>Creates a new variable-length dataype.
<dt><strong>Description:</strong>
<dd><code>H5Tvlen_create</code> creates a new variable-length (VL) dataype.
<p>
The base datatype will be the datatype that the sequence is composed of,
characters for character strings, vertex coordinates for polygon lists, etc.
The base type specified for the VL datatype can be of any HDF5 datatype,
including another VL datatype, a compound datatype or an atomic datatype.
<p>
When necessary, use <code>H5Tget_super</code> to determine the base type
of the VL datatype.
<p>
The datatype identifier returned from this function should be
released with <code>H5Tclose</code> or resource leaks will result.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>base_type_id</code>
<dd>Base type of datatype to create.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns datatype identifier if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-Copy">H5Tcopy</a>
@@ -536,7 +610,7 @@ H5Tget_overflow ()
<dl>
<dt><strong>Name:</strong> <a name="Datatype-Equal">H5Tequal</a>
<dt><strong>Signature:</strong>
<dd><em>hbool_t </em><code>H5Tequal</code>(<em>hid_t </em><code>type_id1</code>,
<dd><em>htri_t </em><code>H5Tequal</code>(<em>hid_t </em><code>type_id1</code>,
<em>hid_t</em><code>type_id2</code>
)
<dt><strong>Purpose:</strong>
@@ -552,8 +626,9 @@ H5Tget_overflow ()
<dd>Identifier of datatype to compare.
</dl>
<dt><strong>Returns:</strong>
<dd>When successful, returns TRUE if the datatype identifiers
refer to the same datatype, else FALSE.
<dd>When successful, returns a positive value, for <code>TRUE</code>,
if the datatype identifiers refer to the same datatype,
or <code>0</code> (zero), for <code>FALSE</code>.
Otherwise returns a negative value.
</dl>
@@ -596,13 +671,16 @@ H5Tget_overflow ()
<dd><code>H5Tget_class</code> returns the datatype class identifier.
<p>
Valid class identifiers, as defined in <code>H5Tpublic.h</code>, are:
<ul><li><code>H5T_INTEGER</code> (<code>0</code>)
<li><code>H5T_FLOAT</code> (<code>1</code>)
<li><code>H5T_TIME</code> (<code>2</code>)
<li><code>H5T_STRING</code> (<code>3</code>)
<li><code>H5T_BITFIELD</code> (<code>4</code>)
<li><code>H5T_OPAQUE</code> (<code>5</code>)
<li><code>H5T_COMPOUND</code> (<code>6</code>)
<ul><li><code>H5T_INTEGER</code>
<li><code>H5T_FLOAT</code>
<li><code>H5T_TIME</code>
<li><code>H5T_STRING</code>
<li><code>H5T_BITFIELD</code>
<li><code>H5T_OPAQUE</code>
<li><code>H5T_COMPOUND</code>
<li><code>H5T_REFERENCE</code>
<li><code>H5T_ENUM</code>
<li><code>H5T_VLEN</code>
</ul>
<dt><strong>Parameters:</strong>
<dl>
@@ -669,6 +747,30 @@ H5Tget_overflow ()
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-GetSuper">H5Tget_super</a>
<dt><strong>Signature:</strong>
<dd><em>hid_t</em> <code>H5Tget_super</code>(<em>hid_t</em> <code>type</code>
)
<dt><strong>Purpose:</strong>
<dd>Returns the base datatype from which a datatype is derived.
<dt><strong>Description:</strong>
<dd><code>H5Tget_super</code> returns the base datatype from which the
datatype <code>type</code> is derived.
<P>
In the case of an enumeration type, the return value is an integer type.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>type</code>
<dd>Datatype identifier for the derived datatype.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns the datatype identifier for the base datatype if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-GetOrder">H5Tget_order</a>
@@ -1071,10 +1173,11 @@ zero.
<dt><strong>Name:</strong> <a name="Datatype-GetFields">H5Tget_fields</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t </em><code>H5Tget_fields</code>(<em>hid_t </em><code>type_id</code>,
<em>size_t *</em> <code>epos</code>,
<em>size_t *</em> <code>esize</code>,
<em>size_t *</em> <code>mpos</code>,
<em>size_t *</em> <code>msize</code>
<em>size_t *</em><code>spos</code>,
<em>size_t *</em><code>epos</code>,
<em>size_t *</em><code>esize</code>,
<em>size_t *</em><code>mpos</code>,
<em>size_t *</em><code>msize</code>
)
<dt><strong>Purpose:</strong>
<dd>Retrieves floating point datatype bit field information.
@@ -1088,13 +1191,15 @@ zero.
<dl>
<dt><em>hid_t</em> <code>type_id</code>
<dd>IN: Identifier of datatype to query.
<dt><em>size_t *</em> <code>epos</code>
<dt><em>size_t *</em><code>spos</code>
<dd>OUT: Pointer to location to return floating-point sign bit.
<dt><em>size_t *</em><code>epos</code>
<dd>OUT: Pointer to location to return exponent bit-position.
<dt><em>size_t *</em> <code>esize</code>
<dt><em>size_t *</em><code>esize</code>
<dd>OUT: Pointer to location to return size of exponent in bits.
<dt><em>size_t *</em> <code>mpos</code>
<dt><em>size_t *</em><code>mpos</code>
<dd>OUT: Pointer to location to return mantissa bit-position.
<dt><em>size_t *</em> <code>msize</code>
<dt><em>size_t *</em><code>msize</code>
<dd>OUT: Pointer to location to return size of mantissa in bits.
</dl>
<dt><strong>Returns:</strong>
@@ -1108,6 +1213,7 @@ zero.
<dt><strong>Name:</strong> <a name="Datatype-SetFields">H5Tset_fields</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t </em><code>H5Tset_fields</code>(<em>hid_t </em><code>type_id</code>,
<em>size_t</em> <code>spos</code>,
<em>size_t</em> <code>epos</code>,
<em>size_t</em> <code>esize</code>,
<em>size_t</em> <code>mpos</code>,
@@ -1116,8 +1222,8 @@ zero.
<dt><strong>Purpose:</strong>
<dd>Sets locations and sizes of floating point bit fields.
<dt><strong>Description:</strong>
<dd><code>H5Tset_fields</code> sets the locations and sizes of the various floating
point bit fields. The field positions are bit positions in the
<dd><code>H5Tset_fields</code> sets the locations and sizes of the various
floating-point bit fields. The field positions are bit positions in the
significant region of the datatype. Bits are numbered with the least
significant bit number zero.
@@ -1127,6 +1233,9 @@ zero.
<dl>
<dt><em>hid_t</em> <code>type_id</code>
<dd>Identifier of datatype to set.
<dt><em>size_t</em> <code>spos</code>
<dd>Sign position, i.e., the bit offset of the floating-point
sign bit.
<dt><em>size_t</em> <code>epos</code>
<dd>Exponent bit position.
<dt><em>size_t</em> <code>esize</code>
@@ -1441,7 +1550,7 @@ zero.
<dl>
<dt><strong>Name:</strong> <a name="Datatype-GetNmembers">H5Tget_nmembers</a>
<dt><strong>Signature:</strong>
<dd><em>intn </em><code>H5Tget_nmembers</code>(<em>hid_t </em><code>type_id</code>
<dd><em>int </em><code>H5Tget_nmembers</code>(<em>hid_t </em><code>type_id</code>
)
<dt><strong>Purpose:</strong>
<dd>Retrieves the number of fields in a compound datatype.
@@ -1487,6 +1596,37 @@ zero.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-GetMemberOffset">H5Tget_member_offset</a>
<dt><strong>Signature:</strong>
<dd><em>size_t</em> <code>H5Tget_member_offset</code>(<em>hid_t </em><code>type_id</code>,
<em>int</em> <code>memb_no</code>
)
<dt><strong>Purpose:</strong>
<dd>Retrieves the offset of a field of a compound datatype.
<dt><strong>Description:</strong>
<dd><code>H5Tget_member_offset</code> retrieves the
byte offset of the beginning of a field within a
compound datatype with respect to the beginning
of the compound data type datum.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>type_id</code>
<dd>Identifier of datatype to query.
<dt><em>int</em> <code>memb_no</code>
<dd>Number of the field whose offset is requested.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns the byte offset of the field if successful;
otherwise returns <code>0</code> (zero).
Note that zero is a valid offset and that this function
will fail only if a call to <code>H5Tget_member_dims()</code>
fails with the same arguments.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-GetMemberDims">H5Tget_member_dims</a>
@@ -1556,7 +1696,7 @@ zero.
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Tinsert</code>(<em>hid_t </em><code>type_id</code>,
<em>const char *</em> <code>name</code>,
<em>off_t</em> <code>offset</code>,
<em>size_t</em> <code>offset</code>,
<em>hid_t</em> <code>field_id</code>
)
<dt><strong>Purpose:</strong>
@@ -1569,16 +1709,15 @@ zero.
in an instance of the compound datatype, and <code>field_id</code>
is the datatype identifier of the new member.
<P>
Note: All members of a compound datatype must be atomic; a
compound datatype cannot have a member which is a compound
datatype.
Note: Members of a compound datatype do not have to be atomic datatypes;
a compound datatype can have a member which is a compound datatype.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>type_id</code>
<dd>Identifier of compound datatype to modify.
<dt><em>const char *</em> <code>name</code>
<dd>Name of the field to insert.
<dt><em>off_t</em> <code>offset</code>
<dt><em>size_t</em> <code>offset</code>
<dd>Offset in memory structure of the field to insert.
<dt><em>hid_t</em> <code>field_id</code>
<dd>Datatype identifier of the field to insert.
@@ -1613,38 +1752,63 @@ zero.
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-RegisterHard">H5Tregister_hard</a>
<dt><strong>Name:</strong> <a name="Datatype-Register">H5Tregister</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Tregister_hard</code>(<em>const char
*</em> <code>name</code>, <em>hid_t </em><code>src_id</code>,
<dd><em>herr_t</em> <code>H5Tregister</code>(<em>H5T_pers_t</em> <code>pers</code>,
<em>const char *</em> <code>name</code>,
<em>hid_t </em><code>src_id</code>,
<em>hid_t</em> <code>dst_id</code>,
<em>H5T_conv_t</em> <code>func</code>
)
<dt><strong>Purpose:</strong>
<dd>Registers a hard conversion function.
<dd>Registers a conversion function.
<dt><strong>Description:</strong>
<dd><code>H5Tregister_hard</code> registers a hard conversion function for a datatype
conversion path. The path is specified by the source and destination
datatypes <code>src_id</code> and <code>dst_id</code>. A conversion
path can only have one hard function, so <code>func</code> replaces any
previous hard function.
<dd><code>H5Tregister</code> registers a hard or soft conversion function
for a datatype conversion path.
<p>
If <code>func</code> is the null pointer then any hard function
registered for this path is removed from this path. The soft functions
are then used when determining which conversion function is appropriate
for this path. The <code>name</code> argument is used only
for debugging and should be a short identifier for the function.
The parameter <code>pers</code> indicates whether a conversion function
is <em>hard</em> (<code>H5T_PERS_HARD</code>)
or <em>soft</em> (<code>H5T_PERS_SOFT</code>).
<p>
A conversion path can have only one hard function.
When <code>pers</code> is <code>H5T_PERS_HARD</code>,
<code>func</code> replaces any previous hard function.
If <code>pers</code> is <code>H5T_PERS_HARD</code>
and <code>func</code> is the null pointer, then any hard function
registered for this path is removed.
<p>
When <code>pers</code> is <code>H5T_PERS_SOFT</code>,
<code>H5Tregister</code>
adds the function to the end of the master soft list and replaces
the soft function in all applicable existing conversion paths.
Soft functions are used when determining which conversion function
is appropriate for this path.
<p>
The <code>name</code> is used only for debugging and should be a
short identifier for the function.
<p>
The path is specified by the source and destination datatypes
<code>src_id</code> and <code>dst_id</code>.
For soft conversion functions, only the class of these types is important.
<p>
The type of the conversion function pointer is declared as:
<br>
<code>typedef</code> <em>herr_t </em>(<code>*H5T_conv_t</code>) (<em>hid_t </em><code>src_id</code>,
<dl>
<dd><code>typedef</code> <em>herr_t </em>(<code>*H5T_conv_t</code>)
(<em>hid_t </em><code>src_id</code>,
<em>hid_t </em><code>dst_id</code>,
<em>H5T_cdata_t *</em><code>cdata</code>,
<em>size_t </em><code>nelmts</code>,
<em>size_t </em><code>buf_stride</code>,
<em>size_t </em><code>bkg_stride</code>,
<em>void *</em><code>buf</code>,
<em>void *</em><code>bkg)</code>;
<em>void *</em><code>bkg</code>,
<em>hid_t </em><code>dset_xfer_plist</code>);
</dl>
<dt><strong>Parameters:</strong>
<dl>
<dt><em>H5T_pers_t</em> <code>pers</code>
<dd><code>H5T_PERS_HARD</code> for hard conversion functions;
<code>H5T_PERS_SOFT</code> for soft conversion functions.
<dt><em>const char *</em> <code>name</code>
<dd>Name displayed in diagnostic output.
<dt><em>hid_t</em> <code>src_id</code>
@@ -1660,49 +1824,6 @@ zero.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-RegisterSoft">H5Tregister_soft</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Tregister_soft</code>(<em>const char
*</em> <code>name</code>, <em>H5T_class_t </em><code>src_cls</code>,
<em>H5T_class_t</em> <code>dst_cls</code>,
<em>H5T_conv_t</em> <code>func</code>
)
<dt><strong>Purpose:</strong>
<dd>Registers a soft conversion function.
<dt><strong>Description:</strong>
<dd><code>H5Tregister_soft</code> registers a soft conversion function by adding it to the
end of the master soft list and replacing the soft function in all
applicable existing conversion paths. The <code>name</code>
is used only for debugging and should be a short identifier
for the function.
<P>
The type of the conversion function pointer is declared as:
<br>
<code>typedef</code> <em>herr_t </em>(<code>*H5T_conv_t</code>) (<em>hid_t </em><code>src_id</code>,
<em>hid_t </em><code>dst_id</code>,
<em>H5T_cdata_t *</em><code>cdata</code>,
<em>size_t </em><code>nelmts</code>,
<em>void *</em><code>buf</code>,
<em>void *</em><code>bkg)</code>;
<dt><strong>Parameters:</strong>
<dl>
<dt><em>const char *</em> <code>name</code>
<dd>Name displayed in diagnostic output.
<dt><em>H5T_class_t</em> <code>src_cls</code>
<dd>Identifier of source datatype class.
<dt><em>H5T_class_t</em> <code>dst_cls</code>
<dd>Identifier of destination datatype class.
<dt><em>H5T_conv_t</em> <code>func</code>
<dd>Function to convert between source and destination datatypes.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-Unregister">H5Tunregister</a>
@@ -1714,14 +1835,8 @@ zero.
<dt><strong>Description:</strong>
<dd><code>H5Tunregister</code> removes a conversion function from all conversion paths.
<P>
The type of the conversion function pointer is declared as:
<br>
<code>typedef</code> <em>herr_t </em>(<code>*H5T_conv_t</code>) (<em>hid_t </em><code>src_id</code>,
<em>hid_t </em><code>dst_id</code>,
<em>H5T_cdata_t *</em><code>cdata</code>,
<em>size_t </em><code>nelmts</code>,
<em>void *</em><code>buf</code>,
<em>void *</em><code>bkg)</code>;
The conversion function pointer type declaration is described in
<a href="#Datatype-Register">H5Tregister</a>.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>H5T_conv_t</em> <code>func</code>
@@ -1733,6 +1848,224 @@ zero.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-EnumCreate">H5Tenum_create</a>
<dt><strong>Signature:</strong>
<dd><em>hid_t</em> <code>H5Tenum_create</code>(<em>hid_t</em> <code>parent_id</code>
)
<dt><strong>Purpose:</strong>
<dd>Creates a new enumeration datatype.
<dt><strong>Description:</strong>
<dd><code>H5Tenum_create</code> creates a new enumeration datatype
based on the specified base datatype, <code>parent_id</code>,
which must be an integer type.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>parent_id</code>
<dd>IN: Datatype identifier for the base datatype.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns the datatype identifier for the new enumeration datatype if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-EnumInsert">H5Tenum_insert</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Tenum_insert</code>(<em>hid_t</em> <code>type</code>,
<em>const char</em> *<code>name</code>,
<em>void</em> *<code>value</code>
)
<dt><strong>Purpose:</strong>
<dd>Inserts a new enumeration datatype member.
<dt><strong>Description:</strong>
<dd><code>H5Tenum_insert</code> inserts a
new enumeration datatype member into an enumeration datatype.
<p>
<code>type</code> is the enumeration datatype,
<code>name</code> is the name of the new member, and
<code>value</code> points to the value of the new member.
<p>
<code>name</code> and <code>value</code> must both
be unique within <code>type</code>.
<p>
<code>value</code> points to data which is of the
datatype defined when the enumeration datatype was created.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>type</code>
<dd>IN: Datatype identifier for the enumeration datatype.
<dt><em>const char</em> *<code>name</code>
<dd>IN: Name of the new member.
<dt><em>void</em> *<code>value</code>
<dd>IN: Pointer to the value of the new member.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-EnumNameOf">H5Tenum_nameof</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Tenum_nameof</code>(<em>hid_t</em> <code>type</code>
<em>void</em> *<code>value</code>,
<em>char</em> *<code>name</code>,
<em>size_t</em> <code>size</code>
)
<dt><strong>Purpose:</strong>
<dd>Returns the symbol name corresponding to a specified member of an enumeration datatype.
<dt><strong>Description:</strong>
<dd><code>H5Tenum_nameof</code> finds the symbol name that
corresponds to the specified <code>value</code>
of the enumeration datatype <code>type</code>.
<p>
At most <code>size</code> characters of the symbol
name are copied into the <code>name</code> buffer.
If the entire symbol name and null terminator
do not fit in the <code>name</code> buffer, then as
many characters as possible are copied
(not null terminated) and the function fails.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>type</code>
<dd>IN: Enumeration datatype identifier.
<dt><em>void</em> *<code>value</code>,
<dd>IN: Value of the enumeration datatype.
<dt><em>char</em> *<code>name</code>,
<dd>OUT: Buffer for output of the symbol name.
<dt><em>size_t</em> <code>size</code>
<dd>IN: Anticipated size of the symbol name, in bytes (characters).
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful.
Otherwise returns a negative value
and, if <code>size</code> allows it,
the first character of <code>name</code> is
set to <code>NULL</code>.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-EnumValueOf">H5Tenum_valueof</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Tenum_valueof</code>(<em>hid_t</em> <code>type</code>
<em>char</em> *<code>name</code>,
<em>void</em> *<code>value</code>
)
<dt><strong>Purpose:</strong>
<dd>Returns the value corresponding to a specified member of an enumeration datatype.
<dt><strong>Description:</strong>
<dd><code>H5Tenum_valueof</code> finds the value that
corresponds to the specified <code>name</code>
of the enumeration datatype <code>type</code>.
<p>
The <code>value</code> argument should be at least
as large as the value of <code>H5Tget_size(type)</code>
in order to hold the result.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>type</code>
<dd>IN: Enumeration datatype identifier.
<dt><em>const char</em> *<code>name</code>,
<dd>IN: Symbol name of the enumeration datatype.
<dt><em>void</em> *<code>value</code>,
<dd>OUT: Buffer for output of the value of the enumeration datatype.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-GetMemberValue">H5Tget_member_value</a>
<dt><strong>Signature:</strong>
<dd><em>hid_t</em> <code>H5Tget_member_value</code>(<em>hid_t</em> <code>type</code>
<em>int</em> <code>memb_no</code>,
<em>void</em> *<code>value</code>
)
<dt><strong>Purpose:</strong>
<dd>Returns the value of an enumeration datatype member.
<dt><strong>Description:</strong>
<dd><code>H5Tget_member_value</code> returns the value of
the enumeration datatype member <code>memb_no</code>.
<p>
The member value is returned in a user-supplied buffer
pointed to by <code>value</code>.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>type</code>
<dd>IN: Datatype identifier for the enumeration datatype.
<dt><em>int</em> <code>memb_no</code>,
<dd>IN: Number of the enumeration datatype member.
<dt><em>void</em> *<code>value</code>
<dd>OUT: Pointer to a buffer for output of the
value of the enumeration datatype member.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-SetTag">H5Tset_tag</a>
<dt><strong>Signature:</strong>
<dd><em>herr_t</em> <code>H5Tset_tag</code>(<em>hid_t</em> <code>type_id</code>
<em>const char</em> *<code>tag</code>
)
<dt><strong>Purpose:</strong>
<dd>Tags an opaque datatype.
<dt><strong>Description:</strong>
<dd><code>H5Tset_tag</code> tags an opaque datatype <code>type_id</code>
with a unique ASCII identifier <code>tag</code>.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>type_id</code>
<dd>IN: Datatype identifier for the opaque datatype to be tagged.
<dt><em>const char</em> *<code>tag</code>
<dd>IN: Unique ASCII string with which the opaque datatype is to be tagged.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a non-negative value if successful;
otherwise returns a negative value.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-GetTag">H5Tget_tag</a>
<dt><strong>Signature:</strong>
<dd><em>char</em> *<code>H5Tget_tag</code>(<em>hid_t</em> <code>type_id</code>
)
<dt><strong>Purpose:</strong>
<dd>Gets the tag associated with an opaque datatype.
<dt><strong>Description:</strong>
<dd><code>H5Tget_tag</code> returns the tag associated with
the opaque datatype <code>type_id</code>.
<P>
The tag is returned via a pointer to an
allocated string, which the caller must free.
<dt><strong>Parameters:</strong>
<dl>
<dt><em>hid_t</em> <code>type_id</code>
<dd>Datatype identifier for the opaque datatype.
</dl>
<dt><strong>Returns:</strong>
<dd>Returns a pointer to an allocated string if successful;
otherwise returns <code>NULL</code>.
</dl>
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Datatype-Close">H5Tclose</a>
@@ -1760,9 +2093,9 @@ zero.
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -1794,9 +2127,11 @@ H5T&nbsp;&nbsp;
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 9 June 2000
<br>
Last modified: 30 October 1998
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -10,9 +10,9 @@ HDF5/H5Z API Specification
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -120,9 +120,9 @@ See <a href="Compression.html"><cite>Compression</cite></a> in the
<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="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
@@ -154,9 +154,11 @@ H5Z&nbsp;&nbsp;
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
<br>
Last modified: 30 October 1998
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Ragged Arrays</title>
<title>Ragged Array Experimental Interface (H5RA)</title>
</head>
<body bgcolor="#FFFFFF">
@@ -11,56 +11,39 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
Ragged Arrays&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -97,7 +80,7 @@ Do not create any archives using this interface!</center>
rows. The number of rows and the length of each row can be
changed at any time (the current version does not support
truncating an array by removing rows). All elements of the
ragged array have the same data type and, as with datasets, the
ragged array have the same datatype and, as with datasets, the
data is type-converted between memory buffers and files.
<p>The current implementation works best when most of the rows are
@@ -138,7 +121,7 @@ Do not create any archives using this interface!</center>
independently). The dataset creation property list
<em>plist</em> defines the width of the <em>raw</em> dataset;
a nominal row is considered to be the width of a chunk. The
<em>type</em> argument defines the data type which will be
<em>type</em> argument defines the datatype which will be
stored in the file. A negative value is returned if the array
cannot be created.
@@ -172,7 +155,7 @@ Do not create any archives using this interface!</center>
*<em>buf</em>[])</code>
<dd>A set of ragged array rows beginning at <em>start_row</em>
and continuing for <em>nrows</em> is written to the file,
converting the memory data type <em>type</em> to the file data
converting the memory datatype <em>type</em> to the file data
type which was defined when the array was created. The number
of elements to write from each row is specified in the
<em>size</em> array and the data for each row is pointed to
@@ -187,8 +170,8 @@ Do not create any archives using this interface!</center>
*<em>buf</em>[])</code>
<dd>A set of ragged array rows beginning at <em>start_row</em>
and continuing for <em>nrows</em> is read from the file,
converting from the file data type which was defined when the
array was created to the memory data type <em>type</em>. The
converting from the file datatype which was defined when the
array was created to the memory datatype <em>type</em>. The
number of elements to read from each row is specified in the
<em>size</em> array and the buffers in which to place the
results are pointed to by the <em>buf</em> array. On return,
@@ -208,78 +191,56 @@ Do not create any archives using this interface!</center>
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
<a href="References.html">References</a>&nbsp;&nbsp;
<br>
<a href="References.html">References</a>&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
Ragged Arrays&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<!--
<hr>
<address><a href="mailto:matzke@llnl.gov">Robb Matzke</a></address>
-->
<!-- Created: Wed Aug 26 14:10:32 EDT 1998 -->
<!-- hhmts start -->
<!--
Last modified: Fri Aug 28 14:27:19 EDT 1998
-->
<!-- hhmts end -->
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
<!-- Created: Wed Aug 26 14:10:32 EDT 1998 -->
<!-- hhmts start -->
Last modified: 14 October 1999
<!-- hhmts end -->
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>References</title>
<title>Reference (H5R) and Identifier Interfaces (H5I)</title>
</head>
<body bgcolor="#FFFFFF">
@@ -11,56 +11,39 @@
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
References&nbsp;&nbsp;
<br>
References&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -206,7 +189,7 @@ The H5I function is also useful outside the context of references.
<tr><td><code>H5I_GROUP</code></td>
<td>Group objects</td></tr>
<tr><td><code>H5I_DATATYPE</code></td>
<td>Data type objects</td></tr>
<td>Datatype objects</td></tr>
<tr><td><code>H5I_DATASPACE</code></td>
<td>Dataspace objects</td></tr>
<tr><td><code>H5I_DATASET</code></td>
@@ -219,7 +202,7 @@ The H5I function is also useful outside the context of references.
This function was inspired by the need of users to figure
out which type of object closing function
(<code>H5Dclose</code>, <code>H5Gclose</code>, etc.)
to call after a call to <code>H5Ddereference</code>,
to call after a call to <code>H5Rdereference</code>,
but it is also of general use.
<p>
</dl>
@@ -494,7 +477,7 @@ Notes:
<h2>Comments</h2>
<pre>
Reference types are atomic types and may be included as fields in compound
data types.
datatypes.
There are (at least) three levels of reference strength:
Weak - We allow the user to store any type of reference in an array
@@ -502,14 +485,14 @@ Notes:
could be a mix of Object, Dataset Region and Internal references)
Medium - We force the user to stick with a particular type of
reference within a dataset, but the datasets pointed to (with
Object and Dataset Region references) may be of any data type
Object and Dataset Region references) may be of any datatype
or dataspace.
Strong - We force the user to stick with a particular type of
reference and Object and Dataset Region references must point to
datasets with the same data type.
datasets with the same datatype.
Extra Strong - We force the user to stick with a particular type of
reference and Object and Dataset Region references must point to
datasets with the same data type _and_ dataspace.
datasets with the same datatype <i>and</i> dataspace.
The library is currently implemented with "medium" strength references.
</pre>
@@ -613,56 +596,39 @@ Notes:
<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="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="H5.user.html"><strong>HDF5 User's Guide:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
<br>
<a href="Files.html">Files</a>&nbsp;&nbsp;
<a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
<a href="Datatypes.html">Data Types</a>&nbsp;&nbsp;
<a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
<a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
<a href="Groups.html">Groups</a>&nbsp;&nbsp;
References&nbsp;&nbsp;
<br>
References&nbsp;&nbsp;
<a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
<a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
<a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
<br>
<a href="Filters.html">Filters</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
<br>
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Performance.html">Performance</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
<br>
<a href="Ragged.html">Ragged Arrays</a>&nbsp;&nbsp;
<!--
<hr>
And in this document, the
<a href="H5.user.html">HDF5 User's Guide</a>:&nbsp;&nbsp;&nbsp;&nbsp;
<a href="Attributes.html">H5A</a>&nbsp;&nbsp;
<a href="Datasets.html">H5D</a>&nbsp;&nbsp;
<a href="Errors.html">H5E</a>&nbsp;&nbsp;
<a href="Files.html">H5F</a>&nbsp;&nbsp;
<a href="Groups.html">H5G</a>&nbsp;&nbsp;
<a href="Properties.html">H5P</a>&nbsp;&nbsp;
<a href="References.html">H5R & H5I</a>&nbsp;&nbsp;
<a href="Ragged.html">H5RA</a>&nbsp;&nbsp;
<a href="Dataspaces.html">H5S</a>&nbsp;&nbsp;
<a href="Datatypes.html">H5T</a>&nbsp;&nbsp;
<a href="Filters.html">H5Z</a>&nbsp;&nbsp;
<a href="Caching.html">Caching</a>&nbsp;&nbsp;
<a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
<a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
<a href="Environment.html">Environment</a>&nbsp;&nbsp;
<a href="ddl.html">DDL</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
@@ -673,7 +639,9 @@ And in this document, the
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
</address>
Last modified: 30 October 1998
Last modified: 14 October 1999
<br>
Describes HDF5 Release 1.2.2, June 2000
</body>
</html>

211
doc/html/TechNotes.html Normal file
View File

@@ -0,0 +1,211 @@
<html>
<head><title>
HDF5 Technical Notes
</title></head>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table cellspacing=0 cellpadding=0 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="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<a href="ADGuide.html">HDF5 Application Developer's Guide</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<!--
And in this document,
HDF5 Technical Notes&nbsp;&nbsp;
<br>
<a href="TechNotes/FreeLists.html">Memory Management and Free Lists</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<br>
<br>
<center>
<h1>HDF5 Technical Notes</h1>
<h3>Technical Notes for HDF5 Library and Driver Developers</h3>
</center>
<center>
<table border=0 width=85%>
<tr><td valign=top colspan=3>
This informal volume of technical notes is of interest to
those who develop and maintain the HDF5 library and
related, closely-coupled drivers.
These notes are not generally of interest to applications developers
and certainly not of interest to users.
(Some of these documents may be somewhat out of date as they were
working papers for the design process.)
<br>
<br>
</td></tr>
<tr><td valign=top width=40%><a href="TechNotes/MemoryMgmt.html">
Memory Management</a>
</td><td>&nbsp;</td><td valign=top>
A discussion of memory management issues in HDF5
</td></tr>
<tr><td valign=top><a href="TechNotes/FreeLists.html">
Memory Management and</a>
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<a href="TechNotes/FreeLists.html">Free Lists</a>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
Notes regarding the implementation of free lists and memory management
</td></tr>
<tr><td valign=top><a href="TechNotes/HeapMgmt.html">Heap Management</a>
</td><td>&nbsp;</td><td valign=top>
A discussion of the H5H heap management fuctions
</td></tr>
<tr><td valign=top><a href="TechNotes/RawDStorage.html">Raw Data Storage</a>
</td><td>&nbsp;</td><td valign=top>
A discussion of the storage of raw HDF5 data
</td></tr>
<tr><td valign=top><a href="TechNotes/IOPipe.html">I/O Pipeline</a>
</td><td>&nbsp;</td><td valign=top>
A description of the raw data I/O pipeline
</td></tr>
<tr><td valign=top><a href="TechNotes/BigDataSmMach.html">
Large Datasets on Small</a>
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<a href="TechNotes/BigDataSmMach.html">Machines</a>
</td><td>&nbsp;</td><td valign=top>
A guide to accessing large datasets on small computers
</td></tr>
<tr><td valign=top><a href="TechNotes/MoveDStruct.html">
Relocating a File Data</a>
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<a href="TechNotes/MoveDStruct.html">Structure</a>
</td><td>&nbsp;</td><td valign=top>
A discussion of the issues involved in moving file data structures once
they have been cached in memory
</td></tr>
<tr><td valign=top><a href="TechNotes/ExternalFiles.html">
Working with External Files</a>
</td><td>&nbsp;</td><td valign=top>
A guide to the use of multiple files with HDF5
</td></tr>
<tr><td valign=top><a href="TechNotes/ObjectHeader.html">Object Headers</a>
</td><td>&nbsp;</td><td valign=top>
A discussion of the H5O object header functions
</td></tr>
<tr><td valign=top><a href="TechNotes/SymbolTables.html">
Symbol Table Caching Issues</a>
</td><td>&nbsp;</td><td valign=top>
A discussion of issues involving caching of object header messages in
symbol table entries
</td></tr>
<tr><td valign=top><a href="TechNotes/H4-H5Compat.html">
HDF4/HDF5 Compatibility</a>
</td><td>&nbsp;</td><td valign=top>
A discussion of compatibility issues between HDF4 and HDF5
</td></tr>
<tr><td valign=top><a href="TechNotes/ChunkingStudy.html">
Testing the Chunked Layout</a>
<br>&nbsp;&nbsp;&nbsp;&nbsp;
<a href="TechNotes/ChunkingStudy.html">of HDF5</a>
</td><td>&nbsp;</td><td valign=top>
A white paper discussing the motivation to implement raw data chunking
in the HDF5 library
</td></tr>
<tr><td valign=top><a href="TechNotes/LibMaint.html">Library Maintenance</a>
</td><td>&nbsp;</td><td valign=top>
A discussion of HDF5 library maintenance issues
</td></tr>
<tr><td valign=top><a href="TechNotes/CodeReview.html">Code Review</a>
</td><td>&nbsp;</td><td valign=top>
Code Review 1 and 2
</td></tr>
<tr><td valign=top><a href="TechNotes/Version.html">
Release Version Numbers</a>
</td><td>&nbsp;</td><td valign=top>
A description of HDF5 release version numbers
</td></tr>
<tr><td valign=top><a href="TechNotes/NamingScheme.html">Naming Schemes</a>
</td><td>&nbsp;</td><td valign=top>
A discussion of naming schemes for HDF5 library modules, functions,
datatypes, etc.
</td></tr>
</table>
</center>
<br>
<br>
<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="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
<a href="H5.user.html">HDF5 User's Guide</a>&nbsp;<br>
<a href="ADGuide.html">HDF5 Application Developer's Guide</a>&nbsp;<br>
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
<!--
And in this document,
HDF5 Technical Notes&nbsp;&nbsp;
<br>
<a href="TechNotes/FreeLists.html">Memory Management and Free Lists</a>&nbsp;&nbsp;
-->
</td></tr>
</table>
</center>
<hr>
<address>
<table width=100% border=0>
<tr><td align=left valign=top>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<br>
Last modified: 9 May 1999
</td><td align=right valign=top>
<a href="Copyright.html">Copyright</a>&nbsp;&nbsp;
<br>
Describes HDF5 Release 1.2.2, June 2000
</td></tr>
</table>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@@ -0,0 +1,113 @@
%TGIF 3.0-p5
state(0,33,100,0,0,0,16,1,9,1,1,0,0,3,7,1,1,'Helvetica',0,24,0,0,0,10,0,0,1,1,0,16,0,0,1,1,1,0,1088,1408,0,0,2880).
%
% @(#)$Header$
% %W%
%
unit("1 pixel/pixel").
page(1,"",1).
box('black',64,64,384,384,0,1,1,22,0,0,0,0,0,'1',[
]).
poly('black',2,[
128,64,128,384],0,1,1,23,0,0,0,0,8,3,0,0,0,'1','8','3',
"0",[
]).
poly('black',2,[
192,64,192,384],0,1,1,24,0,0,0,0,8,3,0,0,0,'1','8','3',
"0",[
]).
poly('black',2,[
256,64,256,384],0,1,1,25,0,0,0,0,8,3,0,0,0,'1','8','3',
"0",[
]).
poly('black',2,[
320,64,320,384],0,1,1,26,0,0,0,0,8,3,0,0,0,'1','8','3',
"0",[
]).
poly('black',2,[
64,128,384,128],0,1,1,27,0,0,0,0,8,3,0,0,0,'1','8','3',
"0",[
]).
poly('black',2,[
64,192,384,192],0,1,1,28,0,0,0,0,8,3,0,0,0,'1','8','3',
"0",[
]).
poly('black',2,[
64,256,384,256],0,1,1,29,0,0,0,0,8,3,0,0,0,'1','8','3',
"0",[
]).
poly('black',2,[
64,320,384,320],0,1,1,30,0,0,0,0,8,3,0,0,0,'1','8','3',
"0",[
]).
text('black',96,80,'Courier',0,17,1,1,0,1,7,14,37,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"1"]).
text('black',160,80,'Courier',0,17,1,1,0,1,7,14,39,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"2"]).
text('black',224,80,'Courier',0,17,1,1,0,1,7,14,41,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"3"]).
text('black',288,80,'Courier',0,17,1,1,0,1,7,14,43,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"4"]).
text('black',352,80,'Courier',0,17,1,1,0,1,7,14,47,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"5"]).
text('black',96,144,'Courier',0,17,1,1,0,1,7,14,51,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"6"]).
text('black',160,144,'Courier',0,17,1,1,0,1,7,14,53,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"7"]).
text('black',224,144,'Courier',0,17,1,1,0,1,7,14,55,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"8"]).
text('black',288,144,'Courier',0,17,1,1,0,1,7,14,57,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"9"]).
text('black',352,144,'Courier',0,17,1,1,0,1,14,14,59,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"10"]).
text('black',96,208,'Courier',0,17,1,1,0,1,14,14,61,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"11"]).
text('black',160,208,'Courier',0,17,1,1,0,1,14,14,63,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"12"]).
text('black',224,208,'Courier',0,17,1,1,0,1,14,14,65,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"13"]).
text('black',288,208,'Courier',0,17,1,1,0,1,14,14,67,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"14"]).
text('black',352,208,'Courier',0,17,1,1,0,1,14,14,71,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"15"]).
text('black',96,272,'Courier',0,17,1,1,0,1,14,14,75,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"16"]).
text('black',160,272,'Courier',0,17,1,1,0,1,14,14,77,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"17"]).
text('black',224,272,'Courier',0,17,1,1,0,1,14,14,79,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"18"]).
text('black',288,272,'Courier',0,17,1,1,0,1,14,14,81,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"19"]).
text('black',352,272,'Courier',0,17,1,1,0,1,14,14,83,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"20"]).
text('black',96,336,'Courier',0,17,1,1,0,1,14,14,87,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"21"]).
text('black',160,336,'Courier',0,17,1,1,0,1,14,14,89,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"22"]).
text('black',224,336,'Courier',0,17,1,1,0,1,14,14,91,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"23"]).
text('black',288,336,'Courier',0,17,1,1,0,1,14,14,93,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"24"]).
text('black',352,336,'Courier',0,17,1,1,0,1,14,14,95,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"25"]).
poly('black',2,[
416,64,416,384],3,1,1,100,0,0,0,0,8,3,0,0,0,'1','8','3',
"0",[
]).
poly('black',2,[
64,416,384,416],3,1,1,101,0,0,0,0,8,3,0,0,0,'1','8','3',
"0",[
]).
text('black',390,228,'Courier',0,17,1,0,0,1,14,35,102,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,1,0,[
390,228,390,228,425,242,0,-1000,1000,0,34,18,389,227,426,243],[
"5,000"]).
text('black',224,432,'Courier',0,17,1,1,0,1,35,14,116,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"5,000"]).
text('black',160,512,'Courier',0,17,1,0,0,1,105,14,131,0,11,3,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"= 1,000 x 1,000"]).
box('black',80,480,144,544,7,1,1,134,0,0,0,0,0,'1',[
]).
text('black',224,16,'Helvetica',0,24,1,1,0,1,296,29,144,0,24,5,0,0,0,0,0,2,0,0,0,0,"",0,0,0,[
"Order that data was written"]).
box('black',32,0,464,576,0,1,1,149,0,0,0,0,0,'1',[
]).

View File

@@ -0,0 +1,190 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Testing the chunked layout of HDF5</title>
</head>
<body>
<i>
This document is of interest primarily for its discussion of the
HDF team's motivation for implementing raw data caching.
At a more abstract level, the discussion of the principles of
data chunking is also of interest, but a more recent discussion
of that topic can be found in
<a href="../Chunking.html">Dataset Chunking Issues</a> in the
<cite><a href="../H5.user.html">HDF5 User's Guide</a></cite>.
The performance study described here predates the current chunking
implementation in the HDF5 library, so the particular performance data
is no longer apropos.
&nbsp;&nbsp;&nbsp;&nbsp; --&nbsp;the Editor
</i>
<h1>Testing the chunked layout of HDF5</h1>
<p>This is the results of studying the chunked layout policy in
HDF5. A 1000 by 1000 array of integers was written to a file
dataset extending the dataset with each write to create, in the
end, a 5000 by 5000 array of 4-byte integers for a total data
storage size of 100 million bytes.
<p>
<center>
<img alt="Order that data was written" src="ChStudy_p1.gif">
<br><b>Fig 1: Write-order of Output Blocks</b>
</center>
<p>After the array was written, it was read back in blocks that
were 500 by 500 bytes in row major order (that is, the top-left
quadrant of output block one, then the top-right quadrant of
output block one, then the top-left quadrant of output block 2,
etc.).
<p>I tried to answer two questions:
<ul>
<li>How does the storage overhead change as the chunk size
changes?
<li>What does the disk seek pattern look like as the chunk size
changes?
</ul>
<p>I started with chunk sizes that were multiples of the read
block size or k*(500, 500).
<p>
<center>
<table border>
<caption align=bottom>
<b>Table 1: Total File Overhead</b>
</caption>
<tr>
<th>Chunk Size (elements)</th>
<th>Meta Data Overhead (ppm)</th>
<th>Raw Data Overhead (ppm)</th>
</tr>
<tr align=center>
<td>500 by 500</td>
<td>85.84</td>
<td>0.00</td>
</tr>
<tr align=center>
<td>1000 by 1000</td>
<td>23.08</td>
<td>0.00</td>
</tr>
<tr align=center>
<td>5000 by 1000</td>
<td>23.08</td>
<td>0.00</td>
</tr>
<tr align=center>
<td>250 by 250</td>
<td>253.30</td>
<td>0.00</td>
</tr>
<tr align=center>
<td>499 by 499</td>
<td>85.84</td>
<td>205164.84</td>
</tr>
</table>
</center>
<hr>
<p>
<center>
<img alt="500x500" src="ChStudy_500x500.gif">
<br><b>Fig 2: Chunk size is 500x500</b>
</center>
<p>The first half of Figure 2 shows output to the file while the
second half shows input. Each dot represents a file-level I/O
request and the lines that connect the dots are for visual
clarity. The size of the request is not indicated in the
graph. The output block size is four times the chunk size which
results in four file-level write requests per block for a total
of 100 requests. Since file space for the chunks was allocated
in output order, and the input block size is 1/4 the output
block size, the input shows a staircase effect. Each input
request results in one file-level read request. The downward
spike at about the 60-millionth byte is probably the result of a
cache miss for the B-tree and the downward spike at the end is
probably a cache flush or file boot block update.
<hr>
<p>
<center>
<img alt="1000x1000" src="ChStudy_1000x1000.gif">
<br><b>Fig 2: Chunk size is 1000x1000</b>
</center>
<p>In this test I increased the chunk size to match the output
chunk size and one can see from the first half of the graph that
25 file-level write requests were issued, one for each output
block. The read half of the test shows that four times the
amount of data was read as written. This results from the fact
that HDF5 must read the entire chunk for any request that falls
within that chunk, which is done because (1) if the data is
compressed the entire chunk must be decompressed, and (2) the
library assumes that a chunk size was chosen to optimize disk
performance.
<hr>
<p>
<center>
<img alt="5000x1000" src="ChStudy_5000x1000.gif">
<br><b>Fig 3: Chunk size is 5000x1000</b>
</center>
<p>Increasing the chunk size further results in even worse
performance since both the read and write halves of the test are
re-reading and re-writing vast amounts of data. This proves
that one should be careful that chunk sizes are not much larger
than the typical partial I/O request.
<hr>
<p>
<center>
<img alt="250x250" src="ChStudy_250x250.gif">
<br><b>Fig 4: Chunk size is 250x250</b>
</center>
<p>If the chunk size is decreased then the amount of data
transfered between the disk and library is optimal for no
caching, but the amount of meta data required to describe the
chunk locations increases to 250 parts per million. One can
also see that the final downward spike contains more file-level
write requests as the meta data is flushed to disk just before
the file is closed.
<hr>
<p>
<center>
<img alt="499x499" src="ChStudy_499x499.gif">
<br><b>Fig 4: Chunk size is 499x499</b>
</center>
<p>This test shows the result of choosing a chunk size which is
close to the I/O block size. Because the total size of the
array isn't a multiple of the chunk size, the library allocates
an extra zone of chunks around the top and right edges of the
array which are only partially filled. This results in
20,516,484 extra bytes of storage, a 20% increase in the total
raw data storage size. But the amount of meta data overhead is
the same as for the 500 by 500 test. In addition, the mismatch
causes entire chunks to be read in order to update a few
elements along the edge or the chunk which results in a 3.6-fold
increase in the amount of data transfered.
<hr>
<address><a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a></address>
<!-- Created: Fri Jan 30 21:04:49 EST 1998 -->
<!-- hhmts start -->
Last modified: 30 Jan 1998 (technical content)
<br>
Last modified: 9 May 2000 (editor's note)
<!-- hhmts end -->
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More