-
Notifications
You must be signed in to change notification settings - Fork 11
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
Port soil color climatology prescription for Noah-MP from UFS to SHiELD #46
Conversation
See this PR for reference: ufs-community/ccpp-physics#78
One case I have not tested is warm-starting from restart files that do not include an |
1138dad addresses the use case of initializing SHiELD-Noah-MP from restart files generated with SHiELD-Noah. Note that it provides a default value for the soil color over land, which will get overridden by the soil color from the provided climatology at the next cycling interval. I think we can discuss the default value to use—I am using |
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.
Hi, @spencerkclark . This is great. This aligns with what I have been doing: fixing the inconsistency in the Noah-MP driver and initialization. I appreciate that you carefully examined changes from outside and modified our codes. The modifications you made look good and this code runs without issues.
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, thanks for getting this in so quickly. It looks like nearly all of the code is for the challenging task of getting the dataset to be properly read and saved by the model.
@@ -6,7 +6,7 @@ module sfccyc_module | |||
! |
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.
@spencerkclark thanks for plumbing the depths of this difficult code.
Thanks @lharris4 and @kaiyuan-cheng! |
Description
Previously in SHiELD the soil color category was uniformly set to
4
over all land surfaces when using Noah-MP (see here and where this variable is used downstream). This category corresponded to a surface with medium reflectivity, producing albedo biases that were most apparent over generally bright desert regions like the Sahara and Arabian Peninsula. This was already observed in the UFS and they addressed it by prescribing a spatially varying soil color from a climatology and updating the albedo table those categories correspond with. This PR ports the soil-color-related changes made in ufs-community/ccpp-physics#78 to SHiELD.Appropriate soil color reference data on the cubed sphere can be generated using the
sfc_climo_gen
tool of UFS-UTILS with data from this NOAA bucket on S3.@kaiyuan-cheng when you get a chance it would be great to get your review of this code.
cc: @lharris4
How Has This Been Tested?
I have tested this by running one month C24 simulations initialized on January 1st, 2020 from GFS analysis with prescribed observed sea surface temperatures and sea ice in three configurations:
If we plot the difference in implied surface albedo compared with ERA5 reanalysis we find that SHiELD-Noah and SHiELD-Noah-MP have much smaller biases over the Sahara and the Arabian Peninsula.
I have also tested that the model restarts reproducibly by running a test that the model produced bitwise identical restart files after 12 hours in simulations configured to run in one segment of 12 hours or two segments of 6 hours. To achieve this I needed to make sure to write the soil color variable out to
sfc_data
restart files and load it in from disk upon restart like other Noah-MP-relevant fields.Finally, I have tested that one can initialize SHiELD-Noah-MP from a set of restart files generated with SHiELD-Noah without the model crashing. The model will start with a default uniform soil color of
4
and then take on the prescribed soil properties at the next cycling interval.Checklist:
Please check all whether they apply or not