MITgcm icon indicating copy to clipboard operation
MITgcm copied to clipboard

Fix surface boundary conditions for TEOS-10

Open mjlosch opened this issue 11 months ago • 3 comments

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 from pkg/exf to the main namelist data&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 avatar Feb 28 '24 19:02 mjlosch

@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?

jrscott avatar Jun 12 '24 19:06 jrscott

  • Let's do the documentation part in a different PR
  • sstExtrapol is moved back to pkg/exf but now computation is now only once in exf_getforcing.F
  • seaSurfTemp renamed to surfLevTemp
  • @jm-c will think about an additional verification experiment.

mjlosch avatar Jun 13 '24 17:06 mjlosch

Note, that the merge changes the results of global_ocean.cs32x15.in_p and the reference needs to be re-generated.

mjlosch avatar Jun 19 '24 15:06 mjlosch