Outputting individual cloud microphysics process rates (source/sink terms) for Thompson and WSM6 in MPAS-Atmosphere

X1a0wu

New member
Dear MPAS developers and users,

I am running MPAS-Atmosphere [v7.1] to simulate a [heavy snowfall event], and I would like to diagnose the cloud microphysics budgets of cloud ice, snow, and graupel in detail — for example, the separate contributions from deposition/sublimation, riming, freezing, and melting, similar to the microphysical budget analysis in Ko et al. (2022, GMD). I have been using config_microp_scheme = 'mp_thompson' (and I would also like to do the same with 'mp_wsm6').

So far, I have found the following fields in the Registry, which give the net tendency for each hydrometeor species:

  • rqimpten, rqsmpten, rqgmpten (tendency of cloud ice/snow/graupel mixing ratio due to cloud microphysics)
  • rthmpten (potential temperature tendency)
  • rnimpten, rnrmpten (number concentration tendencies, Thompson only)
These are very useful, but they combine all source and sink processes into a single value. What I need is the individual process terms (e.g., deposition growth of snow, riming growth of graupel, melting of snow/graupel), such as those listed in Table 4 of Ko et al. (2022).

From reading the source code, I understand that these process rates are already computed internally in module_mp_thompson.F (e.g., prs_sde, prg_gde, prs_scw, prg_gcw, ...) and in module_mp_wsm6.F, but they are local variables and are not written to the model output.

Could you please advise:

  1. Is there any existing option in MPAS-Atmosphere (namelist, stream field, or compile flag) to output these individual microphysical process rates, or has anyone already implemented such a diagnostic?
  2. If not, what would be the recommended (minimal) way to add them? My current plan is to modify the Registry, the microphysics scheme module, the microphysics driver, and the stream file — is that the right approach, and are there any pitfalls to be aware of (e.g., the sub-stepping of the microphysics call)?

Thank you very much for your time.

Best regards
 

Attachments

  • 1786524127890.png
    1786524127890.png
    63.8 KB · Views: 0
Hi X1a0wu,

Please follow the steps below to add those process rates to your MPAS output files:

(1) in src/core_atmosphere/Registry.xml, add prs_sde, prg_gde, prs_scw, prg_gcw, etc. under the variable structure "tend_physics", i.e.,

<var_struct name="tend_physics" time_levs="1">

<var name="tend_prs_sde" type="real" dimensions="nVertLevels nEdges Time" units="kg m^{-2} s^{-1}"
description="Total horizontal momentum tendency from physics"
persistence="scratch" />

(2) in physics/physics_wrf/module_mp_thompson.F, get tend_prs_sde and add it as an output argument.

(3) in physics/mpas_atmphys_driver_microphysics.F, obtain tend_prs_sde from "call mp_gt_driver(...)"

Note that we need to pay attention to other details related to the newly added microphysics rates, e.g., initialization, array allocation, deallocation, etc.

It may be better to start with adding just one rate such as prs_sde. If it works, then we can add more rates.

Please try and let me know if you have any issues during the process. Thanks.
 
Back
Top