ccpp-physics
ccpp-physics copied to clipboard
SGSCloud_Rad* routines not compatible with fewer radiation levels than (standard) model levels
In physics/module_SGSCloud_RadPre.F90
, clouds1
is updated from cldfra_bl
looping over horizontal_loop_extent
and vertical_dimension
. clouds1
however has dimensions horizontal_loop_extent
and adjusted_vertical_layer_dimension_for_radiation
- or better to say should have, because it is wrong in physics/module_SGSCloud_RadPre.meta
.
There are possibly other such cases. To do:
- check all variables for their correct vertical dimension
- pass in
adjusted_vertical_layer_dimension_for_radiation
in addition tovertical_dimension
- loop over the correct vertical dimension as required
We need to do this for both module_SGSCloud_RadPre
and module_SGSCloud_RadPost
.
@dustinswales is this still an issue?
May I ask why both dimensions are needed? The variables in this module are also used in other modules where only the "vertical_dimension" is used. Either someone is over-thinking the problem or I am missing something...
It's common to have more or less levels for radiation than for the rest of the physics. NEPTUNE for example is using extra radiation layers on top (if I recall correctly), and the deep-atmosphere UFS configuration also has different numbers of levels for radiation and "the other physics".