1 |
% $Header: $ |
2 |
% $Name: $ |
3 |
|
4 |
|
5 |
\section{Fortran Binary I/O: MDSIO and RW} |
6 |
\label{sec:mdsio_and_rw} |
7 |
|
8 |
|
9 |
\subsection{MDSIO} |
10 |
\label{sec:pkg:mdsio} |
11 |
\begin{rawhtml} |
12 |
<!-- CMIREDIR:package_mdsio: --> |
13 |
\end{rawhtml} |
14 |
\label{sec:pkg:rw} |
15 |
|
16 |
\subsubsection{Introduction} |
17 |
The \texttt{mdsio} package contains a group of Fortran routines |
18 |
intended as a general interface for reading and writing direct-access |
19 |
(``binary'') Fortran files. The \texttt{mdsio} routines are used by |
20 |
the \texttt{rw} package. |
21 |
|
22 |
\subsubsection{Using MDSIO} |
23 |
|
24 |
|
25 |
|
26 |
|
27 |
\subsection{RW Basic binary I/O utilities} |
28 |
\label{sec:pkg:rw} |
29 |
\begin{rawhtml} |
30 |
<!-- CMIREDIR:package_rw: --> |
31 |
\end{rawhtml} |
32 |
|
33 |
The {\tt rw} package provides a very rudimentary binary I/O capability |
34 |
for quickly writing {\it single record} direct-access Fortran binary files. |
35 |
It is primarily used for writing diagnostic output. |
36 |
|
37 |
\subsubsection{Introduction} |
38 |
Package {\tt rw} is an interface to the more general {\tt mdsio} package. |
39 |
The {\tt rw} package can be used to write or read direct-access Fortran |
40 |
binary files for two-dimensional XY and three-dimensional XYZ arrays. |
41 |
The arrays are assumed to have been declared according to the standard |
42 |
MITgcm two-dimensional or three-dimensional floating point array type: |
43 |
\begin{verbatim} |
44 |
C Example of declaring a standard two dimensional "long" |
45 |
C floating point type array (the _RL macro is usually |
46 |
C mapped to 64-bit floats in most configurations) |
47 |
_RL anArray(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
48 |
\end{verbatim} |
49 |
|
50 |
Each call to an {\tt rw} read or write routine will read (or write) to |
51 |
the first record of a file. To write direct access Fortran files with |
52 |
multiple records use the package {\tt mdsio} (see section |
53 |
\ref{sec:pkg:mdsio}). To write self-describing files that contain |
54 |
embedded information describing the variables being written and the |
55 |
spatial and temporal locations of those variables use the package {\tt |
56 |
mnc} (see section \ref{sec:pkg:mnc}) which produces |
57 |
\htlink{netCDF}{http://www.unidata.ucar.edu/packages/netcdf} |
58 |
\cite{rew:97} based output. |
59 |
|
60 |
%% \subsubsection{Key subroutines, parameters and files} |
61 |
%% \label{sec:pkg:rw:implementation_synopsis} |
62 |
%% The {\tt rw} package has |
63 |
|