blob: 7f3d1ea8932c2fe9e5bda3ba56f110ff19793c12 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Basic AMR Reader</title>
</head>
<body bgcolor="#F0F0F0">
<font face="arial,helvetica"><h1>Basic AMR Reader</h1></font>
This reads the file format written by the
<a href="AMRwriter.html">AMRwriter API</a>. It does not care if
the underlying file format is <a href="IEEEIO.html">IEEEIO</a> or
<a href="http://hdf.ncsa.uiuc.edu">HDF-SDS/NetCDF</a>.<p>
This very simplistic API reads information about each grid
stored in the AMR file into a list of
<a href="AmrGrid.html">AmrGrid datastructures</a> without
actually loading the associated grid data. The user can
then use this information to tell the AMRreader which grids to
load data for. The higher-level <a href="AMRfileReader.html">AmrFileReader</a>
provides its own filtering system for selecting grids by level
and timestep. At this time only a C++ interface is released.
C and F77 interfaces are available on request.<p>
<hr>
<font face="arial,helvetica" color="#555588"><h2>The API</h2></font>
<UL>
<LI><a href="#CPP">C++ Interface</a>
<LI><a href="#C">C Interface</a>
<LI><a href="#F77">F77/F90 Interface</a>
</UL>
<hr>
<u><h3><a name="CPP">C++ Interface</a></h3></u>
<DL>
<DT><font color="#888888"><b>Constructors/Destructors</b></font>
<DD><DL>
<DT><b>AmrGridReader::AmrGridReader(IObase
&filehandle)</b> <i>constructor</i>
<DD>The <i>filehandle</i> is an already
<a href="UsingC++.html#Opening">open IEEEIO or HDFIO
file</a>. This initializes the reader and attaches it to that
datafile.
<DT><b>AmrGridReader::~AmrGridReader()</b> <i>destructor</i>
<DD>This flushes all of the necessary file buffers.
The filehandle that the writer was bound to must be
closed separately though.
</DL><p>
<DT><font color="#888888"><b>Reading/Stepping through the
Data</b></font><br>
<DD>
Grids are indexed from 0 to nDatasets-1 (where nDatasets are
the total number of grids stored in the file). The grids are
indexed in exactly the order they are stored in the file
(there is no sorting of indices here). So its up to the user
of the API to use the <a href="AmrGrid.html">AmrGrid</a>
datastructures to select which grids to actually load data for.<p>
There are two different types of <i>"get"</i> requests that
can be filled. When you <i>"getGridInfo"</i>, only the
informational portions of the
<a href="AmrGrid.html">AmrGrid</a> datastructure are filled
out. When you <i>"getGridData"</i> then both the
grid information and associated data will be loaded into the
<a href="AmrGrid.html">AmrGrid</a> datastructure.<p>
<DT><DL>
<DT><b>AmrGrid *AmrGridReader::getGridInfo(AmrGrid &grid,int index)</b>
<DD>Fills out the informational portions of the
<a href="AmrGrid.html">AmrGrid</a> datastructure.
The <code>data</code> member of the structure is left NULL. Returns
a pointer to the AmrGrid if it is successful and a NULL if it fails.
<DT><b>AmrGrid *AmrGridReader::getGridData(AmrGrid &grid,int index)</b>
<DD>Fills out the informational portions of the
<a href="AmrGrid.html">AmrGrid</a> datastructure and also
loads the associated grid data into the <code>data</code> member of
the AmrGrid datastructure. If the <code>data</code> member is NULL,
it will allocate storage for it (which the user is responsible
for freeing), otherwise it will load the data directly into
existing storage pointed to by that member. Returns pointer
to the AmrGrid if it is successful and returns NULL if it fails.
<DT><b>AmrGrid *AmrGridReader::getGrid(AmrGrid &grid,int index)</b>
<DD>Performs the same function as
<code>AmrGridReader::getGridData()</code>. Just a more
convenient name.
<DT><b>AmrGrid *AmrGridReader::getGrid(int index)</b>
<DD>Performs the same function as
<code>AmrGridReader::getGridData()</code> except that it
allocates a new AmrGrid datastructure to store the information
and data in. The user is responsible for freeing this
structure when they are done with it though.
</DL>
<hr>
<h3><u><a name="C">C Interface</a></u></h3>
Not ready for primetime yet but available on request.
<hr>
<h3><u><a name="F77">F77/F90 Interface</a></u></h3>
Not ready for primetime yet but available on request.
<hr>
<address><a href="mailto:jshalf@ariel.ncsa.uiuc.edu"></a></address>
<!-- Created: Wed Feb 3 22:06:21 CST 1999 -->
<!-- hhmts start -->
Last modified: Thu Feb 4 15:45:03 CST 1999
<!-- hhmts end -->
</body>
</html>
|