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

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

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

revision 1.2 by edhill, Tue Oct 12 18:16:03 2004 UTC revision 1.24 by mlosch, Tue Sep 15 13:31:19 2015 UTC
# Line 5  Line 5 
5  %%EH3  which was written by Dimitris M.  %%EH3  which was written by Dimitris M.
6    
7    
8  \section{Sea Ice Package: ``seaice''}  \subsection{SEAICE Package}
9  \label{sec:pkg:seaice}  \label{sec:pkg:seaice}
10  \begin{rawhtml}  \begin{rawhtml}
11  <!-- CMIREDIR:package_seaice: -->  <!-- CMIREDIR:package_seaice: -->
12  \end{rawhtml}  \end{rawhtml}
13    
14    Authors: Martin Losch, Dimitris Menemenlis, An Nguyen, Jean-Michel Campin,
15    Patrick Heimbach, Chris Hill and Jinlun Zhang
16    
17    %----------------------------------------------------------------------
18    \subsubsection{Introduction
19    \label{sec:pkg:seaice:intro}}
20    
21    
22  Package ``seaice'' provides a dynamic and thermodynamic interactive  Package ``seaice'' provides a dynamic and thermodynamic interactive
23  sea-ice model.  Sea-ice model thermodynamics are based on Hibler  sea-ice model.
24  \cite{hib80}, that is, a 2-category model that simulates ice thickness  
25  and concentration.  Snow is simulated as per Zhang et al.  CPP options enable or disable different aspects of the package
26  \cite{zha98a}.  Although recent years have seen an increased use of  (Section \ref{sec:pkg:seaice:config}).
27  multi-category thickness distribution sea-ice models for climate  Run-Time options, flags, filenames and field-related dates/times are
28  studies, the Hibler 2-category ice model is still the most widely used  set in \code{data.seaice}
29  model and has resulted in realistic simulation of sea-ice variability  (Section \ref{sec:pkg:seaice:runtime}).
30  on regional and global scales.  Being less complicated, compared to  A description of key subroutines is given in Section
31  multi-category models, the 2-category model permits easier application  \ref{sec:pkg:seaice:subroutines}.
32  of adjoint model optimization methods.  Input fields, units and sign conventions are summarized in
33    Section \ref{sec:pkg:seaice:fields_units}, and available diagnostics
34  Note, however, that the Hibler 2-category model and its variants use a  output is listed in Section \ref{sec:pkg:seaice:diagnostics}.
35  so-called zero-layer thermodynamic model to estimate ice growth and  
36  decay.  The zero-layer thermodynamic model assumes that ice does not  %----------------------------------------------------------------------
37  store heat and, therefore, tends to exaggerate the seasonal  
38  variability in ice thickness.  This exaggeration can be significantly  \subsubsection{SEAICE configuration, compiling \& running}
39  reduced by using Semtner's \cite{sem76} three-layer thermodynamic  
40  model that permits heat storage in ice.  Recently, the three-layer  \paragraph{Compile-time options
41  thermodynamic model has been reformulated by Winton \cite{win00}.  The  \label{sec:pkg:seaice:config}}
42  reformulation improves model physics by representing the brine content  ~
43  of the upper ice with a variable heat capacity.  It also improves  
44  model numerics and consumes less computer time and memory.  The Winton  As with all MITgcm packages, SEAICE can be turned on or off at compile time
45  sea-ice thermodynamics have been ported to the MIT GCM; they currently  %
46  reside under pkg/thsice.  At present pkg/thsice is not fully  \begin{itemize}
47  compatible with pkg/seaice and with pkg/exf.  But the eventual  %
48  objective is to have fully compatible and interchangeable  \item
49  thermodynamic packages for sea-ice, so that it becomes possible to use  using the \code{packages.conf} file by adding \code{seaice} to it,
50  Hibler dynamics with Winton thermodyanmics.  %
51    \item
52    or using \code{genmake2} adding
53    \code{-enable=seaice} or \code{-disable=seaice} switches
54    %
55    \item
56    \textit{required packages and CPP options}: \\
57    SEAICE requires the external forcing package \code{exf} to be enabled;
58    no additional CPP options are required.
59    %
60    \end{itemize}
61    (see Section \ref{sec:buildingCode}).
62    
63    Parts of the SEAICE code can be enabled or disabled at compile time
64    via CPP preprocessor flags. These options are set in
65    \code{SEAICE\_OPTIONS.h}.
66    Table \ref{tab:pkg:seaice:cpp} summarizes the most important ones. For
67    more options see the default \code{pkg/seaice/SEAICE\_OPTIONS.h}.
68    
69    \begin{table}[!ht]
70    \centering
71      \label{tab:pkg:seaice:cpp}
72      {\footnotesize
73        \begin{tabular}{|l|p{10cm}|}
74          \hline
75          \textbf{CPP option}  &  \textbf{Description}  \\
76          \hline \hline
77            \code{SEAICE\_DEBUG} &
78              Enhance STDOUT for debugging \\
79            \code{SEAICE\_ALLOW\_DYNAMICS} &
80              sea-ice dynamics code \\
81            \code{SEAICE\_CGRID} &
82              LSR solver on C-grid (rather than original B-grid) \\
83            \code{SEAICE\_ALLOW\_EVP} &
84              enable use of EVP rheology solver \\
85            \code{SEAICE\_ALLOW\_JFNK} &
86              enable use of JFNK rheology solver \\
87            \code{SEAICE\_EXTERNAL\_FLUXES} &
88              use EXF-computed fluxes as starting point \\
89            \code{SEAICE\_ZETA\_SMOOTHREG} &
90              use differentialable regularization for viscosities \\
91            \code{SEAICE\_VARIABLE\_FREEZING\_POINT} &
92              enable linear dependence of the freezing point on salinity
93              (by default undefined)\\
94            \code{ALLOW\_SEAICE\_FLOODING} &
95              enable snow to ice conversion for submerged sea-ice \\
96            \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            \code{SEAICE\_BICE\_STRESS} &
101              B-grid only for backward compatiblity: turn on ice-stress on
102              ocean\\
103            \code{EXPLICIT\_SSH\_SLOPE} &
104              B-grid only for backward compatiblity: use ETAN for tilt
105              computations rather than geostrophic velocities \\
106          \hline
107        \end{tabular}
108      }
109      \caption{Some of the most relevant CPP preprocessor flags in the
110        \code{seaice}-package.}
111    \end{table}
112    
113    %----------------------------------------------------------------------
114    
115    \subsubsection{Run-time parameters
116    \label{sec:pkg:seaice:runtime}}
117    
118    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    
122    \paragraph{Enabling the package}
123    ~ \\
124    %
125    A package is switched on/off at run-time by setting
126    (e.g. for SEAICE) \code{useSEAICE = .TRUE.} in \code{data.pkg}.
127    
128    \paragraph{General flags and parameters}
129    ~ \\
130    %
131    Table~\ref{tab:pkg:seaice:runtimeparms} lists most run-time parameters.
132    \input{s_phys_pkgs/text/seaice-parms.tex}
133    
134    \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    
146    %----------------------------------------------------------------------
147    \subsubsection{Description
148    \label{sec:pkg:seaice:descr}}
149    
150    [TO BE CONTINUED/MODIFIED]
151    
152    % 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    improved \citep{losch10:_mitsim}:
186    \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    \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    \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    
205  The ice dynamics models that are most widely used for large-scale  The ice dynamics models that are most widely used for large-scale
206  climate studies are the viscous-plastic (VP) model \cite{hib79}, the  climate studies are the viscous-plastic (VP) model \citep{hib79}, the
207  cavitating fluid (CF) model \cite{fla92}, and the  cavitating fluid (CF) model \citep{fla92}, and the
208  elastic-viscous-plastic (EVP) model \cite{hun97}.  Compared to the VP  elastic-viscous-plastic (EVP) model \citep{hun97}.  Compared to the VP
209  model, the CF model does not allow ice shear in calculating ice  model, the CF model does not allow ice shear in calculating ice
210  motion, stress, and deformation.  EVP models approximate VP by adding  motion, stress, and deformation.  EVP models approximate VP by adding
211  an elastic term to the equations for easier adaptation to parallel  an elastic term to the equations for easier adaptation to parallel
212  computers.  Because of its higher accuracy in plastic solution and  computers.  Because of its higher accuracy in plastic solution and
213  relatively simpler formulation, compared to the EVP model, we decided  relatively simpler formulation, compared to the EVP model, we decided
214  to use the VP model as the dynamic component of our ice model.  To do  to use the VP model as the default dynamic component of our ice
215  this we extended the alternating-direction-implicit (ADI) method of  model. To do this we extended the line successive over relaxation
216  Zhang and Rothrock \cite{zha00} for use in a parallel configuration.  (LSOR) method of \citet{zhang97} for use in a parallel
217    configuration. An EVP model and a free-drift implemtation can be
218    selected with runtime flags.
219    
220    \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    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    \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    
248    \paragraph{Surface forcing\label{sec:pkg:seaice:surfaceforcing}}~\\
249    %
250  The sea ice model requires the following input fields: 10-m winds, 2-m  The sea ice model requires the following input fields: 10-m winds, 2-m
251  air temperature and specific humidity, downward longwave and shortwave  air temperature and specific humidity, downward longwave and shortwave
252  radiations, precipitation, evaporation, and river and glacier runoff.  radiations, precipitation, evaporation, and river and glacier runoff.
253  The sea ice model also requires surface temperature from the ocean  The sea ice model also requires surface temperature from the ocean
254  model and third level horizontal velocity which is used as a proxy for  model and the top level horizontal velocity.  Output fields are
255  surface geostrophic velocity.  Output fields are surface wind stress,  surface wind stress, evaporation minus precipitation minus runoff, net
256  evaporation minus precipitation minus runoff, net surface heat flux,  surface heat flux, and net shortwave flux.  The sea-ice model is
257  and net shortwave flux.  The sea-ice model is global: in ice-free  global: in ice-free regions bulk formulae are used to estimate oceanic
258  regions bulk formulae are used to estimate oceanic forcing from the  forcing from the atmospheric fields.
259  atmospheric fields.  
260    \paragraph{Dynamics\label{sec:pkg:seaice:dynamics}}~\\
261    %
262    \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                       R_{ocean}(\vek{U}_{ocean}-\vek{u}),
292    \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    \paragraph{Viscous-Plastic (VP) Rheology\label{sec:pkg:seaice:VPrheology}}~\\
300    %
301    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      P_{\max} = P^{*}c\,h\,\exp\{-C^{*}\cdot(1-c)\},
321    \label{eq:icestrength}
322    \end{equation}
323    with the constants $P^{*}$ (run-time parameter \code{SEAICE\_strength}) and
324    $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    \code{SEAICE\_EPS} with a default value of
343    $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    parameter \code{SEAICE\_zetaMin} $>0$, but this is generally not
348    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    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    
531    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    \paragraph{Elastic-Viscous-Plastic (EVP) Dynamics\label{sec:pkg:seaice:EVPdynamics}}~\\
541    %
542    \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    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    \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    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    
592    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    (default). The solver is turned on by setting the sub-cycling time
595    step \code{SEAICE\_deltaTevp} to a value larger than zero. The
596    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    $\Delta{t}$ (\code{deltaTmom}). One can also choose order(120) time
599    steps within the forcing time scale, but then we recommend adjusting
600    the damping time scale $T$ accordingly, by setting either
601    \code{SEAICE\_elasticParm} ($E_{0}$), so that
602    $E_{0}\Delta{t}=\mbox{forcing time scale}$, or directly
603    \code{SEAICE\_evpTauRelax} ($T$) to the forcing time scale.
604    
605    \paragraph{More stable variant of Elastic-Viscous-Plastic Dynamics:  EVP*\label{sec:pkg:seaice:EVPstar}}~\\
606    %
607    The genuine EVP schemes appears to give noisy solutions \citep{hun01,
608      lemieux12, bouillon13}. This has lead to a modified EVP or EVP*
609    \citep{lemieux12, bouillon13, kimmritz15}; here, refer to these
610    variants by EVP*. The main idea is to modify the ``natural''
611    time-discretization of the momentum equations:
612    \begin{equation}
613      \label{eq:evpstar}
614      m\frac{D\vec{u}}{Dt} \approx m\frac{u^{p+1}-u^{n}}{\Delta{t}}
615      + \beta^{*}\frac{u^{p+1}-u^{p}}{\Delta{t}_{\mathrm{EVP}}}
616    \end{equation}
617    where $n$ is the previous time step index, and $p$ is the previous
618    sub-cycling index. The extra ``intertial'' term
619    $m\,(u^{p+1}-u^{n})/\Delta{t})$ allows the definition of a residual
620    $|u^{p+1}-u^{p}|$ that, as $u^{p+1} \rightarrow u^{n+1}$, converges to
621    $0$. In this way EVP can be re-interpreted as a pure iterative solver
622    where the sub-cycling has no association with time-relation (through
623    $\Delta{t}_{\mathrm{EVP}}$) \citep{bouillon13, kimmritz15}. Using the
624    terminology of \citet{kimmritz15}, the evolution equations of stress
625    $\sigma_{ij}$ and momentum $\vec{u}$ can be written as:
626    \begin{align}
627      \label{eq:evpstarsigma}
628      \sigma_{ij}^{p+1}&=\sigma_{ij}^p+\frac{1}{\alpha}
629      \Big(\sigma_{ij}(\vec{u}^p)-\sigma_{ij}^p\Big),
630      \phantom{\int}\\
631      \label{eq:evpstarmom}
632      \vec{u}^{p+1}&=\vec{u}^p+\frac{1}{\beta}
633      \Big(\frac{\Delta t}{m}\nabla \cdot{\bf \sigma}^{p+1}+
634      \frac{\Delta t}{m}\vec{R}^{p}+\vec{u}_n-\vec{u}^p\Big).
635    \end{align}
636    $\vec{R}$ contains all terms in the momentum equations except for the
637    rheology terms and the time derivative; $\alpha$ and $\beta$ are free
638    parameters (\code{SEAICE\_evpAlpha}, \code{SEAICE\_evpBeta}) that
639    replace the time stepping parameters \code{SEAICE\_deltaTevp}
640    ($\Delta{T}_{\mathrm{EVP}}$), \code{SEAICE\_elasticParm} ($E_{0}$), or
641    \code{SEAICE\_evpTauRelax} ($T$). $\alpha$ and $\beta$ determine the
642    speed of convergence and the stability. Usually, it makes sense to use
643    $\alpha = \beta$, and \code{SEAICEnEVPstarSteps} $\gg
644    (\alpha,\,\beta)$ \citep{kimmritz15}. Currently, there is no
645    termination criterion and the number of EVP* iterations is fixed to
646    \code{SEAICEnEVPstarSteps}.
647    
648    In order to use EVP* in the MITgcm, set \code{SEAICEuseEVPstar =
649      .TRUE.,} in \code{data.seaice}. If \code{SEAICEuseEVPrev =.TRUE.,}
650    the actual form of equations (\ref{eq:evpstarsigma}) and
651    (\ref{eq:evpstarmom}) is used with fewer implicit terms and the factor
652    of $e^{2}$ dropped in the stress equations (\ref{eq:evpstresstensor2})
653    and (\ref{eq:evpstresstensor12}). Although this modifies the original
654    EVP-equations, it turns out to improve convergence \citep{bouillon13}.
655    
656    Note, that for historical reasons, \code{SEAICE\_deltaTevp} needs to
657    be set to some (any!) value in order to use also EVP*; this behavoir
658    many change in the future. Also note, that
659    probably because of the C-grid staggering of velocities and stresses,
660    EVP* does not converge as successfully as in \citet{kimmritz15}.
661    
662    \paragraph{Truncated ellipse method (TEM) for yield curve \label{sec:pkg:seaice:TEM}}~\\
663    %
664    In the so-called truncated ellipse method the shear viscosity $\eta$
665    is capped to suppress any tensile stress \citep{hibler97, geiger98}:
666    \begin{equation}
667      \label{eq:etatem}
668      \eta = \min\left(\frac{\zeta}{e^2},
669      \frac{\frac{P}{2}-\zeta(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})}
670      {\sqrt{\max(\Delta_{\min}^{2},(\dot{\epsilon}_{11}-\dot{\epsilon}_{22})^2
671          +4\dot{\epsilon}_{12}^2})}\right).
672    \end{equation}
673    To enable this method, set \code{\#define SEAICE\_ALLOW\_TEM} in
674    \code{SEAICE\_OPTIONS.h} and turn it on with
675    \code{SEAICEuseTEM} in \code{data.seaice}.
676    
677    \paragraph{Ice-Ocean stress \label{sec:pkg:seaice:iceoceanstress}}~\\
678    %
679    Moving sea ice exerts a stress on the ocean which is the opposite of
680    the stress $\vtau_{ocean}$ in Eq.~\ref{eq:momseaice}. This stess is
681    applied directly to the surface layer of the ocean model. An
682    alternative ocean stress formulation is given by \citet{hibler87}.
683    Rather than applying $\vtau_{ocean}$ directly, the stress is derived
684    from integrating over the ice thickness to the bottom of the oceanic
685    surface layer. In the resulting equation for the \emph{combined}
686    ocean-ice momentum, the interfacial stress cancels and the total
687    stress appears as the sum of windstress and divergence of internal ice
688    stresses: $\delta(z) (\vtau_{air} + \vek{F})/\rho_0$, \citep[see also
689    Eq.\,2 of][]{hibler87}. The disadvantage of this formulation is that
690    now the velocity in the surface layer of the ocean that is used to
691    advect tracers, is really an average over the ocean surface
692    velocity and the ice velocity leading to an inconsistency as the ice
693    temperature and salinity are different from the oceanic variables.
694    To turn on the stress formulation of \citet{hibler87}, set
695    \code{useHB87StressCoupling=.TRUE.} in \code{data.seaice}.
696    
697    
698    % Our discretization differs from \citet{zhang97, zhang03} in the
699    % underlying grid, namely the Arakawa C-grid, but is otherwise
700    % straightforward. The EVP model, in particular, is discretized
701    % naturally on the C-grid with $\sigma_{1}$ and $\sigma_{2}$ on the
702    % center points and $\sigma_{12}$ on the corner (or vorticity) points of
703    % the grid. With this choice all derivatives are discretized as central
704    % differences and averaging is only involved in computing $\Delta$ and
705    % $P$ at vorticity points.
706    
707    \paragraph{Finite-volume discretization of the stress tensor
708      divergence\label{sec:pkg:seaice:discretization}}~\\
709    %
710    On an Arakawa C~grid, ice thickness and concentration and thus ice
711    strength $P$ and bulk and shear viscosities $\zeta$ and $\eta$ are
712    naturally defined a C-points in the center of the grid
713    cell. Discretization requires only averaging of $\zeta$ and $\eta$ to
714    vorticity or Z-points (or $\zeta$-points, but here we use Z in order
715    avoid confusion with the bulk viscosity) at the bottom left corner of
716    the cell to give $\overline{\zeta}^{Z}$ and $\overline{\eta}^{Z}$. In
717    the following, the superscripts indicate location at Z or C points,
718    distance across the cell (F), along the cell edge (G), between
719    $u$-points (U), $v$-points (V), and C-points (C). The control volumes
720    of the $u$- and $v$-equations in the grid cell at indices $(i,j)$ are
721    $A_{i,j}^{w}$ and $A_{i,j}^{s}$, respectively. With these definitions
722    (which follow the model code documentation except that $\zeta$-points
723    have been renamed to Z-points), the strain rates are discretized as:
724    \begin{align}
725      \dot{\epsilon}_{11} &= \partial_{1}{u}_{1} + k_{2}u_{2} \\ \notag
726      => (\epsilon_{11})_{i,j}^C &= \frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}}
727       + k_{2,i,j}^{C}\frac{v_{i,j+1}+v_{i,j}}{2} \\
728      \dot{\epsilon}_{22} &= \partial_{2}{u}_{2} + k_{1}u_{1} \\\notag
729      => (\epsilon_{22})_{i,j}^C &= \frac{v_{i,j+1}-v_{i,j}}{\Delta{y}_{i,j}^{F}}
730       + k_{1,i,j}^{C}\frac{u_{i+1,j}+u_{i,j}}{2} \\
731       \dot{\epsilon}_{12} = \dot{\epsilon}_{21} &= \frac{1}{2}\biggl(
732       \partial_{1}{u}_{2} + \partial_{2}{u}_{1} - k_{1}u_{2} - k_{2}u_{1}
733       \biggr) \\ \notag
734      => (\epsilon_{12})_{i,j}^Z &= \frac{1}{2}
735      \biggl( \frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^V}
736       + \frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^U} \\\notag
737      &\phantom{=\frac{1}{2}\biggl(}
738       - k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2}
739       - k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2}
740       \biggr),
741    \end{align}
742    so that the diagonal terms of the strain rate tensor are naturally
743    defined at C-points and the symmetric off-diagonal term at
744    Z-points. No-slip boundary conditions ($u_{i,j-1}+u_{i,j}=0$ and
745    $v_{i-1,j}+v_{i,j}=0$ across boundaries) are implemented via
746    ``ghost-points''; for free slip boundary conditions
747    $(\epsilon_{12})^Z=0$ on boundaries.
748    
749    For a spherical polar grid, the coefficients of the metric terms are
750    $k_{1}=0$ and $k_{2}=-\tan\phi/a$, with the spherical radius $a$ and
751    the latitude $\phi$; $\Delta{x}_1 = \Delta{x} = a\cos\phi
752    \Delta\lambda$, and $\Delta{x}_2 = \Delta{y}=a\Delta\phi$. For a
753    general orthogonal curvilinear grid, $k_{1}$ and
754    $k_{2}$ can be approximated by finite differences of the cell widths:
755    \begin{align}
756      k_{1,i,j}^{C} &= \frac{1}{\Delta{y}_{i,j}^{F}}
757      \frac{\Delta{y}_{i+1,j}^{G}-\Delta{y}_{i,j}^{G}}{\Delta{x}_{i,j}^{F}} \\
758      k_{2,i,j}^{C} &= \frac{1}{\Delta{x}_{i,j}^{F}}
759      \frac{\Delta{x}_{i,j+1}^{G}-\Delta{x}_{i,j}^{G}}{\Delta{y}_{i,j}^{F}} \\
760      k_{1,i,j}^{Z} &= \frac{1}{\Delta{y}_{i,j}^{U}}
761      \frac{\Delta{y}_{i,j}^{C}-\Delta{y}_{i-1,j}^{C}}{\Delta{x}_{i,j}^{V}} \\
762      k_{2,i,j}^{Z} &= \frac{1}{\Delta{x}_{i,j}^{V}}
763      \frac{\Delta{x}_{i,j}^{C}-\Delta{x}_{i,j-1}^{C}}{\Delta{y}_{i,j}^{U}}
764    \end{align}
765    
766    The stress tensor is given by the constitutive viscous-plastic
767    relation $\sigma_{\alpha\beta} = 2\eta\dot{\epsilon}_{\alpha\beta} +
768    [(\zeta-\eta)\dot{\epsilon}_{\gamma\gamma} - P/2
769    ]\delta_{\alpha\beta}$ \citep{hib79}. The stress tensor divergence
770    $(\nabla\sigma)_{\alpha} = \partial_\beta\sigma_{\beta\alpha}$, is
771    discretized in finite volumes \citep[see
772    also][]{losch10:_mitsim}. This conveniently avoids dealing with
773    further metric terms, as these are ``hidden'' in the differential cell
774    widths. For the $u$-equation ($\alpha=1$) we have:
775    \begin{align}
776      (\nabla\sigma)_{1}: \phantom{=}&
777      \frac{1}{A_{i,j}^w}
778      \int_{\mathrm{cell}}(\partial_1\sigma_{11}+\partial_2\sigma_{21})\,dx_1\,dx_2
779      \\\notag
780      =& \frac{1}{A_{i,j}^w} \biggl\{
781      \int_{x_2}^{x_2+\Delta{x}_2}\sigma_{11}dx_2\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}}
782      + \int_{x_1}^{x_1+\Delta{x}_1}\sigma_{21}dx_1\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}}
783      \biggr\} \\ \notag
784      \approx& \frac{1}{A_{i,j}^w} \biggl\{
785      \Delta{x}_2\sigma_{11}\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}}
786      + \Delta{x}_1\sigma_{21}\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}}
787      \biggr\} \\ \notag
788      =& \frac{1}{A_{i,j}^w} \biggl\{
789      (\Delta{x}_2\sigma_{11})_{i,j}^C -
790      (\Delta{x}_2\sigma_{11})_{i-1,j}^C
791      \\\notag
792      \phantom{=}& \phantom{\frac{1}{A_{i,j}^w} \biggl\{}
793      + (\Delta{x}_1\sigma_{21})_{i,j+1}^Z - (\Delta{x}_1\sigma_{21})_{i,j}^Z
794      \biggr\}
795    \end{align}
796    with
797    \begin{align}
798      (\Delta{x}_2\sigma_{11})_{i,j}^C =& \phantom{+}
799      \Delta{y}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j}
800      \frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}} \\ \notag
801      &+ \Delta{y}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j}
802      k_{2,i,j}^C \frac{v_{i,j+1}+v_{i,j}}{2} \\ \notag
803      \phantom{=}& + \Delta{y}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j}
804      \frac{v_{i,j+1}-v_{i,j}}{\Delta{y}_{i,j}^{F}} \\ \notag
805      \phantom{=}& + \Delta{y}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j}
806      k_{1,i,j}^{C}\frac{u_{i+1,j}+u_{i,j}}{2} \\ \notag
807      \phantom{=}& - \Delta{y}_{i,j}^{F} \frac{P}{2} \\
808      (\Delta{x}_1\sigma_{21})_{i,j}^Z =& \phantom{+}
809      \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j}
810      \frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^{U}} \\ \notag
811      & + \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j}
812      \frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^{V}} \\ \notag
813      & - \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j}
814      k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2} \\ \notag
815      & - \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j}
816      k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2}
817    \end{align}
818    
819    Similarly, we have for the $v$-equation ($\alpha=2$):
820    \begin{align}
821      (\nabla\sigma)_{2}: \phantom{=}&
822      \frac{1}{A_{i,j}^s}
823      \int_{\mathrm{cell}}(\partial_1\sigma_{12}+\partial_2\sigma_{22})\,dx_1\,dx_2
824      \\\notag
825      =& \frac{1}{A_{i,j}^s} \biggl\{
826      \int_{x_2}^{x_2+\Delta{x}_2}\sigma_{12}dx_2\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}}
827      + \int_{x_1}^{x_1+\Delta{x}_1}\sigma_{22}dx_1\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}}
828      \biggr\} \\ \notag
829      \approx& \frac{1}{A_{i,j}^s} \biggl\{
830      \Delta{x}_2\sigma_{12}\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}}
831      + \Delta{x}_1\sigma_{22}\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}}
832      \biggr\} \\ \notag
833      =& \frac{1}{A_{i,j}^s} \biggl\{
834      (\Delta{x}_2\sigma_{12})_{i+1,j}^Z - (\Delta{x}_2\sigma_{12})_{i,j}^Z
835      \\ \notag
836      \phantom{=}& \phantom{\frac{1}{A_{i,j}^s} \biggl\{}
837      + (\Delta{x}_1\sigma_{22})_{i,j}^C - (\Delta{x}_1\sigma_{22})_{i,j-1}^C
838      \biggr\}
839    \end{align}
840    with
841    \begin{align}
842      (\Delta{x}_1\sigma_{12})_{i,j}^Z =& \phantom{+}
843      \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j}
844      \frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^{U}}
845      \\\notag &
846      + \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j}
847      \frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^{V}} \\\notag
848      &- \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j}
849      k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2}
850      \\\notag &
851      - \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j}
852      k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2} \\ \notag
853      (\Delta{x}_2\sigma_{22})_{i,j}^C =& \phantom{+}
854      \Delta{x}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j}
855      \frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}} \\ \notag
856      &+ \Delta{x}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j}
857      k_{2,i,j}^{C} \frac{v_{i,j+1}+v_{i,j}}{2} \\ \notag
858      & + \Delta{x}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j}
859      \frac{v_{i,j+1}-v_{i,j}}{\Delta{y}_{i,j}^{F}} \\ \notag
860      & + \Delta{x}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j}
861      k_{1,i,j}^{C}\frac{u_{i+1,j}+u_{i,j}}{2} \\ \notag
862      & -\Delta{x}_{i,j}^{F} \frac{P}{2}
863    \end{align}
864    
865    Again, no slip boundary conditions are realized via ghost points and
866    $u_{i,j-1}+u_{i,j}=0$ and $v_{i-1,j}+v_{i,j}=0$ across boundaries. For
867    free slip boundary conditions the lateral stress is set to zeros. In
868    analogy to $(\epsilon_{12})^Z=0$ on boundaries, we set
869    $\sigma_{21}^{Z}=0$, or equivalently $\eta_{i,j}^{Z}=0$, on boundaries.
870    
871    \paragraph{Thermodynamics\label{sec:pkg:seaice:thermodynamics}}~\\
872    %
873    \noindent\textbf{NOTE: THIS SECTION IS TERRIBLY OUT OF DATE}\\
874    In its original formulation the sea ice model \citep{menemenlis05}
875    uses simple thermodynamics following the appendix of
876    \citet{sem76}. This formulation does not allow storage of heat,
877    that is, the heat capacity of ice is zero. Upward conductive heat flux
878    is parameterized assuming a linear temperature profile and together
879    with a constant ice conductivity. It is expressed as
880    $(K/h)(T_{w}-T_{0})$, where $K$ is the ice conductivity, $h$ the ice
881    thickness, and $T_{w}-T_{0}$ the difference between water and ice
882    surface temperatures. This type of model is often refered to as a
883    ``zero-layer'' model. The surface heat flux is computed in a similar
884    way to that of \citet{parkinson79} and \citet{manabe79}.
885    
886    The conductive heat flux depends strongly on the ice thickness $h$.
887    However, the ice thickness in the model represents a mean over a
888    potentially very heterogeneous thickness distribution.  In order to
889    parameterize a sub-grid scale distribution for heat flux computations,
890    the mean ice thickness $h$ is split into $N$ thickness categories
891    $H_{n}$ that are equally distributed between $2h$ and a minimum
892    imposed ice thickness of $5\text{\,cm}$ by $H_n= \frac{2n-1}{7}\,h$
893    for $n\in[1,N]$. The heat fluxes computed for each thickness category
894    is area-averaged to give the total heat flux \citep{hibler84}. To use
895    this thickness category parameterization set \code{SEAICE\_multDim} to
896    the number of desired categories (7 is a good guess, for anything
897    larger than 7 modify \code{SEAICE\_SIZE.h}) in
898    \code{data.seaice}; note that this requires different restart files
899    and switching this flag on in the middle of an integration is not
900    advised. In order to include the same distribution for snow, set
901    \code{SEAICE\_useMultDimSnow = .TRUE.}; only then, the
902    parameterization of always having a fraction of thin ice is efficient
903    and generally thicker ice is produced \citep{castro-morales14}.
904    
905    
906    The atmospheric heat flux is balanced by an oceanic heat flux from
907    below.  The oceanic flux is proportional to
908    $\rho\,c_{p}\left(T_{w}-T_{fr}\right)$ where $\rho$ and $c_{p}$ are
909    the density and heat capacity of sea water and $T_{fr}$ is the local
910    freezing point temperature that is a function of salinity. This flux
911    is not assumed to instantaneously melt or create ice, but a time scale
912    of three days (run-time parameter \code{SEAICE\_gamma\_t}) is used
913    to relax $T_{w}$ to the freezing point.
914    %
915    The parameterization of lateral and vertical growth of sea ice follows
916    that of \citet{hib79, hib80}; the so-called lead closing parameter
917    $h_{0}$ (run-time parameter \code{HO}) has a default value of
918    0.5~meters.
919    
920    On top of the ice there is a layer of snow that modifies the heat flux
921    and the albedo \citep{zha98a}. Snow modifies the effective
922    conductivity according to
923    \[\frac{K}{h} \rightarrow \frac{1}{\frac{h_{s}}{K_{s}}+\frac{h}{K}},\]
924    where $K_s$ is the conductivity of snow and $h_s$ the snow thickness.
925    If enough snow accumulates so that its weight submerges the ice and
926    the snow is flooded, a simple mass conserving parameterization of
927    snowice formation (a flood-freeze algorithm following Archimedes'
928    principle) turns snow into ice until the ice surface is back at $z=0$
929    \citep{leppaeranta83}. The flood-freeze algorithm is enabled with the CPP-flag
930    \code{SEAICE\_ALLOW\_FLOODING} and turned on with run-time parameter
931    \code{SEAICEuseFlooding=.true.}.
932    
933    \paragraph{Advection of thermodynamic variables\label{sec:pkg:seaice:advection}}~\\
934    %
935    Effective ice thickness (ice volume per unit area,
936    $c\cdot{h}$), concentration $c$ and effective snow thickness
937    ($c\cdot{h}_{s}$) are advected by ice velocities:
938    \begin{equation}
939      \label{eq:advection}
940      \frac{\partial{X}}{\partial{t}} = - \nabla\cdot\left(\vek{u}\,X\right) +
941      \Gamma_{X} + D_{X}
942    \end{equation}
943    where $\Gamma_X$ are the thermodynamic source terms and $D_{X}$ the
944    diffusive terms for quantities $X=(c\cdot{h}), c, (c\cdot{h}_{s})$.
945    %
946    From the various advection scheme that are available in the MITgcm, we
947    recommend flux-limited schemes \citep[multidimensional 2nd and
948    3rd-order advection scheme with flux limiter][]{roe:85, hundsdorfer94}
949    to preserve sharp gradients and edges that are typical of sea ice
950    distributions and to rule out unphysical over- and undershoots
951    (negative thickness or concentration). These schemes conserve volume
952    and horizontal area and are unconditionally stable, so that we can set
953    $D_{X}=0$. Run-timeflags: \code{SEAICEadvScheme} (default=2, is the
954    historic 2nd-order, centered difference scheme), \code{DIFF1} =
955    $D_{X}/\Delta{x}$
956    (default=0.004).
957    
958    The MITgcm sea ice model provides the option to use
959    the thermodynamics model of \citet{win00}, which in turn is based on
960    the 3-layer model of \citet{sem76} and which treats brine content by
961    means of enthalpy conservation; the corresponding package
962    \code{thsice} is described in section~\ref{sec:pkg:thsice}. This
963    scheme requires additional state variables, namely the enthalpy of the
964    two ice layers (instead of effective ice salinity), to be advected by
965    ice velocities.
966    %
967    The internal sea ice temperature is inferred from ice enthalpy.  To
968    avoid unphysical (negative) values for ice thickness and
969    concentration, a positive 2nd-order advection scheme with a SuperBee
970    flux limiter \citep{roe:85} should be used to advect all
971    sea-ice-related quantities of the \citet{win00} thermodynamic model
972    (runtime flag \code{thSIceAdvScheme=77} and
973    \code{thSIce\_diffK}=$D_{X}$=0 in \code{data.ice}, defaults are 0).  Because of the
974    non-linearity of the advection scheme, care must be taken in advecting
975    these quantities: when simply using ice velocity to advect enthalpy,
976    the total energy (i.e., the volume integral of enthalpy) is not
977    conserved. Alternatively, one can advect the energy content (i.e.,
978    product of ice-volume and enthalpy) but then false enthalpy extrema
979    can occur, which then leads to unrealistic ice temperature.  In the
980    currently implemented solution, the sea-ice mass flux is used to
981    advect the enthalpy in order to ensure conservation of enthalpy and to
982    prevent false enthalpy extrema. %
983    
984    %----------------------------------------------------------------------
985    
986    \subsubsection{Key subroutines
987    \label{sec:pkg:seaice:subroutines}}
988    
989    Top-level routine: \code{seaice\_model.F}
990    
991    {\footnotesize
992    \begin{verbatim}
993    
994    C     !CALLING SEQUENCE:
995    c ...
996    c  seaice_model (TOP LEVEL ROUTINE)
997    c  |
998    c  |-- #ifdef SEAICE_CGRID
999    c  |     SEAICE_DYNSOLVER
1000    c  |     |
1001    c  |     |-- < compute proxy for geostrophic velocity >
1002    c  |     |
1003    c  |     |-- < set up mass per unit area and Coriolis terms >
1004    c  |     |
1005    c  |     |-- < dynamic masking of areas with no ice >
1006    c  |     |
1007    c  |     |
1008    
1009    c  |   #ELSE
1010    c  |     DYNSOLVER
1011    c  |   #ENDIF
1012    c  |
1013    c  |-- if ( useOBCS )
1014    c  |     OBCS_APPLY_UVICE
1015    c  |
1016    c  |-- if ( SEAICEadvHeff .OR. SEAICEadvArea .OR. SEAICEadvSnow .OR. SEAICEadvSalt )
1017    c  |     SEAICE_ADVDIFF
1018    c  |
1019    c  |-- if ( usePW79thermodynamics )
1020    c  |     SEAICE_GROWTH
1021    c  |
1022    c  |-- if ( useOBCS )
1023    c  |     if ( SEAICEadvHeff ) OBCS_APPLY_HEFF
1024    c  |     if ( SEAICEadvArea ) OBCS_APPLY_AREA
1025    c  |     if ( SEAICEadvSALT ) OBCS_APPLY_HSALT
1026    c  |     if ( SEAICEadvSNOW ) OBCS_APPLY_HSNOW
1027    c  |
1028    c  |-- < do various exchanges >
1029    c  |
1030    c  |-- < do additional diagnostics >
1031    c  |
1032    c  o
1033    
1034    \end{verbatim}
1035    }
1036    
1037    
1038    %----------------------------------------------------------------------
1039    
1040    \subsubsection{SEAICE diagnostics
1041    \label{sec:pkg:seaice:diagnostics}}
1042    
1043    Diagnostics output is available via the diagnostics package
1044    (see Section \ref{sec:pkg:diagnostics}).
1045    Available output fields are summarized in
1046    Table \ref{tab:pkg:seaice:diagnostics}.
1047    
1048    \input{s_phys_pkgs/text/seaice_diags.tex}
1049    
1050    %\subsubsection{Package Reference}
1051    
1052    \subsubsection{Experiments and tutorials that use seaice}
1053    \label{sec:pkg:seaice:experiments}
1054    
1055    \begin{itemize}
1056    \item{Labrador Sea experiment in \code{lab\_sea} verification directory. }
1057    \item \code{seaice\_obcs}, based on \code{lab\_sea}
1058    \item \code{offline\_exf\_seaice/input.seaicetd}, based on \code{lab\_sea}
1059    \item \code{global\_ocean.cs32x15/input.icedyn} and
1060      \code{global\_ocean.cs32x15/input.seaice}, global
1061      cubed-sphere-experiment with combinations of \code{seaice} and
1062      \code{thsice}
1063    \end{itemize}
1064    
 %\subsection{Package Reference}  
1065    
1066    %%% Local Variables:
1067    %%% mode: latex
1068    %%% TeX-master: "../../manual"
1069    %%% End:

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.24

  ViewVC Help
Powered by ViewVC 1.1.22