Skip to content

merge to ESCOMP cmeps1.1.51 - #52

Merged
mvertens merged 135 commits into
NorESMhub:noresmfrom
mvertens:feature/merge_to_cmeps1.1.51
Jul 29, 2026
Merged

merge to ESCOMP cmeps1.1.51#52
mvertens merged 135 commits into
NorESMhub:noresmfrom
mvertens:feature/merge_to_cmeps1.1.51

Conversation

@mvertens

Copy link
Copy Markdown
Collaborator

Description of changes

This PR merges up to ESCOMP cmeps1.1.51

Are changes expected to change answers? bit-for-bit

Any User Interface Changes? None

Testing performed

Ran prealpha_noresm with these changes on olivia and verified that the results were bit-for-bit with noresm3_0_beta22

DeniseWorthen and others added 30 commits August 25, 2025 13:35
* update typedefs for icplocn2atm
* update standard_name in ccpp/data
* add u,v ocn->atm for global configs
* update typedefs for icplocn2atm
This will integrate better with existing infrastructure for processing
colon-delimited lists.
Before this change, an empty WATER_TRACERS xml variable was treated as a
length-1 list containing an empty string, rather than as a length-0
list.
* Replace horizontal_loop_extent with horizontal_dimension
* One more CCPP metadata change
It looks like these fields were removed from esmFldsExchange_cesm_mod at
some point, but weren't removed from fd_cesm.yaml.
We can enable these checks once we add water tracers to ensure that
water tracers are being handled consistently with bulk fluxes.
This reverts commit a39d47d.

This capability is enabled on this branch so we can back out this
temporary commit.
This means we are potentially getting n_tracers multiple times instead
of just once, but it allows the code to work in the situation where we
don't have any tracer fields and shr_wtracers_mod hasn't been
initialized. (I'm not sure if this will arise in practice, but it
might.)
This breaks the dependency on this share code for UFS.
* update Sa_pslv to be bilinear
* change coupling mode for bulk aoflux scheme consistent w/ mapping
* minor tweaks to aoflux module for clarity
billsacks and others added 17 commits May 13, 2026 11:41
Only run srt workflow when manually triggered

### Description of changes

Don't run the CIME scripts_regression_tests workflow on PR and main branch pushes, because it is currently not working.

### Specific notes

Contributors other than yourself, if any:

CMEPS Issues Fixed (include github issue #): Stop-gap that partially addresses ESCOMP#646.

Are changes expected to change answers? (specify if bfb, different at roundoff, more substantial) No - bfb

Any User Interface Changes (namelist or namelist defaults changes)? No

### Testing performed
None
I thought this direct dependence on shr_wtracers_mod would be okay here,
but this breaks the GitHub Action build. I think what's happening is
that the CMake-based build builds esmFldsExchange_cesm_mod but doesn't
include the CESM share code (instead getting the share code from CDEPS,
I think?).
Add water tracers

### Description of changes

Core changes needed to add water tracers in CESM, for the sake of water isotopes and other purposes.

Major pieces of this include:
- XML and config variables for defining water tracers
- Addition of all necessary water tracers in esmFldsExchange_cesm_mod and fd_cesm.yaml. These use an ungridded dimension for water tracers.
- Calls to a routine to check that test tracers maintain their initial ratios. This ensures that tracers are being treated the same as their bulk counterparts (in terms of mapping, merging, etc.). 
- Addition of water tracer fields in med_test_comps, so this tracer infrastructure can be verified in an X compset test
- Various other changes to some of the med_test_comps to better exercise CMEPS functionality, especially for the lnd -> glc mapping; also added some fields from GLC and to ROF in med_test_comps: Fgrg_rofi and Fgrg_rofl

Some pieces are not yet implemented:
- Including water tracers in the custom lnd->rof mapping
- Including water tracers/isotopes in atm-ocn flux calculations
- Including water tracers in the budget tables (med_diag_mod)

Depends on ESCOMP/CESM_share#82

### Specific notes

Contributors other than yourself, if any:

CMEPS Issues Fixed (include github issue #):
- Resolves ESCOMP#583 (though this turned out to be much more extensive than simply reviewing and updating what had been in place before)
- Resolves ESCOMP#601 

Are changes expected to change answers? (specify if bfb, different at roundoff, more substantial) Changes answers for X compsets (due to some changed counter logic and maybe other things); should be bit-for-bit for all other compsets

Any User Interface Changes (namelist or namelist defaults changes)? Adds xml and config variables controlling water tracers

### Testing performed
In the context of cesm3_0_alpha08o, with this branch along with ESCOMP/CESM_share#82, ran CESM prealpha tests on derecho and izumi, and aux_glc tests on derecho, all with baseline comparisons. All failures also failed in the baseline except for `SMS_D_Ln9_P1536x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FHIST.derecho_intel.cam-outfrq9s` (which seemed to fail due to ESCOMP/CTSM#3772, which is a sporadic issue), and all baseline comparisons passed. (Note: full testing was done before final commits addressing review points; only minimal additional testing was done after those final commits.)
This is needed to fix some failing tests with DGLC and SLND in the
aux_cdeps test list:
   SMS_Ly3.f10_f10_ais8gris4_mg37.2000_SATM_SLND_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV.derecho_intel
   SMS_Ly3.f10_f10_ais8_mg37.2000_SATM_SLND_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV.derecho_intel
   SMS_Ly3.f19_g17_gris4.2000_SATM_SLND_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV.derecho_intel

The problem seems to be that med_phases_prep_glc_avg is called
unconditionally from med_phases_prep_glc, but FBlndAccum2glc_l is only
created if accum_lnd2glc is true. (Note that prep_glc_accum_lnd, which
is another place where FBlndAccum2glc_l is used, is called if
lnd2glc_coupling or accum_lnd2glc are true.)

(Prior to cmeps1.1.48 the similar code was inside a fldchk conditional,
which also had the effect of skipping this code if FBlndAccum2glc_l
wasn't created.)
Sync w/ latest UFS changes

### Description of changes

Adds recent changes for CMEPS in UFS

### Specific notes

Adds ufs_trace wrapper to enable profiling for use in UFS. 
Adds capability to use mapfiles in UFS global applications.
Removes HYCOM field exchanges in UFS/HAFS mode (HYCOM has been removed from our component list).
Removes deprecated flux scheme for UFS (ocean_flux_scheme == -1)
Updates ufs/ccpp as required for ccpp changes

Changes should not touch any CESM code and should be B4B.
Fix for DGLC with SLND

### Description of changes

Only average FBlndAccum2glc_l if the field bundle was created

This is needed to fix some failing tests with DGLC and SLND in the aux_cdeps test list:
- SMS_Ly3.f10_f10_ais8gris4_mg37.2000_SATM_SLND_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV.derecho_intel
- SMS_Ly3.f10_f10_ais8_mg37.2000_SATM_SLND_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV.derecho_intel
- SMS_Ly3.f19_g17_gris4.2000_SATM_SLND_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV.derecho_intel

The problem seems to be that med_phases_prep_glc_avg is called unconditionally from med_phases_prep_glc, but FBlndAccum2glc_l is only created if accum_lnd2glc is true. (Note that prep_glc_accum_lnd, which is another place where FBlndAccum2glc_l is used, is called if lnd2glc_coupling or accum_lnd2glc are true.)

(Prior to cmeps1.1.48 the similar code was inside a fldchk conditional, which also had the effect of skipping this code if FBlndAccum2glc_l wasn't created.)

### Specific notes

Contributors other than yourself, if any:

CMEPS Issues Fixed (include github issue #):

Are changes expected to change answers? (specify if bfb, different at roundoff, more substantial) - no: bfb

Any User Interface Changes (namelist or namelist defaults changes)? no

### Testing performed
With cesm at `3ff5aed`:

(1) These failing tests - now pass:

SMS_Ly3.f10_f10_ais8gris4_mg37.2000_SATM_SLND_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV.derecho_intel
SMS_Ly3.f10_f10_ais8_mg37.2000_SATM_SLND_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV.derecho_intel
SMS_Ly3.f19_g17_gris4.2000_SATM_SLND_SICE_SOCN_SROF_DGLC%NOEVOLVE_SWAV.derecho_intel

(2) These additional tests - pass and baseline comparisons are bfb:

ERS_Ly7.f09_g17_gris4.T1850Gg.derecho_intel
SMS_Lm13.f10_f10_mg37.I1850Clm50SpG.derecho_intel
SMS_D_Ly1.f09_g17_ais8.T1850Ga.derecho_gnu
MULTINOAIS_Ly2.f10_f10_ais8gris4_mg37.I1850Clm50SpRsGag.derecho_intel.cism-change_params

(3) This additional test - passes (no baselines available):

SMS_D_Ld5.f10_f10_ais8gris4_mg37.I1850Clm50SpGag.derecho_intel.cism-test_coupling
Fix two unitialized variables found w/ valgrind

### Description of changes

Initialize two character strings and correct typo.

- fixes ESCOMP#661 

Changes are B4B in UFS testing.
@mvertens
mvertens requested review from TomasTorsvik and gold2718 and removed request for gold2718 July 28, 2026 15:22
@TomasTorsvik TomasTorsvik added this to the NorESM3.0 milestone Jul 29, 2026
@github-project-automation github-project-automation Bot moved this from Todo to In Progress in NorESM Development Jul 29, 2026
@TomasTorsvik

Copy link
Copy Markdown

@mvertens - thanks for the update. Is there any particular reason for moving to cmeps1.1.51, or is this done just to be in sync with NCAR?

@mvertens

Copy link
Copy Markdown
Collaborator Author

@TomasTorsvik - this is a prerequisite for me to do a PR back to ESCOMP with our changes. I just needed to have noresm be up to date with the latest.

@mvertens
mvertens merged commit d17fa4c into NorESMhub:noresm Jul 29, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in NorESM Development Jul 29, 2026
@mvertens
mvertens deleted the feature/merge_to_cmeps1.1.51 branch July 29, 2026 10:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.