-
Notifications
You must be signed in to change notification settings - Fork 153
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
Noah MP updates for Prototype 8 (GFSv17) #729
Conversation
release/P7b: fix tile file field index in gcycle
Additional land output temp
modification to add extra land fields to the output
…terface between atmos. and Noah MP
remove the iteration loop for Noah MP and implement a new coupling in…
Fix noah inout
remove some false values over the glacial ice
@HelinWei-NOAA @barlage Now that we are ready to merge P8 features, can we take up this PR again? We will need to update the PR with the latest changes frorm the authoritative repository (same for fv3atm, ufs-weather-model) and then complete the review process. We are probably looking at the first days in December for a commit date (because of Thanksgiving fewer PRs are scheduled for next week). Does this work for you? |
Yes. I have ufs-weather-model branch ready on my fork for this change. I will create a ufs-weather-model PR once I have the other branch updated to current. Thanks.
|
update because of Noah MP
update for the modification of the Noah MP physics
formatting codes based on review
formatting codes based on review
formatting codes based on review
formatting codes based on review
fix the typo
fix the typo
fix the typo
physics/sfc_noahmp_drv.F90
Outdated
|
||
implicit none | ||
|
||
real(kind=kind_phys), parameter :: a2 = 17.2693882 | ||
real(kind=kind_phys), parameter :: a3 = 273.16 | ||
real(kind=kind_phys), parameter :: a4 = 35.86 | ||
real(kind=kind_phys), parameter :: a23m4 = a2*(a3-a4) | ||
real(kind=kind_phys), parameter :: gravity = 9.81 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you really need to define your own gravity variable? I don't actually see it being used, but if it is, for continuity with other physics, you should pass in the variable with CCPP standard name of gravitational_acceleration.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me, although the changes related to removing NoahMP from the "guess" iteration should be double-checked to make sure that there aren't unintended consequences for the sfc_nst scheme. The other comments relate to code cleanup.
@@ -6,6 +6,8 @@ | |||
module noahmp_glacier_globals | |||
|
|||
use machine , only : kind_phys | |||
use sfc_diff, only : stability |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One thing I forgot in the review so far. Since physics/module_sf_noahmp_glacier.f90
now depends on sfc_diff
's stability
subroutine, we should add a dependency on sfc_diff.f
in physics/sfc_noahmp_drv.meta
:
diff --git a/physics/sfc_noahmp_drv.meta b/physics/sfc_noahmp_drv.meta
index 52b35473..b4367bfd 100644
--- a/physics/sfc_noahmp_drv.meta
+++ b/physics/sfc_noahmp_drv.meta
@@ -1,7 +1,7 @@
[ccpp-table-properties]
name = noahmpdrv
type = scheme
- dependencies = funcphys.f90,machine.F,module_sf_noahmp_glacier.f90,module_sf_noahmplsm.f90,noahmp_tables.f90,set_soilveg.f
+ dependencies = funcphys.f90,machine.F,module_sf_noahmp_glacier.f90,module_sf_noahmplsm.f90,noahmp_tables.f90,set_soilveg.f,sfc_diff.f
########################################################################
[ccpp-arg-table]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
@grantfirl can you confirm that the issues you raised have been addressed? Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR looks good to me.
All requests for changes have been addressed, and regression testing is completed. Merging. |
The surface loop control/iteration removal when Noah MP is used
Surface skin temperature is determined inside the Noah MP LSM with its own surface scheme/iteration.
'guess_run'/iteration (for determination of skin temperature with weak winds) in surface loop control is
set to 'false' when Noah MP LSM (lsm=2) is used.
New coupling interface
The land model provides feedback to the atmospheric boundary layer. The required bulk Richard
number input to the boundary layer scheme is computed using grid-aggregated momentum (from the
roughness lengths over the tiles and vegetation fraction) and thermal roughness (from interpolation
of kB^-1 from the tiles) lengths.
The addition of GFS surface scheme in Noah MP surface layer call
To be consistent with the surface layer treatment for the other part of the surface in the model, the original
GFS surface layer scheme is added to the Noah MP surface layer option.
Fix the inout issue of smc in Noah LSM (sflx.f)