[MITgcm-devel] Unrealistic low SST with SEAICE_GROWTH_LEGACY undef
Ian Fenty
ifenty at MIT.EDU
Tue Jan 31 20:13:07 EST 2012
Martin and whomever else is following,
My formulation of seaice growth (i.e. seaice_growth with the flags I
suggested) shouldn't generate SSTs below the freezing point from any
non-pathological thermodynamic process. By design, all heat fluxes out
of the ocean surface to the atmosphere are used to grow ice, not reduce
seawater temperature.
The normal way that seawater temperatures fall when ice is present with
my flags occurs with the McPhee heat flux patermeterization [MHFP] in
which a fraction (read: less than 100%) of the seawater enthalpy
available to melt -- that is, (T_ocean - T_freezing)*cp*rho_ice -- is
removed from the seawater to melt ice. When everything is working
correctly, T_ocean quickly approaches, but never falls below, T_freezing
when ice is present.
Using the MHFP, the existence of SSTs below the freezing point (which
again are never supposed to happen) are a warning sign that something
else is going wrong that needs to be addressed, not an indication of a
failure of seaice_growth.
Therefore, I can make the following guesses about where your strange
SSTs come from:
1) treatment of pathological HEFF/AREA/SNOW values when we enter the
subroutine
2) error in shortwave radiation fields which somehow changes their sign
3) errors from non-minima preserving theta advection
Point 1: pathological treatment
---------------------------------------------------
Problem: When seaice_growth begins, we handle some pathological cases
in a way which can generate SSTs below T_freeze.
case 1: negative heffs or negative hsnow
how we treat: extract seawater enthalpy to spontaneously create an
equal and opposite quantity of ice such that the sum of old + new ice is
zero regardless of whether there is any available enthalpy to do it.
case 2: "very thin ice"
how we treat: extract seawater enthalpy to melt all of the "very thin
ice" and also any snow that happens to be around, regardless of whether
there is any available enthalpy to do it.
Thus, if somehow negative or "very thin" ice keeps appearing in a
grid cell, seawater temperatures can be driven far below T_freeze.
Diagnosis: Make a diagnostic for d_HEFFbyNEG and d_HSNWbyNEG (they
don't exist now) and see if they are nonzero near where you have the
problem.
Solution 1: fix sea ice advection so that negative values don't come out.
Solution 2: change pathological treatment such that you don't remove
energy that isn't there!
Solution 3: stop caring about "very thin" ice (change siEps to zero)
if that is the culprit
Point 2: QSW
---------------------------------------------------
If somehow, a_QSWbyATM_cover or a_QSWbyATM_open are positive (i.e.
indicate a shortwave radiative flux out of the ocean), heat will be
removed from those grid cells "penetrated" by the erroneous QSW. This
cooling will drive seawater temps far below the freezing point.
Diagnosis: Since QSW should only ever be positive, it would be easy to
diagnose this problem by checking a_QSWbyATM_cover and a_QSWbyATM_open
and making sure they always have the right sign. Again, there don't
seem to be built-in diagnostics for those terms so you'll have to add them.
Solution: fix QSW sign.
Point 3: Errors from non-minima preserving theta advection.
---------------------------------------------------
I don't convert negative SSTs to ice so if the advection scheme
doesn't preserve minima, SSTs below T_freeze could result. If there is
a place where advection errors keep driving theta down, you could end up
with places with very very negative SSTs.
Diagnosis: Check theta pre and post advection to make sure T >=
T_freeze going in and out.
Solution: Put in special pathological case handling advection errors
only.
More information about the MITgcm-devel
mailing list