E3SM-Project / v3atm

Fork of E3SM for testing v3 atm changes
Other
0 stars 5 forks source link

Incorrect calculation of gustiness #73

Closed quantheory closed 11 months ago

quantheory commented 11 months ago

In Ma et. al. 2022, the gustiness parameterization is described in equation (1) as

$$U^2 = U_0^2 + ag U{g,(ZM)}^2 + bg U{g,(CLUBB)}^2$$

This appears correct and matches previous literature (aside from the addition of the tuning parameters $a_g$ and $b_g$). However, it is not what the EAM code currently does. A document summarizing the current code's behavior is here. In short, the relevant lines of code are here and here. For EAM's current default behavior (no gustiness exported), the speed of the wind exported to the surface models is:

$$ U = U_0 + ag U{g,(VM)} + bg \left(\sqrt{U{g,(CLUBB)}^2+U_0^2} - U_0\right) $$

Fixing this is a simple matter, though it is possible that a fix would affect the surface fluxes enough to require some retuning. Note that if the (non-default) ATM_SUPPLIES_GUSTINESS option is set in the XML files, this bug is still present, but part of the gustiness calculation is done in the surface components rather than in EAM.

This bug was noticed by @mabrunke, who has investigated it along with Xubin Zeng and myself.

quantheory commented 11 months ago

Tagging @polunma.

beharrop commented 11 months ago

Thanks for catching this @quantheory. Have you run any tests with the fix to see what the potential climate impacts are for this bug? I looked over the google doc; it seems like the fix for surface stress would help with the wind stress oscillation issue as well (https://github.com/E3SM-Project/E3SM/issues/4073).

quantheory commented 11 months ago

Hi @beharrop. So, there are actually about 4 potential bugs of different levels of severity related to the gustiness; this one is arguably the largest and most unambiguously incorrect of them all. I haven't seen detailed output with this one in particular fixed, though I think @mabrunke may be doing some runs with the fix in. I'm not sure if we should do tests fixing one of these at a time or just bite the bullet and do them all at once.

I'm writing the GitHub issues for the other 3 today as well, though the rest will be posted on the main E3SM GitHub repo rather than this v3 repo. I'm on travel this week, so I've been a bit slower to post these than I otherwise would be.

rljacob commented 11 months ago

Nice find. Why is this one being posted on the v3 repo?

quantheory commented 11 months ago

@rljacob Partly because I forgot that this probably affects v2 as well (maybe not v1?). Should it be moved over there?

quantheory commented 11 months ago

I mean, should it be moved to the main E3SM repo?

rljacob commented 11 months ago

If this code is on master, then yes.

quantheory commented 11 months ago

Closing this as redundant with E3SM-Project/E3SM#5835, which I just opened. I also realized that the fix may implicate other components, so it probably should have been there anyway.