/[MITgcm]/manual/s_phys_pkgs/text/seaice.tex
ViewVC logotype

Contents of /manual/s_phys_pkgs/text/seaice.tex

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


Revision 1.22 - (show annotations) (download) (as text)
Wed Jan 21 18:18:22 2015 UTC (10 years, 6 months ago) by mlosch
Branch: MAIN
Changes since 1.21: +55 -1 lines
File MIME type: application/x-tex
add description of EVP*

1 % $Header: /u/gcmpack/manual/s_phys_pkgs/text/seaice.tex,v 1.21 2014/04/01 07:30:32 mlosch Exp $
2 % $Name: $
3
4 %%EH3 Copied from "MITgcm/pkg/seaice/seaice_description.tex"
5 %%EH3 which was written by Dimitris M.
6
7
8 \subsection{SEAICE Package}
9 \label{sec:pkg:seaice}
10 \begin{rawhtml}
11 <!-- CMIREDIR:package_seaice: -->
12 \end{rawhtml}
13
14 Authors: Martin Losch, Dimitris Menemenlis, An Nguyen, Jean-Michel Campin,
15 Patrick Heimbach, Chris Hill and Jinlun Zhang
16
17 %----------------------------------------------------------------------
18 \subsubsection{Introduction
19 \label{sec:pkg:seaice:intro}}
20
21
22 Package ``seaice'' provides a dynamic and thermodynamic interactive
23 sea-ice model.
24
25 CPP options enable or disable different aspects of the package
26 (Section \ref{sec:pkg:seaice:config}).
27 Run-Time options, flags, filenames and field-related dates/times are
28 set in \code{data.seaice}
29 (Section \ref{sec:pkg:seaice:runtime}).
30 A description of key subroutines is given in Section
31 \ref{sec:pkg:seaice:subroutines}.
32 Input fields, units and sign conventions are summarized in
33 Section \ref{sec:pkg:seaice:fields_units}, and available diagnostics
34 output is listed in Section \ref{sec:pkg:seaice:diagnostics}.
35
36 %----------------------------------------------------------------------
37
38 \subsubsection{SEAICE configuration, compiling \& running}
39
40 \paragraph{Compile-time options
41 \label{sec:pkg:seaice:config}}
42 ~
43
44 As with all MITgcm packages, SEAICE can be turned on or off at compile time
45 %
46 \begin{itemize}
47 %
48 \item
49 using the \code{packages.conf} file by adding \code{seaice} to it,
50 %
51 \item
52 or using \code{genmake2} adding
53 \code{-enable=seaice} or \code{-disable=seaice} switches
54 %
55 \item
56 \textit{required packages and CPP options}: \\
57 SEAICE requires the external forcing package \code{exf} to be enabled;
58 no additional CPP options are required.
59 %
60 \end{itemize}
61 (see Section \ref{sec:buildingCode}).
62
63 Parts of the SEAICE code can be enabled or disabled at compile time
64 via CPP preprocessor flags. These options are set in
65 \code{SEAICE\_OPTIONS.h}.
66 Table \ref{tab:pkg:seaice:cpp} summarizes the most important ones.
67
68 \begin{table}[!ht]
69 \centering
70 \label{tab:pkg:seaice:cpp}
71 {\footnotesize
72 \begin{tabular}{|l|p{10cm}|}
73 \hline
74 \textbf{CPP option} & \textbf{Description} \\
75 \hline \hline
76 \code{SEAICE\_DEBUG} &
77 Enhance STDOUT for debugging \\
78 \code{SEAICE\_ALLOW\_DYNAMICS} &
79 sea-ice dynamics code \\
80 \code{SEAICE\_CGRID} &
81 LSR solver on C-grid (rather than original B-grid) \\
82 \code{SEAICE\_ALLOW\_EVP} &
83 enable use of EVP rheology solver \\
84 \code{SEAICE\_ALLOW\_JFNK} &
85 enable use of JFNK rheology solver \\
86 \code{SEAICE\_EXTERNAL\_FLUXES} &
87 use EXF-computed fluxes as starting point \\
88 \code{SEAICE\_ZETA\_SMOOTHREG} &
89 use differentialable regularization for viscosities \\
90 \code{SEAICE\_VARIABLE\_FREEZING\_POINT} &
91 enable linear dependence of the freezing point on salinity
92 (by default undefined)\\
93 \code{ALLOW\_SEAICE\_FLOODING} &
94 enable snow to ice conversion for submerged sea-ice \\
95 \code{SEAICE\_VARIABLE\_SALINITY} &
96 enable sea-ice with variable salinity (by default undefined) \\
97 \code{SEAICE\_SITRACER} &
98 enable sea-ice tracer package (by default undefined) \\
99 \code{SEAICE\_BICE\_STRESS} &
100 B-grid only for backward compatiblity: turn on ice-stress on
101 ocean\\
102 \code{EXPLICIT\_SSH\_SLOPE} &
103 B-grid only for backward compatiblity: use ETAN for tilt
104 computations rather than geostrophic velocities \\
105 \hline
106 \end{tabular}
107 }
108 \caption{Some of the most relevant CPP preprocessor flags in the
109 \code{seaice}-package.}
110 \end{table}
111
112 %----------------------------------------------------------------------
113
114 \subsubsection{Run-time parameters
115 \label{sec:pkg:seaice:runtime}}
116
117 Run-time parameters (see Table~\ref{tab:pkg:seaice:runtimeparms}) are set
118 in files \code{data.pkg} (read in \code{packages\_readparms.F}), and
119 \code{data.seaice} (read in \code{seaice\_readparms.F}).
120
121 \paragraph{Enabling the package}
122 ~ \\
123 %
124 A package is switched on/off at run-time by setting
125 (e.g. for SEAICE) \code{useSEAICE = .TRUE.} in \code{data.pkg}.
126
127 \paragraph{General flags and parameters}
128 ~ \\
129 %
130 Table~\ref{tab:pkg:seaice:runtimeparms} lists most run-time parameters.
131 \input{s_phys_pkgs/text/seaice-parms.tex}
132
133 \paragraph{Input fields and units\label{sec:pkg:seaice:fields_units}}
134 \begin{description}
135 \item[\code{HeffFile}:] Initial sea ice thickness averaged over grid cell
136 in meters; initializes variable \code{HEFF};
137 \item[\code{AreaFile}:] Initial fractional sea ice cover, range $[0,1]$;
138 initializes variable \code{AREA};
139 \item[\code{HsnowFile}:] Initial snow thickness on sea ice averaged
140 over grid cell in meters; initializes variable \code{HSNOW};
141 \item[\code{HsaltFile}:] Initial salinity of sea ice averaged over grid
142 cell in g/m$^2$; initializes variable \code{HSALT};
143 \end{description}
144
145 %----------------------------------------------------------------------
146 \subsubsection{Description
147 \label{sec:pkg:seaice:descr}}
148
149 [TO BE CONTINUED/MODIFIED]
150
151 % Sea-ice model thermodynamics are based on Hibler
152 % \cite{hib80}, that is, a 2-category model that simulates ice thickness
153 % and concentration. Snow is simulated as per Zhang et al.
154 % \cite{zha98a}. Although recent years have seen an increased use of
155 % multi-category thickness distribution sea-ice models for climate
156 % studies, the Hibler 2-category ice model is still the most widely used
157 % model and has resulted in realistic simulation of sea-ice variability
158 % on regional and global scales. Being less complicated, compared to
159 % multi-category models, the 2-category model permits easier application
160 % of adjoint model optimization methods.
161
162 % Note, however, that the Hibler 2-category model and its variants use a
163 % so-called zero-layer thermodynamic model to estimate ice growth and
164 % decay. The zero-layer thermodynamic model assumes that ice does not
165 % store heat and, therefore, tends to exaggerate the seasonal
166 % variability in ice thickness. This exaggeration can be significantly
167 % reduced by using Semtner's \cite{sem76} three-layer thermodynamic
168 % model that permits heat storage in ice. Recently, the three-layer
169 % thermodynamic model has been reformulated by Winton \cite{win00}. The
170 % reformulation improves model physics by representing the brine content
171 % of the upper ice with a variable heat capacity. It also improves
172 % model numerics and consumes less computer time and memory. The Winton
173 % sea-ice thermodynamics have been ported to the MIT GCM; they currently
174 % reside under pkg/thsice. The package pkg/thsice is fully
175 % compatible with pkg/seaice and with pkg/exf. When turned on togeter
176 % with pkg/seaice, the zero-layer thermodynamics are replaced by the by
177 % Winton thermodynamics
178
179 The MITgcm sea ice model (MITgcm/sim) is based on a variant of the
180 viscous-plastic (VP) dynamic-thermodynamic sea ice model \citep{zhang97}
181 first introduced by \citet{hib79, hib80}. In order to adapt this model
182 to the requirements of coupled ice-ocean state estimation, many
183 important aspects of the original code have been modified and
184 improved \citep{losch10:_mitsim}:
185 \begin{itemize}
186 \item the code has been rewritten for an Arakawa C-grid, both B- and
187 C-grid variants are available; the C-grid code allows for no-slip
188 and free-slip lateral boundary conditions;
189 \item three different solution methods for solving the nonlinear
190 momentum equations have been adopted: LSOR \citep{zhang97}, EVP
191 \citep{hun97}, JFNK \citep{lemieux10,losch14:_jfnk};
192 \item ice-ocean stress can be formulated as in \citet{hibler87} or as in
193 \citet{cam08};
194 \item ice variables are advected by sophisticated, conservative
195 advection schemes with flux limiting;
196 \item growth and melt parameterizations have been refined and extended
197 in order to allow for more stable automatic differentiation of the code.
198 \end{itemize}
199 The sea ice model is tightly coupled to the ocean compontent of the
200 MITgcm. Heat, fresh water fluxes and surface stresses are computed
201 from the atmospheric state and -- by default -- modified by the ice
202 model at every time step.
203
204 The ice dynamics models that are most widely used for large-scale
205 climate studies are the viscous-plastic (VP) model \citep{hib79}, the
206 cavitating fluid (CF) model \citep{fla92}, and the
207 elastic-viscous-plastic (EVP) model \citep{hun97}. Compared to the VP
208 model, the CF model does not allow ice shear in calculating ice
209 motion, stress, and deformation. EVP models approximate VP by adding
210 an elastic term to the equations for easier adaptation to parallel
211 computers. Because of its higher accuracy in plastic solution and
212 relatively simpler formulation, compared to the EVP model, we decided
213 to use the VP model as the default dynamic component of our ice
214 model. To do this we extended the line successive over relaxation
215 (LSOR) method of \citet{zhang97} for use in a parallel
216 configuration. An EVP model and a free-drift implemtation can be
217 selected with runtime flags.
218
219 \paragraph{Compatibility with ice-thermodynamics package \code{thsice}\label{sec:pkg:seaice:thsice}}~\\
220 %
221 Note, that by default the \code{seaice}-package includes the orginial
222 so-called zero-layer thermodynamics following \citet{hib80} with a
223 snow cover as in \citet{zha98a}. The zero-layer thermodynamic model
224 assumes that ice does not store heat and, therefore, tends to
225 exaggerate the seasonal variability in ice thickness. This
226 exaggeration can be significantly reduced by using
227 \citeauthor{sem76}'s~[\citeyear{sem76}] three-layer thermodynamic
228 model that permits heat storage in ice. Recently, the three-layer thermodynamic model has been reformulated by
229 \citet{win00}. The reformulation improves model physics by
230 representing the brine content of the upper ice with a variable heat
231 capacity. It also improves model numerics and consumes less computer
232 time and memory.
233
234 The Winton sea-ice thermodynamics have been ported to the MIT GCM;
235 they currently reside under \code{pkg/thsice}. The package
236 \code{thsice} is described in section~\ref{sec:pkg:thsice}; it is
237 fully compatible with the packages \code{seaice} and \code{exf}. When
238 turned on together with \code{seaice}, the zero-layer thermodynamics
239 are replaced by the Winton thermodynamics. In order to use the
240 \code{seaice}-package with the thermodynamics of \code{thsice},
241 compile both packages and turn both package on in \code{data.pkg}; see
242 an example in \code{global\_ocean.cs32x15/input.icedyn}. Note, that
243 once \code{thsice} is turned on, the variables and diagnostics
244 associated to the default thermodynamics are meaningless, and the
245 diagnostics of \code{thsice} have to be used instead.
246
247 \paragraph{Surface forcing\label{sec:pkg:seaice:surfaceforcing}}~\\
248 %
249 The sea ice model requires the following input fields: 10-m winds, 2-m
250 air temperature and specific humidity, downward longwave and shortwave
251 radiations, precipitation, evaporation, and river and glacier runoff.
252 The sea ice model also requires surface temperature from the ocean
253 model and the top level horizontal velocity. Output fields are
254 surface wind stress, evaporation minus precipitation minus runoff, net
255 surface heat flux, and net shortwave flux. The sea-ice model is
256 global: in ice-free regions bulk formulae are used to estimate oceanic
257 forcing from the atmospheric fields.
258
259 \paragraph{Dynamics\label{sec:pkg:seaice:dynamics}}~\\
260 %
261 \newcommand{\vek}[1]{\ensuremath{\vec{\mathbf{#1}}}}
262 \newcommand{\vtau}{\vek{\mathbf{\tau}}}
263 The momentum equation of the sea-ice model is
264 \begin{equation}
265 \label{eq:momseaice}
266 m \frac{D\vek{u}}{Dt} = -mf\vek{k}\times\vek{u} + \vtau_{air} +
267 \vtau_{ocean} - m \nabla{\phi(0)} + \vek{F},
268 \end{equation}
269 where $m=m_{i}+m_{s}$ is the ice and snow mass per unit area;
270 $\vek{u}=u\vek{i}+v\vek{j}$ is the ice velocity vector;
271 $\vek{i}$, $\vek{j}$, and $\vek{k}$ are unit vectors in the $x$, $y$, and $z$
272 directions, respectively;
273 $f$ is the Coriolis parameter;
274 $\vtau_{air}$ and $\vtau_{ocean}$ are the wind-ice and ocean-ice stresses,
275 respectively;
276 $g$ is the gravity accelation;
277 $\nabla\phi(0)$ is the gradient (or tilt) of the sea surface height;
278 $\phi(0) = g\eta + p_{a}/\rho_{0} + mg/\rho_{0}$ is the sea surface
279 height potential in response to ocean dynamics ($g\eta$), to
280 atmospheric pressure loading ($p_{a}/\rho_{0}$, where $\rho_{0}$ is a
281 reference density) and a term due to snow and ice loading \citep{cam08};
282 and $\vek{F}=\nabla\cdot\sigma$ is the divergence of the internal ice
283 stress tensor $\sigma_{ij}$. %
284 Advection of sea-ice momentum is neglected. The wind and ice-ocean stress
285 terms are given by
286 \begin{align*}
287 \vtau_{air} = & \rho_{air} C_{air} |\vek{U}_{air} -\vek{u}|
288 R_{air} (\vek{U}_{air} -\vek{u}), \\
289 \vtau_{ocean} = & \rho_{ocean}C_{ocean} |\vek{U}_{ocean}-\vek{u}|
290 R_{ocean}(\vek{U}_{ocean}-\vek{u}),
291 \end{align*}
292 where $\vek{U}_{air/ocean}$ are the surface winds of the atmosphere
293 and surface currents of the ocean, respectively; $C_{air/ocean}$ are
294 air and ocean drag coefficients; $\rho_{air/ocean}$ are reference
295 densities; and $R_{air/ocean}$ are rotation matrices that act on the
296 wind/current vectors.
297
298 \paragraph{Viscous-Plastic (VP) Rheology\label{sec:pkg:seaice:VPrheology}}~\\
299 %
300 For an isotropic system the stress tensor $\sigma_{ij}$ ($i,j=1,2$) can
301 be related to the ice strain rate and strength by a nonlinear
302 viscous-plastic (VP) constitutive law \citep{hib79, zhang97}:
303 \begin{equation}
304 \label{eq:vpequation}
305 \sigma_{ij}=2\eta(\dot{\epsilon}_{ij},P)\dot{\epsilon}_{ij}
306 + \left[\zeta(\dot{\epsilon}_{ij},P) -
307 \eta(\dot{\epsilon}_{ij},P)\right]\dot{\epsilon}_{kk}\delta_{ij}
308 - \frac{P}{2}\delta_{ij}.
309 \end{equation}
310 The ice strain rate is given by
311 \begin{equation*}
312 \dot{\epsilon}_{ij} = \frac{1}{2}\left(
313 \frac{\partial{u_{i}}}{\partial{x_{j}}} +
314 \frac{\partial{u_{j}}}{\partial{x_{i}}}\right).
315 \end{equation*}
316 The maximum ice pressure $P_{\max}$, a measure of ice strength, depends on
317 both thickness $h$ and compactness (concentration) $c$:
318 \begin{equation}
319 P_{\max} = P^{*}c\,h\,\exp\{-C^{*}\cdot(1-c)\},
320 \label{eq:icestrength}
321 \end{equation}
322 with the constants $P^{*}$ (run-time parameter \code{SEAICE\_strength}) and
323 $C^{*}=20$. The nonlinear bulk and shear
324 viscosities $\eta$ and $\zeta$ are functions of ice strain rate
325 invariants and ice strength such that the principal components of the
326 stress lie on an elliptical yield curve with the ratio of major to
327 minor axis $e$ equal to $2$; they are given by:
328 \begin{align*}
329 \zeta =& \min\left(\frac{P_{\max}}{2\max(\Delta,\Delta_{\min})},
330 \zeta_{\max}\right) \\
331 \eta =& \frac{\zeta}{e^2} \\
332 \intertext{with the abbreviation}
333 \Delta = & \left[
334 \left(\dot{\epsilon}_{11}^2+\dot{\epsilon}_{22}^2\right)
335 (1+e^{-2}) + 4e^{-2}\dot{\epsilon}_{12}^2 +
336 2\dot{\epsilon}_{11}\dot{\epsilon}_{22} (1-e^{-2})
337 \right]^{\frac{1}{2}}.
338 \end{align*}
339 The bulk viscosities are bounded above by imposing both a minimum
340 $\Delta_{\min}$ (for numerical reasons, run-time parameter
341 \code{SEAICE\_EPS} with a default value of
342 $10^{-10}\text{\,s}^{-1}$) and a maximum $\zeta_{\max} =
343 P_{\max}/\Delta^*$, where
344 $\Delta^*=(5\times10^{12}/2\times10^4)\text{\,s}^{-1}$. (There is also
345 the option of bounding $\zeta$ from below by setting run-time
346 parameter \code{SEAICE\_zetaMin} $>0$, but this is generally not
347 recommended). For stress tensor computation the replacement pressure $P
348 = 2\,\Delta\zeta$ \citep{hibler95} is used so that the stress state
349 always lies on the elliptic yield curve by definition.
350
351 Defining the CPP-flag \code{SEAICE\_ZETA\_SMOOTHREG} in
352 \code{SEAICE\_OPTIONS.h} before compiling replaces the method for
353 bounding $\zeta$ by a smooth (differentiable) expression:
354 \begin{equation}
355 \label{eq:zetaregsmooth}
356 \begin{split}
357 \zeta &= \zeta_{\max}\tanh\left(\frac{P}{2\,\min(\Delta,\Delta_{\min})
358 \,\zeta_{\max}}\right)\\
359 &= \frac{P}{2\Delta^*}
360 \tanh\left(\frac{\Delta^*}{\min(\Delta,\Delta_{\min})}\right)
361 \end{split}
362 \end{equation}
363 where $\Delta_{\min}=10^{-20}\text{\,s}^{-1}$ is chosen to avoid divisions
364 by zero.
365
366 \paragraph{LSR and JFNK solver \label{sec:pkg:seaice:LSRJFNK}}~\\
367 %
368 % By default, the VP-model is integrated by a Pickwith the
369 % semi-implicit line successive over relaxation (LSOR)-solver of
370 % \citet{zhang97}, which allows for long time steps that, in our case,
371 % are limited by the explicit treatment of the Coriolis term. The
372 % explicit treatment of the Coriolis term does not represent a severe
373 % limitation because it restricts the time step to approximately the
374 % same length as in the ocean model where the Coriolis term is also
375 % treated explicitly.
376
377 \newcommand{\mat}[1]{\ensuremath{\mathbf{#1}}}
378 %
379 In the matrix notation, the discretized momentum equations can be
380 written as
381 \begin{equation}
382 \label{eq:matrixmom}
383 \mat{A}(\vek{x})\,\vek{x} = \vek{b}(\vek{x}).
384 \end{equation}
385 The solution vector $\vek{x}$ consists of the two velocity components
386 $u$ and $v$ that contain the velocity variables at all grid points and
387 at one time level. The standard (and default) method for solving
388 Eq.\,(\ref{eq:matrixmom}) in the sea ice component of the
389 \mbox{MITgcm}, as in many sea ice models, is an iterative Picard
390 solver: in the $k$-th iteration a linearized form
391 $\mat{A}(\vek{x}^{k-1})\,\vek{x}^{k} = \vek{b}(\vek{x}^{k-1})$ is
392 solved (in the case of the MITgcm it is a Line Successive (over)
393 Relaxation (LSR) algorithm \citep{zhang97}). Picard solvers converge
394 slowly, but generally the iteration is terminated after only a few
395 non-linear steps \citep{zhang97, lemieux09} and the calculation
396 continues with the next time level. This method is the default method
397 in the MITgcm. The number of non-linear iteration steps or pseudo-time
398 steps can be controlled by the runtime parameter
399 \code{NPSEUDOTIMESTEPS} (default is 2).
400
401 In order to overcome the poor convergence of the Picard-solver,
402 \citet{lemieux10} introduced a Jacobian-free Newton-Krylov solver for
403 the sea ice momentum equations. This solver is also implemented in the
404 MITgcm \citep{losch14:_jfnk}. The Newton method transforms minimizing
405 the residual $\vek{F}(\vek{x}) = \mat{A}(\vek{x})\,\vek{x} -
406 \vek{b}(\vek{x})$ to finding the roots of a multivariate Taylor
407 expansion of the residual \vek{F} around the previous ($k-1$) estimate
408 $\vek{x}^{k-1}$:
409 \begin{equation}
410 \label{eq:jfnktaylor}
411 \vek{F}(\vek{x}^{k-1}+\delta\vek{x}^{k}) =
412 \vek{F}(\vek{x}^{k-1}) + \vek{F}'(\vek{x}^{k-1})\,\delta\vek{x}^{k}
413 \end{equation}
414 with the Jacobian $\mat{J}\equiv\vek{F}'$. The root
415 $\vek{F}(\vek{x}^{k-1}+\delta\vek{x}^{k})=0$ is found by solving
416 \begin{equation}
417 \label{eq:jfnklin}
418 \mat{J}(\vek{x}^{k-1})\,\delta\vek{x}^{k} = -\vek{F}(\vek{x}^{k-1})
419 \end{equation}
420 for $\delta\vek{x}^{k}$. The next ($k$-th) estimate is given by
421 $\vek{x}^{k}=\vek{x}^{k-1}+a\,\delta\vek{x}^{k}$. In order to avoid
422 overshoots the factor $a$ is iteratively reduced in a line search
423 ($a=1, \frac{1}{2}, \frac{1}{4}, \frac{1}{8}, \ldots$) until
424 $\|\vek{F}(\vek{x}^k)\| < \|\vek{F}(\vek{x}^{k-1})\|$, where
425 $\|\cdot\|=\int\cdot\,dx^2$ is the $L_2$-norm. In practice, the line
426 search is stopped at $a=\frac{1}{8}$. The line search starts after
427 $\code{SEAICE\_JFNK\_lsIter}$ non-linear Newton iterations (off by
428 default).
429
430
431 Forming the Jacobian $\mat{J}$ explicitly is often avoided as ``too
432 error prone and time consuming'' \citep{knoll04:_jfnk}. Instead,
433 Krylov methods only require the action of \mat{J} on an arbitrary
434 vector \vek{w} and hence allow a matrix free algorithm for solving
435 Eq.\,(\ref{eq:jfnklin}) \citep{knoll04:_jfnk}. The action of \mat{J}
436 can be approximated by a first-order Taylor series expansion:
437 \begin{equation}
438 \label{eq:jfnkjacvecfd}
439 \mat{J}(\vek{x}^{k-1})\,\vek{w} \approx
440 \frac{\vek{F}(\vek{x}^{k-1}+\epsilon\vek{w}) - \vek{F}(\vek{x}^{k-1})}
441 {\epsilon}
442 \end{equation}
443 or computed exactly with the help of automatic differentiation (AD)
444 tools. \code{SEAICE\_JFNKepsilon} sets the step size
445 $\epsilon$.
446
447 We use the Flexible Generalized Minimum RESidual method
448 \citep[FGMRES,][]{saad93:_fgmres} with right-hand side preconditioning
449 to solve Eq.\,(\ref{eq:jfnklin}) iteratively starting from a first
450 guess of $\delta\vek{x}^{k}_{0} = 0$. For the preconditioning matrix
451 \mat{P} we choose a simplified form of the system matrix
452 $\mat{A}(\vek{x}^{k-1})$ \citep{lemieux10} where $\vek{x}^{k-1}$ is
453 the estimate of the previous Newton step $k-1$. The transformed
454 equation\,(\ref{eq:jfnklin}) becomes
455 \begin{equation}
456 \label{eq:jfnklinpc}
457 \mat{J}(\vek{x}^{k-1})\,\mat{P}^{-1}\delta\vek{z} =
458 -\vek{F}(\vek{x}^{k-1}),
459 \quad\text{with}\quad \delta\vek{z}=\mat{P}\delta\vek{x}^{k}.
460 \end{equation}
461 The Krylov method iteratively improves the approximate solution
462 to~(\ref{eq:jfnklinpc}) in subspace ($\vek{r}_0$,
463 $\mat{J}\mat{P}^{-1}\vek{r}_0$, $(\mat{J}\mat{P}^{-1})^2\vek{r}_0$,
464 \ldots, $(\mat{J}\mat{P}^{-1})^m\vek{r}_0$) with increasing $m$;
465 $\vek{r}_0 = -\vek{F}(\vek{x}^{k-1})
466 -\mat{J}(\vek{x}^{k-1})\,\delta\vek{x}^{k}_{0}$
467 %-\vek{F}(\vek{x}^{k-1})
468 %-\mat{J}(\vek{x}^{k-1})\,\mat{P}^{-1}\delta\vek{z}$
469 is the initial residual of
470 (\ref{eq:jfnklin}); $\vek{r}_0=-\vek{F}(\vek{x}^{k-1})$ with the first
471 guess $\delta\vek{x}^{k}_{0}=0$. We allow a Krylov-subspace of
472 dimension~$m=50$ and we do not use restarts. The preconditioning operation
473 involves applying $\mat{P}^{-1}$ to the basis vectors $\vek{v}_0,
474 \vek{v}_1, \vek{v}_2, \ldots, \vek{v}_m$ of the Krylov subspace. This
475 operation is approximated by solving the linear system
476 $\mat{P}\,\vek{w}=\vek{v}_i$. Because $\mat{P} \approx
477 \mat{A}(\vek{x}^{k-1})$, we can use the LSR-algorithm \citep{zhang97}
478 already implemented in the Picard solver. Each preconditioning
479 operation uses a fixed number of 10~LSR-iterations avoiding any
480 termination criterion. More details and results can be found in
481 \citet{lemieux10, losch14:_jfnk}.
482
483 To use the JFNK-solver set \code{SEAICEuseJFNK = .TRUE.} in the
484 namelist file \code{data.seaice}; \code{SEAICE\_ALLOW\_JFNK} needs to
485 be defined in \code{SEAICE\_OPTIONS.h} and we recommend using a smooth
486 regularization of $\zeta$ by defining \code{SEAICE\_ZETA\_SMOOTHREG}
487 (see above) for better convergence. The non-linear Newton iteration
488 is terminated when the $L_2$-norm of the residual is reduced by
489 $\gamma_{\mathrm{nl}}$ (runtime parameter \code{JFNKgamma\_nonlin =
490 1.e-4} will already lead to expensive simulations) with respect to
491 the initial norm: $\|\vek{F}(\vek{x}^k)\| <
492 \gamma_{\mathrm{nl}}\|\vek{F}(\vek{x}^0)\|$. Within a non-linear
493 iteration, the linear FGMRES solver is terminated when the residual is
494 smaller than $\gamma_k\|\vek{F}(\vek{x}^{k-1})\|$ where $\gamma_k$ is
495 determined by
496 \begin{equation}
497 \label{eq:jfnkgammalin}
498 \gamma_k =
499 \begin{cases}
500 \gamma_0 &\text{for $\|\vek{F}(\vek{x}^{k-1})\| \geq r$}, \\
501 \max\left(\gamma_{\min},
502 \frac{\|\vek{F}(\vek{x}^{k-1})\|}{\|\vek{F}(\vek{x}^{k-2})\|}\right)
503 % \phi\left(\frac{\|\vek{F}(\vek{x}^{k-1})\|}{\|\vek{F}(\vek{x}^{k-2})\|}\right)^\alpha\right)
504 &\text{for $\|\vek{F}(\vek{x}^{k-1})\| < r$,}
505 \end{cases}
506 \end{equation}
507 so that the linear tolerance parameter $\gamma_k$ decreases with the
508 non-linear Newton step as the non-linear solution is approached. This
509 inexact Newton method is generally more robust and computationally
510 more efficient than exact methods \citep[e.g.,][]{knoll04:_jfnk}.
511 % \footnote{The general idea behind
512 % inexact Newton methods is this: The Krylov solver is ``only''
513 % used to find an intermediate solution of the linear
514 % equation\,(\ref{eq:jfnklin}) that is used to improve the approximation of
515 % the actual equation\,(\ref{eq:matrixmom}). With the choice of a
516 % relatively weak lower limit for FGMRES convergence
517 % $\gamma_{\min}$ we make sure that the time spent in the FGMRES
518 % solver is reduced at the cost of more Newton iterations. Newton
519 % iterations are cheaper than Krylov iterations so that this choice
520 % improves the overall efficiency.}
521 Typical parameter choices are
522 $\gamma_0=\code{JFNKgamma\_lin\_max}=0.99$,
523 $\gamma_{\min}=\code{JFNKgamma\_lin\_min}=0.1$, and $r =
524 \code{JFNKres\_tFac}\times\|\vek{F}(\vek{x}^{0})\|$ with
525 $\code{JFNKres\_tFac} = \frac{1}{2}$. We recommend a maximum number of
526 non-linear iterations $\code{SEAICEnewtonIterMax} = 100$ and a maximum
527 number of Krylov iterations $\code{SEAICEkrylovIterMax} = 50$, because
528 the Krylov subspace has a fixed dimension of 50.
529
530 \paragraph{Elastic-Viscous-Plastic (EVP) Dynamics\label{sec:pkg:seaice:EVPdynamics}}~\\
531 %
532 \citet{hun97}'s introduced an elastic contribution to the strain
533 rate in order to regularize Eq.~\ref{eq:vpequation} in such a way that
534 the resulting elastic-viscous-plastic (EVP) and VP models are
535 identical at steady state,
536 \begin{equation}
537 \label{eq:evpequation}
538 \frac{1}{E}\frac{\partial\sigma_{ij}}{\partial{t}} +
539 \frac{1}{2\eta}\sigma_{ij}
540 + \frac{\eta - \zeta}{4\zeta\eta}\sigma_{kk}\delta_{ij}
541 + \frac{P}{4\zeta}\delta_{ij}
542 = \dot{\epsilon}_{ij}.
543 \end{equation}
544 %In the EVP model, equations for the components of the stress tensor
545 %$\sigma_{ij}$ are solved explicitly. Both model formulations will be
546 %used and compared the present sea-ice model study.
547 The EVP-model uses an explicit time stepping scheme with a short
548 timestep. According to the recommendation of \citet{hun97}, the
549 EVP-model should be stepped forward in time 120 times
550 ($\code{SEAICE\_deltaTevp} = \code{SEAICIE\_deltaTdyn}/120$) within
551 the physical ocean model time step (although this parameter is under
552 debate), to allow for elastic waves to disappear. Because the scheme
553 does not require a matrix inversion it is fast in spite of the small
554 internal timestep and simple to implement on parallel computers
555 \citep{hun97}. For completeness, we repeat the equations for the
556 components of the stress tensor $\sigma_{1} =
557 \sigma_{11}+\sigma_{22}$, $\sigma_{2}= \sigma_{11}-\sigma_{22}$, and
558 $\sigma_{12}$. Introducing the divergence $D_D =
559 \dot{\epsilon}_{11}+\dot{\epsilon}_{22}$, and the horizontal tension
560 and shearing strain rates, $D_T =
561 \dot{\epsilon}_{11}-\dot{\epsilon}_{22}$ and $D_S =
562 2\dot{\epsilon}_{12}$, respectively, and using the above
563 abbreviations, the equations~\ref{eq:evpequation} can be written as:
564 \begin{align}
565 \label{eq:evpstresstensor1}
566 \frac{\partial\sigma_{1}}{\partial{t}} + \frac{\sigma_{1}}{2T} +
567 \frac{P}{2T} &= \frac{P}{2T\Delta} D_D \\
568 \label{eq:evpstresstensor2}
569 \frac{\partial\sigma_{2}}{\partial{t}} + \frac{\sigma_{2} e^{2}}{2T}
570 &= \frac{P}{2T\Delta} D_T \\
571 \label{eq:evpstresstensor12}
572 \frac{\partial\sigma_{12}}{\partial{t}} + \frac{\sigma_{12} e^{2}}{2T}
573 &= \frac{P}{4T\Delta} D_S
574 \end{align}
575 Here, the elastic parameter $E$ is redefined in terms of a damping
576 timescale $T$ for elastic waves \[E=\frac{\zeta}{T}.\]
577 $T=E_{0}\Delta{t}$ with the tunable parameter $E_0<1$ and the external
578 (long) timestep $\Delta{t}$. $E_{0} = \frac{1}{3}$ is the default
579 value in the code and close to what \citet{hun97} and
580 \citet{hun01} recommend.
581
582 To use the EVP solver, make sure that both \code{SEAICE\_CGRID} and
583 \code{SEAICE\_ALLOW\_EVP} are defined in \code{SEAICE\_OPTIONS.h}
584 (default). The solver is turned on by setting the sub-cycling time
585 step \code{SEAICE\_deltaTevp} to a value larger than zero. The
586 choice of this time step is under debate. \citet{hun97} recommend
587 order(120) time steps for the EVP solver within one model time step
588 $\Delta{t}$ (\code{deltaTmom}). One can also choose order(120) time
589 steps within the forcing time scale, but then we recommend adjusting
590 the damping time scale $T$ accordingly, by setting either
591 \code{SEAICE\_elasticParm} ($E_{0}$), so that
592 $E_{0}\Delta{t}=\mbox{forcing time scale}$, or directly
593 \code{SEAICE\_evpTauRelax} ($T$) to the forcing time scale.
594
595 \paragraph{More stable variant of Elastic-Viscous-Plastic Dynamics: EVP*\label{sec:pkg:seaice:EVPstar}}~\\
596 %
597 The genuine EVP schemes appears to give noisy solutions \citep{hun01,
598 lemieux12, bouillon13}. This has lead to a modified EVP or EVP*
599 \citep{lemieux12, bouillon13, kimmritz15}; here, refer to these
600 variants by EVP*. The main idea is to modify the ``natural''
601 time-discretization of the momentum equations:
602 \begin{equation}
603 \label{eq:evpstar}
604 m\frac{D\vec{u}}{Dt} \approx m\frac{u^{p+1}-u^{n}}{\Delta{t}}
605 + \beta^{*}\frac{u^{p+1}-u^{p}}{\Delta{t}_{\mathrm{EVP}}}
606 \end{equation}
607 where $n$ is the previous time step index, and $p$ is the previous
608 sub-cycling index. The term allows the definition of a residual
609 $|u^{p+1}-u^{p}|$ that, as $u^{p+1} \rightarrow u^{n+1}$, converges to
610 $0$ and a re-interpretation of EVP as a pure iterative solver where
611 the sub-cycling has lost all time-relation \citep{bouillon13,
612 kimmritz15}. Using the terminology of \citet{kimmritz15}, the
613 evolution equations of stress $\sigma_{ij}$ and momentum $\vec{u}$ can
614 be written as:
615 \begin{align}
616 \label{eq:evpstarsigma}
617 \sigma_{ij}^{p+1}&=\sigma_{ij}^p+\frac{1}{\alpha}
618 \Big(\sigma_{ij}(\vec{u}^p)-\sigma_{ij}^p\Big),
619 \phantom{\int}\\
620 \label{eq:evpstarmom}
621 \vec{u}^{p+1}&=\vec{u}^p+\frac{1}{\beta}
622 \Big(\frac{\Delta t}{m}\nabla \cdot{\bf \sigma}^{p+1}+
623 \frac{\Delta t}{m}\vec{R}^{p+1/2}+\vec{u}_n-\vec{u}^p\Big).
624 \end{align}
625 $\vec{R}$ contains all terms in the momentum equations except for the
626 rheology terms and the time derivative, $\alpha$ and $\beta$ are free
627 parameters (\code{SEAICE\_evpAlpha}, \code{SEAICE\_evpBeta}) that
628 replace the time stepping parameters \code{SEAICE\_deltaTevp}
629 ($\Delta{T}_{\mathrm{EVP}}$), \code{SEAICE\_elasticParm} ($E_{0}$), or
630 \code{SEAICE\_evpTauRelax} ($T$). $\alpha$ and $\beta$ determine the
631 speed of convergence and the stability. Usually, it makes sense to use
632 $\alpha = \beta$, and \code{SEAICEnEVPstarSteps} $>> \alpha = \beta$
633 \citep{kimmritz15}.
634
635 In order to use EVP* in the MITgcm, set \code{SEAICEuseEVPstar =
636 .TRUE.,} in \code{data.seaice}. \code{SEAICEuseEVPrev =.TRUE.,} uses
637 the actual form of equations (\ref{eq:evpstarsigma}) and
638 (\ref{eq:evpstarmom}) with fewer implicit terms and the factor of
639 $e^{2}$ dropped in the stress equations (\ref{eq:evpstresstensor2})
640 and (\ref{eq:evpstresstensor12}). This turns out to improve
641 convergence \citep{bouillon13}.
642
643 Note, that for historical reasons, \code{SEAICE\_deltaTevp} needs to
644 be set to some value in order to use also EVP*. Also note, that
645 probably because of the C-grid staggering of velocities and stresses,
646 EVP* does not converge as successfully as in \citet{kimmritz15}.
647
648
649 \paragraph{Truncated ellipse method (TEM) for yield curve \label{sec:pkg:seaice:TEM}}~\\
650 %
651 In the so-called truncated ellipse method the shear viscosity $\eta$
652 is capped to suppress any tensile stress \citep{hibler97, geiger98}:
653 \begin{equation}
654 \label{eq:etatem}
655 \eta = \min\left(\frac{\zeta}{e^2},
656 \frac{\frac{P}{2}-\zeta(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})}
657 {\sqrt{(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})^2
658 +4\dot{\epsilon}_{12}^2}}\right).
659 \end{equation}
660 To enable this method, set \code{\#define SEAICE\_ALLOW\_TEM} in
661 \code{SEAICE\_OPTIONS.h} and turn it on with
662 \code{SEAICEuseTEM} in \code{data.seaice}.
663
664 \paragraph{Ice-Ocean stress \label{sec:pkg:seaice:iceoceanstress}}~\\
665 %
666 Moving sea ice exerts a stress on the ocean which is the opposite of
667 the stress $\vtau_{ocean}$ in Eq.~\ref{eq:momseaice}. This stess is
668 applied directly to the surface layer of the ocean model. An
669 alternative ocean stress formulation is given by \citet{hibler87}.
670 Rather than applying $\vtau_{ocean}$ directly, the stress is derived
671 from integrating over the ice thickness to the bottom of the oceanic
672 surface layer. In the resulting equation for the \emph{combined}
673 ocean-ice momentum, the interfacial stress cancels and the total
674 stress appears as the sum of windstress and divergence of internal ice
675 stresses: $\delta(z) (\vtau_{air} + \vek{F})/\rho_0$, \citep[see also
676 Eq.\,2 of][]{hibler87}. The disadvantage of this formulation is that
677 now the velocity in the surface layer of the ocean that is used to
678 advect tracers, is really an average over the ocean surface
679 velocity and the ice velocity leading to an inconsistency as the ice
680 temperature and salinity are different from the oceanic variables.
681 To turn on the stress formulation of \citet{hibler87}, set
682 \code{useHB87StressCoupling=.TRUE.} in \code{data.seaice}.
683
684
685 % Our discretization differs from \citet{zhang97, zhang03} in the
686 % underlying grid, namely the Arakawa C-grid, but is otherwise
687 % straightforward. The EVP model, in particular, is discretized
688 % naturally on the C-grid with $\sigma_{1}$ and $\sigma_{2}$ on the
689 % center points and $\sigma_{12}$ on the corner (or vorticity) points of
690 % the grid. With this choice all derivatives are discretized as central
691 % differences and averaging is only involved in computing $\Delta$ and
692 % $P$ at vorticity points.
693
694 \paragraph{Finite-volume discretization of the stress tensor
695 divergence\label{sec:pkg:seaice:discretization}}~\\
696 %
697 On an Arakawa C~grid, ice thickness and concentration and thus ice
698 strength $P$ and bulk and shear viscosities $\zeta$ and $\eta$ are
699 naturally defined a C-points in the center of the grid
700 cell. Discretization requires only averaging of $\zeta$ and $\eta$ to
701 vorticity or Z-points (or $\zeta$-points, but here we use Z in order
702 avoid confusion with the bulk viscosity) at the bottom left corner of
703 the cell to give $\overline{\zeta}^{Z}$ and $\overline{\eta}^{Z}$. In
704 the following, the superscripts indicate location at Z or C points,
705 distance across the cell (F), along the cell edge (G), between
706 $u$-points (U), $v$-points (V), and C-points (C). The control volumes
707 of the $u$- and $v$-equations in the grid cell at indices $(i,j)$ are
708 $A_{i,j}^{w}$ and $A_{i,j}^{s}$, respectively. With these definitions
709 (which follow the model code documentation except that $\zeta$-points
710 have been renamed to Z-points), the strain rates are discretized as:
711 \begin{align}
712 \dot{\epsilon}_{11} &= \partial_{1}{u}_{1} + k_{2}u_{2} \\ \notag
713 => (\epsilon_{11})_{i,j}^C &= \frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}}
714 + k_{2,i,j}^{C}\frac{v_{i,j+1}+v_{i,j}}{2} \\
715 \dot{\epsilon}_{22} &= \partial_{2}{u}_{2} + k_{1}u_{1} \\\notag
716 => (\epsilon_{22})_{i,j}^C &= \frac{v_{i,j+1}-v_{i,j}}{\Delta{y}_{i,j}^{F}}
717 + k_{1,i,j}^{C}\frac{u_{i+1,j}+u_{i,j}}{2} \\
718 \dot{\epsilon}_{12} = \dot{\epsilon}_{21} &= \frac{1}{2}\biggl(
719 \partial_{1}{u}_{2} + \partial_{2}{u}_{1} - k_{1}u_{2} - k_{2}u_{1}
720 \biggr) \\ \notag
721 => (\epsilon_{12})_{i,j}^Z &= \frac{1}{2}
722 \biggl( \frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^V}
723 + \frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^U} \\\notag
724 &\phantom{=\frac{1}{2}\biggl(}
725 - k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2}
726 - k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2}
727 \biggr),
728 \end{align}
729 so that the diagonal terms of the strain rate tensor are naturally
730 defined at C-points and the symmetric off-diagonal term at
731 Z-points. No-slip boundary conditions ($u_{i,j-1}+u_{i,j}=0$ and
732 $v_{i-1,j}+v_{i,j}=0$ across boundaries) are implemented via
733 ``ghost-points''; for free slip boundary conditions
734 $(\epsilon_{12})^Z=0$ on boundaries.
735
736 For a spherical polar grid, the coefficients of the metric terms are
737 $k_{1}=0$ and $k_{2}=-\tan\phi/a$, with the spherical radius $a$ and
738 the latitude $\phi$; $\Delta{x}_1 = \Delta{x} = a\cos\phi
739 \Delta\lambda$, and $\Delta{x}_2 = \Delta{y}=a\Delta\phi$. For a
740 general orthogonal curvilinear grid, $k_{1}$ and
741 $k_{2}$ can be approximated by finite differences of the cell widths:
742 \begin{align}
743 k_{1,i,j}^{C} &= \frac{1}{\Delta{y}_{i,j}^{F}}
744 \frac{\Delta{y}_{i+1,j}^{G}-\Delta{y}_{i,j}^{G}}{\Delta{x}_{i,j}^{F}} \\
745 k_{2,i,j}^{C} &= \frac{1}{\Delta{x}_{i,j}^{F}}
746 \frac{\Delta{x}_{i,j+1}^{G}-\Delta{x}_{i,j}^{G}}{\Delta{y}_{i,j}^{F}} \\
747 k_{1,i,j}^{Z} &= \frac{1}{\Delta{y}_{i,j}^{U}}
748 \frac{\Delta{y}_{i,j}^{C}-\Delta{y}_{i-1,j}^{C}}{\Delta{x}_{i,j}^{V}} \\
749 k_{2,i,j}^{Z} &= \frac{1}{\Delta{x}_{i,j}^{V}}
750 \frac{\Delta{x}_{i,j}^{C}-\Delta{x}_{i,j-1}^{C}}{\Delta{y}_{i,j}^{U}}
751 \end{align}
752
753 The stress tensor is given by the constitutive viscous-plastic
754 relation $\sigma_{\alpha\beta} = 2\eta\dot{\epsilon}_{\alpha\beta} +
755 [(\zeta-\eta)\dot{\epsilon}_{\gamma\gamma} - P/2
756 ]\delta_{\alpha\beta}$ \citep{hib79}. The stress tensor divergence
757 $(\nabla\sigma)_{\alpha} = \partial_\beta\sigma_{\beta\alpha}$, is
758 discretized in finite volumes \citep[see
759 also][]{losch10:_mitsim}. This conveniently avoids dealing with
760 further metric terms, as these are ``hidden'' in the differential cell
761 widths. For the $u$-equation ($\alpha=1$) we have:
762 \begin{align}
763 (\nabla\sigma)_{1}: \phantom{=}&
764 \frac{1}{A_{i,j}^w}
765 \int_{\mathrm{cell}}(\partial_1\sigma_{11}+\partial_2\sigma_{21})\,dx_1\,dx_2
766 \\\notag
767 =& \frac{1}{A_{i,j}^w} \biggl\{
768 \int_{x_2}^{x_2+\Delta{x}_2}\sigma_{11}dx_2\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}}
769 + \int_{x_1}^{x_1+\Delta{x}_1}\sigma_{21}dx_1\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}}
770 \biggr\} \\ \notag
771 \approx& \frac{1}{A_{i,j}^w} \biggl\{
772 \Delta{x}_2\sigma_{11}\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}}
773 + \Delta{x}_1\sigma_{21}\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}}
774 \biggr\} \\ \notag
775 =& \frac{1}{A_{i,j}^w} \biggl\{
776 (\Delta{x}_2\sigma_{11})_{i,j}^C -
777 (\Delta{x}_2\sigma_{11})_{i-1,j}^C
778 \\\notag
779 \phantom{=}& \phantom{\frac{1}{A_{i,j}^w} \biggl\{}
780 + (\Delta{x}_1\sigma_{21})_{i,j+1}^Z - (\Delta{x}_1\sigma_{21})_{i,j}^Z
781 \biggr\}
782 \end{align}
783 with
784 \begin{align}
785 (\Delta{x}_2\sigma_{11})_{i,j}^C =& \phantom{+}
786 \Delta{y}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j}
787 \frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}} \\ \notag
788 &+ \Delta{y}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j}
789 k_{2,i,j}^C \frac{v_{i,j+1}+v_{i,j}}{2} \\ \notag
790 \phantom{=}& + \Delta{y}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j}
791 \frac{v_{i,j+1}-v_{i,j}}{\Delta{y}_{i,j}^{F}} \\ \notag
792 \phantom{=}& + \Delta{y}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j}
793 k_{1,i,j}^{C}\frac{u_{i+1,j}+u_{i,j}}{2} \\ \notag
794 \phantom{=}& - \Delta{y}_{i,j}^{F} \frac{P}{2} \\
795 (\Delta{x}_1\sigma_{21})_{i,j}^Z =& \phantom{+}
796 \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j}
797 \frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^{U}} \\ \notag
798 & + \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j}
799 \frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^{V}} \\ \notag
800 & - \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j}
801 k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2} \\ \notag
802 & - \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j}
803 k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2}
804 \end{align}
805
806 Similarly, we have for the $v$-equation ($\alpha=2$):
807 \begin{align}
808 (\nabla\sigma)_{2}: \phantom{=}&
809 \frac{1}{A_{i,j}^s}
810 \int_{\mathrm{cell}}(\partial_1\sigma_{12}+\partial_2\sigma_{22})\,dx_1\,dx_2
811 \\\notag
812 =& \frac{1}{A_{i,j}^s} \biggl\{
813 \int_{x_2}^{x_2+\Delta{x}_2}\sigma_{12}dx_2\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}}
814 + \int_{x_1}^{x_1+\Delta{x}_1}\sigma_{22}dx_1\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}}
815 \biggr\} \\ \notag
816 \approx& \frac{1}{A_{i,j}^s} \biggl\{
817 \Delta{x}_2\sigma_{12}\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}}
818 + \Delta{x}_1\sigma_{22}\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}}
819 \biggr\} \\ \notag
820 =& \frac{1}{A_{i,j}^s} \biggl\{
821 (\Delta{x}_2\sigma_{12})_{i+1,j}^Z - (\Delta{x}_2\sigma_{12})_{i,j}^Z
822 \\ \notag
823 \phantom{=}& \phantom{\frac{1}{A_{i,j}^s} \biggl\{}
824 + (\Delta{x}_1\sigma_{22})_{i,j}^C - (\Delta{x}_1\sigma_{22})_{i,j-1}^C
825 \biggr\}
826 \end{align}
827 with
828 \begin{align}
829 (\Delta{x}_1\sigma_{12})_{i,j}^Z =& \phantom{+}
830 \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j}
831 \frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^{U}}
832 \\\notag &
833 + \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j}
834 \frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^{V}} \\\notag
835 &- \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j}
836 k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2}
837 \\\notag &
838 - \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j}
839 k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2} \\ \notag
840 (\Delta{x}_2\sigma_{22})_{i,j}^C =& \phantom{+}
841 \Delta{x}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j}
842 \frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}} \\ \notag
843 &+ \Delta{x}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j}
844 k_{2,i,j}^{C} \frac{v_{i,j+1}+v_{i,j}}{2} \\ \notag
845 & + \Delta{x}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j}
846 \frac{v_{i,j+1}-v_{i,j}}{\Delta{y}_{i,j}^{F}} \\ \notag
847 & + \Delta{x}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j}
848 k_{1,i,j}^{C}\frac{u_{i+1,j}+u_{i,j}}{2} \\ \notag
849 & -\Delta{x}_{i,j}^{F} \frac{P}{2}
850 \end{align}
851
852 Again, no slip boundary conditions are realized via ghost points and
853 $u_{i,j-1}+u_{i,j}=0$ and $v_{i-1,j}+v_{i,j}=0$ across boundaries. For
854 free slip boundary conditions the lateral stress is set to zeros. In
855 analogy to $(\epsilon_{12})^Z=0$ on boundaries, we set
856 $\sigma_{21}^{Z}=0$, or equivalently $\eta_{i,j}^{Z}=0$, on boundaries.
857
858 \paragraph{Thermodynamics\label{sec:pkg:seaice:thermodynamics}}~\\
859 %
860 In its original formulation the sea ice model \citep{menemenlis05}
861 uses simple thermodynamics following the appendix of
862 \citet{sem76}. This formulation does not allow storage of heat,
863 that is, the heat capacity of ice is zero. Upward conductive heat flux
864 is parameterized assuming a linear temperature profile and together
865 with a constant ice conductivity. It is expressed as
866 $(K/h)(T_{w}-T_{0})$, where $K$ is the ice conductivity, $h$ the ice
867 thickness, and $T_{w}-T_{0}$ the difference between water and ice
868 surface temperatures. This type of model is often refered to as a
869 ``zero-layer'' model. The surface heat flux is computed in a similar
870 way to that of \citet{parkinson79} and \citet{manabe79}.
871
872 The conductive heat flux depends strongly on the ice thickness $h$.
873 However, the ice thickness in the model represents a mean over a
874 potentially very heterogeneous thickness distribution. In order to
875 parameterize a sub-grid scale distribution for heat flux
876 computations, the mean ice thickness $h$ is split into seven thickness
877 categories $H_{n}$ that are equally distributed between $2h$ and a
878 minimum imposed ice thickness of $5\text{\,cm}$ by $H_n=
879 \frac{2n-1}{7}\,h$ for $n\in[1,7]$. The heat fluxes computed for each
880 thickness category is area-averaged to give the total heat flux
881 \citep{hibler84}. To use this thickness category parameterization set
882 \code{\#define SEAICE\_MULTICATEGORY}; note that this requires
883 different restart files and switching this flag on in the middle of an
884 integration is not possible.
885
886 The atmospheric heat flux is balanced by an oceanic heat flux from
887 below. The oceanic flux is proportional to
888 $\rho\,c_{p}\left(T_{w}-T_{fr}\right)$ where $\rho$ and $c_{p}$ are
889 the density and heat capacity of sea water and $T_{fr}$ is the local
890 freezing point temperature that is a function of salinity. This flux
891 is not assumed to instantaneously melt or create ice, but a time scale
892 of three days (run-time parameter \code{SEAICE\_gamma\_t}) is used
893 to relax $T_{w}$ to the freezing point.
894 %
895 The parameterization of lateral and vertical growth of sea ice follows
896 that of \citet{hib79, hib80}; the so-called lead closing parameter
897 $h_{0}$ (run-time parameter \code{HO}) has a default value of
898 0.5~meters.
899
900 On top of the ice there is a layer of snow that modifies the heat flux
901 and the albedo \citep{zha98a}. Snow modifies the effective
902 conductivity according to
903 \[\frac{K}{h} \rightarrow \frac{1}{\frac{h_{s}}{K_{s}}+\frac{h}{K}},\]
904 where $K_s$ is the conductivity of snow and $h_s$ the snow thickness.
905 If enough snow accumulates so that its weight submerges the ice and
906 the snow is flooded, a simple mass conserving parameterization of
907 snowice formation (a flood-freeze algorithm following Archimedes'
908 principle) turns snow into ice until the ice surface is back at $z=0$
909 \citep{leppaeranta83}. The flood-freeze algorithm is enabled with the CPP-flag
910 \code{SEAICE\_ALLOW\_FLOODING} and turned on with run-time parameter
911 \code{SEAICEuseFlooding=.true.}.
912
913 \paragraph{Advection of thermodynamic variables\label{sec:pkg:seaice:advection}}~\\
914 %
915 Effective ice thickness (ice volume per unit area,
916 $c\cdot{h}$), concentration $c$ and effective snow thickness
917 ($c\cdot{h}_{s}$) are advected by ice velocities:
918 \begin{equation}
919 \label{eq:advection}
920 \frac{\partial{X}}{\partial{t}} = - \nabla\cdot\left(\vek{u}\,X\right) +
921 \Gamma_{X} + D_{X}
922 \end{equation}
923 where $\Gamma_X$ are the thermodynamic source terms and $D_{X}$ the
924 diffusive terms for quantities $X=(c\cdot{h}), c, (c\cdot{h}_{s})$.
925 %
926 From the various advection scheme that are available in the MITgcm, we
927 recommend flux-limited schemes \citep[multidimensional 2nd and
928 3rd-order advection scheme with flux limiter][]{roe:85, hundsdorfer94}
929 to preserve sharp gradients and edges that are typical of sea ice
930 distributions and to rule out unphysical over- and undershoots
931 (negative thickness or concentration). These schemes conserve volume
932 and horizontal area and are unconditionally stable, so that we can set
933 $D_{X}=0$. Run-timeflags: \code{SEAICEadvScheme} (default=2, is the
934 historic 2nd-order, centered difference scheme), \code{DIFF1} =
935 $D_{X}/\Delta{x}$
936 (default=0.004).
937
938 The MITgcm sea ice model provides the option to use
939 the thermodynamics model of \citet{win00}, which in turn is based on
940 the 3-layer model of \citet{sem76} and which treats brine content by
941 means of enthalpy conservation; the corresponding package
942 \code{thsice} is described in section~\ref{sec:pkg:thsice}. This
943 scheme requires additional state variables, namely the enthalpy of the
944 two ice layers (instead of effective ice salinity), to be advected by
945 ice velocities.
946 %
947 The internal sea ice temperature is inferred from ice enthalpy. To
948 avoid unphysical (negative) values for ice thickness and
949 concentration, a positive 2nd-order advection scheme with a SuperBee
950 flux limiter \citep{roe:85} should be used to advect all
951 sea-ice-related quantities of the \citet{win00} thermodynamic model
952 (runtime flag \code{thSIceAdvScheme=77} and
953 \code{thSIce\_diffK}=$D_{X}$=0 in \code{data.ice}, defaults are 0). Because of the
954 non-linearity of the advection scheme, care must be taken in advecting
955 these quantities: when simply using ice velocity to advect enthalpy,
956 the total energy (i.e., the volume integral of enthalpy) is not
957 conserved. Alternatively, one can advect the energy content (i.e.,
958 product of ice-volume and enthalpy) but then false enthalpy extrema
959 can occur, which then leads to unrealistic ice temperature. In the
960 currently implemented solution, the sea-ice mass flux is used to
961 advect the enthalpy in order to ensure conservation of enthalpy and to
962 prevent false enthalpy extrema. %
963
964 %----------------------------------------------------------------------
965
966 \subsubsection{Key subroutines
967 \label{sec:pkg:seaice:subroutines}}
968
969 Top-level routine: \code{seaice\_model.F}
970
971 {\footnotesize
972 \begin{verbatim}
973
974 C !CALLING SEQUENCE:
975 c ...
976 c seaice_model (TOP LEVEL ROUTINE)
977 c |
978 c |-- #ifdef SEAICE_CGRID
979 c | SEAICE_DYNSOLVER
980 c | |
981 c | |-- < compute proxy for geostrophic velocity >
982 c | |
983 c | |-- < set up mass per unit area and Coriolis terms >
984 c | |
985 c | |-- < dynamic masking of areas with no ice >
986 c | |
987 c | |
988
989 c | #ELSE
990 c | DYNSOLVER
991 c | #ENDIF
992 c |
993 c |-- if ( useOBCS )
994 c | OBCS_APPLY_UVICE
995 c |
996 c |-- if ( SEAICEadvHeff .OR. SEAICEadvArea .OR. SEAICEadvSnow .OR. SEAICEadvSalt )
997 c | SEAICE_ADVDIFF
998 c |
999 c |-- if ( usePW79thermodynamics )
1000 c | SEAICE_GROWTH
1001 c |
1002 c |-- if ( useOBCS )
1003 c | if ( SEAICEadvHeff ) OBCS_APPLY_HEFF
1004 c | if ( SEAICEadvArea ) OBCS_APPLY_AREA
1005 c | if ( SEAICEadvSALT ) OBCS_APPLY_HSALT
1006 c | if ( SEAICEadvSNOW ) OBCS_APPLY_HSNOW
1007 c |
1008 c |-- < do various exchanges >
1009 c |
1010 c |-- < do additional diagnostics >
1011 c |
1012 c o
1013
1014 \end{verbatim}
1015 }
1016
1017
1018 %----------------------------------------------------------------------
1019
1020 \subsubsection{SEAICE diagnostics
1021 \label{sec:pkg:seaice:diagnostics}}
1022
1023 Diagnostics output is available via the diagnostics package
1024 (see Section \ref{sec:pkg:diagnostics}).
1025 Available output fields are summarized in
1026 Table \ref{tab:pkg:seaice:diagnostics}.
1027
1028 \input{s_phys_pkgs/text/seaice_diags.tex}
1029
1030 %\subsubsection{Package Reference}
1031
1032 \subsubsection{Experiments and tutorials that use seaice}
1033 \label{sec:pkg:seaice:experiments}
1034
1035 \begin{itemize}
1036 \item{Labrador Sea experiment in \code{lab\_sea} verification directory. }
1037 \item \code{seaice\_obcs}, based on \code{lab\_sea}
1038 \item \code{offline\_exf\_seaice/input.seaicetd}, based on \code{lab\_sea}
1039 \item \code{global\_ocean.cs32x15/input.icedyn} and
1040 \code{global\_ocean.cs32x15/input.seaice}, global
1041 cubed-sphere-experiment with combinations of \code{seaice} and
1042 \code{thsice}
1043 \end{itemize}
1044
1045
1046 %%% Local Variables:
1047 %%% mode: latex
1048 %%% TeX-master: "../../manual"
1049 %%% End:

  ViewVC Help
Powered by ViewVC 1.1.22