From 238b7c7dc238cb296db33acc237a8866c03d685d Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Wed, 18 Feb 2026 01:38:05 +0000 Subject: [PATCH 01/10] Update to new stable build on 20260218 --- sorc/ioda | 2 +- sorc/ufo | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sorc/ioda b/sorc/ioda index 6eab16499..d04de0b2d 160000 --- a/sorc/ioda +++ b/sorc/ioda @@ -1 +1 @@ -Subproject commit 6eab1649977a81129d5b3f0803571b747f286f09 +Subproject commit d04de0b2dfd0c82763b37825d0fa3bc483dd9c77 diff --git a/sorc/ufo b/sorc/ufo index 7544ca8ff..8ef69e8eb 160000 --- a/sorc/ufo +++ b/sorc/ufo @@ -1 +1 @@ -Subproject commit 7544ca8ff806a6370a04239830b8ca1dabac1bbb +Subproject commit 8ef69e8eb0dea43b925ab67f57380d5bebb3d3d8 From a46623f2dc2fb521d72363f62bd2ecbdca576b3f Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Thu, 19 Feb 2026 01:47:36 +0000 Subject: [PATCH 02/10] Update to new stable build on 20260219 --- sorc/fv3-jedi | 2 +- sorc/ioda | 2 +- sorc/oops | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sorc/fv3-jedi b/sorc/fv3-jedi index c7d53f173..5fae40c7a 160000 --- a/sorc/fv3-jedi +++ b/sorc/fv3-jedi @@ -1 +1 @@ -Subproject commit c7d53f173ea8c915f69fcdf24ed468543aae804c +Subproject commit 5fae40c7acc921026fae3a22f9d2d3e46495b30e diff --git a/sorc/ioda b/sorc/ioda index d04de0b2d..c1739e96a 160000 --- a/sorc/ioda +++ b/sorc/ioda @@ -1 +1 @@ -Subproject commit d04de0b2dfd0c82763b37825d0fa3bc483dd9c77 +Subproject commit c1739e96abf1afdbf526d799375f48725aeda0ff diff --git a/sorc/oops b/sorc/oops index cbbd6ea29..21ee5993f 160000 --- a/sorc/oops +++ b/sorc/oops @@ -1 +1 @@ -Subproject commit cbbd6ea293983729064c132a87ddff1abf1f92cf +Subproject commit 21ee5993f4b824f3cdbefed3660eec433fd4dcd4 From 8469dfe2e0220a24ba765bd149ef9f3cd61a3f23 Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Fri, 20 Feb 2026 01:48:46 +0000 Subject: [PATCH 03/10] Update to new stable build on 20260220 --- sorc/ufo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/ufo b/sorc/ufo index 8ef69e8eb..87159ad96 160000 --- a/sorc/ufo +++ b/sorc/ufo @@ -1 +1 @@ -Subproject commit 8ef69e8eb0dea43b925ab67f57380d5bebb3d3d8 +Subproject commit 87159ad9648e648443133cc1ad4a89b48349cb51 From 62f4c634dfd46357d056b88351b255b9511d51a0 Mon Sep 17 00:00:00 2001 From: Russ-Treadon-NOAA Date: Fri, 20 Feb 2026 19:48:25 +0000 Subject: [PATCH 04/10] add C48_ufsenkf_atmDA to ctest --- .github/pull_request_template.md | 1 + ci/ci_tests.sh | 1 + test/gw-ci/CMakeLists.txt | 42 +++++++++++++++++++++++++++++--- 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 09abf1fc1..40229c5ea 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -23,4 +23,5 @@ Refs NOAA-EMC/repo#5678 - [ ] C48mx500_3DVarAOWCDA - [ ] C48mx500_hybAOWCDA - [ ] C96C48_ufsgsi_hybatmDA +- [ ] C48_ufsenkf_atmDA - [ ] C96C48_hybatmDA diff --git a/ci/ci_tests.sh b/ci/ci_tests.sh index 8361c5153..8329f4d62 100644 --- a/ci/ci_tests.sh +++ b/ci/ci_tests.sh @@ -3,6 +3,7 @@ CI_TESTS=("atm_jjob" "C96C48_ufsgsi_hybatmDA" "C96C48_hybatmsnowDA" "C96_gcafs_cycled" + "C48_ufsenkf_atmDA" "C48mx500_3DVarAOWCDA" "C48mx500_hybAOWCDA" "C96C48_hybatmDA") diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index 7ed6e5186..52ccd85bd 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -85,11 +85,19 @@ function(add_task task_name test_prefix is_full_cycle HALF_CYCLE FULL_CYCLE pslo endif() else() if("${task_name}" STREQUAL "gdas_prep") - list(APPEND TEST_DEPENDS "${test_prefix}_gdas_fcst_${HALF_CYCLE}") - list(APPEND TEST_DEPENDS "${test_prefix}_gdas_atmos_prod_${HALF_CYCLE}") + if(NOT "${pslot}" STREQUAL "C48_ufsenkf_atmDA") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_fcst_${HALF_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_atmos_prod_${HALF_CYCLE}") + else() + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_epmn_${HALF_CYCLE}") + endif() elseif("${task_name}" STREQUAL "gcdas_prep") list(APPEND TEST_DEPENDS "${test_prefix}_gcdas_fcst_${HALF_CYCLE}") list(APPEND TEST_DEPENDS "${test_prefix}_gcdas_atmos_prod_${HALF_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_fetchatmanlbias") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_epmn_${HALF_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_prepatmanlbias") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_fetchatmanlbias_${FULL_CYCLE}") elseif("${task_name}" STREQUAL "gdas_anal") list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_epmn_${HALF_CYCLE}") list(APPEND TEST_DEPENDS "${test_prefix}_gdas_prep_${FULL_CYCLE}") @@ -159,6 +167,9 @@ function(add_task task_name test_prefix is_full_cycle HALF_CYCLE FULL_CYCLE pslo elseif("${task_name}" STREQUAL "enkfgdas_atmensanlinit") list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_epmn_${HALF_CYCLE}") list(APPEND TEST_DEPENDS "${test_prefix}_gdas_prep_${FULL_CYCLE}") + if("${pslot}" STREQUAL "C48_hybenkf_atmDA") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_prepatmanlbias_${FULL_CYCLE}") + endif() elseif("${task_name}" STREQUAL "enkfgdas_atmensanlobs") list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_atmensanlinit_${FULL_CYCLE}") elseif("${task_name}" STREQUAL "enkfgdas_atmensanlsol") @@ -191,6 +202,8 @@ function(add_task task_name test_prefix is_full_cycle HALF_CYCLE FULL_CYCLE pslo list(APPEND TEST_DEPENDS "${test_prefix}_gdas_analcalc_${FULL_CYCLE}") list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_eupd_${FULL_CYCLE}") list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_esnowanl_${FULL_CYCLE}") + elseif("${pslot}" STREQUAL "C48_ufsenkf_atmDA") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_fcst_${HALF_CYCLE}") else() list(APPEND TEST_DEPENDS "${test_prefix}_gdas_analcalc_${FULL_CYCLE}") list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_eupd_${FULL_CYCLE}") @@ -199,7 +212,7 @@ function(add_task task_name test_prefix is_full_cycle HALF_CYCLE FULL_CYCLE pslo list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_esfc_${FULL_CYCLE}") if("${pslot}" STREQUAL "C96C48_ufs_hybatmDA") list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_ecen_fv3jedi_${FULL_CYCLE}") - else() + elseif(NOT "${pslot}" STREQUAL "C48_ufsenkf_atmDA") list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_ecmn_${FULL_CYCLE}") endif() elseif("${task_name}" STREQUAL "gdas_prepoceanobs") @@ -400,6 +413,29 @@ if (WORKFLOW_TESTS) add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${WORKING_DIRECTORY} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") endif() # TEST_V18 + # JEDI EnKF DA C48 + # ----------------------------------- + if(${TEST_GFS18}) + set(pslot "C48_ufsenkf_atmDA") + set(YAML_PATH ${HOMEgfs}/dev/ci/cases/pr/${pslot}.yaml) + set(HALF_CYCLE_TASKS + "enkfgdas_stage_ic" + "enkfgdas_fcst" + "enkfgdas_epmn") + set(FULL_CYCLE_TASKS + "gdas_fetchatmanlbias" + "gdas_prep" + "gdas_prepatmanlbias" + "enkfgdas_atmensanlinit" + "enkfgdas_atmensanlobs" + "enkfgdas_atmensanlsol" + "enkfgdas_atmensanlfv3inc" + "enkfgdas_atmensanlfinal" + "enkfgdas_esfc" + "enkfgdas_fcst" + ) + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${WORKING_DIRECTORY} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") + endif() # TEST_V18 # Aero DA C96 # ---------------- From f0b61fef413854303ba85a0e0f8584eb790403b5 Mon Sep 17 00:00:00 2001 From: Russ-Treadon-NOAA Date: Fri, 20 Feb 2026 20:56:46 +0000 Subject: [PATCH 05/10] correct enkfgdas_esfc dependency for C48_ufsenkf_atmDA --- test/gw-ci/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index 52ccd85bd..6c0891035 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -203,7 +203,7 @@ function(add_task task_name test_prefix is_full_cycle HALF_CYCLE FULL_CYCLE pslo list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_eupd_${FULL_CYCLE}") list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_esnowanl_${FULL_CYCLE}") elseif("${pslot}" STREQUAL "C48_ufsenkf_atmDA") - list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_fcst_${HALF_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_atmensanlfinal_${FULL_CYCLE}") else() list(APPEND TEST_DEPENDS "${test_prefix}_gdas_analcalc_${FULL_CYCLE}") list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_eupd_${FULL_CYCLE}") From 00cb7f2152ca850c644655ac2f0012cbff5829ac Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Sat, 21 Feb 2026 01:46:40 +0000 Subject: [PATCH 06/10] Update to new stable build on 20260221 --- sorc/ioda | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/ioda b/sorc/ioda index c1739e96a..d34951a8f 160000 --- a/sorc/ioda +++ b/sorc/ioda @@ -1 +1 @@ -Subproject commit c1739e96abf1afdbf526d799375f48725aeda0ff +Subproject commit d34951a8f23b5f527222710d09b1e99642a1cd42 From 8aa51ae1b2824ad23137d903ccb8ee81a160cc62 Mon Sep 17 00:00:00 2001 From: Russ-Treadon-NOAA Date: Sat, 21 Feb 2026 12:40:44 +0000 Subject: [PATCH 07/10] correct typo in enkfgdas_atmensanlinit dependency for C48_ufsenkf_atmDA --- test/gw-ci/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index 6c0891035..854fc2a6e 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -167,7 +167,7 @@ function(add_task task_name test_prefix is_full_cycle HALF_CYCLE FULL_CYCLE pslo elseif("${task_name}" STREQUAL "enkfgdas_atmensanlinit") list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_epmn_${HALF_CYCLE}") list(APPEND TEST_DEPENDS "${test_prefix}_gdas_prep_${FULL_CYCLE}") - if("${pslot}" STREQUAL "C48_hybenkf_atmDA") + if("${pslot}" STREQUAL "C48_ufsenkf_atmDA") list(APPEND TEST_DEPENDS "${test_prefix}_gdas_prepatmanlbias_${FULL_CYCLE}") endif() elseif("${task_name}" STREQUAL "enkfgdas_atmensanlobs") From 82e858326aae70cdc4e349b06888144755c1e4ef Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Sat, 21 Feb 2026 13:14:46 +0000 Subject: [PATCH 08/10] exclude C48_ufsenkf_atmDA from label-based CI until required data is staged --- ci/driver.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ci/driver.sh b/ci/driver.sh index d214f4527..c4e511c46 100755 --- a/ci/driver.sh +++ b/ci/driver.sh @@ -210,6 +210,14 @@ for pr in $open_pr_list; do fi done + #TODO - remove logic that excludes C48_ufsenkf_atmDA on MSU after required data is staged + case ${TARGET} in + orion | hercules + ci_test="C48_ufsenkf_atmDA" + ctest_regex_exclude+="${ctest_regex_exclude:+|}$ci_test" + ;; + esac + # setup run_ci.sh arguments to test in the Global Workflow and exclude chosen CI tests run_ci_cmd+=" -w" if [ -n "$ctest_regex_exclude" ]; then From 1d35802d3846b0b311112ae2dc3f1f53b777b246 Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Sat, 21 Feb 2026 14:57:16 +0000 Subject: [PATCH 09/10] add missing parenthesis --- ci/driver.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/driver.sh b/ci/driver.sh index c4e511c46..e6e45b348 100755 --- a/ci/driver.sh +++ b/ci/driver.sh @@ -212,7 +212,7 @@ for pr in $open_pr_list; do #TODO - remove logic that excludes C48_ufsenkf_atmDA on MSU after required data is staged case ${TARGET} in - orion | hercules + orion | hercules) ci_test="C48_ufsenkf_atmDA" ctest_regex_exclude+="${ctest_regex_exclude:+|}$ci_test" ;; From 6bcb97bb15053a2249ac23c397ba43acd898cc74 Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Sun, 22 Feb 2026 01:43:05 +0000 Subject: [PATCH 10/10] Update to new stable build on 20260222 --- sorc/vader | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/vader b/sorc/vader index b6dab37d5..02dcfe926 160000 --- a/sorc/vader +++ b/sorc/vader @@ -1 +1 @@ -Subproject commit b6dab37d5de091472291ba05cc4c3a81b50f48c4 +Subproject commit 02dcfe9263acece3605f212ad975f55c9db24b9b