1 |
% $Header: /u/gcmpack/manual/s_phys_pkgs/text/seaice.tex,v 1.19 2011/12/14 11:22:42 mlosch Exp $ |
2 |
% $Name: $ |
3 |
|
4 |
%%EH3 Copied from "MITgcm/pkg/seaice/seaice_description.tex" |
5 |
%%EH3 which was written by Dimitris M. |
6 |
|
7 |
|
8 |
\subsection{SEAICE Package} |
9 |
\label{sec:pkg:seaice} |
10 |
\begin{rawhtml} |
11 |
<!-- CMIREDIR:package_seaice: --> |
12 |
\end{rawhtml} |
13 |
|
14 |
Authors: Martin Losch, Dimitris Menemenlis, An Nguyen, Jean-Michel Campin, |
15 |
Patrick Heimbach, Chris Hill and Jinlun Zhang |
16 |
|
17 |
%---------------------------------------------------------------------- |
18 |
\subsubsection{Introduction |
19 |
\label{sec:pkg:seaice:intro}} |
20 |
|
21 |
|
22 |
Package ``seaice'' provides a dynamic and thermodynamic interactive |
23 |
sea-ice model. |
24 |
|
25 |
CPP options enable or disable different aspects of the package |
26 |
(Section \ref{sec:pkg:seaice:config}). |
27 |
Run-Time options, flags, filenames and field-related dates/times are |
28 |
set in \code{data.seaice} |
29 |
(Section \ref{sec:pkg:seaice:runtime}). |
30 |
A description of key subroutines is given in Section |
31 |
\ref{sec:pkg:seaice:subroutines}. |
32 |
Input fields, units and sign conventions are summarized in |
33 |
Section \ref{sec:pkg:seaice:fields_units}, and available diagnostics |
34 |
output is listed in Section \ref{sec:pkg:seaice:diagnostics}. |
35 |
|
36 |
%---------------------------------------------------------------------- |
37 |
|
38 |
\subsubsection{SEAICE configuration, compiling \& running} |
39 |
|
40 |
\paragraph{Compile-time options |
41 |
\label{sec:pkg:seaice:config}} |
42 |
~ |
43 |
|
44 |
As with all MITgcm packages, SEAICE can be turned on or off at compile time |
45 |
% |
46 |
\begin{itemize} |
47 |
% |
48 |
\item |
49 |
using the \code{packages.conf} file by adding \code{seaice} to it, |
50 |
% |
51 |
\item |
52 |
or using \code{genmake2} adding |
53 |
\code{-enable=seaice} or \code{-disable=seaice} switches |
54 |
% |
55 |
\item |
56 |
\textit{required packages and CPP options}: \\ |
57 |
SEAICE requires the external forcing package \code{exf} to be enabled; |
58 |
no additional CPP options are required. |
59 |
% |
60 |
\end{itemize} |
61 |
(see Section \ref{sec:buildingCode}). |
62 |
|
63 |
Parts of the SEAICE code can be enabled or disabled at compile time |
64 |
via CPP preprocessor flags. These options are set in |
65 |
\code{SEAICE\_OPTIONS.h}. |
66 |
Table \ref{tab:pkg:seaice:cpp} summarizes the most important ones. |
67 |
|
68 |
\begin{table}[!ht] |
69 |
\centering |
70 |
\label{tab:pkg:seaice:cpp} |
71 |
{\footnotesize |
72 |
\begin{tabular}{|l|p{10cm}|} |
73 |
\hline |
74 |
\textbf{CPP option} & \textbf{Description} \\ |
75 |
\hline \hline |
76 |
\code{SEAICE\_DEBUG} & |
77 |
Enhance STDOUT for debugging \\ |
78 |
\code{SEAICE\_ALLOW\_DYNAMICS} & |
79 |
sea-ice dynamics code \\ |
80 |
\code{SEAICE\_CGRID} & |
81 |
LSR solver on C-grid (rather than original B-grid) \\ |
82 |
\code{SEAICE\_ALLOW\_EVP} & |
83 |
enable use of EVP rheology solver \\ |
84 |
\code{SEAICE\_ALLOW\_JFNK} & |
85 |
enable use of JFNK rheology solver \\ |
86 |
\code{SEAICE\_EXTERNAL\_FLUXES} & |
87 |
use EXF-computed fluxes as starting point \\ |
88 |
\code{SEAICE\_ZETA\_SMOOTHREG} & |
89 |
use differentialable regularization for viscosities \\ |
90 |
\code{SEAICE\_VARIABLE\_FREEZING\_POINT} & |
91 |
enable linear dependence of the freezing point on salinity |
92 |
(by default undefined)\\ |
93 |
\code{ALLOW\_SEAICE\_FLOODING} & |
94 |
enable snow to ice conversion for submerged sea-ice \\ |
95 |
\code{SEAICE\_VARIABLE\_SALINITY} & |
96 |
enable sea-ice with variable salinity (by default undefined) \\ |
97 |
\code{SEAICE\_SITRACER} & |
98 |
enable sea-ice tracer package (by default undefined) \\ |
99 |
\code{SEAICE\_BICE\_STRESS} & |
100 |
B-grid only for backward compatiblity: turn on ice-stress on |
101 |
ocean\\ |
102 |
\code{EXPLICIT\_SSH\_SLOPE} & |
103 |
B-grid only for backward compatiblity: use ETAN for tilt |
104 |
computations rather than geostrophic velocities \\ |
105 |
\hline |
106 |
\end{tabular} |
107 |
} |
108 |
\caption{Some of the most relevant CPP preprocessor flags in the |
109 |
\code{seaice}-package.} |
110 |
\end{table} |
111 |
|
112 |
%---------------------------------------------------------------------- |
113 |
|
114 |
\subsubsection{Run-time parameters |
115 |
\label{sec:pkg:seaice:runtime}} |
116 |
|
117 |
Run-time parameters (see Table~\ref{tab:pkg:seaice:runtimeparms}) are set |
118 |
in files \code{data.pkg} (read in \code{packages\_readparms.F}), and |
119 |
\code{data.seaice} (read in \code{seaice\_readparms.F}). |
120 |
|
121 |
\paragraph{Enabling the package} |
122 |
~ \\ |
123 |
% |
124 |
A package is switched on/off at run-time by setting |
125 |
(e.g. for SEAICE) \code{useSEAICE = .TRUE.} in \code{data.pkg}. |
126 |
|
127 |
\paragraph{General flags and parameters} |
128 |
~ \\ |
129 |
% |
130 |
Table~\ref{tab:pkg:seaice:runtimeparms} lists most run-time parameters. |
131 |
\input{s_phys_pkgs/text/seaice-parms.tex} |
132 |
|
133 |
\paragraph{Input fields and units\label{sec:pkg:seaice:fields_units}} |
134 |
\begin{description} |
135 |
\item[\code{HeffFile}:] Initial sea ice thickness averaged over grid cell |
136 |
in meters; initializes variable \code{HEFF}; |
137 |
\item[\code{AreaFile}:] Initial fractional sea ice cover, range $[0,1]$; |
138 |
initializes variable \code{AREA}; |
139 |
\item[\code{HsnowFile}:] Initial snow thickness on sea ice averaged |
140 |
over grid cell in meters; initializes variable \code{HSNOW}; |
141 |
\item[\code{HsaltFile}:] Initial salinity of sea ice averaged over grid |
142 |
cell in g/m$^2$; initializes variable \code{HSALT}; |
143 |
\end{description} |
144 |
|
145 |
%---------------------------------------------------------------------- |
146 |
\subsubsection{Description |
147 |
\label{sec:pkg:seaice:descr}} |
148 |
|
149 |
[TO BE CONTINUED/MODIFIED] |
150 |
|
151 |
% Sea-ice model thermodynamics are based on Hibler |
152 |
% \cite{hib80}, that is, a 2-category model that simulates ice thickness |
153 |
% and concentration. Snow is simulated as per Zhang et al. |
154 |
% \cite{zha98a}. Although recent years have seen an increased use of |
155 |
% multi-category thickness distribution sea-ice models for climate |
156 |
% studies, the Hibler 2-category ice model is still the most widely used |
157 |
% model and has resulted in realistic simulation of sea-ice variability |
158 |
% on regional and global scales. Being less complicated, compared to |
159 |
% multi-category models, the 2-category model permits easier application |
160 |
% of adjoint model optimization methods. |
161 |
|
162 |
% Note, however, that the Hibler 2-category model and its variants use a |
163 |
% so-called zero-layer thermodynamic model to estimate ice growth and |
164 |
% decay. The zero-layer thermodynamic model assumes that ice does not |
165 |
% store heat and, therefore, tends to exaggerate the seasonal |
166 |
% variability in ice thickness. This exaggeration can be significantly |
167 |
% reduced by using Semtner's \cite{sem76} three-layer thermodynamic |
168 |
% model that permits heat storage in ice. Recently, the three-layer |
169 |
% thermodynamic model has been reformulated by Winton \cite{win00}. The |
170 |
% reformulation improves model physics by representing the brine content |
171 |
% of the upper ice with a variable heat capacity. It also improves |
172 |
% model numerics and consumes less computer time and memory. The Winton |
173 |
% sea-ice thermodynamics have been ported to the MIT GCM; they currently |
174 |
% reside under pkg/thsice. The package pkg/thsice is fully |
175 |
% compatible with pkg/seaice and with pkg/exf. When turned on togeter |
176 |
% with pkg/seaice, the zero-layer thermodynamics are replaced by the by |
177 |
% Winton thermodynamics |
178 |
|
179 |
The MITgcm sea ice model (MITgcm/sim) is based on a variant of the |
180 |
viscous-plastic (VP) dynamic-thermodynamic sea ice model \citep{zhang97} |
181 |
first introduced by \citet{hib79, hib80}. In order to adapt this model |
182 |
to the requirements of coupled ice-ocean state estimation, many |
183 |
important aspects of the original code have been modified and |
184 |
improved: |
185 |
\begin{itemize} |
186 |
\item the code has been rewritten for an Arakawa C-grid, both B- and |
187 |
C-grid variants are available; the C-grid code allows for no-slip |
188 |
and free-slip lateral boundary conditions; |
189 |
\item three different solution methods for solving the nonlinear |
190 |
momentum equations have been adopted: LSOR \citep{zhang97}, EVP |
191 |
\citep{hun97}, JFNK \citep{lemieux10,losch14:_jfnk}; |
192 |
\item ice-ocean stress can be formulated as in \citet{hibler87} or as in |
193 |
\citet{cam08}; |
194 |
\item ice variables are advected by sophisticated, conservative |
195 |
advection schemes with flux limiting; |
196 |
\item growth and melt parameterizations have been refined and extended |
197 |
in order to allow for more stable automatic differentiation of the code. |
198 |
\end{itemize} |
199 |
The sea ice model is tightly coupled to the ocean compontent of the |
200 |
MITgcm. Heat, fresh water fluxes and surface stresses are computed |
201 |
from the atmospheric state and -- by default -- modified by the ice |
202 |
model at every time step. |
203 |
|
204 |
The ice dynamics models that are most widely used for large-scale |
205 |
climate studies are the viscous-plastic (VP) model \citep{hib79}, the |
206 |
cavitating fluid (CF) model \citep{fla92}, and the |
207 |
elastic-viscous-plastic (EVP) model \citep{hun97}. Compared to the VP |
208 |
model, the CF model does not allow ice shear in calculating ice |
209 |
motion, stress, and deformation. EVP models approximate VP by adding |
210 |
an elastic term to the equations for easier adaptation to parallel |
211 |
computers. Because of its higher accuracy in plastic solution and |
212 |
relatively simpler formulation, compared to the EVP model, we decided |
213 |
to use the VP model as the default dynamic component of our ice |
214 |
model. To do this we extended the line successive over relaxation |
215 |
(LSOR) method of \citet{zhang97} for use in a parallel |
216 |
configuration. An EVP model and a free-drift implemtation can be |
217 |
selected with runtime flags. |
218 |
|
219 |
\paragraph{Compatibility with ice-thermodynamics package \code{thsice}\label{sec:pkg:seaice:thsice}}~\\ |
220 |
% |
221 |
Note, that by default the \code{seaice}-package includes the orginial |
222 |
so-called zero-layer thermodynamics following \citet{hib80} with a |
223 |
snow cover as in \citet{zha98a}. The zero-layer thermodynamic model |
224 |
assumes that ice does not store heat and, therefore, tends to |
225 |
exaggerate the seasonal variability in ice thickness. This |
226 |
exaggeration can be significantly reduced by using |
227 |
\citeauthor{sem76}'s~[\citeyear{sem76}] three-layer thermodynamic |
228 |
model that permits heat storage in ice. Recently, the three-layer thermodynamic model has been reformulated by |
229 |
\citet{win00}. The reformulation improves model physics by |
230 |
representing the brine content of the upper ice with a variable heat |
231 |
capacity. It also improves model numerics and consumes less computer |
232 |
time and memory. |
233 |
|
234 |
The Winton sea-ice thermodynamics have been ported to the MIT GCM; |
235 |
they currently reside under \code{pkg/thsice}. The package |
236 |
\code{thsice} is described in section~\ref{sec:pkg:thsice}; it is |
237 |
fully compatible with the packages \code{seaice} and \code{exf}. When |
238 |
turned on together with \code{seaice}, the zero-layer thermodynamics |
239 |
are replaced by the Winton thermodynamics. In order to use the |
240 |
\code{seaice}-package with the thermodynamics of \code{thsice}, |
241 |
compile both packages and turn both package on in \code{data.pkg}; see |
242 |
an example in \code{global\_ocean.cs32x15/input.icedyn}. Note, that |
243 |
once \code{thsice} is turned on, the variables and diagnostics |
244 |
associated to the default thermodynamics are meaningless, and the |
245 |
diagnostics of \code{thsice} have to be used instead. |
246 |
|
247 |
\paragraph{Surface forcing\label{sec:pkg:seaice:surfaceforcing}}~\\ |
248 |
% |
249 |
The sea ice model requires the following input fields: 10-m winds, 2-m |
250 |
air temperature and specific humidity, downward longwave and shortwave |
251 |
radiations, precipitation, evaporation, and river and glacier runoff. |
252 |
The sea ice model also requires surface temperature from the ocean |
253 |
model and the top level horizontal velocity. Output fields are |
254 |
surface wind stress, evaporation minus precipitation minus runoff, net |
255 |
surface heat flux, and net shortwave flux. The sea-ice model is |
256 |
global: in ice-free regions bulk formulae are used to estimate oceanic |
257 |
forcing from the atmospheric fields. |
258 |
|
259 |
\paragraph{Dynamics\label{sec:pkg:seaice:dynamics}}~\\ |
260 |
% |
261 |
\newcommand{\vek}[1]{\ensuremath{\vec{\mathbf{#1}}}} |
262 |
\newcommand{\vtau}{\vek{\mathbf{\tau}}} |
263 |
The momentum equation of the sea-ice model is |
264 |
\begin{equation} |
265 |
\label{eq:momseaice} |
266 |
m \frac{D\vek{u}}{Dt} = -mf\vek{k}\times\vek{u} + \vtau_{air} + |
267 |
\vtau_{ocean} - m \nabla{\phi(0)} + \vek{F}, |
268 |
\end{equation} |
269 |
where $m=m_{i}+m_{s}$ is the ice and snow mass per unit area; |
270 |
$\vek{u}=u\vek{i}+v\vek{j}$ is the ice velocity vector; |
271 |
$\vek{i}$, $\vek{j}$, and $\vek{k}$ are unit vectors in the $x$, $y$, and $z$ |
272 |
directions, respectively; |
273 |
$f$ is the Coriolis parameter; |
274 |
$\vtau_{air}$ and $\vtau_{ocean}$ are the wind-ice and ocean-ice stresses, |
275 |
respectively; |
276 |
$g$ is the gravity accelation; |
277 |
$\nabla\phi(0)$ is the gradient (or tilt) of the sea surface height; |
278 |
$\phi(0) = g\eta + p_{a}/\rho_{0} + mg/\rho_{0}$ is the sea surface |
279 |
height potential in response to ocean dynamics ($g\eta$), to |
280 |
atmospheric pressure loading ($p_{a}/\rho_{0}$, where $\rho_{0}$ is a |
281 |
reference density) and a term due to snow and ice loading \citep{cam08}; |
282 |
and $\vek{F}=\nabla\cdot\sigma$ is the divergence of the internal ice |
283 |
stress tensor $\sigma_{ij}$. % |
284 |
Advection of sea-ice momentum is neglected. The wind and ice-ocean stress |
285 |
terms are given by |
286 |
\begin{align*} |
287 |
\vtau_{air} = & \rho_{air} C_{air} |\vek{U}_{air} -\vek{u}| |
288 |
R_{air} (\vek{U}_{air} -\vek{u}), \\ |
289 |
\vtau_{ocean} = & \rho_{ocean}C_{ocean} |\vek{U}_{ocean}-\vek{u}| |
290 |
R_{ocean}(\vek{U}_{ocean}-\vek{u}), |
291 |
\end{align*} |
292 |
where $\vek{U}_{air/ocean}$ are the surface winds of the atmosphere |
293 |
and surface currents of the ocean, respectively; $C_{air/ocean}$ are |
294 |
air and ocean drag coefficients; $\rho_{air/ocean}$ are reference |
295 |
densities; and $R_{air/ocean}$ are rotation matrices that act on the |
296 |
wind/current vectors. |
297 |
|
298 |
\paragraph{Viscous-Plastic (VP) Rheology\label{sec:pkg:seaice:VPrheology}}~\\ |
299 |
% |
300 |
For an isotropic system the stress tensor $\sigma_{ij}$ ($i,j=1,2$) can |
301 |
be related to the ice strain rate and strength by a nonlinear |
302 |
viscous-plastic (VP) constitutive law \citep{hib79, zhang97}: |
303 |
\begin{equation} |
304 |
\label{eq:vpequation} |
305 |
\sigma_{ij}=2\eta(\dot{\epsilon}_{ij},P)\dot{\epsilon}_{ij} |
306 |
+ \left[\zeta(\dot{\epsilon}_{ij},P) - |
307 |
\eta(\dot{\epsilon}_{ij},P)\right]\dot{\epsilon}_{kk}\delta_{ij} |
308 |
- \frac{P}{2}\delta_{ij}. |
309 |
\end{equation} |
310 |
The ice strain rate is given by |
311 |
\begin{equation*} |
312 |
\dot{\epsilon}_{ij} = \frac{1}{2}\left( |
313 |
\frac{\partial{u_{i}}}{\partial{x_{j}}} + |
314 |
\frac{\partial{u_{j}}}{\partial{x_{i}}}\right). |
315 |
\end{equation*} |
316 |
The maximum ice pressure $P_{\max}$, a measure of ice strength, depends on |
317 |
both thickness $h$ and compactness (concentration) $c$: |
318 |
\begin{equation} |
319 |
P_{\max} = P^{*}c\,h\,\exp\{-C^{*}\cdot(1-c)\}, |
320 |
\label{eq:icestrength} |
321 |
\end{equation} |
322 |
with the constants $P^{*}$ (run-time parameter \code{SEAICE\_strength}) and |
323 |
$C^{*}=20$. The nonlinear bulk and shear |
324 |
viscosities $\eta$ and $\zeta$ are functions of ice strain rate |
325 |
invariants and ice strength such that the principal components of the |
326 |
stress lie on an elliptical yield curve with the ratio of major to |
327 |
minor axis $e$ equal to $2$; they are given by: |
328 |
\begin{align*} |
329 |
\zeta =& \min\left(\frac{P_{\max}}{2\max(\Delta,\Delta_{\min})}, |
330 |
\zeta_{\max}\right) \\ |
331 |
\eta =& \frac{\zeta}{e^2} \\ |
332 |
\intertext{with the abbreviation} |
333 |
\Delta = & \left[ |
334 |
\left(\dot{\epsilon}_{11}^2+\dot{\epsilon}_{22}^2\right) |
335 |
(1+e^{-2}) + 4e^{-2}\dot{\epsilon}_{12}^2 + |
336 |
2\dot{\epsilon}_{11}\dot{\epsilon}_{22} (1-e^{-2}) |
337 |
\right]^{\frac{1}{2}}. |
338 |
\end{align*} |
339 |
The bulk viscosities are bounded above by imposing both a minimum |
340 |
$\Delta_{\min}$ (for numerical reasons, run-time parameter |
341 |
\code{SEAICE\_EPS} with a default value of |
342 |
$10^{-10}\text{\,s}^{-1}$) and a maximum $\zeta_{\max} = |
343 |
P_{\max}/\Delta^*$, where |
344 |
$\Delta^*=(5\times10^{12}/2\times10^4)\text{\,s}^{-1}$. (There is also |
345 |
the option of bounding $\zeta$ from below by setting run-time |
346 |
parameter \code{SEAICE\_zetaMin} $>0$, but this is generally not |
347 |
recommended). For stress tensor computation the replacement pressure $P |
348 |
= 2\,\Delta\zeta$ \citep{hibler95} is used so that the stress state |
349 |
always lies on the elliptic yield curve by definition. |
350 |
|
351 |
Defining the CPP-flag \code{SEAICE\_ZETA\_SMOOTHREG} in |
352 |
\code{SEAICE\_OPTIONS.h} before compiling replaces the method for |
353 |
bounding $\zeta$ by a smooth (differentiable) expression: |
354 |
\begin{equation} |
355 |
\label{eq:zetaregsmooth} |
356 |
\begin{split} |
357 |
\zeta &= \zeta_{\max}\tanh\left(\frac{P}{2\,\min(\Delta,\Delta_{\min}) |
358 |
\,\zeta_{\max}}\right)\\ |
359 |
&= \frac{P}{2\Delta^*} |
360 |
\tanh\left(\frac{\Delta^*}{\min(\Delta,\Delta_{\min})}\right) |
361 |
\end{split} |
362 |
\end{equation} |
363 |
where $\Delta_{\min}=10^{-20}\text{\,s}^{-1}$ is chosen to avoid divisions |
364 |
by zero. |
365 |
|
366 |
\paragraph{LSR and JFNK solver \label{sec:pkg:seaice:LSRJFNK}}~\\ |
367 |
% |
368 |
% By default, the VP-model is integrated by a Pickwith the |
369 |
% semi-implicit line successive over relaxation (LSOR)-solver of |
370 |
% \citet{zhang97}, which allows for long time steps that, in our case, |
371 |
% are limited by the explicit treatment of the Coriolis term. The |
372 |
% explicit treatment of the Coriolis term does not represent a severe |
373 |
% limitation because it restricts the time step to approximately the |
374 |
% same length as in the ocean model where the Coriolis term is also |
375 |
% treated explicitly. |
376 |
|
377 |
\newcommand{\mat}[1]{\ensuremath{\mathbf{#1}}} |
378 |
% |
379 |
In the matrix notation, the discretized momentum equations can be |
380 |
written as |
381 |
\begin{equation} |
382 |
\label{eq:matrixmom} |
383 |
\mat{A}(\vek{x})\,\vek{x} = \vek{b}(\vek{x}). |
384 |
\end{equation} |
385 |
The solution vector $\vek{x}$ consists of the two velocity components |
386 |
$u$ and $v$ that contain the velocity variables at all grid points and |
387 |
at one time level. The standard (and default) method for solving |
388 |
Eq.\,(\ref{eq:matrixmom}) in the sea ice component of the |
389 |
\mbox{MITgcm}, as in many sea ice models, is an iterative Picard |
390 |
solver: in the $k$-th iteration a linearized form |
391 |
$\mat{A}(\vek{x}^{k-1})\,\vek{x}^{k} = \vek{b}(\vek{x}^{k-1})$ is |
392 |
solved (in the case of the MITgcm it is a Line Successive (over) |
393 |
Relaxation (LSR) algorithm \citep{zhang97}). Picard solvers converge |
394 |
slowly, but generally the iteration is terminated after only a few |
395 |
non-linear steps \citep{zhang97, lemieux09} and the calculation |
396 |
continues with the next time level. This method is the default method |
397 |
in the MITgcm. The number of non-linear iteration steps or pseudo-time |
398 |
steps can be controlled by the runtime parameter |
399 |
\code{NPSEUDOTIMESTEPS} (default is 2). |
400 |
|
401 |
In order to overcome the poor convergence of the Picard-solver, |
402 |
\citet{lemieux10} introduced a Jacobian-free Newton-Krylov solver for |
403 |
the sea ice momentum equations. This solver is also implemented in the |
404 |
MITgcm \citep{losch14:_jfnk}. The Newton method transforms minimizing |
405 |
the residual $\vek{F}(\vek{x}) = \mat{A}(\vek{x})\,\vek{x} - |
406 |
\vek{b}(\vek{x})$ to finding the roots of a multivariate Taylor |
407 |
expansion of the residual \vek{F} around the previous ($k-1$) estimate |
408 |
$\vek{x}^{k-1}$: |
409 |
\begin{equation} |
410 |
\label{eq:jfnktaylor} |
411 |
\vek{F}(\vek{x}^{k-1}+\delta\vek{x}^{k}) = |
412 |
\vek{F}(\vek{x}^{k-1}) + \vek{F}'(\vek{x}^{k-1})\,\delta\vek{x}^{k} |
413 |
\end{equation} |
414 |
with the Jacobian $\mat{J}\equiv\vek{F}'$. The root |
415 |
$\vek{F}(\vek{x}^{k-1}+\delta\vek{x}^{k})=0$ is found by solving |
416 |
\begin{equation} |
417 |
\label{eq:jfnklin} |
418 |
\mat{J}(\vek{x}^{k-1})\,\delta\vek{x}^{k} = -\vek{F}(\vek{x}^{k-1}) |
419 |
\end{equation} |
420 |
for $\delta\vek{x}^{k}$. The next ($k$-th) estimate is given by |
421 |
$\vek{x}^{k}=\vek{x}^{k-1}+a\,\delta\vek{x}^{k}$. In order to avoid |
422 |
overshoots the factor $a$ is iteratively reduced in a line search |
423 |
($a=1, \frac{1}{2}, \frac{1}{4}, \frac{1}{8}, \ldots$) until |
424 |
$\|\vek{F}(\vek{x}^k)\| < \|\vek{F}(\vek{x}^{k-1})\|$, where |
425 |
$\|\cdot\|=\int\cdot\,dx^2$ is the $L_2$-norm. In practice, the line |
426 |
search is stopped at $a=\frac{1}{8}$. The line search starts after |
427 |
$\code{SEAICE\_JFNK\_lsIter}$ non-linear Newton iterations (off by |
428 |
default). |
429 |
|
430 |
|
431 |
Forming the Jacobian $\mat{J}$ explicitly is often avoided as ``too |
432 |
error prone and time consuming'' \citep{knoll04:_jfnk}. Instead, |
433 |
Krylov methods only require the action of \mat{J} on an arbitrary |
434 |
vector \vek{w} and hence allow a matrix free algorithm for solving |
435 |
Eq.\,(\ref{eq:jfnklin}) \citep{knoll04:_jfnk}. The action of \mat{J} |
436 |
can be approximated by a first-order Taylor series expansion: |
437 |
\begin{equation} |
438 |
\label{eq:jfnkjacvecfd} |
439 |
\mat{J}(\vek{x}^{k-1})\,\vek{w} \approx |
440 |
\frac{\vek{F}(\vek{x}^{k-1}+\epsilon\vek{w}) - \vek{F}(\vek{x}^{k-1})} |
441 |
{\epsilon} |
442 |
\end{equation} |
443 |
or computed exactly with the help of automatic differentiation (AD) |
444 |
tools. \code{SEAICE\_JFNKepsilon} sets the step size |
445 |
$\epsilon$. |
446 |
|
447 |
We use the Flexible Generalized Minimum RESidual method |
448 |
\citep[FGMRES,][]{saad93:_fgmres} with right-hand side preconditioning |
449 |
to solve Eq.\,(\ref{eq:jfnklin}) iteratively starting from a first |
450 |
guess of $\delta\vek{x}^{k}_{0} = 0$. For the preconditioning matrix |
451 |
\mat{P} we choose a simplified form of the system matrix |
452 |
$\mat{A}(\vek{x}^{k-1})$ \citep{lemieux10} where $\vek{x}^{k-1}$ is |
453 |
the estimate of the previous Newton step $k-1$. The transformed |
454 |
equation\,(\ref{eq:jfnklin}) becomes |
455 |
\begin{equation} |
456 |
\label{eq:jfnklinpc} |
457 |
\mat{J}(\vek{x}^{k-1})\,\mat{P}^{-1}\delta\vek{z} = |
458 |
-\vek{F}(\vek{x}^{k-1}), |
459 |
\quad\text{with}\quad \delta\vek{z}=\mat{P}\delta\vek{x}^{k}. |
460 |
\end{equation} |
461 |
The Krylov method iteratively improves the approximate solution |
462 |
to~(\ref{eq:jfnklinpc}) in subspace ($\vek{r}_0$, |
463 |
$\mat{J}\mat{P}^{-1}\vek{r}_0$, $(\mat{J}\mat{P}^{-1})^2\vek{r}_0$, |
464 |
\ldots, $(\mat{J}\mat{P}^{-1})^m\vek{r}_0$) with increasing $m$; |
465 |
$\vek{r}_0 = -\vek{F}(\vek{x}^{k-1}) |
466 |
-\mat{J}(\vek{x}^{k-1})\,\delta\vek{x}^{k}_{0}$ |
467 |
%-\vek{F}(\vek{x}^{k-1}) |
468 |
%-\mat{J}(\vek{x}^{k-1})\,\mat{P}^{-1}\delta\vek{z}$ |
469 |
is the initial residual of |
470 |
(\ref{eq:jfnklin}); $\vek{r}_0=-\vek{F}(\vek{x}^{k-1})$ with the first |
471 |
guess $\delta\vek{x}^{k}_{0}=0$. We allow a Krylov-subspace of |
472 |
dimension~$m=50$ and we do not use restarts. The preconditioning operation |
473 |
involves applying $\mat{P}^{-1}$ to the basis vectors $\vek{v}_0, |
474 |
\vek{v}_1, \vek{v}_2, \ldots, \vek{v}_m$ of the Krylov subspace. This |
475 |
operation is approximated by solving the linear system |
476 |
$\mat{P}\,\vek{w}=\vek{v}_i$. Because $\mat{P} \approx |
477 |
\mat{A}(\vek{x}^{k-1})$, we can use the LSR-algorithm \citep{zhang97} |
478 |
already implemented in the Picard solver. Each preconditioning |
479 |
operation uses a fixed number of 10~LSR-iterations avoiding any |
480 |
termination criterion. More details and results can be found in |
481 |
\citet{lemieux10, losch14:_jfnk}. |
482 |
|
483 |
To use the JFNK-solver set \code{SEAICEuseJFNK = .TRUE.} in the |
484 |
namelist file \code{data.seaice}; \code{SEAICE\_ALLOW\_JFNK} needs to |
485 |
be defined in \code{SEAICE\_OPTIONS.h} and we recommend using a smooth |
486 |
regularization of $\zeta$ by defining \code{SEAICE\_ZETA\_SMOOTHREG} |
487 |
(see above) for better convergence. The non-linear Newton iteration |
488 |
is terminated when the $L_2$-norm of the residual is reduced by |
489 |
$\gamma_{\mathrm{nl}}$ (runtime parameter \code{JFNKgamma\_nonlin = |
490 |
1.e-4} will already lead to expensive simulations) with respect to |
491 |
the initial norm: $\|\vek{F}(\vek{x}^k)\| < |
492 |
\gamma_{\mathrm{nl}}\|\vek{F}(\vek{x}^0)\|$. Within a non-linear |
493 |
iteration, the linear FGMRES solver is terminated when the residual is |
494 |
smaller than $\gamma_k\|\vek{F}(\vek{x}^{k-1})\|$ where $\gamma_k$ is |
495 |
determined by |
496 |
\begin{equation} |
497 |
\label{eq:jfnkgammalin} |
498 |
\gamma_k = |
499 |
\begin{cases} |
500 |
\gamma_0 &\text{for $\|\vek{F}(\vek{x}^{k-1})\| \geq r$}, \\ |
501 |
\max\left(\gamma_{\min}, |
502 |
\frac{\|\vek{F}(\vek{x}^{k-1})\|}{\|\vek{F}(\vek{x}^{k-2})\|}\right) |
503 |
% \phi\left(\frac{\|\vek{F}(\vek{x}^{k-1})\|}{\|\vek{F}(\vek{x}^{k-2})\|}\right)^\alpha\right) |
504 |
&\text{for $\|\vek{F}(\vek{x}^{k-1})\| < r$,} |
505 |
\end{cases} |
506 |
\end{equation} |
507 |
so that the linear tolerance parameter $\gamma_k$ decreases with the |
508 |
non-linear Newton step as the non-linear solution is approached. This |
509 |
inexact Newton method is generally more robust and computationally |
510 |
more efficient than exact methods \citep[e.g.,][]{knoll04:_jfnk}. |
511 |
% \footnote{The general idea behind |
512 |
% inexact Newton methods is this: The Krylov solver is ``only'' |
513 |
% used to find an intermediate solution of the linear |
514 |
% equation\,(\ref{eq:jfnklin}) that is used to improve the approximation of |
515 |
% the actual equation\,(\ref{eq:matrixmom}). With the choice of a |
516 |
% relatively weak lower limit for FGMRES convergence |
517 |
% $\gamma_{\min}$ we make sure that the time spent in the FGMRES |
518 |
% solver is reduced at the cost of more Newton iterations. Newton |
519 |
% iterations are cheaper than Krylov iterations so that this choice |
520 |
% improves the overall efficiency.} |
521 |
Typical parameter choices are |
522 |
$\gamma_0=\code{JFNKgamma\_lin\_max}=0.99$, |
523 |
$\gamma_{\min}=\code{JFNKgamma\_lin\_min}=0.1$, and $r = |
524 |
\code{JFNKres\_tFac}\times\|\vek{F}(\vek{x}^{0})\|$ with |
525 |
$\code{JFNKres\_tFac} = \frac{1}{2}$. We recommend a maximum number of |
526 |
non-linear iterations $\code{SEAICEnewtonIterMax} = 100$ and a maximum |
527 |
number of Krylov iterations $\code{SEAICEkrylovIterMax} = 50$, because |
528 |
the Krylov subspace has a fixed dimension of 50. |
529 |
|
530 |
\paragraph{Elastic-Viscous-Plastic (EVP) Dynamics\label{sec:pkg:seaice:EVPdynamics}}~\\ |
531 |
% |
532 |
\citet{hun97}'s introduced an elastic contribution to the strain |
533 |
rate in order to regularize Eq.~\ref{eq:vpequation} in such a way that |
534 |
the resulting elastic-viscous-plastic (EVP) and VP models are |
535 |
identical at steady state, |
536 |
\begin{equation} |
537 |
\label{eq:evpequation} |
538 |
\frac{1}{E}\frac{\partial\sigma_{ij}}{\partial{t}} + |
539 |
\frac{1}{2\eta}\sigma_{ij} |
540 |
+ \frac{\eta - \zeta}{4\zeta\eta}\sigma_{kk}\delta_{ij} |
541 |
+ \frac{P}{4\zeta}\delta_{ij} |
542 |
= \dot{\epsilon}_{ij}. |
543 |
\end{equation} |
544 |
%In the EVP model, equations for the components of the stress tensor |
545 |
%$\sigma_{ij}$ are solved explicitly. Both model formulations will be |
546 |
%used and compared the present sea-ice model study. |
547 |
The EVP-model uses an explicit time stepping scheme with a short |
548 |
timestep. According to the recommendation of \citet{hun97}, the |
549 |
EVP-model should be stepped forward in time 120 times |
550 |
($\code{SEAICE\_deltaTevp} = \code{SEAICIE\_deltaTdyn}/120$) within |
551 |
the physical ocean model time step (although this parameter is under |
552 |
debate), to allow for elastic waves to disappear. Because the scheme |
553 |
does not require a matrix inversion it is fast in spite of the small |
554 |
internal timestep and simple to implement on parallel computers |
555 |
\citep{hun97}. For completeness, we repeat the equations for the |
556 |
components of the stress tensor $\sigma_{1} = |
557 |
\sigma_{11}+\sigma_{22}$, $\sigma_{2}= \sigma_{11}-\sigma_{22}$, and |
558 |
$\sigma_{12}$. Introducing the divergence $D_D = |
559 |
\dot{\epsilon}_{11}+\dot{\epsilon}_{22}$, and the horizontal tension |
560 |
and shearing strain rates, $D_T = |
561 |
\dot{\epsilon}_{11}-\dot{\epsilon}_{22}$ and $D_S = |
562 |
2\dot{\epsilon}_{12}$, respectively, and using the above |
563 |
abbreviations, the equations~\ref{eq:evpequation} can be written as: |
564 |
\begin{align} |
565 |
\label{eq:evpstresstensor1} |
566 |
\frac{\partial\sigma_{1}}{\partial{t}} + \frac{\sigma_{1}}{2T} + |
567 |
\frac{P}{2T} &= \frac{P}{2T\Delta} D_D \\ |
568 |
\label{eq:evpstresstensor2} |
569 |
\frac{\partial\sigma_{2}}{\partial{t}} + \frac{\sigma_{2} e^{2}}{2T} |
570 |
&= \frac{P}{2T\Delta} D_T \\ |
571 |
\label{eq:evpstresstensor12} |
572 |
\frac{\partial\sigma_{12}}{\partial{t}} + \frac{\sigma_{12} e^{2}}{2T} |
573 |
&= \frac{P}{4T\Delta} D_S |
574 |
\end{align} |
575 |
Here, the elastic parameter $E$ is redefined in terms of a damping |
576 |
timescale $T$ for elastic waves \[E=\frac{\zeta}{T}.\] |
577 |
$T=E_{0}\Delta{t}$ with the tunable parameter $E_0<1$ and the external |
578 |
(long) timestep $\Delta{t}$. $E_{0} = \frac{1}{3}$ is the default |
579 |
value in the code and close to what \citet{hun97} and |
580 |
\citet{hun01} recommend. |
581 |
|
582 |
To use the EVP solver, make sure that both \code{SEAICE\_CGRID} and |
583 |
\code{SEAICE\_ALLOW\_EVP} are defined in \code{SEAICE\_OPTIONS.h} |
584 |
(default). The solver is turned on by setting the sub-cycling time |
585 |
step \code{SEAICE\_deltaTevp} to a value larger than zero. The |
586 |
choice of this time step is under debate. \citet{hun97} recommend |
587 |
order(120) time steps for the EVP solver within one model time step |
588 |
$\Delta{t}$ (\code{deltaTmom}). One can also choose order(120) time |
589 |
steps within the forcing time scale, but then we recommend adjusting |
590 |
the damping time scale $T$ accordingly, by setting either |
591 |
\code{SEAICE\_elasticParm} ($E_{0}$), so that |
592 |
$E_{0}\Delta{t}=\mbox{forcing time scale}$, or directly |
593 |
\code{SEAICE\_evpTauRelax} ($T$) to the forcing time scale. |
594 |
|
595 |
\paragraph{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 |
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 |
\code{useHB87StressCoupling=.TRUE.} in \code{data.seaice}. |
629 |
|
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 |
\paragraph{Finite-volume discretization of the stress tensor |
641 |
divergence\label{sec:pkg:seaice:discretization}}~\\ |
642 |
% |
643 |
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 |
(\Delta{x}_2\sigma_{11})_{i,j}^C - |
722 |
(\Delta{x}_2\sigma_{11})_{i-1,j}^C |
723 |
\\\notag |
724 |
\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 |
\end{align} |
728 |
with |
729 |
\begin{align} |
730 |
(\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 |
\end{align} |
772 |
with |
773 |
\begin{align} |
774 |
(\Delta{x}_1\sigma_{12})_{i,j}^Z =& \phantom{+} |
775 |
\Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
776 |
\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 |
&- \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
781 |
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 |
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 |
\paragraph{Thermodynamics\label{sec:pkg:seaice:thermodynamics}}~\\ |
804 |
% |
805 |
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 |
\code{\#define SEAICE\_MULTICATEGORY}; note that this requires |
828 |
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 |
of three days (run-time parameter \code{SEAICE\_gamma\_t}) is used |
838 |
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 |
$h_{0}$ (run-time parameter \code{HO}) has a default value of |
843 |
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 |
\code{SEAICE\_ALLOW\_FLOODING} and turned on with run-time parameter |
856 |
\code{SEAICEuseFlooding=.true.}. |
857 |
|
858 |
\paragraph{Advection of thermodynamic variables\label{sec:pkg:seaice:advection}}~\\ |
859 |
% |
860 |
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 |
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 |
distributions and to rule out unphysical over- and undershoots |
876 |
(negative thickness or concentration). These schemes conserve volume |
877 |
and horizontal area and are unconditionally stable, so that we can set |
878 |
$D_{X}=0$. Run-timeflags: \code{SEAICEadvScheme} (default=2, is the |
879 |
historic 2nd-order, centered difference scheme), \code{DIFF1} = |
880 |
$D_{X}/\Delta{x}$ |
881 |
(default=0.004). |
882 |
|
883 |
The MITgcm sea ice model provides the option to use |
884 |
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 |
% |
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 |
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 |
|
909 |
%---------------------------------------------------------------------- |
910 |
|
911 |
\subsubsection{Key subroutines |
912 |
\label{sec:pkg:seaice:subroutines}} |
913 |
|
914 |
Top-level routine: \code{seaice\_model.F} |
915 |
|
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 |
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 |
c | #ELSE |
935 |
c | DYNSOLVER |
936 |
c | #ENDIF |
937 |
c | |
938 |
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 |
|
959 |
\end{verbatim} |
960 |
} |
961 |
|
962 |
|
963 |
%---------------------------------------------------------------------- |
964 |
|
965 |
\subsubsection{SEAICE diagnostics |
966 |
\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 |
\input{s_phys_pkgs/text/seaice_diags.tex} |
974 |
|
975 |
%\subsubsection{Package Reference} |
976 |
|
977 |
\subsubsection{Experiments and tutorials that use seaice} |
978 |
\label{sec:pkg:seaice:experiments} |
979 |
|
980 |
\begin{itemize} |
981 |
\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 |
\end{itemize} |
989 |
|
990 |
|
991 |
%%% Local Variables: |
992 |
%%% mode: latex |
993 |
%%% TeX-master: "../../manual" |
994 |
%%% End: |