/[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.11 by mlosch, Wed Mar 16 10:39:25 2011 UTC revision 1.17 by mlosch, Wed Apr 27 09:45:04 2016 UTC
# Line 233  $j$ specifies the Northern/Southern OB p Line 233  $j$ specifies the Northern/Southern OB p
233  and for each meridional position $j=1,\ldots,N_y$, a zonal index  and for each meridional position $j=1,\ldots,N_y$, a zonal index
234  $i$ specifies the Eastern/Western OB position.  $i$ specifies the Eastern/Western OB position.
235  For Northern/Southern OB this defines an $N_x$-dimensional  For Northern/Southern OB this defines an $N_x$-dimensional
236  ``row'' array $\tt OB\_Jnorth(Ny)$ / $\tt OB\_Jsouth(Ny)$,  ``row'' array $\tt OB\_Jnorth(Nx)$ / $\tt OB\_Jsouth(Nx)$,
237  and an $N_y$-dimenisonal  and an $N_y$-dimenisonal
238  ``column'' array $\tt OB\_Ieast(Nx)$ / $\tt OB\_Iwest(Nx)$.  ``column'' array $\tt OB\_Ieast(Ny)$ / $\tt OB\_Iwest(Ny)$.
239  Positions determined in this way allows Northern/Southern  Positions determined in this way allows Northern/Southern
240  OBs to be at variable $j$ (or $y$) positions, and Eastern/Western  OBs to be at variable $j$ (or $y$) positions, and Eastern/Western
241  OBs at variable $i$ (or $x$) positions.  OBs at variable $i$ (or $x$) positions.
# Line 279  see obcs\_ini\_fixed.F} Line 279  see obcs\_ini\_fixed.F}
279    
280  \paragraph{OBCS\_READPARMS:} ~ \\  \paragraph{OBCS\_READPARMS:} ~ \\
281  Set OB positions through arrays  Set OB positions through arrays
282  {\tt OB\_Jnorth(Ny), OB\_Jsouth(Ny), OB\_Ieast(Nx), OB\_Iwest(Nx)},  {\tt OB\_Jnorth(Nx), OB\_Jsouth(Nx), OB\_Ieast(Ny), OB\_Iwest(Ny)},
283  and runtime flags (see Table \ref{tab:pkg:obcs:runtime_flags}).  and runtime flags (see Table \ref{tab:pkg:obcs:runtime_flags}).
284    
285  \paragraph{OBCS\_CALC:} ~ \\  \paragraph{OBCS\_CALC:} ~ \\
# Line 356  runtime flags \code{externForcingPeriod} Line 356  runtime flags \code{externForcingPeriod}
356  in \code{data}, see \code{verification/exp4} for an example.  in \code{data}, see \code{verification/exp4} 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
360  FAR ONLY EASTERN AND WESTERN BOUNDARIES ARE SUPPORTED.) \\  COMPLETE. PASSIVE TRACERS, SEA ICE AND NON-LINEAR FREE SURFACE ARE NOT
361    SUPPORTED PROPERLY.) \\
362  The boundary conditions following \citet{stevens:90} require the  The boundary conditions following \citet{stevens:90} require the
363  vertically averaged normal velocity (originally specified as a stream  vertically averaged normal velocity (originally specified as a stream
364  function along the open boundary) $\bar{u}_{ob}$ and the tracer fields  function along the open boundary) $\bar{u}_{ob}$ and the tracer fields
365  $\chi_{ob}$ (note: passive tracers are currently not implemented and  $\chi_{ob}$ (note: passive tracers are currently not implemented and
366  the code stops when package \code{ptracers} is used together with this  the code stops when package \code{ptracers} is used together with this
367  option). Currently, the code vertically averages the normal velocity  option). Currently, the code vertically averages the normal velocity
368  as specified. From these prescribed values the code computes the  as specified in \code{OB[E,W]u} or \code{OB[N,S]v}. From these
369  boundary values for the next timestep $n+1$ as follows (as an  prescribed values the code computes the boundary values for the next
370  example, we use the notation for an eastern or western boundary):  timestep $n+1$ as follows (as an example, we use the notation for an
371    eastern or western boundary):
372  \begin{itemize}  \begin{itemize}
373  \item $u^{n+1}(y,z) = \bar{u}_{ob}(y) + u'(y,z)$, where $u_{n}'$ is the  \item $u^{n+1}(y,z) = \bar{u}_{ob}(y) + (u')^{n}(y,z)$, where
374    deviation from the vertically averaged velocity one grid point    $(u')^{n}$ is the deviation from the vertically averaged velocity at
375    inward from the boundary.    timestep $n$ on the boundary. $(u')^{n}$ is computed in the previous
376      time step $n$ from the intermediate velocity $u^*$ prior to the
377      correction step (see section \ref{sec:time_stepping}, e.g.,
378      eq.\,(\ref{eq:ustar-backward-free-surface})).
379      % and~(\ref{eq:vstar-backward-free-surface})).
380      (This velocity is not
381      available at the beginning of the next time step $n+1$, when
382      S/R~OBCS\_CALC/OBCS\_CALC\_STEVENS are called, therefore it needs to
383      be saved in S/R~DYNAMICS by calling S/R~OBCS\_SAVE\_UV\_N and also
384      stored in a separate restart files
385      \verb+pickup_stevens[N/S/E/W].${iteration}.data+)
386    %  Define CPP-flag OBCS\_STEVENS\_USE\_INTERIOR\_VELOCITY to use the
387    %  velocity one grid point inward from the boundary.
388  \item If $u^{n+1}$ is directed into the model domain, the boudary  \item If $u^{n+1}$ is directed into the model domain, the boudary
389    value for tracer $\chi$ is restored to the prescribed values:    value for tracer $\chi$ is restored to the prescribed values:
390    \[\chi^{n+1} =   \chi^{n} + \frac{\Delta{t}}{\tau_\chi} (\chi_{ob} -    \[\chi^{n+1} =   \chi^{n} + \frac{\Delta{t}}{\tau_\chi} (\chi_{ob} -
391    \chi^{n}),\] where $\tau_\chi$ is the relaxation time    \chi^{n}),\] where $\tau_\chi$ is the relaxation time
392    scale \texttt{T/SrelaxStevens}.    scale \texttt{T/SrelaxStevens}. The new $\chi^{n+1}$ is then subject
393  \item If $u^{n+1}$ is directed out of the model domain, the tracer is    to the advection by $u^{n+1}$.
394    advected out of the domain with $u^{n+1}+c$, where $c$ is a phase  \item If $u^{n+1}$ is directed out of the model domain, the tracer
395    velocity estimated as    $\chi^{n+1}$ on the boundary at timestep $n+1$ is estimated from
396    $\frac{1}{2}\frac{\partial\chi}{\partial{t}}/\frac{\partial\chi}{\partial{x}}$.    advection out of the domain with $u^{n+1}+c$, where $c$ is
397      a phase velocity estimated as
398      $\frac{1}{2}\frac{\partial\chi}{\partial{t}}/\frac{\partial\chi}{\partial{x}}$. The
399      numerical scheme is (as an example for an eastern boundary):
400      \[\chi_{i_{b},j,k}^{n+1} =   \chi_{i_{b},j,k}^{n} + \Delta{t}
401      (u^{n+1}+c)_{i_{b},j,k}\frac{\chi_{i_{b},j,k}^{n}
402        - \chi_{i_{b}-1,j,k}^{n}}{\Delta{x}_{i_{b},j}^{C}}\mbox{, if }u_{i_{b},j,k}^{n+1}>0,
403      \] where $i_{b}$ is the boundary index.\\
404    For test purposes, the phase velocity contribution or the entire    For test purposes, the phase velocity contribution or the entire
405    advection can    advection can be turned off by setting the corresponding parameters
   be turned off by setting the corresponding parameters  
406    \texttt{useStevensPhaseVel} and \texttt{useStevensAdvection} to    \texttt{useStevensPhaseVel} and \texttt{useStevensAdvection} to
407    \texttt{.FALSE.}.\end{itemize} See \citet{stevens:90} for details.    \texttt{.FALSE.}.
408    \end{itemize}
409    See \citet{stevens:90} for details. With this boundary condition
410    specifying the exact net transport across the open boundary is simple,
411    so that balancing the flow with (S/R~OBCS\_BALANCE\_FLOW, see next
412    paragraph) is usually not necessary.
413    
414  \paragraph{OBCS\_BALANCE\_FLOW:} ~ \\  \paragraph{OBCS\_BALANCE\_FLOW:} ~ \\
415  %  %

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

  ViewVC Help
Powered by ViewVC 1.1.22