NCAR / ccpp-scm

CCPP Single Column Model
Other
13 stars 50 forks source link

Add RUC LSM support #297

Closed grantfirl closed 2 years ago

grantfirl commented 2 years ago

The main purpose of this PR is to add support for the RUC LSM and provide at least one case that can be used to run it. The following work has been done:

grantfirl commented 2 years ago

@mkavulich The ccpp-physics pull request for which this is based has been merged. Would you please review this?

grantfirl commented 2 years ago

Sorry, I only had time to look over some of the code before it was merged. Just curious, what was your thinking behind the reorganization of the variable declarations, reads, etc. in scm_input.F90 and scm_type_defs.F90? I don't quite get how they are organized.

No problem. We only need one CODEOWNER approval to merge.

The reorganization is not a big deal, but the order with which variables (surface variables in particular) are listed and read in better matches the order in which they appear in GFS_typedefs.F90. This is a good thing for future maintenance because often physics developers work only in FV3 and change which variables are needed as input by schemes within the FV3 version of GFS_typedefs.F90. During SCM updates to ccpp-physics, the first thing that is done is a diff between the FV3 and SCM versions of GFS_typedefs.F90 to bring over changes. Sometimes, similar changes need to happen within the SCM code (input), and it is just easier to know what to change if orders in the SCM code match what is in GFS_typedefs.