Skip to content
Merged
Show file tree
Hide file tree
Changes from 55 commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
9c7df7f
Begin to add a file number dimension to permit 2+ files per hist. tape
slevis-lmwg Apr 1, 2024
42d944d
WIP (cont'd): Adding file number dimension to permit 2+ files per tape
slevis-lmwg Apr 13, 2024
a37d9da
WIP (cont'd): Advancing through TODOs to permit 2+ files per tape
slevis-lmwg Apr 17, 2024
15535a0
Minor comment update to keep track of progress
slevis-lmwg May 6, 2024
aff6ac4
Merge tag 'ctsm5.3.009' into sep_hXi_hXa_tapes_iss1059
slevis-lmwg Oct 30, 2024
9ce1a7a
Merge tag 'ctsm5.3.014' into sep_hXi_hXa_tapes_iss1059
slevis-lmwg Dec 17, 2024
7803fd4
Minor update to histFileMod, mainly in TODO comments
slevis-lmwg Dec 18, 2024
2304d59
WIP (cont'd): Allow 2+ restart files per tape to mirror the hist files
slevis-lmwg Dec 18, 2024
93007dd
WIP (cont'd): Part (b) of the last commit
slevis-lmwg Dec 18, 2024
16217fe
WIP (cont'd): Part (c) of the last commit
slevis-lmwg Dec 18, 2024
5810d1d
Clean-up some new and existing do-loops
slevis-lmwg Dec 18, 2024
fbabe7c
Small correction and TODO updates
slevis-lmwg Dec 19, 2024
e574acb
Small correction and some clean-up
slevis-lmwg Dec 19, 2024
30d7904
Corrections to resolve various errors in the SHAREDLIB_BUILD phase
slevis-lmwg Dec 27, 2024
63a4db6
Change history_tape_in_use* from logical to integer for ncd_io to work
slevis-lmwg Dec 27, 2024
6f56d01
Add the 'file' dimension to ntimes; test passes but output is not good
slevis-lmwg Jan 3, 2025
ebf652e
Change hist file labels from h01, h02 to h0i, h0a
slevis-lmwg Jan 3, 2025
d9fdab0
Change "if instantaneous" statemt with more appropriate conditional
slevis-lmwg Jan 3, 2025
16d1e29
Add "file" dimension to actflag to separate the 'I' fields
slevis-lmwg Jan 4, 2025
f1b0685
Correct time-related fields that appear on instantaneous file
slevis-lmwg Jan 4, 2025
ea2218c
Merge tag 'ctsm5.3.021' into sep_hXi_hXa_tapes_iss1059
slevis-lmwg Feb 11, 2025
a037b2a
Fix conflict that slipped through
slevis-lmwg Feb 11, 2025
4190cfd
Merge tag 'ctsm5.3.023' into sep_hXi_hXa_tapes_iss1059
slevis-lmwg Feb 11, 2025
0aee6c1
Merge tag 'ctsm5.3.030' into sep_hXi_hXa_tapes_iss1059
slevis-lmwg Mar 11, 2025
be8682e
Corrections with imperfect results explained 2025/5/6 in #2445
slevis-lmwg May 6, 2025
e2ee1da
Merge tag 'ctsm5.3.041' into sep_hXi_hXa_tapes_iss1059
slevis-lmwg May 6, 2025
2daf3e4
Corrections fixing issue (2) posted on 2025/5/6 in #2445
slevis-lmwg May 8, 2025
ee104f0
Add file dimension to if_disphist to resolve issue (1) posted 2025/5/6
slevis-lmwg May 10, 2025
fa1ec3b
Merge tag 'ctsm5.3.043' into sep_hXi_hXa_tapes_iss1059
slevis-lmwg May 10, 2025
8683db1
Update needed for rh files to mirror h files with an "a" or "i" index
slevis-lmwg May 14, 2025
9a67b74
Resolve "invalid time averaging flag" error from corrupted call argumt
slevis-lmwg May 15, 2025
530d447
WIP resolving restart tests (and some clean-up)
slevis-lmwg May 16, 2025
0bf0153
Reorder dims on two character vars to read them successfully
slevis-lmwg May 16, 2025
12472f7
PASS ERS_D_Ld5_Mmpi-serial.1x1_mexicocityMEX.I1PtClm60SpRs.derecho_gnu..
slevis-lmwg May 20, 2025
f2bc687
PASS ERS_Ld396.f10_f10_mg37.I1850Clm60Bgc.derecho_intel.clm-monthly_matr
slevis-lmwg May 20, 2025
ab5050b
Resolve all aux_clm tests on derecho but one (RXCROPMATURITYSKIPGEN)
slevis-lmwg May 22, 2025
2334bf9
PASS RXCROPMATURITYSKIPGEN_Ld1097.f10_f10_mg37.IHistClm60BgcCrop.derecho
slevis-lmwg May 22, 2025
3188773
Various minor clean-up items
slevis-lmwg May 22, 2025
5df5df2
Merge tag 'ctsm5.3.045' into sep_hXi_hXa_tapes_iss1059
slevis-lmwg May 22, 2025
339eae2
Cleaning up comments
slevis-lmwg May 30, 2025
7ed8d4b
Merge tag 'ctsm5.3.055' into sep_hXi_hXa_tapes_iss1059
slevis-lmwg Jun 6, 2025
a1eff1d
Merge tag 'ctsm5.3.058' into sep_hXi_hXa_tapes_iss1059
slevis-lmwg Jun 18, 2025
5ab5280
Revisions to config_archive.xml as recommended in code review
slevis-lmwg Jun 26, 2025
efadbb8
Revisions to histFileMod.F90 as recommended in code review
slevis-lmwg Jun 26, 2025
712dc0d
Revert new "else error check" that I now realize will not work
slevis-lmwg Jun 26, 2025
7a881be
Revert history_tape_in_use to logical as per code review
slevis-lmwg Jun 27, 2025
cd38e31
Increase wallclock on SMS_D_Ld733... test for successful completion
slevis-lmwg Jun 27, 2025
e96bd65
Update history file extensions in generate_gdds_functions.py
slevis-lmwg Jun 27, 2025
fcbac14
Update history file extensions in neon_gcs_upload
slevis-lmwg Jun 27, 2025
cf41215
Update history file extensions in tools/contrib files
slevis-lmwg Jun 27, 2025
56e7d9c
Minor comment update
slevis-lmwg Jun 30, 2025
74a22fb
Improved error message to include file number
slevis-lmwg Jun 30, 2025
c2123d4
Remove RXCROP*INST tests as planned in this PR
slevis-lmwg Jul 1, 2025
5ea0e94
Merge tag 'ctsm5.3.061' into sep_hXi_hXa_tapes_iss1059
slevis-lmwg Jul 1, 2025
dacd66b
Draft ChangeLog/ChangeSum
slevis-lmwg Jul 3, 2025
8624123
Updated ChangeLog
slevis-lmwg Jul 3, 2025
1976216
Change wallclock from 00:59:00 to 01:00:00
slevis-lmwg Jul 3, 2025
a7fd23c
Bug fix where h1i file was getting inappropriately named h1a
slevis-lmwg Jul 3, 2025
a8af67b
Correction for RXCROP* tests
slevis-lmwg Jul 3, 2025
1b490f3
Better error messaging based on code review
slevis-lmwg Jul 3, 2025
dacee35
Change dim. ntapes_by_max_split_files to ntapes_multiply_by_max_split…
slevis-lmwg Jul 3, 2025
70a9d86
Clarify a comment
slevis-lmwg Jul 3, 2025
a67416f
Update rtm1_0_86 to 87 and mosart1.1.08 to 09
slevis-lmwg Jul 4, 2025
3b70fff
Correction for RXCROP* tests, part 2
slevis-lmwg Jul 4, 2025
31fe1bd
Add to ExpectedTestFails five ctsm_sci tests needing new finidat to PASS
slevis-lmwg Jul 8, 2025
aa67359
Double wallclock on ctsm_sci test that consistently exceeded wallclock
slevis-lmwg Jul 8, 2025
fc825e5
Revert h2i extensions to h2a for RXCROP tests to PASS
slevis-lmwg Jul 8, 2025
e0e509d
Set hist_avgflag_pertape(3) = 'I' for LREPR tests to PASS
slevis-lmwg Jul 8, 2025
d7a1a0b
Revert h2a extensions to h2i for RXCROP tests to PASS
slevis-lmwg Jul 9, 2025
adac90d
Update ChangeLog/ChangeSum
slevis-lmwg Jul 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions cime_config/SystemTests/rxcropmaturityinst.py

This file was deleted.

6 changes: 0 additions & 6 deletions cime_config/SystemTests/rxcropmaturityskipgeninst.py

This file was deleted.

37 changes: 10 additions & 27 deletions cime_config/config_archive.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
<components version="2.0">
<comp_archive_spec compname="clm" compclass="lnd">
<rest_file_extension>r</rest_file_extension>
<rest_file_extension>rh\d?</rest_file_extension>
<rest_file_extension>rh\da</rest_file_extension>
<rest_file_extension>rh\di</rest_file_extension>
<hist_file_extension>h\d*.*\.nc$</hist_file_extension>
<hist_file_extension>lilac_hi.*\.nc$</hist_file_extension>
<hist_file_extension>lilac_atm_driver_h\d*.*\.nc$</hist_file_extension>
Expand All @@ -13,37 +14,19 @@
</rpointer>
<test_file_names>
<tfile disposition="copy">rpointer.lnd</tfile>
<tfile disposition="copy">rpointer.lnd_9999</tfile>
<tfile disposition="copy">rpointer.lnd_9999.1976-01-01-00000</tfile>
<tfile disposition="copy">casename.clm2.r.1976-01-01-00000.nc</tfile>
<tfile disposition="copy">casename.clm2.rh4.1976-01-01-00000.nc</tfile>
<tfile disposition="move">casename.clm2.h0.1976-01-01-00000.nc</tfile>
<tfile disposition="copy">casename.clm2.rh4a.1976-01-01-00000.nc</tfile>
<tfile disposition="copy">casename.clm2.rh4i.1976-01-01-00000.nc</tfile>
<tfile disposition="move">casename.clm2.h0a.1976-01-01-00000.nc</tfile>
<tfile disposition="move">casename.clm2.h0i.1976-01-01-00000.nc</tfile>
<tfile disposition="move">casename.clm2.lilac_hi.1976-01-01-00000.nc</tfile>
<tfile disposition="move">casename.clm2.lilac_atm_driver_h0.0001-01.nc</tfile>
<tfile disposition="ignore">casename.clm2.h0.1976-01-01-00000.nc.base</tfile>
<tfile disposition="ignore">casename.clm2.h0a.1976-01-01-00000.nc.base</tfile>
<tfile disposition="ignore">casename.clm2.h0i.1976-01-01-00000.nc.base</tfile>
<tfile disposition="move">casename.clm2_0002.e.postassim.1976-01-01-00000.nc</tfile>
<tfile disposition="move">casename.clm2_0002.e.preassim.1976-01-01-00000.nc</tfile>
<tfile disposition="ignore">anothercasename.clm2.i.1976-01-01-00000.nc</tfile>
</test_file_names>
</comp_archive_spec>
<comp_archive_spec compname="ctsm" compclass="lnd">
<rest_file_extension>r</rest_file_extension>
<rest_file_extension>rh\d?</rest_file_extension>
<hist_file_extension>h\d*.*\.nc$</hist_file_extension>
<hist_file_extension>e</hist_file_extension>
<rest_history_varname>locfnh</rest_history_varname>
<rpointer>
<rpointer_file>rpointer.lnd$NINST_STRING</rpointer_file>
<rpointer_content>./$CASE.ctsm$NINST_STRING.r.$DATENAME.nc</rpointer_content>
</rpointer>
<test_file_names>
<tfile disposition="copy">rpointer.lnd</tfile>
<tfile disposition="copy">rpointer.lnd_9999</tfile>
<tfile disposition="copy">casename.ctsm.r.1976-01-01-00000.nc</tfile>
<tfile disposition="copy">casename.ctsm.rh4.1976-01-01-00000.nc</tfile>
<tfile disposition="move">casename.ctsm.h0.1976-01-01-00000.nc</tfile>
<tfile disposition="ignore">casename.ctsm.h0.1976-01-01-00000.nc.base</tfile>
<tfile disposition="move">casename.ctsm_0002.e.postassim.1976-01-01-00000.nc</tfile>
<tfile disposition="move">casename.ctsm_0002.e.preassim.1976-01-01-00000.nc</tfile>
<tfile disposition="ignore">anothercasename.clm2.r.1976-01-01-00000.nc</tfile>
</test_file_names>
</comp_archive_spec>
</components>
20 changes: 0 additions & 20 deletions cime_config/config_tests.xml
Original file line number Diff line number Diff line change
Expand Up @@ -145,16 +145,6 @@ This defines various CTSM-specific system tests
<HIST_N>$STOP_N</HIST_N>
</test>

<test NAME="RXCROPMATURITYINST">
<DESC>As RXCROPMATURITY but ensure instantaneous h1. Can be removed once instantaneous and other variables are on separate files.</DESC>
<INFO_DBUG>1</INFO_DBUG>
<DOUT_S>FALSE</DOUT_S>
<CONTINUE_RUN>FALSE</CONTINUE_RUN>
<REST_OPTION>never</REST_OPTION>
<HIST_OPTION>$STOP_OPTION</HIST_OPTION>
<HIST_N>$STOP_N</HIST_N>
</test>

<test NAME="RXCROPMATURITYSKIPGEN">
<DESC>As RXCROPMATURITY but don't actually generate GDDs. Allows short testing with existing GDD inputs.</DESC>
<INFO_DBUG>1</INFO_DBUG>
Expand All @@ -165,16 +155,6 @@ This defines various CTSM-specific system tests
<HIST_N>$STOP_N</HIST_N>
</test>

<test NAME="RXCROPMATURITYSKIPGENINST">
<DESC>As RXCROPMATURITYSKIPGEN but ensure instantaneous h1. Can be removed once instantaneous and other variables are on separate files.</DESC>
<INFO_DBUG>1</INFO_DBUG>
<DOUT_S>FALSE</DOUT_S>
<CONTINUE_RUN>FALSE</CONTINUE_RUN>
<REST_OPTION>never</REST_OPTION>
<HIST_OPTION>$STOP_OPTION</HIST_OPTION>
<HIST_N>$STOP_N</HIST_N>
</test>

<!--
SSP smoke CLM spinup test (only valid for CLM compsets with CLM45)
do an initial spin test (setting CLM_ACCELERATED_SPINUP to on)
Expand Down
24 changes: 1 addition & 23 deletions cime_config/testdefs/testlist_clm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4240,17 +4240,6 @@
</options>
</test>

<test name="RXCROPMATURITYINST_Lm61" grid="f10_f10_mg37" compset="IHistClm60BgcCrop" testmods="clm/cropMonthOutput">
<machines>
<machine name="derecho" compiler="intel" category="rxcropmaturity"/>
<machine name="derecho" compiler="intel" category="crop_calendars"/>
</machines>
<options>
<option name="wallclock">6:00:00</option>
<option name="comment">As RXCROPMATURITY, but ensure that h1 file is instantaneous. Can be removed once instantaneous and other variables are separated onto separate files.</option>
</options>
</test>

<test name="RXCROPMATURITYSKIPGEN_Ld1097" grid="f10_f10_mg37" compset="IHistClm60BgcCrop" testmods="clm/cropMonthOutput">
<machines>
<machine name="derecho" compiler="intel" category="aux_clm"/>
Expand All @@ -4263,17 +4252,6 @@
</options>
</test>

<test name="RXCROPMATURITYSKIPGENINST_Ld1097" grid="f10_f10_mg37" compset="IHistClm60BgcCrop" testmods="clm/cropMonthOutput">
<machines>
<machine name="derecho" compiler="intel" category="rxcropmaturity"/>
<machine name="derecho" compiler="intel" category="crop_calendars"/>
</machines>
<options>
<option name="wallclock">00:45:00</option>
<option name="comment">As RXCROPMATURITYSKIPGEN, but ensure that h1 file is instantaneous. Can be removed once instantaneous and other variables are separated onto separate files.</option>
</options>
</test>

<test name="ERP_D_P64x2_Ld10" grid="f10_f10_mg37" compset="I2000Clm60Bgc" testmods="clm/Hillslope">
<machines>
<machine name="derecho" compiler="intel" category="aux_clm"/>
Expand Down Expand Up @@ -4388,7 +4366,7 @@
<machine name="derecho" compiler="intel" category="crop_calendars"/>
</machines>
<options>
<option name="wallclock">00:20:00</option>
<option name="wallclock">00:59:00</option>
</options>
</test>

Expand Down
130 changes: 130 additions & 0 deletions doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,134 @@
===============================================================
Tag name: ctsm5.3.062
Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310)
Date: Thu 03 Jul 2025 12:23:00 PM MDT
One-line Summary: Put instantaneous and non-inst. fields on separate hist files

Purpose and description of changes
----------------------------------
Following ctsm5.3.018 "Change history time to be the middle of the time bounds" the current change intends to prevent confusion associated with the time corresponding to instantaneous history fields by putting them on separate files than non-instantaneous fields. The result is
1) two history files per clm, mosart, and rtm history tape:
tape h0 becomes h0a and h0i
tape h1 becomes h1a and h1i
...
tape hX becomes hXa and hXi

2) two history restart files per history restart tape:
rh0 becomes rh0a and rh0i
rh1 becomes rh1a and rh1i
...
rhX becomes rhXa and rhXi

The clm could and still can handle not generating history (and corresponding history restart) files when empty. The rtm and mosart could not handle not generating empty files. Instead of refactoring rtm and mosart (out of scope), I introduced one active instantaneous field in mosart and one in rtm.

Significant changes to scientifically-supported configurations
--------------------------------------------------------------

Does this tag change answers significantly for any of the following physics configurations?
(Details of any changes will be given in the "Answer changes" section below.)

[Put an [X] in the box for any configuration with significant answer changes.]

[ ] clm6_0

[ ] clm5_0

[ ] ctsm5_0-nwp

[ ] clm4_5


Bugs fixed
----------
List of CTSM issues fixed (include CTSM Issue # and description) [one per line]:
Resolves #1059 Don't allow inst. fields and averaged fields to be on the same history file
Resolves ESCOMP/RTM#32
Resolves ESCOMP/MOSART#52

Notes of particular relevance for users
---------------------------------------
Caveats for users (e.g., need to interpolate initial conditions):
History tapes have new extensions, e.g. h0 becomes h0a and h0i
History restart tapes have new extensions, e.g. rh0 becomes rh0a and rh0i

Changes to documentation:
Not, yet:
- clm documentation
- Adam Phillips' cmip documentation

Substantial timing or memory changes:
[e.g., check PFS test in the test suite and look at timings, if you
expect possible significant timing changes]


Testing summary:
----------------

[PASS means all tests PASS; OK means tests PASS other than expected fails.]

build-namelist tests (if CLMBuildNamelist.pm has changed):

derecho - PASS

python testing (if python code has changed; see instructions in python/README.md; document testing done):

derecho - PASS

regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing):

derecho ----- OK
izumi ------- OK

fates tests: (-c fates-sci.1.84.0_api.40.0.0-ctsm5.3.061 -g fates-sci.1.84.0_api.40.0.0-ctsm5.3.062)
derecho ----- OK
izumi ------- OK

any other testing (give details below):

ctsm_sci (-c ctsm_sci-ctsm5.3.059 -g ctsm_sci-ctsm5.3.062)
derecho ---- FAIL and I will open an issue and mark EXPECTED FAILURE as the problem originates in ctsm5.3.060

mosart tests: (-c mosart1.1.08-ctsm5.3.061 -g mosart1.1.09-ctsm5.3.062)
derecho ----- OK
izumi ------- OK

rtm tests: (-c rtm1_0_86-ctsm5.3.061 -g rtm1_0_87-ctsm5.3.062)
derecho ----- OK
izumi ------- OK

crop_calendars tests: (tested while in ctsm5.3.058, before updating to ctsm5.3.061)
derecho ----- OK
izumi ------- OK

ssp tests: (tested while in ctsm5.3.058, before updating to ctsm5.3.061)
derecho ----- OK

hillslope tests: (tested while in ctsm5.3.058, before updating to ctsm5.3.061)
derecho ----- OK

fire tests: (tested while in ctsm5.3.058, before updating to ctsm5.3.061)
derecho ----- OK

Answer changes
--------------

Changes answers relative to baseline: No, but read caveat

Caveat: h0 files become h0a (containing non-instantaneous fields) and h0i (containing instantaneous fields). I spot-checked clm, mosart, and rtm files and confirmed no bitwise change in answers.

Other details
-------------
List any git submodules updated (cime, rtm, mosart, cism, fates, etc.):
mosart1.1.08 --> mosart1.1.09
rtm1_0_86 --> rtm1_0_87

Pull Requests that document the changes (include PR ids):
https://github.com/ESCOMP/ctsm/pull/2445
https://github.com/ESCOMP/MOSART/pull/117
https://github.com/ESCOMP/RTM/pull/61

===============================================================
===============================================================
Tag name: ctsm5.3.061
Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310)
Date: Thu 26 Jun 2025 11:28:43 AM MDT
Expand Down
1 change: 1 addition & 0 deletions doc/ChangeSum
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Tag Who Date Summary
============================================================================================================================
ctsm5.3.062 slevis 07/03/2025 Put inst. and non-inst. fields on separate hist files
ctsm5.3.061 slevis 06/26/2025 Merge b4b-dev to master
ctsm5.3.060 slevis 06/24/2025 Preliminary update of ctsm54 defaults (answer changing)
ctsm5.3.059 erik 06/23/2025 Bring in various cleanup efforts found in previous testing after the chill changes came in
Expand Down
2 changes: 1 addition & 1 deletion python/ctsm/crop_calendars/check_rxboth_run.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def main(argv):

any_bad = False

annual_outfiles = glob.glob(os.path.join(args.directory, "*.clm2.h1.*.nc"))
annual_outfiles = glob.glob(os.path.join(args.directory, "*.clm2.h1a.*.nc"))

# These should be constant in a Prescribed Calendars (rxboth) run, as long as the inputs were
# static.
Expand Down
8 changes: 4 additions & 4 deletions python/ctsm/crop_calendars/generate_gdds_functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,13 +280,13 @@ def import_and_process_1yr(
chunks = None

# Get h1 file (list)
h1_pattern = os.path.join(indir, "*h1.*.nc")
h1_pattern = os.path.join(indir, "*h1a.*.nc")
h1_filelist = glob.glob(h1_pattern)
if not h1_filelist:
h1_pattern = os.path.join(indir, "*h1.*.nc.base")
h1_pattern = os.path.join(indir, "*h1a.*.nc.base")
h1_filelist = glob.glob(h1_pattern)
if not h1_filelist:
error(logger, "No files found matching pattern '*h1.*.nc(.base)'")
error(logger, "No files found matching pattern '*h1a.*.nc(.base)'")

# Get list of crops to include
if skip_crops is not None:
Expand Down Expand Up @@ -566,7 +566,7 @@ def import_and_process_1yr(
log(logger, " Importing accumulated GDDs...")
clm_gdd_var = "GDDACCUM"
my_vars = [clm_gdd_var, "GDDHARV"]
patterns = [f"*h2.{this_year-1}-01*.nc", f"*h2.{this_year-1}-01*.nc.base"]
patterns = [f"*h2a.{this_year-1}-01*.nc", f"*h2a.{this_year-1}-01*.nc.base"]
for pat in patterns:
pattern = os.path.join(indir, pat)
h2_files = glob.glob(pattern)
Expand Down
Loading
Loading