| 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: |