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

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

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


Revision 1.25 - (hide annotations) (download) (as text)
Tue Mar 29 14:50:54 2016 UTC (9 years, 3 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint01, HEAD
Changes since 1.24: +32 -11 lines
File MIME type: application/x-tex
describe mEVP and aEVP parameters

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

  ViewVC Help
Powered by ViewVC 1.1.22