aboutsummaryrefslogtreecommitdiff
path: root/doc/documentation.tex
blob: 0c85eb5e0fd9c7bc5ce1f1109d69988a2a510479 (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
101
102
103
104
105
106
\documentclass{article}

\parskip = 2 pt
\oddsidemargin = 0 cm
\textwidth = 16 cm
\topmargin = -1 cm
\textheight = 24 cm

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% MANPAGE like description setting for options, use as 
% \begin{Lentry} \item[text] text  \end{Lentry}

\usepackage{ifthen,calc}

\newcommand{\entrylabel}[1]{\mbox{\textsf{#1}}\hfil}
\newenvironment{entry}
  {\begin{list}{}
    {\renewcommand{\makelabel}{\entrylabel}
      \setlength{\labelwidth}{90pt}
      \setlength{\leftmargin}{\labelwidth+\labelsep}
    }
  }
  {\end{list}}

\newlength{\Mylen}
\newcommand{\Lentrylabel}[1]{%
  \settowidth{\Mylen}{\textsf{#1}}%
  \ifthenelse{\lengthtest{\Mylen > \labelwidth}}%
    {\parbox[b]{\labelwidth} %  term > labelwidth
      {\makebox[0pt][l]{\textsf{#1}}\\}} %
    {\textsf{#1}} %

  \hfil\relax}
\newenvironment{Lentry}
  {\renewcommand{\entrylabel}{\Lentrylabel}
   \begin{entry}}
  {\end{entry}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\title{FlexIO}
\author{Thomas Radke, John Shalf}
\date{September 2001}
\maketitle

\abstract{}

\section{Purpose}

Thorn FlexIO provides a library for writing multidimensional data from 
Cactus using the IEEEIO data format. The advantage of using this library
is that it is distributed with Cactus and needs no additional libraries
to be installed on a machine.

Writing in the FlexIO-IEEEIO format is currently implemented in thorn
CactusPUGHIO/IOFlexIO.

\section{FlexIO}

FlexIO is a compact API for storing multidimensional scientific
data. It hides the differences between underlying file formats
including HDF-SDS, IEEEIO, and network socket connections. (Support
for HDF5 will be added soon). It is designed to allow you to use
exactly the same subroutine/method calls to store your data regardless
of the underlying file format. FlexIO includes C++, C, and
Fortran77/F90 interfaces and it has been ported to Sun-Solaris,
Digital Unix, Cray-Unicos, SGI-Irix (32 and 64 bit), Windows95 and NT.

FlexIO borrows its terminology and storage-style from HDF and
NetCDF. The file stores a sequence of multidimesional arrays which are
referred to generically as datasets. The dimensions and datatype are
stored with each dataset so that the data is completely
self-describing. In addition, NetCDF-style named attributes can be
stored with each dataset to add information like coordinates, units,
and other auxillary information.

A set of higher level API's sit on top of FlexIO which permit
simplified access to complex datastructures like Finite-Element,
Adaptive Mesh Refinement, and Unigrid datastructures. In addition the
MPIO interface provides access to parallel IO for MPI codes.

\section{More Information}

For more information the reader is directed to the web pages for 
FlexIO at
{\tt http://infinite-entropy.lbl.gov/FlexIO/}

Information can be found on these web pages about

\begin{itemize}

  \item{} Programming interfaces, including C, C++ and Fortran
 
  \item{} Utilities, for finding information about IEEEIO data files

  \item{} Data converters, between IEEEIO and HDF

\end{itemize}

% Automatically created from the ccl files by using gmake thorndoc
\include{interface}
\include{param}
\include{schedule}

\end{document}