CTests C48_S2SW GFS Wave Expansion#4459
Merged
DavidHuber-NOAA merged 14 commits intoNOAA-EMC:developfrom Jan 27, 2026
Merged
Conversation
- Add gfs_waveinit test (mod_def file generation for 8 wave grids) - Add gfs_wavepostpnt test (spectral/bulletin tar output) - Add gfs_wavepostsbs_f000-f002 test (gridded GRIB2 output) - Add gfs_wavepostbndpnt test (interpolated boundary point output) - Update CMakeLists.txt with 4 new AddJJOBTest entries All 16 test phases (4 tests x 4 phases) validated on Hera HPC.
…tem 8) - Add C48_S2SW-gfs_wavepostbndpntbll.yaml for WMO bulletin generation - Update CMakeLists.txt with AddJJOBTest entry - Update PR_description.md with 5th test case details Test validates boundary point bulletin output: - ibpbull.tar (boundary point bulletins) - ibpcbull.tar (combined bulletins) All 4 phases passed (Job 21151218)
…inness-NOAA/global-workflow into s2sw_wave_expansion
- Add trailing hyphen convention to prevent regex partial matches (e.g., 'ctest -L C48_S2SW-' excludes C48_S2SWA_gefs tests) - Update CMakeLists.txt with binomial nomenclature documentation - Update testing.rst and README.md with correct label usage examples - Unroll Jinja loops in wavepostsbs YAML for explicit file listing
| set_tests_properties(test_${TEST_NAME}_execute PROPERTIES DEPENDS test_${TEST_NAME}_stage LABELS "${ARG_CASE}-${ARG_JOB}") | ||
| set_tests_properties(test_${TEST_NAME}_execute PROPERTIES DEPENDS test_${TEST_NAME}_stage LABELS "${TEST_NAME}") | ||
|
|
||
| # TODO - This is a stub for the validation step |
Contributor
There was a problem hiding this comment.
Is this still a TODO?
DavidHuber-NOAA
approved these changes
Jan 27, 2026
Contributor
DavidHuber-NOAA
left a comment
There was a problem hiding this comment.
Looks good. Just one question.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CTest Framework Expansion
C48_S2SW Wave Component Tests
Claud Opus 4.5 was used to assist with developing this PR
This code requires review and validation by NWS staff
Summary
This PR adds comprehensive CTest coverage for wave component jobs in the C48_S2SW workflow configuration. Five new test cases validate critical wave post-processing tasks, expanding the automated testing framework for the S2SW (Subseasonal-to-Seasonal with Waves) system.
Resolves #4318
Changes
New Test Cases
C48_S2SW-gfs_stage_icgfs_stage_icC48_S2SW-gfs_waveinitgfs_waveinitC48_S2SW-gfs_wavepostpntgfs_wavepostpntC48_S2SW-gfs_wavepostsbs_f000-f002gfs_wavepostsbs_f000-f002C48_S2SW-gfs_wavepostbndpntgfs_wavepostbndpntC48_S2SW-gfs_wavepostbndpntbllgfs_wavepostbndpntbllFiles Added
dev/ctests/cases/C48_S2SW-gfs_stage_ic.yamldev/ctests/cases/C48_S2SW-gfs_waveinit.yamldev/ctests/cases/C48_S2SW-gfs_wavepostpnt.yamldev/ctests/cases/C48_S2SW-gfs_wavepostsbs_f000-f002.yamldev/ctests/cases/C48_S2SW-gfs_wavepostbndpnt.yamldev/ctests/cases/C48_S2SW-gfs_wavepostbndpntbll.yamlFiles Modified
dev/ctests/CMakeLists.txt- Added 6 newAddJJOBTest()entriesTest Details
gfs_waveinit
uglo_100km(native unstructured global)glo_30m(global 30-minute)aoc_9km(Arctic Ocean 9km)at_10m,ep_10m,wc_10m(regional 10-minute grids)gnh_10m,gsh_15m(hemispheric grids)gfs_wavepostpnt
spec.tar.gz(spectral data),bull.tar(bulletins)gfs_wavepostsbs_f000-f002
global.0p16andglobal.0p50gridsgfs_wavepostbndpnt
ibp.tar(interpolated boundary point spectra)gfs_wavepostbndpntbll
ibpbull.tar(boundary point bulletins),ibpcbull.tar(combined bulletins)Testing
All 60 CTests (15 tests × 4 phases) validated successfully on Hercules HPC:
stage_ic,fcst_seg0,atmos_prod_f000-f002,tracker,genesisstage_ic,fcst_seg0,ocean_prod_f006,ice_prod_f006,waveinit,wavepostpnt,wavepostsbs_f000-f002,wavepostbndpnt,wavepostbndpntbllfcst_mem001_seg0Technical Notes
Wave History File Pattern: The
uglo_100kmhistory files follow a non-uniform pattern:Wave Point File Pattern: Point output files exist for all 121 hours (f000-f120)
Metatask Handling: The
wavepostsbstask is a Rocoto metatask requiring specific subtask names (e.g.,gfs_wavepostsbs_f000-f002) forrocotobootTask Output Separation:
wavepostbndpntproduces onlyibp.tarwavepostbndpntbll(separate task) producesibpbull.tarandibpcbull.tarBaseline Reference
C48_S2SW_b40eab88-7222/scratch3/NCEPDEV/global/role.glopara/GFS_CI_CD/HERA/BUILDS/GITLAB/stable/RUNTESTSDependencies
GFS_CI_ROCOTO_PATHfv3-cpuallocation on HeraSTAGED_CTESTSChecklist
AddJJOBTest()format