/[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.20 - (hide annotations) (download) (as text)
Mon Mar 31 11:30:21 2014 UTC (11 years, 3 months ago) by mlosch
Branch: MAIN
Changes since 1.19: +197 -28 lines
File MIME type: application/x-tex
add description of JFNK solver, update list of CPP-flags

1 mlosch 1.20 % $Header: /u/gcmpack/manual/s_phys_pkgs/text/seaice.tex,v 1.19 2011/12/14 11:22:42 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     Table \ref{tab:pkg:seaice:cpp} summarizes the most important ones.
67 heimbach 1.6
68 jmc 1.12 \begin{table}[!ht]
69 heimbach 1.6 \centering
70     \label{tab:pkg:seaice:cpp}
71     {\footnotesize
72 mlosch 1.8 \begin{tabular}{|l|p{10cm}|}
73 heimbach 1.6 \hline
74     \textbf{CPP option} & \textbf{Description} \\
75     \hline \hline
76 mlosch 1.9 \code{SEAICE\_DEBUG} &
77 heimbach 1.6 Enhance STDOUT for debugging \\
78 mlosch 1.9 \code{SEAICE\_ALLOW\_DYNAMICS} &
79 heimbach 1.6 sea-ice dynamics code \\
80 mlosch 1.9 \code{SEAICE\_CGRID} &
81 mlosch 1.8 LSR solver on C-grid (rather than original B-grid) \\
82 mlosch 1.9 \code{SEAICE\_ALLOW\_EVP} &
83 mlosch 1.20 enable use of EVP rheology solver \\
84     \code{SEAICE\_ALLOW\_JFNK} &
85     enable use of JFNK rheology solver \\
86 mlosch 1.9 \code{SEAICE\_EXTERNAL\_FLUXES} &
87 heimbach 1.6 use EXF-computed fluxes as starting point \\
88 mlosch 1.20 \code{SEAICE\_ZETA\_SMOOTHREG} &
89     use differentialable regularization for viscosities \\
90 mlosch 1.9 \code{SEAICE\_VARIABLE\_FREEZING\_POINT} &
91 mlosch 1.8 enable linear dependence of the freezing point on salinity
92     (by default undefined)\\
93 mlosch 1.9 \code{ALLOW\_SEAICE\_FLOODING} &
94 heimbach 1.6 enable snow to ice conversion for submerged sea-ice \\
95 mlosch 1.20 \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 mlosch 1.9 \code{SEAICE\_BICE\_STRESS} &
100 mlosch 1.8 B-grid only for backward compatiblity: turn on ice-stress on
101     ocean\\
102 mlosch 1.9 \code{EXPLICIT\_SSH\_SLOPE} &
103 mlosch 1.8 B-grid only for backward compatiblity: use ETAN for tilt
104     computations rather than geostrophic velocities \\
105 heimbach 1.6 \hline
106     \end{tabular}
107     }
108 mlosch 1.20 \caption{Some of the most relevant CPP preprocessor flags in the
109     \code{seaice}-package.}
110 heimbach 1.6 \end{table}
111    
112     %----------------------------------------------------------------------
113    
114     \subsubsection{Run-time parameters
115     \label{sec:pkg:seaice:runtime}}
116    
117 mlosch 1.16 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 heimbach 1.6
121     \paragraph{Enabling the package}
122     ~ \\
123     %
124 mlosch 1.8 A package is switched on/off at run-time by setting
125 mlosch 1.9 (e.g. for SEAICE) \code{useSEAICE = .TRUE.} in \code{data.pkg}.
126 heimbach 1.6
127     \paragraph{General flags and parameters}
128     ~ \\
129     %
130 mlosch 1.8 Table~\ref{tab:pkg:seaice:runtimeparms} lists most run-time parameters.
131 jmc 1.11 \input{s_phys_pkgs/text/seaice-parms.tex}
132 heimbach 1.6
133 mlosch 1.10 \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 heimbach 1.6
145     %----------------------------------------------------------------------
146     \subsubsection{Description
147     \label{sec:pkg:seaice:descr}}
148    
149     [TO BE CONTINUED/MODIFIED]
150    
151 mlosch 1.8 % 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:
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 mlosch 1.20 \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 mlosch 1.8 \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 edhill 1.1
204     The ice dynamics models that are most widely used for large-scale
205 mlosch 1.8 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 edhill 1.1 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 mlosch 1.8 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 mlosch 1.16 configuration. An EVP model and a free-drift implemtation can be
217     selected with runtime flags.
218 mlosch 1.8
219 mlosch 1.16 \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 mlosch 1.8 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 mlosch 1.16 \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 edhill 1.1
247 mlosch 1.16 \paragraph{Surface forcing\label{sec:pkg:seaice:surfaceforcing}}~\\
248     %
249 edhill 1.1 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 mlosch 1.8 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 mlosch 1.16 \paragraph{Dynamics\label{sec:pkg:seaice:dynamics}}~\\
260     %
261 mlosch 1.8 \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 mlosch 1.9 R_{ocean}(\vek{U}_{ocean}-\vek{u}),
291 mlosch 1.8 \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 mlosch 1.20 \paragraph{Viscous-Plastic (VP) Rheology\label{sec:pkg:seaice:VPrheology}}~\\
299 mlosch 1.16 %
300 mlosch 1.8 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 mlosch 1.19 P_{\max} = P^{*}c\,h\,\exp\{-C^{*}\cdot(1-c)\},
320 mlosch 1.8 \label{eq:icestrength}
321     \end{equation}
322 mlosch 1.9 with the constants $P^{*}$ (run-time parameter \code{SEAICE\_strength}) and
323 mlosch 1.8 $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 mlosch 1.9 \code{SEAICE\_EPS} with a default value of
342 mlosch 1.8 $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 mlosch 1.9 parameter \code{SEAICE\_zetaMin} $>0$, but this is generally not
347 mlosch 1.8 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 mlosch 1.20 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 mlosch 1.8
530 mlosch 1.16 \paragraph{Elastic-Viscous-Plastic (EVP) Dynamics\label{sec:pkg:seaice:EVPdynamics}}~\\
531     %
532 mlosch 1.8 \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 mlosch 1.16 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 mlosch 1.8 \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 mlosch 1.16 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 mlosch 1.8
582 mlosch 1.9 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 mlosch 1.8 (default). The solver is turned on by setting the sub-cycling time
585 mlosch 1.9 step \code{SEAICE\_deltaTevp} to a value larger than zero. The
586 mlosch 1.8 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 mlosch 1.9 $\Delta{t}$ (\code{deltaTmom}). One can also choose order(120) time
589 mlosch 1.8 steps within the forcing time scale, but then we recommend adjusting
590     the damping time scale $T$ accordingly, by setting either
591 mlosch 1.9 \code{SEAICE\_elasticParm} ($E_{0}$), so that
592 mlosch 1.8 $E_{0}\Delta{t}=\mbox{forcing time scale}$, or directly
593 mlosch 1.9 \code{SEAICE\_evpTauRelax} ($T$) to the forcing time scale.
594 mlosch 1.8
595 mlosch 1.16 \paragraph{Truncated ellipse method (TEM) for yield curve \label{sec:pkg:seaice:TEM}}~\\
596     %
597     In the so-called truncated ellipse method the shear viscosity $\eta$
598     is capped to suppress any tensile stress \citep{hibler97, geiger98}:
599     \begin{equation}
600     \label{eq:etatem}
601     \eta = \min\left(\frac{\zeta}{e^2},
602     \frac{\frac{P}{2}-\zeta(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})}
603     {\sqrt{(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})^2
604     +4\dot{\epsilon}_{12}^2}}\right).
605     \end{equation}
606     To enable this method, set \code{\#define SEAICE\_ALLOW\_TEM} in
607     \code{SEAICE\_OPTIONS.h} and turn it on with
608     \code{SEAICEuseTEM} in \code{data.seaice}.
609    
610     \paragraph{Ice-Ocean stress \label{sec:pkg:seaice:iceoceanstress}}~\\
611     %
612 mlosch 1.8 Moving sea ice exerts a stress on the ocean which is the opposite of
613     the stress $\vtau_{ocean}$ in Eq.~\ref{eq:momseaice}. This stess is
614     applied directly to the surface layer of the ocean model. An
615     alternative ocean stress formulation is given by \citet{hibler87}.
616     Rather than applying $\vtau_{ocean}$ directly, the stress is derived
617     from integrating over the ice thickness to the bottom of the oceanic
618     surface layer. In the resulting equation for the \emph{combined}
619     ocean-ice momentum, the interfacial stress cancels and the total
620     stress appears as the sum of windstress and divergence of internal ice
621     stresses: $\delta(z) (\vtau_{air} + \vek{F})/\rho_0$, \citep[see also
622     Eq.\,2 of][]{hibler87}. The disadvantage of this formulation is that
623     now the velocity in the surface layer of the ocean that is used to
624     advect tracers, is really an average over the ocean surface
625     velocity and the ice velocity leading to an inconsistency as the ice
626     temperature and salinity are different from the oceanic variables.
627     To turn on the stress formulation of \citet{hibler87}, set
628 mlosch 1.9 \code{useHB87StressCoupling=.TRUE.} in \code{data.seaice}.
629 mlosch 1.8
630    
631     % Our discretization differs from \citet{zhang97, zhang03} in the
632     % underlying grid, namely the Arakawa C-grid, but is otherwise
633     % straightforward. The EVP model, in particular, is discretized
634     % naturally on the C-grid with $\sigma_{1}$ and $\sigma_{2}$ on the
635     % center points and $\sigma_{12}$ on the corner (or vorticity) points of
636     % the grid. With this choice all derivatives are discretized as central
637     % differences and averaging is only involved in computing $\Delta$ and
638     % $P$ at vorticity points.
639    
640 mlosch 1.9 \paragraph{Finite-volume discretization of the stress tensor
641 mlosch 1.16 divergence\label{sec:pkg:seaice:discretization}}~\\
642     %
643 mlosch 1.8 On an Arakawa C~grid, ice thickness and concentration and thus ice
644     strength $P$ and bulk and shear viscosities $\zeta$ and $\eta$ are
645     naturally defined a C-points in the center of the grid
646     cell. Discretization requires only averaging of $\zeta$ and $\eta$ to
647     vorticity or Z-points (or $\zeta$-points, but here we use Z in order
648     avoid confusion with the bulk viscosity) at the bottom left corner of
649     the cell to give $\overline{\zeta}^{Z}$ and $\overline{\eta}^{Z}$. In
650     the following, the superscripts indicate location at Z or C points,
651     distance across the cell (F), along the cell edge (G), between
652     $u$-points (U), $v$-points (V), and C-points (C). The control volumes
653     of the $u$- and $v$-equations in the grid cell at indices $(i,j)$ are
654     $A_{i,j}^{w}$ and $A_{i,j}^{s}$, respectively. With these definitions
655     (which follow the model code documentation except that $\zeta$-points
656     have been renamed to Z-points), the strain rates are discretized as:
657     \begin{align}
658     \dot{\epsilon}_{11} &= \partial_{1}{u}_{1} + k_{2}u_{2} \\ \notag
659     => (\epsilon_{11})_{i,j}^C &= \frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}}
660     + k_{2,i,j}^{C}\frac{v_{i,j+1}+v_{i,j}}{2} \\
661     \dot{\epsilon}_{22} &= \partial_{2}{u}_{2} + k_{1}u_{1} \\\notag
662     => (\epsilon_{22})_{i,j}^C &= \frac{v_{i,j+1}-v_{i,j}}{\Delta{y}_{i,j}^{F}}
663     + k_{1,i,j}^{C}\frac{u_{i+1,j}+u_{i,j}}{2} \\
664     \dot{\epsilon}_{12} = \dot{\epsilon}_{21} &= \frac{1}{2}\biggl(
665     \partial_{1}{u}_{2} + \partial_{2}{u}_{1} - k_{1}u_{2} - k_{2}u_{1}
666     \biggr) \\ \notag
667     => (\epsilon_{12})_{i,j}^Z &= \frac{1}{2}
668     \biggl( \frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^V}
669     + \frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^U} \\\notag
670     &\phantom{=\frac{1}{2}\biggl(}
671     - k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2}
672     - k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2}
673     \biggr),
674     \end{align}
675     so that the diagonal terms of the strain rate tensor are naturally
676     defined at C-points and the symmetric off-diagonal term at
677     Z-points. No-slip boundary conditions ($u_{i,j-1}+u_{i,j}=0$ and
678     $v_{i-1,j}+v_{i,j}=0$ across boundaries) are implemented via
679     ``ghost-points''; for free slip boundary conditions
680     $(\epsilon_{12})^Z=0$ on boundaries.
681    
682     For a spherical polar grid, the coefficients of the metric terms are
683     $k_{1}=0$ and $k_{2}=-\tan\phi/a$, with the spherical radius $a$ and
684     the latitude $\phi$; $\Delta{x}_1 = \Delta{x} = a\cos\phi
685     \Delta\lambda$, and $\Delta{x}_2 = \Delta{y}=a\Delta\phi$. For a
686     general orthogonal curvilinear grid, $k_{1}$ and
687     $k_{2}$ can be approximated by finite differences of the cell widths:
688     \begin{align}
689     k_{1,i,j}^{C} &= \frac{1}{\Delta{y}_{i,j}^{F}}
690     \frac{\Delta{y}_{i+1,j}^{G}-\Delta{y}_{i,j}^{G}}{\Delta{x}_{i,j}^{F}} \\
691     k_{2,i,j}^{C} &= \frac{1}{\Delta{x}_{i,j}^{F}}
692     \frac{\Delta{x}_{i,j+1}^{G}-\Delta{x}_{i,j}^{G}}{\Delta{y}_{i,j}^{F}} \\
693     k_{1,i,j}^{Z} &= \frac{1}{\Delta{y}_{i,j}^{U}}
694     \frac{\Delta{y}_{i,j}^{C}-\Delta{y}_{i-1,j}^{C}}{\Delta{x}_{i,j}^{V}} \\
695     k_{2,i,j}^{Z} &= \frac{1}{\Delta{x}_{i,j}^{V}}
696     \frac{\Delta{x}_{i,j}^{C}-\Delta{x}_{i,j-1}^{C}}{\Delta{y}_{i,j}^{U}}
697     \end{align}
698    
699     The stress tensor is given by the constitutive viscous-plastic
700     relation $\sigma_{\alpha\beta} = 2\eta\dot{\epsilon}_{\alpha\beta} +
701     [(\zeta-\eta)\dot{\epsilon}_{\gamma\gamma} - P/2
702     ]\delta_{\alpha\beta}$ \citep{hib79}. The stress tensor divergence
703     $(\nabla\sigma)_{\alpha} = \partial_\beta\sigma_{\beta\alpha}$, is
704     discretized in finite volumes. This conveniently avoids dealing with
705     further metric terms, as these are ``hidden'' in the differential cell
706     widths. For the $u$-equation ($\alpha=1$) we have:
707     \begin{align}
708     (\nabla\sigma)_{1}: \phantom{=}&
709     \frac{1}{A_{i,j}^w}
710     \int_{\mathrm{cell}}(\partial_1\sigma_{11}+\partial_2\sigma_{21})\,dx_1\,dx_2
711     \\\notag
712     =& \frac{1}{A_{i,j}^w} \biggl\{
713     \int_{x_2}^{x_2+\Delta{x}_2}\sigma_{11}dx_2\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}}
714     + \int_{x_1}^{x_1+\Delta{x}_1}\sigma_{21}dx_1\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}}
715     \biggr\} \\ \notag
716     \approx& \frac{1}{A_{i,j}^w} \biggl\{
717     \Delta{x}_2\sigma_{11}\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}}
718     + \Delta{x}_1\sigma_{21}\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}}
719     \biggr\} \\ \notag
720     =& \frac{1}{A_{i,j}^w} \biggl\{
721 mlosch 1.9 (\Delta{x}_2\sigma_{11})_{i,j}^C -
722     (\Delta{x}_2\sigma_{11})_{i-1,j}^C
723     \\\notag
724 mlosch 1.8 \phantom{=}& \phantom{\frac{1}{A_{i,j}^w} \biggl\{}
725     + (\Delta{x}_1\sigma_{21})_{i,j+1}^Z - (\Delta{x}_1\sigma_{21})_{i,j}^Z
726     \biggr\}
727 mlosch 1.13 \end{align}
728     with
729     \begin{align}
730 mlosch 1.8 (\Delta{x}_2\sigma_{11})_{i,j}^C =& \phantom{+}
731     \Delta{y}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j}
732     \frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}} \\ \notag
733     &+ \Delta{y}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j}
734     k_{2,i,j}^C \frac{v_{i,j+1}+v_{i,j}}{2} \\ \notag
735     \phantom{=}& + \Delta{y}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j}
736     \frac{v_{i,j+1}-v_{i,j}}{\Delta{y}_{i,j}^{F}} \\ \notag
737     \phantom{=}& + \Delta{y}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j}
738     k_{1,i,j}^{C}\frac{u_{i+1,j}+u_{i,j}}{2} \\ \notag
739     \phantom{=}& - \Delta{y}_{i,j}^{F} \frac{P}{2} \\
740     (\Delta{x}_1\sigma_{21})_{i,j}^Z =& \phantom{+}
741     \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j}
742     \frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^{U}} \\ \notag
743     & + \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j}
744     \frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^{V}} \\ \notag
745     & - \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j}
746     k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2} \\ \notag
747     & - \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j}
748     k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2}
749     \end{align}
750    
751     Similarly, we have for the $v$-equation ($\alpha=2$):
752     \begin{align}
753     (\nabla\sigma)_{2}: \phantom{=}&
754     \frac{1}{A_{i,j}^s}
755     \int_{\mathrm{cell}}(\partial_1\sigma_{12}+\partial_2\sigma_{22})\,dx_1\,dx_2
756     \\\notag
757     =& \frac{1}{A_{i,j}^s} \biggl\{
758     \int_{x_2}^{x_2+\Delta{x}_2}\sigma_{12}dx_2\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}}
759     + \int_{x_1}^{x_1+\Delta{x}_1}\sigma_{22}dx_1\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}}
760     \biggr\} \\ \notag
761     \approx& \frac{1}{A_{i,j}^s} \biggl\{
762     \Delta{x}_2\sigma_{12}\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}}
763     + \Delta{x}_1\sigma_{22}\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}}
764     \biggr\} \\ \notag
765     =& \frac{1}{A_{i,j}^s} \biggl\{
766     (\Delta{x}_2\sigma_{12})_{i+1,j}^Z - (\Delta{x}_2\sigma_{12})_{i,j}^Z
767     \\ \notag
768     \phantom{=}& \phantom{\frac{1}{A_{i,j}^s} \biggl\{}
769     + (\Delta{x}_1\sigma_{22})_{i,j}^C - (\Delta{x}_1\sigma_{22})_{i,j-1}^C
770     \biggr\}
771 mlosch 1.13 \end{align}
772     with
773     \begin{align}
774 mlosch 1.8 (\Delta{x}_1\sigma_{12})_{i,j}^Z =& \phantom{+}
775     \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j}
776 mlosch 1.9 \frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^{U}}
777     \\\notag &
778     + \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j}
779     \frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^{V}} \\\notag
780 mlosch 1.8 &- \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j}
781 mlosch 1.9 k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2}
782     \\\notag &
783     - \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j}
784 mlosch 1.8 k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2} \\ \notag
785     (\Delta{x}_2\sigma_{22})_{i,j}^C =& \phantom{+}
786     \Delta{x}_{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{x}_{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     & + \Delta{x}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j}
791     \frac{v_{i,j+1}-v_{i,j}}{\Delta{y}_{i,j}^{F}} \\ \notag
792     & + \Delta{x}_{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     & -\Delta{x}_{i,j}^{F} \frac{P}{2}
795     \end{align}
796    
797     Again, no slip boundary conditions are realized via ghost points and
798     $u_{i,j-1}+u_{i,j}=0$ and $v_{i-1,j}+v_{i,j}=0$ across boundaries. For
799     free slip boundary conditions the lateral stress is set to zeros. In
800     analogy to $(\epsilon_{12})^Z=0$ on boundaries, we set
801     $\sigma_{21}^{Z}=0$, or equivalently $\eta_{i,j}^{Z}=0$, on boundaries.
802    
803 mlosch 1.16 \paragraph{Thermodynamics\label{sec:pkg:seaice:thermodynamics}}~\\
804     %
805 mlosch 1.8 In its original formulation the sea ice model \citep{menemenlis05}
806     uses simple thermodynamics following the appendix of
807     \citet{sem76}. This formulation does not allow storage of heat,
808     that is, the heat capacity of ice is zero. Upward conductive heat flux
809     is parameterized assuming a linear temperature profile and together
810     with a constant ice conductivity. It is expressed as
811     $(K/h)(T_{w}-T_{0})$, where $K$ is the ice conductivity, $h$ the ice
812     thickness, and $T_{w}-T_{0}$ the difference between water and ice
813     surface temperatures. This type of model is often refered to as a
814     ``zero-layer'' model. The surface heat flux is computed in a similar
815     way to that of \citet{parkinson79} and \citet{manabe79}.
816    
817     The conductive heat flux depends strongly on the ice thickness $h$.
818     However, the ice thickness in the model represents a mean over a
819     potentially very heterogeneous thickness distribution. In order to
820     parameterize a sub-grid scale distribution for heat flux
821     computations, the mean ice thickness $h$ is split into seven thickness
822     categories $H_{n}$ that are equally distributed between $2h$ and a
823     minimum imposed ice thickness of $5\text{\,cm}$ by $H_n=
824     \frac{2n-1}{7}\,h$ for $n\in[1,7]$. The heat fluxes computed for each
825     thickness category is area-averaged to give the total heat flux
826     \citep{hibler84}. To use this thickness category parameterization set
827 mlosch 1.9 \code{\#define SEAICE\_MULTICATEGORY}; note that this requires
828 mlosch 1.8 different restart files and switching this flag on in the middle of an
829     integration is not possible.
830    
831     The atmospheric heat flux is balanced by an oceanic heat flux from
832     below. The oceanic flux is proportional to
833     $\rho\,c_{p}\left(T_{w}-T_{fr}\right)$ where $\rho$ and $c_{p}$ are
834     the density and heat capacity of sea water and $T_{fr}$ is the local
835     freezing point temperature that is a function of salinity. This flux
836     is not assumed to instantaneously melt or create ice, but a time scale
837 mlosch 1.9 of three days (run-time parameter \code{SEAICE\_gamma\_t}) is used
838 mlosch 1.8 to relax $T_{w}$ to the freezing point.
839     %
840     The parameterization of lateral and vertical growth of sea ice follows
841     that of \citet{hib79, hib80}; the so-called lead closing parameter
842 mlosch 1.9 $h_{0}$ (run-time parameter \code{HO}) has a default value of
843 mlosch 1.8 0.5~meters.
844    
845     On top of the ice there is a layer of snow that modifies the heat flux
846     and the albedo \citep{zha98a}. Snow modifies the effective
847     conductivity according to
848     \[\frac{K}{h} \rightarrow \frac{1}{\frac{h_{s}}{K_{s}}+\frac{h}{K}},\]
849     where $K_s$ is the conductivity of snow and $h_s$ the snow thickness.
850     If enough snow accumulates so that its weight submerges the ice and
851     the snow is flooded, a simple mass conserving parameterization of
852     snowice formation (a flood-freeze algorithm following Archimedes'
853     principle) turns snow into ice until the ice surface is back at $z=0$
854     \citep{leppaeranta83}. The flood-freeze algorithm is enabled with the CPP-flag
855 mlosch 1.9 \code{SEAICE\_ALLOW\_FLOODING} and turned on with run-time parameter
856     \code{SEAICEuseFlooding=.true.}.
857 mlosch 1.8
858 mlosch 1.16 \paragraph{Advection of thermodynamic variables\label{sec:pkg:seaice:advection}}~\\
859     %
860 mlosch 1.8 Effective ice thickness (ice volume per unit area,
861     $c\cdot{h}$), concentration $c$ and effective snow thickness
862     ($c\cdot{h}_{s}$) are advected by ice velocities:
863     \begin{equation}
864     \label{eq:advection}
865     \frac{\partial{X}}{\partial{t}} = - \nabla\cdot\left(\vek{u}\,X\right) +
866     \Gamma_{X} + D_{X}
867     \end{equation}
868     where $\Gamma_X$ are the thermodynamic source terms and $D_{X}$ the
869     diffusive terms for quantities $X=(c\cdot{h}), c, (c\cdot{h}_{s})$.
870     %
871     From the various advection scheme that are available in the MITgcm, we
872 mlosch 1.14 recommend flux-limited schemes \citep[multidimensional 2nd and
873     3rd-order advection scheme with flux limiter][]{roe:85, hundsdorfer94}
874     to preserve sharp gradients and edges that are typical of sea ice
875 mlosch 1.8 distributions and to rule out unphysical over- and undershoots
876 mlosch 1.14 (negative thickness or concentration). These schemes conserve volume
877 mlosch 1.8 and horizontal area and are unconditionally stable, so that we can set
878 mlosch 1.14 $D_{X}=0$. Run-timeflags: \code{SEAICEadvScheme} (default=2, is the
879 mlosch 1.16 historic 2nd-order, centered difference scheme), \code{DIFF1} =
880     $D_{X}/\Delta{x}$
881 mlosch 1.14 (default=0.004).
882 mlosch 1.8
883 mlosch 1.16 The MITgcm sea ice model provides the option to use
884 mlosch 1.15 the thermodynamics model of \citet{win00}, which in turn is based on
885     the 3-layer model of \citet{sem76} and which treats brine content by
886     means of enthalpy conservation; the corresponding package
887     \code{thsice} is described in section~\ref{sec:pkg:thsice}. This
888     scheme requires additional state variables, namely the enthalpy of the
889     two ice layers (instead of effective ice salinity), to be advected by
890     ice velocities.
891 mlosch 1.8 %
892     The internal sea ice temperature is inferred from ice enthalpy. To
893     avoid unphysical (negative) values for ice thickness and
894     concentration, a positive 2nd-order advection scheme with a SuperBee
895 mlosch 1.16 flux limiter \citep{roe:85} should be used to advect all
896     sea-ice-related quantities of the \citet{win00} thermodynamic model
897     (runtime flag \code{thSIceAdvScheme=77} and
898     \code{thSIce\_diffK}=$D_{X}$=0 in \code{data.ice}, defaults are 0). Because of the
899     non-linearity of the advection scheme, care must be taken in advecting
900     these quantities: when simply using ice velocity to advect enthalpy,
901     the total energy (i.e., the volume integral of enthalpy) is not
902     conserved. Alternatively, one can advect the energy content (i.e.,
903     product of ice-volume and enthalpy) but then false enthalpy extrema
904     can occur, which then leads to unrealistic ice temperature. In the
905     currently implemented solution, the sea-ice mass flux is used to
906     advect the enthalpy in order to ensure conservation of enthalpy and to
907     prevent false enthalpy extrema. %
908 edhill 1.1
909 heimbach 1.6 %----------------------------------------------------------------------
910    
911     \subsubsection{Key subroutines
912     \label{sec:pkg:seaice:subroutines}}
913    
914 mlosch 1.9 Top-level routine: \code{seaice\_model.F}
915 heimbach 1.6
916     {\footnotesize
917     \begin{verbatim}
918    
919     C !CALLING SEQUENCE:
920     c ...
921     c seaice_model (TOP LEVEL ROUTINE)
922     c |
923     c |-- #ifdef SEAICE_CGRID
924     c | SEAICE_DYNSOLVER
925 heimbach 1.7 c | |
926     c | |-- < compute proxy for geostrophic velocity >
927     c | |
928     c | |-- < set up mass per unit area and Coriolis terms >
929     c | |
930     c | |-- < dynamic masking of areas with no ice >
931     c | |
932     c | |
933    
934 heimbach 1.6 c | #ELSE
935     c | DYNSOLVER
936     c | #ENDIF
937     c |
938 heimbach 1.7 c |-- if ( useOBCS )
939     c | OBCS_APPLY_UVICE
940     c |
941     c |-- if ( SEAICEadvHeff .OR. SEAICEadvArea .OR. SEAICEadvSnow .OR. SEAICEadvSalt )
942     c | SEAICE_ADVDIFF
943     c |
944     c |-- if ( usePW79thermodynamics )
945     c | SEAICE_GROWTH
946     c |
947     c |-- if ( useOBCS )
948     c | if ( SEAICEadvHeff ) OBCS_APPLY_HEFF
949     c | if ( SEAICEadvArea ) OBCS_APPLY_AREA
950     c | if ( SEAICEadvSALT ) OBCS_APPLY_HSALT
951     c | if ( SEAICEadvSNOW ) OBCS_APPLY_HSNOW
952     c |
953     c |-- < do various exchanges >
954     c |
955     c |-- < do additional diagnostics >
956     c |
957     c o
958 heimbach 1.6
959     \end{verbatim}
960     }
961    
962    
963     %----------------------------------------------------------------------
964    
965 mlosch 1.8 \subsubsection{SEAICE diagnostics
966 heimbach 1.6 \label{sec:pkg:seaice:diagnostics}}
967    
968     Diagnostics output is available via the diagnostics package
969     (see Section \ref{sec:pkg:diagnostics}).
970     Available output fields are summarized in
971     Table \ref{tab:pkg:seaice:diagnostics}.
972    
973 heimbach 1.18 \input{s_phys_pkgs/text/seaice_diags.tex}
974 heimbach 1.6
975 molod 1.4 %\subsubsection{Package Reference}
976 edhill 1.1
977 molod 1.5 \subsubsection{Experiments and tutorials that use seaice}
978     \label{sec:pkg:seaice:experiments}
979    
980     \begin{itemize}
981 mlosch 1.16 \item{Labrador Sea experiment in \code{lab\_sea} verification directory. }
982     \item \code{seaice\_obcs}, based on \code{lab\_sea}
983     \item \code{offline\_exf\_seaice/input.seaicetd}, based on \code{lab\_sea}
984     \item \code{global\_ocean.cs32x15/input.icedyn} and
985     \code{global\_ocean.cs32x15/input.seaice}, global
986     cubed-sphere-experiment with combinations of \code{seaice} and
987     \code{thsice}
988 molod 1.5 \end{itemize}
989    
990 mlosch 1.8
991     %%% Local Variables:
992     %%% mode: latex
993 mlosch 1.13 %%% TeX-master: "../../manual"
994 mlosch 1.8 %%% End:

  ViewVC Help
Powered by ViewVC 1.1.22