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

Initial icepack integration #5958

Merged

Conversation

eclare108213
Copy link
Contributor

@eclare108213 eclare108213 commented Sep 26, 2023

Installs Icepack in E3SM.

This PR includes MPAS-seaice changes necessary to run Icepack in equivalent physics configurations as the original column package code. The entire Icepack repository is installed as a submodule linked from the main branch of E3SM’s Icepack fork.

Some minor changes were made to the original column package code for consistency with Icepack during testing. Icepack replaces colpkg as the default column physics package in this PR.

Fully coupled E3SM v3alpha trigrid with Icepack physics is statistically compatible with the 100-year control at the 99% confidence interval.

Icepack is thoroughly and promptly documented in its git repository (the source code is in icepack/doc/).

[NML]
[CC]

eclare108213 and others added 30 commits December 5, 2022 10:31
…eclare108213/E3SM into eclare108213/seaice/icepack-integration
Add icepack as new submodule
Add build of icepack to MPAS-Seaice build system
Add extra variables to Registry new to icepack
Added mpas_seaice_icepack module as replacement for mpas_seaice_column module. This is initially a straight copy of mpas_seaice_column
Replaced all calls to mpas_seaice_column module with calls to mpas_seaice_icepack. Except radiation (as described below) mpas_seaice_icepack still calls the column package
Replace column radiation calls from ice_colpkg to icepack_intfc in mpas_seaice_icepack
Add initialization of icepack parameters/tracers to mpas_seaice_icepack
Add initialization of icepack shortwave data structures to mpas_seaice_icepack
Renamed exposed subroutines in mpas_seaice_icepack from _column_ to _icepack_
Replaced few remaining references to ice_colpkg from files other than mpas_seaice_column.F and mpas_seaice_icepack.F with extra subroutines in those files

Note: icepack_warnings, icepack_warnings_getall needs to be public

Conflicts:
	.gitmodules
	components/mpas-seaice/src/icepack
	components/mpas-seaice/src/shared/mpas_seaice_constants.F
Bring in changes from AKT icepack-integration branch
Merging now in order to cleanly update to the latest E3SM with better testing options.
updating icepack to cice-consortium/E3SM-icepack-initial-integration branch
@eclare108213 eclare108213 marked this pull request as ready for review October 14, 2023 03:05
@eclare108213
Copy link
Contributor Author

This PR is ready for review. Additional information is in https://acme-climate.atlassian.net/wiki/spaces/ICE/pages/3952476924/Overview+of+Icepack+physics+merge+into+MPAS-SI, including links to complete testing results.

Copy link
Contributor

@proteanplanet proteanplanet left a comment

Choose a reason for hiding this comment

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

Based on my testing in the E3SM v3alph04-trigrid B-case configuration, where this branch was substituted for master and MPAS-SI was run with config_column_physics_type = 'icepack' with an otherwise identical physical configuration, I approve this PR.

For the case cited above, the climate between the two simulations after 100 years was comparable for the E3SM WCYCL1850 ne30pg2_r05_EC30to60E2r2 configuration. The version with Icepack maintains a stable climate analogous to the control. The sea ice climate between the two simulations is statistically identical at the 99% compatibility interval for key metrics of global sea ice extent, volume, and snow-on-sea ice volume, as indicated in the sea ice lemnisc below.

E3SM_sea_ice_lemnisc 0001-0100 ColPkg Icepack PI extent volume snow 3

The above figure summarizes daily sea ice phase average (solid) and interquartile range (gray). Dashed red lines indicate the null hypothesis for days of the year that MPAS-SI with Icepack is different from the standard version of MPAS-SI at the 99% compatibility interval. Traces start on January 1, passing the northward equinox (•), northern solstice (◦), southward equinox (•), and southern solstice (◦) to the end of December (→)

Copy link
Contributor

@erinethomas erinethomas left a comment

Choose a reason for hiding this comment

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

I approve this PR based on my own ongoing testing using B, G and D cases (testing with and without waves). These tests compare icepack to the original column physics and my conclusion is as follows: Icepack performs very similar to the original column package. No results being posted here as @proteanplanet has many nice figures which summarize all of my conclusions from my own testing well.

Copy link
Contributor

@njeffery njeffery left a comment

Choose a reason for hiding this comment

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

Approved based on thorough review of code changes and the fully coupled simulations performed by @proteanplanet. Climate changes are small. Largest impacts appear to be in the Arctic with similar extents but thicker sea ice in the new codebase.

@proteanplanet proteanplanet added CC PR is climate changing Coupled Model and removed CC PR is climate changing labels Oct 16, 2023
Copy link
Member

@darincomeau darincomeau left a comment

Choose a reason for hiding this comment

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

Approved based on documentation and extensive testing by the integration group over the past several months, including the recent coupled simulations by @proteanplanet .

@jonbob
Copy link
Contributor

jonbob commented Oct 19, 2023

@eclare108213 - we have a process with some semi-automated scripts to make the E3SM bld files match changes in Registry files, but it looks like this has been done by hand for this PR. I ran the scripts and they found issues in four different files:

#	modified:   components/mpas-seaice/bld/build-namelist
#	modified:   components/mpas-seaice/bld/build-namelist-group-list
#	modified:   components/mpas-seaice/bld/build-namelist-section
#	modified:   components/mpas-seaice/bld/namelist_files/namelist_definition_mpassi.xml

How do you want to handle the differences? I am hesitant to overwrite any of the changes you made, mostly because it looks like there are a lot of changes to the namelist definitions. Those are usually extracted from Registry files, so we may want to change Registry to get some of those descriptions?

@proteanplanet
Copy link
Contributor

@eclare108213 @jonbob @wlin7 : A new PR is awaiting review and merge into this branch to fix F-case simulations with Icepack.

Fix icepack prescribed ice mode for F-case simulations
@eclare108213
Copy link
Contributor Author

How do you want to handle the differences? I am hesitant to overwrite any of the changes you made, mostly because it looks like there are a lot of changes to the namelist definitions. Those are usually extracted from Registry files, so we may want to change Registry to get some of those descriptions?

@jonbob I thought Registry was only used for standalone MPAS runs, the other files for coupled runs, and they weren't expected to be the same. This is extremely confusing and error-prone! If you need them to be the same, then keep the data in the non-Registry files and change Registry. Thanks -

Also, I'm not sure what to do about the conflicting .gitmodules.

@jonbob
Copy link
Contributor

jonbob commented Oct 20, 2023

@eclare108213 - it is a complicated relationship between the standalone models and what E3SM uses, but Registry is included in both and we have scripts to take what's in Registry and make the E3SM bld files consistent with it. I'll work on making the descriptions in Registry match what you've added to the namelist definitions and we can sync up next week.

I can handle the conflict in .gitmodules when I merge this PR, so don't worry about that

@wlin7
Copy link
Contributor

wlin7 commented Oct 23, 2023

F2010 simulation using the icepack in prescribed seaice mode shows the impact of switching to icepack is largely negligible.

e3sm_diags for model vs model comparison with v3alpha04 baseline

Copy link
Contributor

@wlin7 wlin7 left a comment

Choose a reason for hiding this comment

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

Also verified icepack is used by default.

Copy link
Contributor

@jonbob jonbob left a comment

Choose a reason for hiding this comment

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

Approved based on developer testing and long run by the coupled model group

jonbob added a commit that referenced this pull request Oct 30, 2023
…5958)

Initial icepack integration

Installs Icepack in E3SM.

This PR includes MPAS-seaice changes necessary to run Icepack in
equivalent physics configurations as the original column package code.
The entire Icepack repository is installed as a submodule linked from
the main branch of E3SM’s Icepack fork.

Some minor changes were made to the original column package code for
consistency with Icepack during testing. Icepack replaces colpkg as the
default column physics package in this PR.

Fully coupled E3SM v3alpha trigrid with Icepack physics is statistically
compatible with the 100-year control at the 99% confidence interval.

Icepack is thoroughly and promptly documented in its git repository (the
source code is in icepack/doc/).

[NML]
[CC]
@jonbob
Copy link
Contributor

jonbob commented Oct 30, 2023

Passes sanity testing during merge with expected results, merged to next

@jonbob jonbob merged commit d18c6e9 into E3SM-Project:master Oct 31, 2023
1 check passed
@jonbob
Copy link
Contributor

jonbob commented Oct 31, 2023

merged to master and expected NML and regular DIFFs will be blessed with PR #5999, which was merged at the same time

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants