MITgcm
MITgcm copied to clipboard
Fix surface boundary conditions for TEOS-10
What changes does this PR introduce?
This a bug fix towards completing the TEOS-10 implementation
What is the current behaviour?
When using TEOS-10 ('eosType='TEOS10'
, in data&PARMS01
), the variable THETA
is interpreted as conservative temperatures (CT), which introduces a bias at in bulk formulae at the surface. Therefore CT needs to be converted to potential (or at the surface: in-situ) temperature before using it in bulk formulae.
What is the new behaviour
add a new field seaSurfTemp
that is computed once to be used in all bulk formulae. Convert this from CT to potential/in-situ temperature if 'eosType='TEOS10'`.
Does this PR introduce a breaking change?
- changes results when using
TEOS10
- moved
sstExtrapol
frompkg/exf
to the main namelistdata&PARMS01
, I doubt that anyone uses this.
Other information:
This is a draft to leave room for discussion as I may have missed a few points.
Also, I moved the extrapolation parameter sstExtrapol
from pkg/exf
to the main namelist data&PARMS01
, so that it is available to all code. We might want to discuss a new name for this or find a good way of retiring it from the namelist without changing the name.
Suggested addition to tag-index
T.B.D.
@mjlosch in principal this looks great. Comments:
- can we confirm/clean up the somewhat sloppy language in manual 3.8.3 re TEOS (that I wrote; realize this extends a bit beyond this PR)
- sstExtrapol was presumably a nuisance issue for you here, I'm wondering too if we can put in a retired list (we can discuss). Note it was not a documented namelist parm in exf. Wouldn't usage be suspect w/TEOS?
- not crazy about name seaSurfTemp because this is only used for pkgs exf and bulkformula (for reasons you outline) whereas theta(k=1) is common SST value. Might suggest changing name, or at least being specific about this in description in DYNVARS.h
- wondering if we should also have a z-coor TEOS10 verification run?
- Let's do the documentation part in a different PR
-
sstExtrapol
is moved back topkg/exf
but now computation is now only once inexf_getforcing.F
-
seaSurfTemp
renamed tosurfLevTemp
- @jm-c will think about an additional verification experiment.
Note, that the merge changes the results of global_ocean.cs32x15.in_p
and the reference needs to be re-generated.