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} |
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} |
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...} |
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} = |
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 |
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})\\ |
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 |
|
|
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} |
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}. |
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} |
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 |
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 |
\\ |
\\ |