--- manual/s_outp_pkgs/text/mnc.tex 2005/07/18 20:45:28 1.1 +++ manual/s_outp_pkgs/text/mnc.tex 2006/03/28 16:24:57 1.5 @@ -1,7 +1,7 @@ -% $Header: /home/ubuntu/mnt/e9_copy/manual/s_outp_pkgs/text/mnc.tex,v 1.1 2005/07/18 20:45:28 molod Exp $ +% $Header: /home/ubuntu/mnt/e9_copy/manual/s_outp_pkgs/text/mnc.tex,v 1.5 2006/03/28 16:24:57 edhill Exp $ % $Name: $ -\subsection{NetCDF I/O Integration: MNC} +\section{NetCDF I/O Integration: MNC} \label{sec:pkg:mnc} \begin{rawhtml} @@ -31,9 +31,9 @@ platform. -\subsubsection{Using MNC} +\subsection{Using MNC} -MNC Configuration: +\subsubsection{MNC Configuration:} As with all MITgcm packages, MNC can be turned on or off at compile time using the \texttt{packages.conf} file or the \texttt{genmake2} @@ -75,7 +75,7 @@ iterative compile--test sequence. -MNC Inputs: +\subsubsection{MNC Inputs:} Like most MITgcm packages, all of MNC can be turned on/off at runtime using a single flag in \texttt{data.pkg} @@ -127,26 +127,28 @@ output directory name \\ \ \ \texttt{mnc\_outdir\_date} & L & \texttt{.FALSE.} & embed date in the outdir name \\ - \ \ \texttt{mnc\_outdir\_num} & L & \texttt{.FALSE.} & + \ \ \texttt{mnc\_outdir\_num} & L & \texttt{.TRUE.} & optional \\ - \texttt{pickup\_write\_mnc} & L & \texttt{.FALSE.} & + \texttt{pickup\_write\_mnc} & L & \texttt{.TRUE.} & use MNC to write pickup files \\ - \texttt{pickup\_read\_mnc} & L & \texttt{.FALSE.} & + \texttt{pickup\_read\_mnc} & L & \texttt{.TRUE.} & use MNC to read pickup files \\ \texttt{mnc\_use\_indir} & L & \texttt{.FALSE.} & use a directory (path) for input \\ \ \ \texttt{mnc\_indir\_str} & S & \texttt{''} & input directory (or path) name \\ - \texttt{snapshot\_mnc} & L & \texttt{.FALSE.} & + \texttt{snapshot\_mnc} & L & \texttt{.TRUE.} & write \texttt{snapshot} output w/MNC \\ - \texttt{monitor\_mnc} & L & \texttt{.FALSE.} & + \texttt{monitor\_mnc} & L & \texttt{.TRUE.} & write \texttt{monitor} output w/MNC \\ - \texttt{timeave\_mnc} & L & \texttt{.FALSE.} & + \texttt{timeave\_mnc} & L & \texttt{.TRUE.} & write \texttt{timeave} output w/MNC \\ - \texttt{autodiff\_mnc} & L & \texttt{.FALSE.} & + \texttt{autodiff\_mnc} & L & \texttt{.TRUE.} & write \texttt{autodiff} output w/MNC \\ \texttt{mnc\_max\_fsize} & R & 2.1e+09 & - max allowable file size \\ + max allowable file size (<2GB) \\ + \texttt{mnc\_filefreq} & R & -1 & + frequency of new file creation (seconds) \\ \texttt{readgrid\_mnc} & L & \texttt{.FALSE.} & read grid quantities using MNC \\ \texttt{mnc\_echo\_gvtypes} & L & \texttt{.FALSE.} & @@ -202,12 +204,19 @@ \end{verbatim} \begin{rawhtml} \end{rawhtml} +Another way users can force the splitting of MNC files along the time +dimension is the \texttt{mnc\_filefreq} option. With it, files that +contain variables with a temporal dimension can be split at regular +intervals based solely upon the model time (specified in seconds). +For some problems, this can be much more convenient than splitting +based upon file size. + Additional MNC--related parameters may be contained within each package. Please see the individual packages for descriptions of their use of MNC. -MNC Output: +\subsubsection{MNC Output:} Depending upon the flags used, MNC will produce zero or more directories containing one or more netCDF files as output. These @@ -215,21 +224,32 @@ convention (v1.0) and any conformance issues will be fixed over time. The patterns used for file names are: \begin{center} -\texttt{BASENAME.nIter0.tileNum.seqNum.nc} + {\footnotesize + \begin{tabular}[htb]{l} + \texttt{BASENAME.tileNum.nc} \\ + \texttt{BASENAME.nIter.faceNum.nc} \\ + \texttt{BASENAME.nIter.tileNum.nc} + \end{tabular} + } \end{center} -and an example is: +and examples are: \begin{center} -\texttt{grid.0000000000.000001.0000.nc} + {\footnotesize + \begin{tabular}[htb]{l} + \texttt{grid.t001.nc}, \texttt{grid.t002.nc} \\ + \texttt{state.0000000000.t001.nc}, + \texttt{surfDiag.0000036000.t001.nc} \\ + \texttt{input.0000072000.f001.nc} + \end{tabular} + } \end{center} where \texttt{BASENAME} is the name selected to represent a set of -variables written together, \texttt{nIter0} is the starting iteration +variables written together, \texttt{nIter} is the current iteration number as specified in the main \texttt{data} namelist input file and -written in a zero-filled 10-digit format, \texttt{tileNum} is the -six-digit zero-filled tile number, \texttt{seqnum} is a four-digit -zero-filled sequence number used when maximum allowable files sizes -are too small to contain all of the output for a particular type -within one run (new files are created with sequential numbers as files -reach the maximum file size limit), and \texttt{.nc} is the file +written in a zero-filled 10-digit format, \texttt{tileNum} is a +three-or-more-digit zero-filled and ``\texttt{t}''--prefixed tile +number, \texttt{faceNum} is a three-or-more-digit zero-filled and +``\texttt{f}''--prefixed face number, and \texttt{.nc} is the file suffix specified by the current netCDF ``CF'' conventions. Some example \texttt{BASENAME} values are: @@ -299,9 +319,9 @@ \end{enumerate} -\subsubsection{MNC Troubleshooting} +\subsection{MNC Troubleshooting} -Build Troubleshooting: +\subsubsection{Build Troubleshooting:} In order to build MITgcm with MNC enabled, the netCDF v3.x Fortran-77 (not Fortran-90) library must be available. This library is compposed @@ -320,7 +340,7 @@ which includes an extensive list of known--good netCDF configurations for various platforms -Runtime Troubleshooting: +\subsubsection{Runtime Troubleshooting:} Please be aware of the following: @@ -358,7 +378,7 @@ \end{itemize} -\subsubsection{MNC Internals} +\subsection{MNC Internals} The \texttt{mnc} package is a two-level convenience library (or ``wrapper'') for most of the NetCDF Fortran API. Its purpose is to @@ -406,7 +426,7 @@ \end{description} -MNC Grid--Types and Variable--Types: +\subsubsection{MNC Grid--Types and Variable--Types:} As a convenience for users, the MNC package includes numerous routines to aid in the writing of data to NetCDF format. Probably the biggest @@ -465,7 +485,7 @@ and writing variables. -Using MNC: Examples: +\subsubsection{Using MNC: Examples:} Writing variables to NetCDF files can be accomplished in as few as two function calls. The first function call defines a variable type, @@ -475,7 +495,7 @@ necessary, the current time level within the model. Examples of the initialization calls can be found in the file -\filelink{model/src/ini\_mnc\_io.F}{model-src-ini_mnc_io.F} +\filelink{model/src/ini\_mnc\_io.F}{model-src-ini_model_io.F} where these function calls: {\footnotesize \begin{verbatim}