| 2 |
% $Name$ |
% $Name$ |
| 3 |
|
|
| 4 |
|
|
| 5 |
|
\section{Fortran Binary I/O: MDSIO and RW} |
| 6 |
|
\label{sec:mdsio_and_rw} |
| 7 |
|
|
| 8 |
|
|
| 9 |
\subsection{MDSIO} |
\subsection{MDSIO} |
|
\label{sec:mdsio} |
|
| 10 |
\label{sec:pkg:mdsio} |
\label{sec:pkg:mdsio} |
| 11 |
\begin{rawhtml} |
\begin{rawhtml} |
| 12 |
<!-- CMIREDIR:package_mdsio: --> |
<!-- CMIREDIR:package_mdsio: --> |
| 13 |
\end{rawhtml} |
\end{rawhtml} |
| 14 |
|
\label{sec:pkg:rw} |
| 15 |
|
|
| 16 |
|
\subsubsection{Introduction} |
| 17 |
The \texttt{mdsio} package contains a group of Fortran routines |
The \texttt{mdsio} package contains a group of Fortran routines |
| 18 |
intended as a general interface for reading and writing direct-access |
intended as a general interface for reading and writing direct-access |
| 19 |
(``binary'') Fortran files. The \texttt{mdsio} routines are used by |
(``binary'') Fortran files. The \texttt{mdsio} routines are used by |
| 20 |
the \texttt{rw} package. |
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 |
|
|