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

Move calculation of sncovr from FV3/io/FV3GFS_io.F90 to ccpp/physics/physics/GFS_phys_time_vary.XYZ.F90 #315

Closed
wants to merge 2 commits into from

Conversation

grantfirl
Copy link
Collaborator

@grantfirl grantfirl commented Sep 3, 2019

This moves the calculation of the Sfcprop%sncovr variable from sfc_prop_restart_read subroutine in the FV3GFS_io.F90 file to GFS_phys_time_vary.XYZ.F90 in ccpp-physics. This was flagged as a problem by @climbfuji, and seemed to interfere with the NoahMP work (related to namelist_soilveg.F existing in both the CCPP and non-CCPP physics repos).

Work done:
(FV3)

  • Only calculate Sfcprop%sncovr in FV3GFS_io.F90 for the non-CCPP build using directives
  • namelist_soilveg is no longer needed in the non-CCPP physics makefile for the CCPP build
  • Remove the call for set_soilveg in GFS_driver.F90 since it is no longer needed (happens as part of the CCPP physics-init stage)
  • edit the non-CCPP physics makefile for the CCPP build to remove these two files

(ccpp-physics)

  • put the calculation of Sfcprop%sncovr in the GFS_phys_time_vary_run subroutine of GFS_phys_time_vary.XYZ.F90 (makes use of the first_time_step flag since it is initialization-related but must happen after the ccpp_physics_init stage)

NOTE: As far as I can tell, this code needs to go in GFS_phys_time_vary_run for the following reasons:

  • the FV3GFS_restart_read call where the code had been executed happened after the CCPP physics_init stage, and it is possible to read in values for Sfcprop%sncovr in this routine.
  • although it is related to the initialization of surface properties and this might belong in GFS_surface_generic_pre, it is expected to have already been initialized in rrtmg_lw_pre_run, which gets called before LSMs

… because it was originally done after the call to ccpp_physics_init in FV3GFS_io.F90/sfc_prop_restart_read
…use it was originally done after the call to ccpp_physics_init in FV3GFS_io.F90/sfc_prop_restart_read); this needs to happen before radition is called
@grantfirl
Copy link
Collaborator Author

Associated PR:
https://github.com/NCAR/FV3/pull/201

@grantfirl
Copy link
Collaborator Author

These PRs were provisionally tested (PASSED) on Cheyenne/Intel (due to Theia maintenance) using only the fv3_control test for (IPD repro/prod) and CCPP (repro/prod). It should undergo full testing later, but I will be using this in my NoahMP debugging in the meantime.

@grantfirl grantfirl mentioned this pull request Sep 13, 2019
@grantfirl
Copy link
Collaborator Author

The code changes in this PR are included in PR #305 .

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.

2 participants