Add TEMPO microphysics and Xu-Randall cloud fraction schemes to convection-permitting suite - #445
kuanchihwang wants to merge 12 commits into
Conversation
nusbaume
left a comment
There was a problem hiding this comment.
Thanks for bringing in the final two convection-permitting schemes @kuanchihwang! I have some questions and change requests, but hopefully nothing too difficult. Of course if you have any questions, concerns, or issues with my requests just let me know!
| dimensions = (horizontal_dimension, vertical_layer_dimension) | ||
| intent = out | ||
| [ rnrmpten ] | ||
| standard_name = tendency_of_mass_number_concentration_of_rain_in_dry_air_due_to_microphysics |
There was a problem hiding this comment.
Can we add the word drops here to match a similar standard name from other microphysics schemes?
| standard_name = tendency_of_mass_number_concentration_of_rain_in_dry_air_due_to_microphysics | |
| standard_name = tendency_of_mass_number_concentration_of_rain_drops_in_dry_air_due_to_microphysics |
| dimensions = (horizontal_dimension, vertical_layer_dimension) | ||
| intent = out | ||
| [ rngmpten ] | ||
| standard_name = tendency_of_mass_number_concentration_of_graupel_in_dry_air_due_to_microphysics |
There was a problem hiding this comment.
Can you add the word particles here to better match the standard name of similar quantities from other microphysics schemes?
| standard_name = tendency_of_mass_number_concentration_of_graupel_in_dry_air_due_to_microphysics | |
| standard_name = tendency_of_mass_number_concentration_of_graupel_particles_in_dry_air_due_to_microphysics |
| intent = inout | ||
| advected = True | ||
| [ nr ] | ||
| standard_name = mass_number_concentration_of_rain_in_dry_air |
There was a problem hiding this comment.
Add drops here?
| standard_name = mass_number_concentration_of_rain_in_dry_air | |
| standard_name = mass_number_concentration_of_rain_drops_in_dry_air |
| type = real | kind = kind_phys | ||
| dimensions = (horizontal_loop_extent, vertical_layer_dimension) | ||
| intent = inout | ||
| advected = True |
There was a problem hiding this comment.
If this is an advected quantity, then should qr (rain_mixing_ratio_wrt_dry_air) be listed as advected as well, or is only the number concentration an advected quantity in this configuration?
| intent = inout | ||
| advected = True | ||
| [ ng ] | ||
| standard_name = mass_number_concentration_of_graupel_in_dry_air |
There was a problem hiding this comment.
I would add particles here:
| standard_name = mass_number_concentration_of_graupel_in_dry_air | |
| standard_name = mass_number_concentration_of_graupel_particles_in_dry_air |
|
|
||
| if (sat_adj) then | ||
| if (aerosol_aware .or. hail_aware) then | ||
| errmsg = 'sat_adj=.true. should only be run with aerosol_aware=.false. and hail_aware=.false.' |
There was a problem hiding this comment.
I might specify the physics scheme here as well:
| errmsg = 'sat_adj=.true. should only be run with aerosol_aware=.false. and hail_aware=.false.' | |
| errmsg = 'sat_adj=.true. should only be run with aerosol_aware=.false. and hail_aware=.false. for TEMPO microphysics' |
| else | ||
| if (maxval(nwfa2d) < eps) then | ||
| do i = 1, ncol | ||
| nwfa2d(i) = nwfa(i, 1) * 0.000196_kind_phys * (5.0_kind_phys / dz_r1(i, 1, 1)) |
There was a problem hiding this comment.
I could be misunderstanding what's happening, but won't nwfa have the CAM-SIMA vertical ordering here, as it will have been set by a previous scheme? If so then should we use pver instead of 1 to grab the level closest to the surface?
| nwfa2d(i) = nwfa(i, 1) * 0.000196_kind_phys * (5.0_kind_phys / dz_r1(i, 1, 1)) | |
| nwfa2d(i) = nwfa(i, pver) * 0.000196_kind_phys * (5.0_kind_phys / dz_r1(i, 1, 1)) |
| ! Flip upside down to be consistent with CAM-SIMA. Index 1 is at the top of atmosphere. | ||
| nwfa(:, :) = nwfa(:, pver:1:-1) | ||
| nifa(:, :) = nifa(:, pver:1:-1) |
There was a problem hiding this comment.
Should this only be done if init_water_friendly_aerosols or init_ice_friendly_aerosols has been called? Otherwise I think nwfa and nifa will already have the CAM-SIMA vertical ordering (unless I am missing something)?
| intent = in | ||
| [ tempo_cfgs ] | ||
| standard_name = configuration_for_tempo_microphysics | ||
| units = mixed |
There was a problem hiding this comment.
Just an FYI that for DDTs the units are canonically none, even if variables within the type have real units:
| units = mixed | |
| units = none |
| dimensions = (horizontal_loop_extent, vertical_layer_dimension) | ||
| intent = in | ||
| [ qv ] | ||
| standard_name = water_vapor_mixing_ratio_wrt_dry_air |
There was a problem hiding this comment.
Should all of the mixing ratio variables here and below have advected = True? I realize it's not really necessary for the suite, but it seems better to be safe just in case.
Tag name
TBD
Originator(s)
kuanchihwang
Description (include the issue title, and the keyword ['closes', 'fixes', 'resolves'] followed by the issue number)
This PR adds the TEMPO microphysics and Xu-Randall cloud fraction schemes to complete the convection-permitting suite.
The main scheme code of TEMPO is pulled directly from its upstream repository via a Git submodule, pinned at the latest available tag (
tempo_v3.1.2) as of now. The host model dependent interstitial scheme code is hosted here. The Xu-Randall cloud fraction scheme is CCPP-ized from the MPAS (calc_cldfraction) and WRF (cal_cldfra1) implementations with a slight rewrite to improve readability.List all namelist files that have been modified
List all files eliminated and why
None
List all files added and what they do
List all existing files that have been modified, and describe the changes
List all automated tests that failed, as well as an explanation for why they were not fixed
All pass.
Is this an answer-changing PR? If so, is it a new physics package, algorithm change, tuning change, etc?
Yes, but only for the convection-permitting suite.
If yes to the above question, describe how this code was validated with the new/modified features
Pending science validation.