/[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.7 by mlosch, Mon Feb 28 08:28:47 2011 UTC revision 1.11 by mlosch, Wed Mar 16 10:39:25 2011 UTC
# Line 12  Alistair Adcroft, Patrick Heimbach, Sama Line 12  Alistair Adcroft, Patrick Heimbach, Sama
12  \label{sec:pkg:obcs:intro}}  \label{sec:pkg:obcs:intro}}
13    
14  The OBCS-package is fundamental to regional ocean modelling with the  The OBCS-package is fundamental to regional ocean modelling with the
15  MITgcm, but because there are so many details to be considered in  MITgcm, but there are so many details to be considered in
16  regional ocean modelling that this package cannot accomodate all  regional ocean modelling that this package cannot accomodate all
17  imaginable and possible options. Therefore, for a regional simulation  imaginable and possible options. Therefore, for a regional simulation
18  with very particular details, it is recommended to familiarize oneself  with very particular details, it is recommended to familiarize oneself
# Line 105  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 153  their default values. Line 153  their default values.
153             ~ \\             ~ \\
154          useOBCSbalance & \code{.FALSE.} &          useOBCSbalance & \code{.FALSE.} &
155             ~ \\             ~ \\
156               OBCS\_balanceFacN/S/E/W & 1 & 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 242  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 379  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\_FLOW:} ~ \\
390  %  %
391  This is not (yet) a separate routine in the code, but it may become  When turned on (\code{ALLOW\_OBCS\_BALANCE}
 one to make this code more transparent. The code is part of  
 \code{S/R~OBCS\_CALC}. When turned on (\code{ALLOW\_OBCS\_BALANCE}  
392  defined in \code{OBCS\_OPTIONS.h} and \code{useOBCSbalance=.true.} in  defined in \code{OBCS\_OPTIONS.h} and \code{useOBCSbalance=.true.} in
393  \code{data.obcs/OBCS\_PARM01}), the normal velocities across each of  \code{data.obcs/OBCS\_PARM01}), this routine balances the net flow
394  the four boundaries are modified separately, so that the net volume  across the open boundaries. By default the net flow across the
395  transport across \emph{each} boundary is zero. For example, for the  boundaries is computed and all normal velocities on boundaries are
396  western boundary at $i=i_{b}$, the modified velocity is:  adjusted to obtain zero net inflow.
397    
398    This behavior can be controlled with the runtime flags
399    \code{OBCS\_balanceFacN/S/E/W}. The values of these flags determine
400    how the net inflow is redistributed as small correction velocities
401    between the individual sections. A value ``\code{-1}'' balances an
402    individual boundary, values $>0$ determine the relative size of the
403    correction. For example, the values
404    \begin{tabbing}
405     \code{OBCS\_balanceFacE}\code{ = 1.,} \\
406     \code{OBCS\_balanceFacW}\code{ = -1.,} \\
407     \code{OBCS\_balanceFacN}\code{ = 2.,} \\
408     \code{OBCS\_balanceFacS}\code{ = 0.,}
409    \end{tabbing}
410    make the model
411    \begin{itemize}
412    \item correct Western \code{OBWu} by substracting a uniform velocity to
413    ensure zero net transport through the Western open boundary;
414    \item correct Eastern and Northern normal flow, with the Northern
415      velocity correction two times larger than the Eastern correction, but
416      \emph{not} the Southern normal flow, to ensure that the total inflow through
417      East, Northern, and Southern open boundary is balanced.
418    \end{itemize}
419    
420    The old method of balancing the net flow for all sections individually
421    can be recovered by setting all flags to -1. Then the normal
422    velocities across each of the four boundaries are modified separately,
423    so that the net volume transport across \emph{each} boundary is
424    zero. For example, for the western boundary at $i=i_{b}$, the modified
425    velocity is:
426  \[  \[
427  u(y,z) - \int_{\mbox{western boundary}}u\,dy\,dz \approx OBNu(j,k) - \sum_{j,k}  u(y,z) - \int_{\mbox{western boundary}}u\,dy\,dz \approx OBNu(j,k) - \sum_{j,k}
428  OBNu(j,k) h_{w}(i_{b},j,k)\Delta{y_G(i_{b},j)}\Delta{z(k)}.  OBNu(j,k) h_{w}(i_{b},j,k)\Delta{y_G(i_{b},j)}\Delta{z(k)}.
429  \]  \]
430  This also ensures a net total inflow of zero through all boundaries to  This also ensures a net total inflow of zero through all boundaries,
431  make it a useful flag to prevent infinite sea-level change within the  but this combination of flags is \emph{not} useful if you want to
432  domain, but the flag is \emph{not} useful if you want to simulate,  simulate, say, a sector of the Southern Ocean with a strong ACC
433  say, a sector of the Southern Ocean with a strong ACC entering through  entering through the western and leaving through the eastern boundary,
434  the western and leaving through the eastern boundary, because this  because the value of ``\code{-1}'' for these flags will make sure that
435  flag will make sure that the strong inflow is removed. It is  the strong inflow is removed. Clearly, gobal balancing with
436  recommended that this part of the code is adapted to the particular  \code{OBCS\_balanceFacE/W/N/S} $\ge0$ is the preferred method.
 needs of the simulation in question.  
437    
438  \paragraph{OBCS\_APPLY\_*:} ~ \\  \paragraph{OBCS\_APPLY\_*:} ~ \\
439  ~  ~
440    
441  \paragraph{OBCS\_SPONGE} Setting sponge layer characteristics \\  \paragraph{OBCS\_SPONGE:} ~ \\
442  %  %
443  ~  The sponge layer code (turned on with \code{ALLOW\_OBCS\_SPONGE} and
444    \code{useOBCSsponge}) adds a relaxation term to the right-hand-side of
445    the momentum and tracer equations. The variables are relaxed towards
446    the boundary values with a relaxation time scale that increases
447    linearly with distance from the boundary
448    \[
449    G_{\chi}^{\mbox{(sponge)}} =
450    - \frac{\chi - [( L - \delta{L} ) \chi_{BC} + \delta{L}\chi]/L}
451    {[(L-\delta{L})\tau_{b}+\delta{L}\tau_{i}]/L}
452    = - \frac{\chi - [( 1 - l ) \chi_{BC} + l\chi]}
453    {[(1-l)\tau_{b}+l\tau_{i}]}
454    \]
455    where $\chi$ is the model variable (U/V/T/S) in the interior,
456    $\chi_{BC}$ the boundary value, $L$ the thickness of the sponge layer
457    (runtime parameter \code{spongeThickness} in number of grid points),
458    $\delta{L}\in[0,L]$ ($\frac{\delta{L}}{L}=l\in[0,1]$) the distance from the boundary (also in grid points), and
459    $\tau_{b}$ (runtime parameters \code{Urelaxobcsbound} and
460    \code{Vrelaxobcsbound}) and $\tau_{i}$ (runtime parameters
461    \code{Urelaxobcsinner} and \code{Vrelaxobcsinner}) the relaxation time
462    scales on the boundary and at the interior termination of the sponge
463    layer. The parameters \code{Urelaxobcsbound/inner} set the relaxation
464    time scales for the Eastern and Western boundaries,
465    \code{Vrelaxobcsbound/inner} for the Northern and Southern boundaries.
466    
467  \paragraph{OB's with nonlinear free surface} ~ \\  \paragraph{OB's with nonlinear free surface} ~ \\
468  %  %
# Line 462  In the directory \code{verifcation}, the Line 517  In the directory \code{verifcation}, the
517  \item \code{exp4}: box with 4 open boundaries, simulating flow over a  \item \code{exp4}: box with 4 open boundaries, simulating flow over a
518    Gaussian bump based on \citet{adcroft:97}, also tests    Gaussian bump based on \citet{adcroft:97}, also tests
519    Stevens-boundary conditions;    Stevens-boundary conditions;
520  \item \code{dome}: based on ``Denmark Strait Overflow Model  \item \code{dome}: based on the project ``Dynamics of Overflow Mixing
521    Experiment'', use Orlanski-BCs;    and Entrainment''
522      (\url{http://www.rsmas.miami.edu/personal/tamay/DOME/dome.html}), uses
523      Orlanski-BCs;
524  \item \code{internal\_wave}: uses a heavily modified \code{S/R~OBCS\_CALC}  \item \code{internal\_wave}: uses a heavily modified \code{S/R~OBCS\_CALC}
525  \item \code{seaice\_obcs}: simple example who to use the sea-ice  \item \code{seaice\_obcs}: simple example who to use the sea-ice
526    related code, based on \code{lab\_sea};    related code, based on \code{lab\_sea};

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22