/[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.6 by mlosch, Fri Feb 25 17:26:17 2011 UTC revision 1.9 by mlosch, Thu Mar 3 07:46:09 2011 UTC
# Line 11  Alistair Adcroft, Patrick Heimbach, Sama Line 11  Alistair Adcroft, Patrick Heimbach, Sama
11  \subsubsection{Introduction  \subsubsection{Introduction
12  \label{sec:pkg:obcs:intro}}  \label{sec:pkg:obcs:intro}}
13    
14    The OBCS-package is fundamental to regional ocean modelling with the
15    MITgcm, but there are so many details to be considered in
16    regional ocean modelling that this package cannot accomodate all
17    imaginable and possible options. Therefore, for a regional simulation
18    with very particular details, it is recommended to familiarize oneself
19    not only with the compile- and runtime-options of this package, but
20    also with the code itself. In many cases it will be necessary to adapt
21    the obcs-code (in particular \code{S/R OBCS\_CALC}) to the application
22    in question; in these cases the obcs-package (together with the
23    rbcs-package, section \ref{sec:pkg:rbcs}) is a very
24    useful infrastructure for implementing special regional models.
25    
26  %----------------------------------------------------------------------  %----------------------------------------------------------------------
27    
# Line 95  Run-time parameters are set in files Line 105  Run-time parameters are set in files
105  \code{data.pkg}, \code{data.obcs}, and \code{data.exf}  \code{data.pkg}, \code{data.obcs}, and \code{data.exf}
106  if ``real-time'' prescription is requested  if ``real-time'' prescription is requested
107  (i.e. package \code{exf} enabled).  (i.e. package \code{exf} enabled).
108  These parameter files are read in S/R  vThese parameter files are read in S/R
109  \code{packages\_readparms.F}, \code{obcs\_readparms.F}, and  \code{packages\_readparms.F}, \code{obcs\_readparms.F}, and
110  \code{exf\_readparms.F}, respectively.  \code{exf\_readparms.F}, respectively.
111  Run-time parameters may be broken into 3 categories:  Run-time parameters may be broken into 3 categories:
# Line 143  their default values. Line 153  their default values.
153             ~ \\             ~ \\
154          useOBCSbalance & \code{.FALSE.} &          useOBCSbalance & \code{.FALSE.} &
155             ~ \\             ~ \\
156               OBCS\_balanceFacN/S/E/W & 0 & factor(s) determining the details
157               of the balaning code \\
158          useOrlanskiNorth/South/EastWest & \code{.FALSE.} &          useOrlanskiNorth/South/EastWest & \code{.FALSE.} &
159             turn on Orlanski boundary conditions for individual boundary\\             turn on Orlanski boundary conditions for individual boundary\\
160          useStevensNorth/South/EastWest & \code{.FALSE.} &          useStevensNorth/South/EastWest & \code{.FALSE.} &
# Line 232  A zero (0) element in $\tt OB\_I\ldots$, Line 244  A zero (0) element in $\tt OB\_I\ldots$,
244  means there is no corresponding OB in that column/row.  means there is no corresponding OB in that column/row.
245  For a Northern/Southern OB, the OB V point is to the South/North.  For a Northern/Southern OB, the OB V point is to the South/North.
246  For an Eastern/Western OB, the OB U point is to the West/East.  For an Eastern/Western OB, the OB U point is to the West/East.
247    For example,
248  \begin{verbatim}  \begin{tabbing}
249   For example    \code{OB\_Jnorth(3)=34} \=  means that:  \= \\
250       OB_Jnorth(3)=34  means that:    \> \code{T(3,34)} \> is a an OB point  \\
251            T( 3 ,34) is a an OB point    \> \code{U(3,34)} \> is a an OB point \\
252            U(3:4,34) is a an OB point    \> \code{V(3,34)} \> is a an OB point \\
253            V( 4 ,34) is a an OB point    \code{OB\_Jsouth(3)=1} \> means that: \\
254   while    \> \code{T(3,1)} \> is a an OB point \\
255       OB_Jsouth(3)=1  means that:    \> \code{U(3,1)} \> is a an OB point \\
256            T( 3 ,1) is a an OB point    \> \code{V(3,2)} \> is a an OB point \\
257            U(3:4,1) is a an OB point    \code{OB\_Ieast(10)=69} \>  means that:  \>  \\
258            V( 4 ,2) is a an OB point    \> \code{T(69,10)} \> is a an OB point \\
259  \end{verbatim}    \> \code{U(69,10)} \> is a an OB point \\
260      \> \code{V(69,10)} \> is a an OB point \\
261  For convenience, negative values for Jnorth/Ieast refer to    \code{OB\_Iwest(10)=1} \>  means that:  \>  \\
262      \> \code{T(1,10)} \> is a an OB point \\
263      \> \code{U(2,10)} \> is a an OB point \\
264      \> \code{V(1,10)} \> is a an OB point
265    \end{tabbing}
266    For convenience, negative values for \code{Jnorth}/\code{Ieast} refer to
267  points relative to the Northern/Eastern edges of the model  points relative to the Northern/Eastern edges of the model
268  eg. $\tt OB\_Jnorth(3)=-1$  means that the point $\tt (3,Ny)$  eg. $\tt OB\_Jnorth(3)=-1$  means that the point $\tt (3,Ny)$
269  is a northern OB.  is a northern OB.
# Line 291  prescribed time-constant or time-varying Line 308  prescribed time-constant or time-varying
308  use prescribed boundary fields to compute Stevens boundary conditions.  use prescribed boundary fields to compute Stevens boundary conditions.
309  \end{itemize}  \end{itemize}
310    
   
311  \paragraph{ORLANSKI:} ~ \\  \paragraph{ORLANSKI:} ~ \\
312  %  %
313  Orlanski radiation conditions \citep{orl:76}, examples can be found in  Orlanski radiation conditions \citep{orl:76}, examples can be found in
# Line 317  open boundary: Line 333  open boundary:
333  \item If non-hydrostatic dynamics are used  \item If non-hydrostatic dynamics are used
334    (\ref{sec:non-hydrostatic}), additional files    (\ref{sec:non-hydrostatic}), additional files
335    \code{OB[N/S/E/W]wFile} for the vertical velocity $w$ with    \code{OB[N/S/E/W]wFile} for the vertical velocity $w$ with
336    dimensions $(N_{x/y}\times N_r\times\mbox{time levels})$ may be    dimensions $(N_{x/y}\times N_r\times\mbox{time levels})$ can be
337    specified.    specified.
338  \item If \code{useSEAICE=.TRUE.} then additional files  \item If \code{useSEAICE=.TRUE.} then additional files
339    \code{OB[N/S/E/W][a,h,sl,sn,uice,vice]} for sea ice area, thickness    \code{OB[N/S/E/W][a,h,sl,sn,uice,vice]} for sea ice area, thickness
340    (\code{HEFF}), seaice salinity, snow and ice velocities    (\code{HEFF}), seaice salinity, snow and ice velocities
341    $(N_{x/y}\times\mbox{time levels})$ may be specified.    $(N_{x/y}\times\mbox{time levels})$ can be specified.
342  \end{itemize}  \end{itemize}
343  When the \code{exf}-package is used, the time levels are controlled  As in \code{S/R external\_fields\_load} or the \code{exf}-package, the
344  for each boundary separately in the same way as the \code{exf}-fields  code reads two time levels for each variable, e.g.\ \code{OBNu0} and
345  in \code{data.exf}, namelist \code{EXF\_NML\_OBCS}. The runtime flags  \code{OBNu1}, and interpolates linearly between these time levels to
346    obtain the value \code{OBNu} at the current model time (step). When the
347    \code{exf}-package is used, the time levels are controlled for each
348    boundary separately in the same way as the \code{exf}-fields in
349    \code{data.exf}, namelist \code{EXF\_NML\_OBCS}. The runtime flags
350  follow the above naming conventions, e.g. for the western boundary the  follow the above naming conventions, e.g. for the western boundary the
351  corresponding flags are \code{OBCWstartdate1/2} and  corresponding flags are \code{OBCWstartdate1/2} and
352  \code{OBCWperiod}. Sea-ice boundary values are controlled separately  \code{OBCWperiod}. Sea-ice boundary values are controlled separately
353  with \code{siobWstartdate1/2} and \code{siobWperiod}.  with \code{siobWstartdate1/2} and \code{siobWperiod}.  When the
354  When the \code{exf}-package is not used, the time levels are  \code{exf}-package is not used, the time levels are controlled by the
355  controlled by the runtime flags \code{externForcingPeriod} and  runtime flags \code{externForcingPeriod} and \code{externForcingCycle}
356  \code{externForcingCycle} in \code{data}, see \code{verification/exp4}  in \code{data}, see \code{verification/exp4} for an example.
 for an example.  
357    
358  \paragraph{OBCS\_CALC\_STEVENS:} ~ \\  \paragraph{OBCS\_CALC\_STEVENS:} ~ \\
359  (THE IMPLEMENTATION OF THESE BOUNDARY CONDITIONS IS NOT COMPLETE. SO  (THE IMPLEMENTATION OF THESE BOUNDARY CONDITIONS IS NOT COMPLETE. SO
# Line 367  example, we use the notation for an east Line 386  example, we use the notation for an east
386    \texttt{useStevensPhaseVel} and \texttt{useStevensAdvection} to    \texttt{useStevensPhaseVel} and \texttt{useStevensAdvection} to
387    \texttt{.FALSE.}.\end{itemize} See \citet{stevens:90} for details.    \texttt{.FALSE.}.\end{itemize} See \citet{stevens:90} for details.
388    
389  \paragraph{OBCS\_BALANCE} ~ \\  \paragraph{OBCS\_BALANCE:} ~ \\
390  %  %
391  ~  This is not (yet) a separate routine in the code, but it may become
392    one to make this code more transparent. The code is part of
393    \code{S/R~OBCS\_CALC}. When turned on (\code{ALLOW\_OBCS\_BALANCE}
394    defined in \code{OBCS\_OPTIONS.h} and \code{useOBCSbalance=.true.} in
395    \code{data.obcs/OBCS\_PARM01}), the normal velocities across each of
396    the four boundaries are modified separately, so that the net volume
397    transport across \emph{each} boundary is zero. For example, for the
398    western boundary at $i=i_{b}$, the modified velocity is:
399    \[
400    u(y,z) - \int_{\mbox{western boundary}}u\,dy\,dz \approx OBNu(j,k) - \sum_{j,k}
401    OBNu(j,k) h_{w}(i_{b},j,k)\Delta{y_G(i_{b},j)}\Delta{z(k)}.
402    \]
403    This also ensures a net total inflow of zero through all boundaries to
404    make it a useful flag to prevent infinite sea-level change within the
405    domain, but the flag is \emph{not} useful if you want to simulate,
406    say, a sector of the Southern Ocean with a strong ACC entering through
407    the western and leaving through the eastern boundary, because this
408    flag will make sure that the strong inflow is removed. It is
409    recommended that this part of the code is adapted to the particular
410    needs of the simulation in question.
411    
412  \paragraph{OBCS\_APPLY\_*:} ~ \\  \paragraph{OBCS\_APPLY\_*:} ~ \\
413  ~  ~
# Line 425  Table \ref{tab:pkg:obcs:diagnostics}. Line 463  Table \ref{tab:pkg:obcs:diagnostics}.
463  %----------------------------------------------------------------------  %----------------------------------------------------------------------
464    
465  \subsubsection{Reference experiments}  \subsubsection{Reference experiments}
466    In the directory \code{verifcation}, the following experiments use
467    \code{obcs}:
468    \begin{itemize}
469    \item \code{exp4}: box with 4 open boundaries, simulating flow over a
470      Gaussian bump based on \citet{adcroft:97}, also tests
471      Stevens-boundary conditions;
472    \item \code{dome}: based on the project ``Dynamics of Overflow Mixing
473      and Entrainment''
474      (\url{http://www.rsmas.miami.edu/personal/tamay/DOME/dome.html}), uses
475      Orlanski-BCs;
476    \item \code{internal\_wave}: uses a heavily modified \code{S/R~OBCS\_CALC}
477    \item \code{seaice\_obcs}: simple example who to use the sea-ice
478      related code, based on \code{lab\_sea};
479    \item \code{tutorial\_plume\_on\_slope}: uses Orlanski-BCs, see also
480      section~\ref{sec:eg-gravityplume}.
481    \end{itemize}
482    
483    
484    
# Line 436  Table \ref{tab:pkg:obcs:diagnostics}. Line 490  Table \ref{tab:pkg:obcs:diagnostics}.
490  \label{sec:pkg:obcs:experiments}  \label{sec:pkg:obcs:experiments}
491    
492  \begin{itemize}  \begin{itemize}
493  \item{Ocean experiment in exp4 verification directory. }  \item \code{tutorial\_plume\_on\_slope} (section~\ref{sec:eg-gravityplume})
494  \end{itemize}  \end{itemize}
495    
496    

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22