/[MITgcm]/manual/s_algorithm/text/time_stepping.tex
ViewVC logotype

Diff of /manual/s_algorithm/text/time_stepping.tex

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

revision 1.16 by edhill, Thu Aug 7 18:27:52 2003 UTC revision 1.17 by jmc, Wed Oct 13 18:50:54 2004 UTC
# Line 87  aaa \= aaa \= aaa \= aaa \= aaa \= aaa \ Line 87  aaa \= aaa \= aaa \= aaa \= aaa \= aaa \
87  \> SOLVE\_FOR\_PRESSURE \\  \> SOLVE\_FOR\_PRESSURE \\
88  \>\> CALC\_DIV\_GHAT \` $H\widehat{u^*}$,$H\widehat{v^*}$ (\ref{eq:elliptic}) \\  \>\> CALC\_DIV\_GHAT \` $H\widehat{u^*}$,$H\widehat{v^*}$ (\ref{eq:elliptic}) \\
89  \>\> CG2D \` $\eta^{n+1}$ (\ref{eq:elliptic}) \\  \>\> CG2D \` $\eta^{n+1}$ (\ref{eq:elliptic}) \\
90  \> THE\_CORRECTION\_STEP  \\  \> MOMENTUM\_CORRECTION\_STEP  \\
91  \>\> CALC\_GRAD\_PHI\_SURF \` $\nabla \eta^{n+1}$ \\  \>\> CALC\_GRAD\_PHI\_SURF \` $\nabla \eta^{n+1}$ \\
92  \>\> CORRECTION\_STEP \` $u^{n+1}$,$v^{n+1}$ (\ref{eq:un+1-rigid-lid},\ref{eq:vn+1-rigid-lid})  \>\> CORRECTION\_STEP \` $u^{n+1}$,$v^{n+1}$ (\ref{eq:un+1-rigid-lid},\ref{eq:vn+1-rigid-lid})
93  \end{tabbing} \end{minipage} } \end{center}  \end{tabbing} \end{minipage} } \end{center}
# Line 294  FORWARD\_STEP \\ Line 294  FORWARD\_STEP \\
294  \> THERMODYNAMICS \\  \> THERMODYNAMICS \\
295  \>\> CALC\_GT \\  \>\> CALC\_GT \\
296  \>\>\> GAD\_CALC\_RHS \` $G_\theta^n = G_\theta( u, \theta^n )$ \\  \>\>\> GAD\_CALC\_RHS \` $G_\theta^n = G_\theta( u, \theta^n )$ \\
297  \>\>\> EXTERNAL\_FORCING \` $G_\theta^n = G_\theta^n + {\cal Q}$ \\  \>either\>\> EXTERNAL\_FORCING \` $G_\theta^n = G_\theta^n + {\cal Q}$ \\
298  \>\>\> ADAMS\_BASHFORTH2 \` $G_\theta^{(n+1/2)}$ (\ref{eq:adams-bashforth2}) \\  \>\>\> ADAMS\_BASHFORTH2 \` $G_\theta^{(n+1/2)}$ (\ref{eq:adams-bashforth2}) \\
299    \>or\>\> EXTERNAL\_FORCING \` $G_\theta^{(n+1/2)} = G_\theta^{(n+1/2)} + {\cal Q}$ \\
300  \>\> TIMESTEP\_TRACER \` $\tau^*$ (\ref{eq:taustar}) \\  \>\> TIMESTEP\_TRACER \` $\tau^*$ (\ref{eq:taustar}) \\
301  \>\> IMPLDIFF \` $\tau^{(n+1)}$ (\ref{eq:tau-n+1-implicit})  \>\> IMPLDIFF \` $\tau^{(n+1)}$ (\ref{eq:tau-n+1-implicit})
302  \end{tabbing} \end{minipage} } \end{center}  \end{tabbing} \end{minipage} } \end{center}
# Line 332  simpler to include these terms and this Line 333  simpler to include these terms and this
333  and forcing evolves smoothly. Problems can, and do, arise when forcing  and forcing evolves smoothly. Problems can, and do, arise when forcing
334  or motions are high frequency and this corresponds to a reduced  or motions are high frequency and this corresponds to a reduced
335  stability compared to a simple forward time-stepping of such terms.  stability compared to a simple forward time-stepping of such terms.
336    The model offers the possibility to leave the forcing term outside the
337    Adams-Bashforth extrapolation, by turning off the logical flag
338    {\bf forcing\_In\_AB } (parameter file {\em data}, namelist {\em PARM01},
339    default value = True).
340    
341  A stability analysis for an oscillation equation should be given at this point.  A stability analysis for an oscillation equation should be given at this point.
342  \marginpar{AJA needs to find his notes on this...}  \marginpar{AJA needs to find his notes on this...}
# Line 343  A stability analysis for a relaxation eq Line 348  A stability analysis for a relaxation eq
348  \section{Implicit time-stepping: backward method}  \section{Implicit time-stepping: backward method}
349    
350  Vertical diffusion and viscosity can be treated implicitly in time  Vertical diffusion and viscosity can be treated implicitly in time
351  using the backward method which is an intrinsic scheme. For tracers,  using the backward method which is an intrinsic scheme.
352    Recently, the option to treat the vertical advection
353    implicitly has been added, but not yet tested; therefore,
354    the description hereafter is limited to diffusion and viscosity.
355    For tracers,
356  the time discretized equation is:  the time discretized equation is:
357  \begin{equation}  \begin{equation}
358  \tau^{n+1} - \Delta t \partial_r \kappa_v \partial_r \tau^{n+1} =  \tau^{n+1} - \Delta t \partial_r \kappa_v \partial_r \tau^{n+1} =
# Line 374  Fig.~\ref{fig:call-tree-adams-bashforth} Line 383  Fig.~\ref{fig:call-tree-adams-bashforth}
383  stepping forward a tracer variable such as temperature.  stepping forward a tracer variable such as temperature.
384    
385  In order to fit within the pressure method, the implicit viscosity  In order to fit within the pressure method, the implicit viscosity
386  must not alter the barotropic flow. In other words, it can on ly  must not alter the barotropic flow. In other words, it can only
387  redistribute momentum in the vertical. The upshot of this is that  redistribute momentum in the vertical. The upshot of this is that
388  although vertical viscosity may be backward implicit and  although vertical viscosity may be backward implicit and
389  unconditionally stable, no-slip boundary conditions may not be made  unconditionally stable, no-slip boundary conditions may not be made
# Line 402  is solved to yield the state variables a Line 411  is solved to yield the state variables a
411  \end{figure}  \end{figure}
412    
413  \begin{figure}  \begin{figure}
414  \begin{center} \fbox{ \begin{minipage}{4.5in} \begin{tabbing}  \begin{center} \fbox{ \begin{minipage}{4.7in} \begin{tabbing}
415  aaa \= aaa \= aaa \= aaa \= aaa \= aaa \kill  aaa \= aaa \= aaa \= aaa \= aaa \= aaa \kill
416  FORWARD\_STEP \\  FORWARD\_STEP \\
417    \>\> EXTERNAL\_FIELDS\_LOAD\\
418    \>\> DO\_ATMOSPHERIC\_PHYS \\
419    \>\> DO\_OCEANIC\_PHYS \\
420  \> THERMODYNAMICS \\  \> THERMODYNAMICS \\
421  \>\> CALC\_GT \\  \>\> CALC\_GT \\
422  \>\>\> GAD\_CALC\_RHS \` $G_\theta^n = G_\theta( u, \theta^n )$ (\ref{eq:Gt-n-sync})\\  \>\>\> GAD\_CALC\_RHS \` $G_\theta^n = G_\theta( u, \theta^n )$ (\ref{eq:Gt-n-sync})\\
# Line 417  FORWARD\_STEP \\ Line 429  FORWARD\_STEP \\
429  \>\> MOM\_FLUXFORM or MOM\_VECINV \` $G_{\vec{\bf v}}^n$ (\ref{eq:Gv-n-sync})\\  \>\> MOM\_FLUXFORM or MOM\_VECINV \` $G_{\vec{\bf v}}^n$ (\ref{eq:Gv-n-sync})\\
430  \>\> TIMESTEP \` $\vec{\bf v}^*$ (\ref{eq:Gv-n+5-sync}, \ref{eq:vstar-sync}) \\  \>\> TIMESTEP \` $\vec{\bf v}^*$ (\ref{eq:Gv-n+5-sync}, \ref{eq:vstar-sync}) \\
431  \>\> IMPLDIFF \` $\vec{\bf v}^{**}$ (\ref{eq:vstarstar-sync}) \\  \>\> IMPLDIFF \` $\vec{\bf v}^{**}$ (\ref{eq:vstarstar-sync}) \\
432    \> UPDATE\_R\_STAR or UPDATE\_SURF\_DR \` (NonLin-FS only)\\
433  \> SOLVE\_FOR\_PRESSURE \\  \> SOLVE\_FOR\_PRESSURE \\
434  \>\> CALC\_DIV\_GHAT \` $\eta^*$ (\ref{eq:nstar-sync}) \\  \>\> CALC\_DIV\_GHAT \` $\eta^*$ (\ref{eq:nstar-sync}) \\
435  \>\> CG2D \` $\eta^{n+1}$ (\ref{eq:elliptic-sync}) \\  \>\> CG2D \` $\eta^{n+1}$ (\ref{eq:elliptic-sync}) \\
436  \> THE\_CORRECTION\_STEP  \\  \> MOMENTUM\_CORRECTION\_STEP  \\
437  \>\> CALC\_GRAD\_PHI\_SURF \` $\nabla \eta^{n+1}$ \\  \>\> CALC\_GRAD\_PHI\_SURF \` $\nabla \eta^{n+1}$ \\
438  \>\> CORRECTION\_STEP \` $u^{n+1}$,$v^{n+1}$ (\ref{eq:v-n+1-sync})  \>\> CORRECTION\_STEP \` $u^{n+1}$,$v^{n+1}$ (\ref{eq:v-n+1-sync})\\
439    \> TRACERS\_CORRECTION\_STEP  \\
440    \>\> CYCLE\_TRACER \` $\theta^{n+1}$ \\
441    \>\> FILTER \` Shapiro Filter, Zonal Filter (FFT) \\
442    \>\> CONVECTIVE\_ADJUSTMENT \` \\
443  \end{tabbing} \end{minipage} } \end{center}  \end{tabbing} \end{minipage} } \end{center}
444  \caption{  \caption{
445  Calling tree for the overall synchronous algorithm using  Calling tree for the overall synchronous algorithm using
446  Adams-Bashforth time-stepping.}  Adams-Bashforth time-stepping.
447    The place where the model geometry
448    ({\em hFac} factors) is updated is added here but is only relevant
449    for the non-linear free-surface algorithm.
450    For completeness, the external forcing,
451    ocean and atmospheric physics have been added, although they are mainly
452    optional}
453  \label{fig:call-tree-adams-bashforth-sync}  \label{fig:call-tree-adams-bashforth-sync}
454  \end{figure}  \end{figure}
455    
# Line 455  G_{\theta,S}^{(n+1/2)} & = & (3/2+\epsil Line 478  G_{\theta,S}^{(n+1/2)} & = & (3/2+\epsil
478  \label{eq:vstar-sync} \\  \label{eq:vstar-sync} \\
479  \vec{\bf v}^{**} & = & {\cal L}_{\vec{\bf v}}^{-1} ( \vec{\bf v}^* )  \vec{\bf v}^{**} & = & {\cal L}_{\vec{\bf v}}^{-1} ( \vec{\bf v}^* )
480  \label{eq:vstarstar-sync} \\  \label{eq:vstarstar-sync} \\
481  \eta^* & = & \epsilon_{fs} \left( \eta^{n} +P-E+R \right)- \Delta t  \eta^* & = & \epsilon_{fs} \left( \eta^{n} + \Delta t (P-E) \right)- \Delta t
482    \nabla \cdot H \widehat{ \vec{\bf v}^{**} }    \nabla \cdot H \widehat{ \vec{\bf v}^{**} }
483  \label{eq:nstar-sync} \\  \label{eq:nstar-sync} \\
484  \nabla \cdot g H \nabla \eta^{n+1} - \frac{\epsilon_{fs} \eta^{n+1}}{\Delta t^2}  \nabla \cdot g H \nabla \eta^{n+1} & - & \frac{\epsilon_{fs} \eta^{n+1}}{\Delta t^2}
485  & = & - \frac{\eta^*}{\Delta t^2}  ~ = ~ - \frac{\eta^*}{\Delta t^2}
486  \label{eq:elliptic-sync} \\  \label{eq:elliptic-sync} \\
487  \vec{\bf v}^{n+1} & = & \vec{\bf v}^{*} - \Delta t g \nabla \eta^{n+1}  \vec{\bf v}^{n+1} & = & \vec{\bf v}^{*} - \Delta t g \nabla \eta^{n+1}
488  \label{eq:v-n+1-sync}  \label{eq:v-n+1-sync}
# Line 478  accelerations, stepping forward and solv Line 501  accelerations, stepping forward and solv
501  surface pressure gradient terms, corresponding to equations  surface pressure gradient terms, corresponding to equations
502  \ref{eq:Gv-n-sync} to \ref{eq:v-n+1-sync}.  \ref{eq:Gv-n-sync} to \ref{eq:v-n+1-sync}.
503  These operations are carried out in subroutines {\em DYNAMCIS}, {\em  These operations are carried out in subroutines {\em DYNAMCIS}, {\em
504  SOLVE\_FOR\_PRESSURE} and {\em THE\_CORRECTION\_STEP}. This, then,  SOLVE\_FOR\_PRESSURE} and {\em MOMENTUM\_CORRECTION\_STEP}. This, then,
505  represents an entire algorithm for stepping forward the model one  represents an entire algorithm for stepping forward the model one
506  time-step. The corresponding calling tree is given in  time-step. The corresponding calling tree is given in
507  \ref{fig:call-tree-adams-bashforth-sync}.  \ref{fig:call-tree-adams-bashforth-sync}.
# Line 494  time-step. The corresponding calling tre Line 517  time-step. The corresponding calling tre
517  A schematic of the explicit Adams-Bashforth and implicit time-stepping  A schematic of the explicit Adams-Bashforth and implicit time-stepping
518  phases of the algorithm but with staggering in time of thermodynamic  phases of the algorithm but with staggering in time of thermodynamic
519  variables with the flow. Explicit thermodynamics tendencies are  variables with the flow. Explicit thermodynamics tendencies are
520  evaluated at time level $n-1/2$ as a function of the thermodynamics  evaluated at time level $n$ as a function of the thermodynamics
521  state at that time level $n$ and flow at time $n$ (dotted arrow). The  state at that time level $n$ and flow at time $n+1/2$ (dotted arrow). The
522  explicit tendency from the previous time level, $n-3/2$, is used to  explicit tendency from the previous time level, $n-1$, is used to
523  extrapolate tendencies to $n$ (dashed arrow). This extrapolated  extrapolate tendencies to $n+1/2$ (dashed arrow). This extrapolated
524  tendency allows thermo-dynamics variables to be stably integrated  tendency allows thermo-dynamics variables to be stably integrated
525  forward-in-time to render an estimate ($*$-variables) at the $n+1/2$  forward-in-time to render an estimate ($*$-variables) at the $n+1$
526  time level (solid arc-arrow). The implicit-in-time operator ${\cal  time level (solid arc-arrow). The implicit-in-time operator ${\cal
527  L_{\theta,S}}$ is solved to yield the thermodynamic variables at time  L_{\theta,S}}$ is solved to yield the thermodynamic variables at time
528  level $n+1/2$. These are then used to calculate the hydrostatic  level $n+1$. These are then used to calculate the hydrostatic
529  pressure/geo-potential, $\phi_{hyd}$ (vertical arrows). The  pressure/geo-potential, $\phi_{hyd}$ (vertical arrows). The
530  hydrostatic pressure gradient is evaluated directly an time level  hydrostatic pressure gradient is evaluated directly at time level
531  $n+1/2$ in stepping forward the flow variables from $n$ to $n+1$  $n+1$ in stepping forward the flow variables from $n+1/2$ to $n+3/2$
532  (solid arc-arrow). }  (solid arc-arrow). }
533  \label{fig:adams-bashforth-staggered}  \label{fig:adams-bashforth-staggered}
534  \end{figure}  \end{figure}
# Line 516  circumstance, it is more efficient to st Line 539  circumstance, it is more efficient to st
539  thermodynamic variables with the flow  thermodynamic variables with the flow
540  variables. Fig.~\ref{fig:adams-bashforth-staggered} illustrates the  variables. Fig.~\ref{fig:adams-bashforth-staggered} illustrates the
541  staggering and algorithm. The key difference between this and  staggering and algorithm. The key difference between this and
542  Fig.~\ref{fig:adams-bashforth-sync} is that the new thermodynamics  Fig.~\ref{fig:adams-bashforth-sync} is that the thermodynamic variables
543  fields are used to compute the hydrostatic pressure at time level  are solved after the dynamics, using the recently updated flow field.
544  $n+1/2$. The essentially allows the gravity wave terms to leap-frog in  This essentially allows the gravity wave terms to leap-frog in
545  time giving second order accuracy and more stability.  time giving second order accuracy and more stability.
546    
547  The essential change in the staggered algorithm is the calculation of  The essential change in the staggered algorithm is that the
548  hydrostatic pressure which, in the context of the synchronous  thermodynamics solver is delayed from half a time step,
549  algorithm involves replacing equation \ref{eq:phi-hyd-sync} with  allowing the use of the most recent velocities to compute
550  \begin{displaymath}  the advection terms. Once the thermodynamics fields are
551  \phi_{hyd}^n = \int b(\theta^{n+1},S^{n+1}) dr  updated, the hydrostatic pressure is computed
552  \end{displaymath}  to step frowrad the dynamics
553  but the pressure gradient must also be taken out of the  Note that the pressure gradient must also be taken out of the
554  Adams-Bashforth extrapolation. Also, retaining the integer time-levels,  Adams-Bashforth extrapolation. Also, retaining the integer time-levels,
555  $n$ and $n+1$, does not give a user the sense of where variables are  $n$ and $n+1$, does not give a user the sense of where variables are
556  located in time.  Instead, we re-write the entire algorithm,  located in time.  Instead, we re-write the entire algorithm,
557  \ref{eq:Gt-n-sync} to \ref{eq:v-n+1-sync}, annotating the  \ref{eq:Gt-n-sync} to \ref{eq:v-n+1-sync}, annotating the
558  position in time of variables appropriately:  position in time of variables appropriately:
559  \begin{eqnarray}  \begin{eqnarray}
560  G_{\theta,S}^{n-1/2} & = & G_{\theta,S} ( u^n, \theta^{n-1/2}, S^{n-1/2} )  \vec{\bf G}_{\vec{\bf v}}^{n-1/2} & = & \vec{\bf G}_{\vec{\bf v}} ( \vec{\bf v}^{n-1/2} )
 \label{eq:Gt-n-staggered} \\  
 G_{\theta,S}^{(n)} & = & (3/2+\epsilon_{AB}) G_{\theta,S}^{n-1/2}-(1/2+\epsilon_{AB}) G_{\theta,S}^{n-3/2}  
 \label{eq:Gt-n+5-staggered} \\  
 (\theta^*,S^*) & = & (\theta^{n},S^{n}) + \Delta t G_{\theta,S}^{(n)}  
 \label{eq:tstar-staggered} \\  
 (\theta^{n+1/2},S^{n+1/2}) & = & {\cal L}^{-1}_{\theta,S} (\theta^*,S^*)  
 \label{eq:t-n+1-staggered} \\  
 \phi^{n+1/2}_{hyd} & = & \int b(\theta^{n+1/2},S^{n+1/2}) dr  
 \label{eq:phi-hyd-staggered} \\  
 \vec{\bf G}_{\vec{\bf v}}^{n} & = & \vec{\bf G}_{\vec{\bf v}} ( \vec{\bf v}^n )  
561  \label{eq:Gv-n-staggered} \\  \label{eq:Gv-n-staggered} \\
562  \vec{\bf G}_{\vec{\bf v}}^{(n+1/2)} & = & (3/2 + \epsilon_{AB} ) \vec{\bf G}_{\vec{\bf v}}^{n} - (1/2 + \epsilon_{AB} ) \vec{\bf G}_{\vec{\bf v}}^{n-1}  \vec{\bf G}_{\vec{\bf v}}^{(n)} & = & (3/2 + \epsilon_{AB} ) \vec{\bf G}_{\vec{\bf v}}^{n-1/2} - (1/2 + \epsilon_{AB} ) \vec{\bf G}_{\vec{\bf v}}^{n-3/2}
563  \label{eq:Gv-n+5-staggered} \\  \label{eq:Gv-n+5-staggered} \\
564  \vec{\bf v}^{*} & = & \vec{\bf v}^{n} + \Delta t \left( \vec{\bf G}_{\vec{\bf v}}^{(n+1/2)} - \nabla \phi_{hyd}^{n+1/2} \right)  \phi^{n}_{hyd} & = & \int b(\theta^{n},S^{n}) dr
565    \label{eq:phi-hyd-staggered} \\
566    \vec{\bf v}^{*} & = & \vec{\bf v}^{n-1/2} + \Delta t \left( \vec{\bf G}_{\vec{\bf v}}^{(n)} - \nabla \phi_{hyd}^{n} \right)
567  \label{eq:vstar-staggered} \\  \label{eq:vstar-staggered} \\
568  \vec{\bf v}^{**} & = & {\cal L}_{\vec{\bf v}}^{-1} ( \vec{\bf v}^* )  \vec{\bf v}^{**} & = & {\cal L}_{\vec{\bf v}}^{-1} ( \vec{\bf v}^* )
569  \label{eq:vstarstar-staggered} \\  \label{eq:vstarstar-staggered} \\
570  \eta^* & = & \epsilon_{fs} \left( \eta^{n} +P-E+R \right)- \Delta t  \eta^* & = & \epsilon_{fs} \left( \eta^{n-1/2} + \Delta t (P-E)^n \right)- \Delta t
571    \nabla \cdot H \widehat{ \vec{\bf v}^{**} }    \nabla \cdot H \widehat{ \vec{\bf v}^{**} }
572  \label{eq:nstar-staggered} \\  \label{eq:nstar-staggered} \\
573  \nabla \cdot g H \nabla \eta^{n+1} - \frac{\epsilon_{fs} \eta^{n+1}}{\Delta t^2}  \nabla \cdot g H \nabla \eta^{n+1/2} & - & \frac{\epsilon_{fs} \eta^{n+1/2}}{\Delta t^2}
574  & = & - \frac{\eta^*}{\Delta t^2}  ~ = ~ - \frac{\eta^*}{\Delta t^2}
575  \label{eq:elliptic-staggered} \\  \label{eq:elliptic-staggered} \\
576  \vec{\bf v}^{n+1} & = & \vec{\bf v}^{*} - \Delta t g \nabla \eta^{n+1}  \vec{\bf v}^{n+1/2} & = & \vec{\bf v}^{*} - \Delta t g \nabla \eta^{n+1/2}
577  \label{eq:v-n+1-staggered}  \label{eq:v-n+1-staggered} \\
578    G_{\theta,S}^{n} & = & G_{\theta,S} ( u^{n+1/2}, \theta^{n}, S^{n} )
579    \label{eq:Gt-n-staggered} \\
580    G_{\theta,S}^{(n+1/2)} & = & (3/2+\epsilon_{AB}) G_{\theta,S}^{n}-(1/2+\epsilon_{AB}) G_{\theta,S}^{n-1}
581    \label{eq:Gt-n+5-staggered} \\
582    (\theta^*,S^*) & = & (\theta^{n},S^{n}) + \Delta t G_{\theta,S}^{(n+1/2)}
583    \label{eq:tstar-staggered} \\
584    (\theta^{n+1},S^{n+1}) & = & {\cal L}^{-1}_{\theta,S} (\theta^*,S^*)
585    \label{eq:t-n+1-staggered} \\
586  \end{eqnarray}  \end{eqnarray}
587  The calling sequence is unchanged from  The corresponding calling tree is given in
588  Fig.~\ref{fig:call-tree-adams-bashforth-sync}. The staggered algorithm  \ref{fig:call-tree-adams-bashforth-staggered}.
589  is activated with the run-time flag {\bf staggerTimeStep=.TRUE.} in  The staggered algorithm is activated with the run-time flag
590  {\em PARM01} of {\em data}.  {\bf staggerTimeStep=.TRUE.} in parameter file {\em data},
591    namelist {\em PARM01}.
592    
593    \begin{figure}
594    \begin{center} \fbox{ \begin{minipage}{4.7in} \begin{tabbing}
595    aaa \= aaa \= aaa \= aaa \= aaa \= aaa \kill
596    FORWARD\_STEP \\
597    \>\> EXTERNAL\_FIELDS\_LOAD\\
598    \>\> DO\_ATMOSPHERIC\_PHYS \\
599    \>\> DO\_OCEANIC\_PHYS \\
600    \> DYNAMICS \\
601    \>\> CALC\_PHI\_HYD \` $\phi_{hyd}^n$ (\ref{eq:phi-hyd-staggered}) \\
602    \>\> MOM\_FLUXFORM or MOM\_VECINV \` $G_{\vec{\bf v}}^{n-1/2}$
603        (\ref{eq:Gv-n-staggered})\\
604    \>\> TIMESTEP \` $\vec{\bf v}^*$ (\ref{eq:Gv-n+5-staggered},
605                                      \ref{eq:vstar-staggered}) \\
606    \>\> IMPLDIFF \` $\vec{\bf v}^{**}$ (\ref{eq:vstarstar-staggered}) \\
607    \> UPDATE\_R\_STAR or UPDATE\_SURF\_DR \` (NonLin-FS only)\\
608    \> SOLVE\_FOR\_PRESSURE \\
609    \>\> CALC\_DIV\_GHAT \` $\eta^*$ (\ref{eq:nstar-staggered}) \\
610    \>\> CG2D \` $\eta^{n+1/2}$ (\ref{eq:elliptic-staggered}) \\
611    \> MOMENTUM\_CORRECTION\_STEP  \\
612    \>\> CALC\_GRAD\_PHI\_SURF \` $\nabla \eta^{n+1/2}$ \\
613    \>\> CORRECTION\_STEP \` $u^{n+1/2}$,$v^{n+1/2}$ (\ref{eq:v-n+1-staggered})\\
614    \> THERMODYNAMICS \\
615    \>\> CALC\_GT \\
616    \>\>\> GAD\_CALC\_RHS \` $G_\theta^n = G_\theta( u, \theta^n )$
617         (\ref{eq:Gt-n-staggered})\\
618    \>\>\> EXTERNAL\_FORCING \` $G_\theta^n = G_\theta^n + {\cal Q}$ \\
619    \>\>\> ADAMS\_BASHFORTH2 \` $G_\theta^{(n+1/2)}$ (\ref{eq:Gt-n+5-staggered}) \\
620    \>\> TIMESTEP\_TRACER \` $\tau^*$ (\ref{eq:tstar-staggered}) \\
621    \>\> IMPLDIFF \` $\tau^{(n+1)}$ (\ref{eq:t-n+1-staggered}) \\
622    \> TRACERS\_CORRECTION\_STEP  \\
623    \>\> CYCLE\_TRACER \` $\theta^{n+1}$ \\
624    \>\> FILTER \` Shapiro Filter, Zonal Filter (FFT) \\
625    \>\> CONVECTIVE\_ADJUSTMENT \` \\
626    \end{tabbing} \end{minipage} } \end{center}
627    \caption{
628    Calling tree for the overall staggered algorithm using
629    Adams-Bashforth time-stepping.
630    The place where the model geometry
631    ({\em hFac} factors) is updated is added here but is only relevant
632    for the non-linear free-surface algorithm.
633    }
634    \label{fig:call-tree-adams-bashforth-staggered}
635    \end{figure}
636    
637  The only difficulty with this approach is apparent in equation  The only difficulty with this approach is apparent in equation
638  \ref{eq:Gt-n-staggered} and illustrated by the dotted arrow  \ref{eq:Gt-n-staggered} and illustrated by the dotted arrow
# Line 651  the following equations: Line 719  the following equations:
719  u^{*} & = & u^{n} + \Delta t G_u^{(n+1/2)} \label{eq:ustar-nh} \\  u^{*} & = & u^{n} + \Delta t G_u^{(n+1/2)} \label{eq:ustar-nh} \\
720  v^{*} & = & v^{n} + \Delta t G_v^{(n+1/2)} \label{eq:vstar-nh} \\  v^{*} & = & v^{n} + \Delta t G_v^{(n+1/2)} \label{eq:vstar-nh} \\
721  w^{*} & = & w^{n} + \Delta t G_w^{(n+1/2)} \label{eq:wstar-nh} \\  w^{*} & = & w^{n} + \Delta t G_w^{(n+1/2)} \label{eq:wstar-nh} \\
722  \eta^* & = & \epsilon_{fs} \left( \eta^{n} +P-E+R \right)- \Delta t  \eta^* ~ = ~ \epsilon_{fs} \left( \eta^{n} + \Delta t (P-E) \right)
723    & - & \Delta t
724    \partial_x H \widehat{u^{*}}    \partial_x H \widehat{u^{*}}
725  + \partial_y H \widehat{v^{*}}  + \partial_y H \widehat{v^{*}}
726  \\  \\
727    \partial_x g H \partial_x \eta^{n+1}    \partial_x g H \partial_x \eta^{n+1}
728  + \partial_y g H \partial_y \eta^{n+1}  + \partial_y g H \partial_y \eta^{n+1}
729  - \frac{\epsilon_{fs} \eta^{n+1}}{\Delta t^2}  & - & \frac{\epsilon_{fs} \eta^{n+1}}{\Delta t^2}
730  & = &  ~ = ~
731  - \frac{\eta^*}{\Delta t^2}  - \frac{\eta^*}{\Delta t^2}
732  \label{eq:elliptic-nh}  \label{eq:elliptic-nh}
733  \\  \\

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

  ViewVC Help
Powered by ViewVC 1.1.22