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}. |
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} |
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}[h!] |
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 |
~ \\ |
~ \\ |
232 |
global: in ice-free regions bulk formulae are used to estimate oceanic |
global: in ice-free regions bulk formulae are used to estimate oceanic |
233 |
forcing from the atmospheric fields. |
forcing from the atmospheric fields. |
234 |
|
|
235 |
\subsubsection{Dynamics} |
\paragraph{Dynamics\label{sec:pkg:seaice:dynamics}} |
|
\label{sec:pkg:seaice:dynamics} |
|
236 |
|
|
237 |
\newcommand{\vek}[1]{\ensuremath{\vec{\mathbf{#1}}}} |
\newcommand{\vek}[1]{\ensuremath{\vec{\mathbf{#1}}}} |
238 |
\newcommand{\vtau}{\vek{\mathbf{\tau}}} |
\newcommand{\vtau}{\vek{\mathbf{\tau}}} |
263 |
\vtau_{air} = & \rho_{air} C_{air} |\vek{U}_{air} -\vek{u}| |
\vtau_{air} = & \rho_{air} C_{air} |\vek{U}_{air} -\vek{u}| |
264 |
R_{air} (\vek{U}_{air} -\vek{u}), \\ |
R_{air} (\vek{U}_{air} -\vek{u}), \\ |
265 |
\vtau_{ocean} = & \rho_{ocean}C_{ocean} |\vek{U}_{ocean}-\vek{u}| |
\vtau_{ocean} = & \rho_{ocean}C_{ocean} |\vek{U}_{ocean}-\vek{u}| |
266 |
R_{ocean}(\vek{U}_{ocean}-\vek{u}), \\ |
R_{ocean}(\vek{U}_{ocean}-\vek{u}), |
267 |
\end{align*} |
\end{align*} |
268 |
where $\vek{U}_{air/ocean}$ are the surface winds of the atmosphere |
where $\vek{U}_{air/ocean}$ are the surface winds of the atmosphere |
269 |
and surface currents of the ocean, respectively; $C_{air/ocean}$ are |
and surface currents of the ocean, respectively; $C_{air/ocean}$ are |
293 |
P_{\max} = P^{*}c\,h\,e^{[C^{*}\cdot(1-c)]}, |
P_{\max} = P^{*}c\,h\,e^{[C^{*}\cdot(1-c)]}, |
294 |
\label{eq:icestrength} |
\label{eq:icestrength} |
295 |
\end{equation} |
\end{equation} |
296 |
with the constants $P^{*}$ (run-time parameter \texttt{SEAICE\_strength}) and |
with the constants $P^{*}$ (run-time parameter \code{SEAICE\_strength}) and |
297 |
$C^{*}=20$. The nonlinear bulk and shear |
$C^{*}=20$. The nonlinear bulk and shear |
298 |
viscosities $\eta$ and $\zeta$ are functions of ice strain rate |
viscosities $\eta$ and $\zeta$ are functions of ice strain rate |
299 |
invariants and ice strength such that the principal components of the |
invariants and ice strength such that the principal components of the |
312 |
\end{align*} |
\end{align*} |
313 |
The bulk viscosities are bounded above by imposing both a minimum |
The bulk viscosities are bounded above by imposing both a minimum |
314 |
$\Delta_{\min}$ (for numerical reasons, run-time parameter |
$\Delta_{\min}$ (for numerical reasons, run-time parameter |
315 |
\texttt{SEAICE\_EPS} with a default value of |
\code{SEAICE\_EPS} with a default value of |
316 |
$10^{-10}\text{\,s}^{-1}$) and a maximum $\zeta_{\max} = |
$10^{-10}\text{\,s}^{-1}$) and a maximum $\zeta_{\max} = |
317 |
P_{\max}/\Delta^*$, where |
P_{\max}/\Delta^*$, where |
318 |
$\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 |
319 |
the option of bounding $\zeta$ from below by setting run-time |
the option of bounding $\zeta$ from below by setting run-time |
320 |
parameter \texttt{SEAICE\_zetaMin} $>0$, but this is generally not |
parameter \code{SEAICE\_zetaMin} $>0$, but this is generally not |
321 |
recommended). For stress tensor computation the replacement pressure $P |
recommended). For stress tensor computation the replacement pressure $P |
322 |
= 2\,\Delta\zeta$ \citep{hibler95} is used so that the stress state |
= 2\,\Delta\zeta$ \citep{hibler95} is used so that the stress state |
323 |
always lies on the elliptic yield curve by definition. |
always lies on the elliptic yield curve by definition. |
331 |
{\sqrt{(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})^2 |
{\sqrt{(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})^2 |
332 |
+4\dot{\epsilon}_{12}^2}}\right). |
+4\dot{\epsilon}_{12}^2}}\right). |
333 |
\end{equation} |
\end{equation} |
334 |
To enable this method, set \texttt{\#define SEAICE\_ALLOW\_TEM} in |
To enable this method, set \code{\#define SEAICE\_ALLOW\_TEM} in |
335 |
\texttt{SEAICE\_OPTIONS.h} and turn it on with |
\code{SEAICE\_OPTIONS.h} and turn it on with |
336 |
\texttt{SEAICEuseTEM=.TRUE.} in \texttt{data.seaice}. |
\code{SEAICEuseTEM=.TRUE.} in \code{data.seaice}. |
337 |
|
|
338 |
In the current implementation, the VP-model is integrated with the |
In the current implementation, the VP-model is integrated with the |
339 |
semi-implicit line successive over relaxation (LSOR)-solver of |
semi-implicit line successive over relaxation (LSOR)-solver of |
392 |
the external (long) timestep $\Delta{t}$. \citet{hun97} recommend |
the external (long) timestep $\Delta{t}$. \citet{hun97} recommend |
393 |
$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). |
394 |
|
|
395 |
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 |
396 |
\texttt{SEAICE\_ALLOW\_EVP} are defined in \texttt{SEAICE\_OPTIONS.h} |
\code{SEAICE\_ALLOW\_EVP} are defined in \code{SEAICE\_OPTIONS.h} |
397 |
(default). The solver is turned on by setting the sub-cycling time |
(default). The solver is turned on by setting the sub-cycling time |
398 |
step \texttt{SEAICE\_deltaTevp} to a value larger than zero. The |
step \code{SEAICE\_deltaTevp} to a value larger than zero. The |
399 |
choice of this time step is under debate. \citet{hun97} recommend |
choice of this time step is under debate. \citet{hun97} recommend |
400 |
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 |
401 |
$\Delta{t}$ (\texttt{deltaTmom}). One can also choose order(120) time |
$\Delta{t}$ (\code{deltaTmom}). One can also choose order(120) time |
402 |
steps within the forcing time scale, but then we recommend adjusting |
steps within the forcing time scale, but then we recommend adjusting |
403 |
the damping time scale $T$ accordingly, by setting either |
the damping time scale $T$ accordingly, by setting either |
404 |
\texttt{SEAICE\_elasticParm} ($E_{0}$), so that |
\code{SEAICE\_elasticParm} ($E_{0}$), so that |
405 |
$E_{0}\Delta{t}=\mbox{forcing time scale}$, or directly |
$E_{0}\Delta{t}=\mbox{forcing time scale}$, or directly |
406 |
\texttt{SEAICE\_evpTauRelax} ($T$) to the forcing time scale. |
\code{SEAICE\_evpTauRelax} ($T$) to the forcing time scale. |
407 |
|
|
408 |
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 |
409 |
the stress $\vtau_{ocean}$ in Eq.~\ref{eq:momseaice}. This stess is |
the stress $\vtau_{ocean}$ in Eq.~\ref{eq:momseaice}. This stess is |
421 |
velocity and the ice velocity leading to an inconsistency as the ice |
velocity and the ice velocity leading to an inconsistency as the ice |
422 |
temperature and salinity are different from the oceanic variables. |
temperature and salinity are different from the oceanic variables. |
423 |
To turn on the stress formulation of \citet{hibler87}, set |
To turn on the stress formulation of \citet{hibler87}, set |
424 |
\texttt{useHB87StressCoupling=.TRUE.} in \texttt{data.seaice}. |
\code{useHB87StressCoupling=.TRUE.} in \code{data.seaice}. |
425 |
|
|
426 |
|
|
427 |
% Our discretization differs from \citet{zhang97, zhang03} in the |
% Our discretization differs from \citet{zhang97, zhang03} in the |
433 |
% differences and averaging is only involved in computing $\Delta$ and |
% differences and averaging is only involved in computing $\Delta$ and |
434 |
% $P$ at vorticity points. |
% $P$ at vorticity points. |
435 |
|
|
436 |
\subsubsection{Finite-volume discretization of the stress tensor |
\paragraph{Finite-volume discretization of the stress tensor |
437 |
divergence} |
divergence\label{sec:pkg:seaice:discretization}} |
|
\label{sec:pkg:seaice:discretization} |
|
438 |
On an Arakawa C~grid, ice thickness and concentration and thus ice |
On an Arakawa C~grid, ice thickness and concentration and thus ice |
439 |
strength $P$ and bulk and shear viscosities $\zeta$ and $\eta$ are |
strength $P$ and bulk and shear viscosities $\zeta$ and $\eta$ are |
440 |
naturally defined a C-points in the center of the grid |
naturally defined a C-points in the center of the grid |
513 |
+ \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}} |
514 |
\biggr\} \\ \notag |
\biggr\} \\ \notag |
515 |
=& \frac{1}{A_{i,j}^w} \biggl\{ |
=& \frac{1}{A_{i,j}^w} \biggl\{ |
516 |
(\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 - |
517 |
|
(\Delta{x}_2\sigma_{11})_{i-1,j}^C |
518 |
|
\\\notag |
519 |
\phantom{=}& \phantom{\frac{1}{A_{i,j}^w} \biggl\{} |
\phantom{=}& \phantom{\frac{1}{A_{i,j}^w} \biggl\{} |
520 |
+ (\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 |
521 |
\biggr\} |
\biggr\} |
530 |
\phantom{=}& + \Delta{y}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j} |
\phantom{=}& + \Delta{y}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j} |
531 |
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 |
532 |
\phantom{=}& - \Delta{y}_{i,j}^{F} \frac{P}{2} \\ |
\phantom{=}& - \Delta{y}_{i,j}^{F} \frac{P}{2} \\ |
|
% |
|
533 |
(\Delta{x}_1\sigma_{21})_{i,j}^Z =& \phantom{+} |
(\Delta{x}_1\sigma_{21})_{i,j}^Z =& \phantom{+} |
534 |
\Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j} |
\Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j} |
535 |
\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 |
564 |
\intertext{with} |
\intertext{with} |
565 |
(\Delta{x}_1\sigma_{12})_{i,j}^Z =& \phantom{+} |
(\Delta{x}_1\sigma_{12})_{i,j}^Z =& \phantom{+} |
566 |
\Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
\Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
567 |
\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}} |
568 |
&+ \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
\\\notag & |
569 |
\frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^{V}} \\ \notag |
+ \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
570 |
&- \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 |
|
571 |
&- \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
&- \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
572 |
|
k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2} |
573 |
|
\\\notag & |
574 |
|
- \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} |
575 |
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 |
|
% |
|
576 |
(\Delta{x}_2\sigma_{22})_{i,j}^C =& \phantom{+} |
(\Delta{x}_2\sigma_{22})_{i,j}^C =& \phantom{+} |
577 |
\Delta{x}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j} |
\Delta{x}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j} |
578 |
\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 |
591 |
analogy to $(\epsilon_{12})^Z=0$ on boundaries, we set |
analogy to $(\epsilon_{12})^Z=0$ on boundaries, we set |
592 |
$\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. |
593 |
|
|
594 |
\subsubsection{Thermodynamics} |
\paragraph{Thermodynamics\label{sec:pkg:seaice:thermodynamics}} |
|
\label{sec:pkg:seaice:thermodynamics} |
|
595 |
|
|
596 |
In its original formulation the sea ice model \citep{menemenlis05} |
In its original formulation the sea ice model \citep{menemenlis05} |
597 |
uses simple thermodynamics following the appendix of |
uses simple thermodynamics following the appendix of |
615 |
\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 |
616 |
thickness category is area-averaged to give the total heat flux |
thickness category is area-averaged to give the total heat flux |
617 |
\citep{hibler84}. To use this thickness category parameterization set |
\citep{hibler84}. To use this thickness category parameterization set |
618 |
\texttt{\#define SEAICE\_MULTICATEGORY}; note that this requires |
\code{\#define SEAICE\_MULTICATEGORY}; note that this requires |
619 |
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 |
620 |
integration is not possible. |
integration is not possible. |
621 |
|
|
625 |
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 |
626 |
freezing point temperature that is a function of salinity. This flux |
freezing point temperature that is a function of salinity. This flux |
627 |
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 |
628 |
of three days (run-time parameter \texttt{SEAICE\_gamma\_t}) is used |
of three days (run-time parameter \code{SEAICE\_gamma\_t}) is used |
629 |
to relax $T_{w}$ to the freezing point. |
to relax $T_{w}$ to the freezing point. |
630 |
% |
% |
631 |
The parameterization of lateral and vertical growth of sea ice follows |
The parameterization of lateral and vertical growth of sea ice follows |
632 |
that of \citet{hib79, hib80}; the so-called lead closing parameter |
that of \citet{hib79, hib80}; the so-called lead closing parameter |
633 |
$h_{0}$ (run-time parameter \texttt{HO}) has a default value of |
$h_{0}$ (run-time parameter \code{HO}) has a default value of |
634 |
0.5~meters. |
0.5~meters. |
635 |
|
|
636 |
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 |
643 |
snowice formation (a flood-freeze algorithm following Archimedes' |
snowice formation (a flood-freeze algorithm following Archimedes' |
644 |
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$ |
645 |
\citep{leppaeranta83}. The flood-freeze algorithm is enabled with the CPP-flag |
\citep{leppaeranta83}. The flood-freeze algorithm is enabled with the CPP-flag |
646 |
\texttt{SEAICE\_ALLOW\_FLOODING} and turned on with run-time parameter |
\code{SEAICE\_ALLOW\_FLOODING} and turned on with run-time parameter |
647 |
\texttt{SEAICEuseFlooding=.true.}. |
\code{SEAICEuseFlooding=.true.}. |
648 |
|
|
649 |
Effective ice thickness (ice volume per unit area, |
Effective ice thickness (ice volume per unit area, |
650 |
$c\cdot{h}$), concentration $c$ and effective snow thickness |
$c\cdot{h}$), concentration $c$ and effective snow thickness |
664 |
distributions and to rule out unphysical over- and undershoots |
distributions and to rule out unphysical over- and undershoots |
665 |
(negative thickness or concentration). These scheme conserve volume |
(negative thickness or concentration). These scheme conserve volume |
666 |
and horizontal area and are unconditionally stable, so that we can set |
and horizontal area and are unconditionally stable, so that we can set |
667 |
$D_{X}=0$. Run-timeflags: \texttt{SEAICEadvScheme} (default=2), |
$D_{X}=0$. Run-timeflags: \code{SEAICEadvScheme} (default=2), |
668 |
\texttt{DIFF1} (default=0.004). |
\code{DIFF1} (default=0.004). |
669 |
|
|
670 |
There is considerable doubt about the reliability of a ``zero-layer'' |
There is considerable doubt about the reliability of a ``zero-layer'' |
671 |
thermodynamic model --- \citet{semtner84} found significant errors in |
thermodynamic model --- \citet{semtner84} found significant errors in |
698 |
\subsubsection{Key subroutines |
\subsubsection{Key subroutines |
699 |
\label{sec:pkg:seaice:subroutines}} |
\label{sec:pkg:seaice:subroutines}} |
700 |
|
|
701 |
Top-level routine: \texttt{seaice\_model.F} |
Top-level routine: \code{seaice\_model.F} |
702 |
|
|
703 |
{\footnotesize |
{\footnotesize |
704 |
\begin{verbatim} |
\begin{verbatim} |