Closed gold2718 closed 1 year ago
Another benefit of having a companion constituent properties array as an input, is that it would provide the source for the constituent information (e.g., cnst_name
, mixing ratio info). This would be an input to schemes such as qneg
.
The routines,
wet_to_dry_run
anddry_to_wet_run
are not CCPP compliant because they use the same variable (and therefore same standard name) for both the wet and the dry state.In addition, these routines use
optional
arguments which are not supported by the CCPP Framework.The output variables of these routines need to be separate from the associated input state variable.
To avoid the use of
optional
arguments, separate routines need to be provided for water vapor and standard water species. In addition, to allow conversion of other constituents and groups of constituents, a routine that takes an array of constituents as input should be provided. One issue here is how to define the input and output arrays. Currently, we do not have a naming scheme for a constituent array that would distinguish 'dry' from 'wet' (or 'moist', are we even going to support 'moist'?†) and there will always elements of these arrays which are not convertible between 'wet' and 'dry'.One possibility is to try and use the framework to generate code to keep track of the state of variables inside a constituent array. A companion constituent property array could be required that would keep track of the state of each of the variables, however, there is no easy way to track variables which are separate indices into the constituent array. Ideas?
† In CAM, we determine 'wet' via a namelist variable specifying the water species which participate in the 'wet air mass'. However, the CCPP standard name rules distinguished between
_wrt_moist_air
and_wrt_total_mass
(see rule 5). My inclination is to go with_wrt_total_mass
as that is how we will usually use the variables. Thoughts?