Skip to content

CTSM5.4.048 Fix problems encountered with running PLUMBER2 sites#4092

Open
olyson wants to merge 36 commits into
ESCOMP:masterfrom
olyson:PLUMBERwetland
Open

CTSM5.4.048 Fix problems encountered with running PLUMBER2 sites#4092
olyson wants to merge 36 commits into
ESCOMP:masterfrom
olyson:PLUMBERwetland

Conversation

@olyson

@olyson olyson commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Description of changes

This PR fixes failures in running PLUMBER2 sites. There are four categories of failures.

  1. Wetland sites fail at case creation because the usermods are requesting a change to baseflow_scalar in the user_nl_clm namelist, however, this parameter is now on the parameter file. This issue is described in PLUMBER2 wetland sites fail at case creation #4023 . The sites are:
        "CZ-wet",
        "DE-SfN",
        "FI-Kaa",
        "FI-Lom",
        "RU-Che",
        "SE-Deg",
        "US-Los",
        "US-Myb",
        "US-Tw4",
        "PL-wet"
  1. Several sites fail with a negative 2-m relatve humidity error in HumanIndexMod. The negative humidity is generated from either BareGroundFluxesMod or CanopyFluxesMod and passed into HumanIndexMod where there is an error check for this condition (and endrun). This issue is described in Several PLUMBER2 sites fail at run time #4081 . The sites are
        "ES-ES2",
        "ES-LgS",
        "ES-VDA",
        "SE-Deg",
        "US-Cop"
  1. Several sites fail with calendar errors. These are due to the fact that each site may require a different case setup configuration for spinup. This issue is described in Several PLUMBER2 sites fail at run time #4081 . The sites are
        "AT-Neu",
        "AU-How",
        "BE-Vie",
        "CH-Dav",
        "DE-Geb",
        "DE-Hai",
        "DE-Tha",
        "DK-Sor",
        "FR-Pue",
        "IT-MBo",
        "IT-SRo",
        "NL-Loo",
        "US-NR1",
        "US-FPa"
  1. After fixing 3. above, five of those sites run successfully but nine fail with a different calendar error. This is related to the fact that the time dimension in the atmospheric forcing files is float, not double, consequently, the time of day calculated in CDEPS is off by several seconds both for the lower bound and the upper bound. This can cause problems for leap day transitions. This issue is described in Several PLUMBER2 sites fail at run time #4081. The sites are:
        "AU-How",
        "BE-Vie",
        "CH-Dav",
        "DE-Geb",
        "DE-Tha",
        "DK-Sor",
        "FR-Pue",
        "NL-Loo",
        "US-NR1"

Specific notes

The fixes for these issues are:

  1. Here, tower_sites.py is modified so that for wetland sites, the parameter file for the base case is queried (regardless if it is wetland or not), and then the parameter file is replaced with a modified parameter file with baseflow_scalar=0 for any requested wetland sites in the run_tower submission.
    The baseflow_scalar namelist change request was deleted from the wetland sites shell commands by running tools/site_and_regional/plumber2_usermods. These modified shell commands are part of this commit.

  2. Per conversation with @wwieder , this PR turns off HumanIndexMod for all the PLUMBER2 sites for now, to avoid the negative relative humidity error check. This is accomplished in cime_config/usermods_dirs/clm/PLUMBER2/defaults/user_nl_clm.

  3. For the sites failing with the calendar error during spinup, these are the xml variables that need to be changed on a site by site basis for spinup:

RUN_STARTDATE
CALENDAR
DATM_YR_START
DATM_YR_END
DATM_YR_ALIGN
START_TOD (may already be set correctly though)

My run tower script (/glade/work/oleson/release-clm5.0.34/tools/PTCLM/run_clmtowers_plumber2.csh) handled this complexity, but this was not implemented in the run_tower infrastructure for PLUMBER2.
I've combined the new spinup variables into create_PLUMBER2_sites_csv.ncl -> PLUMBER2_sites.csv and modified the code to read these new variables in and generate the required shell commands.

  1. I have changed the time dimension in all of the forcing files from float to double and regenerated the time data. The nine sites now run successfully.
  • The new forcing data is at /glade/work/oleson/PLUMBER2/scripts/MAKE_TIME_DOUBLE/ and will need to be copied (and rimported) to /glade/campaign/cesm/cesmdata/cseg/inputdata/atm/datm7/CLM1PT_data/PLUMBER2.

A one line change to plumber2_usermods.py was also required to get these sites to run. This line had been commented out pending a CDEPS mod, which appears to have been implemented.

  • A couple of other CDEPS changes were required to get these sites to run, a change in components/cdeps/datm/cime_config/stream_definition_datm.xml to set dtlimit to 50 for 2000 compsets (spinup), and setting taxmode to extend and dtlimit to 1.e30 for HIST compsets.

Contributors other than yourself, if any: @wwieder (python help)

CTSM issues resolved or otherwise addressed, if any:
Resolves #4023
Resolves #4081
Resolves #4105

If answers are expected to change, describe (delete this line otherwise): The sites listed above will now run to completion. Sites that had run successfully prior to these changes may not have run correctly, so answers will likely change for those sites.

Any user interface changes (namelist or namelist defaults changes)? None to the defaults namelist. For wetlands, we only create a temporary modified parameter file for the requested run(s) and point to it in the run directory. Other changes here are accomplished by the PLUMBER2 shell commands.

Testing planned or performed, if any:
I've tested all of the sites with various submissions of the type:
./run_tower --plumber-sites {XX-XXX} --run-type ad --xmlchange STOP_OPTION=nyears,STOP_N=100,RESUBMIT=2,JOB_WALLCLOCK_TIME=06:00:00,PROJECT=P93300041 --overwrite.

  • It would be good to test all of the sites in one submission of run_tower once all of the new forcing files are in place in the proper location, in order to fully test this branch.

I also tested a NEON site (ABBY) to make sure I didn't break that configuration.

Requirements before merge:

  • I have followed the CTSM contribution guidelines.
  • The code in this PR branch builds with no errors.
  • The code in this PR branch runs with no errors. Briefly describe tested configuration(s): See above
  • This either (a) does not change answers, (b) it only changes answers at roundoff level, or (c) I have performed a scientific evaluation of the answer changes. Which?: I guess this is (d) We actually now get answers

@olyson olyson self-assigned this Jun 11, 2026
@olyson olyson added bug something is working incorrectly next this should get some attention in the next week or two. Normally each Thursday SE meeting. labels Jun 11, 2026
@olyson

olyson commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

I see that there are some python errors in the automated testing, I'll address those next week once I figure out what they are about. Although my code was rated 9.99/10, ha ha.

@olyson

olyson commented Jun 16, 2026

Copy link
Copy Markdown
Contributor Author

Ok, I've fixed all of the python-lint-and-black errors.

@wwieder wwieder requested a review from samsrabin June 24, 2026 16:07
@wwieder

wwieder commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

@samsrabin can you review this. Keith's done functional tests to check this works, but would like a review on the python. We can also discuss testing (which may be outside the scope of this PR)?

@samsrabin

Copy link
Copy Markdown
Member

Can do, sure. What sort of timeline were y'all hoping for?

@olyson

olyson commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

Can do, sure. What sort of timeline were y'all hoping for?

Maybe by the end of next week?

@olyson

olyson commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

Per discussion at CTSM software meeting, I'm going to expand this PR to include other fixes to problems I've encountered with running PLUMBER2 sites.

@olyson olyson marked this pull request as draft June 25, 2026 16:08
@olyson olyson changed the title Get PLUMBER2 wetland sites to run Fix problems encountered with running PLUMBER2 sites Jun 25, 2026
@olyson olyson removed the next this should get some attention in the next week or two. Normally each Thursday SE meeting. label Jun 25, 2026
@github-project-automation github-project-automation Bot moved this to Ready to start (or start again) in CTSM: Upcoming tags Jul 2, 2026
@samsrabin samsrabin moved this from Ready to start (or start again) to In progress - master in CTSM: Upcoming tags Jul 2, 2026
@olyson

olyson commented Jul 2, 2026

Copy link
Copy Markdown
Contributor Author

@samsrabin , I think this is ready for review now, whenever you have time...

@wwieder

wwieder commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

@samsrabin this is ready for review

@wwieder wwieder marked this pull request as ready for review July 9, 2026 16:18
@wwieder wwieder changed the title Fix problems encountered with running PLUMBER2 sites CTSM5.4.048 Fix problems encountered with running PLUMBER2 sites Jul 9, 2026
@ekluzek ekluzek self-assigned this Jul 9, 2026
@ekluzek ekluzek self-requested a review July 9, 2026 16:19

@samsrabin samsrabin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice work! I've left some comments in the diffs.

Remaining work

(In addition to resolving comments)

Things you already noted:

  • Needs CDEPS update(s) before merging
  • New input data needs to be copied into inputdata and rimported
  • Test all sites after making those changes

Additional:

  • Please check the docs to see if there are any required updates.

Comment on lines +266 to +267
"""hist_fincl1 = 'TOTECOSYSC', 'TOTECOSYSN', 'TOTSOMC', 'TOTSOMN', 'TOTVEGC',
'TOTVEGN', 'TLAI', 'GPP', 'CPOOL', 'NPP', 'TWS', 'H2OSNO'""",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It looks like the hist_fincl1 line is new. What's the deal with that?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The list for spinup history fields in AD mode is handled automatically by namelist_defaults_ctsm.xml when clm_accelerated_spinup = on. But not handled for postad runs. So I've added the same fields explicitly here. Specifying the other items (hist_mfilt, hist_nhtfrq, hist_empty_tapes) without requesting any history fields results in an error (#4105).
However, I'm now wondering if the PLUMBER run_tower has ever been tested for SP mode. E.g., these fields wouldn't work for SP mode. I can work on SP but I think I'd like to make that a separate project/PR, in the interest of getting these changes to main soon. But happy to discuss, @wwieder , @samsrabin .

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Yes, that being a separate effort sounds good to me.

# PLUMBER cases all start in different years, but not expected to cause issues.
# PLUMBER cases have specific start dates for each site that are set in
# shell_commands
# DOES THIS NEED TO BE SET DIFFERENTLY FOR PLUMBER2 SPINUP?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This question should be resolved.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This does not need to be set differently for PLUMBER2, so I'll remove the comment. However, I'm not sure RUN_REFDATE should be set at all for run_type=ad for NEON either. It will be ignored since CLM_FORCE_COLDSTART=on, in that block of code. @wwieder , do you remember why it is set here?

Comment thread tools/site_and_regional/create_PLUMBER2_sites_csv.ncl Outdated
Comment thread tools/site_and_regional/create_PLUMBER2_sites_csv.ncl Outdated
Comment thread tools/site_and_regional/create_PLUMBER2_sites_csv.ncl Outdated
Comment thread tools/site_and_regional/create_PLUMBER2_sites_csv.ncl Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I can't comment on the correctness of this script because I don't know NCL. For what it's worth, Copilot seems to think it's okay.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks for checking.

Comment thread python/ctsm/test/test_unit_neon_site.py Outdated
Comment thread python/ctsm/test/test_unit_neon_site.py Outdated
Comment thread python/ctsm/site_and_regional/plumber2_usermods.py Outdated
@github-project-automation github-project-automation Bot moved this from In progress - master to Stalled (needs review, blocked etc.) in CTSM: Upcoming tags Jul 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug something is working incorrectly

Projects

Status: Stalled (needs review, blocked etc.)

4 participants