--- manual/s_phys_pkgs/text/seaice.tex 2009/05/13 12:54:45 1.8 +++ manual/s_phys_pkgs/text/seaice.tex 2011/12/14 11:22:42 1.19 @@ -1,4 +1,4 @@ -% $Header: /home/ubuntu/mnt/e9_copy/manual/s_phys_pkgs/text/seaice.tex,v 1.8 2009/05/13 12:54:45 mlosch Exp $ +% $Header: /home/ubuntu/mnt/e9_copy/manual/s_phys_pkgs/text/seaice.tex,v 1.19 2011/12/14 11:22:42 mlosch Exp $ % $Name: $ %%EH3 Copied from "MITgcm/pkg/seaice/seaice_description.tex" @@ -16,7 +16,7 @@ %---------------------------------------------------------------------- \subsubsection{Introduction -\label{sec:pkg:exf:intro}} +\label{sec:pkg:seaice:intro}} Package ``seaice'' provides a dynamic and thermodynamic interactive @@ -25,13 +25,13 @@ CPP options enable or disable different aspects of the package (Section \ref{sec:pkg:seaice:config}). Run-Time options, flags, filenames and field-related dates/times are -set in \texttt{data.seaice} +set in \code{data.seaice} (Section \ref{sec:pkg:seaice:runtime}). A description of key subroutines is given in Section \ref{sec:pkg:seaice:subroutines}. Input fields, units and sign conventions are summarized in Section \ref{sec:pkg:seaice:fields_units}, and available diagnostics -output is listed in Section \ref{sec:pkg:seaice:fields_diagnostics}. +output is listed in Section \ref{sec:pkg:seaice:diagnostics}. %---------------------------------------------------------------------- @@ -46,26 +46,26 @@ \begin{itemize} % \item -using the \texttt{packages.conf} file by adding \texttt{seaice} to it, +using the \code{packages.conf} file by adding \code{seaice} to it, % \item -or using \texttt{genmake2} adding -\texttt{-enable=seaice} or \texttt{-disable=seaice} switches +or using \code{genmake2} adding +\code{-enable=seaice} or \code{-disable=seaice} switches % \item \textit{required packages and CPP options}: \\ -SEAICE requires the external forcing package \texttt{exf} to be enabled; +SEAICE requires the external forcing package \code{exf} to be enabled; no additional CPP options are required. % \end{itemize} -(see Section \ref{sect:buildingCode}). +(see Section \ref{sec:buildingCode}). Parts of the SEAICE code can be enabled or disabled at compile time via CPP preprocessor flags. These options are set in either -\texttt{SEAICE\_OPTIONS.h} or in \texttt{ECCO\_CPPOPTIONS.h}. +\code{SEAICE\_OPTIONS.h} or in \code{ECCO\_CPPOPTIONS.h}. Table \ref{tab:pkg:seaice:cpp} summarizes these options. -\begin{table}[h!] +\begin{table}[!ht] \centering \label{tab:pkg:seaice:cpp} {\footnotesize @@ -73,33 +73,33 @@ \hline \textbf{CPP option} & \textbf{Description} \\ \hline \hline - \texttt{SEAICE\_DEBUG} & + \code{SEAICE\_DEBUG} & Enhance STDOUT for debugging \\ - \texttt{SEAICE\_ALLOW\_DYNAMICS} & + \code{SEAICE\_ALLOW\_DYNAMICS} & sea-ice dynamics code \\ - \texttt{SEAICE\_CGRID} & + \code{SEAICE\_CGRID} & LSR solver on C-grid (rather than original B-grid) \\ - \texttt{SEAICE\_ALLOW\_EVP} & + \code{SEAICE\_ALLOW\_EVP} & use EVP rather than LSR rheology solver \\ - \texttt{SEAICE\_EXTERNAL\_FLUXES} & + \code{SEAICE\_EXTERNAL\_FLUXES} & use EXF-computed fluxes as starting point \\ - \texttt{SEAICE\_MULTICATEGORY} & + \code{SEAICE\_MULTICATEGORY} & enable 8-category thermodynamics (by default undefined)\\ - \texttt{SEAICE\_VARIABLE\_FREEZING\_POINT} & + \code{SEAICE\_VARIABLE\_FREEZING\_POINT} & enable linear dependence of the freezing point on salinity (by default undefined)\\ - \texttt{ALLOW\_SEAICE\_FLOODING} & + \code{ALLOW\_SEAICE\_FLOODING} & enable snow to ice conversion for submerged sea-ice \\ - \texttt{SEAICE\_SALINITY} & + \code{SEAICE\_SALINITY} & enable "salty" sea-ice (by default undefined) \\ - \texttt{SEAICE\_AGE} & + \code{SEAICE\_AGE} & enable "age tracer" sea-ice (by default undefined) \\ - \texttt{SEAICE\_CAP\_HEFF} & + \code{SEAICE\_CAP\_HEFF} & enable capping of sea-ice thickness to MAX\_HEFF \\ \hline - \texttt{SEAICE\_BICE\_STRESS} & + \code{SEAICE\_BICE\_STRESS} & B-grid only for backward compatiblity: turn on ice-stress on ocean\\ - \texttt{EXPLICIT\_SSH\_SLOPE} & + \code{EXPLICIT\_SSH\_SLOPE} & B-grid only for backward compatiblity: use ETAN for tilt computations rather than geostrophic velocities \\ \hline @@ -113,23 +113,35 @@ \subsubsection{Run-time parameters \label{sec:pkg:seaice:runtime}} -Run-time parameters are set in files -\texttt{data.pkg} (read in \texttt{packages\_readparms.F}), -and \texttt{data.seaice} (read in \texttt{seaice\_readparms.F}). +Run-time parameters (see Table~\ref{tab:pkg:seaice:runtimeparms}) are set +in files \code{data.pkg} (read in \code{packages\_readparms.F}), and +\code{data.seaice} (read in \code{seaice\_readparms.F}). \paragraph{Enabling the package} ~ \\ % A package is switched on/off at run-time by setting -(e.g. for SEAICE) \texttt{useSEAICE = .TRUE.} in \texttt{data.pkg}. +(e.g. for SEAICE) \code{useSEAICE = .TRUE.} in \code{data.pkg}. \paragraph{General flags and parameters} ~ \\ % Table~\ref{tab:pkg:seaice:runtimeparms} lists most run-time parameters. -\input{part6/seaice-parms.tex} - +\input{s_phys_pkgs/text/seaice-parms.tex} +\paragraph{Input fields and units\label{sec:pkg:seaice:fields_units}} +\begin{description} +\item[\code{HeffFile}:] Initial sea ice thickness averaged over grid cell + in meters; initializes variable \code{HEFF}; +\item[\code{AreaFile}:] Initial fractional sea ice cover, range $[0,1]$; + initializes variable \code{AREA}; +\item[\code{HsnowFile}:] Initial snow thickness on sea ice averaged + over grid cell in meters; initializes variable \code{HSNOW}; +\item[\code{HsaltFile}:] Initial salinity of sea ice averaged over grid + cell in g/m$^2$; initializes variable \code{HSALT}; +\item[\code{IceAgeFile}:] Initial ice age of sea ice averaged over grid + cell in seconds; initializes variable \code{ICEAGE}; +\end{description} %---------------------------------------------------------------------- \subsubsection{Description @@ -202,26 +214,39 @@ to use the VP model as the default dynamic component of our ice model. To do this we extended the line successive over relaxation (LSOR) method of \citet{zhang97} for use in a parallel -configuration. +configuration. An EVP model and a free-drift implemtation can be +selected with runtime flags. -Note, that by default the seaice-package includes the orginial +\paragraph{Compatibility with ice-thermodynamics package \code{thsice}\label{sec:pkg:seaice:thsice}}~\\ +% +Note, that by default the \code{seaice}-package includes the orginial so-called zero-layer thermodynamics following \citet{hib80} with a snow cover as in \citet{zha98a}. The zero-layer thermodynamic model assumes that ice does not store heat and, therefore, tends to exaggerate the seasonal variability in ice thickness. This exaggeration can be significantly reduced by using -\citeauthor{sem76}'s~[\citeyear{sem76}] three-layer thermodynamic model -that permits heat storage in ice. Recently, the three-layer -thermodynamic model has been reformulated by \citet{win00}. The -reformulation improves model physics by representing the brine content -of the upper ice with a variable heat capacity. It also improves -model numerics and consumes less computer time and memory. The Winton -sea-ice thermodynamics have been ported to the MIT GCM; they currently -reside under pkg/thsice. The package pkg/thsice is fully compatible -with pkg/seaice and with pkg/exf. When turned on together with -pkg/seaice, the zero-layer thermodynamics are replaced by the Winton -thermodynamics. +\citeauthor{sem76}'s~[\citeyear{sem76}] three-layer thermodynamic +model that permits heat storage in ice. Recently, the three-layer thermodynamic model has been reformulated by +\citet{win00}. The reformulation improves model physics by +representing the brine content of the upper ice with a variable heat +capacity. It also improves model numerics and consumes less computer +time and memory. + +The Winton sea-ice thermodynamics have been ported to the MIT GCM; +they currently reside under \code{pkg/thsice}. The package +\code{thsice} is described in section~\ref{sec:pkg:thsice}; it is +fully compatible with the packages \code{seaice} and \code{exf}. When +turned on together with \code{seaice}, the zero-layer thermodynamics +are replaced by the Winton thermodynamics. In order to use the +\code{seaice}-package with the thermodynamics of \code{thsice}, +compile both packages and turn both package on in \code{data.pkg}; see +an example in \code{global\_ocean.cs32x15/input.icedyn}. Note, that +once \code{thsice} is turned on, the variables and diagnostics +associated to the default thermodynamics are meaningless, and the +diagnostics of \code{thsice} have to be used instead. +\paragraph{Surface forcing\label{sec:pkg:seaice:surfaceforcing}}~\\ +% The sea ice model requires the following input fields: 10-m winds, 2-m air temperature and specific humidity, downward longwave and shortwave radiations, precipitation, evaporation, and river and glacier runoff. @@ -232,9 +257,8 @@ global: in ice-free regions bulk formulae are used to estimate oceanic forcing from the atmospheric fields. -\subsubsection{Dynamics} -\label{sec:pkg:seaice:dynamics} - +\paragraph{Dynamics\label{sec:pkg:seaice:dynamics}}~\\ +% \newcommand{\vek}[1]{\ensuremath{\vec{\mathbf{#1}}}} \newcommand{\vtau}{\vek{\mathbf{\tau}}} The momentum equation of the sea-ice model is @@ -264,7 +288,7 @@ \vtau_{air} = & \rho_{air} C_{air} |\vek{U}_{air} -\vek{u}| R_{air} (\vek{U}_{air} -\vek{u}), \\ \vtau_{ocean} = & \rho_{ocean}C_{ocean} |\vek{U}_{ocean}-\vek{u}| - R_{ocean}(\vek{U}_{ocean}-\vek{u}), \\ + R_{ocean}(\vek{U}_{ocean}-\vek{u}), \end{align*} where $\vek{U}_{air/ocean}$ are the surface winds of the atmosphere and surface currents of the ocean, respectively; $C_{air/ocean}$ are @@ -272,6 +296,8 @@ densities; and $R_{air/ocean}$ are rotation matrices that act on the wind/current vectors. +\paragraph{Viscous-Plastic (VP) Rheology and LSOR solver \label{sec:pkg:seaice:VPdynamics}}~\\ +% For an isotropic system the stress tensor $\sigma_{ij}$ ($i,j=1,2$) can be related to the ice strain rate and strength by a nonlinear viscous-plastic (VP) constitutive law \citep{hib79, zhang97}: @@ -291,10 +317,10 @@ The maximum ice pressure $P_{\max}$, a measure of ice strength, depends on both thickness $h$ and compactness (concentration) $c$: \begin{equation} - P_{\max} = P^{*}c\,h\,e^{[C^{*}\cdot(1-c)]}, + P_{\max} = P^{*}c\,h\,\exp\{-C^{*}\cdot(1-c)\}, \label{eq:icestrength} \end{equation} -with the constants $P^{*}$ (run-time parameter \texttt{SEAICE\_strength}) and +with the constants $P^{*}$ (run-time parameter \code{SEAICE\_strength}) and $C^{*}=20$. The nonlinear bulk and shear viscosities $\eta$ and $\zeta$ are functions of ice strain rate invariants and ice strength such that the principal components of the @@ -313,29 +339,16 @@ \end{align*} The bulk viscosities are bounded above by imposing both a minimum $\Delta_{\min}$ (for numerical reasons, run-time parameter -\texttt{SEAICE\_EPS} with a default value of +\code{SEAICE\_EPS} with a default value of $10^{-10}\text{\,s}^{-1}$) and a maximum $\zeta_{\max} = P_{\max}/\Delta^*$, where $\Delta^*=(5\times10^{12}/2\times10^4)\text{\,s}^{-1}$. (There is also the option of bounding $\zeta$ from below by setting run-time -parameter \texttt{SEAICE\_zetaMin} $>0$, but this is generally not +parameter \code{SEAICE\_zetaMin} $>0$, but this is generally not recommended). For stress tensor computation the replacement pressure $P = 2\,\Delta\zeta$ \citep{hibler95} is used so that the stress state always lies on the elliptic yield curve by definition. -In the so-called truncated ellipse method the shear viscosity $\eta$ -is capped to suppress any tensile stress \citep{hibler97, geiger98}: -\begin{equation} - \label{eq:etatem} - \eta = \min\left(\frac{\zeta}{e^2}, - \frac{\frac{P}{2}-\zeta(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})} - {\sqrt{(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})^2 - +4\dot{\epsilon}_{12}^2}}\right). -\end{equation} -To enable this method, set \texttt{\#define SEAICE\_ALLOW\_TEM} in -\texttt{SEAICE\_OPTIONS.h} and turn it on with -\texttt{SEAICEuseTEM=.TRUE.} in \texttt{data.seaice}. - In the current implementation, the VP-model is integrated with the semi-implicit line successive over relaxation (LSOR)-solver of \citet{zhang97}, which allows for long time steps that, in our case, @@ -345,6 +358,8 @@ same length as in the ocean model where the Coriolis term is also treated explicitly. +\paragraph{Elastic-Viscous-Plastic (EVP) Dynamics\label{sec:pkg:seaice:EVPdynamics}}~\\ +% \citet{hun97}'s introduced an elastic contribution to the strain rate in order to regularize Eq.~\ref{eq:vpequation} in such a way that the resulting elastic-viscous-plastic (EVP) and VP models are @@ -362,11 +377,12 @@ %used and compared the present sea-ice model study. The EVP-model uses an explicit time stepping scheme with a short timestep. According to the recommendation of \citet{hun97}, the -EVP-model is stepped forward in time 120 times within the physical -ocean model time step (although this parameter is under debate), to -allow for elastic waves to disappear. Because the scheme does not -require a matrix inversion it is fast in spite of the small internal -timestep and simple to implement on parallel computers +EVP-model should be stepped forward in time 120 times +($\code{SEAICE\_deltaTevp} = \code{SEAICIE\_deltaTdyn}/120$) within +the physical ocean model time step (although this parameter is under +debate), to allow for elastic waves to disappear. Because the scheme +does not require a matrix inversion it is fast in spite of the small +internal timestep and simple to implement on parallel computers \citep{hun97}. For completeness, we repeat the equations for the components of the stress tensor $\sigma_{1} = \sigma_{11}+\sigma_{22}$, $\sigma_{2}= \sigma_{11}-\sigma_{22}$, and @@ -387,25 +403,43 @@ \frac{\partial\sigma_{12}}{\partial{t}} + \frac{\sigma_{12} e^{2}}{2T} &= \frac{P}{4T\Delta} D_S \end{align} -Here, the elastic parameter $E$ is redefined in terms of a damping timescale -$T$ for elastic waves \[E=\frac{\zeta}{T}.\] -$T=E_{0}\Delta{t}$ with the tunable parameter $E_0<1$ and -the external (long) timestep $\Delta{t}$. \citet{hun97} recommend -$E_{0} = \frac{1}{3}$ (which is the default value in the code). +Here, the elastic parameter $E$ is redefined in terms of a damping +timescale $T$ for elastic waves \[E=\frac{\zeta}{T}.\] +$T=E_{0}\Delta{t}$ with the tunable parameter $E_0<1$ and the external +(long) timestep $\Delta{t}$. $E_{0} = \frac{1}{3}$ is the default +value in the code and close to what \citet{hun97} and +\citet{hun01} recommend. -To use the EVP solver, make sure that both \texttt{SEAICE\_CGRID} and -\texttt{SEAICE\_ALLOW\_EVP} are defined in \texttt{SEAICE\_OPTIONS.h} +To use the EVP solver, make sure that both \code{SEAICE\_CGRID} and +\code{SEAICE\_ALLOW\_EVP} are defined in \code{SEAICE\_OPTIONS.h} (default). The solver is turned on by setting the sub-cycling time -step \texttt{SEAICE\_deltaTevp} to a value larger than zero. The +step \code{SEAICE\_deltaTevp} to a value larger than zero. The choice of this time step is under debate. \citet{hun97} recommend order(120) time steps for the EVP solver within one model time step -$\Delta{t}$ (\texttt{deltaTmom}). One can also choose order(120) time +$\Delta{t}$ (\code{deltaTmom}). One can also choose order(120) time steps within the forcing time scale, but then we recommend adjusting the damping time scale $T$ accordingly, by setting either -\texttt{SEAICE\_elasticParm} ($E_{0}$), so that +\code{SEAICE\_elasticParm} ($E_{0}$), so that $E_{0}\Delta{t}=\mbox{forcing time scale}$, or directly -\texttt{SEAICE\_evpTauRelax} ($T$) to the forcing time scale. +\code{SEAICE\_evpTauRelax} ($T$) to the forcing time scale. +\paragraph{Truncated ellipse method (TEM) for yield curve \label{sec:pkg:seaice:TEM}}~\\ +% +In the so-called truncated ellipse method the shear viscosity $\eta$ +is capped to suppress any tensile stress \citep{hibler97, geiger98}: +\begin{equation} + \label{eq:etatem} + \eta = \min\left(\frac{\zeta}{e^2}, + \frac{\frac{P}{2}-\zeta(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})} + {\sqrt{(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})^2 + +4\dot{\epsilon}_{12}^2}}\right). +\end{equation} +To enable this method, set \code{\#define SEAICE\_ALLOW\_TEM} in +\code{SEAICE\_OPTIONS.h} and turn it on with +\code{SEAICEuseTEM} in \code{data.seaice}. + +\paragraph{Ice-Ocean stress \label{sec:pkg:seaice:iceoceanstress}}~\\ +% Moving sea ice exerts a stress on the ocean which is the opposite of the stress $\vtau_{ocean}$ in Eq.~\ref{eq:momseaice}. This stess is applied directly to the surface layer of the ocean model. An @@ -422,7 +456,7 @@ velocity and the ice velocity leading to an inconsistency as the ice temperature and salinity are different from the oceanic variables. To turn on the stress formulation of \citet{hibler87}, set -\texttt{useHB87StressCoupling=.TRUE.} in \texttt{data.seaice}. +\code{useHB87StressCoupling=.TRUE.} in \code{data.seaice}. % Our discretization differs from \citet{zhang97, zhang03} in the @@ -434,9 +468,9 @@ % differences and averaging is only involved in computing $\Delta$ and % $P$ at vorticity points. -\subsubsection{Finite-volume discretization of the stress tensor - divergence} -\label{sec:pkg:seaice:discretization} +\paragraph{Finite-volume discretization of the stress tensor + divergence\label{sec:pkg:seaice:discretization}}~\\ +% On an Arakawa C~grid, ice thickness and concentration and thus ice strength $P$ and bulk and shear viscosities $\zeta$ and $\eta$ are naturally defined a C-points in the center of the grid @@ -515,11 +549,15 @@ + \Delta{x}_1\sigma_{21}\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}} \biggr\} \\ \notag =& \frac{1}{A_{i,j}^w} \biggl\{ - (\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 - + (\Delta{x}_2\sigma_{11})_{i-1,j}^C + \\\notag \phantom{=}& \phantom{\frac{1}{A_{i,j}^w} \biggl\{} + (\Delta{x}_1\sigma_{21})_{i,j+1}^Z - (\Delta{x}_1\sigma_{21})_{i,j}^Z \biggr\} - \intertext{with} +\end{align} +with +\begin{align} (\Delta{x}_2\sigma_{11})_{i,j}^C =& \phantom{+} \Delta{y}_{i,j}^{F}(\zeta + \eta)^{C}_{i,j} \frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}} \\ \notag @@ -530,7 +568,6 @@ \phantom{=}& + \Delta{y}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j} k_{1,i,j}^{C}\frac{u_{i+1,j}+u_{i,j}}{2} \\ \notag \phantom{=}& - \Delta{y}_{i,j}^{F} \frac{P}{2} \\ - % (\Delta{x}_1\sigma_{21})_{i,j}^Z =& \phantom{+} \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j} \frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^{U}} \\ \notag @@ -562,17 +599,20 @@ \phantom{=}& \phantom{\frac{1}{A_{i,j}^s} \biggl\{} + (\Delta{x}_1\sigma_{22})_{i,j}^C - (\Delta{x}_1\sigma_{22})_{i,j-1}^C \biggr\} - \intertext{with} +\end{align} +with +\begin{align} (\Delta{x}_1\sigma_{12})_{i,j}^Z =& \phantom{+} \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} - \frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^{U}} \\\notag - &+ \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} - \frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^{V}} \\ \notag - &- \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} - k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2} \\ \notag + \frac{u_{i,j}-u_{i,j-1}}{\Delta{y}_{i,j}^{U}} + \\\notag & + + \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} + \frac{v_{i,j}-v_{i-1,j}}{\Delta{x}_{i,j}^{V}} \\\notag &- \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} + k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2} + \\\notag & + - \Delta{y}_{i,j}^{U}\overline{\eta}^{Z}_{i,j} k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2} \\ \notag - % (\Delta{x}_2\sigma_{22})_{i,j}^C =& \phantom{+} \Delta{x}_{i,j}^{F}(\zeta - \eta)^{C}_{i,j} \frac{u_{i+1,j}-u_{i,j}}{\Delta{x}_{i,j}^{F}} \\ \notag @@ -591,9 +631,8 @@ analogy to $(\epsilon_{12})^Z=0$ on boundaries, we set $\sigma_{21}^{Z}=0$, or equivalently $\eta_{i,j}^{Z}=0$, on boundaries. -\subsubsection{Thermodynamics} -\label{sec:pkg:seaice:thermodynamics} - +\paragraph{Thermodynamics\label{sec:pkg:seaice:thermodynamics}}~\\ +% In its original formulation the sea ice model \citep{menemenlis05} uses simple thermodynamics following the appendix of \citet{sem76}. This formulation does not allow storage of heat, @@ -616,7 +655,7 @@ \frac{2n-1}{7}\,h$ for $n\in[1,7]$. The heat fluxes computed for each thickness category is area-averaged to give the total heat flux \citep{hibler84}. To use this thickness category parameterization set -\texttt{\#define SEAICE\_MULTICATEGORY}; note that this requires +\code{\#define SEAICE\_MULTICATEGORY}; note that this requires different restart files and switching this flag on in the middle of an integration is not possible. @@ -626,12 +665,12 @@ the density and heat capacity of sea water and $T_{fr}$ is the local freezing point temperature that is a function of salinity. This flux is not assumed to instantaneously melt or create ice, but a time scale -of three days (run-time parameter \texttt{SEAICE\_gamma\_t}) is used +of three days (run-time parameter \code{SEAICE\_gamma\_t}) is used to relax $T_{w}$ to the freezing point. % The parameterization of lateral and vertical growth of sea ice follows that of \citet{hib79, hib80}; the so-called lead closing parameter -$h_{0}$ (run-time parameter \texttt{HO}) has a default value of +$h_{0}$ (run-time parameter \code{HO}) has a default value of 0.5~meters. On top of the ice there is a layer of snow that modifies the heat flux @@ -644,9 +683,11 @@ snowice formation (a flood-freeze algorithm following Archimedes' principle) turns snow into ice until the ice surface is back at $z=0$ \citep{leppaeranta83}. The flood-freeze algorithm is enabled with the CPP-flag -\texttt{SEAICE\_ALLOW\_FLOODING} and turned on with run-time parameter -\texttt{SEAICEuseFlooding=.true.}. +\code{SEAICE\_ALLOW\_FLOODING} and turned on with run-time parameter +\code{SEAICEuseFlooding=.true.}. +\paragraph{Advection of thermodynamic variables\label{sec:pkg:seaice:advection}}~\\ +% Effective ice thickness (ice volume per unit area, $c\cdot{h}$), concentration $c$ and effective snow thickness ($c\cdot{h}_{s}$) are advected by ice velocities: @@ -659,47 +700,49 @@ diffusive terms for quantities $X=(c\cdot{h}), c, (c\cdot{h}_{s})$. % From the various advection scheme that are available in the MITgcm, we -choose flux-limited schemes \citep[multidimensional 2nd and 3rd-order -advection scheme with flux limiter][]{roe:85, hundsdorfer94} to -preserve sharp gradients and edges that are typical of sea ice +recommend flux-limited schemes \citep[multidimensional 2nd and +3rd-order advection scheme with flux limiter][]{roe:85, hundsdorfer94} +to preserve sharp gradients and edges that are typical of sea ice distributions and to rule out unphysical over- and undershoots -(negative thickness or concentration). These scheme conserve volume +(negative thickness or concentration). These schemes conserve volume and horizontal area and are unconditionally stable, so that we can set -$D_{X}=0$. Run-timeflags: \texttt{SEAICEadvScheme} (default=2), -\texttt{DIFF1} (default=0.004). - -There is considerable doubt about the reliability of a ``zero-layer'' -thermodynamic model --- \citet{semtner84} found significant errors in -phase (one month lead) and amplitude ($\approx$50\%\,overestimate) in -such models --- so that today many sea ice models employ more complex -thermodynamics. The MITgcm sea ice model provides the option to use -the thermodynamics model of \citet{win00}, which in turn is based -on the 3-layer model of \citet{sem76} and which treats brine -content by means of enthalpy conservation. This scheme requires -additional state variables, namely the enthalpy of the two ice layers -(instead of effective ice salinity), to be advected by ice velocities. +$D_{X}=0$. Run-timeflags: \code{SEAICEadvScheme} (default=2, is the +historic 2nd-order, centered difference scheme), \code{DIFF1} = +$D_{X}/\Delta{x}$ +(default=0.004). + +The MITgcm sea ice model provides the option to use +the thermodynamics model of \citet{win00}, which in turn is based on +the 3-layer model of \citet{sem76} and which treats brine content by +means of enthalpy conservation; the corresponding package +\code{thsice} is described in section~\ref{sec:pkg:thsice}. This +scheme requires additional state variables, namely the enthalpy of the +two ice layers (instead of effective ice salinity), to be advected by +ice velocities. % The internal sea ice temperature is inferred from ice enthalpy. To avoid unphysical (negative) values for ice thickness and concentration, a positive 2nd-order advection scheme with a SuperBee -flux limiter \citep{roe:85} is used in this study to advect all -sea-ice-related quantities of the \citet{win00} thermodynamic -model. Because of the non-linearity of the advection scheme, care -must be taken in advecting these quantities: when simply using ice -velocity to advect enthalpy, the total energy (i.e., the volume -integral of enthalpy) is not conserved. Alternatively, one can advect -the energy content (i.e., product of ice-volume and enthalpy) but then -false enthalpy extrema can occur, which then leads to unrealistic ice -temperature. In the currently implemented solution, the sea-ice mass -flux is used to advect the enthalpy in order to ensure conservation of -enthalpy and to prevent false enthalpy extrema. +flux limiter \citep{roe:85} should be used to advect all +sea-ice-related quantities of the \citet{win00} thermodynamic model +(runtime flag \code{thSIceAdvScheme=77} and +\code{thSIce\_diffK}=$D_{X}$=0 in \code{data.ice}, defaults are 0). Because of the +non-linearity of the advection scheme, care must be taken in advecting +these quantities: when simply using ice velocity to advect enthalpy, +the total energy (i.e., the volume integral of enthalpy) is not +conserved. Alternatively, one can advect the energy content (i.e., +product of ice-volume and enthalpy) but then false enthalpy extrema +can occur, which then leads to unrealistic ice temperature. In the +currently implemented solution, the sea-ice mass flux is used to +advect the enthalpy in order to ensure conservation of enthalpy and to +prevent false enthalpy extrema. % %---------------------------------------------------------------------- \subsubsection{Key subroutines \label{sec:pkg:seaice:subroutines}} -Top-level routine: \texttt{seaice\_model.F} +Top-level routine: \code{seaice\_model.F} {\footnotesize \begin{verbatim} @@ -758,58 +801,7 @@ Available output fields are summarized in Table \ref{tab:pkg:seaice:diagnostics}. -\begin{table}[h!] -\centering -\label{tab:pkg:seaice:diagnostics} -{\footnotesize -\begin{verbatim} ----------+----+----+----------------+----------------- - <-Name->|Levs|grid|<-- Units -->|<- Tile (max=80c) ----------+----+----+----------------+----------------- - SIarea | 1 |SM |m^2/m^2 |SEAICE fractional ice-covered area [0 to 1] - SIheff | 1 |SM |m |SEAICE effective ice thickness - SIuice | 1 |UU |m/s |SEAICE zonal ice velocity, >0 from West to East - SIvice | 1 |VV |m/s |SEAICE merid. ice velocity, >0 from South to North - SIhsnow | 1 |SM |m |SEAICE snow thickness - SIhsalt | 1 |SM |g/m^2 |SEAICE effective salinity - SIatmFW | 1 |SM |kg/m^2/s |Net freshwater flux from the atmosphere (+=down) - SIuwind | 1 |SM |m/s |SEAICE zonal 10-m wind speed, >0 increases uVel - SIvwind | 1 |SM |m/s |SEAICE meridional 10-m wind speed, >0 increases uVel - SIfu | 1 |UU |N/m^2 |SEAICE zonal surface wind stress, >0 increases uVel - SIfv | 1 |VV |N/m^2 |SEAICE merid. surface wind stress, >0 increases vVel - SIempmr | 1 |SM |kg/m^2/s |SEAICE upward freshwater flux, > 0 increases salt - SIqnet | 1 |SM |W/m^2 |SEAICE upward heatflux, turb+rad, >0 decreases theta - SIqsw | 1 |SM |W/m^2 |SEAICE upward shortwave radiat., >0 decreases theta - SIpress | 1 |SM |m^2/s^2 |SEAICE strength (with upper and lower limit) - SIzeta | 1 |SM |m^2/s |SEAICE nonlinear bulk viscosity - SIeta | 1 |SM |m^2/s |SEAICE nonlinear shear viscosity - SIsigI | 1 |SM |no units |SEAICE normalized principle stress, component one - SIsigII | 1 |SM |no units |SEAICE normalized principle stress, component two - SIthdgrh| 1 |SM |m/s |SEAICE thermodynamic growth rate of effective ice thickness - SIsnwice| 1 |SM |m/s |SEAICE ice formation rate due to flooding - SIuheff | 1 |UU |m^2/s |Zonal Transport of effective ice thickness - SIvheff | 1 |VV |m^2/s |Meridional Transport of effective ice thickness - ADVxHEFF| 1 |UU |m.m^2/s |Zonal Advective Flux of eff ice thickn - ADVyHEFF| 1 |VV |m.m^2/s |Meridional Advective Flux of eff ice thickn - DFxEHEFF| 1 |UU |m.m^2/s |Zonal Diffusive Flux of eff ice thickn - DFyEHEFF| 1 |VV |m.m^2/s |Meridional Diffusive Flux of eff ice thickn - ADVxAREA| 1 |UU |m^2/m^2.m^2/s |Zonal Advective Flux of fract area - ADVyAREA| 1 |VV |m^2/m^2.m^2/s |Meridional Advective Flux of fract area - DFxEAREA| 1 |UU |m^2/m^2.m^2/s |Zonal Diffusive Flux of fract area - DFyEAREA| 1 |VV |m^2/m^2.m^2/s |Meridional Diffusive Flux of fract area - ADVxSNOW| 1 |UU |m.m^2/s |Zonal Advective Flux of eff snow thickn - ADVySNOW| 1 |VV |m.m^2/s |Meridional Advective Flux of eff snow thickn - DFxESNOW| 1 |UU |m.m^2/s |Zonal Diffusive Flux of eff snow thickn - DFyESNOW| 1 |VV |m.m^2/s |Meridional Diffusive Flux of eff snow thickn - ADVxSSLT| 1 |UU |psu.m^2/s |Zonal Advective Flux of seaice salinity - ADVySSLT| 1 |VV |psu.m^2/s |Meridional Advective Flux of seaice salinity - DFxESSLT| 1 |UU |psu.m^2/s |Zonal Diffusive Flux of seaice salinity - DFyESSLT| 1 |VV |psu.m^2/s |Meridional Diffusive Flux of seaice salinity -\end{verbatim} -} -\caption{Available diagnostics of the seaice-package} -\end{table} - +\input{s_phys_pkgs/text/seaice_diags.tex} %\subsubsection{Package Reference} @@ -817,11 +809,17 @@ \label{sec:pkg:seaice:experiments} \begin{itemize} -\item{Labrador Sea experiment in lab\_sea verification directory. } +\item{Labrador Sea experiment in \code{lab\_sea} verification directory. } +\item \code{seaice\_obcs}, based on \code{lab\_sea} +\item \code{offline\_exf\_seaice/input.seaicetd}, based on \code{lab\_sea} +\item \code{global\_ocean.cs32x15/input.icedyn} and + \code{global\_ocean.cs32x15/input.seaice}, global + cubed-sphere-experiment with combinations of \code{seaice} and + \code{thsice} \end{itemize} %%% Local Variables: %%% mode: latex -%%% TeX-master: "../manual" +%%% TeX-master: "../../manual" %%% End: