/[MITgcm]/manual/s_phys_pkgs/text/obcs.tex
ViewVC logotype

Diff of /manual/s_phys_pkgs/text/obcs.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1 by heimbach, Thu Aug 11 23:58:07 2005 UTC revision 1.5 by jmc, Mon Aug 30 23:09:21 2010 UTC
# Line 5  Line 5 
5  <!-- CMIREDIR:package_obcs: -->  <!-- CMIREDIR:package_obcs: -->
6  \end{rawhtml}  \end{rawhtml}
7    
8  Authors: Martin Losch and Patrick Heimbach  Authors:
9    Alistair Adcroft, Patrick Heimbach, Samar Katiwala, Martin Losch
10    
11  \subsubsection{Introduction  \subsubsection{Introduction
12  \label{sec:pkg:obcs:intro}}  \label{sec:pkg:obcs:intro}}
# Line 15  Authors: Martin Losch and Patrick Heimba Line 16  Authors: Martin Losch and Patrick Heimba
16  %----------------------------------------------------------------------  %----------------------------------------------------------------------
17    
18  \subsubsection{OBCS configuration and compiling  \subsubsection{OBCS configuration and compiling
19  \label{sec:pkg:kpp:comp}}  \label{sec:pkg:obcs:comp}}
20    
21  As with all MITgcm packages, OBCS can be turned on or off  As with all MITgcm packages, OBCS can be turned on or off
22  at compile time  at compile time
# Line 43  The latter case requires Line 44  The latter case requires
44  packages \texttt{cal} and \texttt{exf} to be enabled.  packages \texttt{cal} and \texttt{exf} to be enabled.
45  %  %
46  \end{itemize}  \end{itemize}
47  (see also Section \ref{sect:buildingCode}).  (see also Section \ref{sec:buildingCode}).
48    
49  Parts of the OBCS code can be enabled or disabled at compile time  Parts of the OBCS code can be enabled or disabled at compile time
50  via CPP preprocessor flags. These options are set in  via CPP preprocessor flags. These options are set in
51  \texttt{OBCS\_OPTIONS.h}. Table \ref{tab:pkg:obcs:cpp} summarizes them.  \texttt{OBCS\_OPTIONS.h}. Table \ref{tab:pkg:obcs:cpp} summarizes them.
52    
53  \begin{table}[h!]  \begin{table}[!ht]
54  \centering  \centering
55    \label{tab:pkg:obcs:cpp}    \label{tab:pkg:obcs:cpp}
56    {\footnotesize    {\footnotesize
# Line 111  Table \ref{tab:pkg:obcs:runtime_flags} s Line 112  Table \ref{tab:pkg:obcs:runtime_flags} s
112  runtime flags that are set in \texttt{data.obcs}, and  runtime flags that are set in \texttt{data.obcs}, and
113  their default values.  their default values.
114    
115  \begin{table}[h!]  \begin{table}[!ht]
116  \centering  \centering
   \label{tab:pkg:obcs:runtime_flags}  
117    {\footnotesize    {\footnotesize
118      \begin{tabular}{|l|c|l|}      \begin{tabular}{|l|c|l|}
119        \hline        \hline
# Line 181  their default values. Line 181  their default values.
181        \hline        \hline
182      \end{tabular}      \end{tabular}
183    }    }
184    \caption{~}    \caption{pkg OBCS run-time parameters}
185      \label{tab:pkg:obcs:runtime_flags}
186  \end{table}  \end{table}
187    
188    
189    
190  %----------------------------------------------------------------------  %----------------------------------------------------------------------
191    
192    \subsubsection{Defining open boundary positions
193    \label{sec:pkg:obcs:defining}}
194    
195    There are four open boundaries (OBs), a
196    Northern, Southern, Eastern, and Western.
197    All OB locations are specified by their absolute
198    meridional (Northern/Southern) or zonal (Eastern/Western) indices.
199    Thus, for each zonal position $i=1,\ldots,Nx$ a meridional index
200    $j$ specifies the Northern/Southern OB position,
201    and for each meridional position $j=1,\ldots,Ny$, a zonal index
202    $i$ specifies the Eastern/Western OB position.
203    For Northern/Southern OB this defines an $Nx$-dimensional
204    ``row'' array $\tt OB\_Jnorth(Ny)$ / $\tt OB\_Jsouth(Ny)$,
205    and an $Ny$-dimenisonal
206    ``column'' array $\tt OB\_Ieast(Nx)$ / $\tt OB\_Iwest(Nx)$
207    Positions determined in this way allows Northern/Southern
208    OBs to be at variable $j$ (or $y$) positions, and Eastern/Western
209    OBs at variable $i$ (or $x$) positions.
210    Here, indices refer to tracer points on the C-grid.
211    A zero (0) element in $\tt OB\_I\ldots$, $\tt OB\_J\ldots$
212    means there is no corresponding OB in that column/row.
213    For a Northern/Southern OB, the OB V point is to the South/North.
214    For an Eastern/Western OB, the OB U point is to the West/East.
215    
216    \begin{verbatim}
217     For example
218         OB_Jnorth(3)=34  means that:
219              T( 3 ,34) is a an OB point
220              U(3:4,34) is a an OB point
221              V( 4 ,34) is a an OB point
222     while
223         OB_Jsouth(3)=1  means that:
224              T( 3 ,1) is a an OB point
225              U(3:4,1) is a an OB point
226              V( 4 ,2) is a an OB point
227    \end{verbatim}
228    
229    For convenience, negative values for Jnorth/Ieast refer to
230    points relative to the Northern/Eastern edges of the model
231    eg. $\tt OB\_Jnorth(3)=-1$  means that the point $\tt (3,Ny)$
232    is a northern OB.
233    
234    \noindent
235    \textsf{Add special comments for case \#define NONLIN\_FRSURF,
236    see obcs\_ini\_fixed.F}
237    
238    %----------------------------------------------------------------------
239    
240  \subsubsection{Equations and key routines  \subsubsection{Equations and key routines
241  \label{sec:pkg:obcs:equations}}  \label{sec:pkg:obcs:equations}}
242    
243  \paragraph{OBCS\_READPARMS:} Setting OB positions \\  \paragraph{OBCS\_READPARMS:} ~ \\
244  ~  Set OB positions through arrays
245    {\tt OB\_Jnorth(Ny), OB\_Jsouth(Ny), OB\_Ieast(Nx), OB\_Iwest(Nx)},
246    and runtime flags (see Table \ref{tab:pkg:obcs:runtime_flags}).
247    
248  \paragraph{OBCS\_CALC:} ~ \\  \paragraph{OBCS\_CALC:} ~ \\
249  ~  %
250    Top-level routine for filling values to be applied at OB for
251    $T,S,U,V,\eta$ into corresponding
252    ``slice'' arrays $(x,z)$, $(y,z)$ for each OB:
253    $\tt OB[N/S/E/W][t/s/u/v]$; e.g. for salinity array at
254    Southern OB, array name is $\tt OBSt$.
255    Values filled are either
256    %
257    \begin{itemize}
258    %
259    \item
260    constant vertical $T,S$ profiles as specified in file
261    {\tt data} ({\tt tRef(Nr), sRef(Nr)}) with zero velocities $U,V$,
262    %
263    \item
264    $T,S,U,V$ values determined via Orlanski radiation conditions
265    (see below),
266    %
267    \item
268    prescribed time-constant or time-varying fields (see below).
269    %
270    \end{itemize}
271    
 \paragraph{OBCS\_APPLY\_*:} ~ \\  
 ~  
272    
273  \paragraph{OBCS\_PRESCRIBE\_READ} Setting OB fields and updates \\  \paragraph{ORLANSKI} ~ \\
274  %  %
275  ~  Orlanski radiation conditions \citep{orl:76}
276    
277  \paragraph{OBCS\_SPONGE} Setting sponge layer characteristics \\  \paragraph{OBCS\_PRESCRIBE\_READ} Setting OB fields and updates \\
278  %  %
279  ~  ~
280    
# Line 212  their default values. Line 282  their default values.
282  %  %
283  ~  ~
284    
285  \paragraph{ORLANSKI} Orlanski radiation conditions \\  \paragraph{OBCS\_APPLY\_*:} ~ \\
286    ~
287    
288    \paragraph{OBCS\_SPONGE} Setting sponge layer characteristics \\
289  %  %
290  ~  ~
291    
# Line 246  Diagnostics output is available via the Line 319  Diagnostics output is available via the
319  Available output fields are summarized in  Available output fields are summarized in
320  Table \ref{tab:pkg:obcs:diagnostics}.  Table \ref{tab:pkg:obcs:diagnostics}.
321    
322  \begin{table}[h!]  \begin{table}[!ht]
323  \centering  \centering
324  \label{tab:pkg:obcs:diagnostics}  \label{tab:pkg:obcs:diagnostics}
325  {\footnotesize  {\footnotesize
# Line 270  Table \ref{tab:pkg:obcs:diagnostics}. Line 343  Table \ref{tab:pkg:obcs:diagnostics}.
343    
344  \subsubsection{References}  \subsubsection{References}
345    
346    \subsubsection{Experiments and tutorials that use obcs}
347    \label{sec:pkg:obcs:experiments}
348    
349    \begin{itemize}
350    \item{Ocean experiment in exp4 verification directory. }
351    \end{itemize}
352    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22