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} |
%\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 |
|
|
1065 |
|
|
1066 |
|
%%% Local Variables: |
1067 |
|
%%% mode: latex |
1068 |
|
%%% TeX-master: "../../manual" |
1069 |
|
%%% End: |