16 |
|
|
17 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
18 |
\subsubsection{Introduction |
\subsubsection{Introduction |
19 |
\label{sec:pkg:exf:intro}} |
\label{sec:pkg:seaice:intro}} |
20 |
|
|
21 |
|
|
22 |
Package ``seaice'' provides a dynamic and thermodynamic interactive |
Package ``seaice'' provides a dynamic and thermodynamic interactive |
25 |
CPP options enable or disable different aspects of the package |
CPP options enable or disable different aspects of the package |
26 |
(Section \ref{sec:pkg:seaice:config}). |
(Section \ref{sec:pkg:seaice:config}). |
27 |
Run-Time options, flags, filenames and field-related dates/times are |
Run-Time options, flags, filenames and field-related dates/times are |
28 |
set in \texttt{data.seaice} |
set in \code{data.seaice} |
29 |
(Section \ref{sec:pkg:seaice:runtime}). |
(Section \ref{sec:pkg:seaice:runtime}). |
30 |
A description of key subroutines is given in Section |
A description of key subroutines is given in Section |
31 |
\ref{sec:pkg:seaice:subroutines}. |
\ref{sec:pkg:seaice:subroutines}. |
32 |
Input fields, units and sign conventions are summarized in |
Input fields, units and sign conventions are summarized in |
33 |
Section \ref{sec:pkg:seaice:fields_units}, and available diagnostics |
Section \ref{sec:pkg:seaice:fields_units}, and available diagnostics |
34 |
output is listed in Section \ref{sec:pkg:seaice:fields_diagnostics}. |
output is listed in Section \ref{sec:pkg:seaice:diagnostics}. |
35 |
|
|
36 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
37 |
|
|
46 |
\begin{itemize} |
\begin{itemize} |
47 |
% |
% |
48 |
\item |
\item |
49 |
using the \texttt{packages.conf} file by adding \texttt{seaice} to it, |
using the \code{packages.conf} file by adding \code{seaice} to it, |
50 |
% |
% |
51 |
\item |
\item |
52 |
or using \texttt{genmake2} adding |
or using \code{genmake2} adding |
53 |
\texttt{-enable=seaice} or \texttt{-disable=seaice} switches |
\code{-enable=seaice} or \code{-disable=seaice} switches |
54 |
% |
% |
55 |
\item |
\item |
56 |
\textit{required packages and CPP options}: \\ |
\textit{required packages and CPP options}: \\ |
57 |
SEAICE requires the external forcing package \texttt{exf} to be enabled; |
SEAICE requires the external forcing package \code{exf} to be enabled; |
58 |
no additional CPP options are required. |
no additional CPP options are required. |
59 |
% |
% |
60 |
\end{itemize} |
\end{itemize} |
61 |
(see Section \ref{sect:buildingCode}). |
(see Section \ref{sec:buildingCode}). |
62 |
|
|
63 |
Parts of the SEAICE code can be enabled or disabled at compile time |
Parts of the SEAICE code can be enabled or disabled at compile time |
64 |
via CPP preprocessor flags. These options are set in either |
via CPP preprocessor flags. These options are set in either |
65 |
\texttt{SEAICE\_OPTIONS.h} or in \texttt{ECCO\_CPPOPTIONS.h}. |
\code{SEAICE\_OPTIONS.h} or in \code{ECCO\_CPPOPTIONS.h}. |
66 |
Table \ref{tab:pkg:seaice:cpp} summarizes these options. |
Table \ref{tab:pkg:seaice:cpp} summarizes these options. |
67 |
|
|
68 |
\begin{table}[h!] |
\begin{table}[!ht] |
69 |
\centering |
\centering |
70 |
\label{tab:pkg:seaice:cpp} |
\label{tab:pkg:seaice:cpp} |
71 |
{\footnotesize |
{\footnotesize |
73 |
\hline |
\hline |
74 |
\textbf{CPP option} & \textbf{Description} \\ |
\textbf{CPP option} & \textbf{Description} \\ |
75 |
\hline \hline |
\hline \hline |
76 |
\texttt{SEAICE\_DEBUG} & |
\code{SEAICE\_DEBUG} & |
77 |
Enhance STDOUT for debugging \\ |
Enhance STDOUT for debugging \\ |
78 |
\texttt{SEAICE\_ALLOW\_DYNAMICS} & |
\code{SEAICE\_ALLOW\_DYNAMICS} & |
79 |
sea-ice dynamics code \\ |
sea-ice dynamics code \\ |
80 |
\texttt{SEAICE\_CGRID} & |
\code{SEAICE\_CGRID} & |
81 |
LSR solver on C-grid (rather than original B-grid) \\ |
LSR solver on C-grid (rather than original B-grid) \\ |
82 |
\texttt{SEAICE\_ALLOW\_EVP} & |
\code{SEAICE\_ALLOW\_EVP} & |
83 |
use EVP rather than LSR rheology solver \\ |
use EVP rather than LSR rheology solver \\ |
84 |
\texttt{SEAICE\_EXTERNAL\_FLUXES} & |
\code{SEAICE\_EXTERNAL\_FLUXES} & |
85 |
use EXF-computed fluxes as starting point \\ |
use EXF-computed fluxes as starting point \\ |
86 |
\texttt{SEAICE\_MULTICATEGORY} & |
\code{SEAICE\_MULTICATEGORY} & |
87 |
enable 8-category thermodynamics (by default undefined)\\ |
enable 8-category thermodynamics (by default undefined)\\ |
88 |
\texttt{SEAICE\_VARIABLE\_FREEZING\_POINT} & |
\code{SEAICE\_VARIABLE\_FREEZING\_POINT} & |
89 |
enable linear dependence of the freezing point on salinity |
enable linear dependence of the freezing point on salinity |
90 |
(by default undefined)\\ |
(by default undefined)\\ |
91 |
\texttt{ALLOW\_SEAICE\_FLOODING} & |
\code{ALLOW\_SEAICE\_FLOODING} & |
92 |
enable snow to ice conversion for submerged sea-ice \\ |
enable snow to ice conversion for submerged sea-ice \\ |
93 |
\texttt{SEAICE\_SALINITY} & |
\code{SEAICE\_SALINITY} & |
94 |
enable "salty" sea-ice (by default undefined) \\ |
enable "salty" sea-ice (by default undefined) \\ |
95 |
\texttt{SEAICE\_AGE} & |
\code{SEAICE\_AGE} & |
96 |
enable "age tracer" sea-ice (by default undefined) \\ |
enable "age tracer" sea-ice (by default undefined) \\ |
97 |
\texttt{SEAICE\_CAP\_HEFF} & |
\code{SEAICE\_CAP\_HEFF} & |
98 |
enable capping of sea-ice thickness to MAX\_HEFF \\ \hline |
enable capping of sea-ice thickness to MAX\_HEFF \\ \hline |
99 |
\texttt{SEAICE\_BICE\_STRESS} & |
\code{SEAICE\_BICE\_STRESS} & |
100 |
B-grid only for backward compatiblity: turn on ice-stress on |
B-grid only for backward compatiblity: turn on ice-stress on |
101 |
ocean\\ |
ocean\\ |
102 |
\texttt{EXPLICIT\_SSH\_SLOPE} & |
\code{EXPLICIT\_SSH\_SLOPE} & |
103 |
B-grid only for backward compatiblity: use ETAN for tilt |
B-grid only for backward compatiblity: use ETAN for tilt |
104 |
computations rather than geostrophic velocities \\ |
computations rather than geostrophic velocities \\ |
105 |
\hline |
\hline |
114 |
\label{sec:pkg:seaice:runtime}} |
\label{sec:pkg:seaice:runtime}} |
115 |
|
|
116 |
Run-time parameters are set in files |
Run-time parameters are set in files |
117 |
\texttt{data.pkg} (read in \texttt{packages\_readparms.F}), |
\code{data.pkg} (read in \code{packages\_readparms.F}), |
118 |
and \texttt{data.seaice} (read in \texttt{seaice\_readparms.F}). |
and \code{data.seaice} (read in \code{seaice\_readparms.F}). |
119 |
|
|
120 |
\paragraph{Enabling the package} |
\paragraph{Enabling the package} |
121 |
~ \\ |
~ \\ |
122 |
% |
% |
123 |
A package is switched on/off at run-time by setting |
A package is switched on/off at run-time by setting |
124 |
(e.g. for SEAICE) \texttt{useSEAICE = .TRUE.} in \texttt{data.pkg}. |
(e.g. for SEAICE) \code{useSEAICE = .TRUE.} in \code{data.pkg}. |
125 |
|
|
126 |
\paragraph{General flags and parameters} |
\paragraph{General flags and parameters} |
127 |
~ \\ |
~ \\ |
128 |
% |
% |
129 |
Table~\ref{tab:pkg:seaice:runtimeparms} lists most run-time parameters. |
Table~\ref{tab:pkg:seaice:runtimeparms} lists most run-time parameters. |
130 |
\input{part6/seaice-parms.tex} |
\input{s_phys_pkgs/text/seaice-parms.tex} |
|
|
|
131 |
|
|
132 |
|
\paragraph{Input fields and units\label{sec:pkg:seaice:fields_units}} |
133 |
|
\begin{description} |
134 |
|
\item[\code{HeffFile}:] Initial sea ice thickness averaged over grid cell |
135 |
|
in meters; initializes variable \code{HEFF}; |
136 |
|
\item[\code{AreaFile}:] Initial fractional sea ice cover, range $[0,1]$; |
137 |
|
initializes variable \code{AREA}; |
138 |
|
\item[\code{HsnowFile}:] Initial snow thickness on sea ice averaged |
139 |
|
over grid cell in meters; initializes variable \code{HSNOW}; |
140 |
|
\item[\code{HsaltFile}:] Initial salinity of sea ice averaged over grid |
141 |
|
cell in g/m$^2$; initializes variable \code{HSALT}; |
142 |
|
\item[\code{IceAgeFile}:] Initial ice age of sea ice averaged over grid |
143 |
|
cell in seconds; initializes variable \code{ICEAGE}; |
144 |
|
\end{description} |
145 |
|
|
146 |
%---------------------------------------------------------------------- |
%---------------------------------------------------------------------- |
147 |
\subsubsection{Description |
\subsubsection{Description |
244 |
global: in ice-free regions bulk formulae are used to estimate oceanic |
global: in ice-free regions bulk formulae are used to estimate oceanic |
245 |
forcing from the atmospheric fields. |
forcing from the atmospheric fields. |
246 |
|
|
247 |
\subsubsection{Dynamics} |
\paragraph{Dynamics\label{sec:pkg:seaice:dynamics}} |
|
\label{sec:pkg:seaice:dynamics} |
|
248 |
|
|
249 |
\newcommand{\vek}[1]{\ensuremath{\vec{\mathbf{#1}}}} |
\newcommand{\vek}[1]{\ensuremath{\vec{\mathbf{#1}}}} |
250 |
\newcommand{\vtau}{\vek{\mathbf{\tau}}} |
\newcommand{\vtau}{\vek{\mathbf{\tau}}} |
275 |
\vtau_{air} = & \rho_{air} C_{air} |\vek{U}_{air} -\vek{u}| |
\vtau_{air} = & \rho_{air} C_{air} |\vek{U}_{air} -\vek{u}| |
276 |
R_{air} (\vek{U}_{air} -\vek{u}), \\ |
R_{air} (\vek{U}_{air} -\vek{u}), \\ |
277 |
\vtau_{ocean} = & \rho_{ocean}C_{ocean} |\vek{U}_{ocean}-\vek{u}| |
\vtau_{ocean} = & \rho_{ocean}C_{ocean} |\vek{U}_{ocean}-\vek{u}| |
278 |
R_{ocean}(\vek{U}_{ocean}-\vek{u}), \\ |
R_{ocean}(\vek{U}_{ocean}-\vek{u}), |
279 |
\end{align*} |
\end{align*} |
280 |
where $\vek{U}_{air/ocean}$ are the surface winds of the atmosphere |
where $\vek{U}_{air/ocean}$ are the surface winds of the atmosphere |
281 |
and surface currents of the ocean, respectively; $C_{air/ocean}$ are |
and surface currents of the ocean, respectively; $C_{air/ocean}$ are |
305 |
P_{\max} = P^{*}c\,h\,e^{[C^{*}\cdot(1-c)]}, |
P_{\max} = P^{*}c\,h\,e^{[C^{*}\cdot(1-c)]}, |
306 |
\label{eq:icestrength} |
\label{eq:icestrength} |
307 |
\end{equation} |
\end{equation} |
308 |
with the constants $P^{*}$ (run-time parameter \texttt{SEAICE\_strength}) and |
with the constants $P^{*}$ (run-time parameter \code{SEAICE\_strength}) and |
309 |
$C^{*}=20$. The nonlinear bulk and shear |
$C^{*}=20$. The nonlinear bulk and shear |
310 |
viscosities $\eta$ and $\zeta$ are functions of ice strain rate |
viscosities $\eta$ and $\zeta$ are functions of ice strain rate |
311 |
invariants and ice strength such that the principal components of the |
invariants and ice strength such that the principal components of the |
324 |
\end{align*} |
\end{align*} |
325 |
The bulk viscosities are bounded above by imposing both a minimum |
The bulk viscosities are bounded above by imposing both a minimum |
326 |
$\Delta_{\min}$ (for numerical reasons, run-time parameter |
$\Delta_{\min}$ (for numerical reasons, run-time parameter |
327 |
\texttt{SEAICE\_EPS} with a default value of |
\code{SEAICE\_EPS} with a default value of |
328 |
$10^{-10}\text{\,s}^{-1}$) and a maximum $\zeta_{\max} = |
$10^{-10}\text{\,s}^{-1}$) and a maximum $\zeta_{\max} = |
329 |
P_{\max}/\Delta^*$, where |
P_{\max}/\Delta^*$, where |
330 |
$\Delta^*=(5\times10^{12}/2\times10^4)\text{\,s}^{-1}$. (There is also |
$\Delta^*=(5\times10^{12}/2\times10^4)\text{\,s}^{-1}$. (There is also |
331 |
the option of bounding $\zeta$ from below by setting run-time |
the option of bounding $\zeta$ from below by setting run-time |
332 |
parameter \texttt{SEAICE\_zetaMin} $>0$, but this is generally not |
parameter \code{SEAICE\_zetaMin} $>0$, but this is generally not |
333 |
recommended). For stress tensor computation the replacement pressure $P |
recommended). For stress tensor computation the replacement pressure $P |
334 |
= 2\,\Delta\zeta$ \citep{hibler95} is used so that the stress state |
= 2\,\Delta\zeta$ \citep{hibler95} is used so that the stress state |
335 |
always lies on the elliptic yield curve by definition. |
always lies on the elliptic yield curve by definition. |
343 |
{\sqrt{(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})^2 |
{\sqrt{(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})^2 |
344 |
+4\dot{\epsilon}_{12}^2}}\right). |
+4\dot{\epsilon}_{12}^2}}\right). |
345 |
\end{equation} |
\end{equation} |
346 |
To enable this method, set \texttt{\#define SEAICE\_ALLOW\_TEM} in |
To enable this method, set \code{\#define SEAICE\_ALLOW\_TEM} in |
347 |
\texttt{SEAICE\_OPTIONS.h} and turn it on with |
\code{SEAICE\_OPTIONS.h} and turn it on with |
348 |
\texttt{SEAICEuseTEM=.TRUE.} in \texttt{data.seaice}. |
\code{SEAICEuseTEM=.TRUE.} in \code{data.seaice}. |
349 |
|
|
350 |
In the current implementation, the VP-model is integrated with the |
In the current implementation, the VP-model is integrated with the |
351 |
semi-implicit line successive over relaxation (LSOR)-solver of |
semi-implicit line successive over relaxation (LSOR)-solver of |
404 |
the external (long) timestep $\Delta{t}$. \citet{hun97} recommend |
the external (long) timestep $\Delta{t}$. \citet{hun97} recommend |
405 |
$E_{0} = \frac{1}{3}$ (which is the default value in the code). |
$E_{0} = \frac{1}{3}$ (which is the default value in the code). |
406 |
|
|
407 |
To use the EVP solver, make sure that both \texttt{SEAICE\_CGRID} and |
To use the EVP solver, make sure that both \code{SEAICE\_CGRID} and |
408 |
\texttt{SEAICE\_ALLOW\_EVP} are defined in \texttt{SEAICE\_OPTIONS.h} |
\code{SEAICE\_ALLOW\_EVP} are defined in \code{SEAICE\_OPTIONS.h} |
409 |
(default). The solver is turned on by setting the sub-cycling time |
(default). The solver is turned on by setting the sub-cycling time |
410 |
step \texttt{SEAICE\_deltaTevp} to a value larger than zero. The |
step \code{SEAICE\_deltaTevp} to a value larger than zero. The |
411 |
choice of this time step is under debate. \citet{hun97} recommend |
choice of this time step is under debate. \citet{hun97} recommend |
412 |
order(120) time steps for the EVP solver within one model time step |
order(120) time steps for the EVP solver within one model time step |
413 |
$\Delta{t}$ (\texttt{deltaTmom}). One can also choose order(120) time |
$\Delta{t}$ (\code{deltaTmom}). One can also choose order(120) time |
414 |
steps within the forcing time scale, but then we recommend adjusting |
steps within the forcing time scale, but then we recommend adjusting |
415 |
the damping time scale $T$ accordingly, by setting either |
the damping time scale $T$ accordingly, by setting either |
416 |
\texttt{SEAICE\_elasticParm} ($E_{0}$), so that |
\code{SEAICE\_elasticParm} ($E_{0}$), so that |
417 |
$E_{0}\Delta{t}=\mbox{forcing time scale}$, or directly |
$E_{0}\Delta{t}=\mbox{forcing time scale}$, or directly |
418 |
\texttt{SEAICE\_evpTauRelax} ($T$) to the forcing time scale. |
\code{SEAICE\_evpTauRelax} ($T$) to the forcing time scale. |
419 |
|
|
420 |
Moving sea ice exerts a stress on the ocean which is the opposite of |
Moving sea ice exerts a stress on the ocean which is the opposite of |
421 |
the stress $\vtau_{ocean}$ in Eq.~\ref{eq:momseaice}. This stess is |
the stress $\vtau_{ocean}$ in Eq.~\ref{eq:momseaice}. This stess is |
433 |
velocity and the ice velocity leading to an inconsistency as the ice |
velocity and the ice velocity leading to an inconsistency as the ice |
434 |
temperature and salinity are different from the oceanic variables. |
temperature and salinity are different from the oceanic variables. |
435 |
To turn on the stress formulation of \citet{hibler87}, set |
To turn on the stress formulation of \citet{hibler87}, set |
436 |
\texttt{useHB87StressCoupling=.TRUE.} in \texttt{data.seaice}. |
\code{useHB87StressCoupling=.TRUE.} in \code{data.seaice}. |
437 |
|
|
438 |
|
|
439 |
% Our discretization differs from \citet{zhang97, zhang03} in the |
% Our discretization differs from \citet{zhang97, zhang03} in the |
445 |
% differences and averaging is only involved in computing $\Delta$ and |
% differences and averaging is only involved in computing $\Delta$ and |
446 |
% $P$ at vorticity points. |
% $P$ at vorticity points. |
447 |
|
|
448 |
\subsubsection{Finite-volume discretization of the stress tensor |
\paragraph{Finite-volume discretization of the stress tensor |
449 |
divergence} |
divergence\label{sec:pkg:seaice:discretization}} |
|
\label{sec:pkg:seaice:discretization} |
|
450 |
On an Arakawa C~grid, ice thickness and concentration and thus ice |
On an Arakawa C~grid, ice thickness and concentration and thus ice |
451 |
strength $P$ and bulk and shear viscosities $\zeta$ and $\eta$ are |
strength $P$ and bulk and shear viscosities $\zeta$ and $\eta$ are |
452 |
naturally defined a C-points in the center of the grid |
naturally defined a C-points in the center of the grid |
525 |
+ \Delta{x}_1\sigma_{21}\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}} |
+ \Delta{x}_1\sigma_{21}\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}} |
526 |
\biggr\} \\ \notag |
\biggr\} \\ \notag |
527 |
=& \frac{1}{A_{i,j}^w} \biggl\{ |
=& \frac{1}{A_{i,j}^w} \biggl\{ |
528 |
(\Delta{x}_2\sigma_{11})_{i,j}^C - (\Delta{x}_2\sigma_{11})_{i-1,j}^C \\\notag |
(\Delta{x}_2\sigma_{11})_{i,j}^C - |
529 |
|
(\Delta{x}_2\sigma_{11})_{i-1,j}^C |
530 |
|
\\\notag |
531 |
\phantom{=}& \phantom{\frac{1}{A_{i,j}^w} \biggl\{} |
\phantom{=}& \phantom{\frac{1}{A_{i,j}^w} \biggl\{} |
532 |
+ (\Delta{x}_1\sigma_{21})_{i,j+1}^Z - (\Delta{x}_1\sigma_{21})_{i,j}^Z |
+ (\Delta{x}_1\sigma_{21})_{i,j+1}^Z - (\Delta{x}_1\sigma_{21})_{i,j}^Z |
533 |
\biggr\} |
\biggr\} |
534 |
\intertext{with} |
\end{align} |
535 |
|
with |
536 |
|
\begin{align} |
537 |
(\Delta{x}_2\sigma_{11})_{i,j}^C =& \phantom{+} |
(\Delta{x}_2\sigma_{11})_{i,j}^C =& \phantom{+} |
538 |
\Delta{y}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j} |
\Delta{y}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j} |
539 |
\frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}} \\ \notag |
\frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}} \\ \notag |
544 |
\phantom{=}& + \Delta{y}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j} |
\phantom{=}& + \Delta{y}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j} |
545 |
k_{1,i,j}^{C}\frac{u_{i+1,j}+u_{i,j}}{2} \\ \notag |
k_{1,i,j}^{C}\frac{u_{i+1,j}+u_{i,j}}{2} \\ \notag |
546 |
\phantom{=}& - \Delta{y}_{i,j}^{F} \frac{P}{2} \\ |
\phantom{=}& - \Delta{y}_{i,j}^{F} \frac{P}{2} \\ |
|
% |
|
547 |
(\Delta{x}_1\sigma_{21})_{i,j}^Z =& \phantom{+} |
(\Delta{x}_1\sigma_{21})_{i,j}^Z =& \phantom{+} |
548 |
\Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j} |
\Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j} |
549 |
\frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^{U}} \\ \notag |
\frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^{U}} \\ \notag |
575 |
\phantom{=}& \phantom{\frac{1}{A_{i,j}^s} \biggl\{} |
\phantom{=}& \phantom{\frac{1}{A_{i,j}^s} \biggl\{} |
576 |
+ (\Delta{x}_1\sigma_{22})_{i,j}^C - (\Delta{x}_1\sigma_{22})_{i,j-1}^C |
+ (\Delta{x}_1\sigma_{22})_{i,j}^C - (\Delta{x}_1\sigma_{22})_{i,j-1}^C |
577 |
\biggr\} |
\biggr\} |
578 |
\intertext{with} |
\end{align} |
579 |
|
with |
580 |
|
\begin{align} |
581 |
(\Delta{x}_1\sigma_{12})_{i,j}^Z =& \phantom{+} |
(\Delta{x}_1\sigma_{12})_{i,j}^Z =& \phantom{+} |
582 |
\Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
\Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
583 |
\frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^{U}} \\\notag |
\frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^{U}} |
584 |
&+ \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
\\\notag & |
585 |
\frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^{V}} \\ \notag |
+ \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
586 |
&- \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
\frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^{V}} \\\notag |
|
k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2} \\ \notag |
|
587 |
&- \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
&- \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
588 |
|
k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2} |
589 |
|
\\\notag & |
590 |
|
- \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
591 |
k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2} \\ \notag |
k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2} \\ \notag |
|
% |
|
592 |
(\Delta{x}_2\sigma_{22})_{i,j}^C =& \phantom{+} |
(\Delta{x}_2\sigma_{22})_{i,j}^C =& \phantom{+} |
593 |
\Delta{x}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j} |
\Delta{x}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j} |
594 |
\frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}} \\ \notag |
\frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}} \\ \notag |
607 |
analogy to $(\epsilon_{12})^Z=0$ on boundaries, we set |
analogy to $(\epsilon_{12})^Z=0$ on boundaries, we set |
608 |
$\sigma_{21}^{Z}=0$, or equivalently $\eta_{i,j}^{Z}=0$, on boundaries. |
$\sigma_{21}^{Z}=0$, or equivalently $\eta_{i,j}^{Z}=0$, on boundaries. |
609 |
|
|
610 |
\subsubsection{Thermodynamics} |
\paragraph{Thermodynamics\label{sec:pkg:seaice:thermodynamics}} |
|
\label{sec:pkg:seaice:thermodynamics} |
|
611 |
|
|
612 |
In its original formulation the sea ice model \citep{menemenlis05} |
In its original formulation the sea ice model \citep{menemenlis05} |
613 |
uses simple thermodynamics following the appendix of |
uses simple thermodynamics following the appendix of |
631 |
\frac{2n-1}{7}\,h$ for $n\in[1,7]$. The heat fluxes computed for each |
\frac{2n-1}{7}\,h$ for $n\in[1,7]$. The heat fluxes computed for each |
632 |
thickness category is area-averaged to give the total heat flux |
thickness category is area-averaged to give the total heat flux |
633 |
\citep{hibler84}. To use this thickness category parameterization set |
\citep{hibler84}. To use this thickness category parameterization set |
634 |
\texttt{\#define SEAICE\_MULTICATEGORY}; note that this requires |
\code{\#define SEAICE\_MULTICATEGORY}; note that this requires |
635 |
different restart files and switching this flag on in the middle of an |
different restart files and switching this flag on in the middle of an |
636 |
integration is not possible. |
integration is not possible. |
637 |
|
|
641 |
the density and heat capacity of sea water and $T_{fr}$ is the local |
the density and heat capacity of sea water and $T_{fr}$ is the local |
642 |
freezing point temperature that is a function of salinity. This flux |
freezing point temperature that is a function of salinity. This flux |
643 |
is not assumed to instantaneously melt or create ice, but a time scale |
is not assumed to instantaneously melt or create ice, but a time scale |
644 |
of three days (run-time parameter \texttt{SEAICE\_gamma\_t}) is used |
of three days (run-time parameter \code{SEAICE\_gamma\_t}) is used |
645 |
to relax $T_{w}$ to the freezing point. |
to relax $T_{w}$ to the freezing point. |
646 |
% |
% |
647 |
The parameterization of lateral and vertical growth of sea ice follows |
The parameterization of lateral and vertical growth of sea ice follows |
648 |
that of \citet{hib79, hib80}; the so-called lead closing parameter |
that of \citet{hib79, hib80}; the so-called lead closing parameter |
649 |
$h_{0}$ (run-time parameter \texttt{HO}) has a default value of |
$h_{0}$ (run-time parameter \code{HO}) has a default value of |
650 |
0.5~meters. |
0.5~meters. |
651 |
|
|
652 |
On top of the ice there is a layer of snow that modifies the heat flux |
On top of the ice there is a layer of snow that modifies the heat flux |
659 |
snowice formation (a flood-freeze algorithm following Archimedes' |
snowice formation (a flood-freeze algorithm following Archimedes' |
660 |
principle) turns snow into ice until the ice surface is back at $z=0$ |
principle) turns snow into ice until the ice surface is back at $z=0$ |
661 |
\citep{leppaeranta83}. The flood-freeze algorithm is enabled with the CPP-flag |
\citep{leppaeranta83}. The flood-freeze algorithm is enabled with the CPP-flag |
662 |
\texttt{SEAICE\_ALLOW\_FLOODING} and turned on with run-time parameter |
\code{SEAICE\_ALLOW\_FLOODING} and turned on with run-time parameter |
663 |
\texttt{SEAICEuseFlooding=.true.}. |
\code{SEAICEuseFlooding=.true.}. |
664 |
|
|
665 |
Effective ice thickness (ice volume per unit area, |
Effective ice thickness (ice volume per unit area, |
666 |
$c\cdot{h}$), concentration $c$ and effective snow thickness |
$c\cdot{h}$), concentration $c$ and effective snow thickness |
680 |
distributions and to rule out unphysical over- and undershoots |
distributions and to rule out unphysical over- and undershoots |
681 |
(negative thickness or concentration). These scheme conserve volume |
(negative thickness or concentration). These scheme conserve volume |
682 |
and horizontal area and are unconditionally stable, so that we can set |
and horizontal area and are unconditionally stable, so that we can set |
683 |
$D_{X}=0$. Run-timeflags: \texttt{SEAICEadvScheme} (default=2), |
$D_{X}=0$. Run-timeflags: \code{SEAICEadvScheme} (default=2), |
684 |
\texttt{DIFF1} (default=0.004). |
\code{DIFF1} (default=0.004). |
685 |
|
|
686 |
There is considerable doubt about the reliability of a ``zero-layer'' |
There is considerable doubt about the reliability of a ``zero-layer'' |
687 |
thermodynamic model --- \citet{semtner84} found significant errors in |
thermodynamic model --- \citet{semtner84} found significant errors in |
714 |
\subsubsection{Key subroutines |
\subsubsection{Key subroutines |
715 |
\label{sec:pkg:seaice:subroutines}} |
\label{sec:pkg:seaice:subroutines}} |
716 |
|
|
717 |
Top-level routine: \texttt{seaice\_model.F} |
Top-level routine: \code{seaice\_model.F} |
718 |
|
|
719 |
{\footnotesize |
{\footnotesize |
720 |
\begin{verbatim} |
\begin{verbatim} |
773 |
Available output fields are summarized in |
Available output fields are summarized in |
774 |
Table \ref{tab:pkg:seaice:diagnostics}. |
Table \ref{tab:pkg:seaice:diagnostics}. |
775 |
|
|
776 |
\begin{table}[h!] |
\begin{table}[!ht] |
777 |
\centering |
\centering |
778 |
\label{tab:pkg:seaice:diagnostics} |
\label{tab:pkg:seaice:diagnostics} |
779 |
{\footnotesize |
{\footnotesize |
838 |
|
|
839 |
%%% Local Variables: |
%%% Local Variables: |
840 |
%%% mode: latex |
%%% mode: latex |
841 |
%%% TeX-master: "../manual" |
%%% TeX-master: "../../manual" |
842 |
%%% End: |
%%% End: |