Skip to content

Updates in components.yaml in support of GCMv12 merge #851

Draft
biljanaorescanin wants to merge 2 commits intodevelopfrom
feature/borescan_test_gcmv12
Draft

Updates in components.yaml in support of GCMv12 merge #851
biljanaorescanin wants to merge 2 commits intodevelopfrom
feature/borescan_test_gcmv12

Conversation

@biljanaorescanin
Copy link
Contributor

@biljanaorescanin biljanaorescanin commented Dec 18, 2025

Updates GMAO_Shared and GEOS_Util versions to be consistent with the updated v12 GCM develop branch of GEOSgcm_GridComp.

PR is 0-diff for land.

PR is implicitly non-0-diff for landice, owing to intentional landice science changes in the develop branch of the (v12 GCM) GEOSgcm_GridComp repo. (The non-0-diff changes in landice are not caused by the updates of GMAO_Shared and GEOS_Util.)

Includes minor (0-diff) update of MAPL version.

To do: Insert versions of GMAO_Shared and GEOS_Util used in official release of v12 GCM.

Related PRs: #852


GEOSgcm_GridComprepo plans to upgrade develop branch to GCMv12.

In preparation for this transition we are testing how GEOSldas will respond since we use develop for our base.

NOTE:
Code builds with no errors in my sandbox I will report once Regression tests finish.
I've added label 0-diff since hope is it will be zero diff but we won't know until tests finish...

@biljanaorescanin
Copy link
Contributor Author

biljanaorescanin commented Dec 19, 2025

Looking into comparison failures... will update when I know more.
I also change label to non zero diff...

Screenshot 2025-12-19 at 9 17 07 AM

@biljanaorescanin
Copy link
Contributor Author

biljanaorescanin commented Dec 19, 2025

Summary for CONUS and GLOBAL and GLOBALCS tests:

  1. for CONUS fail is in RST catch and is just in SRFEXC where Max_Absdiff = 8.2507e-37 so a roundoff.
  2. The global failure is isolated to the land-ice (GLC) component: catch_internal_rst matches baseline to roundoff, while landice_internal_rst and tavg24_1d_glc show widespread differences (16/24 and 12/21 variables > 1e-3). This is consistent with a land-ice physics/parameter change (GK_B constant update), which alters snow/ice state (TICE/WESN/HTSN) and downstream surface fluxes.

more details for magnitude:
From GLC collection: 16/21 differ, 12/21 exceed 0.001
HLATN max abs diff ~69
SHOUT max abs diff ~67
GHTSKIN_GL max abs diff ~7.2
HLWUP_GL, LWNDSRF max abs diff ~23
even ASNOW_GL diff ~0.125

DELTS: mean +5.87e-04 → -6.39e-04 (sign change in mean)
GHTSKIN_GL: mean 0.545 → 0.896
HLATN: mean 4.656 → 3.746
SHOUT: mean -10.036 → -11.527
SWNDSRF: mean 52.713 → 48.16

Since all land-ice differences seemed like physics difference, definitely not numerical noise.
I found this change that is not on current branch, GCMv12 branch. (@mathomp4 @sdrabenh @lcandre2 ) Or are differences for GCMv12 and develop now intentional @lcandre2 ? Meaning both are correct we want this change on GCMv12.
https://github.com/GEOS-ESM/GEOSgcm_GridComp/pull/1091/files

here are other differences for surface to confirm nothing else was missed for land-ice. SNOW_ALBEDO_INFO default change should be just on the GCMv12.
But niter is still missing as well (GEOS_CatchGridComp.F90) ...

Screenshot 2025-12-19 at 10 19 14 AM

GLOBAL assimilation outputs match baseline to roundoff: only 3/44 fields show differences at ~1e-37 magnitude

GLOBALCS assim all roundoff differences. For model lnd and catch are roundoff. glc and land-ice same kind of differences like summary for global test. And for lfs collection differences are still roundoff but in realm of like SRFEXC max abs diff = 9.95e-05.

@gmao-rreichle
Copy link
Contributor

@biljanaorescanin: Many thanks for putting this together! Here are a few quick thoughts, in no particular order:

  1. lfs collection:

for lfs collection differences are still roundoff but in realm of like SRFEXC max abs diff = 9.95e-05

Which test is still writing the "lfs" Collection? We are now discouraging the writing of this Collection, and we should update the tests accordingly. (We will probably need to re-base the tests anyway because of the landice science changes, see below.)

  1. SNOW_ALBEDO_INFO: This is a known science change in going from the v11 GCM to the v12 GCM. I assume the current tests use "SNOW_ALBEDO_INFO: 0", consistent with the v11 GCM. It's good that the default in the v12 GCM is "SNOW_ALBEDO_INFO: 1". What confuses me is why we only see roundoff changes in the CONUS test:

for CONUS fail is in RST catch and is just in SRFEXC where Max_Absdiff = 8.2507e-37 so a roundoff.

In the current (v11 GCM) tests, do we specify "SNOW_ALBEDO_INFO: 1" in the exe input file during setup? If so, the source code differences should not be relevant.

  1. niter:

But niter is still missing as well (GEOS_CatchGridComp.F90)

Wasn't this just cleanup? I don't remember a change in the max number of iterations for Helfand.

  1. Landice science changes: I suppose these are intentional. We'll need help from the landice group (@lcandre2) with the verification of the output. Once the output has been verified, we need to re-base the tests.

  2. The version numbers of env, cmake, and ecbuild in components.yaml have been updated. I assume this is needed for compatibility with the v12 GCM. Can we test what happens if we update these utilities but keep the v11 GCM? Normally we don't get roundoff differences from such updates, but that's never guaranteed. It'd be good to know if the roundoff differences are from the env etc updates from the v12 GCM.

@biljanaorescanin
Copy link
Contributor Author

  1. lfs collection:

for lfs collection differences are still roundoff but in realm of like SRFEXC max abs diff = 9.95e-05

Which test is still writing the "lfs" Collection? We are now discouraging the writing of this Collection, and we should update the tests accordingly. (We will probably need to re-base the tests anyway because of the landice science changes, see below.)

current GLOBALCS test writes it and compares. I can clean this up with @mathomp4

  1. SNOW_ALBEDO_INFO: This is a known science change in going from the v11 GCM to the v12 GCM. I assume the current tests use "SNOW_ALBEDO_INFO: 0", consistent with the v11 GCM. It's good that the default in the v12 GCM is "SNOW_ALBEDO_INFO: 1". What confuses me is why we only see roundoff changes in the CONUS test:

for CONUS fail is in RST catch and is just in SRFEXC where Max_Absdiff = 8.2507e-37 so a roundoff.

In the current (v11 GCM) tests, do we specify "SNOW_ALBEDO_INFO: 1" in the exe input file during setup? If so, the source code differences should not be relevant.

All our regression tests at the moment set SNOW_ALBEDO_INFO: 0 .
I see just roundoff for conus in results and only in that one variable.

  1. niter:

But niter is still missing as well (GEOS_CatchGridComp.F90)

Wasn't this just cleanup? I don't remember a change in the max number of iterations for Helfand.

Good point, niter was maybe just cleanup. I will have to double check to be sure.

  1. Landice science changes: I suppose these are intentional. We'll need help from the landice group (@lcandre2) with the verification of the output. Once the output has been verified, we need to re-base the tests.

OK

  1. The version numbers of env, cmake, and ecbuild in components.yaml have been updated. I assume this is needed for compatibility with the v12 GCM. Can we test what happens if we update these utilities but keep the v11 GCM? Normally we don't get roundoff differences from such updates, but that's never guaranteed. It'd be good to know if the roundoff differences are from the env etc updates from the v12 GCM.

Sure, I will comment on PR once I try this and let you know.

@gmao-rreichle
Copy link
Contributor

  1. lfs collection:

for lfs collection differences are still roundoff but in realm of like SRFEXC max abs diff = 9.95e-05

Which test is still writing the "lfs" Collection? We are now discouraging the writing of this Collection, and we should update the tests accordingly. (We will probably need to re-base the tests anyway because of the landice science changes, see below.)

current GLOBALCS test writes it and compares. I can clean this up with @mathomp4

I'm confused why this still happens. When we added landice tiles to the GLOBAL/model and GLOBALCS/model tests, I intended to remove the "lfs" output from the HISTORY file. Something must have got lost in translation. In any case, let's update the test output along with the re-base of the test for the landice science changes.

  1. SNOW_ALBEDO_INFO: This is a known science change in going from the v11 GCM to the v12 GCM. I assume the current tests use "SNOW_ALBEDO_INFO: 0", consistent with the v11 GCM. It's good that the default in the v12 GCM is "SNOW_ALBEDO_INFO: 1". What confuses me is why we only see roundoff changes in the CONUS test:

for CONUS fail is in RST catch and is just in SRFEXC where Max_Absdiff = 8.2507e-37 so a roundoff.

In the current (v11 GCM) tests, do we specify "SNOW_ALBEDO_INFO: 1" in the exe input file during setup? If so, the source code differences should not be relevant.

All our regression tests at the moment set SNOW_ALBEDO_INFO: 0 . I see just roundoff for conus in results and only in that one variable.

I guess this means that the tests' exe input files overwrite the default of "SNOW_ALBEDO_INFO: 1" that is now encoded in the v12 GCM. Since we have to re-base the tests anyway because of the landice science change, we probably should also remove the "SNOW_ALBEDO_INFO: 0" entry from the exe input files and let the new default (i.e., MODIS-based snow albedo) kick in.

@biljanaorescanin
Copy link
Contributor Author

biljanaorescanin commented Dec 22, 2025

  1. The version numbers of env, cmake, and ecbuild in components.yaml have been updated. I assume this is needed for compatibility with the v12 GCM. Can we test what happens if we update these utilities but keep the v11 GCM? Normally we don't get roundoff differences from such updates, but that's never guaranteed. It'd be good to know if the roundoff differences are from the env etc updates from the v12 GCM.
Screenshot 2025-12-21 at 11 51 19 AM

with env, cmake and ecbuild as now on develop we have just GLC comparison fails.
Zero diff for land, for rst and all other collections

These are repos I used for this test:
env | (t) v5.13.0 (DH)
cmake | (t) v3.64.0 (DH)
ecbuild | (t) geos/v1.4.0 (DH)
NCEP_Shared | (t) v1.4.0 (DH)
GMAO_Shared | (t) GCMv12-rc21 (DH)
GEOS_Util | (t) GCMv12-rc21 (DH)
GMAO_perllib | (t) v1.1.0 (DH)
MAPL | (t) v2.64.0 (DH)
GEOSldas_GridComp | (b) develop
GEOSgcm_GridComp | (t) GCMv12-rc21 (DH)

In short, roundoff differences for land comparison are coming from one of these env, cmake and ecbuild updetes...

@gmao-rreichle
Copy link
Contributor

These are repos I used for this test: env | (t) v5.13.0 (DH) cmake | (t) v3.64.0 (DH) ecbuild | (t) geos/v1.4.0 (DH) NCEP_Shared | (t) v1.4.0 (DH) GMAO_Shared | (t) GCMv12-rc21 (DH) GEOS_Util | (t) GCMv12-rc21 (DH) GMAO_perllib | (t) v1.1.0 (DH) MAPL | (t) v2.64.0 (DH) GEOSldas_GridComp | (b) develop GEOSgcm_GridComp | (t) GCMv12-rc21 (DH)

In short, roundoff differences for land comparison are coming from one of these env, cmake and ecbuild updetes...

Thanks, @biljanaorescanin. I had (wrongly) assumed that we need the newer env and cmake for the v12 GCM. Your latest results suggests that's not the case, and we can keep the old env and cmake when we update to the v12 GCM, with zero-diff results for land and the known non-zero-diff science change in landice.

When GEOSgcm GC develop changes to the v12 GCM, we only really need a PR that updates GMAO_Shared and GEOS_Util to whatever releases go with the v12 GCM. This PR should be 0-diff for land and non-0-diff for landice (known science change).

A separate question is whether/when we should update to the new env & make. This update will have roundoff diff for land (and presumably also for landice). This update should be done in a separate (non-0-diff) PR. I think we should wait with this update until the v12 GCM has been released, so we can match the versions of cmake and env used in the v12 GCM release.

At this time, we know what we needed to know re. the impact of the v12 GCM transition on GEOSldas. Once the v12 GCM has been released, we'll fix up GEOSldas accordingly in two separate PRs (one for the updated GMAO_Shared and GEOS_Util, and the other one for the updated env & cmake).

cc: @lcandre2

@github-actions
Copy link

This PR is being prevented from merging because you have not added one of our required labels: 0 diff, 0 diff trivial, Non 0-diff, 0 diff structural, 0-diff trivial, Not 0-diff, 0-diff, automatic, 0-diff uncoupled, github_actions. Please add one so that the PR can be merged.

@lcandre2
Copy link
Contributor

Since all land-ice differences seemed like physics difference, definitely not numerical noise. I found this change that is not on current branch, GCMv12 branch. (@mathomp4 @sdrabenh @lcandre2 ) Or are differences for GCMv12 and develop now intentional @lcandre2 ? Meaning both are correct we want this change on GCMv12. https://github.com/GEOS-ESM/GEOSgcm_GridComp/pull/1091/files

The changes to surface albedo in version 12 are intentional and do want it in v12.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants