Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add RUC LSM support #297

Merged
merged 14 commits into from
Feb 11, 2022
Merged

Add RUC LSM support #297

merged 14 commits into from
Feb 11, 2022

Conversation

grantfirl
Copy link
Collaborator

@grantfirl grantfirl commented Feb 2, 2022

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:

  • Add a new gabls3_ruc case that has soil moisture profile tuned to provide an initial Bowen ratio of 1/3 when using RUC LSM as part of the SCM_GSD_v1 suite
  • retune gabls3 cases used with other LSMs to account for code changes in those schemes since the original gabls3 cases were added
  • add a new lsm_cold_start variable to replace the use of (.not. flag_restart) for RUC LSM; this allows the SCM to keep flag_restart = .false. (since other schemes use this and the SCM is not restartable) but set lsm_cold_start = .false. when there is initial conditions data available to start any LSM (but specifically RUC LSM)
  • rearrange code in scm_input.F90 and scm_type_defs.F90 to match the order of variable declarations in GFS_typedefs.F90 (should make it easier to read and compare with GFS_typedefs in the future to notice any discrepancies)
  • added new output for LSMs in scm_output.F90
  • updated scm_type_defs.F90/physics_set for LSM initialization to match latest code in FV3GFS_io.F90

@grantfirl grantfirl marked this pull request as ready for review February 3, 2022 17:17
Copy link
Collaborator

@tanyasmirnova tanyasmirnova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@grantfirl The changes look good to me.

@grantfirl
Copy link
Collaborator Author

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

Copy link
Collaborator

@climbfuji climbfuji left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great to see RUC LSM working in SCM!

@grantfirl grantfirl merged commit 72d4315 into NCAR:main Feb 11, 2022
Copy link
Collaborator

@mkavulich mkavulich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@grantfirl
Copy link
Collaborator Author

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.

mkavulich pushed a commit that referenced this pull request May 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants