E3SM-Project / scream

Fork of E3SM used to develop exascale global atmosphere model written in C++
https://e3sm-project.github.io/scream/
Other
76 stars 55 forks source link

ni2nr_melt_tend tendency should be multiplied by nmltratio in conservation calc #866

Closed PeterCaldwell closed 3 years ago

PeterCaldwell commented 3 years ago

From Koby:

The ni2nr_melt_tend tendency should be multiplied by nmltratio here: https://github.com/E3SM-Project/scream/blob/1c3cb7dbb629898b218c7a8f36af910a1aecf2bf/components/eam/src/physics/cam/micro_p3.F90#L2951

in order to be consistent with usage in state updates like here: https://github.com/E3SM-Project/scream/blob/1c3cb7dbb629898b218c7a8f36af910a1aecf2bf/components/eam/src/physics/cam/micro_p3.F90#L3126

AaronDonahue commented 3 years ago

@PeterCaldwell is this a bug?

I see ni2nr_melt_tend used twice when updating prognostic ice:

   nr = nr + (-nr_collect_tend-nr2ni_immers_freeze_tend+nmltratio*ni2nr_melt_tend+nr_ice_shed_tend+ncshdc)*dt
   ni = ni + (ni_nucleat_tend-ni2nr_melt_tend-ni_sublim_tend-ni_selfcollect_tend

note that for nr the nmltratio is used. But for conservation should the source for nr be an equal sink for ni?

Follow-up, if ncmltratio is needed for the ice sink part then should it also be added to ni_conservation just like this issue is requesting it be added to nr_conservation?

PeterCaldwell commented 3 years ago

@AaronDonahue - I'm confused by your question about a new bug. I see ni2nr_melt_tend showing up 1x in the nr equation and 1x in the ni equation... as expected for a variable being transferred from the ice to the rain category. What is your concern?

And in terms of nmltratio being included for nr but not ni: I think nmltratio is meant to make each melting snowflake break into several rain drops. I'll have to check the code though.

AaronDonahue commented 3 years ago

yeah, the question was just about the use of nmlratio in one case but not the other. So the impact on nr would be different on ni. But I recognize that number concentration isn't as strict as mass.

I'm only asking because I'm in the code looking at it and want to make sure I don't fix one bug and leave behind another.

PeterCaldwell commented 3 years ago

Yeah, in micro_p3.F90 it says "apply factor to source for rain number from melting of ice, (ad-hoc but accounts for rapid evaporation of small melting ice particles)" before using nmltratio and in micro_p3_utils.F90 just before defining nmltratio it says "ratio of rain number produced to ice number loss from melting". Also, nmltratio is set to 0.2... so having nmltratio on rain but not ice is intentional. But my off the cuff explanation in this issue wasn't quite right. It isn't that ice is fracturing into multiple droplets, but rather that some ice crystals that melt don't form rain drops at all because they evaporate instead. Thanks for checking!