-
Notifications
You must be signed in to change notification settings - Fork 317
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
Adding excess ground ice to CTSM #1787
Conversation
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 really good and it's exciting to see this advancement come into the model.
I have some detailed requests for changes, most are pretty minor. There's some issues with indentation that would be good to straighten out, as it really helps with readability. I suggest indenting at least two spaces. Here's our style guide on indentation:
https://wiki.ucar.edu/display/ccsm/CLM+Coding+Conventions#CLMCodingConventions-Indentationindent
There's a few places where you have a !MVD comment to show your changes in the code. These need to be removed in final versions, as having these things scattered in the final code make it confusing and hard to read.
There's a hard coded date from my example in ch4FinundatedStreams, we should assess if this is still needed. We'll talk more about that.
I also ask you to put a copy of the stream files on cheyenne so we can look at them. We'll copy the files to the standard location and get it checked into inputdata. But, we should assess if you'll be doing that more often, and if so give you some training on doing it, and then give you the needed permissions.
The last more detailed thing is how this will be used in practice in terms of restarts and such. The stream file gives the level of excess ice at some point in time. If you want to run for a different date (especially a future date) the ice levels should have melted. And as such you should startup from levels from a restart file. Does that mean if you do a startup type run that it'll use values from the stream file, but if you do a hybrid or branch it'll be from the restart file and the stream is ignored? If so I wonder if the stream should only be read on startup to make this more clear? I'd like to discuss this more and figure out the best way to make this clear to CTSM users.
Thanks so much for your work on this. Very exciting to bring it in.
@slevis-lmwg Added you to my fork. This branch is linked to this PR. |
@swensosc @mvdebolskiy @ekluzek
Test suites OK and generated baselines using the branch tag's name |
To address these pending TODOs, I followed up with @ekluzek :
|
PASS: I think this PR is ready. When it's next in line to merge, I will need to:
|
I expect git describe to return ...dev131 now Resolved conflicts: cime_config/testdefs/testlist_clm.xml src/unit_test_stubs/utils/restUtilMod_stub.F90.in src/utils/restUtilMod.F90.in
Test-suites:
Cheyenne OK
|
Description of changes
Add parameterization to allow excess ice in soil and subsidence
Specific notes
Parameterization for excess ice is described in Lee et al., 2014.
This code is a modified version of code provided by Lei Cai.
Works only for the
nuopc
driver.Files changed:
bld/CLMBuildNamelist.pm, bld/namelist_files/namelist_defaults_ctsm.xml, bld/namelist_files/namelist_definitionss_ctsm.xml -- added namelist options;
src/main/clm_varctl.F90, src/main/controlMod.F90 -- added option to switch excess ice physics and read namelist option;
src/biogeophys/WaterStateType.F90 -- added prognostic excess ice variable and a history field;
src/biogeophys/WaterStateBulkType.F90, src/main/clm_instMod.F90, -- added arguments to soubrutiens for proper initialization;
src/biogeophys/TemperatureType.F90 -- initial soil temperature set to 268.15 K at the cold start (might be redundant if #1460 is added)
src/biogeophys/WaterDiagnosticBulkType.F90 -- added two diagnostic excess ice variables and two history fields;
src/biogeophys/SoilTemperatureMod.F90 -- added main excess ice calculations;
src/biogeophys/TotalWaterAndHeatMod.F90 -- added excess ice to total water for balance checks;
src/biogeophys/SoilHydrologyMod.F90 -- added excess ice for ice fraction calculation;
New files:
src/cpl/share_esmf/ExcessIceStreamType.F90 -- routines to read dataset with initial excess ice concentration
CTSM Issues Fixed (include github issue #):
Fixes #1229
Fixes #1818
Are answers expected to change (and if so in what way)?
Yes, when excess ice parameterization is used.
Any User Interface Changes (namelist or namelist defaults changes)?
New namelist options added:
use_excess_ice
(logical, inclm_inparm
) default -.false.
; turns on excess ice physicsstream_meshfile_exice
,stream_fldfilename_exice
andstream_mapalgo_exice
(char, inexice_streams
) defaults -lnd/clm2/paramdata/exice_init_0.125x0.125_ESMFmesh_c20220516.nc
,lnd/clm2/paramdata/exice_init_0.125x0.125_c20220516.nc
andbilinear
; meshfile, stream file and spatial interpolation algorithm for initial values of excess ice. Dataset is interpolated to 0.125x0.125 degrees grid from Brown et al., 1997, can be found here. Dataset is only used during the cold start or for hybrid runs (or start from finidat) that do not have excess ice.Testing performed, if any:
On sigma2 machines: comparisons with the upstream/master version and switched-off excess ice physics give the same results for soil state variables. More information and figures on changes and testing can be found here
@ka7eh