New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 10354 for NEMO/trunk/doc/latex/NEMO/subfiles/chap_model_basics_zstar.tex – NEMO

Ignore:
Timestamp:
2018-11-21T17:59:55+01:00 (5 years ago)
Author:
nicolasmartin
Message:

Vast edition of LaTeX subfiles to improve the readability by cutting sentences in a more suitable way
Every sentence begins in a new line and if necessary is splitted around 110 characters lenght for side-by-side visualisation,
this setting may not be adequate for everyone but something has to be set.
The punctuation was the primer trigger for the cutting process, otherwise subordinators and coordinators, in order to mostly keep a meaning for each line

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/doc/latex/NEMO/subfiles/chap_model_basics_zstar.tex

    r10146 r10354  
    1616\colorbox{yellow}{ to be updated } 
    1717 
    18 In that case, the free surface equation is nonlinear, and the variations of  
    19 volume are fully taken into account. These coordinates systems is presented in  
    20 a report \citep{Levier2007} available on the \NEMO web site.  
     18In that case, the free surface equation is nonlinear, and the variations of volume are fully taken into account. 
     19These coordinates systems is presented in a report \citep{Levier2007} available on the \NEMO web site.  
    2120 
    2221\colorbox{yellow}{  end of to be updated} 
     
    2524% from MOM4p1 documentation 
    2625 
    27 To overcome problems with vanishing surface and/or bottom cells, we consider the  
    28 zstar coordinate  
     26To overcome problems with vanishing surface and/or bottom cells, we consider the zstar coordinate  
    2927\begin{equation} \label{eq:PE_} 
    3028   z^\star = H \left( \frac{z-\eta}{H+\eta} \right) 
    3129\end{equation} 
    3230 
    33 This coordinate is closely related to the "eta" coordinate used in many atmospheric  
    34 models (see Black (1994) for a review of eta coordinate atmospheric models). It  
    35 was originally used in ocean models by Stacey et al. (1995) for studies of tides  
    36 next to shelves, and it has been recently promoted by Adcroft and Campin (2004)  
    37 for global climate modelling. 
    38  
    39 The surfaces of constant $z^\star$ are quasi-horizontal. Indeed, the $z^\star$ coordinate reduces to $z$ when $\eta$ is zero. In general, when noting the large differences between  
    40 undulations of the bottom topography versus undulations in the surface height, it  
    41 is clear that surfaces constant $z^\star$ are very similar to the depth surfaces. These properties greatly reduce difficulties of computing the horizontal pressure gradient relative to terrain following sigma models discussed in \autoref{subsec:PE_sco}.  
    42 Additionally, since $z^\star$ when $\eta = 0$, no flow is spontaneously generated in an  
    43 unforced ocean starting from rest, regardless the bottom topography. This behaviour is in contrast to the case with "s"-models, where pressure gradient errors in  
    44 the presence of nontrivial topographic variations can generate nontrivial spontaneous flow from a resting state, depending on the sophistication of the pressure  
    45 gradient solver. The quasi-horizontal nature of the coordinate surfaces also facilitates the implementation of neutral physics parameterizations in $z^\star$ models using  
    46 the same techniques as in $z$-models (see Chapters 13-16 of Griffies (2004) for a  
    47 discussion of neutral physics in $z$-models, as well as  \autoref{sec:LDF_slp}  
    48 in this document for treatment in \NEMO).  
    49  
    50 The range over which $z^\star$ varies is time independent $-H \leq z^\star \leq 0$. Hence, all  
    51 cells remain nonvanishing, so long as the surface height maintains $\eta > ?H$. This  
    52 is a minor constraint relative to that encountered on the surface height when using  
    53 $s = z$ or $s = z - \eta$.  
    54  
    55 Because $z^\star$ has a time independent range, all grid cells have static increments  
    56 ds, and the sum of the ver tical increments yields the time independent ocean  
    57 depth %�k ds = H.  
    58 The $z^\star$ coordinate is therefore invisible to undulations of the  
    59 free surface, since it moves along with the free surface. This proper ty means that  
    60 no spurious ver tical transpor t is induced across surfaces of constant $z^\star$ by the  
    61 motion of external gravity waves. Such spurious transpor t can be a problem in  
    62 z-models, especially those with tidal forcing. Quite generally, the time independent  
    63 range for the $z^\star$ coordinate is a very convenient proper ty that allows for a nearly  
    64 arbitrary ver tical resolution even in the presence of large amplitude fluctuations of  
     31This coordinate is closely related to the "eta" coordinate used in many atmospheric models 
     32(see Black (1994) for a review of eta coordinate atmospheric models). 
     33It was originally used in ocean models by Stacey et al. (1995) for studies of tides next to shelves, 
     34and it has been recently promoted by Adcroft and Campin (2004) for global climate modelling. 
     35 
     36The surfaces of constant $z^\star$ are quasi-horizontal. 
     37Indeed, the $z^\star$ coordinate reduces to $z$ when $\eta$ is zero. 
     38In general, when noting the large differences between undulations of the bottom topography versus undulations in 
     39the surface height, it is clear that surfaces constant $z^\star$ are very similar to the depth surfaces. 
     40These properties greatly reduce difficulties of computing the horizontal pressure gradient relative to 
     41terrain following sigma models discussed in \autoref{subsec:PE_sco}.  
     42Additionally, since $z^\star$ when $\eta = 0$, no flow is spontaneously generated in 
     43an unforced ocean starting from rest, regardless the bottom topography. 
     44This behaviour is in contrast to the case with "s"-models, where pressure gradient errors in the presence of 
     45nontrivial topographic variations can generate nontrivial spontaneous flow from a resting state, 
     46depending on the sophistication of the pressure gradient solver. 
     47The quasi-horizontal nature of the coordinate surfaces also facilitates the implementation of 
     48neutral physics parameterizations in $z^\star$ models using the same techniques as in $z$-models 
     49(see Chapters 13-16 of Griffies (2004) for a discussion of neutral physics in $z$-models, 
     50as well as  \autoref{sec:LDF_slp} in this document for treatment in \NEMO).  
     51 
     52The range over which $z^\star$ varies is time independent $-H \leq z^\star \leq 0$. 
     53Hence, all cells remain nonvanishing, so long as the surface height maintains $\eta > ?H$. 
     54This is a minor constraint relative to that encountered on the surface height when using $s = z$ or $s = z - \eta$.  
     55 
     56Because $z^\star$ has a time independent range, all grid cells have static increments ds, 
     57and the sum of the ver tical increments yields the time independent ocean depth %�k ds = H.  
     58The $z^\star$ coordinate is therefore invisible to undulations of the free surface, 
     59since it moves along with the free surface. 
     60This proper ty means that no spurious ver tical transpor t is induced across surfaces of 
     61constant $z^\star$ by the motion of external gravity waves. 
     62Such spurious transpor t can be a problem in z-models, especially those with tidal forcing. 
     63Quite generally, the time independent range for the $z^\star$ coordinate is a very convenient property that 
     64allows for a nearly arbitrary vertical resolution even in the presence of large amplitude fluctuations of 
    6565the surface height, again so long as $\eta > -H$.  
    6666 
     
    8181\nlst{nam_dynspg}  
    8282%------------------------------------------------------------------------------------------------------------ 
    83 Options are defined through the  \ngn{nam\_dynspg} namelist variables. 
    84 The surface pressure gradient term is related to the representation of the free surface (\autoref{sec:PE_hor_pg}). The main distinction is between the fixed volume case (linear free surface or rigid lid) and the variable volume case (nonlinear free surface, \key{vvl} is active). In the linear free surface case (\autoref{subsec:PE_free_surface}) and rigid lid (\autoref{PE_rigid_lid}), the vertical scale factors $e_{3}$ are fixed in time, while in the nonlinear case (\autoref{subsec:PE_free_surface}) they are time-dependent. With both linear and nonlinear free surface, external gravity waves are allowed in the equations, which imposes a very small time step when an explicit time stepping is used. Two methods are proposed to allow a longer time step for the three-dimensional equations: the filtered free surface, which is a modification of the continuous equations (see \autoref{eq:PE_flt}), and the split-explicit free surface described below. The extra term introduced in the filtered method is calculated implicitly, so that the update of the next velocities is done in module \mdl{dynspg\_flt} and not in \mdl{dynnxt}. 
     83Options are defined through the \ngn{nam\_dynspg} namelist variables. 
     84The surface pressure gradient term is related to the representation of the free surface (\autoref{sec:PE_hor_pg}). 
     85The main distinction is between the fixed volume case (linear free surface or rigid lid) and 
     86the variable volume case (nonlinear free surface, \key{vvl} is active). 
     87In the linear free surface case (\autoref{subsec:PE_free_surface}) and rigid lid (\autoref{PE_rigid_lid}), 
     88the vertical scale factors $e_{3}$ are fixed in time, 
     89while in the nonlinear case (\autoref{subsec:PE_free_surface}) they are time-dependent. 
     90With both linear and nonlinear free surface, external gravity waves are allowed in the equations, 
     91which imposes a very small time step when an explicit time stepping is used. 
     92Two methods are proposed to allow a longer time step for the three-dimensional equations: 
     93the filtered free surface, which is a modification of the continuous equations (see \autoref{eq:PE_flt}), 
     94and the split-explicit free surface described below. 
     95The extra term introduced in the filtered method is calculated implicitly, 
     96so that the update of the next velocities is done in module \mdl{dynspg\_flt} and not in \mdl{dynnxt}. 
    8597 
    8698%------------------------------------------------------------- 
     
    90102\label{subsec:DYN_spg_exp} 
    91103 
    92 In the explicit free surface formulation, the model time step is chosen small enough to describe the external gravity waves (typically a few ten seconds). The sea surface height is given by : 
     104In the explicit free surface formulation, the model time step is chosen small enough to 
     105describe the external gravity waves (typically a few ten seconds). 
     106The sea surface height is given by: 
    93107\begin{equation} \label{eq:dynspg_ssh} 
    94108\frac{\partial \eta }{\partial t}\equiv \frac{\text{EMP}}{\rho _w }+\frac{1}{e_{1T}  
     
    97111\end{equation} 
    98112 
    99 where EMP is the surface freshwater budget (evaporation minus precipitation, and minus river runoffs (if the later are introduced as a surface freshwater flux, see \autoref{chap:SBC}) expressed in $Kg.m^{-2}.s^{-1}$, and $\rho _w =1,000\,Kg.m^{-3}$ is the volumic mass of pure water. The sea-surface height is evaluated using a leapfrog scheme in combination with an Asselin time filter, i.e. the velocity appearing in (\autoref{eq:dynspg_ssh}) is centred in time (\textit{now} velocity).  
    100  
    101 The surface pressure gradient, also evaluated using a leap-frog scheme, is then simply given by : 
     113where EMP is the surface freshwater budget (evaporation minus precipitation, and minus river runoffs 
     114(if the later are introduced as a surface freshwater flux, see \autoref{chap:SBC}) expressed in $Kg.m^{-2}.s^{-1}$, 
     115and $\rho _w =1,000\,Kg.m^{-3}$ is the volumic mass of pure water. 
     116The sea-surface height is evaluated using a leapfrog scheme in combination with an Asselin time filter, 
     117i.e. the velocity appearing in (\autoref{eq:dynspg_ssh}) is centred in time (\textit{now} velocity).  
     118 
     119The surface pressure gradient, also evaluated using a leap-frog scheme, is then simply given by: 
    102120\begin{equation} \label{eq:dynspg_exp} 
    103121\left\{ \begin{aligned} 
     
    108126\end{equation}  
    109127 
    110 Consistent with the linearization, a $\left. \rho \right|_{k=1} / \rho _o$ factor is omitted in (\autoref{eq:dynspg_exp}).  
     128Consistent with the linearization, a $\left. \rho \right|_{k=1} / \rho _o$ factor is omitted in 
     129(\autoref{eq:dynspg_exp}).  
    111130 
    112131%------------------------------------------------------------- 
     
    119138\nlst{namdom}  
    120139%-------------------------------------------------------------------------------------------------------------- 
    121 The split-explicit free surface formulation used in OPA follows the one proposed by \citet{Griffies2004}. The general idea is to solve the free surface equation with a small time step, while the three dimensional prognostic variables are solved with a longer time step that is a multiple of \np{rdtbt} 
    122 in the  \ngn{namdom} namelist.  
    123 (Figure III.3).  
     140The split-explicit free surface formulation used in OPA follows the one proposed by \citet{Griffies2004}. 
     141The general idea is to solve the free surface equation with a small time step, 
     142while the three dimensional prognostic variables are solved with a longer time step that 
     143is a multiple of \np{rdtbt} in the \ngn{namdom} namelist (Figure III.3).  
    124144 
    125145%>   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   > 
     
    127147\includegraphics[width=0.90\textwidth]{Fig_DYN_dynspg_ts} 
    128148\caption{    \protect\label{fig:DYN_dynspg_ts} 
    129 Schematic of the split-explicit time stepping scheme for the barotropic and baroclinic modes,  
    130 after \citet{Griffies2004}. Time increases to the right. Baroclinic time steps are denoted by  
    131 $t-\Delta t$, $t, t+\Delta t$, and $t+2\Delta t$. The curved line represents a leap-frog time step,  
    132 and the smaller barotropic time steps $N \Delta t=2\Delta t$ are denoted by the zig-zag line.  
    133 The vertically integrated forcing \textbf{M}(t) computed at baroclinic time step t represents  
    134 the interaction between the barotropic and baroclinic motions. While keeping the total depth,  
    135 tracer, and freshwater forcing fields fixed, a leap-frog integration carries the surface height  
    136 and vertically integrated velocity from t to $t+2 \Delta t$ using N barotropic time steps of length  
    137 $\Delta t$. Time averaging the barotropic fields over the N+1 time steps (endpoints included)  
    138 centers the vertically integrated velocity at the baroclinic timestep $t+\Delta t$.  
    139 A baroclinic leap-frog time step carries the surface height to $t+\Delta t$ using the convergence  
    140 of the time averaged vertically integrated velocity taken from baroclinic time step t. } 
     149  Schematic of the split-explicit time stepping scheme for the barotropic and baroclinic modes, 
     150  after \citet{Griffies2004}. 
     151  Time increases to the right. 
     152  Baroclinic time steps are denoted by $t-\Delta t$, $t, t+\Delta t$, and $t+2\Delta t$. 
     153  The curved line represents a leap-frog time step, 
     154  and the smaller barotropic time steps $N \Delta t=2\Delta t$ are denoted by the zig-zag line. 
     155  The vertically integrated forcing \textbf{M}(t) computed at 
     156  baroclinic time step t represents the interaction between the barotropic and baroclinic motions. 
     157  While keeping the total depth, tracer, and freshwater forcing fields fixed, 
     158  a leap-frog integration carries the surface height and vertically integrated velocity from 
     159  t to $t+2 \Delta t$ using N barotropic time steps of length $\Delta t$. 
     160  Time averaging the barotropic fields over the N+1 time steps (endpoints included) 
     161  centers the vertically integrated velocity at the baroclinic timestep $t+\Delta t$. 
     162  A baroclinic leap-frog time step carries the surface height to $t+\Delta t$ using the convergence of 
     163  the time averaged vertically integrated velocity taken from baroclinic time step t. } 
    141164\end{center} 
    142165\end{figure} 
    143166%>   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   >   > 
    144167 
    145 The split-explicit formulation has a damping effect on external gravity waves, which is weaker than the filtered free surface but still significant as shown by \citet{Levier2007} in the case of an analytical barotropic Kelvin wave.  
     168The split-explicit formulation has a damping effect on external gravity waves, 
     169which is weaker than the filtered free surface but still significant as shown by \citet{Levier2007} in 
     170the case of an analytical barotropic Kelvin wave.  
    146171 
    147172%from griffies book: .....   copy past ! 
     
    149174\textbf{title: Time stepping the barotropic system } 
    150175 
    151 Assume knowledge of the full velocity and tracer fields at baroclinic time $\tau$. Hence,  
    152 we can update the surface height and vertically integrated velocity with a leap-frog  
    153 scheme using the small barotropic time step $\Delta t$. We have  
    154  
     176Assume knowledge of the full velocity and tracer fields at baroclinic time $\tau$. 
     177Hence, we can update the surface height and vertically integrated velocity with a leap-frog scheme using 
     178the small barotropic time step $\Delta t$. 
     179We have 
    155180\begin{equation} \label{eq:DYN_spg_ts_eta} 
    156181\eta^{(b)}(\tau,t_{n+1}) - \eta^{(b)}(\tau,t_{n+1}) (\tau,t_{n-1}) 
     
    164189\ 
    165190 
    166 In these equations, araised (b) denotes values of surface height and vertically integrated velocity updated with the barotropic time steps. The $\tau$ time label on $\eta^{(b)}$  
    167 and $U^{(b)}$ denotes the baroclinic time at which the vertically integrated forcing $\textbf{M}(\tau)$ (note that this forcing includes the surface freshwater forcing), the tracer fields, the freshwater flux $\text{EMP}_w(\tau)$, and total depth of the ocean $H(\tau)$ are held for the duration of the barotropic time stepping over a single cycle. This is also the time  
    168 that sets the barotropic time steps via  
     191In these equations, araised (b) denotes values of surface height and 
     192vertically integrated velocity updated with the barotropic time steps. 
     193The $\tau$ time label on $\eta^{(b)}$ and $U^{(b)}$ denotes the baroclinic time at which 
     194the vertically integrated forcing $\textbf{M}(\tau)$ 
     195(note that this forcing includes the surface freshwater forcing), the tracer fields, 
     196the freshwater flux $\text{EMP}_w(\tau)$, and total depth of the ocean $H(\tau)$ are held for 
     197the duration of the barotropic time stepping over a single cycle. 
     198This is also the time that sets the barotropic time steps via  
    169199\begin{equation} \label{eq:DYN_spg_ts_t} 
    170200t_n=\tau+n\Delta t    
    171201\end{equation} 
    172 with $n$ an integer. The density scaled surface pressure is evaluated via  
     202with $n$ an integer. 
     203The density scaled surface pressure is evaluated via  
    173204\begin{equation} \label{eq:DYN_spg_ts_ps} 
    174205p_s^{(b)}(\tau,t_{n}) = \begin{cases} 
     
    189220 \overline{\eta^{(b)}(\tau)} = \frac{1}{N+1} \sum\limits_{n=0}^N \eta^{(b)}(\tau-\Delta t,t_{n}) 
    190221\end{equation} 
    191 the time averaged surface height taken from the previous barotropic cycle. Likewise,  
     222the time averaged surface height taken from the previous barotropic cycle. 
     223Likewise, 
    192224\begin{equation} \label{eq:DYN_spg_ts_u} 
    193225\textbf{U}^{(b)}(\tau,t_{n=0}) = \overline{\textbf{U}^{(b)}(\tau)}   \\ 
     
    200232   = \frac{1}{N+1} \sum\limits_{n=0}^N\textbf{U}^{(b)}(\tau-\Delta t,t_{n}) 
    201233\end{equation} 
    202 the time averaged vertically integrated transport. Notably, there is no Robert-Asselin time filter used in the barotropic portion of the integration.  
    203  
    204 Upon reaching $t_{n=N} = \tau + 2\Delta \tau$ , the vertically integrated velocity is time averaged to produce the updated vertically integrated velocity at baroclinic time $\tau + \Delta \tau$  
     234the time averaged vertically integrated transport. 
     235Notably, there is no Robert-Asselin time filter used in the barotropic portion of the integration.  
     236 
     237Upon reaching $t_{n=N} = \tau + 2\Delta \tau$ , the vertically integrated velocity is time averaged to 
     238produce the updated vertically integrated velocity at baroclinic time $\tau + \Delta \tau$  
    205239\begin{equation} \label{eq:DYN_spg_ts_u} 
    206240\textbf{U}(\tau+\Delta t) = \overline{\textbf{U}^{(b)}(\tau+\Delta t)}  
    207241   = \frac{1}{N+1} \sum\limits_{n=0}^N\textbf{U}^{(b)}(\tau,t_{n}) 
    208242\end{equation} 
    209 The surface height on the new baroclinic time step is then determined via a baroclinic leap-frog using the following form  
    210  
     243The surface height on the new baroclinic time step is then determined via 
     244a baroclinic leap-frog using the following form  
    211245\begin{equation} \label{eq:DYN_spg_ts_ssh} 
    212246\eta(\tau+\Delta) - \eta^{F}(\tau-\Delta) = 2\Delta t \ \left[ - \nabla \cdot \textbf{U}(\tau) + \text{EMP}_w \right]   
    213247\end{equation} 
    214248 
    215  The use of this "big-leap-frog" scheme for the surface height ensures compatibility between the mass/volume budgets and the tracer budgets. More discussion of this point is provided in Chapter 10 (see in particular Section 10.2).  
     249The use of this "big-leap-frog" scheme for the surface height ensures compatibility between 
     250the mass/volume budgets and the tracer budgets. 
     251More discussion of this point is provided in Chapter 10 (see in particular Section 10.2).  
    216252  
    217 In general, some form of time filter is needed to maintain integrity of the surface  
    218 height field due to the leap-frog splitting mode in equation \autoref{eq:DYN_spg_ts_ssh}. We  
    219 have tried various forms of such filtering, with the following method discussed in  
    220 Griffies et al. (2001) chosen due to its stability and reasonably good maintenance of  
    221 tracer conservation properties (see ??)  
     253In general, some form of time filter is needed to maintain integrity of the surface height field due to 
     254the leap-frog splitting mode in equation \autoref{eq:DYN_spg_ts_ssh}. 
     255We have tried various forms of such filtering, 
     256with the following method discussed in Griffies et al. (2001) chosen due to its stability and 
     257reasonably good maintenance of tracer conservation properties (see ??)  
    222258 
    223259\begin{equation} \label{eq:DYN_spg_ts_sshf} 
     
    232268\end{equation} 
    233269 
    234 which is useful since it isolates all the time filtering aspects into the term multiplied  
    235 by $\alpha$. This isolation allows for an easy check that tracer conservation is exact when  
    236 eliminating tracer and surface height time filtering (see ?? for more complete discussion). However, in the general case with a non-zero $\alpha$, the filter \autoref{eq:DYN_spg_ts_sshf} was found to be more conservative, and so is recommended.  
     270which is useful since it isolates all the time filtering aspects into the term multiplied by $\alpha$. 
     271This isolation allows for an easy check that tracer conservation is exact when eliminating tracer and 
     272surface height time filtering (see ?? for more complete discussion). 
     273However, in the general case with a non-zero $\alpha$, the filter \autoref{eq:DYN_spg_ts_sshf} was found to 
     274be more conservative, and so is recommended.  
    237275 
    238276 
     
    246284\label{subsec:DYN_spg_flt} 
    247285 
    248 The filtered formulation follows the \citet{Roullet2000} implementation. The extra term introduced in the equations (see {\S}I.2.2) is solved implicitly. The elliptic solvers available in the code are  
    249 documented in \autoref{chap:MISC}. The amplitude of the extra term is given by the namelist variable \np{rnu}. The default value is 1, as recommended by \citet{Roullet2000} 
     286The filtered formulation follows the \citet{Roullet2000} implementation. 
     287The extra term introduced in the equations (see {\S}I.2.2) is solved implicitly. 
     288The elliptic solvers available in the code are documented in \autoref{chap:MISC}. 
     289The amplitude of the extra term is given by the namelist variable \np{rnu}. 
     290The default value is 1, as recommended by \citet{Roullet2000} 
    250291 
    251292\colorbox{red}{\np{rnu}\forcode{ = 1} to be suppressed from namelist !} 
     
    257298\label{subsec:DYN_spg_vvl} 
    258299 
    259 In the non-linear free surface formulation, the variations of volume are fully taken into account. This option is presented in a report \citep{Levier2007} available on the NEMO web site. The three time-stepping methods (explicit, split-explicit and filtered) are the same as in \autoref{DYN_spg_linear} except that the ocean depth is now time-dependent. In particular, this means that in filtered case, the matrix to be inverted has to be recomputed at each time-step. 
     300In the non-linear free surface formulation, the variations of volume are fully taken into account. 
     301This option is presented in a report \citep{Levier2007} available on the NEMO web site. 
     302The three time-stepping methods (explicit, split-explicit and filtered) are the same as in 
     303\autoref{DYN_spg_linear} except that the ocean depth is now time-dependent. 
     304In particular, this means that in filtered case, the matrix to be inverted has to be recomputed at each time-step. 
    260305 
    261306 
Note: See TracChangeset for help on using the changeset viewer.