From 68c1a45d217fd4a1c17438e698ae3c733fd33c9e Mon Sep 17 00:00:00 2001 From: Russ-Treadon-NOAA Date: Mon, 14 Oct 2024 20:05:03 +0000 Subject: [PATCH 01/60] point at NOAA-EMC saber bugfix/wcoss2 --- .gitmodules | 4 ++-- sorc/saber | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 945b2d291..ea7eb0d06 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,8 +19,8 @@ branch = develop [submodule "sorc/saber"] path = sorc/saber - url = https://github.com/jcsda/saber.git - branch = develop + url = https://github.com/NOAA-EMC/saber.git + branch = bugfix/wcoss2 [submodule "sorc/ioda"] path = sorc/ioda url = https://github.com/jcsda/ioda.git diff --git a/sorc/saber b/sorc/saber index 1f23a3665..5c8998282 160000 --- a/sorc/saber +++ b/sorc/saber @@ -1 +1 @@ -Subproject commit 1f23a36657f6d10b770348de0f5454e01d377105 +Subproject commit 5c89982823f19633c4b2d8d0d95f064203fcd060 From 97cf2707eab615bf842beca2548104e71f3cb687 Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Mon, 14 Oct 2024 23:10:04 +0000 Subject: [PATCH 02/60] replace DELP with delp --- parm/io/fv3jedi_fieldmetadata_restart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/io/fv3jedi_fieldmetadata_restart.yaml b/parm/io/fv3jedi_fieldmetadata_restart.yaml index d4a4a3a09..ccba447dc 100644 --- a/parm/io/fv3jedi_fieldmetadata_restart.yaml +++ b/parm/io/fv3jedi_fieldmetadata_restart.yaml @@ -10,7 +10,7 @@ field metadata: io name: T - long name: air_pressure_thickness - io name: DELP + io name: delp - long name: layer_thickness io name: DZ From 8f36daa495522ee7d3006435ba9e2adb42428241 Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Wed, 16 Oct 2024 09:52:32 +0000 Subject: [PATCH 03/60] point at NOAA-EMC fv3-jedi patch/fv3-jedi --- sorc/fv3-jedi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/fv3-jedi b/sorc/fv3-jedi index 88279a632..65917e301 160000 --- a/sorc/fv3-jedi +++ b/sorc/fv3-jedi @@ -1 +1 @@ -Subproject commit 88279a63280c23d6b8974991a8c89380afaf5db7 +Subproject commit 65917e301cf2308414a99e634be6c88939a9fac2 From c7ea8762fa2b45434321ad550297c0535c6721be Mon Sep 17 00:00:00 2001 From: Russ-Treadon-NOAA Date: Thu, 17 Oct 2024 09:48:27 +0000 Subject: [PATCH 04/60] Revert "JCB-based obs+bias staging (#1312)" This reverts commit e024564f72e8b8b617e2a6a1cc06053e6dfb5786. --- parm/atm/jcb-base.yaml.j2 | 14 -------------- parm/jcb-gdas | 2 +- test/atm/global-workflow/config.yaml | 9 +++++++-- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index d7e1e5907..6387fffbb 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -71,8 +71,6 @@ observations: all_observations crtm_coefficient_path: "{{ DATA }}/crtm/" # Naming conventions for observational files -atmosphere_obsdataroot_path: "{{COM_OBS}}" - atmosphere_obsdatain_path: "{{atm_obsdatain_path}}" atmosphere_obsdatain_prefix: "{{OPREFIX}}" atmosphere_obsdatain_suffix: ".tm00.nc" @@ -82,8 +80,6 @@ atmosphere_obsdataout_prefix: diag_ atmosphere_obsdataout_suffix: "_{{ current_cycle | to_YMDH }}.nc" # Naming conventions for bias correction files -atmosphere_obsbiasroot_path: "{{COM_ATMOS_ANALYSIS_PREV}}" - atmosphere_obsbiasin_path: "{{DATA}}/obs/" atmosphere_obsbiasin_prefix: "{{GPREFIX}}" atmosphere_obsbiasin_suffix: ".satbias.nc" @@ -98,16 +94,6 @@ atmosphere_obsbiasout_suffix: ".satbias.nc" atmosphere_obsbiascovout_prefix: "{{APREFIX}}" atmosphere_obsbiascovout_suffix: ".satbias_cov.nc" -bias_files: - atms_n20: rad_varbc_params.tar - atms_npp: rad_varbc_params.tar - mtiasi_metop-a: rad_varbc_params.tar - mtiasi_metop-b: rad_varbc_params.tar - amsua_n19: rad_varbc_params.tar - ssmis_f17: rad_varbc_params.tar - ssmis_f18: rad_varbc_params.tar - cris-fsr_n20: rad_varbc_params.tar - cris-fsr_npp: rad_varbc_params.tar # Local Ensemble DA (LETKF) # ------------------------- diff --git a/parm/jcb-gdas b/parm/jcb-gdas index 7717c0e74..2b46aa19b 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit 7717c0e7401e344a6bce37a4f8ecc11399256936 +Subproject commit 2b46aa19b22df22f33ef0be5030fb719a8fa6298 diff --git a/test/atm/global-workflow/config.yaml b/test/atm/global-workflow/config.yaml index d8bf2e4c2..c06019628 100644 --- a/test/atm/global-workflow/config.yaml +++ b/test/atm/global-workflow/config.yaml @@ -10,7 +10,7 @@ base: PTMP: "@bindir@/test/atm/global-workflow/testrun" atmanl: - JCB_ALGO_YAML_VAR: "@srcdir@/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2" + JCB_ALGO_YAML: "@srcdir@/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2" STATICB_TYPE: "identity" ATMRES_ANL: "C48" LAYOUT_X_ATMANL: 1 @@ -19,6 +19,11 @@ atmanl: atmensanl: JCB_ALGO_YAML_LETKF: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2" JCB_ALGO_YAML_OBS: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2" - JCB_ALGO_YAML_SOL: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2" LAYOUT_X_ATMENSANL: 1 LAYOUT_Y_ATMENSANL: 1 + +atmensanlobs: + JCB_ALGO_YAML: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2" + +atmensanlsol: + JCB_ALGO_YAML: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2" From c33fbab8cf87a14666c2269e9ecf247be2db16bd Mon Sep 17 00:00:00 2001 From: Russ-Treadon-NOAA Date: Thu, 17 Oct 2024 09:51:03 +0000 Subject: [PATCH 05/60] update .gitmodules to point at NOAA-EMC fv3-jedi branch patch/fv3-jedi --- .gitmodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index ea7eb0d06..8241086a8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -43,8 +43,8 @@ branch = develop [submodule "sorc/fv3-jedi"] path = sorc/fv3-jedi - url = https://github.com/jcsda/fv3-jedi.git - branch = develop + url = https://github.com/NOAA-EMC/fv3-jedi.git + branch = patch/fv3-jedi [submodule "sorc/icepack"] path = sorc/icepack url = https://github.com/JCSDA-internal/Icepack.git From 88af2ab81e6a5e6f422bab097b2e9b31448f511a Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 4 Nov 2024 14:38:11 +0000 Subject: [PATCH 06/60] Initial commit --- test/gw-ci/CMakeLists.txt | 84 ++++++++++++++++++++++++++++----------- test/gw-ci/run_exp.sh | 49 ++++++++++++++--------- 2 files changed, 91 insertions(+), 42 deletions(-) diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index 6c9faedf1..dc21fc84a 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -1,11 +1,37 @@ +# Function that adds a test for a given GW task +function(add_task task_name test_prefix cycle pslot RUNTESTS PROJECT_SOURCE_DIR) + # Get subtask names if task is a metatask + if("${task_name}" STREQUAL "gdas_fcst") + set(subtask_names "gdas_fcst_seg0") + elseif("${task_name}" STREQUAL "enkfgdas_fcst") + set(subtask_names "enkfgdas_fcst_mem001 enkfgdas_fcst_mem002") + elseif("${task_name}" STREQUAL "gdas_atmos_prod") + set(subtask_names "gdas_atmos_prod_f000 gdas_atmos_prod_f001 gdas_atmos_prod_f002 gdas_atmos_prod_f003 gdas_atmos_prod_f004 gdas_atmos_prod_f005 gdas_atmos_prod_f006 gdas_atmos_prod_f007 gdas_atmos_prod_f008 gdas_atmos_prod_f009") + elseif("${task_name}" STREQUAL "enkfgdas_epmn") + set(subtask_names "enkfgdas_epos001 enkfgdas_epos002 enkfgdas_epos003 enkfgdas_epos004 enkfgdas_epos005 enkfgdas_epos006") + elseif("${task_name}" STREQUAL "enkfgdas_ecmn") + set(subtask_names "enkfgdas_ecen000") + else() + set(subtask_names ${task_name}) + endif() + + # Add Task + set(test_name ${test_prefix}_${task_name}_${cycle}) + message(STATUS "preparing ${subtask_names} for ${test_prefix} ctest") + add_test(NAME ${test_name} + COMMAND /bin/bash -c "${PROJECT_SOURCE_DIR}/test/gw-ci/run_exp.sh ${pslot} ${cycle} ${subtask_names}" + WORKING_DIRECTORY ${RUNTESTS}) + set_tests_properties(${test_name} PROPERTIES LABELS "manual") +endfunction() + # Function that generates the 1/2 cycle forecast and DA tasks function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR TASK_LIST) - set(test_name test_gdasapp_${pslot}) + set(test_prefix test_gdasapp_${pslot}) # Prepare the COMROOT and EXPDIR for the cycling ctests - add_test(NAME ${test_name} + add_test(NAME ${test_prefix} COMMAND /bin/bash -c "${PROJECT_SOURCE_DIR}/test/gw-ci/create_exp.sh ${YAML_PATH} ${pslot} ${HOMEgfs} ${RUNTESTS}" WORKING_DIRECTORY ${RUNTESTS}) - set_tests_properties(${test_name} PROPERTIES LABELS "manual") + set_tests_properties(${test_prefix} PROPERTIES LABELS "manual") # Get the 1/2 cycle and full cycle's dates execute_process( @@ -18,29 +44,23 @@ function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR T list(GET DATES_LIST 0 HALF_CYCLE) list(GET DATES_LIST 1 FULL_CYCLE) - # stage IC's - message(STATUS "staging the 1/2 cycle IC's for ${test_name} ctest") - add_test(NAME ${test_name}_gdas_stage_ic_${HALF_CYCLE} - COMMAND /bin/bash -c "${PROJECT_SOURCE_DIR}/test/gw-ci/run_exp.sh ${pslot} gdas_stage_ic ${HALF_CYCLE}" - WORKING_DIRECTORY ${RUNTESTS}) - set_tests_properties(${test_name}_gdas_stage_ic_${HALF_CYCLE} PROPERTIES LABELS "manual") + # Add tests used by all CI tests + add_task("gdas_stage_ic" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + add_task("gdas_fcst" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - # 1/2 cycle gdas_fcst - message(STATUS "preparing 1/2 cycle gdas_fcst for ${pslot} ctest") - add_test(NAME ${test_name}_gdas_fcst_${HALF_CYCLE} - COMMAND /bin/bash -c "${PROJECT_SOURCE_DIR}/test/gw-ci/run_exp.sh ${pslot} gdas_fcst_seg0 ${HALF_CYCLE}" - WORKING_DIRECTORY ${RUNTESTS}) - set_tests_properties(${test_name}_gdas_fcst_${HALF_CYCLE} PROPERTIES LABELS "manual") + # Atm-hyb-C96C48 tests + if(pslot STREQUAL "Atm-hyb-C96C48") + add_task("enkfgdas_stage_ic" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + add_task("enkfgdas_fcst" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + add_task("gdas_atmos_prod" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + add_task("enkfgdas_echgres" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + add_task("enkfgdas_epmn" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + endif() # Select the list of tasks to run for the full cycle message(STATUS "Tasks ${TASK_LIST}") - - foreach(task ${TASK_LIST}) - message(STATUS "preparing the full cycle ${task} for ${pslot} ctest") - add_test(NAME ${test_name}_${task}_${FULL_CYCLE} - COMMAND /bin/bash -c "${PROJECT_SOURCE_DIR}/test/gw-ci/run_exp.sh ${pslot} ${task} ${FULL_CYCLE}" - WORKING_DIRECTORY ${RUNTESTS}) - set_tests_properties(${test_name}_${task}_${FULL_CYCLE} PROPERTIES LABELS "manual") + foreach(task_name ${TASK_LIST}) + add_task(${task_name} ${test_prefix} ${FULL_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) endforeach() endfunction() @@ -77,7 +97,25 @@ if (RUN_GW_CI) # --------------- set(pslot "Atm-hyb-C96C48") set(YAML_PATH ${HOMEgfs}/ci/cases/pr/C96C48_ufs_hybatmDA.yaml) - set(TASK_LIST) # empty list for now + set(TASK_LIST + "gdas_prep" + "gdas_prepatmiodaobs" + "gdas_atmanlinit" + "gdas_atmanlvar" + "gdas_atmanlfv3inc" + "gdas_atmanlfinal" + "gdas_sfcanl" + "gdas_analcalc" + "gdas_fcst" + "enkfgdas_atmensanlinit" + "enkfgdas_atmensanlobs" + "enkfgdas_atmensanlsol" + "enkfgdas_atmensanlfv3inc" + "enkfgdas_atmensanlfinal" + "enkfgdas_ecmn" + "enkfgdas_esfc" + "enkfgdas_fcst" + ) add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") # GFSv17, 3DVAR prototype diff --git a/test/gw-ci/run_exp.sh b/test/gw-ci/run_exp.sh index 8040860a0..4555cdb62 100755 --- a/test/gw-ci/run_exp.sh +++ b/test/gw-ci/run_exp.sh @@ -1,39 +1,50 @@ #!/bin/bash pslot=$1 -TASK_NAME=$2 -CYCLE=$3 +CYCLE=$2 +shift +shift +TASK_NAMES=("$@") + +task_args=$(printf " -t %s" "${TASK_NAMES[@]}") +num_tasks=${#TASK_NAMES[@]} # Define the workflow XML and database files WORKFLOW_XML=${pslot}/EXPDIR/${pslot}/${pslot}.xml WORKFLOW_DB=${pslot}/EXPDIR/${pslot}/${pslot}.db # Boot the task -echo "booting $TASK_NAME for cycle $CYCLE" +echo "booting ${TASK_NAMES[@]} for cycle $CYCLE" if [[ ! -e "$WORKFLOW_DB" ]]; then - rocotorun -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" -t "$TASK_NAME" -c "$CYCLE" + rocotorun -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" "$task_args" -c "$CYCLE" fi -rocotoboot -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" -t "$TASK_NAME" -c "$CYCLE" +rocotoboot -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" "$task_args" -c "$CYCLE" while true; do # Update the status of the task - rocotorun -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" -t "$TASK_NAME" -c "$CYCLE" + rocotorun -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" "$task_args" -c "$CYCLE" - # Check the task status - OUTPUT=$(rocotostat -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" -t "$TASK_NAME" -c "$CYCLE") - STATUS=$(echo "$OUTPUT" | awk '$2 == task {print $4}' task="$TASK_NAME") + num_succeeded=0 + for task in "${TASK_NAMES[@]}"; do + # Check the task status + OUTPUT=$(rocotostat -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" -t "$task" -c "$CYCLE") + STATUS=$(echo "$OUTPUT" | awk '$2 == task {print $4}' task="$task") - if [[ "$STATUS" == "SUCCEEDED" ]]; then - echo "The task succeeded." + if [[ "$STATUS" == "SUCCEEDED" ]]; then + echo "$task succeeded." + num_succeeded=$((num_succeeded + 1)) + elif [[ "$STATUS" == "FAILED" ]]; then + echo "$task failed." + exit 1 + elif [[ "$STATUS" == "DEAD" ]]; then + echo "$task is dead." + exit 1 + else + echo "$task is in state: $STATUS" + fi + done + if [[ "$num_succeeded" == "$num_tasks" ]]; then exit 0 - elif [[ "$STATUS" == "FAILED" ]]; then - echo "The task failed." - exit 1 - elif [[ "$STATUS" == "DEAD" ]]; then - echo "The task is dead." - exit 1 - else - echo "The task is in state: $STATUS" fi sleep 10 done From 80d328036d1bee2023c3255e25ad987f3ef5a97c Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 4 Nov 2024 20:44:02 +0000 Subject: [PATCH 07/60] Update --- test/gw-ci/CMakeLists.txt | 110 ++++++++++++++++++++++++-------------- 1 file changed, 69 insertions(+), 41 deletions(-) diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index dc21fc84a..cf9bed417 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -44,17 +44,22 @@ function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR T list(GET DATES_LIST 0 HALF_CYCLE) list(GET DATES_LIST 1 FULL_CYCLE) - # Add tests used by all CI tests - add_task("gdas_stage_ic" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - add_task("gdas_fcst" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + # Half cycle tasks common to all CI tests + add_task("gdas_stage_ic" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + add_task("gdas_fcst" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - # Atm-hyb-C96C48 tests - if(pslot STREQUAL "Atm-hyb-C96C48") + # Half cycle task commot to all CI test except C48mx500_3DVarAOWCDA + if(NOT pslot STREQUAL "C48mx500_3DVarAOWCDA") add_task("enkfgdas_stage_ic" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) add_task("enkfgdas_fcst" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - add_task("gdas_atmos_prod" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) add_task("enkfgdas_echgres" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) add_task("enkfgdas_epmn" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + add_task("gdas_atmos_prod" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + endif() + + # Half cycle tasks unique to C96C48_hybatmaerosnowDA + if(pslot STREQUAL "C96C48_hybatmaerosnowDA") + add_task("gdas_aeroanlgenb" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) endif() # Select the list of tasks to run for the full cycle @@ -64,39 +69,35 @@ function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR T endforeach() endfunction() -if (WORKFLOW_TESTS) +option(RUN_GW_CI "Enable the global-workflow CI tests" OFF) +if (RUN_GW_CI) # Setup the environement set(HOMEgfs ${CMAKE_SOURCE_DIR}/../../..) set(RUNTESTS ${CMAKE_CURRENT_BINARY_DIR}/../../test/gw-ci) - - # 3DVAR WCDA, low-res - # ------------------- - set(pslot "WCDA-3DVAR-C48mx500") - set(YAML_PATH ${HOMEgfs}/ci/cases/pr/C48mx500_3DVarAOWCDA.yaml) + + # GSI Atm DA C96/C48 + # ------------------ + set(pslot "C96C48_hybatmDA") + set(YAML_PATH ${HOMEgfs}/ci/cases/pr/${pslot}.yaml) set(TASK_LIST - "gdas_prepoceanobs" - "gdas_marinebmat" - "gdas_marineanlinit" - "gdas_marineanlvar" - "gdas_marineanlchkpt" - "gdas_marineanlfinal" - ) - add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") -endif() - -option(RUN_GW_CI "Enable the global-workflow CI tests" OFF) -if (RUN_GW_CI) - # Aero-Land DA, C96 - # ----------------- - set(pslot "Aero-Snow-3DVAR-C96") - set(YAML_PATH ${HOMEgfs}/ci/cases/pr/C96C48_hybatmaerosnowDA.yaml) - set(TASK_LIST) # empty list for now + "gdas_prep" + "gdas_anal" + "gdas_sfcanl" + "gdas_analcalc" + "gdas_fcst" + "enkfgdas_eobs" + "enkfgdas_ediag" + "enkfgdas_eupd" + "enkfgdas_ecmn" + "enkfgdas_esfc" + "enkfgdas_fcst" + ) add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") - # Atm DA, C96/C48 - # --------------- - set(pslot "Atm-hyb-C96C48") - set(YAML_PATH ${HOMEgfs}/ci/cases/pr/C96C48_ufs_hybatmDA.yaml) + # JEDI Atm DA C96/C48 + # ------------------- + set(pslot "C96C48_ufs_hybatmDA") + set(YAML_PATH ${HOMEgfs}/ci/cases/pr/${pslot}.yaml) set(TASK_LIST "gdas_prep" "gdas_prepatmiodaobs" @@ -115,14 +116,41 @@ if (RUN_GW_CI) "enkfgdas_ecmn" "enkfgdas_esfc" "enkfgdas_fcst" - ) - add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") + ) + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") - # GFSv17, 3DVAR prototype - # ----------------------- - set(pslot "GFSv17-3DVAR-C384mx025") - set(YAML_PATH ${HOMEgfs}/ci/cases/gfsv17/C384mx025_3DVarAOWCDA.yaml) + # Aero-Land DA C96 + # ---------------- + set(pslot "C96C48_hybatmaerosnowDA") + set(YAML_PATH ${HOMEgfs}/ci/cases/pr/${pslot}.yaml) + set(TASK_LIST + "gdas_prep" + "gdas_anal" + "gdas_prepsnowobs" + "gdas_snowanl" + "gdas_aeroanlgenb" + "gdas_aeroanlinit" + "gdas_aeroanlvar" + "gdas_aeroanlfinal" + "gdas_sfcanl" + "gdas_analcalc" + "gdas_fcst" + "enkfgdas_eobs" + "enkfgdas_ediag" + "enkfgdas_eupd" + "enkfgdas_ecmn" + "enkfgdas_esfc" + "enkfgdas_fcst" + ) + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") + + # GSI Atm DA C48, JEDI Marine DA 500 + # ---------------------------------- + set(pslot "C48mx500_3DVarAOWCDA") + set(YAML_PATH ${HOMEgfs}/ci/cases/pr/${pslot}.yaml) set(TASK_LIST + "gdas_prep" + "gdas_anal" "gdas_prepoceanobs" "gdas_marinebmat" "gdas_marineanlinit" @@ -130,8 +158,8 @@ if (RUN_GW_CI) "gdas_marineanlchkpt" "gdas_marineanlfinal" "gdas_ocnanalvrfy" - "gdas_prep" - "gdas_anal" + "gdas_sfcanl" + "gdas_fcst" ) add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") endif() From 984ea314e55eeef9d8d9cdc3b8b7ec04161c9dce Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Tue, 5 Nov 2024 00:34:20 +0000 Subject: [PATCH 08/60] Forgot a test --- 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 cf9bed417..9f7e911bf 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -128,7 +128,6 @@ if (RUN_GW_CI) "gdas_anal" "gdas_prepsnowobs" "gdas_snowanl" - "gdas_aeroanlgenb" "gdas_aeroanlinit" "gdas_aeroanlvar" "gdas_aeroanlfinal" @@ -139,6 +138,7 @@ if (RUN_GW_CI) "enkfgdas_ediag" "enkfgdas_eupd" "enkfgdas_ecmn" + "enkfgdas_esnowrecen" "enkfgdas_esfc" "enkfgdas_fcst" ) From b270c60792ad37a0f985f684f3993fac5d609379 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Tue, 5 Nov 2024 00:48:08 +0000 Subject: [PATCH 09/60] Add beginning of testing infrastucture to JCB --- parm/atm/jcb-base.yaml.j2 | 5 +++++ parm/atm/jcb-prototype_3dvar.yaml.j2 | 7 +++++++ parm/atm/jcb-prototype_lgetkf.yaml.j2 | 7 +++++++ parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 | 7 +++++++ parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 | 7 +++++++ parm/jcb-algorithms | 2 +- 6 files changed, 34 insertions(+), 1 deletion(-) diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index 6387fffbb..2726f6454 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -125,3 +125,8 @@ atmosphere_ensemble_increment_prefix: "./anl/mem%{member}%/atminc." atmosphere_posterior_output_gaussian: "./mem%{member}%/atmanl." atmosphere_ensemble_history_prefix: "enkf{{GPREFIX}}" + +# Testing +--------- + +atmosphere_do_testing: false diff --git a/parm/atm/jcb-prototype_3dvar.yaml.j2 b/parm/atm/jcb-prototype_3dvar.yaml.j2 index 7b6c80011..f4db7ba24 100644 --- a/parm/atm/jcb-prototype_3dvar.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar.yaml.j2 @@ -29,3 +29,10 @@ observations: # - satwnd.viirs_npp # - scatwind_ascat_metop-a # - snowcvr + +# Testing things +# -------------- +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/3dvar.ref +test_output_filename: ./3dvar.out +test_float_relative_tolerance: 1.0e-3 +test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf.yaml.j2 b/parm/atm/jcb-prototype_lgetkf.yaml.j2 index a1b099bb6..66f841160 100644 --- a/parm/atm/jcb-prototype_lgetkf.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf.yaml.j2 @@ -38,3 +38,10 @@ observations: - satwnd.viirs_npp # - scatwind_ascat_metop-a # - snowcvr + +# Testing things +# -------------- +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/lgetkf.ref +test_output_filename: ./lgetkf.out +test_float_relative_tolerance: 1.0e-3 +test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 index 26654b175..f4a700d6f 100644 --- a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 @@ -44,3 +44,10 @@ atmosphere_obsdataout_prefix: diag_lobs_ # Distribution type distribution_type: RoundRobin + +# Testing things +# -------------- +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/lgetkf_observer.ref +test_output_filename: ./lgetkf_observer.out +test_float_relative_tolerance: 1.0e-3 +test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 index 677934158..0983aef3d 100644 --- a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 @@ -47,3 +47,10 @@ atmosphere_obsdataout_prefix: diag_solv_ # Distribution type distribution_type: Halo + +# Testing things +# -------------- +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/lgetkf_solver.ref +test_output_filename: ./lgetkf_solver.out +test_float_relative_tolerance: 1.0e-3 +test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/jcb-algorithms b/parm/jcb-algorithms index a6822d8c1..6713ad160 160000 --- a/parm/jcb-algorithms +++ b/parm/jcb-algorithms @@ -1 +1 @@ -Subproject commit a6822d8c1e72f6b1bf951e378b153cb6df1faee5 +Subproject commit 6713ad1609a19666432aeb69f546604839e23fce From 97cfa2bd26585dd13f0ac926d7ba84dc5dd92a7b Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Tue, 5 Nov 2024 01:12:59 +0000 Subject: [PATCH 10/60] Polishing up --- test/gw-ci/CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index 9f7e911bf..acf76a9b2 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -50,11 +50,11 @@ function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR T # Half cycle task commot to all CI test except C48mx500_3DVarAOWCDA if(NOT pslot STREQUAL "C48mx500_3DVarAOWCDA") + add_task("gdas_atmos_prod" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) add_task("enkfgdas_stage_ic" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) add_task("enkfgdas_fcst" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) add_task("enkfgdas_echgres" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) add_task("enkfgdas_epmn" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - add_task("gdas_atmos_prod" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) endif() # Half cycle tasks unique to C96C48_hybatmaerosnowDA @@ -126,11 +126,11 @@ if (RUN_GW_CI) set(TASK_LIST "gdas_prep" "gdas_anal" - "gdas_prepsnowobs" - "gdas_snowanl" "gdas_aeroanlinit" "gdas_aeroanlvar" "gdas_aeroanlfinal" + "gdas_prepsnowobs" + "gdas_snowanl" "gdas_sfcanl" "gdas_analcalc" "gdas_fcst" @@ -149,8 +149,6 @@ if (RUN_GW_CI) set(pslot "C48mx500_3DVarAOWCDA") set(YAML_PATH ${HOMEgfs}/ci/cases/pr/${pslot}.yaml) set(TASK_LIST - "gdas_prep" - "gdas_anal" "gdas_prepoceanobs" "gdas_marinebmat" "gdas_marineanlinit" @@ -158,6 +156,8 @@ if (RUN_GW_CI) "gdas_marineanlchkpt" "gdas_marineanlfinal" "gdas_ocnanalvrfy" + "gdas_prep" + "gdas_anal" "gdas_sfcanl" "gdas_fcst" ) From e4357c4eca95a5881f286466038e05a935ccff97 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Tue, 5 Nov 2024 01:25:47 +0000 Subject: [PATCH 11/60] polishing --- test/gw-ci/CMakeLists.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index acf76a9b2..099bd4d68 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -48,7 +48,12 @@ function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR T add_task("gdas_stage_ic" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) add_task("gdas_fcst" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - # Half cycle task commot to all CI test except C48mx500_3DVarAOWCDA + # Half cycle tasks unique to C96C48_hybatmaerosnowDA + if(pslot STREQUAL "C96C48_hybatmaerosnowDA") + add_task("gdas_aeroanlgenb" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + endif() + + # Half cycle tasks common to all CI tests except C48mx500_3DVarAOWCDA if(NOT pslot STREQUAL "C48mx500_3DVarAOWCDA") add_task("gdas_atmos_prod" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) add_task("enkfgdas_stage_ic" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) @@ -56,11 +61,6 @@ function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR T add_task("enkfgdas_echgres" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) add_task("enkfgdas_epmn" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) endif() - - # Half cycle tasks unique to C96C48_hybatmaerosnowDA - if(pslot STREQUAL "C96C48_hybatmaerosnowDA") - add_task("gdas_aeroanlgenb" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - endif() # Select the list of tasks to run for the full cycle message(STATUS "Tasks ${TASK_LIST}") From d0f0b8081ea0675f0b29449051d96b1b83152cfb Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA <134300700+DavidNew-NOAA@users.noreply.github.com> Date: Tue, 5 Nov 2024 10:58:51 -0500 Subject: [PATCH 12/60] Change RUN_GW_CI to WORKFLOW_TESTS --- test/gw-ci/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index 099bd4d68..1be21292b 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -69,8 +69,7 @@ function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR T endforeach() endfunction() -option(RUN_GW_CI "Enable the global-workflow CI tests" OFF) -if (RUN_GW_CI) +if (WORKFLOW_TESTS) # Setup the environement set(HOMEgfs ${CMAKE_SOURCE_DIR}/../../..) set(RUNTESTS ${CMAKE_CURRENT_BINARY_DIR}/../../test/gw-ci) From 3652f9acc592f8fe0e9364f6c64b293894cefc63 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 6 Nov 2024 17:32:19 +0000 Subject: [PATCH 13/60] Add JEDI test references for gw-ci --- test/gw-ci/3dvar.ref | 124 +++++++++++++++++++++++ test/gw-ci/lgetkf_observer.ref | 126 +++++++++++++++++++++++ test/gw-ci/lgetkf_solver.ref | 180 +++++++++++++++++++++++++++++++++ 3 files changed, 430 insertions(+) create mode 100644 test/gw-ci/3dvar.ref create mode 100644 test/gw-ci/lgetkf_observer.ref create mode 100644 test/gw-ci/lgetkf_solver.ref diff --git a/test/gw-ci/3dvar.ref b/test/gw-ci/3dvar.ref new file mode 100644 index 000000000..009442800 --- /dev/null +++ b/test/gw-ci/3dvar.ref @@ -0,0 +1,124 @@ +CostJb : Nonlinear Jb = 0.0000000000000000e+00 +CostJo : Nonlinear Jo(Aircraft) = 6.0590797038184456e+05, nobs = 504555, Jo/n = 1.2008759607611550e+00, err = 2.2437239435917040e+00 +CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 1.5949936485170507e+04, nobs = 26314, Jo/n = 6.0613880387514274e-01, err = 1.8277692518568445e+00 +CostJo : Nonlinear Jo(ATMS N20) = 4.8387730216828917e+04, nobs = 156588, Jo/n = 3.0901301643056250e-01, err = 5.2594000470964266e+00 +CostJo : Nonlinear Jo(surface_ps) = 2.6308196193705146e+04, nobs = 107322, Jo/n = 2.4513330159431565e-01, err = 5.9305643428180190e+02 +CostJo : Nonlinear Jo(gnssrobndnbam) = 6.1501893265653157e+05, nobs = 473864, Jo/n = 1.2978806844506685e+00, err = 3.2933330370258057e-04 +CostJo : Nonlinear Jo(ompsnp_npp) = 2.1269336098572853e+03, nobs = 3087, Jo/n = 6.8899695816562534e-01, err = 2.4001367423170068e+00 +CostJo : Nonlinear Jo(ompstc_npp) = 3.3784707883660294e+03, nobs = 3696, Jo/n = 9.1408841676570063e-01, err = 6.0000000000000000e+00 +CostJo : Nonlinear Jo(satwind_goes-16) = 6.9383960384868606e+03, nobs = 193154, Jo/n = 3.5921575729660586e-02, err = 1.1892541771722902e+01 +CostFunction: Nonlinear J = 1.3240165663707908e+06 +DRPCGMinimizer: reduction in residual norm = 2.8257552285466486e-01 +CostFunction::addIncrement: Analysis: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 22 | cube sphere face size: C96 +eastward_wind | Min:-8.7593299865709369e+01 Max:+1.1421906280506562e+02 RMS:+1.7446423933063677e+01 +northward_wind | Min:-9.0978759765616502e+01 Max:+8.9302459716826505e+01 RMS:+9.8048456519093889e+00 +air_temperature | Min:+1.7290483093261747e+02 Max:+3.1017132568363934e+02 RMS:+2.5022377762999326e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7837935791015625e+03 RMS:+9.5699700087025974e+02 +surface_pressure | Min:+5.1309082031249884e+04 Max:+1.0433011718749903e+05 RMS:+9.8914626690610530e+04 +specific_humidity | Min:+9.9999986088507587e-10 Max:+2.1381899714470930e-02 RMS:+5.0230919069543158e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+5.7223520707321528e-04 RMS:+9.4296924830162644e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.6279185656660684e-03 RMS:+3.7809568286304757e-05 +ozone_mass_mixing_ratio | Min:+3.8859406171368113e-10 Max:+1.7313133576612057e-05 RMS:+4.4663053755671636e-06 +surface_geopotential_height | Min:-2.9894643783569336e+01 Max:+5.3870561523437500e+03 RMS:+6.4442219321892003e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5312859958249614e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.6371386718750000e+02 RMS:+2.2054824502787593e+01 +sea_surface_temperature | Min:+2.1746235656738281e+02 Max:+3.2932260131835938e+02 RMS:+2.8737006087270038e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+5.8667091445155686e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.3549806522511076e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8026573181152344e+01 RMS:+1.9275201636346665e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.2045886230468750e+02 RMS:+2.8806776004459306e+02 +soilMoistureVolumetric | Min:+2.1923782303929329e-02 Max:+1.0000000000000000e+00 RMS:+8.6145451167852249e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.2327475547790527e+00 RMS:+1.5878111306662487e-01 +surface_eastward_wind | Min:-1.8106302261352539e+01 Max:+2.0922132492065430e+01 RMS:+5.2142386237867280e+00 +surface_northward_wind | Min:-2.0834318161010742e+01 Max:+1.9025196075439453e+01 RMS:+4.8322666159970842e+00 +f10m | Min:+9.3901658058166504e-01 Max:+1.0698120594024658e+00 RMS:+9.9592865511053685e-01 +---------------------------------------------------------------------------------------------------- + + + +Obs bias coefficients: +--------------------------------------------------------------- + constant: Min= -0.8381630182271099, Max= 0.8200770020481498, Norm= 2.2810923110282308 + lapseRate_order_2: Min= -0.2969009876260876, Max= 0.3889850080012900, Norm= 0.7014865852485521 + lapseRate: Min= -0.5954660177230082, Max= 1.6232719421370738, Norm= 2.1316868531033393 + emissivityJacobian: Min= -0.0097089996561411, Max= 8.3582897185072884, Norm= 10.2580018725806656 +sensorScanAngle_order_4: Min= -3.4036920070662289, Max= 0.8113600015621025, Norm= 4.8886281019448123 +sensorScanAngle_order_3: Min= -0.7697319984440882, Max= 0.3303030133246191, Norm= 0.9762309707883376 +sensorScanAngle_order_2: Min= -0.5401099920283099, Max= 2.2389800548543319, Norm= 2.4920946301939773 + sensorScanAngle: Min= -0.1069049984217430, Max= 0.4472059905526856, Norm= 0.8480380113023768 +--------------------------------------------------------------- + + + + + + +CostJb : Nonlinear Jb = 0.0000000000001377 +CostJo : Nonlinear Jo(Aircraft) = 605907.9700265740975738, nobs = 504555, Jo/n = 1.2008759600570287, err = 2.2437239435917040 +CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 15949.9364848986988363, nobs = 26314, Jo/n = 0.6061388038648133, err = 1.8277692518568445 +CostJo : Nonlinear Jo(ATMS N20) = 48387.7302149347669911, nobs = 156588, Jo/n = 0.3090130164184661, err = 5.2594000470964266 +CostJo : Nonlinear Jo(surface_ps) = 26308.1961930343022686, nobs = 107322, Jo/n = 0.2451333015880649, err = 593.0564342818018986 +CostJo : Nonlinear Jo(gnssrobndnbam) = 615018.9326265617273748, nobs = 473864, Jo/n = 1.2978806843874229, err = 0.0003293333037026 +CostJo : Nonlinear Jo(ompsnp_npp) = 1931.1242066182112467, nobs = 3087, Jo/n = 0.6255666364166541, err = 2.4001367423170068 +CostJo : Nonlinear Jo(ompstc_npp) = 1175.2354163386241908, nobs = 3696, Jo/n = 0.3179749503080693, err = 6.0000000000000000 +CostJo : Nonlinear Jo(satwind_goes-16) = 6938.3960383742578415, nobs = 193154, Jo/n = 0.0359215757290776, err = 11.8925417717229021 +CostFunction: Nonlinear J = 1321617.5212073344737291 +DRPCGMinimizer: reduction in residual norm = 0.8446076379600224 +CostFunction::addIncrement: Analysis: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 22 | cube sphere face size: C96 +eastward_wind | Min:-8.7593299865597274e+01 Max:+1.1421906280413639e+02 RMS:+1.7446423933041416e+01 +northward_wind | Min:-9.0978759765544794e+01 Max:+8.9302459717076374e+01 RMS:+9.8048456518642482e+00 +air_temperature | Min:+1.7290483093261994e+02 Max:+3.1017132568402411e+02 RMS:+2.5022377762999653e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7837935791015625e+03 RMS:+9.5699700087025974e+02 +surface_pressure | Min:+5.1309082031248872e+04 Max:+1.0433011718749085e+05 RMS:+9.8914626690605888e+04 +specific_humidity | Min:+9.9999986293294490e-10 Max:+2.1381899714479527e-02 RMS:+5.0230919069522385e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+5.7223520707173773e-04 RMS:+9.4296924828094189e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.6279185658369072e-03 RMS:+3.7809568286035265e-05 +ozone_mass_mixing_ratio | Min:+0.0000000000000000e+00 Max:+1.7393152519974760e-05 RMS:+4.4687802775349384e-06 +surface_geopotential_height | Min:-2.9894643783569336e+01 Max:+5.3870561523437500e+03 RMS:+6.4442219321892003e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5312859958249614e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.6371386718750000e+02 RMS:+2.2054824502787593e+01 +sea_surface_temperature | Min:+2.1746235656738281e+02 Max:+3.2932260131835938e+02 RMS:+2.8737006087270038e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+5.8667091445155686e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.3549806522511076e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8026573181152344e+01 RMS:+1.9275201636346665e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.2045886230468750e+02 RMS:+2.8806776004459306e+02 +soilMoistureVolumetric | Min:+2.1923782303929329e-02 Max:+1.0000000000000000e+00 RMS:+8.6145451167852249e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.2327475547790527e+00 RMS:+1.5878111306662487e-01 +surface_eastward_wind | Min:-1.8106302261352539e+01 Max:+2.0922132492065430e+01 RMS:+5.2142386237867280e+00 +surface_northward_wind | Min:-2.0834318161010742e+01 Max:+1.9025196075439453e+01 RMS:+4.8322666159970842e+00 +f10m | Min:+9.3901658058166504e-01 Max:+1.0698120594024658e+00 RMS:+9.9592865511053685e-01 +---------------------------------------------------------------------------------------------------- + + + +Obs bias coefficients: +--------------------------------------------------------------- + constant: Min= -0.8381630182312128, Max= 0.8200770020452602, Norm= 2.2810923110345662 + lapseRate_order_2: Min= -0.2969009876342316, Max= 0.3889850080009739, Norm= 0.7014865852476552 + lapseRate: Min= -0.5954660177223734, Max= 1.6232719421235957, Norm= 2.1316868530892328 + emissivityJacobian: Min= -0.0097089996561434, Max= 8.3582897174897202, Norm= 10.2580018711068170 +sensorScanAngle_order_4: Min= -3.4036920070781176, Max= 0.8113600015458797, Norm= 4.8886281019598847 +sensorScanAngle_order_3: Min= -0.7697319984481772, Max= 0.3303030133236201, Norm= 0.9762309707916220 +sensorScanAngle_order_2: Min= -0.5401099920369742, Max= 2.2389800548457712, Norm= 2.4920946301898259 + sensorScanAngle: Min= -0.1069049984223674, Max= 0.4472059905508586, Norm= 0.8480380112990616 +--------------------------------------------------------------- + + + + + + +CostJb : Nonlinear Jb = 0.0000000000008880 +CostJo : Nonlinear Jo(Aircraft) = 605907.9670297848060727, nobs = 504555, Jo/n = 1.2008759541175587, err = 2.2437239435917040 +CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 15949.9364826060973428, nobs = 26314, Jo/n = 0.6061388037776886, err = 1.8277692518568445 +CostJo : Nonlinear Jo(ATMS N20) = 48387.7301996417445480, nobs = 156588, Jo/n = 0.3090130163208020, err = 5.2594000470964266 +CostJo : Nonlinear Jo(surface_ps) = 26308.1961873747168283, nobs = 107322, Jo/n = 0.2451333015353303, err = 593.0564342818018986 +CostJo : Nonlinear Jo(gnssrobndnbam) = 615018.9323734971694648, nobs = 473864, Jo/n = 1.2978806838533781, err = 0.0003293333037026 +CostJo : Nonlinear Jo(ompsnp_npp) = 1105.2453930547394521, nobs = 3087, Jo/n = 0.3580321972966438, err = 2.4001367423170068 +CostJo : Nonlinear Jo(ompstc_npp) = 842.3521445536282499, nobs = 3696, Jo/n = 0.2279091300199211, err = 6.0000000000000000 +CostJo : Nonlinear Jo(satwind_goes-16) = 6938.3960374245170897, nobs = 193154, Jo/n = 0.0359215757241606, err = 11.8925417717229021 +CostFunction: Nonlinear J = 1320458.7558479374274611 diff --git a/test/gw-ci/lgetkf_observer.ref b/test/gw-ci/lgetkf_observer.ref new file mode 100644 index 000000000..81719bce0 --- /dev/null +++ b/test/gw-ci/lgetkf_observer.ref @@ -0,0 +1,126 @@ +Initial state for member 1: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 23 | cube sphere face size: C48 +eastward_wind | Min:-8.4384330749511719e+01 Max:+1.1146717834472656e+02 RMS:+1.7423407399233511e+01 +northward_wind | Min:-8.6144805908203125e+01 Max:+8.9331993103027344e+01 RMS:+1.0017299694477179e+01 +air_temperature | Min:+1.7350303649902344e+02 Max:+3.0961535644531250e+02 RMS:+2.5015669840056216e+02 +layer_thickness | Min:-3.0059777832031250e+03 Max:-1.6207923889160156e+01 RMS:+9.8503674614826332e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7881016845703125e+03 RMS:+9.5698921151558159e+02 +surface_pressure | Min:+5.2320046875000000e+04 Max:+1.0452482812500000e+05 RMS:+9.8914997456124955e+04 +specific_humidity | Min:+1.6847316430812498e-08 Max:+2.2395884618163109e-02 RMS:+5.0107896876815721e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.1855275048874319e-04 RMS:+1.0354889627583219e-05 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.3839458115398884e-03 RMS:+3.5588872198565459e-05 +ozone_mass_mixing_ratio | Min:+1.1339260641562987e-09 Max:+1.7277885490329936e-05 RMS:+4.4686682637740296e-06 +surface_geopotential_height | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.5217851257324219e+02 RMS:+2.2019818126018798e+01 +sea_surface_temperature | Min:+2.1759780883789062e+02 Max:+3.2456860351562500e+02 RMS:+2.8741259834843908e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.1568060302734375e+02 RMS:+2.8817196445239324e+02 +soilMoistureVolumetric | Min:+2.1992070600390434e-02 Max:+1.0000000000000000e+00 RMS:+8.4975035958924516e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0927191972732544e+00 RMS:+1.5092084570439257e-01 +surface_eastward_wind | Min:-1.8143459320068359e+01 Max:+2.0627843856811523e+01 RMS:+5.1169707890467366e+00 +surface_northward_wind | Min:-2.3821027755737305e+01 Max:+1.9497446060180664e+01 RMS:+4.8067548196805943e+00 +f10m | Min:+9.4103527069091797e-01 Max:+1.0685453414916992e+00 RMS:+9.9573423073115486e-01 +---------------------------------------------------------------------------------------------------- +Initial state for member 2: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 23 | cube sphere face size: C48 +eastward_wind | Min:-8.5966735839843750e+01 Max:+1.1211631774902344e+02 RMS:+1.7425666524535583e+01 +northward_wind | Min:-8.5594192504882812e+01 Max:+8.9450973510742188e+01 RMS:+1.0012910607932993e+01 +air_temperature | Min:+1.7322386169433594e+02 Max:+3.1173611450195312e+02 RMS:+2.5015480177211401e+02 +layer_thickness | Min:-3.0079758300781250e+03 Max:-1.6234376907348633e+01 RMS:+9.8509317417150282e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7860076904296875e+03 RMS:+9.5696337286916196e+02 +surface_pressure | Min:+5.2300289062500000e+04 Max:+1.0443091406250000e+05 RMS:+9.8912612346289476e+04 +specific_humidity | Min:+1.7588122958045460e-08 Max:+2.1704806014895439e-02 RMS:+4.9960608009716806e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.2980920989066362e-04 RMS:+9.7698907168770146e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.4689513482153416e-03 RMS:+3.5167035611299903e-05 +ozone_mass_mixing_ratio | Min:+2.9807353807420611e-10 Max:+1.7195472537423484e-05 RMS:+4.4692040486361164e-06 +surface_geopotential_height | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.4906845092773438e+02 RMS:+2.2004970461687567e+01 +sea_surface_temperature | Min:+2.1673643493652344e+02 Max:+3.2559057617187500e+02 RMS:+2.8745909600453388e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.1603344726562500e+02 RMS:+2.8817511849953127e+02 +soilMoistureVolumetric | Min:+2.1997468546032906e-02 Max:+1.0000000000000000e+00 RMS:+8.4973303187978066e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0929538011550903e+00 RMS:+1.5094966458993353e-01 +surface_eastward_wind | Min:-1.9632795333862305e+01 Max:+2.2031156539916992e+01 RMS:+5.1474973436096771e+00 +surface_northward_wind | Min:-2.2859689712524414e+01 Max:+1.9478809356689453e+01 RMS:+4.7531537396512338e+00 +f10m | Min:+9.4079720973968506e-01 Max:+1.0689357519149780e+00 RMS:+9.9569948613238035e-01 +---------------------------------------------------------------------------------------------------- +H(x) for member 1: +Aircraft nobs= 502771 Min=-80.55443499910179, Max=305.5072533751332, RMS=146.5850485230079 + +ascatw_ascat_metop-b nobs= 24988 Min=-14.90743210285059, Max=18.50735802131708, RMS=5.626101623328659 + +ATMS N20 nobs= 17107090 Min=129.7859007557429, Max=294.7571288275636, RMS=237.7675940436642 + +surface_ps nobs= 199096 Min=481.5556154686088, Max=106952.1342381349, RMS=94358.04308199322 + +gnssrobndnbam nobs= 792394 Min=3.54653995010946e-06, Max=0.05689811581521509, RMS=0.00729813001231048 + +ompsnp_npp nobs= 3652 Min=0.02233893266611933, Max=544.9735566336279, RMS=74.39666518228908 + +ompstc_npp nobs= 29925 Min=232.08666141862, Max=578.874275460677, RMS=330.1687050473581 + +satwind_goes-16 nobs= 192150 Min=-46.72026247379588, Max=73.49080322835941, RMS=13.50004896322415 + + +H(x) for member 2: +Aircraft nobs= 502771 Min=-83.52929132190421, Max=303.935382876328, RMS=146.5832501835669 + +ascatw_ascat_metop-b nobs= 24988 Min=-15.95012800292468, Max=19.32845599082289, RMS=5.590280602334444 + +ATMS N20 nobs= 17107090 Min=129.587069467264, Max=294.7645909817928, RMS=237.7536249801313 + +surface_ps nobs= 199096 Min=475.424805046184, Max=106814.5789947868, RMS=94338.64524856347 + +gnssrobndnbam nobs= 792394 Min=3.535338326285228e-06, Max=0.05521000303350442, RMS=0.007290866963061116 + +ompsnp_npp nobs= 3652 Min=0.02236964099830396, Max=551.3730864849784, RMS=74.49227809990998 + +ompstc_npp nobs= 29925 Min=232.3157492522477, Max=581.8884351421542, RMS=330.2400711699158 + +satwind_goes-16 nobs= 192150 Min=-45.04364111939185, Max=72.45210083322863, RMS=13.31321129007812 + + +H(x) ensemble background mean: +Aircraft nobs= 670256 Min=-82.041863160503, Max=304.2592158533807, RMS=127.3605543707548 + +ascatw_ascat_metop-b nobs= 241220 Min=-15.81413469653508, Max=19.88922395519342, RMS=5.523473979723838 + +ATMS N20 nobs= 17107090 Min=129.6864851115034, Max=294.7608599046782, RMS=237.760350047037 + +surface_ps nobs= 199096 Min=486.4346696969737, Max=106883.3566164608, RMS=94348.33691646729 + +gnssrobndnbam nobs= 792394 Min=3.540939138197344e-06, Max=0.04945358726186298, RMS=0.007290515506537144 + +ompsnp_npp nobs= 3652 Min=0.02235738516446045, Max=548.1733215593032, RMS=74.44382038546588 + +ompstc_npp nobs= 29925 Min=232.3457460802846, Max=580.3706053589909, RMS=330.2028035413688 + +satwind_goes-16 nobs= 1605788 Min=-48.18299380448379, Max=74.78775267937297, RMS=10.02015189273681 + + +background y - H(x): +Aircraft nobs= 514449 Min=-244.1546176605621, Max=114.0538314416612, RMS=3.825505485330922 + +ascatw_ascat_metop-b nobs= 241220 Min=-15.53489644753131, Max=19.32628866297402, RMS=2.327498313731722 + +ATMS N20 nobs= 17107090 Min=-139.4066954833384, Max=99999997810.8074, RMS=5096987910.765858 + +surface_ps nobs= 116459 Min=-101684.8005703992, Max=75903.15428094343, RMS=2988.11265787499 + +gnssrobndnbam nobs= 791231 Min=-0.0302615994327759, Max=0.01662471709650585, RMS=0.0008693038108764198 + +ompsnp_npp nobs= 3652 Min=-30.64844591762643, Max=60.86103708368728, RMS=3.943997228450417 + +ompstc_npp nobs= 28934 Min=-98.77455818390638, Max=716.7959660681558, RMS=17.05887006514246 + +satwind_goes-16 nobs= 1605788 Min=-51.62964751676423, Max=38.23192217860554, RMS=3.10218655904646 + + diff --git a/test/gw-ci/lgetkf_solver.ref b/test/gw-ci/lgetkf_solver.ref new file mode 100644 index 000000000..11f550642 --- /dev/null +++ b/test/gw-ci/lgetkf_solver.ref @@ -0,0 +1,180 @@ +Initial state for member 1: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 23 | cube sphere face size: C48 +eastward_wind | Min:-8.4384330749511719e+01 Max:+1.1146717834472656e+02 RMS:+1.7423407399233511e+01 +northward_wind | Min:-8.6144805908203125e+01 Max:+8.9331993103027344e+01 RMS:+1.0017299694477179e+01 +air_temperature | Min:+1.7350303649902344e+02 Max:+3.0961535644531250e+02 RMS:+2.5015669840056216e+02 +layer_thickness | Min:-3.0059777832031250e+03 Max:-1.6207923889160156e+01 RMS:+9.8503674614826332e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7881016845703125e+03 RMS:+9.5698921151558159e+02 +surface_pressure | Min:+5.2320046875000000e+04 Max:+1.0452482812500000e+05 RMS:+9.8914997456124955e+04 +specific_humidity | Min:+1.6847316430812498e-08 Max:+2.2395884618163109e-02 RMS:+5.0107896876815721e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.1855275048874319e-04 RMS:+1.0354889627583219e-05 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.3839458115398884e-03 RMS:+3.5588872198565459e-05 +ozone_mass_mixing_ratio | Min:+1.1339260641562987e-09 Max:+1.7277885490329936e-05 RMS:+4.4686682637740296e-06 +surface_geopotential_height | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.5217851257324219e+02 RMS:+2.2019818126018798e+01 +sea_surface_temperature | Min:+2.1759780883789062e+02 Max:+3.2456860351562500e+02 RMS:+2.8741259834843908e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.1568060302734375e+02 RMS:+2.8817196445239324e+02 +soilMoistureVolumetric | Min:+2.1992070600390434e-02 Max:+1.0000000000000000e+00 RMS:+8.4975035958924516e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0927191972732544e+00 RMS:+1.5092084570439257e-01 +surface_eastward_wind | Min:-1.8143459320068359e+01 Max:+2.0627843856811523e+01 RMS:+5.1169707890467366e+00 +surface_northward_wind | Min:-2.3821027755737305e+01 Max:+1.9497446060180664e+01 RMS:+4.8067548196805943e+00 +f10m | Min:+9.4103527069091797e-01 Max:+1.0685453414916992e+00 RMS:+9.9573423073115486e-01 +---------------------------------------------------------------------------------------------------- +Initial state for member 2: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 23 | cube sphere face size: C48 +eastward_wind | Min:-8.5966735839843750e+01 Max:+1.1211631774902344e+02 RMS:+1.7425666524535583e+01 +northward_wind | Min:-8.5594192504882812e+01 Max:+8.9450973510742188e+01 RMS:+1.0012910607932993e+01 +air_temperature | Min:+1.7322386169433594e+02 Max:+3.1173611450195312e+02 RMS:+2.5015480177211401e+02 +layer_thickness | Min:-3.0079758300781250e+03 Max:-1.6234376907348633e+01 RMS:+9.8509317417150282e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7860076904296875e+03 RMS:+9.5696337286916196e+02 +surface_pressure | Min:+5.2300289062500000e+04 Max:+1.0443091406250000e+05 RMS:+9.8912612346289476e+04 +specific_humidity | Min:+1.7588122958045460e-08 Max:+2.1704806014895439e-02 RMS:+4.9960608009716806e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.2980920989066362e-04 RMS:+9.7698907168770146e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.4689513482153416e-03 RMS:+3.5167035611299903e-05 +ozone_mass_mixing_ratio | Min:+2.9807353807420611e-10 Max:+1.7195472537423484e-05 RMS:+4.4692040486361164e-06 +surface_geopotential_height | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.4906845092773438e+02 RMS:+2.2004970461687567e+01 +sea_surface_temperature | Min:+2.1673643493652344e+02 Max:+3.2559057617187500e+02 RMS:+2.8745909600453388e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.1603344726562500e+02 RMS:+2.8817511849953127e+02 +soilMoistureVolumetric | Min:+2.1997468546032906e-02 Max:+1.0000000000000000e+00 RMS:+8.4973303187978066e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0929538011550903e+00 RMS:+1.5094966458993353e-01 +surface_eastward_wind | Min:-1.9632795333862305e+01 Max:+2.2031156539916992e+01 RMS:+5.1474973436096771e+00 +surface_northward_wind | Min:-2.2859689712524414e+01 Max:+1.9478809356689453e+01 RMS:+4.7531537396512338e+00 +f10m | Min:+9.4079720973968506e-01 Max:+1.0689357519149780e+00 RMS:+9.9569948613238035e-01 +---------------------------------------------------------------------------------------------------- +H(x) for member 1: +Aircraft nobs= 502771 Min=-80.55443572998047, Max=305.5072631835938, RMS=146.5850485206547 + +ascatw_ascat_metop-b nobs= 24988 Min=-14.90743255615234, Max=18.50735855102539, RMS=5.626101621409232 + +ATMS N20 nobs= 17107090 Min=129.7859039306641, Max=294.7571411132812, RMS=237.7675940456139 + +surface_ps nobs= 199096 Min=481.5556030273438, Max=106952.1328125, RMS=94358.04310219502 + +gnssrobndnbam nobs= 792394 Min=3.546540028764866e-06, Max=0.05689811706542969, RMS=0.007298130011564753 + +ompsnp_npp nobs= 3652 Min=0.02233893238008022, Max=544.9735717773438, RMS=74.39666527674214 + +ompstc_npp nobs= 29925 Min=232.0866546630859, Max=578.874267578125, RMS=330.1687049872166 + +satwind_goes-16 nobs= 192150 Min=-46.72026062011719, Max=73.49080657958984, RMS=13.50004896377961 + + +H(x) for member 2: +Aircraft nobs= 502771 Min=-83.52928924560547, Max=303.9353942871094, RMS=146.5832501984888 + +ascatw_ascat_metop-b nobs= 24988 Min=-15.95012760162354, Max=19.32845687866211, RMS=5.590280603593994 + +ATMS N20 nobs= 17107090 Min=129.5870666503906, Max=294.7645874023438, RMS=237.7536249814884 + +surface_ps nobs= 199096 Min=475.4248046875, Max=106814.578125, RMS=94338.64525474468 + +gnssrobndnbam nobs= 792394 Min=3.53533823727048e-06, Max=0.05521000176668167, RMS=0.007290866961668531 + +ompsnp_npp nobs= 3652 Min=0.02236964181065559, Max=551.3731079101562, RMS=74.49227830514708 + +ompstc_npp nobs= 29925 Min=232.3157501220703, Max=581.888427734375, RMS=330.2400711798879 + +satwind_goes-16 nobs= 192150 Min=-45.04364013671875, Max=72.45210266113281, RMS=13.31321128986013 + + +H(x) ensemble background mean: +Aircraft nobs= 502771 Min=-82.04186248779297, Max=304.2592163085938, RMS=146.582395066166 + +ascatw_ascat_metop-b nobs= 24988 Min=-15.35133123397827, Max=18.91790771484375, RMS=5.590053671147163 + +ATMS N20 nobs= 17107090 Min=129.6864852905273, Max=294.7608642578125, RMS=237.7603500486888 + +surface_ps nobs= 199096 Min=486.4346618652344, Max=106883.35546875, RMS=94348.33692965737 + +gnssrobndnbam nobs= 792394 Min=3.540939133017673e-06, Max=0.04945358820259571, RMS=0.007290515505449794 + +ompsnp_npp nobs= 3652 Min=0.02235738560557365, Max=548.17333984375, RMS=74.44382053535134 + +ompstc_npp nobs= 29925 Min=232.3457412719727, Max=580.37060546875, RMS=330.2028035163413 + +satwind_goes-16 nobs= 192150 Min=-45.88195037841797, Max=72.75027465820312, RMS=13.36167441823028 + + +background y - H(x): +Aircraft nobs= 502771 Min=-18.89637756347656, Max=18.92713928222656, RMS=3.217299765305571 + +ascatw_ascat_metop-b nobs= 24988 Min=-4.990096844732761, Max=4.997781611979008, RMS=1.78136290653079 + +ATMS N20 nobs= 17107090 Min=-139.4066925048828, Max=99999997810.8074, RMS=5096987910.765857 + +surface_ps nobs= 116459 Min=-101684.80078125, Max=75903.154296875, RMS=2988.112660654301 + +gnssrobndnbam nobs= 791231 Min=-0.03026160039007664, Max=0.01662471704185009, RMS=0.000869303809760421 + +ompsnp_npp nobs= 3652 Min=-30.64844512939453, Max=60.86103820800781, RMS=3.943997189932038 + +ompstc_npp nobs= 28934 Min=-98.7745361328125, Max=716.7959594726562, RMS=17.05887006085864 + +satwind_goes-16 nobs= 192150 Min=-17.58694839477539, Max=18.68439626693726, RMS=3.267043143712932 + + +Background mean : +---------------------------------------------------------------------------------------------------- +State print | number of fields = 23 | cube sphere face size: C48 +eastward_wind | Min:-8.5175533294677734e+01 Max:+1.1179174804687500e+02 RMS:+1.7400557939433298e+01 +northward_wind | Min:-8.5735511779785156e+01 Max:+8.9157825469970703e+01 RMS:+9.9701645189144461e+00 +air_temperature | Min:+1.7338398742675781e+02 Max:+3.1067573547363281e+02 RMS:+2.5015547362929473e+02 +layer_thickness | Min:-3.0054658203125000e+03 Max:-1.6221150398254395e+01 RMS:+9.8506306362137718e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7870546875000000e+03 RMS:+9.5697619937906575e+02 +surface_pressure | Min:+5.2310167968750000e+04 Max:+1.0447787109375000e+05 RMS:+9.8913797930278190e+04 +specific_humidity | Min:+2.9691944014587079e-08 Max:+2.1115131676197052e-02 RMS:+4.9994705712860729e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+3.6185300268698484e-04 RMS:+9.3862057121105856e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.2367462622933090e-03 RMS:+3.1415946634547486e-05 +ozone_mass_mixing_ratio | Min:+7.5237392704874395e-10 Max:+1.7233576727448963e-05 RMS:+4.4688532813447449e-06 +surface_geopotential_height | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.4910437774658203e+02 RMS:+2.2007651817656669e+01 +sea_surface_temperature | Min:+2.1716712188720703e+02 Max:+3.2174871826171875e+02 RMS:+2.8743544448926787e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.1577014160156250e+02 RMS:+2.8817349407786276e+02 +soilMoistureVolumetric | Min:+2.1994769573211670e-02 Max:+1.0000000000000000e+00 RMS:+8.4973696890011863e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0928364992141724e+00 RMS:+1.5091512135815568e-01 +surface_eastward_wind | Min:-1.8888127326965332e+01 Max:+2.1329500198364258e+01 RMS:+5.1094029653114390e+00 +surface_northward_wind | Min:-2.3228111267089844e+01 Max:+1.8953988075256348e+01 RMS:+4.7537442465404594e+00 +f10m | Min:+9.4170856475830078e-01 Max:+1.0687405467033386e+00 RMS:+9.9571647867703006e-01 +---------------------------------------------------------------------------------------------------- +Analysis mean : +---------------------------------------------------------------------------------------------------- +State print | number of fields = 23 | cube sphere face size: C48 +eastward_wind | Min:-8.4774324321502988e+01 Max:+1.1170619450293722e+02 RMS:+1.7400375509763755e+01 +northward_wind | Min:-8.7214121288366655e+01 Max:+8.9233807495233577e+01 RMS:+9.9938074328966984e+00 +air_temperature | Min:+1.7338398731904834e+02 Max:+3.1021734492129713e+02 RMS:+2.5015182619184384e+02 +layer_thickness | Min:-3.0054658092822870e+03 Max:-1.6234013903099573e+01 RMS:+9.8506487778080520e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7869309532732013e+03 RMS:+9.5697423778426378e+02 +surface_pressure | Min:+5.2310167956090001e+04 Max:+1.0447787101137359e+05 RMS:+9.8913797926518338e+04 +specific_humidity | Min:+0.0000000000000000e+00 Max:+2.1115131089317944e-02 RMS:+4.9974721017221301e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.4276663301760246e-04 RMS:+9.6220406276590353e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.3226195416814611e-03 RMS:+3.3209346549199534e-05 +ozone_mass_mixing_ratio | Min:+1.0218316416270972e-09 Max:+1.7364107739907706e-05 RMS:+4.4689530099725226e-06 +surface_geopotential_height | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.4910437774658203e+02 RMS:+2.2007651817656669e+01 +sea_surface_temperature | Min:+2.1716712188720703e+02 Max:+3.2174871826171875e+02 RMS:+2.8743544448926787e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.1577014160156250e+02 RMS:+2.8817349407786276e+02 +soilMoistureVolumetric | Min:+2.1994769573211670e-02 Max:+1.0000000000000000e+00 RMS:+8.4973696890011863e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0928364992141724e+00 RMS:+1.5091512135815568e-01 +surface_eastward_wind | Min:-1.8888127326965332e+01 Max:+2.1329500198364258e+01 RMS:+5.1094029653114390e+00 +surface_northward_wind | Min:-2.3228111267089844e+01 Max:+1.8953988075256348e+01 RMS:+4.7537442465404594e+00 +f10m | Min:+9.4170856475830078e-01 Max:+1.0687405467033386e+00 RMS:+9.9571647867703006e-01 +---------------------------------------------------------------------------------------------------- From 2473cec3120e838bed88853d1aac924b90128810 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 6 Nov 2024 18:41:57 +0000 Subject: [PATCH 14/60] Update --- parm/atm/jcb-base.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 | 10 ++++++++++ parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 | 10 ++++++++++ parm/jcb-algorithms | 2 +- parm/jcb-gdas | 2 +- test/atm/global-workflow/3dvar-fv3inc.ref | 0 test/atm/global-workflow/config.yaml | 6 ++++++ .../jcb-prototype_3dvar-fv3inc.yaml.j2 | 10 ++++++++++ .../jcb-prototype_lgetkf-fv3inc.yaml.j2 | 10 ++++++++++ test/atm/global-workflow/lgetkf-fv3inc.ref | 0 utils/fv3jedi/fv3jedi_fv3inc.h | 19 ++++++++++++++++--- 11 files changed, 66 insertions(+), 7 deletions(-) create mode 100644 parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 create mode 100644 parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 create mode 100644 test/atm/global-workflow/3dvar-fv3inc.ref create mode 100644 test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 create mode 100644 test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 create mode 100644 test/atm/global-workflow/lgetkf-fv3inc.ref diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index 2726f6454..2836a1254 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -127,6 +127,6 @@ atmosphere_posterior_output_gaussian: "./mem%{member}%/atmanl." atmosphere_ensemble_history_prefix: "enkf{{GPREFIX}}" # Testing ---------- +#-------- -atmosphere_do_testing: false +atmosphere_do_testing: true diff --git a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 new file mode 100644 index 000000000..28d88e43b --- /dev/null +++ b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -0,0 +1,10 @@ +# Algorithm +# --------- +algorithm: fv3jedi_fv3inc_variational + +# Testing things +# -------------- +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/3dvar-fv3inc.ref +test_output_filename: ./3dvar.out +test_float_relative_tolerance: 1.0e-3 +test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 new file mode 100644 index 000000000..96e1a08d5 --- /dev/null +++ b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -0,0 +1,10 @@ +# Algorithm +# --------- +algorithm: fv3jedi_fv3inc_lgetkf + +# Testing things +# -------------- +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/lgetkf-fv3inc.ref +test_output_filename: ./3dvar.out +test_float_relative_tolerance: 1.0e-3 +test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/jcb-algorithms b/parm/jcb-algorithms index 6713ad160..4c7fe34f4 160000 --- a/parm/jcb-algorithms +++ b/parm/jcb-algorithms @@ -1 +1 @@ -Subproject commit 6713ad1609a19666432aeb69f546604839e23fce +Subproject commit 4c7fe34f460fc57cd1258c4899459d1fe0fa83fe diff --git a/parm/jcb-gdas b/parm/jcb-gdas index 2b46aa19b..7a97c2b9e 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit 2b46aa19b22df22f33ef0be5030fb719a8fa6298 +Subproject commit 7a97c2b9e4bf75a0ea7a9b554cca1cd3c6a3d2c2 diff --git a/test/atm/global-workflow/3dvar-fv3inc.ref b/test/atm/global-workflow/3dvar-fv3inc.ref new file mode 100644 index 000000000..e69de29bb diff --git a/test/atm/global-workflow/config.yaml b/test/atm/global-workflow/config.yaml index c06019628..d82938172 100644 --- a/test/atm/global-workflow/config.yaml +++ b/test/atm/global-workflow/config.yaml @@ -16,6 +16,9 @@ atmanl: LAYOUT_X_ATMANL: 1 LAYOUT_Y_ATMANL: 1 +atmanlfv3inc: + JCB_ALGO_YAML: "@srcdir@/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2" + atmensanl: JCB_ALGO_YAML_LETKF: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2" JCB_ALGO_YAML_OBS: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2" @@ -27,3 +30,6 @@ atmensanlobs: atmensanlsol: JCB_ALGO_YAML: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2" + +atmensanlfv3inc: + JCB_ALGO_YAML: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2" diff --git a/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 b/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 new file mode 100644 index 000000000..8f6290cf1 --- /dev/null +++ b/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -0,0 +1,10 @@ +# Algorithm +# --------- +algorithm: fv3jedi_fv3inc_variational + +# Testing things +# -------------- +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/atm/global-workflow/3dvar-fv3inc.ref +test_output_filename: ./3dvar-fv3inc.out +test_float_relative_tolerance: 1.0e-3 +test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 new file mode 100644 index 000000000..3eddd4129 --- /dev/null +++ b/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -0,0 +1,10 @@ +# Algorithm +# --------- +algorithm: fv3jedi_fv3inc_lgetkf + +# Testing things +# -------------- +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/atm/global-workflow/lgetkf-fv3inc.ref +test_output_filename: ./lgetkf-fv3inc.out +test_float_relative_tolerance: 1.0e-3 +test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/lgetkf-fv3inc.ref b/test/atm/global-workflow/lgetkf-fv3inc.ref new file mode 100644 index 000000000..e69de29bb diff --git a/utils/fv3jedi/fv3jedi_fv3inc.h b/utils/fv3jedi/fv3jedi_fv3inc.h index 8044692a0..0b682ca7a 100644 --- a/utils/fv3jedi/fv3jedi_fv3inc.h +++ b/utils/fv3jedi/fv3jedi_fv3inc.h @@ -110,13 +110,20 @@ namespace gdasapp { // Read background state fv3jedi::State xxBkg(stateGeom, stateInputConfig); - oops::Log::test() << "Background State: " << std::endl << xxBkg << std::endl; // Read JEDI increment fv3jedi::Increment dxJEDI(jediIncrGeom, jediIncrVars, xxBkg.validTime()); dxJEDI.read(jediIncrInputConfig); - oops::Log::test() << "JEDI Increment: " << std::endl << dxJEDI << std::endl; + // Testing output for inputs + if ( nmem == 1 ) { + oops::Log::test() << "Background State: " << std::endl << xxBkg << std::endl; + oops::Log::test() << "JEDI Increment: " << std::endl << dxJEDI << std::endl; + } else { + oops::Log::test() << "Background State for member " << imem << ":" << std::endl << xxBkg << std::endl; + oops::Log::test() << "JEDI Increment for member " << imem << ":" << std::endl << dxJEDI << std::endl; + } + // Increment conversion // --------------------------------------------------------------------------------- @@ -156,7 +163,13 @@ namespace gdasapp { } } dxFV3.fromFieldSet(dxFsFV3); - oops::Log::test() << "FV3 Increment: " << std::endl << dxFV3 << std::endl; + + // Test output for outputs + if ( nmem == 1 ) { + oops::Log::test() << "FV3 Increment: " << std::endl << dxFV3 << std::endl; + } else { + oops::Log::test() << "FV3 Increment for member " << imem << ":" << std::endl << dxFV3 << std::endl; + } // Write FV3 increment dxFV3.write(fv3IncrOuputConfig); From e144bc8457146b51e649b269565124f8edc420cb Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 6 Nov 2024 18:42:31 +0000 Subject: [PATCH 15/60] Update jcb-gdas hash --- parm/jcb-gdas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/jcb-gdas b/parm/jcb-gdas index 7a97c2b9e..d8f2bf0ed 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit 7a97c2b9e4bf75a0ea7a9b554cca1cd3c6a3d2c2 +Subproject commit d8f2bf0edc0d0dfe33a5340d597e3990a6e2bf36 From e63ab3fdab2daf1f5196a2fa5f2ab08a5cbcd611 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 6 Nov 2024 19:05:48 +0000 Subject: [PATCH 16/60] Update git modules --- .gitmodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 8241086a8..4b09987ce 100644 --- a/.gitmodules +++ b/.gitmodules @@ -20,7 +20,7 @@ [submodule "sorc/saber"] path = sorc/saber url = https://github.com/NOAA-EMC/saber.git - branch = bugfix/wcoss2 + branch = develop [submodule "sorc/ioda"] path = sorc/ioda url = https://github.com/jcsda/ioda.git @@ -44,7 +44,7 @@ [submodule "sorc/fv3-jedi"] path = sorc/fv3-jedi url = https://github.com/NOAA-EMC/fv3-jedi.git - branch = patch/fv3-jedi + branch = develop [submodule "sorc/icepack"] path = sorc/icepack url = https://github.com/JCSDA-internal/Icepack.git From 972dd930ba09ac22ab1b3ba6745a54eda074db4b Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 6 Nov 2024 19:11:33 +0000 Subject: [PATCH 17/60] Update yamls --- test/atm/global-workflow/config.yaml | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/test/atm/global-workflow/config.yaml b/test/atm/global-workflow/config.yaml index d82938172..1c3a79a75 100644 --- a/test/atm/global-workflow/config.yaml +++ b/test/atm/global-workflow/config.yaml @@ -10,26 +10,17 @@ base: PTMP: "@bindir@/test/atm/global-workflow/testrun" atmanl: - JCB_ALGO_YAML: "@srcdir@/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2" + JCB_ALGO_YAML_VAR: "@srcdir@/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2" + JCB_ALGO_YAML_FV3INC: "@srcdir@/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2" STATICB_TYPE: "identity" ATMRES_ANL: "C48" LAYOUT_X_ATMANL: 1 LAYOUT_Y_ATMANL: 1 -atmanlfv3inc: - JCB_ALGO_YAML: "@srcdir@/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2" - atmensanl: JCB_ALGO_YAML_LETKF: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2" JCB_ALGO_YAML_OBS: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2" + JCB_ALGO_YAML_SOL: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2" + JCB_ALGO_YAML_FV3INC: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2" LAYOUT_X_ATMENSANL: 1 LAYOUT_Y_ATMENSANL: 1 - -atmensanlobs: - JCB_ALGO_YAML: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2" - -atmensanlsol: - JCB_ALGO_YAML: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2" - -atmensanlfv3inc: - JCB_ALGO_YAML: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2" From 08fe673dec9ed9b15d61c3f7204f8d563d78ca94 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 6 Nov 2024 19:12:47 +0000 Subject: [PATCH 18/60] Update hashes --- sorc/fv3-jedi | 2 +- sorc/saber | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sorc/fv3-jedi b/sorc/fv3-jedi index 65917e301..88279a632 160000 --- a/sorc/fv3-jedi +++ b/sorc/fv3-jedi @@ -1 +1 @@ -Subproject commit 65917e301cf2308414a99e634be6c88939a9fac2 +Subproject commit 88279a63280c23d6b8974991a8c89380afaf5db7 diff --git a/sorc/saber b/sorc/saber index 5c8998282..1f23a3665 160000 --- a/sorc/saber +++ b/sorc/saber @@ -1 +1 @@ -Subproject commit 5c89982823f19633c4b2d8d0d95f064203fcd060 +Subproject commit 1f23a36657f6d10b770348de0f5454e01d377105 From be8919a85bbd40cc4a1e095bd5133a26f5b7cf39 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 6 Nov 2024 19:14:29 +0000 Subject: [PATCH 19/60] Revert .gitmodules to develop --- .gitmodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 4b09987ce..945b2d291 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,7 +19,7 @@ branch = develop [submodule "sorc/saber"] path = sorc/saber - url = https://github.com/NOAA-EMC/saber.git + url = https://github.com/jcsda/saber.git branch = develop [submodule "sorc/ioda"] path = sorc/ioda @@ -43,7 +43,7 @@ branch = develop [submodule "sorc/fv3-jedi"] path = sorc/fv3-jedi - url = https://github.com/NOAA-EMC/fv3-jedi.git + url = https://github.com/jcsda/fv3-jedi.git branch = develop [submodule "sorc/icepack"] path = sorc/icepack From 79c4eb9c5468708ab447025649be8e6ac730b5b6 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 6 Nov 2024 19:16:35 +0000 Subject: [PATCH 20/60] More reverting --- parm/atm/jcb-base.yaml.j2 | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index 2836a1254..7200fb993 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -71,6 +71,8 @@ observations: all_observations crtm_coefficient_path: "{{ DATA }}/crtm/" # Naming conventions for observational files +atmosphere_obsdataroot_path: "{{COM_OBS}}" + atmosphere_obsdatain_path: "{{atm_obsdatain_path}}" atmosphere_obsdatain_prefix: "{{OPREFIX}}" atmosphere_obsdatain_suffix: ".tm00.nc" @@ -80,6 +82,8 @@ atmosphere_obsdataout_prefix: diag_ atmosphere_obsdataout_suffix: "_{{ current_cycle | to_YMDH }}.nc" # Naming conventions for bias correction files +atmosphere_obsbiasroot_path: "{{COM_ATMOS_ANALYSIS_PREV}}" + atmosphere_obsbiasin_path: "{{DATA}}/obs/" atmosphere_obsbiasin_prefix: "{{GPREFIX}}" atmosphere_obsbiasin_suffix: ".satbias.nc" @@ -94,6 +98,16 @@ atmosphere_obsbiasout_suffix: ".satbias.nc" atmosphere_obsbiascovout_prefix: "{{APREFIX}}" atmosphere_obsbiascovout_suffix: ".satbias_cov.nc" +bias_files: + atms_n20: rad_varbc_params.tar + atms_npp: rad_varbc_params.tar + mtiasi_metop-a: rad_varbc_params.tar + mtiasi_metop-b: rad_varbc_params.tar + amsua_n19: rad_varbc_params.tar + ssmis_f17: rad_varbc_params.tar + ssmis_f18: rad_varbc_params.tar + cris-fsr_n20: rad_varbc_params.tar + cris-fsr_npp: rad_varbc_params.tar # Local Ensemble DA (LETKF) # ------------------------- @@ -127,6 +141,6 @@ atmosphere_posterior_output_gaussian: "./mem%{member}%/atmanl." atmosphere_ensemble_history_prefix: "enkf{{GPREFIX}}" # Testing -#-------- +# ------- atmosphere_do_testing: true From ebb7654280d12e13fabe1667d599d24ec2b99885 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 6 Nov 2024 19:19:06 +0000 Subject: [PATCH 21/60] More reverting --- parm/io/fv3jedi_fieldmetadata_restart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/io/fv3jedi_fieldmetadata_restart.yaml b/parm/io/fv3jedi_fieldmetadata_restart.yaml index ccba447dc..d4a4a3a09 100644 --- a/parm/io/fv3jedi_fieldmetadata_restart.yaml +++ b/parm/io/fv3jedi_fieldmetadata_restart.yaml @@ -10,7 +10,7 @@ field metadata: io name: T - long name: air_pressure_thickness - io name: delp + io name: DELP - long name: layer_thickness io name: DZ From 086f6960e54a838ea6b7c0225e200506d931b24b Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 6 Nov 2024 21:45:15 +0000 Subject: [PATCH 22/60] Coding norms and test references --- test/atm/global-workflow/3dvar-fv3inc.ref | 41 +++++++ test/atm/global-workflow/lgetkf-fv3inc.ref | 123 +++++++++++++++++++++ utils/fv3jedi/fv3jedi_fv3inc.h | 15 ++- 3 files changed, 173 insertions(+), 6 deletions(-) diff --git a/test/atm/global-workflow/3dvar-fv3inc.ref b/test/atm/global-workflow/3dvar-fv3inc.ref index e69de29bb..98a94646b 100644 --- a/test/atm/global-workflow/3dvar-fv3inc.ref +++ b/test/atm/global-workflow/3dvar-fv3inc.ref @@ -0,0 +1,41 @@ +Background State: + +---------------------------------------------------------------------------------------------------- +State print | number of fields = 9 | cube sphere face size: C48 +eastward_wind | Min:-5.5495644220059390e+01 Max:+8.4934651204487366e+01 RMS:+1.6388250288532191e+01 +northward_wind | Min:-7.3712421229093422e+01 Max:+7.6984825502186652e+01 RMS:+8.1424144891567511e+00 +air_temperature | Min:+1.7482158077318496e+02 Max:+3.1467235233685437e+02 RMS:+2.4978424883064508e+02 +surface_pressure | Min:+5.3298485514404747e+04 Max:+1.0398027192902798e+05 RMS:+9.8897229693652524e+04 +specific_humidity | Min:+1.2691624667179020e-08 Max:+2.0041369334954085e-02 RMS:+4.7792638023125686e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+1.2024392024662985e-03 RMS:+1.4396968866569995e-05 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.5935686618789048e-03 RMS:+4.1931345590543333e-05 +ozone_mass_mixing_ratio | Min:+1.1998327271379204e-08 Max:+1.7808431790670831e-05 RMS:+4.4947917149861064e-06 +surface_geopotential_height | Min:-2.7018394470214844e+01 Max:+5.2697460937500000e+03 RMS:+6.3032575784066080e+02 +---------------------------------------------------------------------------------------------------- +JEDI Increment: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 8 | cube sphere face size: C48 +eastward_wind | Min:-4.9503077015344843e-07 Max:+7.0838511279092131e-07 RMS:+2.4490899978286723e-09 +northward_wind | Min:-7.2703516684757830e-07 Max:+2.8853321110133834e-07 RMS:+2.1376104971902294e-09 +air_temperature | Min:-2.1723477061641461e-07 Max:+6.5020122974601691e-07 RMS:+1.0998492962503341e-08 +surface_pressure | Min:-7.8580342233181000e-10 Max:+3.2014213502407074e-10 RMS:+1.5159255545534699e-11 +specific_humidity | Min:-6.7425976452941262e-04 Max:+7.2974731745455677e-04 RMS:+2.1043490698817701e-06 +cloud_liquid_ice | Min:-2.7736911125384438e-06 Max:+5.0834107240617123e-07 RMS:+4.7607939912271645e-08 +cloud_liquid_water | Min:-3.7332445167104997e-04 Max:+3.4355489504058373e-04 RMS:+3.0033170533500212e-06 +ozone_mass_mixing_ratio | Min:+0.0000000000000000e+00 Max:+0.0000000000000000e+00 RMS:+0.0000000000000000e+00 +---------------------------------------------------------------------------------------------------- +FV3 Increment: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 9 | cube sphere face size: C48 +eastward_wind | Min:-4.9503077015344843e-07 Max:+7.0838511279092131e-07 RMS:+2.4490899978286723e-09 +northward_wind | Min:-7.2703516684757830e-07 Max:+2.8853321110133834e-07 RMS:+2.1376104971902294e-09 +air_temperature | Min:-2.1723477061641461e-07 Max:+6.5020122974601691e-07 RMS:+1.0998492962503341e-08 +specific_humidity | Min:-6.7425976452941262e-04 Max:+7.2974731745455677e-04 RMS:+2.1043490698817701e-06 +cloud_liquid_ice | Min:-2.7736911125384438e-06 Max:+5.0834107240617123e-07 RMS:+4.7607939912271645e-08 +cloud_liquid_water | Min:-3.7332445167104997e-04 Max:+3.4355489504058373e-04 RMS:+3.0033170533500212e-06 +ozone_mass_mixing_ratio | Min:+0.0000000000000000e+00 Max:+0.0000000000000000e+00 RMS:+0.0000000000000000e+00 +air_pressure_thickness | Min:-2.9103830456733704e-11 Max:+2.9103830456733704e-11 RMS:+3.3056019160193798e-13 +layer_thickness | Min:-1.0638235174337751e-01 Max:+1.0329449278924585e-01 RMS:+2.8485086711777381e-04 +---------------------------------------------------------------------------------------------------- diff --git a/test/atm/global-workflow/lgetkf-fv3inc.ref b/test/atm/global-workflow/lgetkf-fv3inc.ref index e69de29bb..2c8fed453 100644 --- a/test/atm/global-workflow/lgetkf-fv3inc.ref +++ b/test/atm/global-workflow/lgetkf-fv3inc.ref @@ -0,0 +1,123 @@ +Background State for member 0: + +---------------------------------------------------------------------------------------------------- +State print | number of fields = 9 | cube sphere face size: C48 +eastward_wind | Min:-5.1619864857418477e+01 Max:+8.6812084442971653e+01 RMS:+1.5983411875766325e+01 +northward_wind | Min:-7.3094846805319690e+01 Max:+7.0353817207582651e+01 RMS:+7.7265473774262041e+00 +air_temperature | Min:+1.7646396818493386e+02 Max:+3.1441817730817547e+02 RMS:+2.4989439192167012e+02 +surface_pressure | Min:+5.3259705655314101e+04 Max:+1.0392378167916714e+05 RMS:+9.8893465602866549e+04 +specific_humidity | Min:+9.5164908108891825e-09 Max:+2.0222136340880194e-02 RMS:+4.8552459174929334e-03 +cloud_liquid_ice | Min:-1.3545705512023003e-20 Max:+6.7304686933261399e-04 RMS:+1.0726563909939355e-05 +cloud_liquid_water | Min:-5.4244251425755909e-20 Max:+1.2879383569881558e-03 RMS:+3.8382491358281577e-05 +ozone_mass_mixing_ratio | Min:+2.9375003505643131e-08 Max:+1.8014885502109894e-05 RMS:+4.4946424525503736e-06 +surface_geopotential_height | Min:-2.7018394470214844e+01 Max:+5.2697460937500000e+03 RMS:+6.3032575784066080e+02 +---------------------------------------------------------------------------------------------------- +JEDI Increment for member 0: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 8 | cube sphere face size: C48 +eastward_wind | Min:-1.7416909136434541e+01 Max:+1.8325867271120192e+01 RMS:+7.2689113073983769e-01 +northward_wind | Min:-1.5335235321425948e+01 Max:+2.1574447615122054e+01 RMS:+7.1328003377466020e-01 +air_temperature | Min:-8.6048230478038406e+00 Max:+8.1497937417599609e+00 RMS:+3.1081395800884187e-01 +surface_pressure | Min:-4.9202937637815580e-04 Max:+8.7924188102306289e-04 RMS:+5.8051418356002832e-05 +specific_humidity | Min:-6.6741214369962698e-03 Max:+9.0731153226882751e-03 RMS:+1.4380776566867527e-04 +cloud_liquid_ice | Min:-4.9931336523754066e-04 Max:+2.6181751401796260e-04 RMS:+3.2747284981508197e-06 +cloud_liquid_water | Min:-1.0141458910771410e-03 Max:+1.1396207487973308e-03 RMS:+1.0447469223790289e-05 +ozone_mass_mixing_ratio | Min:-2.9909193396824413e-06 Max:+3.4967162777667096e-06 RMS:+5.0924831319987802e-08 +---------------------------------------------------------------------------------------------------- +FV3 Increment for member 0: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 9 | cube sphere face size: C48 +eastward_wind | Min:-1.7416909136434541e+01 Max:+1.8325867271120192e+01 RMS:+7.2689113073983769e-01 +northward_wind | Min:-1.5335235321425948e+01 Max:+2.1574447615122054e+01 RMS:+7.1328003377466020e-01 +air_temperature | Min:-8.6048230478038406e+00 Max:+8.1497937417599609e+00 RMS:+3.1081395800884187e-01 +specific_humidity | Min:-6.6741214369962698e-03 Max:+9.0731153226882751e-03 RMS:+1.4380776566867527e-04 +cloud_liquid_ice | Min:-4.9931336523754066e-04 Max:+2.6181751401796260e-04 RMS:+3.2747284981508197e-06 +cloud_liquid_water | Min:-1.0141458910771410e-03 Max:+1.1396207487973308e-03 RMS:+1.0447469223790289e-05 +ozone_mass_mixing_ratio | Min:-2.9909193396824413e-06 Max:+3.4967162777667096e-06 RMS:+5.0924831319987802e-08 +air_pressure_thickness | Min:-1.1013638868462294e-05 Max:+1.9681036064866930e-05 RMS:+6.5512588707706875e-07 +layer_thickness | Min:-2.8045559103640699e+01 Max:+2.1697786412500136e+01 RMS:+6.5544095172004369e-01 +---------------------------------------------------------------------------------------------------- +Background State for member 1: + +---------------------------------------------------------------------------------------------------- +State print | number of fields = 9 | cube sphere face size: C48 +eastward_wind | Min:-5.2853490758012072e+01 Max:+8.7248708527964936e+01 RMS:+1.5955809745480765e+01 +northward_wind | Min:-7.2178651628585953e+01 Max:+7.2568167230757609e+01 RMS:+7.7335061167195889e+00 +air_temperature | Min:+1.7660670217895057e+02 Max:+3.1526174222386965e+02 RMS:+2.4989392943476341e+02 +surface_pressure | Min:+5.3317702550070273e+04 Max:+1.0394629485957995e+05 RMS:+9.8892949759388735e+04 +specific_humidity | Min:+2.1514597275760548e-08 Max:+1.9663168048133908e-02 RMS:+4.8569105861498299e-03 +cloud_liquid_ice | Min:-1.3544569699620215e-20 Max:+7.9557019872326799e-04 RMS:+1.0816147029169270e-05 +cloud_liquid_water | Min:-5.4200711162051571e-20 Max:+1.2298889446687945e-03 RMS:+3.8689917911663205e-05 +ozone_mass_mixing_ratio | Min:+1.6238717942558199e-08 Max:+1.8031521448783218e-05 RMS:+4.4947640660308833e-06 +surface_geopotential_height | Min:-2.7018394470214844e+01 Max:+5.2697460937500000e+03 RMS:+6.3032575784066080e+02 +---------------------------------------------------------------------------------------------------- +JEDI Increment for member 1: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 8 | cube sphere face size: C48 +eastward_wind | Min:-1.7542991285853031e+01 Max:+2.0968845531775742e+01 RMS:+7.2825863145362402e-01 +northward_wind | Min:-1.5283258164430123e+01 Max:+2.0478626874987171e+01 RMS:+7.1562489129210427e-01 +air_temperature | Min:-1.0374519800275246e+01 Max:+9.3297652767893524e+00 RMS:+3.1237829519350230e-01 +surface_pressure | Min:-4.8986046327570421e-04 Max:+9.0817638056250871e-04 RMS:+5.9230402548777353e-05 +specific_humidity | Min:-6.9184909302780918e-03 Max:+8.2127508558306646e-03 RMS:+1.4099077159566875e-04 +cloud_liquid_ice | Min:-5.2537411650465499e-04 Max:+3.1949478810012653e-04 RMS:+3.2097080991341253e-06 +cloud_liquid_water | Min:-1.0684141562485590e-03 Max:+1.1931964279486475e-03 RMS:+1.0416514064617798e-05 +ozone_mass_mixing_ratio | Min:-3.1852115564505394e-06 Max:+3.2851197161513411e-06 RMS:+5.1928484225101225e-08 +---------------------------------------------------------------------------------------------------- +FV3 Increment for member 1: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 9 | cube sphere face size: C48 +eastward_wind | Min:-1.7542991285853031e+01 Max:+2.0968845531775742e+01 RMS:+7.2825863145362402e-01 +northward_wind | Min:-1.5283258164430123e+01 Max:+2.0478626874987171e+01 RMS:+7.1562489129210427e-01 +air_temperature | Min:-1.0374519800275246e+01 Max:+9.3297652767893524e+00 RMS:+3.1237829519350230e-01 +specific_humidity | Min:-6.9184909302780918e-03 Max:+8.2127508558306646e-03 RMS:+1.4099077159566875e-04 +cloud_liquid_ice | Min:-5.2537411650465499e-04 Max:+3.1949478810012653e-04 RMS:+3.2097080991341253e-06 +cloud_liquid_water | Min:-1.0684141562485590e-03 Max:+1.1931964279486475e-03 RMS:+1.0416514064617798e-05 +ozone_mass_mixing_ratio | Min:-3.1852115564505394e-06 Max:+3.2851197161513411e-06 RMS:+5.1928484225101225e-08 +air_pressure_thickness | Min:-1.0965086403302848e-05 Max:+2.0328705431893468e-05 RMS:+6.6843104175422882e-07 +layer_thickness | Min:-3.2106148452359776e+01 Max:+2.5923789087046316e+01 RMS:+6.6540710201306896e-01 +---------------------------------------------------------------------------------------------------- +Background State for member 2: + +---------------------------------------------------------------------------------------------------- +State print | number of fields = 9 | cube sphere face size: C48 +eastward_wind | Min:-5.3776366655868109e+01 Max:+8.6331467223030344e+01 RMS:+1.5960680883840784e+01 +northward_wind | Min:-7.0176400159320124e+01 Max:+6.9531049915936578e+01 RMS:+7.7410680097841684e+00 +air_temperature | Min:+1.7648447482434227e+02 Max:+3.1491330999751426e+02 RMS:+2.4989313307279673e+02 +surface_pressure | Min:+5.3350124363319999e+04 Max:+1.0389818047809265e+05 RMS:+9.8892179510558097e+04 +specific_humidity | Min:+2.1846447498856659e-08 Max:+2.0007929878326374e-02 RMS:+4.8392192734415156e-03 +cloud_liquid_ice | Min:-6.7740196346531239e-21 Max:+6.2473018245821010e-04 RMS:+1.0889666282638220e-05 +cloud_liquid_water | Min:-5.4107584399974539e-20 Max:+1.2132298501853738e-03 RMS:+3.8405804865664137e-05 +ozone_mass_mixing_ratio | Min:+1.2289325508931378e-08 Max:+1.8036413152177077e-05 RMS:+4.4950884931704925e-06 +surface_geopotential_height | Min:-2.7018394470214844e+01 Max:+5.2697460937500000e+03 RMS:+6.3032575784066080e+02 +---------------------------------------------------------------------------------------------------- +JEDI Increment for member 2: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 8 | cube sphere face size: C48 +eastward_wind | Min:-1.8014062913663103e+01 Max:+1.8516732485049666e+01 RMS:+7.3383694849572323e-01 +northward_wind | Min:-1.5579280119728031e+01 Max:+2.2762102719398591e+01 RMS:+7.2377717441299694e-01 +air_temperature | Min:-1.0570848751737598e+01 Max:+8.3564092475959129e+00 RMS:+3.1645038788954982e-01 +surface_pressure | Min:-4.7656900311210393e-04 Max:+9.1220166839889316e-04 RMS:+5.8396146445486219e-05 +specific_humidity | Min:-5.2439197475218757e-03 Max:+8.2607880293262357e-03 RMS:+1.4211303446855155e-04 +cloud_liquid_ice | Min:-5.2671607196952148e-04 Max:+2.7498589550193714e-04 RMS:+3.2193226262458792e-06 +cloud_liquid_water | Min:-1.0851123947058787e-03 Max:+1.2045791096627974e-03 RMS:+1.0548571598067807e-05 +ozone_mass_mixing_ratio | Min:-3.2510682480215228e-06 Max:+3.3849184382668304e-06 RMS:+5.2379967545874409e-08 +---------------------------------------------------------------------------------------------------- +FV3 Increment for member 2: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 9 | cube sphere face size: C48 +eastward_wind | Min:-1.8014062913663103e+01 Max:+1.8516732485049666e+01 RMS:+7.3383694849572323e-01 +northward_wind | Min:-1.5579280119728031e+01 Max:+2.2762102719398591e+01 RMS:+7.2377717441299694e-01 +air_temperature | Min:-1.0570848751737598e+01 Max:+8.3564092475959129e+00 RMS:+3.1645038788954982e-01 +specific_humidity | Min:-5.2439197475218757e-03 Max:+8.2607880293262357e-03 RMS:+1.4211303446855155e-04 +cloud_liquid_ice | Min:-5.2671607196952148e-04 Max:+2.7498589550193714e-04 RMS:+3.2193226262458792e-06 +cloud_liquid_water | Min:-1.0851123947058787e-03 Max:+1.2045791096627974e-03 RMS:+1.0548571598067807e-05 +ozone_mass_mixing_ratio | Min:-3.2510682480215228e-06 Max:+3.3849184382668304e-06 RMS:+5.2379967545874409e-08 +air_pressure_thickness | Min:-1.0667572496458888e-05 Max:+2.0418810890987515e-05 RMS:+6.5901623607235396e-07 +layer_thickness | Min:-2.8377559817174188e+01 Max:+2.5490176089209854e+01 RMS:+6.7263739596740091e-01 +---------------------------------------------------------------------------------------------------- diff --git a/utils/fv3jedi/fv3jedi_fv3inc.h b/utils/fv3jedi/fv3jedi_fv3inc.h index 0b682ca7a..a0513ebb3 100644 --- a/utils/fv3jedi/fv3jedi_fv3inc.h +++ b/utils/fv3jedi/fv3jedi_fv3inc.h @@ -117,11 +117,13 @@ namespace gdasapp { // Testing output for inputs if ( nmem == 1 ) { - oops::Log::test() << "Background State: " << std::endl << xxBkg << std::endl; - oops::Log::test() << "JEDI Increment: " << std::endl << dxJEDI << std::endl; + oops::Log::test() << "Background State:" << std::endl << xxBkg << std::endl; + oops::Log::test() << "JEDI Increment:" << std::endl << dxJEDI << std::endl; } else { - oops::Log::test() << "Background State for member " << imem << ":" << std::endl << xxBkg << std::endl; - oops::Log::test() << "JEDI Increment for member " << imem << ":" << std::endl << dxJEDI << std::endl; + oops::Log::test() << "Background State for member " << imem << ":" << std::endl \ + << xxBkg << std::endl; + oops::Log::test() << "JEDI Increment for member " << imem << ":" << std::endl \ + << dxJEDI << std::endl; } // Increment conversion @@ -166,9 +168,10 @@ namespace gdasapp { // Test output for outputs if ( nmem == 1 ) { - oops::Log::test() << "FV3 Increment: " << std::endl << dxFV3 << std::endl; + oops::Log::test() << "FV3 Increment:" << std::endl << dxFV3 << std::endl; } else { - oops::Log::test() << "FV3 Increment for member " << imem << ":" << std::endl << dxFV3 << std::endl; + oops::Log::test() << "FV3 Increment for member " << imem << ":" << std::endl \ + << dxFV3 << std::endl; } // Write FV3 increment From 60b39d4835f4ccbc7c0cf066fb4638a2e52114b0 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Wed, 6 Nov 2024 21:47:27 +0000 Subject: [PATCH 23/60] Coding norms --- utils/fv3jedi/fv3jedi_fv3inc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/fv3jedi/fv3jedi_fv3inc.h b/utils/fv3jedi/fv3jedi_fv3inc.h index a0513ebb3..183e426aa 100644 --- a/utils/fv3jedi/fv3jedi_fv3inc.h +++ b/utils/fv3jedi/fv3jedi_fv3inc.h @@ -125,7 +125,7 @@ namespace gdasapp { oops::Log::test() << "JEDI Increment for member " << imem << ":" << std::endl \ << dxJEDI << std::endl; } - + // Increment conversion // --------------------------------------------------------------------------------- From e8465d2cfd79dc008e60411e4e73041fc7a77c74 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 7 Nov 2024 02:24:13 +0000 Subject: [PATCH 24/60] Fix recentering in GSI CI --- test/gw-ci/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index 1be21292b..1c0e111ac 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -10,7 +10,7 @@ function(add_task task_name test_prefix cycle pslot RUNTESTS PROJECT_SOURCE_DIR) elseif("${task_name}" STREQUAL "enkfgdas_epmn") set(subtask_names "enkfgdas_epos001 enkfgdas_epos002 enkfgdas_epos003 enkfgdas_epos004 enkfgdas_epos005 enkfgdas_epos006") elseif("${task_name}" STREQUAL "enkfgdas_ecmn") - set(subtask_names "enkfgdas_ecen000") + set(subtask_names "enkfgdas_ecen000 enkfgdas_ecen001 enkfgdas_ecen002") else() set(subtask_names ${task_name}) endif() @@ -112,7 +112,7 @@ if (WORKFLOW_TESTS) "enkfgdas_atmensanlsol" "enkfgdas_atmensanlfv3inc" "enkfgdas_atmensanlfinal" - "enkfgdas_ecmn" + "enkfgdas_ecen000" # No IAU yet, so only one task "enkfgdas_esfc" "enkfgdas_fcst" ) From 3126500d18acd5e20000dcde556155d154301291 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 7 Nov 2024 18:57:15 +0000 Subject: [PATCH 25/60] Update --- parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 | 2 + parm/atm/jcb-prototype_3dvar.yaml.j2 | 2 + parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 | 2 + parm/atm/jcb-prototype_lgetkf.yaml.j2 | 2 + .../atm/jcb-prototype_lgetkf_observer.yaml.j2 | 2 + parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 | 2 + parm/jcb-algorithms | 2 +- parm/jcb-gdas | 2 +- test/gw-ci/CMakeLists.txt | 101 +++++++++++++----- 9 files changed, 86 insertions(+), 31 deletions(-) diff --git a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 index 28d88e43b..e736bb7f9 100644 --- a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -4,7 +4,9 @@ algorithm: fv3jedi_fv3inc_variational # Testing things # -------------- +{% if atmosphere_do_testing %} test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/3dvar-fv3inc.ref test_output_filename: ./3dvar.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 +{% endif %} diff --git a/parm/atm/jcb-prototype_3dvar.yaml.j2 b/parm/atm/jcb-prototype_3dvar.yaml.j2 index 8e73a4d7e..ba5cea305 100644 --- a/parm/atm/jcb-prototype_3dvar.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar.yaml.j2 @@ -33,7 +33,9 @@ observations: # Testing things # -------------- +{% if atmosphere_do_testing %} test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/3dvar.ref test_output_filename: ./3dvar.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 +{% endif %} diff --git a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 index 96e1a08d5..c612eb57a 100644 --- a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -4,7 +4,9 @@ algorithm: fv3jedi_fv3inc_lgetkf # Testing things # -------------- +{% if atmosphere_do_testing %} test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/lgetkf-fv3inc.ref test_output_filename: ./3dvar.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 +{% endif %} diff --git a/parm/atm/jcb-prototype_lgetkf.yaml.j2 b/parm/atm/jcb-prototype_lgetkf.yaml.j2 index 98d2eb3f6..0b91ec276 100644 --- a/parm/atm/jcb-prototype_lgetkf.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf.yaml.j2 @@ -41,7 +41,9 @@ observations: # Testing things # -------------- +{% if atmosphere_do_testing %} test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/lgetkf.ref test_output_filename: ./lgetkf.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 +{% endif %} diff --git a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 index 852994156..5826eaf31 100644 --- a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 @@ -47,7 +47,9 @@ distribution_type: RoundRobin # Testing things # -------------- +{% if atmosphere_do_testing %} test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/lgetkf_observer.ref test_output_filename: ./lgetkf_observer.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 +{% endif %} diff --git a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 index 90d3e2423..4e67e2dc7 100644 --- a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 @@ -50,7 +50,9 @@ distribution_type: Halo # Testing things # -------------- +{% if atmosphere_do_testing %} test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/lgetkf_solver.ref test_output_filename: ./lgetkf_solver.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 +{% endif %} diff --git a/parm/jcb-algorithms b/parm/jcb-algorithms index 4c7fe34f4..d2fd31ee5 160000 --- a/parm/jcb-algorithms +++ b/parm/jcb-algorithms @@ -1 +1 @@ -Subproject commit 4c7fe34f460fc57cd1258c4899459d1fe0fa83fe +Subproject commit d2fd31ee52d5ac50ed9c26ce80a5789cbc91c257 diff --git a/parm/jcb-gdas b/parm/jcb-gdas index d8f2bf0ed..56fd8bd36 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit d8f2bf0edc0d0dfe33a5340d597e3990a6e2bf36 +Subproject commit 56fd8bd3636a6920be22e241e4bb3850cf1a9524 diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index ae4c1281f..a81f24a71 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -4,7 +4,11 @@ function(add_task task_name test_prefix cycle pslot RUNTESTS PROJECT_SOURCE_DIR) if("${task_name}" STREQUAL "gdas_fcst") set(subtask_names "gdas_fcst_seg0") elseif("${task_name}" STREQUAL "enkfgdas_fcst") - set(subtask_names "enkfgdas_fcst_mem001 enkfgdas_fcst_mem002") + if(NOT "${pslot}" STREQUAL "C48mx500_hybAOWCDA") + set(subtask_names "enkfgdas_fcst_mem001 enkfgdas_fcst_mem002") + else() + set(subtask_names "enkfgdas_fcst_mem001 enkfgdas_fcst_mem002 enkfgdas_fcst_mem003") + endif() elseif("${task_name}" STREQUAL "gdas_atmos_prod") set(subtask_names "gdas_atmos_prod_f000 gdas_atmos_prod_f001 gdas_atmos_prod_f002 gdas_atmos_prod_f003 gdas_atmos_prod_f004 gdas_atmos_prod_f005 gdas_atmos_prod_f006 gdas_atmos_prod_f007 gdas_atmos_prod_f008 gdas_atmos_prod_f009") elseif("${task_name}" STREQUAL "enkfgdas_epmn") @@ -25,7 +29,7 @@ function(add_task task_name test_prefix cycle pslot RUNTESTS PROJECT_SOURCE_DIR) endfunction() # Function that generates the 1/2 cycle forecast and DA tasks -function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR TASK_LIST) +function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR HALF_CYCLE_TASKS FULL_CYCLE_TASKS) set(test_prefix test_gdasapp_${pslot}) # Prepare the COMROOT and EXPDIR for the cycling ctests add_test(NAME ${test_prefix} @@ -44,27 +48,15 @@ function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR T list(GET DATES_LIST 0 HALF_CYCLE) list(GET DATES_LIST 1 FULL_CYCLE) - # Half cycle tasks common to all CI tests - add_task("gdas_stage_ic" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - add_task("gdas_fcst" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - - # Half cycle tasks unique to C96C48_hybatmaerosnowDA - if(pslot STREQUAL "C96C48_hybatmaerosnowDA") - add_task("gdas_aeroanlgenb" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - endif() + # Select the list of tasks to run for the half cycle + message(STATUS "Half-cycle tasks ${HALF_CYCLE_TASKS}") + foreach(task_name ${HALF_CYCLE_TASKS}) + add_task(${task_name} ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + endforeach() - # Half cycle tasks common to all CI tests except C48mx500_3DVarAOWCDA - if(NOT pslot STREQUAL "C48mx500_3DVarAOWCDA") - add_task("gdas_atmos_prod" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - add_task("enkfgdas_stage_ic" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - add_task("enkfgdas_fcst" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - add_task("enkfgdas_echgres" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - add_task("enkfgdas_epmn" ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) - endif() - # Select the list of tasks to run for the full cycle - message(STATUS "Tasks ${TASK_LIST}") - foreach(task_name ${TASK_LIST}) + message(STATUS "Full-cycle tasks ${FULL_CYCLE_TASKS}") + foreach(task_name ${FULL_CYCLE_TASKS}) add_task(${task_name} ${test_prefix} ${FULL_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) endforeach() endfunction() @@ -78,7 +70,15 @@ if (WORKFLOW_TESTS) # ------------------ set(pslot "C96C48_hybatmDA") set(YAML_PATH ${HOMEgfs}/ci/cases/pr/${pslot}.yaml) - set(TASK_LIST + set(HALF_CYCLE_TASKS + "gdas_stage_ic" + "gdas_fcst" + "gdas_atmos_prod" + "enkfgdas_stage_ic" + "enkfgdas_fcst" + "enkfgdas_echgres" + "enkfgdas_epmn") + set(FULL_CYCLE_TASKS "gdas_prep" "gdas_anal" "gdas_sfcanl" @@ -92,12 +92,20 @@ if (WORKFLOW_TESTS) "enkfgdas_fcst" ) - add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") # JEDI Atm DA C96/C48 # ------------------- set(pslot "C96C48_ufs_hybatmDA") set(YAML_PATH ${HOMEgfs}/ci/cases/pr/${pslot}.yaml) - set(TASK_LIST + set(HALF_CYCLE_TASKS + "gdas_stage_ic" + "gdas_fcst" + "gdas_atmos_prod" + "enkfgdas_stage_ic" + "enkfgdas_fcst" + "enkfgdas_echgres" + "enkfgdas_epmn") + set(FULL_CYCLE_TASKS "gdas_prep" "gdas_prepatmiodaobs" "gdas_atmanlinit" @@ -116,13 +124,22 @@ if (WORKFLOW_TESTS) "enkfgdas_esfc" "enkfgdas_fcst" ) - add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") # Aero-Land DA C96 # ---------------- set(pslot "C96C48_hybatmaerosnowDA") set(YAML_PATH ${HOMEgfs}/ci/cases/pr/${pslot}.yaml) - set(TASK_LIST + set(HALF_CYCLE_TASKS + "gdas_stage_ic" + "gdas_fcst" + "gdas_atmos_prod" + "gdas_aeroanlgenb" + "enkfgdas_stage_ic" + "enkfgdas_fcst" + "enkfgdas_echgres" + "enkfgdas_epmn") + set(FULL_CYCLE_TASKS "gdas_prep" "gdas_anal" "gdas_aeroanlinit" @@ -141,13 +158,16 @@ if (WORKFLOW_TESTS) "enkfgdas_esfc" "enkfgdas_fcst" ) - add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") # GSI Atm DA C48, JEDI Marine DA 500 # ---------------------------------- set(pslot "C48mx500_3DVarAOWCDA") set(YAML_PATH ${HOMEgfs}/ci/cases/pr/${pslot}.yaml) - set(TASK_LIST + set(HALF_CYCLE_TASKS + "gdas_stage_ic" + "gdas_fcst") + set(FULL_CYCLE_TASKS "gdas_prepoceanobs" "gdas_marinebmat" "gdas_marineanlinit" @@ -160,5 +180,28 @@ if (WORKFLOW_TESTS) "gdas_sfcanl" "gdas_fcst" ) - add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") + + # WCDA, low-res, ensemble da + # ------------- + set(pslot "C48mx500_hybAOWCDA") + set(letkf TRUE) + set(YAML_PATH ${HOMEgfs}/ci/cases/pr/C48mx500_hybAOWCDA.yaml) + set(HALF_CYCLE_TASKS + "gdas_stage_ic" + "gdas_fcst" + "enkfgdas_stage_ic" + "enkfgdas_fcst") + set(FULL_CYCLE_TASKS + "gdas_prepoceanobs" + "gdas_marineanlletkf" + # TODO(AFE) waiting until these are working for hybrid + # "gdas_marinebmat" + # "gdas_marineanlinit" + # "gdas_marineanlvar" + # "gdas_marineanlchkpt" + # "gdas_marineanlfinal" + ) + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") + set(letkf FALSE) endif() From 9e1686663dbb802a1b4db4644d3a1b8748d6480d Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 7 Nov 2024 18:58:23 +0000 Subject: [PATCH 26/60] Update GDAS hash --- parm/jcb-gdas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/jcb-gdas b/parm/jcb-gdas index 56fd8bd36..97bcb2828 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit 56fd8bd3636a6920be22e241e4bb3850cf1a9524 +Subproject commit 97bcb2828f33dd7206c6e1d55d122cb408ab28fb From 262d451832aae8fa864dd47cffd1ae5040b0dcf9 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 7 Nov 2024 19:28:39 +0000 Subject: [PATCH 27/60] Adding DO_CI_TESTING parameter to config.base --- parm/atm/jcb-base.yaml.j2 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index 7200fb993..0083c47bf 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -143,4 +143,8 @@ atmosphere_ensemble_history_prefix: "enkf{{GPREFIX}}" # Testing # ------- +{% if DO_CI_TESTING == 'YES' %} atmosphere_do_testing: true +{% else %} +atmosphere_do_testing: false +{% endif %} From 929f7c7f65541bda6593da889cb1ee78cefb30a9 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 8 Nov 2024 01:38:51 +0000 Subject: [PATCH 28/60] Update --- parm/atm/jcb-base.yaml.j2 | 18 +-- parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 | 2 - parm/atm/jcb-prototype_3dvar.yaml.j2 | 11 +- parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 | 2 - parm/atm/jcb-prototype_lgetkf.yaml.j2 | 9 -- .../atm/jcb-prototype_lgetkf_observer.yaml.j2 | 9 -- parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 | 9 -- parm/jcb-algorithms | 2 +- parm/jcb-gdas | 2 +- sorc/fv3-jedi | 2 +- sorc/saber | 2 +- test/gw-ci/3dvar.ref | 124 ------------------ 12 files changed, 14 insertions(+), 178 deletions(-) delete mode 100644 test/gw-ci/3dvar.ref diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index 0083c47bf..c728757f0 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -27,6 +27,15 @@ final_prints_frequency: PT3H number_of_outer_loops: 2 analysis_variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] +# Testing +# ------- + +{% if DO_JEDI_TESTING == 'YES' %} +do_testing: true +{% else %} +do_testing: false +{% endif %} + # Model things # ------------ # Geometry @@ -139,12 +148,3 @@ atmosphere_ensemble_increment_prefix: "./anl/mem%{member}%/atminc." atmosphere_posterior_output_gaussian: "./mem%{member}%/atmanl." atmosphere_ensemble_history_prefix: "enkf{{GPREFIX}}" - -# Testing -# ------- - -{% if DO_CI_TESTING == 'YES' %} -atmosphere_do_testing: true -{% else %} -atmosphere_do_testing: false -{% endif %} diff --git a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 index e736bb7f9..28d88e43b 100644 --- a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -4,9 +4,7 @@ algorithm: fv3jedi_fv3inc_variational # Testing things # -------------- -{% if atmosphere_do_testing %} test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/3dvar-fv3inc.ref test_output_filename: ./3dvar.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 -{% endif %} diff --git a/parm/atm/jcb-prototype_3dvar.yaml.j2 b/parm/atm/jcb-prototype_3dvar.yaml.j2 index ba5cea305..4330a87bd 100644 --- a/parm/atm/jcb-prototype_3dvar.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar.yaml.j2 @@ -29,13 +29,4 @@ observations: # - satwnd.viirs_npp # - scatwind_ascat_metop-a # - snowcvr -# - abi_g16 - -# Testing things -# -------------- -{% if atmosphere_do_testing %} -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/3dvar.ref -test_output_filename: ./3dvar.out -test_float_relative_tolerance: 1.0e-3 -test_float_absolute_tolerance: 1.0e-5 -{% endif %} +# - abi_g16 diff --git a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 index c612eb57a..96e1a08d5 100644 --- a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -4,9 +4,7 @@ algorithm: fv3jedi_fv3inc_lgetkf # Testing things # -------------- -{% if atmosphere_do_testing %} test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/lgetkf-fv3inc.ref test_output_filename: ./3dvar.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 -{% endif %} diff --git a/parm/atm/jcb-prototype_lgetkf.yaml.j2 b/parm/atm/jcb-prototype_lgetkf.yaml.j2 index 0b91ec276..2ed04df3b 100644 --- a/parm/atm/jcb-prototype_lgetkf.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf.yaml.j2 @@ -38,12 +38,3 @@ observations: - satwnd.viirs_npp # - scatwind_ascat_metop-a # - snowcvr - -# Testing things -# -------------- -{% if atmosphere_do_testing %} -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/lgetkf.ref -test_output_filename: ./lgetkf.out -test_float_relative_tolerance: 1.0e-3 -test_float_absolute_tolerance: 1.0e-5 -{% endif %} diff --git a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 index 5826eaf31..4b800ac8f 100644 --- a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 @@ -44,12 +44,3 @@ atmosphere_obsdataout_prefix: diag_lobs_ # Distribution type distribution_type: RoundRobin - -# Testing things -# -------------- -{% if atmosphere_do_testing %} -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/lgetkf_observer.ref -test_output_filename: ./lgetkf_observer.out -test_float_relative_tolerance: 1.0e-3 -test_float_absolute_tolerance: 1.0e-5 -{% endif %} diff --git a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 index 4e67e2dc7..b5123dde9 100644 --- a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 @@ -47,12 +47,3 @@ atmosphere_obsdataout_prefix: diag_solv_ # Distribution type distribution_type: Halo - -# Testing things -# -------------- -{% if atmosphere_do_testing %} -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/lgetkf_solver.ref -test_output_filename: ./lgetkf_solver.out -test_float_relative_tolerance: 1.0e-3 -test_float_absolute_tolerance: 1.0e-5 -{% endif %} diff --git a/parm/jcb-algorithms b/parm/jcb-algorithms index d2fd31ee5..9f7612ced 160000 --- a/parm/jcb-algorithms +++ b/parm/jcb-algorithms @@ -1 +1 @@ -Subproject commit d2fd31ee52d5ac50ed9c26ce80a5789cbc91c257 +Subproject commit 9f7612ceda5a814a9715dc13ba99d6dec9ef40d2 diff --git a/parm/jcb-gdas b/parm/jcb-gdas index 97bcb2828..25c5b7f66 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit 97bcb2828f33dd7206c6e1d55d122cb408ab28fb +Subproject commit 25c5b7f663e909378d0b9d5a36830d9a257a03f0 diff --git a/sorc/fv3-jedi b/sorc/fv3-jedi index 88279a632..96dff779e 160000 --- a/sorc/fv3-jedi +++ b/sorc/fv3-jedi @@ -1 +1 @@ -Subproject commit 88279a63280c23d6b8974991a8c89380afaf5db7 +Subproject commit 96dff779e56eea62a1ed4112aab707d3e7bc7693 diff --git a/sorc/saber b/sorc/saber index 1f23a3665..5c8998282 160000 --- a/sorc/saber +++ b/sorc/saber @@ -1 +1 @@ -Subproject commit 1f23a36657f6d10b770348de0f5454e01d377105 +Subproject commit 5c89982823f19633c4b2d8d0d95f064203fcd060 diff --git a/test/gw-ci/3dvar.ref b/test/gw-ci/3dvar.ref deleted file mode 100644 index 009442800..000000000 --- a/test/gw-ci/3dvar.ref +++ /dev/null @@ -1,124 +0,0 @@ -CostJb : Nonlinear Jb = 0.0000000000000000e+00 -CostJo : Nonlinear Jo(Aircraft) = 6.0590797038184456e+05, nobs = 504555, Jo/n = 1.2008759607611550e+00, err = 2.2437239435917040e+00 -CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 1.5949936485170507e+04, nobs = 26314, Jo/n = 6.0613880387514274e-01, err = 1.8277692518568445e+00 -CostJo : Nonlinear Jo(ATMS N20) = 4.8387730216828917e+04, nobs = 156588, Jo/n = 3.0901301643056250e-01, err = 5.2594000470964266e+00 -CostJo : Nonlinear Jo(surface_ps) = 2.6308196193705146e+04, nobs = 107322, Jo/n = 2.4513330159431565e-01, err = 5.9305643428180190e+02 -CostJo : Nonlinear Jo(gnssrobndnbam) = 6.1501893265653157e+05, nobs = 473864, Jo/n = 1.2978806844506685e+00, err = 3.2933330370258057e-04 -CostJo : Nonlinear Jo(ompsnp_npp) = 2.1269336098572853e+03, nobs = 3087, Jo/n = 6.8899695816562534e-01, err = 2.4001367423170068e+00 -CostJo : Nonlinear Jo(ompstc_npp) = 3.3784707883660294e+03, nobs = 3696, Jo/n = 9.1408841676570063e-01, err = 6.0000000000000000e+00 -CostJo : Nonlinear Jo(satwind_goes-16) = 6.9383960384868606e+03, nobs = 193154, Jo/n = 3.5921575729660586e-02, err = 1.1892541771722902e+01 -CostFunction: Nonlinear J = 1.3240165663707908e+06 -DRPCGMinimizer: reduction in residual norm = 2.8257552285466486e-01 -CostFunction::addIncrement: Analysis: ----------------------------------------------------------------------------------------------------- -State print | number of fields = 22 | cube sphere face size: C96 -eastward_wind | Min:-8.7593299865709369e+01 Max:+1.1421906280506562e+02 RMS:+1.7446423933063677e+01 -northward_wind | Min:-9.0978759765616502e+01 Max:+8.9302459716826505e+01 RMS:+9.8048456519093889e+00 -air_temperature | Min:+1.7290483093261747e+02 Max:+3.1017132568363934e+02 RMS:+2.5022377762999326e+02 -air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7837935791015625e+03 RMS:+9.5699700087025974e+02 -surface_pressure | Min:+5.1309082031249884e+04 Max:+1.0433011718749903e+05 RMS:+9.8914626690610530e+04 -specific_humidity | Min:+9.9999986088507587e-10 Max:+2.1381899714470930e-02 RMS:+5.0230919069543158e-03 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+5.7223520707321528e-04 RMS:+9.4296924830162644e-06 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.6279185656660684e-03 RMS:+3.7809568286304757e-05 -ozone_mass_mixing_ratio | Min:+3.8859406171368113e-10 Max:+1.7313133576612057e-05 RMS:+4.4663053755671636e-06 -surface_geopotential_height | Min:-2.9894643783569336e+01 Max:+5.3870561523437500e+03 RMS:+6.4442219321892003e+02 -slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5312859958249614e-01 -sheleg | Min:+0.0000000000000000e+00 Max:+2.6371386718750000e+02 RMS:+2.2054824502787593e+01 -sea_surface_temperature | Min:+2.1746235656738281e+02 Max:+3.2932260131835938e+02 RMS:+2.8737006087270038e+02 -vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+5.8667091445155686e+00 -stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.3549806522511076e+00 -vfrac | Min:+0.0000000000000000e+00 Max:+9.8026573181152344e+01 RMS:+1.9275201636346665e+01 -stc | Min:+2.0000000000000000e+02 Max:+3.2045886230468750e+02 RMS:+2.8806776004459306e+02 -soilMoistureVolumetric | Min:+2.1923782303929329e-02 Max:+1.0000000000000000e+00 RMS:+8.6145451167852249e-01 -totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.2327475547790527e+00 RMS:+1.5878111306662487e-01 -surface_eastward_wind | Min:-1.8106302261352539e+01 Max:+2.0922132492065430e+01 RMS:+5.2142386237867280e+00 -surface_northward_wind | Min:-2.0834318161010742e+01 Max:+1.9025196075439453e+01 RMS:+4.8322666159970842e+00 -f10m | Min:+9.3901658058166504e-01 Max:+1.0698120594024658e+00 RMS:+9.9592865511053685e-01 ----------------------------------------------------------------------------------------------------- - - - -Obs bias coefficients: ---------------------------------------------------------------- - constant: Min= -0.8381630182271099, Max= 0.8200770020481498, Norm= 2.2810923110282308 - lapseRate_order_2: Min= -0.2969009876260876, Max= 0.3889850080012900, Norm= 0.7014865852485521 - lapseRate: Min= -0.5954660177230082, Max= 1.6232719421370738, Norm= 2.1316868531033393 - emissivityJacobian: Min= -0.0097089996561411, Max= 8.3582897185072884, Norm= 10.2580018725806656 -sensorScanAngle_order_4: Min= -3.4036920070662289, Max= 0.8113600015621025, Norm= 4.8886281019448123 -sensorScanAngle_order_3: Min= -0.7697319984440882, Max= 0.3303030133246191, Norm= 0.9762309707883376 -sensorScanAngle_order_2: Min= -0.5401099920283099, Max= 2.2389800548543319, Norm= 2.4920946301939773 - sensorScanAngle: Min= -0.1069049984217430, Max= 0.4472059905526856, Norm= 0.8480380113023768 ---------------------------------------------------------------- - - - - - - -CostJb : Nonlinear Jb = 0.0000000000001377 -CostJo : Nonlinear Jo(Aircraft) = 605907.9700265740975738, nobs = 504555, Jo/n = 1.2008759600570287, err = 2.2437239435917040 -CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 15949.9364848986988363, nobs = 26314, Jo/n = 0.6061388038648133, err = 1.8277692518568445 -CostJo : Nonlinear Jo(ATMS N20) = 48387.7302149347669911, nobs = 156588, Jo/n = 0.3090130164184661, err = 5.2594000470964266 -CostJo : Nonlinear Jo(surface_ps) = 26308.1961930343022686, nobs = 107322, Jo/n = 0.2451333015880649, err = 593.0564342818018986 -CostJo : Nonlinear Jo(gnssrobndnbam) = 615018.9326265617273748, nobs = 473864, Jo/n = 1.2978806843874229, err = 0.0003293333037026 -CostJo : Nonlinear Jo(ompsnp_npp) = 1931.1242066182112467, nobs = 3087, Jo/n = 0.6255666364166541, err = 2.4001367423170068 -CostJo : Nonlinear Jo(ompstc_npp) = 1175.2354163386241908, nobs = 3696, Jo/n = 0.3179749503080693, err = 6.0000000000000000 -CostJo : Nonlinear Jo(satwind_goes-16) = 6938.3960383742578415, nobs = 193154, Jo/n = 0.0359215757290776, err = 11.8925417717229021 -CostFunction: Nonlinear J = 1321617.5212073344737291 -DRPCGMinimizer: reduction in residual norm = 0.8446076379600224 -CostFunction::addIncrement: Analysis: ----------------------------------------------------------------------------------------------------- -State print | number of fields = 22 | cube sphere face size: C96 -eastward_wind | Min:-8.7593299865597274e+01 Max:+1.1421906280413639e+02 RMS:+1.7446423933041416e+01 -northward_wind | Min:-9.0978759765544794e+01 Max:+8.9302459717076374e+01 RMS:+9.8048456518642482e+00 -air_temperature | Min:+1.7290483093261994e+02 Max:+3.1017132568402411e+02 RMS:+2.5022377762999653e+02 -air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7837935791015625e+03 RMS:+9.5699700087025974e+02 -surface_pressure | Min:+5.1309082031248872e+04 Max:+1.0433011718749085e+05 RMS:+9.8914626690605888e+04 -specific_humidity | Min:+9.9999986293294490e-10 Max:+2.1381899714479527e-02 RMS:+5.0230919069522385e-03 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+5.7223520707173773e-04 RMS:+9.4296924828094189e-06 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.6279185658369072e-03 RMS:+3.7809568286035265e-05 -ozone_mass_mixing_ratio | Min:+0.0000000000000000e+00 Max:+1.7393152519974760e-05 RMS:+4.4687802775349384e-06 -surface_geopotential_height | Min:-2.9894643783569336e+01 Max:+5.3870561523437500e+03 RMS:+6.4442219321892003e+02 -slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5312859958249614e-01 -sheleg | Min:+0.0000000000000000e+00 Max:+2.6371386718750000e+02 RMS:+2.2054824502787593e+01 -sea_surface_temperature | Min:+2.1746235656738281e+02 Max:+3.2932260131835938e+02 RMS:+2.8737006087270038e+02 -vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+5.8667091445155686e+00 -stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.3549806522511076e+00 -vfrac | Min:+0.0000000000000000e+00 Max:+9.8026573181152344e+01 RMS:+1.9275201636346665e+01 -stc | Min:+2.0000000000000000e+02 Max:+3.2045886230468750e+02 RMS:+2.8806776004459306e+02 -soilMoistureVolumetric | Min:+2.1923782303929329e-02 Max:+1.0000000000000000e+00 RMS:+8.6145451167852249e-01 -totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.2327475547790527e+00 RMS:+1.5878111306662487e-01 -surface_eastward_wind | Min:-1.8106302261352539e+01 Max:+2.0922132492065430e+01 RMS:+5.2142386237867280e+00 -surface_northward_wind | Min:-2.0834318161010742e+01 Max:+1.9025196075439453e+01 RMS:+4.8322666159970842e+00 -f10m | Min:+9.3901658058166504e-01 Max:+1.0698120594024658e+00 RMS:+9.9592865511053685e-01 ----------------------------------------------------------------------------------------------------- - - - -Obs bias coefficients: ---------------------------------------------------------------- - constant: Min= -0.8381630182312128, Max= 0.8200770020452602, Norm= 2.2810923110345662 - lapseRate_order_2: Min= -0.2969009876342316, Max= 0.3889850080009739, Norm= 0.7014865852476552 - lapseRate: Min= -0.5954660177223734, Max= 1.6232719421235957, Norm= 2.1316868530892328 - emissivityJacobian: Min= -0.0097089996561434, Max= 8.3582897174897202, Norm= 10.2580018711068170 -sensorScanAngle_order_4: Min= -3.4036920070781176, Max= 0.8113600015458797, Norm= 4.8886281019598847 -sensorScanAngle_order_3: Min= -0.7697319984481772, Max= 0.3303030133236201, Norm= 0.9762309707916220 -sensorScanAngle_order_2: Min= -0.5401099920369742, Max= 2.2389800548457712, Norm= 2.4920946301898259 - sensorScanAngle: Min= -0.1069049984223674, Max= 0.4472059905508586, Norm= 0.8480380112990616 ---------------------------------------------------------------- - - - - - - -CostJb : Nonlinear Jb = 0.0000000000008880 -CostJo : Nonlinear Jo(Aircraft) = 605907.9670297848060727, nobs = 504555, Jo/n = 1.2008759541175587, err = 2.2437239435917040 -CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 15949.9364826060973428, nobs = 26314, Jo/n = 0.6061388037776886, err = 1.8277692518568445 -CostJo : Nonlinear Jo(ATMS N20) = 48387.7301996417445480, nobs = 156588, Jo/n = 0.3090130163208020, err = 5.2594000470964266 -CostJo : Nonlinear Jo(surface_ps) = 26308.1961873747168283, nobs = 107322, Jo/n = 0.2451333015353303, err = 593.0564342818018986 -CostJo : Nonlinear Jo(gnssrobndnbam) = 615018.9323734971694648, nobs = 473864, Jo/n = 1.2978806838533781, err = 0.0003293333037026 -CostJo : Nonlinear Jo(ompsnp_npp) = 1105.2453930547394521, nobs = 3087, Jo/n = 0.3580321972966438, err = 2.4001367423170068 -CostJo : Nonlinear Jo(ompstc_npp) = 842.3521445536282499, nobs = 3696, Jo/n = 0.2279091300199211, err = 6.0000000000000000 -CostJo : Nonlinear Jo(satwind_goes-16) = 6938.3960374245170897, nobs = 193154, Jo/n = 0.0359215757241606, err = 11.8925417717229021 -CostFunction: Nonlinear J = 1320458.7558479374274611 From fd8779233b3913a7202e6fb01b37aea6b3be8959 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 8 Nov 2024 01:41:52 +0000 Subject: [PATCH 29/60] Revert hashes --- sorc/fv3-jedi | 2 +- sorc/saber | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sorc/fv3-jedi b/sorc/fv3-jedi index 96dff779e..88279a632 160000 --- a/sorc/fv3-jedi +++ b/sorc/fv3-jedi @@ -1 +1 @@ -Subproject commit 96dff779e56eea62a1ed4112aab707d3e7bc7693 +Subproject commit 88279a63280c23d6b8974991a8c89380afaf5db7 diff --git a/sorc/saber b/sorc/saber index 5c8998282..1f23a3665 160000 --- a/sorc/saber +++ b/sorc/saber @@ -1 +1 @@ -Subproject commit 5c89982823f19633c4b2d8d0d95f064203fcd060 +Subproject commit 1f23a36657f6d10b770348de0f5454e01d377105 From 1e7c3626e96aea1e1eb5ea8203c805be7fd24250 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 8 Nov 2024 01:47:05 +0000 Subject: [PATCH 30/60] Update --- test/atm/global-workflow/config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/test/atm/global-workflow/config.yaml b/test/atm/global-workflow/config.yaml index 1c3a79a75..a0d6b506f 100644 --- a/test/atm/global-workflow/config.yaml +++ b/test/atm/global-workflow/config.yaml @@ -8,6 +8,7 @@ base: DUMPDIR: "@dumpdir@" STMP: "@bindir@/test/atm/global-workflow/testrun" PTMP: "@bindir@/test/atm/global-workflow/testrun" + DO_JEDI_TESTING: "YES" atmanl: JCB_ALGO_YAML_VAR: "@srcdir@/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2" From c702c47032aa15f3b3ae387b2466e2e0c18dc6b4 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 8 Nov 2024 01:52:15 +0000 Subject: [PATCH 31/60] Accidentally deleted reference file --- test/gw-ci/3dvar.ref | 124 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 test/gw-ci/3dvar.ref diff --git a/test/gw-ci/3dvar.ref b/test/gw-ci/3dvar.ref new file mode 100644 index 000000000..009442800 --- /dev/null +++ b/test/gw-ci/3dvar.ref @@ -0,0 +1,124 @@ +CostJb : Nonlinear Jb = 0.0000000000000000e+00 +CostJo : Nonlinear Jo(Aircraft) = 6.0590797038184456e+05, nobs = 504555, Jo/n = 1.2008759607611550e+00, err = 2.2437239435917040e+00 +CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 1.5949936485170507e+04, nobs = 26314, Jo/n = 6.0613880387514274e-01, err = 1.8277692518568445e+00 +CostJo : Nonlinear Jo(ATMS N20) = 4.8387730216828917e+04, nobs = 156588, Jo/n = 3.0901301643056250e-01, err = 5.2594000470964266e+00 +CostJo : Nonlinear Jo(surface_ps) = 2.6308196193705146e+04, nobs = 107322, Jo/n = 2.4513330159431565e-01, err = 5.9305643428180190e+02 +CostJo : Nonlinear Jo(gnssrobndnbam) = 6.1501893265653157e+05, nobs = 473864, Jo/n = 1.2978806844506685e+00, err = 3.2933330370258057e-04 +CostJo : Nonlinear Jo(ompsnp_npp) = 2.1269336098572853e+03, nobs = 3087, Jo/n = 6.8899695816562534e-01, err = 2.4001367423170068e+00 +CostJo : Nonlinear Jo(ompstc_npp) = 3.3784707883660294e+03, nobs = 3696, Jo/n = 9.1408841676570063e-01, err = 6.0000000000000000e+00 +CostJo : Nonlinear Jo(satwind_goes-16) = 6.9383960384868606e+03, nobs = 193154, Jo/n = 3.5921575729660586e-02, err = 1.1892541771722902e+01 +CostFunction: Nonlinear J = 1.3240165663707908e+06 +DRPCGMinimizer: reduction in residual norm = 2.8257552285466486e-01 +CostFunction::addIncrement: Analysis: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 22 | cube sphere face size: C96 +eastward_wind | Min:-8.7593299865709369e+01 Max:+1.1421906280506562e+02 RMS:+1.7446423933063677e+01 +northward_wind | Min:-9.0978759765616502e+01 Max:+8.9302459716826505e+01 RMS:+9.8048456519093889e+00 +air_temperature | Min:+1.7290483093261747e+02 Max:+3.1017132568363934e+02 RMS:+2.5022377762999326e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7837935791015625e+03 RMS:+9.5699700087025974e+02 +surface_pressure | Min:+5.1309082031249884e+04 Max:+1.0433011718749903e+05 RMS:+9.8914626690610530e+04 +specific_humidity | Min:+9.9999986088507587e-10 Max:+2.1381899714470930e-02 RMS:+5.0230919069543158e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+5.7223520707321528e-04 RMS:+9.4296924830162644e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.6279185656660684e-03 RMS:+3.7809568286304757e-05 +ozone_mass_mixing_ratio | Min:+3.8859406171368113e-10 Max:+1.7313133576612057e-05 RMS:+4.4663053755671636e-06 +surface_geopotential_height | Min:-2.9894643783569336e+01 Max:+5.3870561523437500e+03 RMS:+6.4442219321892003e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5312859958249614e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.6371386718750000e+02 RMS:+2.2054824502787593e+01 +sea_surface_temperature | Min:+2.1746235656738281e+02 Max:+3.2932260131835938e+02 RMS:+2.8737006087270038e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+5.8667091445155686e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.3549806522511076e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8026573181152344e+01 RMS:+1.9275201636346665e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.2045886230468750e+02 RMS:+2.8806776004459306e+02 +soilMoistureVolumetric | Min:+2.1923782303929329e-02 Max:+1.0000000000000000e+00 RMS:+8.6145451167852249e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.2327475547790527e+00 RMS:+1.5878111306662487e-01 +surface_eastward_wind | Min:-1.8106302261352539e+01 Max:+2.0922132492065430e+01 RMS:+5.2142386237867280e+00 +surface_northward_wind | Min:-2.0834318161010742e+01 Max:+1.9025196075439453e+01 RMS:+4.8322666159970842e+00 +f10m | Min:+9.3901658058166504e-01 Max:+1.0698120594024658e+00 RMS:+9.9592865511053685e-01 +---------------------------------------------------------------------------------------------------- + + + +Obs bias coefficients: +--------------------------------------------------------------- + constant: Min= -0.8381630182271099, Max= 0.8200770020481498, Norm= 2.2810923110282308 + lapseRate_order_2: Min= -0.2969009876260876, Max= 0.3889850080012900, Norm= 0.7014865852485521 + lapseRate: Min= -0.5954660177230082, Max= 1.6232719421370738, Norm= 2.1316868531033393 + emissivityJacobian: Min= -0.0097089996561411, Max= 8.3582897185072884, Norm= 10.2580018725806656 +sensorScanAngle_order_4: Min= -3.4036920070662289, Max= 0.8113600015621025, Norm= 4.8886281019448123 +sensorScanAngle_order_3: Min= -0.7697319984440882, Max= 0.3303030133246191, Norm= 0.9762309707883376 +sensorScanAngle_order_2: Min= -0.5401099920283099, Max= 2.2389800548543319, Norm= 2.4920946301939773 + sensorScanAngle: Min= -0.1069049984217430, Max= 0.4472059905526856, Norm= 0.8480380113023768 +--------------------------------------------------------------- + + + + + + +CostJb : Nonlinear Jb = 0.0000000000001377 +CostJo : Nonlinear Jo(Aircraft) = 605907.9700265740975738, nobs = 504555, Jo/n = 1.2008759600570287, err = 2.2437239435917040 +CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 15949.9364848986988363, nobs = 26314, Jo/n = 0.6061388038648133, err = 1.8277692518568445 +CostJo : Nonlinear Jo(ATMS N20) = 48387.7302149347669911, nobs = 156588, Jo/n = 0.3090130164184661, err = 5.2594000470964266 +CostJo : Nonlinear Jo(surface_ps) = 26308.1961930343022686, nobs = 107322, Jo/n = 0.2451333015880649, err = 593.0564342818018986 +CostJo : Nonlinear Jo(gnssrobndnbam) = 615018.9326265617273748, nobs = 473864, Jo/n = 1.2978806843874229, err = 0.0003293333037026 +CostJo : Nonlinear Jo(ompsnp_npp) = 1931.1242066182112467, nobs = 3087, Jo/n = 0.6255666364166541, err = 2.4001367423170068 +CostJo : Nonlinear Jo(ompstc_npp) = 1175.2354163386241908, nobs = 3696, Jo/n = 0.3179749503080693, err = 6.0000000000000000 +CostJo : Nonlinear Jo(satwind_goes-16) = 6938.3960383742578415, nobs = 193154, Jo/n = 0.0359215757290776, err = 11.8925417717229021 +CostFunction: Nonlinear J = 1321617.5212073344737291 +DRPCGMinimizer: reduction in residual norm = 0.8446076379600224 +CostFunction::addIncrement: Analysis: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 22 | cube sphere face size: C96 +eastward_wind | Min:-8.7593299865597274e+01 Max:+1.1421906280413639e+02 RMS:+1.7446423933041416e+01 +northward_wind | Min:-9.0978759765544794e+01 Max:+8.9302459717076374e+01 RMS:+9.8048456518642482e+00 +air_temperature | Min:+1.7290483093261994e+02 Max:+3.1017132568402411e+02 RMS:+2.5022377762999653e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7837935791015625e+03 RMS:+9.5699700087025974e+02 +surface_pressure | Min:+5.1309082031248872e+04 Max:+1.0433011718749085e+05 RMS:+9.8914626690605888e+04 +specific_humidity | Min:+9.9999986293294490e-10 Max:+2.1381899714479527e-02 RMS:+5.0230919069522385e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+5.7223520707173773e-04 RMS:+9.4296924828094189e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.6279185658369072e-03 RMS:+3.7809568286035265e-05 +ozone_mass_mixing_ratio | Min:+0.0000000000000000e+00 Max:+1.7393152519974760e-05 RMS:+4.4687802775349384e-06 +surface_geopotential_height | Min:-2.9894643783569336e+01 Max:+5.3870561523437500e+03 RMS:+6.4442219321892003e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5312859958249614e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.6371386718750000e+02 RMS:+2.2054824502787593e+01 +sea_surface_temperature | Min:+2.1746235656738281e+02 Max:+3.2932260131835938e+02 RMS:+2.8737006087270038e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+5.8667091445155686e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.3549806522511076e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8026573181152344e+01 RMS:+1.9275201636346665e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.2045886230468750e+02 RMS:+2.8806776004459306e+02 +soilMoistureVolumetric | Min:+2.1923782303929329e-02 Max:+1.0000000000000000e+00 RMS:+8.6145451167852249e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.2327475547790527e+00 RMS:+1.5878111306662487e-01 +surface_eastward_wind | Min:-1.8106302261352539e+01 Max:+2.0922132492065430e+01 RMS:+5.2142386237867280e+00 +surface_northward_wind | Min:-2.0834318161010742e+01 Max:+1.9025196075439453e+01 RMS:+4.8322666159970842e+00 +f10m | Min:+9.3901658058166504e-01 Max:+1.0698120594024658e+00 RMS:+9.9592865511053685e-01 +---------------------------------------------------------------------------------------------------- + + + +Obs bias coefficients: +--------------------------------------------------------------- + constant: Min= -0.8381630182312128, Max= 0.8200770020452602, Norm= 2.2810923110345662 + lapseRate_order_2: Min= -0.2969009876342316, Max= 0.3889850080009739, Norm= 0.7014865852476552 + lapseRate: Min= -0.5954660177223734, Max= 1.6232719421235957, Norm= 2.1316868530892328 + emissivityJacobian: Min= -0.0097089996561434, Max= 8.3582897174897202, Norm= 10.2580018711068170 +sensorScanAngle_order_4: Min= -3.4036920070781176, Max= 0.8113600015458797, Norm= 4.8886281019598847 +sensorScanAngle_order_3: Min= -0.7697319984481772, Max= 0.3303030133236201, Norm= 0.9762309707916220 +sensorScanAngle_order_2: Min= -0.5401099920369742, Max= 2.2389800548457712, Norm= 2.4920946301898259 + sensorScanAngle: Min= -0.1069049984223674, Max= 0.4472059905508586, Norm= 0.8480380112990616 +--------------------------------------------------------------- + + + + + + +CostJb : Nonlinear Jb = 0.0000000000008880 +CostJo : Nonlinear Jo(Aircraft) = 605907.9670297848060727, nobs = 504555, Jo/n = 1.2008759541175587, err = 2.2437239435917040 +CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 15949.9364826060973428, nobs = 26314, Jo/n = 0.6061388037776886, err = 1.8277692518568445 +CostJo : Nonlinear Jo(ATMS N20) = 48387.7301996417445480, nobs = 156588, Jo/n = 0.3090130163208020, err = 5.2594000470964266 +CostJo : Nonlinear Jo(surface_ps) = 26308.1961873747168283, nobs = 107322, Jo/n = 0.2451333015353303, err = 593.0564342818018986 +CostJo : Nonlinear Jo(gnssrobndnbam) = 615018.9323734971694648, nobs = 473864, Jo/n = 1.2978806838533781, err = 0.0003293333037026 +CostJo : Nonlinear Jo(ompsnp_npp) = 1105.2453930547394521, nobs = 3087, Jo/n = 0.3580321972966438, err = 2.4001367423170068 +CostJo : Nonlinear Jo(ompstc_npp) = 842.3521445536282499, nobs = 3696, Jo/n = 0.2279091300199211, err = 6.0000000000000000 +CostJo : Nonlinear Jo(satwind_goes-16) = 6938.3960374245170897, nobs = 193154, Jo/n = 0.0359215757241606, err = 11.8925417717229021 +CostFunction: Nonlinear J = 1320458.7558479374274611 From 256b356442d978e4858ebd2b96cac20c99421a71 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 8 Nov 2024 03:04:51 +0000 Subject: [PATCH 32/60] Debug --- parm/atm/jcb-base.yaml.j2 | 6 +----- test/atm/global-workflow/config.yaml | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index c728757f0..42b44d4f2 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -30,11 +30,7 @@ analysis_variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] # Testing # ------- -{% if DO_JEDI_TESTING == 'YES' %} -do_testing: true -{% else %} -do_testing: false -{% endif %} +do_testing: {{ DO_JEDI_TESTING | default(false, true) }} # Model things # ------------ diff --git a/test/atm/global-workflow/config.yaml b/test/atm/global-workflow/config.yaml index a0d6b506f..36c0e5005 100644 --- a/test/atm/global-workflow/config.yaml +++ b/test/atm/global-workflow/config.yaml @@ -8,7 +8,7 @@ base: DUMPDIR: "@dumpdir@" STMP: "@bindir@/test/atm/global-workflow/testrun" PTMP: "@bindir@/test/atm/global-workflow/testrun" - DO_JEDI_TESTING: "YES" + DO_JEDI_TESTING: "\"YES\"" atmanl: JCB_ALGO_YAML_VAR: "@srcdir@/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2" From c2dc473c462ec494de1899a30c3f1994201a11a7 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 8 Nov 2024 03:08:25 +0000 Subject: [PATCH 33/60] Update --- test/atm/global-workflow/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/atm/global-workflow/config.yaml b/test/atm/global-workflow/config.yaml index 36c0e5005..a0d6b506f 100644 --- a/test/atm/global-workflow/config.yaml +++ b/test/atm/global-workflow/config.yaml @@ -8,7 +8,7 @@ base: DUMPDIR: "@dumpdir@" STMP: "@bindir@/test/atm/global-workflow/testrun" PTMP: "@bindir@/test/atm/global-workflow/testrun" - DO_JEDI_TESTING: "\"YES\"" + DO_JEDI_TESTING: "YES" atmanl: JCB_ALGO_YAML_VAR: "@srcdir@/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2" From 84b80e5244e10318a95a45ad820763e9ed97e068 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 8 Nov 2024 12:26:39 +0000 Subject: [PATCH 34/60] Quick change --- 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 a81f24a71..9ae197fda 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -186,7 +186,7 @@ if (WORKFLOW_TESTS) # ------------- set(pslot "C48mx500_hybAOWCDA") set(letkf TRUE) - set(YAML_PATH ${HOMEgfs}/ci/cases/pr/C48mx500_hybAOWCDA.yaml) + set(YAML_PATH ${HOMEgfs}/ci/cases/pr/${pslot}.yaml) set(HALF_CYCLE_TASKS "gdas_stage_ic" "gdas_fcst" From ad32cd154a396271aedd3a57a58d68cde297eaac Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 8 Nov 2024 13:59:31 +0000 Subject: [PATCH 35/60] Add GFS 17 test back --- parm/jcb-algorithms | 2 +- parm/jcb-gdas | 2 +- test/gw-ci/CMakeLists.txt | 29 +++++++++++++++++++++++++++-- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/parm/jcb-algorithms b/parm/jcb-algorithms index 9f7612ced..7b074df5c 160000 --- a/parm/jcb-algorithms +++ b/parm/jcb-algorithms @@ -1 +1 @@ -Subproject commit 9f7612ceda5a814a9715dc13ba99d6dec9ef40d2 +Subproject commit 7b074df5ce059a5ce6c8d9bc11441e0646908610 diff --git a/parm/jcb-gdas b/parm/jcb-gdas index 25c5b7f66..6d3a5bd28 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit 25c5b7f663e909378d0b9d5a36830d9a257a03f0 +Subproject commit 6d3a5bd28b7faed42d067e77dfbcabd92bb57bbf diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index 9ae197fda..8171d6ec5 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -180,7 +180,7 @@ if (WORKFLOW_TESTS) "gdas_sfcanl" "gdas_fcst" ) - add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") # WCDA, low-res, ensemble da # ------------- @@ -203,5 +203,30 @@ if (WORKFLOW_TESTS) # "gdas_marineanlfinal" ) add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") - set(letkf FALSE) + set(letkf FALSE) + + # GFSv17, 3DVAR prototype + # ----------------------- + option(TEST_GFS17 "Enable the GFSv17 prototype CI tests" OFF) + if(TEST_GFS17) + set(pslot "GFSv17-3DVAR-C384mx025") + set(YAML_PATH ${HOMEgfs}/ci/cases/gfsv17/${pslot}.yaml) + set(HALF_CYCLE_TASKS + "gdas_stage_ic" + "gdas_fcst") + set(FULL_CYCLE_TASKS + "gdas_prepoceanobs" + "gdas_marinebmat" + "gdas_marineanlinit" + "gdas_marineanlvar" + "gdas_marineanlchkpt" + "gdas_marineanlfinal" + "gdas_ocnanalvrfy" + "gdas_prep" + "gdas_anal" + "gdas_sfcanl" + "gdas_fcst" + ) + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") + endif() endif() From ea4a39fb78f117a1335e18e2672a8899cc7e6531 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 14 Nov 2024 18:53:49 +0000 Subject: [PATCH 36/60] Update jcb hashes --- parm/jcb-algorithms | 2 +- parm/jcb-gdas | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/parm/jcb-algorithms b/parm/jcb-algorithms index 7b074df5c..0f4423943 160000 --- a/parm/jcb-algorithms +++ b/parm/jcb-algorithms @@ -1 +1 @@ -Subproject commit 7b074df5ce059a5ce6c8d9bc11441e0646908610 +Subproject commit 0f4423943e1c2bdd4b9d0a4218e30df83c5e2c66 diff --git a/parm/jcb-gdas b/parm/jcb-gdas index 6d3a5bd28..7ada6b022 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit 6d3a5bd28b7faed42d067e77dfbcabd92bb57bbf +Subproject commit 7ada6b022890540dba39d2326d730e2f707d9da0 From e1c16f8bd34730bc23d11716f48c67ea66749738 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 14 Nov 2024 19:15:55 +0000 Subject: [PATCH 37/60] Update --- parm/jcb-gdas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/jcb-gdas b/parm/jcb-gdas index 7ada6b022..48273dec9 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit 7ada6b022890540dba39d2326d730e2f707d9da0 +Subproject commit 48273dec91a14210b3a6f97a9f7400e394bd1ece From 100a585c84b7061e9b559d68094b71ef01901153 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Tue, 19 Nov 2024 16:32:28 +0000 Subject: [PATCH 38/60] Use ecbuild_add_test instead of add_test --- test/gw-ci/CMakeLists.txt | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index 8171d6ec5..68dff5779 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -22,20 +22,24 @@ function(add_task task_name test_prefix cycle pslot RUNTESTS PROJECT_SOURCE_DIR) # Add Task set(test_name ${test_prefix}_${task_name}_${cycle}) message(STATUS "preparing ${subtask_names} for ${test_prefix} ctest") - add_test(NAME ${test_name} - COMMAND /bin/bash -c "${PROJECT_SOURCE_DIR}/test/gw-ci/run_exp.sh ${pslot} ${cycle} ${subtask_names}" - WORKING_DIRECTORY ${RUNTESTS}) - set_tests_properties(${test_name} PROPERTIES LABELS "manual") + ecbuild_add_test(TARGET ${test_name} + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/gw-ci/run_exp.sh + ARGS ${pslot} ${cycle} ${subtask_names} + WORKING_DIRECTORY ${RUNTESTS}) +# set_tests_properties(${test_name} PROPERTIES LABELS "manual") endfunction() # Function that generates the 1/2 cycle forecast and DA tasks function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR HALF_CYCLE_TASKS FULL_CYCLE_TASKS) set(test_prefix test_gdasapp_${pslot}) # Prepare the COMROOT and EXPDIR for the cycling ctests - add_test(NAME ${test_prefix} - COMMAND /bin/bash -c "${PROJECT_SOURCE_DIR}/test/gw-ci/create_exp.sh ${YAML_PATH} ${pslot} ${HOMEgfs} ${RUNTESTS}" - WORKING_DIRECTORY ${RUNTESTS}) - set_tests_properties(${test_prefix} PROPERTIES LABELS "manual") + ecbuild_add_test(TARGET ${test_prefix} + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/gw-ci/create_exp.sh + ARGS ${YAML_PATH} ${pslot} ${HOMEgfs} ${RUNTESTS} + WORKING_DIRECTORY ${RUNTESTS}) +# set_tests_properties(${test_prefix} PROPERTIES LABELS "manual") # Get the 1/2 cycle and full cycle's dates execute_process( From 54f6cf50d8d76497048431bf856517a1104bdf9f Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 21 Nov 2024 13:01:13 +0000 Subject: [PATCH 39/60] Save progress --- test/gw-ci/CMakeLists.txt | 194 +++++++++++++++++++++++++++++++++----- 1 file changed, 170 insertions(+), 24 deletions(-) diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index 68dff5779..026631964 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -1,24 +1,171 @@ # Function that adds a test for a given GW task -function(add_task task_name test_prefix cycle pslot RUNTESTS PROJECT_SOURCE_DIR) +function(add_task task_name test_prefix is_full_cycle HALF_CYCLE FULL_CYCLE pslot WORKING_DIRECTORY PROJECT_SOURCE_DIR) + # Get subtask names if task is a metatask if("${task_name}" STREQUAL "gdas_fcst") set(subtask_names "gdas_fcst_seg0") elseif("${task_name}" STREQUAL "enkfgdas_fcst") - if(NOT "${pslot}" STREQUAL "C48mx500_hybAOWCDA") - set(subtask_names "enkfgdas_fcst_mem001 enkfgdas_fcst_mem002") + if("${pslot}" STREQUAL "C48mx500_hybAOWCDA") + set(subtask_names "enkfgdas_fcst_mem001 enkfgdas_fcst_mem002 enkfgdas_fcst_mem003") else() - set(subtask_names "enkfgdas_fcst_mem001 enkfgdas_fcst_mem002 enkfgdas_fcst_mem003") + set(subtask_names "enkfgdas_fcst_mem001 enkfgdas_fcst_mem002") endif() elseif("${task_name}" STREQUAL "gdas_atmos_prod") set(subtask_names "gdas_atmos_prod_f000 gdas_atmos_prod_f001 gdas_atmos_prod_f002 gdas_atmos_prod_f003 gdas_atmos_prod_f004 gdas_atmos_prod_f005 gdas_atmos_prod_f006 gdas_atmos_prod_f007 gdas_atmos_prod_f008 gdas_atmos_prod_f009") elseif("${task_name}" STREQUAL "enkfgdas_epmn") set(subtask_names "enkfgdas_epos001 enkfgdas_epos002 enkfgdas_epos003 enkfgdas_epos004 enkfgdas_epos005 enkfgdas_epos006") elseif("${task_name}" STREQUAL "enkfgdas_ecmn") - set(subtask_names "enkfgdas_ecen000 enkfgdas_ecen001 enkfgdas_ecen002") + if ("${pslot}" STREQUAL "C96C48_ufs_hybatmDA") + set(subtask_names "enkfgdas_ecen000") + else() + set(subtask_names "enkfgdas_ecen000 enkfgdas_ecen001 enkfgdas_ecen002") + endif() else() set(subtask_names ${task_name}) endif() + # Get task dependencies + set(TEST_DEPENDS) + if(NOT ${is_full_cycle}) + if("${task_name}" STREQUAL "gdas_fcst") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_stage_ic_${HALF_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_atmos_prod") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_fcst_${HALF_CYCLE}") + elseif("${task_name}" STREQUAL "enkfgdas_fcst") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_stage_ic_${HALF_CYCLE}") + elseif("${task_name}" STREQUAL "enkfgdas_echgres") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_fcst_${HALF_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_fcst_${HALF_CYCLE}") + elseif("${task_name}" STREQUAL "enkfgdas_epmn") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_fcst_${HALF_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_aeroanlgenb") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_fcst_${HALF_CYCLE}") + else() + list(APPEND TEST_DEPENDS "${test_prefix}") + 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}") + 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}") + elseif("${task_name}" STREQUAL "gdas_prepatmiodaobs") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_prep_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_atmanlinit") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_epmn_${HALF_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_prepatmiodaobs_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_atmanlvar") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_atmanlinit_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_atmanlfv3inc") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_atmanlvar_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_atmanlfinal") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_atmanlfv3inc_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_aeroanlinit") + list(APPEND TEST_DEPENDS "${test_prefix}_aeroanlgenb_${HALF_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_prep_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_aeroanlvar") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_aeroanlinit_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_aeroanlfinal") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_aeroanlvar_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_snowanl") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_prep_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_sfcanl") + if("${pslot}" STREQUAL "C96C48_ufs_hybatmDA") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_atmanlfinal_${FULL_CYCLE}") + elseif("${pslot}" STREQUAL "C96C48_hybatmaerosnowDA") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_anal_${FULL_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_snowanal_${FULL_CYCLE}") + else() + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_anal_${FULL_CYCLE}") + endif() + elseif("${task_name}" STREQUAL "gdas_analcalc") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_echgres_${HALF_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_sfcanl_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_fcst") + if("${pslot}" STREQUAL "C96C48_hybatmaerosnowDA") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_sfcanl_${FULL_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_aeroanlfinal_${FULL_CYCLE}") + elseif("${pslot}" STREQUAL "C48mx500_3DVarAOWCDA") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_sfcanl_${FULL_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_marineanlfinal_${FULL_CYCLE}") + else() + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_sfcanl_${FULL_CYCLE}") + endif() + elseif("${task_name}" STREQUAL "enkfgdas_atmensanlinit") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_epmn_${HALF_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_prepatmiodaobs_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "enkfgdas_atmensanlobs") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_atmensanlinit_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "enkfgdas_atmensanlsol") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_atmensanlobs_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "enkfgdas_atmensanlfv3inc") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_atmensanlsol_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "enkfgdas_atmensanlfinal") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_atmensanlfv3inc_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "enkfgdas_eobs") + set(TEST_DEPENDS) + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_epmn_${HALF_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_prep_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "enkfgdas_ediag") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_eobs_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "enkfgdas_eupd") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_ediag_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "enkfgdas_ecmn") + if("${pslot}" STREQUAL "C96C48_ufs_hybatmDA") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_analcalc_${FULL_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}") + endif() + elseif("${task_name}" STREQUAL "enkfgdas_esnowrecen") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_epmn_${HALF_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_snowanl_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "enkfgdas_esfc") + if("${pslot}" STREQUAL "C96C48_ufs_hybatmDA") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_analcalc_${FULL_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_atmensanlfinal_${FULL_CYCLE}") + elseif("${pslot}" STREQUAL "C96C48_hybatmaerosnowDA") + 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_esnowrecen_${FULL_CYCLE}") + else() + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_analcalc_${FULL_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_eupd_${FULL_CYCLE}") + endif() + elseif("${task_name}" STREQUAL "enkfgdas_fcst") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_ecmn_${FULL_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_esfc_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_prepoceanobs") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_fcst_${HALF_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_marinebmat") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_fcst_${HALF_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_marineanlinit") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_fcst_${HALF_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_prepoceanobs_${FULL_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_marinebmat_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_marineanlvar") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_marineanlinit_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_marineanlchkpt") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_marineanlvar_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_marineanlfinal") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_marineanlchkpt_${FULL_CYCLE}") + elseif("${task_name}" STREQUAL "gdas_marineanlletkf") + list(APPEND TEST_DEPENDS "${test_prefix}_enkfgdas_fcst_${HALF_CYCLE}") + list(APPEND TEST_DEPENDS "${test_prefix}_gdas_prepoceanobs_${FULL_CYCLE}") + else() + list(APPEND TEST_DEPENDS "${test_prefix}") + endif() + endif() + + # Set cycle + if(${is_full_cycle}) + set(cycle ${FULL_CYCLE}) + else() + set(cycle ${HALF_CYCLE}) + endif() + # Add Task set(test_name ${test_prefix}_${task_name}_${cycle}) message(STATUS "preparing ${subtask_names} for ${test_prefix} ctest") @@ -26,20 +173,19 @@ function(add_task task_name test_prefix cycle pslot RUNTESTS PROJECT_SOURCE_DIR) TYPE SCRIPT COMMAND ${PROJECT_SOURCE_DIR}/test/gw-ci/run_exp.sh ARGS ${pslot} ${cycle} ${subtask_names} - WORKING_DIRECTORY ${RUNTESTS}) -# set_tests_properties(${test_name} PROPERTIES LABELS "manual") + WORKING_DIRECTORY ${WORKING_DIRECTORY} + TEST_DEPENDS ${TEST_DEPENDS}) endfunction() # Function that generates the 1/2 cycle forecast and DA tasks -function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR HALF_CYCLE_TASKS FULL_CYCLE_TASKS) +function(add_cycling_tests pslot YAML_PATH HOMEgfs WORKING_DIRECTORY PROJECT_SOURCE_DIR HALF_CYCLE_TASKS FULL_CYCLE_TASKS) set(test_prefix test_gdasapp_${pslot}) # Prepare the COMROOT and EXPDIR for the cycling ctests ecbuild_add_test(TARGET ${test_prefix} TYPE SCRIPT COMMAND ${PROJECT_SOURCE_DIR}/test/gw-ci/create_exp.sh - ARGS ${YAML_PATH} ${pslot} ${HOMEgfs} ${RUNTESTS} - WORKING_DIRECTORY ${RUNTESTS}) -# set_tests_properties(${test_prefix} PROPERTIES LABELS "manual") + ARGS ${YAML_PATH} ${pslot} ${HOMEgfs} ${WORKING_DIRECTORY} + WORKING_DIRECTORY ${WORKING_DIRECTORY}) # Get the 1/2 cycle and full cycle's dates execute_process( @@ -54,21 +200,23 @@ function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR H # Select the list of tasks to run for the half cycle message(STATUS "Half-cycle tasks ${HALF_CYCLE_TASKS}") + set(is_full_cycle FALSE) foreach(task_name ${HALF_CYCLE_TASKS}) - add_task(${task_name} ${test_prefix} ${HALF_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + add_task(${task_name} ${test_prefix} ${is_full_cycle} ${HALF_CYCLE} ${FULL_CYCLE} ${pslot} ${WORKING_DIRECTORY} ${PROJECT_SOURCE_DIR}) endforeach() # Select the list of tasks to run for the full cycle message(STATUS "Full-cycle tasks ${FULL_CYCLE_TASKS}") + set(is_full_cycle TRUE) foreach(task_name ${FULL_CYCLE_TASKS}) - add_task(${task_name} ${test_prefix} ${FULL_CYCLE} ${pslot} ${RUNTESTS} ${PROJECT_SOURCE_DIR}) + add_task(${task_name} ${test_prefix} ${is_full_cycle} ${HALF_CYCLE} ${FULL_CYCLE} ${pslot} ${WORKING_DIRECTORY} ${PROJECT_SOURCE_DIR}) endforeach() endfunction() if (WORKFLOW_TESTS) # Setup the environement set(HOMEgfs ${CMAKE_SOURCE_DIR}/../../..) - set(RUNTESTS ${CMAKE_CURRENT_BINARY_DIR}/../../test/gw-ci) + set(WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../../test/gw-ci) # GSI Atm DA C96/C48 # ------------------ @@ -96,7 +244,7 @@ if (WORKFLOW_TESTS) "enkfgdas_fcst" ) - add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${WORKING_DIRECTORY} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") # JEDI Atm DA C96/C48 # ------------------- set(pslot "C96C48_ufs_hybatmDA") @@ -108,7 +256,7 @@ if (WORKFLOW_TESTS) "enkfgdas_stage_ic" "enkfgdas_fcst" "enkfgdas_echgres" - "enkfgdas_epmn") + "enkfgdas_epmn") set(FULL_CYCLE_TASKS "gdas_prep" "gdas_prepatmiodaobs" @@ -124,11 +272,11 @@ if (WORKFLOW_TESTS) "enkfgdas_atmensanlsol" "enkfgdas_atmensanlfv3inc" "enkfgdas_atmensanlfinal" - "enkfgdas_ecen000" # No IAU yet, so only one task + "enkfgdas_ecmn" "enkfgdas_esfc" "enkfgdas_fcst" ) - add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${WORKING_DIRECTORY} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") # Aero-Land DA C96 # ---------------- @@ -149,7 +297,6 @@ if (WORKFLOW_TESTS) "gdas_aeroanlinit" "gdas_aeroanlvar" "gdas_aeroanlfinal" - "gdas_prepsnowobs" "gdas_snowanl" "gdas_sfcanl" "gdas_analcalc" @@ -162,7 +309,7 @@ if (WORKFLOW_TESTS) "enkfgdas_esfc" "enkfgdas_fcst" ) - add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${WORKING_DIRECTORY} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") # GSI Atm DA C48, JEDI Marine DA 500 # ---------------------------------- @@ -178,13 +325,12 @@ if (WORKFLOW_TESTS) "gdas_marineanlvar" "gdas_marineanlchkpt" "gdas_marineanlfinal" - "gdas_ocnanalvrfy" "gdas_prep" "gdas_anal" "gdas_sfcanl" "gdas_fcst" ) - add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${WORKING_DIRECTORY} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") # WCDA, low-res, ensemble da # ------------- @@ -206,7 +352,7 @@ if (WORKFLOW_TESTS) # "gdas_marineanlchkpt" # "gdas_marineanlfinal" ) - add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${WORKING_DIRECTORY} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") set(letkf FALSE) # GFSv17, 3DVAR prototype @@ -231,6 +377,6 @@ if (WORKFLOW_TESTS) "gdas_sfcanl" "gdas_fcst" ) - add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") + add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${WORKING_DIRECTORY} ${PROJECT_SOURCE_DIR} "${HALF_CYCLE_TASKS}" "${FULL_CYCLE_TASKS}") endif() endif() From 5d4510eaab89ca40874eb9415ac1970f8782498f Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 21 Nov 2024 14:09:49 +0000 Subject: [PATCH 40/60] Save progress --- test/gw-ci/CMakeLists.txt | 45 ++++++++++++++++++++++++++++++++------- test/gw-ci/run_exp.sh | 19 +++++++++-------- 2 files changed, 47 insertions(+), 17 deletions(-) diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index 026631964..5a07090d0 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -3,27 +3,56 @@ function(add_task task_name test_prefix is_full_cycle HALF_CYCLE FULL_CYCLE pslo # Get subtask names if task is a metatask if("${task_name}" STREQUAL "gdas_fcst") - set(subtask_names "gdas_fcst_seg0") + set(subtask_names_list + "gdas_fcst_seg0") elseif("${task_name}" STREQUAL "enkfgdas_fcst") if("${pslot}" STREQUAL "C48mx500_hybAOWCDA") - set(subtask_names "enkfgdas_fcst_mem001 enkfgdas_fcst_mem002 enkfgdas_fcst_mem003") + set(subtask_names_list + "enkfgdas_fcst_mem001" + "enkfgdas_fcst_mem002" + "enkfgdas_fcst_mem003") else() - set(subtask_names "enkfgdas_fcst_mem001 enkfgdas_fcst_mem002") + set(subtask_names_list + "enkfgdas_fcst_mem001" + "enkfgdas_fcst_mem002") endif() elseif("${task_name}" STREQUAL "gdas_atmos_prod") - set(subtask_names "gdas_atmos_prod_f000 gdas_atmos_prod_f001 gdas_atmos_prod_f002 gdas_atmos_prod_f003 gdas_atmos_prod_f004 gdas_atmos_prod_f005 gdas_atmos_prod_f006 gdas_atmos_prod_f007 gdas_atmos_prod_f008 gdas_atmos_prod_f009") + set(subtask_names_list + "gdas_atmos_prod_f000" + "gdas_atmos_prod_f001" + "gdas_atmos_prod_f002" + "gdas_atmos_prod_f003" + "gdas_atmos_prod_f004" + "gdas_atmos_prod_f005" + "gdas_atmos_prod_f006" + "gdas_atmos_prod_f007" + "gdas_atmos_prod_f008" + "gdas_atmos_prod_f009") elseif("${task_name}" STREQUAL "enkfgdas_epmn") - set(subtask_names "enkfgdas_epos001 enkfgdas_epos002 enkfgdas_epos003 enkfgdas_epos004 enkfgdas_epos005 enkfgdas_epos006") + set(subtask_names_list + "enkfgdas_epos001" + "enkfgdas_epos002" + "enkfgdas_epos003" + "enkfgdas_epos004" + "enkfgdas_epos005" + "enkfgdas_epos006") elseif("${task_name}" STREQUAL "enkfgdas_ecmn") if ("${pslot}" STREQUAL "C96C48_ufs_hybatmDA") - set(subtask_names "enkfgdas_ecen000") + set(subtask_names_list + "enkfgdas_ecen000") else() - set(subtask_names "enkfgdas_ecen000 enkfgdas_ecen001 enkfgdas_ecen002") + set(subtask_names_list + "enkfgdas_ecen000" + "enkfgdas_ecen001" + "enkfgdas_ecen002") endif() else() - set(subtask_names ${task_name}) + set(subtask_names_list ${task_name}) endif() + # Convert list to comma-delimited string + string(JOIN "," subtask_names ${subtask_names_list}) + # Get task dependencies set(TEST_DEPENDS) if(NOT ${is_full_cycle}) diff --git a/test/gw-ci/run_exp.sh b/test/gw-ci/run_exp.sh index 4555cdb62..ecabf57fd 100755 --- a/test/gw-ci/run_exp.sh +++ b/test/gw-ci/run_exp.sh @@ -4,28 +4,29 @@ pslot=$1 CYCLE=$2 shift shift -TASK_NAMES=("$@") - -task_args=$(printf " -t %s" "${TASK_NAMES[@]}") -num_tasks=${#TASK_NAMES[@]} +task_args=("$@") # Define the workflow XML and database files WORKFLOW_XML=${pslot}/EXPDIR/${pslot}/${pslot}.xml WORKFLOW_DB=${pslot}/EXPDIR/${pslot}/${pslot}.db # Boot the task -echo "booting ${TASK_NAMES[@]} for cycle $CYCLE" +echo "booting ${TASK_ARRAY[@]} for cycle $CYCLE" if [[ ! -e "$WORKFLOW_DB" ]]; then - rocotorun -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" "$task_args" -c "$CYCLE" + rocotorun -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" -t "$task_args" -c "$CYCLE" fi -rocotoboot -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" "$task_args" -c "$CYCLE" +rocotoboot -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" -t "$task_args" -c "$CYCLE" +# Loop through tasks +IFS=',' read -r -a TASK_ARRAY <<< "$task_args" +num_tasks=${#TASK_ARRAY[@]} while true; do # Update the status of the task - rocotorun -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" "$task_args" -c "$CYCLE" + rocotorun -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" -t "$task_args" -c "$CYCLE" num_succeeded=0 - for task in "${TASK_NAMES[@]}"; do + for task in "${TASK_ARRAY[@]}"; do + # Check the task status OUTPUT=$(rocotostat -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" -t "$task" -c "$CYCLE") STATUS=$(echo "$OUTPUT" | awk '$2 == task {print $4}' task="$task") From 523d0f724bf95c5e4530847750a0f1665cf8fe5b Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Thu, 21 Nov 2024 23:51:24 +0000 Subject: [PATCH 41/60] Make running rocoto more robust and change DO_JEDI_TESTING to DO_TEST_MODE --- parm/atm/jcb-base.yaml.j2 | 2 +- test/atm/global-workflow/config.yaml | 2 +- test/gw-ci/run_exp.sh | 12 ++++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index 42b44d4f2..39c626a84 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -30,7 +30,7 @@ analysis_variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] # Testing # ------- -do_testing: {{ DO_JEDI_TESTING | default(false, true) }} +do_testing: {{ DO_TEST_MODE | default(false, true) }} # Model things # ------------ diff --git a/test/atm/global-workflow/config.yaml b/test/atm/global-workflow/config.yaml index a0d6b506f..d6d4b0343 100644 --- a/test/atm/global-workflow/config.yaml +++ b/test/atm/global-workflow/config.yaml @@ -8,7 +8,7 @@ base: DUMPDIR: "@dumpdir@" STMP: "@bindir@/test/atm/global-workflow/testrun" PTMP: "@bindir@/test/atm/global-workflow/testrun" - DO_JEDI_TESTING: "YES" + DO_TEST_MODE: "YES" atmanl: JCB_ALGO_YAML_VAR: "@srcdir@/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2" diff --git a/test/gw-ci/run_exp.sh b/test/gw-ci/run_exp.sh index ecabf57fd..3c02dbb1a 100755 --- a/test/gw-ci/run_exp.sh +++ b/test/gw-ci/run_exp.sh @@ -32,16 +32,20 @@ while true; do STATUS=$(echo "$OUTPUT" | awk '$2 == task {print $4}' task="$task") if [[ "$STATUS" == "SUCCEEDED" ]]; then - echo "$task succeeded." + echo "$pslot"_"$task"_"$CYCLE"" succeeded." num_succeeded=$((num_succeeded + 1)) elif [[ "$STATUS" == "FAILED" ]]; then - echo "$task failed." + echo "$pslot"_"$task"_"$CYCLE"" failed." exit 1 elif [[ "$STATUS" == "DEAD" ]]; then - echo "$task is dead." + echo "$pslot"_"$task"_"$CYCLE"" is dead." exit 1 + elif [[ "$STATUS" == "SUBMITTING" ]] || [[ "$STATUS" == "QUEUED" ]] || [[ "$STATUS" == "RUNNING" ]]; then + echo "$pslot"_"$task"_"$CYCLE"" is in state: $STATUS" else - echo "$task is in state: $STATUS" + echo "$pslot"_"$task"_"$CYCLE"" is in unrecognized state: $STATUS. Rewinding..." + rocotorewind -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" -t "$task_args" -c "$CYCLE" + rocotoboot -w "$WORKFLOW_XML" -d "$WORKFLOW_DB" -t "$task_args" -c "$CYCLE" fi done if [[ "$num_succeeded" == "$num_tasks" ]]; then From 52ab4885c5ffabe0251e5b8c57277758c2592654 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 22 Nov 2024 14:24:04 +0000 Subject: [PATCH 42/60] Move test references to directory in GW --- parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 | 2 +- parm/atm/jcb-prototype_3dvar.yaml.j2 | 7 +++++++ parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 | 2 +- parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 | 7 +++++++ parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 | 7 +++++++ 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 index 28d88e43b..f0facedff 100644 --- a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_variational # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/3dvar-fv3inc.ref +test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/3dvar-fv3inc.ref test_output_filename: ./3dvar.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_3dvar.yaml.j2 b/parm/atm/jcb-prototype_3dvar.yaml.j2 index 4330a87bd..8f6f65c53 100644 --- a/parm/atm/jcb-prototype_3dvar.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar.yaml.j2 @@ -30,3 +30,10 @@ observations: # - scatwind_ascat_metop-a # - snowcvr # - abi_g16 + +# Testing things +# -------------- +test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/3dvar.ref +test_output_filename: ./3dvar.out +test_float_relative_tolerance: 1.0e-3 +test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 index 96e1a08d5..d2dc0693a 100644 --- a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_lgetkf # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/gw-ci/lgetkf-fv3inc.ref +test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/lgetkf-fv3inc.ref test_output_filename: ./3dvar.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 index 4b800ac8f..b781b6b9c 100644 --- a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 @@ -44,3 +44,10 @@ atmosphere_obsdataout_prefix: diag_lobs_ # Distribution type distribution_type: RoundRobin + +# Testing things +# -------------- +test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/lgetkf_observer.ref +test_output_filename: ./3dvar.out +test_float_relative_tolerance: 1.0e-3 +test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 index b5123dde9..1e3f54f3d 100644 --- a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 @@ -47,3 +47,10 @@ atmosphere_obsdataout_prefix: diag_solv_ # Distribution type distribution_type: Halo + +# Testing things +# -------------- +test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/lgetkf_solver.ref +test_output_filename: ./3dvar.out +test_float_relative_tolerance: 1.0e-3 +test_float_absolute_tolerance: 1.0e-5 From 5092425453d4b24cb8c5a306882fcdfebaea0ce7 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 22 Nov 2024 14:25:59 +0000 Subject: [PATCH 43/60] Move test reference files to GW --- test/gw-ci/3dvar.ref | 124 ----------------------- test/gw-ci/lgetkf_observer.ref | 126 ----------------------- test/gw-ci/lgetkf_solver.ref | 180 --------------------------------- 3 files changed, 430 deletions(-) delete mode 100644 test/gw-ci/3dvar.ref delete mode 100644 test/gw-ci/lgetkf_observer.ref delete mode 100644 test/gw-ci/lgetkf_solver.ref diff --git a/test/gw-ci/3dvar.ref b/test/gw-ci/3dvar.ref deleted file mode 100644 index 009442800..000000000 --- a/test/gw-ci/3dvar.ref +++ /dev/null @@ -1,124 +0,0 @@ -CostJb : Nonlinear Jb = 0.0000000000000000e+00 -CostJo : Nonlinear Jo(Aircraft) = 6.0590797038184456e+05, nobs = 504555, Jo/n = 1.2008759607611550e+00, err = 2.2437239435917040e+00 -CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 1.5949936485170507e+04, nobs = 26314, Jo/n = 6.0613880387514274e-01, err = 1.8277692518568445e+00 -CostJo : Nonlinear Jo(ATMS N20) = 4.8387730216828917e+04, nobs = 156588, Jo/n = 3.0901301643056250e-01, err = 5.2594000470964266e+00 -CostJo : Nonlinear Jo(surface_ps) = 2.6308196193705146e+04, nobs = 107322, Jo/n = 2.4513330159431565e-01, err = 5.9305643428180190e+02 -CostJo : Nonlinear Jo(gnssrobndnbam) = 6.1501893265653157e+05, nobs = 473864, Jo/n = 1.2978806844506685e+00, err = 3.2933330370258057e-04 -CostJo : Nonlinear Jo(ompsnp_npp) = 2.1269336098572853e+03, nobs = 3087, Jo/n = 6.8899695816562534e-01, err = 2.4001367423170068e+00 -CostJo : Nonlinear Jo(ompstc_npp) = 3.3784707883660294e+03, nobs = 3696, Jo/n = 9.1408841676570063e-01, err = 6.0000000000000000e+00 -CostJo : Nonlinear Jo(satwind_goes-16) = 6.9383960384868606e+03, nobs = 193154, Jo/n = 3.5921575729660586e-02, err = 1.1892541771722902e+01 -CostFunction: Nonlinear J = 1.3240165663707908e+06 -DRPCGMinimizer: reduction in residual norm = 2.8257552285466486e-01 -CostFunction::addIncrement: Analysis: ----------------------------------------------------------------------------------------------------- -State print | number of fields = 22 | cube sphere face size: C96 -eastward_wind | Min:-8.7593299865709369e+01 Max:+1.1421906280506562e+02 RMS:+1.7446423933063677e+01 -northward_wind | Min:-9.0978759765616502e+01 Max:+8.9302459716826505e+01 RMS:+9.8048456519093889e+00 -air_temperature | Min:+1.7290483093261747e+02 Max:+3.1017132568363934e+02 RMS:+2.5022377762999326e+02 -air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7837935791015625e+03 RMS:+9.5699700087025974e+02 -surface_pressure | Min:+5.1309082031249884e+04 Max:+1.0433011718749903e+05 RMS:+9.8914626690610530e+04 -specific_humidity | Min:+9.9999986088507587e-10 Max:+2.1381899714470930e-02 RMS:+5.0230919069543158e-03 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+5.7223520707321528e-04 RMS:+9.4296924830162644e-06 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.6279185656660684e-03 RMS:+3.7809568286304757e-05 -ozone_mass_mixing_ratio | Min:+3.8859406171368113e-10 Max:+1.7313133576612057e-05 RMS:+4.4663053755671636e-06 -surface_geopotential_height | Min:-2.9894643783569336e+01 Max:+5.3870561523437500e+03 RMS:+6.4442219321892003e+02 -slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5312859958249614e-01 -sheleg | Min:+0.0000000000000000e+00 Max:+2.6371386718750000e+02 RMS:+2.2054824502787593e+01 -sea_surface_temperature | Min:+2.1746235656738281e+02 Max:+3.2932260131835938e+02 RMS:+2.8737006087270038e+02 -vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+5.8667091445155686e+00 -stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.3549806522511076e+00 -vfrac | Min:+0.0000000000000000e+00 Max:+9.8026573181152344e+01 RMS:+1.9275201636346665e+01 -stc | Min:+2.0000000000000000e+02 Max:+3.2045886230468750e+02 RMS:+2.8806776004459306e+02 -soilMoistureVolumetric | Min:+2.1923782303929329e-02 Max:+1.0000000000000000e+00 RMS:+8.6145451167852249e-01 -totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.2327475547790527e+00 RMS:+1.5878111306662487e-01 -surface_eastward_wind | Min:-1.8106302261352539e+01 Max:+2.0922132492065430e+01 RMS:+5.2142386237867280e+00 -surface_northward_wind | Min:-2.0834318161010742e+01 Max:+1.9025196075439453e+01 RMS:+4.8322666159970842e+00 -f10m | Min:+9.3901658058166504e-01 Max:+1.0698120594024658e+00 RMS:+9.9592865511053685e-01 ----------------------------------------------------------------------------------------------------- - - - -Obs bias coefficients: ---------------------------------------------------------------- - constant: Min= -0.8381630182271099, Max= 0.8200770020481498, Norm= 2.2810923110282308 - lapseRate_order_2: Min= -0.2969009876260876, Max= 0.3889850080012900, Norm= 0.7014865852485521 - lapseRate: Min= -0.5954660177230082, Max= 1.6232719421370738, Norm= 2.1316868531033393 - emissivityJacobian: Min= -0.0097089996561411, Max= 8.3582897185072884, Norm= 10.2580018725806656 -sensorScanAngle_order_4: Min= -3.4036920070662289, Max= 0.8113600015621025, Norm= 4.8886281019448123 -sensorScanAngle_order_3: Min= -0.7697319984440882, Max= 0.3303030133246191, Norm= 0.9762309707883376 -sensorScanAngle_order_2: Min= -0.5401099920283099, Max= 2.2389800548543319, Norm= 2.4920946301939773 - sensorScanAngle: Min= -0.1069049984217430, Max= 0.4472059905526856, Norm= 0.8480380113023768 ---------------------------------------------------------------- - - - - - - -CostJb : Nonlinear Jb = 0.0000000000001377 -CostJo : Nonlinear Jo(Aircraft) = 605907.9700265740975738, nobs = 504555, Jo/n = 1.2008759600570287, err = 2.2437239435917040 -CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 15949.9364848986988363, nobs = 26314, Jo/n = 0.6061388038648133, err = 1.8277692518568445 -CostJo : Nonlinear Jo(ATMS N20) = 48387.7302149347669911, nobs = 156588, Jo/n = 0.3090130164184661, err = 5.2594000470964266 -CostJo : Nonlinear Jo(surface_ps) = 26308.1961930343022686, nobs = 107322, Jo/n = 0.2451333015880649, err = 593.0564342818018986 -CostJo : Nonlinear Jo(gnssrobndnbam) = 615018.9326265617273748, nobs = 473864, Jo/n = 1.2978806843874229, err = 0.0003293333037026 -CostJo : Nonlinear Jo(ompsnp_npp) = 1931.1242066182112467, nobs = 3087, Jo/n = 0.6255666364166541, err = 2.4001367423170068 -CostJo : Nonlinear Jo(ompstc_npp) = 1175.2354163386241908, nobs = 3696, Jo/n = 0.3179749503080693, err = 6.0000000000000000 -CostJo : Nonlinear Jo(satwind_goes-16) = 6938.3960383742578415, nobs = 193154, Jo/n = 0.0359215757290776, err = 11.8925417717229021 -CostFunction: Nonlinear J = 1321617.5212073344737291 -DRPCGMinimizer: reduction in residual norm = 0.8446076379600224 -CostFunction::addIncrement: Analysis: ----------------------------------------------------------------------------------------------------- -State print | number of fields = 22 | cube sphere face size: C96 -eastward_wind | Min:-8.7593299865597274e+01 Max:+1.1421906280413639e+02 RMS:+1.7446423933041416e+01 -northward_wind | Min:-9.0978759765544794e+01 Max:+8.9302459717076374e+01 RMS:+9.8048456518642482e+00 -air_temperature | Min:+1.7290483093261994e+02 Max:+3.1017132568402411e+02 RMS:+2.5022377762999653e+02 -air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7837935791015625e+03 RMS:+9.5699700087025974e+02 -surface_pressure | Min:+5.1309082031248872e+04 Max:+1.0433011718749085e+05 RMS:+9.8914626690605888e+04 -specific_humidity | Min:+9.9999986293294490e-10 Max:+2.1381899714479527e-02 RMS:+5.0230919069522385e-03 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+5.7223520707173773e-04 RMS:+9.4296924828094189e-06 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.6279185658369072e-03 RMS:+3.7809568286035265e-05 -ozone_mass_mixing_ratio | Min:+0.0000000000000000e+00 Max:+1.7393152519974760e-05 RMS:+4.4687802775349384e-06 -surface_geopotential_height | Min:-2.9894643783569336e+01 Max:+5.3870561523437500e+03 RMS:+6.4442219321892003e+02 -slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5312859958249614e-01 -sheleg | Min:+0.0000000000000000e+00 Max:+2.6371386718750000e+02 RMS:+2.2054824502787593e+01 -sea_surface_temperature | Min:+2.1746235656738281e+02 Max:+3.2932260131835938e+02 RMS:+2.8737006087270038e+02 -vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+5.8667091445155686e+00 -stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.3549806522511076e+00 -vfrac | Min:+0.0000000000000000e+00 Max:+9.8026573181152344e+01 RMS:+1.9275201636346665e+01 -stc | Min:+2.0000000000000000e+02 Max:+3.2045886230468750e+02 RMS:+2.8806776004459306e+02 -soilMoistureVolumetric | Min:+2.1923782303929329e-02 Max:+1.0000000000000000e+00 RMS:+8.6145451167852249e-01 -totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.2327475547790527e+00 RMS:+1.5878111306662487e-01 -surface_eastward_wind | Min:-1.8106302261352539e+01 Max:+2.0922132492065430e+01 RMS:+5.2142386237867280e+00 -surface_northward_wind | Min:-2.0834318161010742e+01 Max:+1.9025196075439453e+01 RMS:+4.8322666159970842e+00 -f10m | Min:+9.3901658058166504e-01 Max:+1.0698120594024658e+00 RMS:+9.9592865511053685e-01 ----------------------------------------------------------------------------------------------------- - - - -Obs bias coefficients: ---------------------------------------------------------------- - constant: Min= -0.8381630182312128, Max= 0.8200770020452602, Norm= 2.2810923110345662 - lapseRate_order_2: Min= -0.2969009876342316, Max= 0.3889850080009739, Norm= 0.7014865852476552 - lapseRate: Min= -0.5954660177223734, Max= 1.6232719421235957, Norm= 2.1316868530892328 - emissivityJacobian: Min= -0.0097089996561434, Max= 8.3582897174897202, Norm= 10.2580018711068170 -sensorScanAngle_order_4: Min= -3.4036920070781176, Max= 0.8113600015458797, Norm= 4.8886281019598847 -sensorScanAngle_order_3: Min= -0.7697319984481772, Max= 0.3303030133236201, Norm= 0.9762309707916220 -sensorScanAngle_order_2: Min= -0.5401099920369742, Max= 2.2389800548457712, Norm= 2.4920946301898259 - sensorScanAngle: Min= -0.1069049984223674, Max= 0.4472059905508586, Norm= 0.8480380112990616 ---------------------------------------------------------------- - - - - - - -CostJb : Nonlinear Jb = 0.0000000000008880 -CostJo : Nonlinear Jo(Aircraft) = 605907.9670297848060727, nobs = 504555, Jo/n = 1.2008759541175587, err = 2.2437239435917040 -CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 15949.9364826060973428, nobs = 26314, Jo/n = 0.6061388037776886, err = 1.8277692518568445 -CostJo : Nonlinear Jo(ATMS N20) = 48387.7301996417445480, nobs = 156588, Jo/n = 0.3090130163208020, err = 5.2594000470964266 -CostJo : Nonlinear Jo(surface_ps) = 26308.1961873747168283, nobs = 107322, Jo/n = 0.2451333015353303, err = 593.0564342818018986 -CostJo : Nonlinear Jo(gnssrobndnbam) = 615018.9323734971694648, nobs = 473864, Jo/n = 1.2978806838533781, err = 0.0003293333037026 -CostJo : Nonlinear Jo(ompsnp_npp) = 1105.2453930547394521, nobs = 3087, Jo/n = 0.3580321972966438, err = 2.4001367423170068 -CostJo : Nonlinear Jo(ompstc_npp) = 842.3521445536282499, nobs = 3696, Jo/n = 0.2279091300199211, err = 6.0000000000000000 -CostJo : Nonlinear Jo(satwind_goes-16) = 6938.3960374245170897, nobs = 193154, Jo/n = 0.0359215757241606, err = 11.8925417717229021 -CostFunction: Nonlinear J = 1320458.7558479374274611 diff --git a/test/gw-ci/lgetkf_observer.ref b/test/gw-ci/lgetkf_observer.ref deleted file mode 100644 index 81719bce0..000000000 --- a/test/gw-ci/lgetkf_observer.ref +++ /dev/null @@ -1,126 +0,0 @@ -Initial state for member 1: ----------------------------------------------------------------------------------------------------- -State print | number of fields = 23 | cube sphere face size: C48 -eastward_wind | Min:-8.4384330749511719e+01 Max:+1.1146717834472656e+02 RMS:+1.7423407399233511e+01 -northward_wind | Min:-8.6144805908203125e+01 Max:+8.9331993103027344e+01 RMS:+1.0017299694477179e+01 -air_temperature | Min:+1.7350303649902344e+02 Max:+3.0961535644531250e+02 RMS:+2.5015669840056216e+02 -layer_thickness | Min:-3.0059777832031250e+03 Max:-1.6207923889160156e+01 RMS:+9.8503674614826332e+02 -air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7881016845703125e+03 RMS:+9.5698921151558159e+02 -surface_pressure | Min:+5.2320046875000000e+04 Max:+1.0452482812500000e+05 RMS:+9.8914997456124955e+04 -specific_humidity | Min:+1.6847316430812498e-08 Max:+2.2395884618163109e-02 RMS:+5.0107896876815721e-03 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.1855275048874319e-04 RMS:+1.0354889627583219e-05 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.3839458115398884e-03 RMS:+3.5588872198565459e-05 -ozone_mass_mixing_ratio | Min:+1.1339260641562987e-09 Max:+1.7277885490329936e-05 RMS:+4.4686682637740296e-06 -surface_geopotential_height | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 -slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 -sheleg | Min:+0.0000000000000000e+00 Max:+2.5217851257324219e+02 RMS:+2.2019818126018798e+01 -sea_surface_temperature | Min:+2.1759780883789062e+02 Max:+3.2456860351562500e+02 RMS:+2.8741259834843908e+02 -vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 -stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 -vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 -stc | Min:+2.0000000000000000e+02 Max:+3.1568060302734375e+02 RMS:+2.8817196445239324e+02 -soilMoistureVolumetric | Min:+2.1992070600390434e-02 Max:+1.0000000000000000e+00 RMS:+8.4975035958924516e-01 -totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0927191972732544e+00 RMS:+1.5092084570439257e-01 -surface_eastward_wind | Min:-1.8143459320068359e+01 Max:+2.0627843856811523e+01 RMS:+5.1169707890467366e+00 -surface_northward_wind | Min:-2.3821027755737305e+01 Max:+1.9497446060180664e+01 RMS:+4.8067548196805943e+00 -f10m | Min:+9.4103527069091797e-01 Max:+1.0685453414916992e+00 RMS:+9.9573423073115486e-01 ----------------------------------------------------------------------------------------------------- -Initial state for member 2: ----------------------------------------------------------------------------------------------------- -State print | number of fields = 23 | cube sphere face size: C48 -eastward_wind | Min:-8.5966735839843750e+01 Max:+1.1211631774902344e+02 RMS:+1.7425666524535583e+01 -northward_wind | Min:-8.5594192504882812e+01 Max:+8.9450973510742188e+01 RMS:+1.0012910607932993e+01 -air_temperature | Min:+1.7322386169433594e+02 Max:+3.1173611450195312e+02 RMS:+2.5015480177211401e+02 -layer_thickness | Min:-3.0079758300781250e+03 Max:-1.6234376907348633e+01 RMS:+9.8509317417150282e+02 -air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7860076904296875e+03 RMS:+9.5696337286916196e+02 -surface_pressure | Min:+5.2300289062500000e+04 Max:+1.0443091406250000e+05 RMS:+9.8912612346289476e+04 -specific_humidity | Min:+1.7588122958045460e-08 Max:+2.1704806014895439e-02 RMS:+4.9960608009716806e-03 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.2980920989066362e-04 RMS:+9.7698907168770146e-06 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.4689513482153416e-03 RMS:+3.5167035611299903e-05 -ozone_mass_mixing_ratio | Min:+2.9807353807420611e-10 Max:+1.7195472537423484e-05 RMS:+4.4692040486361164e-06 -surface_geopotential_height | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 -slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 -sheleg | Min:+0.0000000000000000e+00 Max:+2.4906845092773438e+02 RMS:+2.2004970461687567e+01 -sea_surface_temperature | Min:+2.1673643493652344e+02 Max:+3.2559057617187500e+02 RMS:+2.8745909600453388e+02 -vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 -stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 -vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 -stc | Min:+2.0000000000000000e+02 Max:+3.1603344726562500e+02 RMS:+2.8817511849953127e+02 -soilMoistureVolumetric | Min:+2.1997468546032906e-02 Max:+1.0000000000000000e+00 RMS:+8.4973303187978066e-01 -totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0929538011550903e+00 RMS:+1.5094966458993353e-01 -surface_eastward_wind | Min:-1.9632795333862305e+01 Max:+2.2031156539916992e+01 RMS:+5.1474973436096771e+00 -surface_northward_wind | Min:-2.2859689712524414e+01 Max:+1.9478809356689453e+01 RMS:+4.7531537396512338e+00 -f10m | Min:+9.4079720973968506e-01 Max:+1.0689357519149780e+00 RMS:+9.9569948613238035e-01 ----------------------------------------------------------------------------------------------------- -H(x) for member 1: -Aircraft nobs= 502771 Min=-80.55443499910179, Max=305.5072533751332, RMS=146.5850485230079 - -ascatw_ascat_metop-b nobs= 24988 Min=-14.90743210285059, Max=18.50735802131708, RMS=5.626101623328659 - -ATMS N20 nobs= 17107090 Min=129.7859007557429, Max=294.7571288275636, RMS=237.7675940436642 - -surface_ps nobs= 199096 Min=481.5556154686088, Max=106952.1342381349, RMS=94358.04308199322 - -gnssrobndnbam nobs= 792394 Min=3.54653995010946e-06, Max=0.05689811581521509, RMS=0.00729813001231048 - -ompsnp_npp nobs= 3652 Min=0.02233893266611933, Max=544.9735566336279, RMS=74.39666518228908 - -ompstc_npp nobs= 29925 Min=232.08666141862, Max=578.874275460677, RMS=330.1687050473581 - -satwind_goes-16 nobs= 192150 Min=-46.72026247379588, Max=73.49080322835941, RMS=13.50004896322415 - - -H(x) for member 2: -Aircraft nobs= 502771 Min=-83.52929132190421, Max=303.935382876328, RMS=146.5832501835669 - -ascatw_ascat_metop-b nobs= 24988 Min=-15.95012800292468, Max=19.32845599082289, RMS=5.590280602334444 - -ATMS N20 nobs= 17107090 Min=129.587069467264, Max=294.7645909817928, RMS=237.7536249801313 - -surface_ps nobs= 199096 Min=475.424805046184, Max=106814.5789947868, RMS=94338.64524856347 - -gnssrobndnbam nobs= 792394 Min=3.535338326285228e-06, Max=0.05521000303350442, RMS=0.007290866963061116 - -ompsnp_npp nobs= 3652 Min=0.02236964099830396, Max=551.3730864849784, RMS=74.49227809990998 - -ompstc_npp nobs= 29925 Min=232.3157492522477, Max=581.8884351421542, RMS=330.2400711699158 - -satwind_goes-16 nobs= 192150 Min=-45.04364111939185, Max=72.45210083322863, RMS=13.31321129007812 - - -H(x) ensemble background mean: -Aircraft nobs= 670256 Min=-82.041863160503, Max=304.2592158533807, RMS=127.3605543707548 - -ascatw_ascat_metop-b nobs= 241220 Min=-15.81413469653508, Max=19.88922395519342, RMS=5.523473979723838 - -ATMS N20 nobs= 17107090 Min=129.6864851115034, Max=294.7608599046782, RMS=237.760350047037 - -surface_ps nobs= 199096 Min=486.4346696969737, Max=106883.3566164608, RMS=94348.33691646729 - -gnssrobndnbam nobs= 792394 Min=3.540939138197344e-06, Max=0.04945358726186298, RMS=0.007290515506537144 - -ompsnp_npp nobs= 3652 Min=0.02235738516446045, Max=548.1733215593032, RMS=74.44382038546588 - -ompstc_npp nobs= 29925 Min=232.3457460802846, Max=580.3706053589909, RMS=330.2028035413688 - -satwind_goes-16 nobs= 1605788 Min=-48.18299380448379, Max=74.78775267937297, RMS=10.02015189273681 - - -background y - H(x): -Aircraft nobs= 514449 Min=-244.1546176605621, Max=114.0538314416612, RMS=3.825505485330922 - -ascatw_ascat_metop-b nobs= 241220 Min=-15.53489644753131, Max=19.32628866297402, RMS=2.327498313731722 - -ATMS N20 nobs= 17107090 Min=-139.4066954833384, Max=99999997810.8074, RMS=5096987910.765858 - -surface_ps nobs= 116459 Min=-101684.8005703992, Max=75903.15428094343, RMS=2988.11265787499 - -gnssrobndnbam nobs= 791231 Min=-0.0302615994327759, Max=0.01662471709650585, RMS=0.0008693038108764198 - -ompsnp_npp nobs= 3652 Min=-30.64844591762643, Max=60.86103708368728, RMS=3.943997228450417 - -ompstc_npp nobs= 28934 Min=-98.77455818390638, Max=716.7959660681558, RMS=17.05887006514246 - -satwind_goes-16 nobs= 1605788 Min=-51.62964751676423, Max=38.23192217860554, RMS=3.10218655904646 - - diff --git a/test/gw-ci/lgetkf_solver.ref b/test/gw-ci/lgetkf_solver.ref deleted file mode 100644 index 11f550642..000000000 --- a/test/gw-ci/lgetkf_solver.ref +++ /dev/null @@ -1,180 +0,0 @@ -Initial state for member 1: ----------------------------------------------------------------------------------------------------- -State print | number of fields = 23 | cube sphere face size: C48 -eastward_wind | Min:-8.4384330749511719e+01 Max:+1.1146717834472656e+02 RMS:+1.7423407399233511e+01 -northward_wind | Min:-8.6144805908203125e+01 Max:+8.9331993103027344e+01 RMS:+1.0017299694477179e+01 -air_temperature | Min:+1.7350303649902344e+02 Max:+3.0961535644531250e+02 RMS:+2.5015669840056216e+02 -layer_thickness | Min:-3.0059777832031250e+03 Max:-1.6207923889160156e+01 RMS:+9.8503674614826332e+02 -air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7881016845703125e+03 RMS:+9.5698921151558159e+02 -surface_pressure | Min:+5.2320046875000000e+04 Max:+1.0452482812500000e+05 RMS:+9.8914997456124955e+04 -specific_humidity | Min:+1.6847316430812498e-08 Max:+2.2395884618163109e-02 RMS:+5.0107896876815721e-03 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.1855275048874319e-04 RMS:+1.0354889627583219e-05 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.3839458115398884e-03 RMS:+3.5588872198565459e-05 -ozone_mass_mixing_ratio | Min:+1.1339260641562987e-09 Max:+1.7277885490329936e-05 RMS:+4.4686682637740296e-06 -surface_geopotential_height | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 -slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 -sheleg | Min:+0.0000000000000000e+00 Max:+2.5217851257324219e+02 RMS:+2.2019818126018798e+01 -sea_surface_temperature | Min:+2.1759780883789062e+02 Max:+3.2456860351562500e+02 RMS:+2.8741259834843908e+02 -vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 -stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 -vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 -stc | Min:+2.0000000000000000e+02 Max:+3.1568060302734375e+02 RMS:+2.8817196445239324e+02 -soilMoistureVolumetric | Min:+2.1992070600390434e-02 Max:+1.0000000000000000e+00 RMS:+8.4975035958924516e-01 -totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0927191972732544e+00 RMS:+1.5092084570439257e-01 -surface_eastward_wind | Min:-1.8143459320068359e+01 Max:+2.0627843856811523e+01 RMS:+5.1169707890467366e+00 -surface_northward_wind | Min:-2.3821027755737305e+01 Max:+1.9497446060180664e+01 RMS:+4.8067548196805943e+00 -f10m | Min:+9.4103527069091797e-01 Max:+1.0685453414916992e+00 RMS:+9.9573423073115486e-01 ----------------------------------------------------------------------------------------------------- -Initial state for member 2: ----------------------------------------------------------------------------------------------------- -State print | number of fields = 23 | cube sphere face size: C48 -eastward_wind | Min:-8.5966735839843750e+01 Max:+1.1211631774902344e+02 RMS:+1.7425666524535583e+01 -northward_wind | Min:-8.5594192504882812e+01 Max:+8.9450973510742188e+01 RMS:+1.0012910607932993e+01 -air_temperature | Min:+1.7322386169433594e+02 Max:+3.1173611450195312e+02 RMS:+2.5015480177211401e+02 -layer_thickness | Min:-3.0079758300781250e+03 Max:-1.6234376907348633e+01 RMS:+9.8509317417150282e+02 -air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7860076904296875e+03 RMS:+9.5696337286916196e+02 -surface_pressure | Min:+5.2300289062500000e+04 Max:+1.0443091406250000e+05 RMS:+9.8912612346289476e+04 -specific_humidity | Min:+1.7588122958045460e-08 Max:+2.1704806014895439e-02 RMS:+4.9960608009716806e-03 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.2980920989066362e-04 RMS:+9.7698907168770146e-06 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.4689513482153416e-03 RMS:+3.5167035611299903e-05 -ozone_mass_mixing_ratio | Min:+2.9807353807420611e-10 Max:+1.7195472537423484e-05 RMS:+4.4692040486361164e-06 -surface_geopotential_height | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 -slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 -sheleg | Min:+0.0000000000000000e+00 Max:+2.4906845092773438e+02 RMS:+2.2004970461687567e+01 -sea_surface_temperature | Min:+2.1673643493652344e+02 Max:+3.2559057617187500e+02 RMS:+2.8745909600453388e+02 -vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 -stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 -vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 -stc | Min:+2.0000000000000000e+02 Max:+3.1603344726562500e+02 RMS:+2.8817511849953127e+02 -soilMoistureVolumetric | Min:+2.1997468546032906e-02 Max:+1.0000000000000000e+00 RMS:+8.4973303187978066e-01 -totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0929538011550903e+00 RMS:+1.5094966458993353e-01 -surface_eastward_wind | Min:-1.9632795333862305e+01 Max:+2.2031156539916992e+01 RMS:+5.1474973436096771e+00 -surface_northward_wind | Min:-2.2859689712524414e+01 Max:+1.9478809356689453e+01 RMS:+4.7531537396512338e+00 -f10m | Min:+9.4079720973968506e-01 Max:+1.0689357519149780e+00 RMS:+9.9569948613238035e-01 ----------------------------------------------------------------------------------------------------- -H(x) for member 1: -Aircraft nobs= 502771 Min=-80.55443572998047, Max=305.5072631835938, RMS=146.5850485206547 - -ascatw_ascat_metop-b nobs= 24988 Min=-14.90743255615234, Max=18.50735855102539, RMS=5.626101621409232 - -ATMS N20 nobs= 17107090 Min=129.7859039306641, Max=294.7571411132812, RMS=237.7675940456139 - -surface_ps nobs= 199096 Min=481.5556030273438, Max=106952.1328125, RMS=94358.04310219502 - -gnssrobndnbam nobs= 792394 Min=3.546540028764866e-06, Max=0.05689811706542969, RMS=0.007298130011564753 - -ompsnp_npp nobs= 3652 Min=0.02233893238008022, Max=544.9735717773438, RMS=74.39666527674214 - -ompstc_npp nobs= 29925 Min=232.0866546630859, Max=578.874267578125, RMS=330.1687049872166 - -satwind_goes-16 nobs= 192150 Min=-46.72026062011719, Max=73.49080657958984, RMS=13.50004896377961 - - -H(x) for member 2: -Aircraft nobs= 502771 Min=-83.52928924560547, Max=303.9353942871094, RMS=146.5832501984888 - -ascatw_ascat_metop-b nobs= 24988 Min=-15.95012760162354, Max=19.32845687866211, RMS=5.590280603593994 - -ATMS N20 nobs= 17107090 Min=129.5870666503906, Max=294.7645874023438, RMS=237.7536249814884 - -surface_ps nobs= 199096 Min=475.4248046875, Max=106814.578125, RMS=94338.64525474468 - -gnssrobndnbam nobs= 792394 Min=3.53533823727048e-06, Max=0.05521000176668167, RMS=0.007290866961668531 - -ompsnp_npp nobs= 3652 Min=0.02236964181065559, Max=551.3731079101562, RMS=74.49227830514708 - -ompstc_npp nobs= 29925 Min=232.3157501220703, Max=581.888427734375, RMS=330.2400711798879 - -satwind_goes-16 nobs= 192150 Min=-45.04364013671875, Max=72.45210266113281, RMS=13.31321128986013 - - -H(x) ensemble background mean: -Aircraft nobs= 502771 Min=-82.04186248779297, Max=304.2592163085938, RMS=146.582395066166 - -ascatw_ascat_metop-b nobs= 24988 Min=-15.35133123397827, Max=18.91790771484375, RMS=5.590053671147163 - -ATMS N20 nobs= 17107090 Min=129.6864852905273, Max=294.7608642578125, RMS=237.7603500486888 - -surface_ps nobs= 199096 Min=486.4346618652344, Max=106883.35546875, RMS=94348.33692965737 - -gnssrobndnbam nobs= 792394 Min=3.540939133017673e-06, Max=0.04945358820259571, RMS=0.007290515505449794 - -ompsnp_npp nobs= 3652 Min=0.02235738560557365, Max=548.17333984375, RMS=74.44382053535134 - -ompstc_npp nobs= 29925 Min=232.3457412719727, Max=580.37060546875, RMS=330.2028035163413 - -satwind_goes-16 nobs= 192150 Min=-45.88195037841797, Max=72.75027465820312, RMS=13.36167441823028 - - -background y - H(x): -Aircraft nobs= 502771 Min=-18.89637756347656, Max=18.92713928222656, RMS=3.217299765305571 - -ascatw_ascat_metop-b nobs= 24988 Min=-4.990096844732761, Max=4.997781611979008, RMS=1.78136290653079 - -ATMS N20 nobs= 17107090 Min=-139.4066925048828, Max=99999997810.8074, RMS=5096987910.765857 - -surface_ps nobs= 116459 Min=-101684.80078125, Max=75903.154296875, RMS=2988.112660654301 - -gnssrobndnbam nobs= 791231 Min=-0.03026160039007664, Max=0.01662471704185009, RMS=0.000869303809760421 - -ompsnp_npp nobs= 3652 Min=-30.64844512939453, Max=60.86103820800781, RMS=3.943997189932038 - -ompstc_npp nobs= 28934 Min=-98.7745361328125, Max=716.7959594726562, RMS=17.05887006085864 - -satwind_goes-16 nobs= 192150 Min=-17.58694839477539, Max=18.68439626693726, RMS=3.267043143712932 - - -Background mean : ----------------------------------------------------------------------------------------------------- -State print | number of fields = 23 | cube sphere face size: C48 -eastward_wind | Min:-8.5175533294677734e+01 Max:+1.1179174804687500e+02 RMS:+1.7400557939433298e+01 -northward_wind | Min:-8.5735511779785156e+01 Max:+8.9157825469970703e+01 RMS:+9.9701645189144461e+00 -air_temperature | Min:+1.7338398742675781e+02 Max:+3.1067573547363281e+02 RMS:+2.5015547362929473e+02 -layer_thickness | Min:-3.0054658203125000e+03 Max:-1.6221150398254395e+01 RMS:+9.8506306362137718e+02 -air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7870546875000000e+03 RMS:+9.5697619937906575e+02 -surface_pressure | Min:+5.2310167968750000e+04 Max:+1.0447787109375000e+05 RMS:+9.8913797930278190e+04 -specific_humidity | Min:+2.9691944014587079e-08 Max:+2.1115131676197052e-02 RMS:+4.9994705712860729e-03 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+3.6185300268698484e-04 RMS:+9.3862057121105856e-06 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.2367462622933090e-03 RMS:+3.1415946634547486e-05 -ozone_mass_mixing_ratio | Min:+7.5237392704874395e-10 Max:+1.7233576727448963e-05 RMS:+4.4688532813447449e-06 -surface_geopotential_height | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 -slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 -sheleg | Min:+0.0000000000000000e+00 Max:+2.4910437774658203e+02 RMS:+2.2007651817656669e+01 -sea_surface_temperature | Min:+2.1716712188720703e+02 Max:+3.2174871826171875e+02 RMS:+2.8743544448926787e+02 -vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 -stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 -vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 -stc | Min:+2.0000000000000000e+02 Max:+3.1577014160156250e+02 RMS:+2.8817349407786276e+02 -soilMoistureVolumetric | Min:+2.1994769573211670e-02 Max:+1.0000000000000000e+00 RMS:+8.4973696890011863e-01 -totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0928364992141724e+00 RMS:+1.5091512135815568e-01 -surface_eastward_wind | Min:-1.8888127326965332e+01 Max:+2.1329500198364258e+01 RMS:+5.1094029653114390e+00 -surface_northward_wind | Min:-2.3228111267089844e+01 Max:+1.8953988075256348e+01 RMS:+4.7537442465404594e+00 -f10m | Min:+9.4170856475830078e-01 Max:+1.0687405467033386e+00 RMS:+9.9571647867703006e-01 ----------------------------------------------------------------------------------------------------- -Analysis mean : ----------------------------------------------------------------------------------------------------- -State print | number of fields = 23 | cube sphere face size: C48 -eastward_wind | Min:-8.4774324321502988e+01 Max:+1.1170619450293722e+02 RMS:+1.7400375509763755e+01 -northward_wind | Min:-8.7214121288366655e+01 Max:+8.9233807495233577e+01 RMS:+9.9938074328966984e+00 -air_temperature | Min:+1.7338398731904834e+02 Max:+3.1021734492129713e+02 RMS:+2.5015182619184384e+02 -layer_thickness | Min:-3.0054658092822870e+03 Max:-1.6234013903099573e+01 RMS:+9.8506487778080520e+02 -air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7869309532732013e+03 RMS:+9.5697423778426378e+02 -surface_pressure | Min:+5.2310167956090001e+04 Max:+1.0447787101137359e+05 RMS:+9.8913797926518338e+04 -specific_humidity | Min:+0.0000000000000000e+00 Max:+2.1115131089317944e-02 RMS:+4.9974721017221301e-03 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.4276663301760246e-04 RMS:+9.6220406276590353e-06 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.3226195416814611e-03 RMS:+3.3209346549199534e-05 -ozone_mass_mixing_ratio | Min:+1.0218316416270972e-09 Max:+1.7364107739907706e-05 RMS:+4.4689530099725226e-06 -surface_geopotential_height | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 -slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 -sheleg | Min:+0.0000000000000000e+00 Max:+2.4910437774658203e+02 RMS:+2.2007651817656669e+01 -sea_surface_temperature | Min:+2.1716712188720703e+02 Max:+3.2174871826171875e+02 RMS:+2.8743544448926787e+02 -vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 -stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 -vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 -stc | Min:+2.0000000000000000e+02 Max:+3.1577014160156250e+02 RMS:+2.8817349407786276e+02 -soilMoistureVolumetric | Min:+2.1994769573211670e-02 Max:+1.0000000000000000e+00 RMS:+8.4973696890011863e-01 -totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0928364992141724e+00 RMS:+1.5091512135815568e-01 -surface_eastward_wind | Min:-1.8888127326965332e+01 Max:+2.1329500198364258e+01 RMS:+5.1094029653114390e+00 -surface_northward_wind | Min:-2.3228111267089844e+01 Max:+1.8953988075256348e+01 RMS:+4.7537442465404594e+00 -f10m | Min:+9.4170856475830078e-01 Max:+1.0687405467033386e+00 RMS:+9.9571647867703006e-01 ----------------------------------------------------------------------------------------------------- From 4ee3e2c5f7c92457ab157ccdfe453a5744910152 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 22 Nov 2024 14:29:06 +0000 Subject: [PATCH 44/60] Wrong test output filenames --- parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 | 2 +- parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 | 2 +- parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 | 2 +- parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 index f0facedff..6733d4964 100644 --- a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -5,6 +5,6 @@ algorithm: fv3jedi_fv3inc_variational # Testing things # -------------- test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/3dvar-fv3inc.ref -test_output_filename: ./3dvar.out +test_output_filename: ./3dvar-fv3inc.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 index d2dc0693a..863b1798e 100644 --- a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -5,6 +5,6 @@ algorithm: fv3jedi_fv3inc_lgetkf # Testing things # -------------- test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/lgetkf-fv3inc.ref -test_output_filename: ./3dvar.out +test_output_filename: ./lgetkf-fv3inc.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 index b781b6b9c..50f35357e 100644 --- a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 @@ -48,6 +48,6 @@ distribution_type: RoundRobin # Testing things # -------------- test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/lgetkf_observer.ref -test_output_filename: ./3dvar.out +test_output_filename: ./lgetkf_observer.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 index 1e3f54f3d..4ddf87315 100644 --- a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 @@ -51,6 +51,6 @@ distribution_type: Halo # Testing things # -------------- test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/lgetkf_solver.ref -test_output_filename: ./3dvar.out +test_output_filename: ./lgetkf_solver.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 From 56bf04affc0d6676bff7d1faaf49452578dd3710 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 22 Nov 2024 17:30:44 +0000 Subject: [PATCH 45/60] Move test reference/output locations around --- parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_3dvar.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_lgetkf.yaml.j2 | 7 +++++++ parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 | 4 ++-- test/CMakeLists.txt | 7 ++++++- .../atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 | 4 ++-- test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 | 4 ++-- .../global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 | 4 ++-- test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 | 4 ++-- .../global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 | 4 ++-- .../global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 | 4 ++-- .../global-workflow => testreference}/3dvar-fv3inc.ref | 0 test/{atm/global-workflow => testreference}/3dvar.ref | 0 .../global-workflow => testreference}/lgetkf-fv3inc.ref | 0 test/{atm/global-workflow => testreference}/lgetkf.ref | 0 .../global-workflow => testreference}/lgetkf_observer.ref | 0 .../global-workflow => testreference}/lgetkf_solver.ref | 0 19 files changed, 35 insertions(+), 23 deletions(-) rename test/{atm/global-workflow => testreference}/3dvar-fv3inc.ref (100%) rename test/{atm/global-workflow => testreference}/3dvar.ref (100%) rename test/{atm/global-workflow => testreference}/lgetkf-fv3inc.ref (100%) rename test/{atm/global-workflow => testreference}/lgetkf.ref (100%) rename test/{atm/global-workflow => testreference}/lgetkf_observer.ref (100%) rename test/{atm/global-workflow => testreference}/lgetkf_solver.ref (100%) diff --git a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 index 6733d4964..24ea75f68 100644 --- a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_variational # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/3dvar-fv3inc.ref -test_output_filename: ./3dvar-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testoutput/C96C48_ufs_hybatmDA_3dvar-fv3inc.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_3dvar.yaml.j2 b/parm/atm/jcb-prototype_3dvar.yaml.j2 index 8f6f65c53..e370fca91 100644 --- a/parm/atm/jcb-prototype_3dvar.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar.yaml.j2 @@ -33,7 +33,7 @@ observations: # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/3dvar.ref -test_output_filename: ./3dvar.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testreference/C96C48_ufs_hybatmDA_3dvar.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testoutput/C96C48_ufs_hybatmDA_3dvar.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 index 863b1798e..36af9e642 100644 --- a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_lgetkf # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/lgetkf-fv3inc.ref -test_output_filename: ./lgetkf-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testoutput/C96C48_ufs_hybatmDA_lgetkf-fv3inc.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf.yaml.j2 b/parm/atm/jcb-prototype_lgetkf.yaml.j2 index 2ed04df3b..c7db8b56f 100644 --- a/parm/atm/jcb-prototype_lgetkf.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf.yaml.j2 @@ -38,3 +38,10 @@ observations: - satwnd.viirs_npp # - scatwind_ascat_metop-a # - snowcvr + +# Testing things +# -------------- +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testoutput/C96C48_ufs_hybatmDA_lgetkf.out +test_float_relative_tolerance: 1.0e-3 +test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 index 50f35357e..93d8d6f70 100644 --- a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 @@ -47,7 +47,7 @@ distribution_type: RoundRobin # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/lgetkf_observer.ref -test_output_filename: ./lgetkf_observer.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_observer.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 index 4ddf87315..037e41961 100644 --- a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 @@ -50,7 +50,7 @@ distribution_type: Halo # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/ci/cases/pr/test_references/C96C48_ufs_hybatmDA/lgetkf_solver.ref -test_output_filename: ./lgetkf_solver.out +test_reference_filename: {{ HOMEgfs }}/sorc/build/gdas.cd/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref +test_output_filename: {{ HOMEgfs }}/sorc/build/gdas.cd/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index cae0d55ec..4b83ac693 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -64,7 +64,7 @@ list(APPEND test_input ${PROJECT_SOURCE_DIR}/test/testinput/bufr_sfcships.yaml ${PROJECT_SOURCE_DIR}/test/testinput/bufr_sfcshipsu.yaml ) - + # create testinput dir file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/testinput) @@ -90,6 +90,11 @@ file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/testreference) # list of test reference files to install list(APPEND test_reference ${PROJECT_SOURCE_DIR}/test/testreference/amsua_n19_gdas.yaml + ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_3dvar.ref + ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref + ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_observer.ref + ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.ref + ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_fv3inc.ref ) # symlink diff --git a/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 b/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 index 8f6290cf1..0bd8f18f6 100644 --- a/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_variational # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/atm/global-workflow/3dvar-fv3inc.ref -test_output_filename: ./3dvar-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/atm_jjob_3dvar-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/atm_jjob_3dvar-fv3inc.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 b/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 index e16f86ecc..daf11aaa4 100644 --- a/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 @@ -17,7 +17,7 @@ atmosphere_obsdatain_suffix: ".{{ current_cycle | to_YMDH }}.nc" # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/atm/global-workflow/3dvar.ref -test_output_filename: ./3dvar.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/atm_jjob_3dvar.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/atm_jjob_3dvar.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 index 3eddd4129..ce5740af5 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_lgetkf # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/atm/global-workflow/lgetkf-fv3inc.ref -test_output_filename: ./lgetkf-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/atm_jjob_lgetkf-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/atm_jjob_lgetkf-fv3inc.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 index b83b7d695..069322ea3 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 @@ -22,7 +22,7 @@ atmosphere_obsdatain_suffix: ".{{ current_cycle | to_YMDH }}.nc" # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/atm/global-workflow/lgetkf.ref -test_output_filename: ./lgetkf.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/atm_jjob_lgetkf.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/atm_jjob_lgetkf.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 index ec1182019..f197c6367 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 @@ -28,7 +28,7 @@ distribution_type: RoundRobin # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/atm/global-workflow/lgetkf_observer.ref -test_output_filename: ./lgetkf_observer.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/atm_jjob_lgetkf_observer.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/atm_jjob_lgetkf_observer.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 index a6ad34751..2525c5c1c 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 @@ -28,7 +28,7 @@ distribution_type: Halo # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/atm/global-workflow/lgetkf_solver.ref -test_output_filename: ./lgetkf_solver.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/atm_jjob_lgetkf_solver.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/atm_jjob_lgetkf_solver.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/3dvar-fv3inc.ref b/test/testreference/3dvar-fv3inc.ref similarity index 100% rename from test/atm/global-workflow/3dvar-fv3inc.ref rename to test/testreference/3dvar-fv3inc.ref diff --git a/test/atm/global-workflow/3dvar.ref b/test/testreference/3dvar.ref similarity index 100% rename from test/atm/global-workflow/3dvar.ref rename to test/testreference/3dvar.ref diff --git a/test/atm/global-workflow/lgetkf-fv3inc.ref b/test/testreference/lgetkf-fv3inc.ref similarity index 100% rename from test/atm/global-workflow/lgetkf-fv3inc.ref rename to test/testreference/lgetkf-fv3inc.ref diff --git a/test/atm/global-workflow/lgetkf.ref b/test/testreference/lgetkf.ref similarity index 100% rename from test/atm/global-workflow/lgetkf.ref rename to test/testreference/lgetkf.ref diff --git a/test/atm/global-workflow/lgetkf_observer.ref b/test/testreference/lgetkf_observer.ref similarity index 100% rename from test/atm/global-workflow/lgetkf_observer.ref rename to test/testreference/lgetkf_observer.ref diff --git a/test/atm/global-workflow/lgetkf_solver.ref b/test/testreference/lgetkf_solver.ref similarity index 100% rename from test/atm/global-workflow/lgetkf_solver.ref rename to test/testreference/lgetkf_solver.ref From 62964b6632bff6cf474258a7d7e012aef74b343b Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 22 Nov 2024 17:39:32 +0000 Subject: [PATCH 46/60] Cleanup --- parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_3dvar.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_lgetkf.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 | 4 ++-- test/CMakeLists.txt | 8 +++++++- .../{3dvar-fv3inc.ref => atm_jjob_3dvar-fv3inc.ref} | 0 test/testreference/{3dvar.ref => atm_jjob_3dvar.ref} | 0 .../{lgetkf-fv3inc.ref => atm_jjob_lgetkf-fv3inc.ref} | 0 test/testreference/{lgetkf.ref => atm_jjob_lgetkf.ref} | 0 .../{lgetkf_observer.ref => atm_jjob_lgetkf_observer.ref} | 0 .../{lgetkf_solver.ref => atm_jjob_lgetkf_solver.ref} | 0 13 files changed, 19 insertions(+), 13 deletions(-) rename test/testreference/{3dvar-fv3inc.ref => atm_jjob_3dvar-fv3inc.ref} (100%) rename test/testreference/{3dvar.ref => atm_jjob_3dvar.ref} (100%) rename test/testreference/{lgetkf-fv3inc.ref => atm_jjob_lgetkf-fv3inc.ref} (100%) rename test/testreference/{lgetkf.ref => atm_jjob_lgetkf.ref} (100%) rename test/testreference/{lgetkf_observer.ref => atm_jjob_lgetkf_observer.ref} (100%) rename test/testreference/{lgetkf_solver.ref => atm_jjob_lgetkf_solver.ref} (100%) diff --git a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 index 24ea75f68..26d34c96a 100644 --- a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_variational # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testoutput/C96C48_ufs_hybatmDA_3dvar-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/C96C48_ufs_hybatmDA_3dvar-fv3inc.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_3dvar.yaml.j2 b/parm/atm/jcb-prototype_3dvar.yaml.j2 index e370fca91..f41d7d476 100644 --- a/parm/atm/jcb-prototype_3dvar.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar.yaml.j2 @@ -33,7 +33,7 @@ observations: # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testreference/C96C48_ufs_hybatmDA_3dvar.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testoutput/C96C48_ufs_hybatmDA_3dvar.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/C96C48_ufs_hybatmDA_3dvar.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/C96C48_ufs_hybatmDA_3dvar.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 index 36af9e642..b7a56e0d6 100644 --- a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_lgetkf # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testoutput/C96C48_ufs_hybatmDA_lgetkf-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/C96C48_ufs_hybatmDA_lgetkf-fv3inc.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf.yaml.j2 b/parm/atm/jcb-prototype_lgetkf.yaml.j2 index c7db8b56f..176a1d9df 100644 --- a/parm/atm/jcb-prototype_lgetkf.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf.yaml.j2 @@ -41,7 +41,7 @@ observations: # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testoutput/C96C48_ufs_hybatmDA_lgetkf.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/C96C48_ufs_hybatmDA_lgetkf.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/C96C48_ufs_hybatmDA_lgetkf.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 index 93d8d6f70..eac09fcb1 100644 --- a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 @@ -47,7 +47,7 @@ distribution_type: RoundRobin # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_observer.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/C96C48_ufs_hybatmDA_lgetkf_observer.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 index 037e41961..406006b0f 100644 --- a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 @@ -50,7 +50,7 @@ distribution_type: Halo # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/build/gdas.cd/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref -test_output_filename: {{ HOMEgfs }}/sorc/build/gdas.cd/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.out +test_reference_filename: {{ HOMEgfs }}/sorc/build/gdas.cd/test/gdas/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref +test_output_filename: {{ HOMEgfs }}/sorc/build/gdas.cd/test/gdas/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 4b83ac693..63046c85c 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -94,7 +94,13 @@ list(APPEND test_reference ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_observer.ref ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.ref - ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_fv3inc.ref + ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_fv3inc.ref + ${PROJECT_SOURCE_DIR}/test/testoutput/atm_jjob_3dvar.ref + ${PROJECT_SOURCE_DIR}/test/testoutput/atm_jjob_3dvar-fv3inc.ref + ${PROJECT_SOURCE_DIR}/test/testoutput/atm_jjob_lgetkf_observer.ref + ${PROJECT_SOURCE_DIR}/test/testoutput/atm_jjob_lgetkf_solver.ref + ${PROJECT_SOURCE_DIR}/test/testoutput/atm_jjob_lgetkf_fv3inc.ref + ${PROJECT_SOURCE_DIR}/test/testoutput/atm_jjob_lgetkf.ref ) # symlink diff --git a/test/testreference/3dvar-fv3inc.ref b/test/testreference/atm_jjob_3dvar-fv3inc.ref similarity index 100% rename from test/testreference/3dvar-fv3inc.ref rename to test/testreference/atm_jjob_3dvar-fv3inc.ref diff --git a/test/testreference/3dvar.ref b/test/testreference/atm_jjob_3dvar.ref similarity index 100% rename from test/testreference/3dvar.ref rename to test/testreference/atm_jjob_3dvar.ref diff --git a/test/testreference/lgetkf-fv3inc.ref b/test/testreference/atm_jjob_lgetkf-fv3inc.ref similarity index 100% rename from test/testreference/lgetkf-fv3inc.ref rename to test/testreference/atm_jjob_lgetkf-fv3inc.ref diff --git a/test/testreference/lgetkf.ref b/test/testreference/atm_jjob_lgetkf.ref similarity index 100% rename from test/testreference/lgetkf.ref rename to test/testreference/atm_jjob_lgetkf.ref diff --git a/test/testreference/lgetkf_observer.ref b/test/testreference/atm_jjob_lgetkf_observer.ref similarity index 100% rename from test/testreference/lgetkf_observer.ref rename to test/testreference/atm_jjob_lgetkf_observer.ref diff --git a/test/testreference/lgetkf_solver.ref b/test/testreference/atm_jjob_lgetkf_solver.ref similarity index 100% rename from test/testreference/lgetkf_solver.ref rename to test/testreference/atm_jjob_lgetkf_solver.ref From 6cc9f0a065d2e4f1f80d92c425473c0bb4f1fb99 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 22 Nov 2024 19:24:27 +0000 Subject: [PATCH 47/60] Fix typo --- parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_3dvar.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_lgetkf.yaml.j2 | 4 ++-- .../atm/jcb-prototype_lgetkf_observer.yaml.j2 | 4 ++-- parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 | 4 ++-- test/CMakeLists.txt | 22 +++++++++---------- .../jcb-prototype_3dvar-fv3inc.yaml.j2 | 4 ++-- .../jcb-prototype_3dvar.yaml.j2 | 4 ++-- .../jcb-prototype_lgetkf-fv3inc.yaml.j2 | 4 ++-- .../jcb-prototype_lgetkf.yaml.j2 | 4 ++-- .../jcb-prototype_lgetkf_observer.yaml.j2 | 4 ++-- .../jcb-prototype_lgetkf_solver.yaml.j2 | 4 ++-- 13 files changed, 35 insertions(+), 35 deletions(-) diff --git a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 index 26d34c96a..b28afc525 100644 --- a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_variational # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/C96C48_ufs_hybatmDA_3dvar-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_3dvar-fv3inc.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_3dvar.yaml.j2 b/parm/atm/jcb-prototype_3dvar.yaml.j2 index f41d7d476..b53df7ba8 100644 --- a/parm/atm/jcb-prototype_3dvar.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar.yaml.j2 @@ -33,7 +33,7 @@ observations: # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/C96C48_ufs_hybatmDA_3dvar.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/C96C48_ufs_hybatmDA_3dvar.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/C96C48_ufs_hybatmDA_3dvar.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_3dvar.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 index b7a56e0d6..aaa5024e5 100644 --- a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_lgetkf # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/C96C48_ufs_hybatmDA_lgetkf-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf-fv3inc.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf.yaml.j2 b/parm/atm/jcb-prototype_lgetkf.yaml.j2 index 176a1d9df..b943a82a5 100644 --- a/parm/atm/jcb-prototype_lgetkf.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf.yaml.j2 @@ -41,7 +41,7 @@ observations: # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/C96C48_ufs_hybatmDA_lgetkf.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/C96C48_ufs_hybatmDA_lgetkf.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 index eac09fcb1..7207a06cc 100644 --- a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 @@ -47,7 +47,7 @@ distribution_type: RoundRobin # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/C96C48_ufs_hybatmDA_lgetkf_observer.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_observer.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 index 406006b0f..1e6216bea 100644 --- a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 @@ -50,7 +50,7 @@ distribution_type: Halo # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/build/gdas.cd/test/gdas/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref -test_output_filename: {{ HOMEgfs }}/sorc/build/gdas.cd/test/gdas/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas/cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 63046c85c..a254b4115 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -90,17 +90,17 @@ file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/testreference) # list of test reference files to install list(APPEND test_reference ${PROJECT_SOURCE_DIR}/test/testreference/amsua_n19_gdas.yaml - ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_3dvar.ref - ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref - ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_observer.ref - ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.ref - ${PROJECT_SOURCE_DIR}/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_fv3inc.ref - ${PROJECT_SOURCE_DIR}/test/testoutput/atm_jjob_3dvar.ref - ${PROJECT_SOURCE_DIR}/test/testoutput/atm_jjob_3dvar-fv3inc.ref - ${PROJECT_SOURCE_DIR}/test/testoutput/atm_jjob_lgetkf_observer.ref - ${PROJECT_SOURCE_DIR}/test/testoutput/atm_jjob_lgetkf_solver.ref - ${PROJECT_SOURCE_DIR}/test/testoutput/atm_jjob_lgetkf_fv3inc.ref - ${PROJECT_SOURCE_DIR}/test/testoutput/atm_jjob_lgetkf.ref +# ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_3dvar.ref +# ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref +# ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref +# ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref +# ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf_fv3inc.ref + ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_3dvar.ref + ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_3dvar-fv3inc.ref + ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf_observer.ref + ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf_solver.ref + ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf_fv3inc.ref + ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf.ref ) # symlink diff --git a/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 b/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 index 0bd8f18f6..c35cc2295 100644 --- a/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_variational # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/atm_jjob_3dvar-fv3inc.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/atm_jjob_3dvar-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/atm_jjob_3dvar-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_3dvar-fv3inc.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 b/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 index daf11aaa4..47e250044 100644 --- a/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 @@ -17,7 +17,7 @@ atmosphere_obsdatain_suffix: ".{{ current_cycle | to_YMDH }}.nc" # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/atm_jjob_3dvar.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/atm_jjob_3dvar.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/atm_jjob_3dvar.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_3dvar.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 index ce5740af5..7f4ab37b2 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_lgetkf # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/atm_jjob_lgetkf-fv3inc.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/atm_jjob_lgetkf-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/atm_jjob_lgetkf-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf-fv3inc.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 index 069322ea3..169484a29 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 @@ -22,7 +22,7 @@ atmosphere_obsdatain_suffix: ".{{ current_cycle | to_YMDH }}.nc" # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/atm_jjob_lgetkf.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/atm_jjob_lgetkf.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/atm_jjob_lgetkf.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 index f197c6367..243c8d840 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 @@ -28,7 +28,7 @@ distribution_type: RoundRobin # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/atm_jjob_lgetkf_observer.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/atm_jjob_lgetkf_observer.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/atm_jjob_lgetkf_observer.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf_observer.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 index 2525c5c1c..f6faef6c1 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 @@ -28,7 +28,7 @@ distribution_type: Halo # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testreference/atm_jjob_lgetkf_solver.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/test/gdas/testoutput/atm_jjob_lgetkf_solver.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/atm_jjob_lgetkf_solver.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf_solver.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 From 692eed0dad6d9718f43503b3d04b412598e35a7d Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Fri, 22 Nov 2024 22:10:52 +0000 Subject: [PATCH 48/60] Save progress before the weekend --- parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 | 2 +- test/CMakeLists.txt | 10 +- .../C96C48_ufs_hybatmDA_3dvar-fv3inc.ref | 41 ++++ .../C96C48_ufs_hybatmDA_3dvar.ref | 124 ++++++++++++ .../C96C48_ufs_hybatmDA_fv3inc.ref | 0 .../C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref | 0 .../C96C48_ufs_hybatmDA_lgetkf.ref | 0 .../C96C48_ufs_hybatmDA_lgetkf_observer.ref | 126 ++++++++++++ .../C96C48_ufs_hybatmDA_lgetkf_solver.ref | 180 ++++++++++++++++++ 9 files changed, 477 insertions(+), 6 deletions(-) create mode 100644 test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref create mode 100644 test/testreference/C96C48_ufs_hybatmDA_3dvar.ref create mode 100644 test/testreference/C96C48_ufs_hybatmDA_fv3inc.ref create mode 100644 test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref create mode 100644 test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref create mode 100644 test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref create mode 100644 test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref diff --git a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 index 1e6216bea..edc5c2858 100644 --- a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 @@ -51,6 +51,6 @@ distribution_type: Halo # Testing things # -------------- test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas/cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.out +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index a254b4115..ab0ddc191 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -90,11 +90,11 @@ file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/testreference) # list of test reference files to install list(APPEND test_reference ${PROJECT_SOURCE_DIR}/test/testreference/amsua_n19_gdas.yaml -# ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_3dvar.ref -# ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref -# ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref -# ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref -# ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf_fv3inc.ref + ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_3dvar.ref + ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref + ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref + ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref + ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_3dvar.ref ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_3dvar-fv3inc.ref ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf_observer.ref diff --git a/test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref b/test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref new file mode 100644 index 000000000..6f3adb18d --- /dev/null +++ b/test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref @@ -0,0 +1,41 @@ +Background State: + +---------------------------------------------------------------------------------------------------- +State print | number of fields = 9 | cube sphere face size: C96 +eastward_wind | Min:-8.7593299865722656e+01 Max:+1.1421906280517578e+02 RMS:+1.7446423933066384e+01 +northward_wind | Min:-9.0978759765625000e+01 Max:+8.9302459716796875e+01 RMS:+9.8048456519148388e+00 +air_temperature | Min:+1.7290483093261719e+02 Max:+3.1017132568359375e+02 RMS:+2.5022377762999352e+02 +air_pressure_at_surface | Min:+5.1309082031250000e+04 Max:+1.0433011718750000e+05 RMS:+9.8914626690611054e+04 +water_vapor_mixing_ratio_wrt_moist_air | Min:+9.9999986069576607e-10 Max:+2.1381899714469910e-02 RMS:+5.0230919069545812e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+5.7223520707339048e-04 RMS:+9.4296924830407741e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.6279185656458139e-03 RMS:+3.7809568286336720e-05 +ozone_mass_mixing_ratio | Min:+3.6120087476554374e-10 Max:+1.7313132048002444e-05 RMS:+4.4655432291945023e-06 +geopotential_height_at_surface | Min:-2.9894643783569336e+01 Max:+5.3870561523437500e+03 RMS:+6.4442219321892003e+02 +---------------------------------------------------------------------------------------------------- +JEDI Increment: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 8 | cube sphere face size: C48 +eastward_wind | Min:-2.1115621251510674e-07 Max:+1.1444664416160322e-07 RMS:+1.8401316033983295e-09 +northward_wind | Min:-1.0219621415785696e-07 Max:+2.6249988138715707e-07 RMS:+1.8295902505163720e-09 +air_temperature | Min:-5.2000757477799198e-08 Max:+6.6504355800134363e-08 RMS:+7.1626194815483433e-10 +air_pressure_at_surface | Min:-2.0445149857550859e-06 Max:+9.8957389127463102e-07 RMS:+4.2160438885855514e-08 +water_vapor_mixing_ratio_wrt_moist_air | Min:-3.5212104499554586e-11 Max:+2.4915642032191654e-11 RMS:+2.7352479311235747e-13 +cloud_liquid_ice | Min:-5.2622388732733935e-13 Max:+3.8117236092690345e-13 RMS:+3.4198803820164734e-15 +cloud_liquid_water | Min:-1.1565164516162685e-11 Max:+3.1649457890922744e-12 RMS:+1.5995494806702646e-14 +ozone_mass_mixing_ratio | Min:-1.0346794247831136e-06 Max:+1.3451623930433847e-06 RMS:+3.6858146749007146e-08 +---------------------------------------------------------------------------------------------------- +FV3 Increment: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 9 | cube sphere face size: C48 +eastward_wind | Min:-2.1115621251510674e-07 Max:+1.1444664416160322e-07 RMS:+1.8401316033983295e-09 +northward_wind | Min:-1.0219621415785696e-07 Max:+2.6249988138715707e-07 RMS:+1.8295902505163720e-09 +air_temperature | Min:-5.2000757477799198e-08 Max:+6.6504355800134363e-08 RMS:+7.1626194815483433e-10 +water_vapor_mixing_ratio_wrt_moist_air | Min:-3.5212104499554586e-11 Max:+2.4915642032191654e-11 RMS:+2.7352479311235747e-13 +cloud_liquid_ice | Min:-5.2622388732733935e-13 Max:+3.8117236092690345e-13 RMS:+3.4198803820164734e-15 +cloud_liquid_water | Min:-1.1565164516162685e-11 Max:+3.1649457890922744e-12 RMS:+1.5995494806702646e-14 +ozone_mass_mixing_ratio | Min:-1.0346794247831136e-06 Max:+1.3451623930433847e-06 RMS:+3.6858146749007146e-08 +air_pressure_thickness | Min:-3.8906364352442324e-08 Max:+1.7884758563013747e-08 RMS:+4.2747856122164087e-10 +layer_thickness | Min:-1.9763365344260819e-07 Max:+1.8311084204469807e-07 RMS:+3.6402384455212584e-09 +---------------------------------------------------------------------------------------------------- diff --git a/test/testreference/C96C48_ufs_hybatmDA_3dvar.ref b/test/testreference/C96C48_ufs_hybatmDA_3dvar.ref new file mode 100644 index 000000000..711f08fb2 --- /dev/null +++ b/test/testreference/C96C48_ufs_hybatmDA_3dvar.ref @@ -0,0 +1,124 @@ +CostJb : Nonlinear Jb = 0.0000000000000000e+00 +CostJo : Nonlinear Jo(Aircraft) = 6.0590797038184456e+05, nobs = 504555, Jo/n = 1.2008759607611550e+00, err = 2.2437239435917040e+00 +CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 1.5949936485170507e+04, nobs = 26314, Jo/n = 6.0613880387514274e-01, err = 1.8277692518568445e+00 +CostJo : Nonlinear Jo(ATMS N20) = 4.8387730216799086e+04, nobs = 156588, Jo/n = 3.0901301643037199e-01, err = 5.2594000470964719e+00 +CostJo : Nonlinear Jo(surface_ps) = 2.6308196193705146e+04, nobs = 107322, Jo/n = 2.4513330159431565e-01, err = 5.9305643428180190e+02 +CostJo : Nonlinear Jo(gnssrobndnbam) = 6.1501893265653157e+05, nobs = 473864, Jo/n = 1.2978806844506685e+00, err = 3.2933330370258057e-04 +CostJo : Nonlinear Jo(ompsnp_npp) = 2.1269336098572853e+03, nobs = 3087, Jo/n = 6.8899695816562534e-01, err = 2.4001367423170068e+00 +CostJo : Nonlinear Jo(ompstc_npp) = 3.3784707883660294e+03, nobs = 3696, Jo/n = 9.1408841676570063e-01, err = 6.0000000000000000e+00 +CostJo : Nonlinear Jo(satwind_goes-16) = 6.9383960384868606e+03, nobs = 193154, Jo/n = 3.5921575729660586e-02, err = 1.1892541771722902e+01 +CostFunction: Nonlinear J = 1.3240165663707610e+06 +DRPCGMinimizer: reduction in residual norm = 2.8257552285466486e-01 +CostFunction::addIncrement: Analysis: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 22 | cube sphere face size: C96 +eastward_wind | Min:-8.7593299865709369e+01 Max:+1.1421906280506562e+02 RMS:+1.7446423933063677e+01 +northward_wind | Min:-9.0978759765616502e+01 Max:+8.9302459716826505e+01 RMS:+9.8048456519093889e+00 +air_temperature | Min:+1.7290483093261747e+02 Max:+3.1017132568363934e+02 RMS:+2.5022377762999326e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7837935791015625e+03 RMS:+9.5699700087025974e+02 +air_pressure_at_surface | Min:+5.1309082031249884e+04 Max:+1.0433011718749903e+05 RMS:+9.8914626690610530e+04 +water_vapor_mixing_ratio_wrt_moist_air | Min:+9.9999986088507587e-10 Max:+2.1381899714470930e-02 RMS:+5.0230919069543158e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+5.7223520707321528e-04 RMS:+9.4296924830162644e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.6279185656660684e-03 RMS:+3.7809568286304757e-05 +ozone_mass_mixing_ratio | Min:+3.8859406171368113e-10 Max:+1.7313133576612057e-05 RMS:+4.4663053755671636e-06 +geopotential_height_at_surface | Min:-2.9894643783569336e+01 Max:+5.3870561523437500e+03 RMS:+6.4442219321892003e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5312859958249614e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.6371386718750000e+02 RMS:+2.2054824502787593e+01 +skin_temperature_at_surface | Min:+2.1746235656738281e+02 Max:+3.2932260131835938e+02 RMS:+2.8737006087270038e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+5.8667091445155686e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.3549806522511076e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8026573181152344e+01 RMS:+1.9275201636346665e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.2045886230468750e+02 RMS:+2.8806776004459306e+02 +soilMoistureVolumetric | Min:+2.1923782303929329e-02 Max:+1.0000000000000000e+00 RMS:+8.6145451167852249e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.2327475547790527e+00 RMS:+1.5878111306662487e-01 +eastward_wind_at_surface | Min:-1.8106302261352539e+01 Max:+2.0922132492065430e+01 RMS:+5.2142386237867280e+00 +northward_wind_at_surface | Min:-2.0834318161010742e+01 Max:+1.9025196075439453e+01 RMS:+4.8322666159970842e+00 +f10m | Min:+9.3901658058166504e-01 Max:+1.0698120594024658e+00 RMS:+9.9592865511053685e-01 +---------------------------------------------------------------------------------------------------- + + + +Obs bias coefficients: +--------------------------------------------------------------- + constant: Min= -0.8381630182271099, Max= 0.8200770020481498, Norm= 2.2810923110282308 + lapseRate_order_2: Min= -0.2969009876260876, Max= 0.3889850080012900, Norm= 0.7014865852485521 + lapseRate: Min= -0.5954660177230082, Max= 1.6232719421370738, Norm= 2.1316868531033393 + emissivityJacobian: Min= -0.0097089996561411, Max= 8.3582897185072884, Norm= 10.2580018725806656 +sensorScanAngle_order_4: Min= -3.4036920070662289, Max= 0.8113600015621025, Norm= 4.8886281019448123 +sensorScanAngle_order_3: Min= -0.7697319984440882, Max= 0.3303030133246191, Norm= 0.9762309707883376 +sensorScanAngle_order_2: Min= -0.5401099920283099, Max= 2.2389800548543319, Norm= 2.4920946301939773 + sensorScanAngle: Min= -0.1069049984217430, Max= 0.4472059905526856, Norm= 0.8480380113023768 +--------------------------------------------------------------- + + + + + + +CostJb : Nonlinear Jb = 0.0000000000001377 +CostJo : Nonlinear Jo(Aircraft) = 605907.9700265740975738, nobs = 504555, Jo/n = 1.2008759600570287, err = 2.2437239435917040 +CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 15949.9364848986988363, nobs = 26314, Jo/n = 0.6061388038648133, err = 1.8277692518568445 +CostJo : Nonlinear Jo(ATMS N20) = 48387.7302149529932649, nobs = 156588, Jo/n = 0.3090130164185825, err = 5.2594000470964719 +CostJo : Nonlinear Jo(surface_ps) = 26308.1961930343022686, nobs = 107322, Jo/n = 0.2451333015880649, err = 593.0564342818018986 +CostJo : Nonlinear Jo(gnssrobndnbam) = 615018.9326265617273748, nobs = 473864, Jo/n = 1.2978806843874229, err = 0.0003293333037026 +CostJo : Nonlinear Jo(ompsnp_npp) = 1931.1242066182112467, nobs = 3087, Jo/n = 0.6255666364166541, err = 2.4001367423170068 +CostJo : Nonlinear Jo(ompstc_npp) = 1175.2354163386241908, nobs = 3696, Jo/n = 0.3179749503080693, err = 6.0000000000000000 +CostJo : Nonlinear Jo(satwind_goes-16) = 6938.3960383742578415, nobs = 193154, Jo/n = 0.0359215757290776, err = 11.8925417717229021 +CostFunction: Nonlinear J = 1321617.5212073526345193 +DRPCGMinimizer: reduction in residual norm = 0.8446076379600224 +CostFunction::addIncrement: Analysis: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 22 | cube sphere face size: C96 +eastward_wind | Min:-8.7593299865597274e+01 Max:+1.1421906280413639e+02 RMS:+1.7446423933041416e+01 +northward_wind | Min:-9.0978759765544794e+01 Max:+8.9302459717076374e+01 RMS:+9.8048456518642482e+00 +air_temperature | Min:+1.7290483093261994e+02 Max:+3.1017132568402411e+02 RMS:+2.5022377762999653e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7837935791015625e+03 RMS:+9.5699700087025974e+02 +air_pressure_at_surface | Min:+5.1309082031248872e+04 Max:+1.0433011718749085e+05 RMS:+9.8914626690605888e+04 +water_vapor_mixing_ratio_wrt_moist_air | Min:+9.9999986293294490e-10 Max:+2.1381899714479527e-02 RMS:+5.0230919069522385e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+5.7223520707173773e-04 RMS:+9.4296924828094189e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.6279185658369072e-03 RMS:+3.7809568286035265e-05 +ozone_mass_mixing_ratio | Min:+0.0000000000000000e+00 Max:+1.7393152519974760e-05 RMS:+4.4687802775349384e-06 +geopotential_height_at_surface | Min:-2.9894643783569336e+01 Max:+5.3870561523437500e+03 RMS:+6.4442219321892003e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5312859958249614e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.6371386718750000e+02 RMS:+2.2054824502787593e+01 +skin_temperature_at_surface | Min:+2.1746235656738281e+02 Max:+3.2932260131835938e+02 RMS:+2.8737006087270038e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+5.8667091445155686e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.3549806522511076e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8026573181152344e+01 RMS:+1.9275201636346665e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.2045886230468750e+02 RMS:+2.8806776004459306e+02 +soilMoistureVolumetric | Min:+2.1923782303929329e-02 Max:+1.0000000000000000e+00 RMS:+8.6145451167852249e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.2327475547790527e+00 RMS:+1.5878111306662487e-01 +eastward_wind_at_surface | Min:-1.8106302261352539e+01 Max:+2.0922132492065430e+01 RMS:+5.2142386237867280e+00 +northward_wind_at_surface | Min:-2.0834318161010742e+01 Max:+1.9025196075439453e+01 RMS:+4.8322666159970842e+00 +f10m | Min:+9.3901658058166504e-01 Max:+1.0698120594024658e+00 RMS:+9.9592865511053685e-01 +---------------------------------------------------------------------------------------------------- + + + +Obs bias coefficients: +--------------------------------------------------------------- + constant: Min= -0.8381630182312128, Max= 0.8200770020452602, Norm= 2.2810923110345662 + lapseRate_order_2: Min= -0.2969009876342316, Max= 0.3889850080009739, Norm= 0.7014865852476552 + lapseRate: Min= -0.5954660177223734, Max= 1.6232719421235957, Norm= 2.1316868530892328 + emissivityJacobian: Min= -0.0097089996561434, Max= 8.3582897174897202, Norm= 10.2580018711068170 +sensorScanAngle_order_4: Min= -3.4036920070781176, Max= 0.8113600015458797, Norm= 4.8886281019598847 +sensorScanAngle_order_3: Min= -0.7697319984481772, Max= 0.3303030133236201, Norm= 0.9762309707916220 +sensorScanAngle_order_2: Min= -0.5401099920369742, Max= 2.2389800548457712, Norm= 2.4920946301898259 + sensorScanAngle: Min= -0.1069049984223674, Max= 0.4472059905508586, Norm= 0.8480380112990616 +--------------------------------------------------------------- + + + + + + +CostJb : Nonlinear Jb = 0.0000000000008880 +CostJo : Nonlinear Jo(Aircraft) = 605907.9670297848060727, nobs = 504555, Jo/n = 1.2008759541175587, err = 2.2437239435917040 +CostJo : Nonlinear Jo(ascatw_ascat_metop-b) = 15949.9364826060973428, nobs = 26314, Jo/n = 0.6061388037776886, err = 1.8277692518568445 +CostJo : Nonlinear Jo(ATMS N20) = 48387.7301996692985995, nobs = 156588, Jo/n = 0.3090130163209780, err = 5.2594000470964719 +CostJo : Nonlinear Jo(surface_ps) = 26308.1961873747168283, nobs = 107322, Jo/n = 0.2451333015353303, err = 593.0564342818018986 +CostJo : Nonlinear Jo(gnssrobndnbam) = 615018.9323734971694648, nobs = 473864, Jo/n = 1.2978806838533781, err = 0.0003293333037026 +CostJo : Nonlinear Jo(ompsnp_npp) = 1105.2453930547394521, nobs = 3087, Jo/n = 0.3580321972966438, err = 2.4001367423170068 +CostJo : Nonlinear Jo(ompstc_npp) = 842.3521445536282499, nobs = 3696, Jo/n = 0.2279091300199211, err = 6.0000000000000000 +CostJo : Nonlinear Jo(satwind_goes-16) = 6938.3960374245170897, nobs = 193154, Jo/n = 0.0359215757241606, err = 11.8925417717229021 +CostFunction: Nonlinear J = 1320458.7558479649014771 diff --git a/test/testreference/C96C48_ufs_hybatmDA_fv3inc.ref b/test/testreference/C96C48_ufs_hybatmDA_fv3inc.ref new file mode 100644 index 000000000..e69de29bb diff --git a/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref b/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref new file mode 100644 index 000000000..e69de29bb diff --git a/test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref b/test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref new file mode 100644 index 000000000..e69de29bb diff --git a/test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref b/test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref new file mode 100644 index 000000000..e85f63696 --- /dev/null +++ b/test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref @@ -0,0 +1,126 @@ +Initial state for member 1: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 23 | cube sphere face size: C48 +eastward_wind | Min:-8.4384330749511719e+01 Max:+1.1146717834472656e+02 RMS:+1.7423407399233511e+01 +northward_wind | Min:-8.6144805908203125e+01 Max:+8.9331993103027344e+01 RMS:+1.0017299694477179e+01 +air_temperature | Min:+1.7350303649902344e+02 Max:+3.0961535644531250e+02 RMS:+2.5015669840056216e+02 +layer_thickness | Min:-3.0059777832031250e+03 Max:-1.6207923889160156e+01 RMS:+9.8503674614826332e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7881016845703125e+03 RMS:+9.5698921151558159e+02 +air_pressure_at_surface | Min:+5.2320046875000000e+04 Max:+1.0452482812500000e+05 RMS:+9.8914997456124955e+04 +water_vapor_mixing_ratio_wrt_moist_air | Min:+1.6847316430812498e-08 Max:+2.2395884618163109e-02 RMS:+5.0107896876815721e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.1855275048874319e-04 RMS:+1.0354889627583219e-05 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.3839458115398884e-03 RMS:+3.5588872198565459e-05 +ozone_mass_mixing_ratio | Min:+1.1339260641562987e-09 Max:+1.7277885490329936e-05 RMS:+4.4686682637740296e-06 +geopotential_height_at_surface | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.5217851257324219e+02 RMS:+2.2019818126018798e+01 +skin_temperature_at_surface | Min:+2.1759780883789062e+02 Max:+3.2456860351562500e+02 RMS:+2.8741259834843908e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.1568060302734375e+02 RMS:+2.8817196445239324e+02 +soilMoistureVolumetric | Min:+2.1992070600390434e-02 Max:+1.0000000000000000e+00 RMS:+8.4975035958924516e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0927191972732544e+00 RMS:+1.5092084570439257e-01 +eastward_wind_at_surface | Min:-1.8143459320068359e+01 Max:+2.0627843856811523e+01 RMS:+5.1169707890467366e+00 +northward_wind_at_surface | Min:-2.3821027755737305e+01 Max:+1.9497446060180664e+01 RMS:+4.8067548196805943e+00 +f10m | Min:+9.4103527069091797e-01 Max:+1.0685453414916992e+00 RMS:+9.9573423073115486e-01 +---------------------------------------------------------------------------------------------------- +Initial state for member 2: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 23 | cube sphere face size: C48 +eastward_wind | Min:-8.5966735839843750e+01 Max:+1.1211631774902344e+02 RMS:+1.7425666524535583e+01 +northward_wind | Min:-8.5594192504882812e+01 Max:+8.9450973510742188e+01 RMS:+1.0012910607932993e+01 +air_temperature | Min:+1.7322386169433594e+02 Max:+3.1173611450195312e+02 RMS:+2.5015480177211401e+02 +layer_thickness | Min:-3.0079758300781250e+03 Max:-1.6234376907348633e+01 RMS:+9.8509317417150282e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7860076904296875e+03 RMS:+9.5696337286916196e+02 +air_pressure_at_surface | Min:+5.2300289062500000e+04 Max:+1.0443091406250000e+05 RMS:+9.8912612346289476e+04 +water_vapor_mixing_ratio_wrt_moist_air | Min:+1.7588122958045460e-08 Max:+2.1704806014895439e-02 RMS:+4.9960608009716806e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.2980920989066362e-04 RMS:+9.7698907168770146e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.4689513482153416e-03 RMS:+3.5167035611299903e-05 +ozone_mass_mixing_ratio | Min:+2.9807353807420611e-10 Max:+1.7195472537423484e-05 RMS:+4.4692040486361164e-06 +geopotential_height_at_surface | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.4906845092773438e+02 RMS:+2.2004970461687567e+01 +skin_temperature_at_surface | Min:+2.1673643493652344e+02 Max:+3.2559057617187500e+02 RMS:+2.8745909600453388e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.1603344726562500e+02 RMS:+2.8817511849953127e+02 +soilMoistureVolumetric | Min:+2.1997468546032906e-02 Max:+1.0000000000000000e+00 RMS:+8.4973303187978066e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0929538011550903e+00 RMS:+1.5094966458993353e-01 +eastward_wind_at_surface | Min:-1.9632795333862305e+01 Max:+2.2031156539916992e+01 RMS:+5.1474973436096771e+00 +northward_wind_at_surface | Min:-2.2859689712524414e+01 Max:+1.9478809356689453e+01 RMS:+4.7531537396512338e+00 +f10m | Min:+9.4079720973968506e-01 Max:+1.0689357519149780e+00 RMS:+9.9569948613238035e-01 +---------------------------------------------------------------------------------------------------- +H(x) for member 1: +Aircraft nobs= 502771 Min=-80.55443499910179, Max=305.5072533751332, RMS=146.5850485230079 + +ascatw_ascat_metop-b nobs= 24988 Min=-14.90743210285059, Max=18.50735802131708, RMS=5.626101623328659 + +ATMS N20 nobs= 17107090 Min=129.7859007557375, Max=294.7571288275636, RMS=237.7675940436646 + +surface_ps nobs= 199096 Min=481.5556154686088, Max=106952.1342381349, RMS=94358.04308199322 + +gnssrobndnbam nobs= 792394 Min=3.54653995010946e-06, Max=0.05689811581521509, RMS=0.00729813001231048 + +ompsnp_npp nobs= 3652 Min=0.02233893266611933, Max=544.9735566336279, RMS=74.39666518228908 + +ompstc_npp nobs= 29925 Min=232.08666141862, Max=578.874275460677, RMS=330.1687050473581 + +satwind_goes-16 nobs= 192150 Min=-46.72026247379588, Max=73.49080322835941, RMS=13.50004896322415 + + +H(x) for member 2: +Aircraft nobs= 502771 Min=-83.52929132190421, Max=303.935382876328, RMS=146.5832501835669 + +ascatw_ascat_metop-b nobs= 24988 Min=-15.95012800292468, Max=19.32845599082289, RMS=5.590280602334444 + +ATMS N20 nobs= 17107090 Min=129.5870694672627, Max=294.7645909817928, RMS=237.7536249801317 + +surface_ps nobs= 199096 Min=475.424805046184, Max=106814.5789947868, RMS=94338.64524856347 + +gnssrobndnbam nobs= 792394 Min=3.535338326285228e-06, Max=0.05521000303350442, RMS=0.007290866963061116 + +ompsnp_npp nobs= 3652 Min=0.02236964099830396, Max=551.3730864849784, RMS=74.49227809990998 + +ompstc_npp nobs= 29925 Min=232.3157492522477, Max=581.8884351421542, RMS=330.2400711699158 + +satwind_goes-16 nobs= 192150 Min=-45.04364111939185, Max=72.45210083322863, RMS=13.31321129007812 + + +H(x) ensemble background mean: +Aircraft nobs= 670256 Min=-82.041863160503, Max=304.2592158533807, RMS=127.3605543707548 + +ascatw_ascat_metop-b nobs= 241220 Min=-15.81413469653508, Max=19.88922395519342, RMS=5.523473979723838 + +ATMS N20 nobs= 17107090 Min=129.6864851115001, Max=294.7608599046782, RMS=237.7603500470373 + +surface_ps nobs= 199096 Min=486.4346696969737, Max=106883.3566164608, RMS=94348.33691646729 + +gnssrobndnbam nobs= 792394 Min=3.540939138197344e-06, Max=0.04945358726186298, RMS=0.007290515506537144 + +ompsnp_npp nobs= 3652 Min=0.02235738516446045, Max=548.1733215593032, RMS=74.44382038546588 + +ompstc_npp nobs= 29925 Min=232.3457460802846, Max=580.3706053589909, RMS=330.2028035413688 + +satwind_goes-16 nobs= 1605788 Min=-48.18299380448379, Max=74.78775267937297, RMS=10.02015189273681 + + +background y - H(x): +Aircraft nobs= 514449 Min=-244.1546176605621, Max=114.0538314416612, RMS=3.825505485330922 + +ascatw_ascat_metop-b nobs= 241220 Min=-15.53489644753131, Max=19.32628866297402, RMS=2.327498313731722 + +ATMS N20 nobs= 17107090 Min=-139.4066954833384, Max=99999997810.8074, RMS=5096987910.765858 + +surface_ps nobs= 116459 Min=-101684.8005703992, Max=75903.15428094343, RMS=2988.11265787499 + +gnssrobndnbam nobs= 791231 Min=-0.0302615994327759, Max=0.01662471709650585, RMS=0.0008693038108764198 + +ompsnp_npp nobs= 3652 Min=-30.64844591762643, Max=60.86103708368728, RMS=3.943997228450417 + +ompstc_npp nobs= 28934 Min=-98.77455818390638, Max=716.7959660681558, RMS=17.05887006514246 + +satwind_goes-16 nobs= 1605788 Min=-51.62964751676423, Max=38.23192217860554, RMS=3.10218655904646 + + diff --git a/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref b/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref new file mode 100644 index 000000000..7c07c4dfa --- /dev/null +++ b/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref @@ -0,0 +1,180 @@ +Initial state for member 1: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 23 | cube sphere face size: C48 +eastward_wind | Min:-8.4384330749511719e+01 Max:+1.1146717834472656e+02 RMS:+1.7423407399233511e+01 +northward_wind | Min:-8.6144805908203125e+01 Max:+8.9331993103027344e+01 RMS:+1.0017299694477179e+01 +air_temperature | Min:+1.7350303649902344e+02 Max:+3.0961535644531250e+02 RMS:+2.5015669840056216e+02 +layer_thickness | Min:-3.0059777832031250e+03 Max:-1.6207923889160156e+01 RMS:+9.8503674614826332e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7881016845703125e+03 RMS:+9.5698921151558159e+02 +air_pressure_at_surface | Min:+5.2320046875000000e+04 Max:+1.0452482812500000e+05 RMS:+9.8914997456124955e+04 +water_vapor_mixing_ratio_wrt_moist_air | Min:+1.6847316430812498e-08 Max:+2.2395884618163109e-02 RMS:+5.0107896876815721e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.1855275048874319e-04 RMS:+1.0354889627583219e-05 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.3839458115398884e-03 RMS:+3.5588872198565459e-05 +ozone_mass_mixing_ratio | Min:+1.1339260641562987e-09 Max:+1.7277885490329936e-05 RMS:+4.4686682637740296e-06 +geopotential_height_at_surface | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.5217851257324219e+02 RMS:+2.2019818126018798e+01 +skin_temperature_at_surface | Min:+2.1759780883789062e+02 Max:+3.2456860351562500e+02 RMS:+2.8741259834843908e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.1568060302734375e+02 RMS:+2.8817196445239324e+02 +soilMoistureVolumetric | Min:+2.1992070600390434e-02 Max:+1.0000000000000000e+00 RMS:+8.4975035958924516e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0927191972732544e+00 RMS:+1.5092084570439257e-01 +eastward_wind_at_surface | Min:-1.8143459320068359e+01 Max:+2.0627843856811523e+01 RMS:+5.1169707890467366e+00 +northward_wind_at_surface | Min:-2.3821027755737305e+01 Max:+1.9497446060180664e+01 RMS:+4.8067548196805943e+00 +f10m | Min:+9.4103527069091797e-01 Max:+1.0685453414916992e+00 RMS:+9.9573423073115486e-01 +---------------------------------------------------------------------------------------------------- +Initial state for member 2: +---------------------------------------------------------------------------------------------------- +State print | number of fields = 23 | cube sphere face size: C48 +eastward_wind | Min:-8.5966735839843750e+01 Max:+1.1211631774902344e+02 RMS:+1.7425666524535583e+01 +northward_wind | Min:-8.5594192504882812e+01 Max:+8.9450973510742188e+01 RMS:+1.0012910607932993e+01 +air_temperature | Min:+1.7322386169433594e+02 Max:+3.1173611450195312e+02 RMS:+2.5015480177211401e+02 +layer_thickness | Min:-3.0079758300781250e+03 Max:-1.6234376907348633e+01 RMS:+9.8509317417150282e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7860076904296875e+03 RMS:+9.5696337286916196e+02 +air_pressure_at_surface | Min:+5.2300289062500000e+04 Max:+1.0443091406250000e+05 RMS:+9.8912612346289476e+04 +water_vapor_mixing_ratio_wrt_moist_air | Min:+1.7588122958045460e-08 Max:+2.1704806014895439e-02 RMS:+4.9960608009716806e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.2980920989066362e-04 RMS:+9.7698907168770146e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.4689513482153416e-03 RMS:+3.5167035611299903e-05 +ozone_mass_mixing_ratio | Min:+2.9807353807420611e-10 Max:+1.7195472537423484e-05 RMS:+4.4692040486361164e-06 +geopotential_height_at_surface | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.4906845092773438e+02 RMS:+2.2004970461687567e+01 +skin_temperature_at_surface | Min:+2.1673643493652344e+02 Max:+3.2559057617187500e+02 RMS:+2.8745909600453388e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.1603344726562500e+02 RMS:+2.8817511849953127e+02 +soilMoistureVolumetric | Min:+2.1997468546032906e-02 Max:+1.0000000000000000e+00 RMS:+8.4973303187978066e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0929538011550903e+00 RMS:+1.5094966458993353e-01 +eastward_wind_at_surface | Min:-1.9632795333862305e+01 Max:+2.2031156539916992e+01 RMS:+5.1474973436096771e+00 +northward_wind_at_surface | Min:-2.2859689712524414e+01 Max:+1.9478809356689453e+01 RMS:+4.7531537396512338e+00 +f10m | Min:+9.4079720973968506e-01 Max:+1.0689357519149780e+00 RMS:+9.9569948613238035e-01 +---------------------------------------------------------------------------------------------------- +H(x) for member 1: +Aircraft nobs= 502771 Min=-80.55443572998047, Max=305.5072631835938, RMS=146.5850485206547 + +ascatw_ascat_metop-b nobs= 24988 Min=-14.90743255615234, Max=18.50735855102539, RMS=5.626101621409232 + +ATMS N20 nobs= 17107090 Min=129.7859039306641, Max=294.7571411132812, RMS=237.7675940456118 + +surface_ps nobs= 199096 Min=481.5556030273438, Max=106952.1328125, RMS=94358.04310219502 + +gnssrobndnbam nobs= 792394 Min=3.546540028764866e-06, Max=0.05689811706542969, RMS=0.007298130011564753 + +ompsnp_npp nobs= 3652 Min=0.02233893238008022, Max=544.9735717773438, RMS=74.39666527674214 + +ompstc_npp nobs= 29925 Min=232.0866546630859, Max=578.874267578125, RMS=330.1687049872166 + +satwind_goes-16 nobs= 192150 Min=-46.72026062011719, Max=73.49080657958984, RMS=13.50004896377961 + + +H(x) for member 2: +Aircraft nobs= 502771 Min=-83.52928924560547, Max=303.9353942871094, RMS=146.5832501984888 + +ascatw_ascat_metop-b nobs= 24988 Min=-15.95012760162354, Max=19.32845687866211, RMS=5.590280603593994 + +ATMS N20 nobs= 17107090 Min=129.5870666503906, Max=294.7645874023438, RMS=237.7536249814979 + +surface_ps nobs= 199096 Min=475.4248046875, Max=106814.578125, RMS=94338.64525474468 + +gnssrobndnbam nobs= 792394 Min=3.53533823727048e-06, Max=0.05521000176668167, RMS=0.007290866961668531 + +ompsnp_npp nobs= 3652 Min=0.02236964181065559, Max=551.3731079101562, RMS=74.49227830514708 + +ompstc_npp nobs= 29925 Min=232.3157501220703, Max=581.888427734375, RMS=330.2400711798879 + +satwind_goes-16 nobs= 192150 Min=-45.04364013671875, Max=72.45210266113281, RMS=13.31321128986013 + + +H(x) ensemble background mean: +Aircraft nobs= 502771 Min=-82.04186248779297, Max=304.2592163085938, RMS=146.582395066166 + +ascatw_ascat_metop-b nobs= 24988 Min=-15.35133123397827, Max=18.91790771484375, RMS=5.590053671147163 + +ATMS N20 nobs= 17107090 Min=129.6864852905273, Max=294.7608642578125, RMS=237.7603500486925 + +surface_ps nobs= 199096 Min=486.4346618652344, Max=106883.35546875, RMS=94348.33692965737 + +gnssrobndnbam nobs= 792394 Min=3.540939133017673e-06, Max=0.04945358820259571, RMS=0.007290515505449794 + +ompsnp_npp nobs= 3652 Min=0.02235738560557365, Max=548.17333984375, RMS=74.44382053535134 + +ompstc_npp nobs= 29925 Min=232.3457412719727, Max=580.37060546875, RMS=330.2028035163413 + +satwind_goes-16 nobs= 192150 Min=-45.88195037841797, Max=72.75027465820312, RMS=13.36167441823028 + + +background y - H(x): +Aircraft nobs= 502771 Min=-18.89637756347656, Max=18.92713928222656, RMS=3.217299765305571 + +ascatw_ascat_metop-b nobs= 24988 Min=-4.990096844732761, Max=4.997781611979008, RMS=1.78136290653079 + +ATMS N20 nobs= 17107090 Min=-139.4066925048828, Max=99999997810.8074, RMS=5096987910.765857 + +surface_ps nobs= 116459 Min=-101684.80078125, Max=75903.154296875, RMS=2988.112660654301 + +gnssrobndnbam nobs= 791231 Min=-0.03026160039007664, Max=0.01662471704185009, RMS=0.000869303809760421 + +ompsnp_npp nobs= 3652 Min=-30.64844512939453, Max=60.86103820800781, RMS=3.943997189932038 + +ompstc_npp nobs= 28934 Min=-98.7745361328125, Max=716.7959594726562, RMS=17.05887006085864 + +satwind_goes-16 nobs= 192150 Min=-17.58694839477539, Max=18.68439626693726, RMS=3.267043143712932 + + +Background mean : +---------------------------------------------------------------------------------------------------- +State print | number of fields = 23 | cube sphere face size: C48 +eastward_wind | Min:-8.5175533294677734e+01 Max:+1.1179174804687500e+02 RMS:+1.7400557939433298e+01 +northward_wind | Min:-8.5735511779785156e+01 Max:+8.9157825469970703e+01 RMS:+9.9701645189144461e+00 +air_temperature | Min:+1.7338398742675781e+02 Max:+3.1067573547363281e+02 RMS:+2.5015547362929473e+02 +layer_thickness | Min:-3.0054658203125000e+03 Max:-1.6221150398254395e+01 RMS:+9.8506306362137718e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7870546875000000e+03 RMS:+9.5697619937906575e+02 +air_pressure_at_surface | Min:+5.2310167968750000e+04 Max:+1.0447787109375000e+05 RMS:+9.8913797930278190e+04 +water_vapor_mixing_ratio_wrt_moist_air | Min:+2.9691944014587079e-08 Max:+2.1115131676197052e-02 RMS:+4.9994705712860729e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+3.6185300268698484e-04 RMS:+9.3862057121105856e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.2367462622933090e-03 RMS:+3.1415946634547486e-05 +ozone_mass_mixing_ratio | Min:+7.5237392704874395e-10 Max:+1.7233576727448963e-05 RMS:+4.4688532813447449e-06 +geopotential_height_at_surface | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.4910437774658203e+02 RMS:+2.2007651817656669e+01 +skin_temperature_at_surface | Min:+2.1716712188720703e+02 Max:+3.2174871826171875e+02 RMS:+2.8743544448926787e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.1577014160156250e+02 RMS:+2.8817349407786276e+02 +soilMoistureVolumetric | Min:+2.1994769573211670e-02 Max:+1.0000000000000000e+00 RMS:+8.4973696890011863e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0928364992141724e+00 RMS:+1.5091512135815568e-01 +eastward_wind_at_surface | Min:-1.8888127326965332e+01 Max:+2.1329500198364258e+01 RMS:+5.1094029653114390e+00 +northward_wind_at_surface | Min:-2.3228111267089844e+01 Max:+1.8953988075256348e+01 RMS:+4.7537442465404594e+00 +f10m | Min:+9.4170856475830078e-01 Max:+1.0687405467033386e+00 RMS:+9.9571647867703006e-01 +---------------------------------------------------------------------------------------------------- +Analysis mean : +---------------------------------------------------------------------------------------------------- +State print | number of fields = 23 | cube sphere face size: C48 +eastward_wind | Min:-8.4774324321502988e+01 Max:+1.1170619450293722e+02 RMS:+1.7400375509763755e+01 +northward_wind | Min:-8.7214121288366655e+01 Max:+8.9233807495233577e+01 RMS:+9.9938074328966984e+00 +air_temperature | Min:+1.7338398731904834e+02 Max:+3.1021734492129713e+02 RMS:+2.5015182619184384e+02 +layer_thickness | Min:-3.0054658092822870e+03 Max:-1.6234013903099573e+01 RMS:+9.8506487778080520e+02 +air_pressure_thickness | Min:+6.0599988698959351e-01 Max:+1.7869309532732013e+03 RMS:+9.5697423778426378e+02 +air_pressure_at_surface | Min:+5.2310167956090001e+04 Max:+1.0447787101137359e+05 RMS:+9.8913797926518338e+04 +water_vapor_mixing_ratio_wrt_moist_air | Min:+0.0000000000000000e+00 Max:+2.1115131089317944e-02 RMS:+4.9974721017221301e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.4276663301760246e-04 RMS:+9.6220406276590353e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.3226195416814611e-03 RMS:+3.3209346549199534e-05 +ozone_mass_mixing_ratio | Min:+1.0218316416270972e-09 Max:+1.7364107739907706e-05 RMS:+4.4689530099725226e-06 +geopotential_height_at_surface | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5462209907135938e-01 +sheleg | Min:+0.0000000000000000e+00 Max:+2.4910437774658203e+02 RMS:+2.2007651817656669e+01 +skin_temperature_at_surface | Min:+2.1716712188720703e+02 Max:+3.2174871826171875e+02 RMS:+2.8743544448926787e+02 +vtype | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+01 RMS:+6.1246929250310931e+00 +stype | Min:+0.0000000000000000e+00 Max:+1.6000000000000000e+01 RMS:+4.5755536879077185e+00 +vfrac | Min:+0.0000000000000000e+00 Max:+9.8551864624023438e+01 RMS:+2.0170282476619530e+01 +stc | Min:+2.0000000000000000e+02 Max:+3.1577014160156250e+02 RMS:+2.8817349407786276e+02 +soilMoistureVolumetric | Min:+2.1994769573211670e-02 Max:+1.0000000000000000e+00 RMS:+8.4973696890011863e-01 +totalSnowDepthMeters | Min:+0.0000000000000000e+00 Max:+1.0928364992141724e+00 RMS:+1.5091512135815568e-01 +eastward_wind_at_surface | Min:-1.8888127326965332e+01 Max:+2.1329500198364258e+01 RMS:+5.1094029653114390e+00 +northward_wind_at_surface | Min:-2.3228111267089844e+01 Max:+1.8953988075256348e+01 RMS:+4.7537442465404594e+00 +f10m | Min:+9.4170856475830078e-01 Max:+1.0687405467033386e+00 RMS:+9.9571647867703006e-01 +---------------------------------------------------------------------------------------------------- From 3e8ae90230a70b18a8018ae11451910e3772d75d Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Sun, 24 Nov 2024 14:06:11 +0000 Subject: [PATCH 49/60] Add marine var regression test --- parm/soca/marine-jcb-3dfgat.yaml.j2 | 7 +++ parm/soca/marine-jcb-base.yaml | 4 ++ test/CMakeLists.txt | 3 +- .../C48mx500_3DVarAOWCDA_3dfgat.ref | 54 +++++++++++++++++++ 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 test/testreference/C48mx500_3DVarAOWCDA_3dfgat.ref diff --git a/parm/soca/marine-jcb-3dfgat.yaml.j2 b/parm/soca/marine-jcb-3dfgat.yaml.j2 index acdfa002d..9a5808e13 100644 --- a/parm/soca/marine-jcb-3dfgat.yaml.j2 +++ b/parm/soca/marine-jcb-3dfgat.yaml.j2 @@ -3,3 +3,10 @@ algorithm: 3dfgat # Observations observations: !INC ${OBS_LIST_SHORT} + +# Testing things +# -------------- +test_reference_filename: '{{HOMEgfs}}/sorc/gdas.cd/build/gdas/test/testreference/C48mx500_3DVarAOWCDA_3dfgat.ref' +test_output_filename: '{{HOMEgfs}}/sorc/gdas.cd/build/gdas/test/testoutput/C48mx500_3DVarAOWCDA_3dfgat.out' +test_float_relative_tolerance: 1.0e-3 +test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/soca/marine-jcb-base.yaml b/parm/soca/marine-jcb-base.yaml index 3a9d40223..1b55dc7d2 100644 --- a/parm/soca/marine-jcb-base.yaml +++ b/parm/soca/marine-jcb-base.yaml @@ -26,6 +26,10 @@ final_prints_frequency: PT3H number_of_outer_loops: 1 analysis_variables: [sea_ice_area_fraction, sea_ice_thickness, sea_ice_snow_thickness, sea_water_salinity, sea_water_potential_temperature, eastward_sea_water_velocity, northward_sea_water_velocity, sea_surface_height_above_geoid] +# Testing +# ------- + +do_testing: '{{ DO_TEST_MODE | default(false, true) }}' # Model things # ------------ diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index ab0ddc191..9d9853ca0 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -100,7 +100,8 @@ list(APPEND test_reference ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf_observer.ref ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf_solver.ref ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf_fv3inc.ref - ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf.ref + ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf.ref + ${PROJECT_SOURCE_DIR}/test/testreference/C48mx500_3DVarAOWCDA_3dfgat.ref ) # symlink diff --git a/test/testreference/C48mx500_3DVarAOWCDA_3dfgat.ref b/test/testreference/C48mx500_3DVarAOWCDA_3dfgat.ref new file mode 100644 index 000000000..b28df9aec --- /dev/null +++ b/test/testreference/C48mx500_3DVarAOWCDA_3dfgat.ref @@ -0,0 +1,54 @@ +Norm of input parameter StdDev: 4.1916150456516459e+02 +CostJb : Nonlinear Jb = 0.0000000000000000e+00 +CostJo : Nonlinear Jo(adt_rads_all) = 3.6538107293180053e+02, nobs = 154056, Jo/n = 2.3717419180804417e-03, err = 3.5902523361909755e+00 +CostJo : Nonlinear Jo(sst_avhrr_ma_l3u) = 2.2674500789797807e+05, nobs = 80795, Jo/n = 2.8064237625840467e+00, err = 3.1933209964416054e-01 +CostJo : Nonlinear Jo(sst_avhrr_mb_l3u) = 2.4093341994206450e+05, nobs = 87590, Jo/n = 2.7506955125249970e+00, err = 3.1303879303248278e-01 +CostJo : Nonlinear Jo(sst_viirs_npp_l3u) = 3.5095100144345453e+05, nobs = 86464, Jo/n = 4.0589262750214488e+00, err = 2.7352638780435701e-01 +CostJo : Nonlinear Jo(sst_viirs_n20_l3u) = 3.4617882174260722e+05, nobs = 82328, Jo/n = 4.2048734542635220e+00, err = 2.7610924066693887e-01 +CostJo : Nonlinear Jo(sst_abi_g16_l3c) = 0.0000000000000000e+00 --- No Observations +CostJo : Nonlinear Jo(sst_abi_g17_l3c) = 0.0000000000000000e+00 --- No Observations +CostJo : Nonlinear Jo(sst_ahi_h08_l3c) = 0.0000000000000000e+00 --- No Observations +CostJo : Nonlinear Jo(icec_amsr2_north) = 1.3776003730013903e+05, nobs = 238447, Jo/n = 5.7773860564460455e-01, err = 1.1973958453579239e-01 +CostJo : Nonlinear Jo(icec_amsr2_south) = 1.3525377877554770e+06, nobs = 294824, Jo/n = 4.5876108720981907e+00, err = 1.6104199583000647e-01 +CostJo : Nonlinear Jo(insitu_profile_argo) = 1.2371155464032217e+03, nobs = 74525, Jo/n = 1.6600007331811092e-02, err = 1.0000000000000000e+01 +CostFunction: Nonlinear J = 2.6567085727010556e+06 +RPCGMinimizer: reduction in residual norm = 3.3320242450517824e-02 +CostFunction::addIncrement: Analysis: + Valid time: 2021-03-24T18:00:00Z + sea_ice_area_fraction min=-0.3191478642087981 max=1.9094064942717854 mean=0.1380060365165569 + sea_ice_thickness min=0.0000000000000000 max=4.7237067222595215 mean=0.1716933516882944 + sea_ice_snow_thickness min=0.0000000000000000 max=0.5992891192436218 mean=0.0227558953028715 + sea_water_salinity min=-0.0004127016278705 max=40.0432853698730469 mean=33.6826135810349925 +sea_water_potential_temperature min=-13.5424639498294965 max=31.5094358260619565 mean=11.4876284245572435 + eastward_sea_water_velocity min=-0.9187383651733398 max=0.6746135354042053 mean=-0.0008460743757450 + northward_sea_water_velocity min=-0.6511899232864380 max=0.9435366392135620 mean=0.0030693165578485 + sea_surface_height_above_geoid min=-1.9814533174212232 max=0.8682830617264085 mean=-0.3311748439341126 + sea_water_cell_thickness min=0.0000000000000000 max=5416.6992187500000000 mean=128.6267671163319903 + ocean_mixed_layer_thickness min=2.3304977416992188 max=2417.2331242561340332 mean=148.3113220148310063 + sea_water_depth min=2.3304977416992188 max=2949.9484505653381348 mean=150.4446913535238650 + + + + + + + + + + + + + +CostJb : Nonlinear Jb = 319.2500686210223648 +CostJo : Nonlinear Jo(adt_rads_all) = 269.8785811470986573, nobs = 154056, Jo/n = 0.0017518212932122, err = 3.5902523361909755 +CostJo : Nonlinear Jo(sst_avhrr_ma_l3u) = 97733.3440574856213061, nobs = 80795, Jo/n = 1.2096459441485936, err = 0.3193320996441605 +CostJo : Nonlinear Jo(sst_avhrr_mb_l3u) = 102482.6442049633478746, nobs = 87590, Jo/n = 1.1700267633858128, err = 0.3130387930324828 +CostJo : Nonlinear Jo(sst_viirs_npp_l3u) = 179681.9646639756683726, nobs = 86464, Jo/n = 2.0781130258139302, err = 0.2735263878043570 +CostJo : Nonlinear Jo(sst_viirs_n20_l3u) = 165441.5019567124545574, nobs = 82328, Jo/n = 2.0095411276444519, err = 0.2761092406669389 +CostJo : Nonlinear Jo(sst_abi_g16_l3c) = 0.0000000000000000 --- No Observations +CostJo : Nonlinear Jo(sst_abi_g17_l3c) = 0.0000000000000000 --- No Observations +CostJo : Nonlinear Jo(sst_ahi_h08_l3c) = 0.0000000000000000 --- No Observations +CostJo : Nonlinear Jo(icec_amsr2_north) = 96049.0640872453514021, nobs = 238447, Jo/n = 0.4028109562596525, err = 0.1197395845357924 +CostJo : Nonlinear Jo(icec_amsr2_south) = 507683.7047332451329567, nobs = 294824, Jo/n = 1.7219890671493676, err = 0.1610419958300065 +CostJo : Nonlinear Jo(insitu_profile_argo) = 608.7904107136805578, nobs = 74525, Jo/n = 0.0081689421095428, err = 10.0000000000000000 +CostFunction: Nonlinear J = 1150270.1427641094196588 From c13665687cb6030c8e7c32040e7498f3deea1a1a Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Sun, 24 Nov 2024 16:18:10 +0000 Subject: [PATCH 50/60] Cleaning up --- parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 | 4 +- parm/atm/jcb-prototype_3dvar.yaml.j2 | 4 +- parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 | 4 +- parm/atm/jcb-prototype_lgetkf.yaml.j2 | 4 +- .../atm/jcb-prototype_lgetkf_observer.yaml.j2 | 4 +- parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 | 4 +- parm/soca/marine-jcb-3dfgat.yaml.j2 | 4 +- test/atm/global-workflow/CMakeLists.txt | 139 +++++++------ .../jcb-prototype_3dvar-fv3inc.yaml.j2 | 4 +- .../jcb-prototype_3dvar.yaml.j2 | 4 +- .../jcb-prototype_lgetkf-fv3inc.yaml.j2 | 4 +- .../jcb-prototype_lgetkf.yaml.j2 | 4 +- .../jcb-prototype_lgetkf_observer.yaml.j2 | 4 +- .../jcb-prototype_lgetkf_solver.yaml.j2 | 4 +- ush/CMakeLists.txt | 1 - ush/jediinc2fv3.py | 187 ------------------ 16 files changed, 107 insertions(+), 272 deletions(-) delete mode 100755 ush/jediinc2fv3.py diff --git a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 index b28afc525..b3d9d60de 100644 --- a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_variational # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_3dvar-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_3dvar-fv3inc.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_3dvar.yaml.j2 b/parm/atm/jcb-prototype_3dvar.yaml.j2 index b53df7ba8..e2a8c1e90 100644 --- a/parm/atm/jcb-prototype_3dvar.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar.yaml.j2 @@ -33,7 +33,7 @@ observations: # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/C96C48_ufs_hybatmDA_3dvar.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_3dvar.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_3dvar.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_3dvar.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 index aaa5024e5..5ede5aa5c 100644 --- a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_lgetkf # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf-fv3inc.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf.yaml.j2 b/parm/atm/jcb-prototype_lgetkf.yaml.j2 index b943a82a5..0f6cca75f 100644 --- a/parm/atm/jcb-prototype_lgetkf.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf.yaml.j2 @@ -41,7 +41,7 @@ observations: # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 index 7207a06cc..5ec7651ae 100644 --- a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 @@ -47,7 +47,7 @@ distribution_type: RoundRobin # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_observer.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_observer.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_observer.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 index edc5c2858..6c3ff6067 100644 --- a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 @@ -50,7 +50,7 @@ distribution_type: Halo # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/soca/marine-jcb-3dfgat.yaml.j2 b/parm/soca/marine-jcb-3dfgat.yaml.j2 index 9a5808e13..f28b2a22d 100644 --- a/parm/soca/marine-jcb-3dfgat.yaml.j2 +++ b/parm/soca/marine-jcb-3dfgat.yaml.j2 @@ -6,7 +6,7 @@ observations: !INC ${OBS_LIST_SHORT} # Testing things # -------------- -test_reference_filename: '{{HOMEgfs}}/sorc/gdas.cd/build/gdas/test/testreference/C48mx500_3DVarAOWCDA_3dfgat.ref' -test_output_filename: '{{HOMEgfs}}/sorc/gdas.cd/build/gdas/test/testoutput/C48mx500_3DVarAOWCDA_3dfgat.out' +test_reference_filename: '{{HOMEgfs}}/sorc/gdas.cd/build/gdas/test/testoutput/C48mx500_3DVarAOWCDA_3dfgat.ref' +test_output_filename: '{{HOMEgfs}}/sorc/gdas.cd/build/gdas/test/testoutput/C48mx500_3DVarAOWCDA_3dfgat.test.out' test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/CMakeLists.txt b/test/atm/global-workflow/CMakeLists.txt index 925a73677..daa5b8edf 100644 --- a/test/atm/global-workflow/CMakeLists.txt +++ b/test/atm/global-workflow/CMakeLists.txt @@ -1,63 +1,86 @@ # test for creating an experiment directory within the global-workflow file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) -add_test(NAME test_gdasapp_setup_atm_cycled_exp - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/setup_workflow_exp.sh - ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) - -add_test(NAME test_gdasapp_atm_jjob_var_init - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_init.sh - ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) - -add_test(NAME test_gdasapp_atm_jjob_var_run - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_run.sh - ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) - -add_test(NAME test_gdasapp_atm_jjob_var_inc - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_inc.sh - ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) - -add_test(NAME test_gdasapp_atm_jjob_var_final - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_final.sh - ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) - -add_test(NAME test_gdasapp_atm_jjob_ens_init - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_init.sh - ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) - -add_test(NAME test_gdasapp_atm_jjob_ens_letkf - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_letkf.sh - ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) - -add_test(NAME test_gdasapp_atm_jjob_ens_init_split - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_init_split.sh - ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) - -add_test(NAME test_gdasapp_atm_jjob_ens_obs - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_obs.sh - ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) - -add_test(NAME test_gdasapp_atm_jjob_ens_sol - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_sol.sh - ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) +ecbuild_add_test(TARGET test_gdasapp_setup_atm_cycled_exp + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/setup_workflow_exp.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_var_init + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_init.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_setup_atm_cycled_exp) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_var_run + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_run.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_var_init) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_var_inc + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_inc.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_var_run) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_var_final + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_final.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_var_inc) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_init + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_init.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_setup_atm_cycled_exp) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_letkf + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_letkf.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_ens_init) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_init_split + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_init_split.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_ens_letkf) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_obs + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_obs.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_ens_init_split) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_sol + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_sol.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_ens_obs) -add_test(NAME test_gdasapp_atm_jjob_ens_inc - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_inc.sh - ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) - -add_test(NAME test_gdasapp_atm_jjob_ens_final - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_final.sh - ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_inc + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_inc.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_ens_sol) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_final + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_final.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_ens_inc) diff --git a/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 b/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 index c35cc2295..071bd6a46 100644 --- a/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_variational # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/atm_jjob_3dvar-fv3inc.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_3dvar-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_3dvar-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_3dvar-fv3inc.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 b/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 index 47e250044..295713b29 100644 --- a/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 @@ -17,7 +17,7 @@ atmosphere_obsdatain_suffix: ".{{ current_cycle | to_YMDH }}.nc" # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/atm_jjob_3dvar.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_3dvar.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_3dvar.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_3dvar.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 index 7f4ab37b2..ac16ffca2 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_lgetkf # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/atm_jjob_lgetkf-fv3inc.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf-fv3inc.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf-fv3inc.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf-fv3inc.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 index 169484a29..a2b29f62b 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 @@ -22,7 +22,7 @@ atmosphere_obsdatain_suffix: ".{{ current_cycle | to_YMDH }}.nc" # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/atm_jjob_lgetkf.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 index 243c8d840..1071abe03 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 @@ -28,7 +28,7 @@ distribution_type: RoundRobin # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/atm_jjob_lgetkf_observer.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf_observer.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf_observer.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf_observer.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 index f6faef6c1..a209aa308 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 @@ -28,7 +28,7 @@ distribution_type: Halo # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testreference/atm_jjob_lgetkf_solver.ref -test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf_solver.out +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf_solver.ref +test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf_solver.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/ush/CMakeLists.txt b/ush/CMakeLists.txt index 2bf242db4..65f8bbfe8 100644 --- a/ush/CMakeLists.txt +++ b/ush/CMakeLists.txt @@ -1,6 +1,5 @@ list(APPEND ush_files check_yaml_keys.py - jediinc2fv3.py genYAML ) diff --git a/ush/jediinc2fv3.py b/ush/jediinc2fv3.py deleted file mode 100755 index 3bee852df..000000000 --- a/ush/jediinc2fv3.py +++ /dev/null @@ -1,187 +0,0 @@ -#!/usr/bin/env python3 -# translate FV3-JEDI increment to FV3 readable format with delp and hydrostatic delz calculation -import argparse -import netCDF4 as nc -import numpy as np -import logging -import os - -vardict = { - 'ua': 'u_inc', - 'va': 'v_inc', - 't': 'T_inc', - 'T': 'T_inc', - 'sphum': 'sphum_inc', - 'liq_wat': 'liq_wat_inc', - 'o3mr': 'o3mr_inc', - 'ice_wat': 'icmr_inc', - 'lat': 'lat', - 'lon': 'lon', -} - - -def jedi_inc_to_fv3(FV3ges, FV3JEDIinc, FV3inc): - logging.basicConfig(format='%(asctime)s:%(levelname)s:%(message)s', level=logging.INFO, datefmt='%Y-%m-%d %H:%M:%S') - # Check if required input netcdf files exist. If not present, exit with error message. - try: - with nc.Dataset(FV3ges, 'r'), nc.Dataset(FV3JEDIinc, 'r'): - ncges = nc.Dataset(FV3ges, 'r') - ncin = nc.Dataset(FV3JEDIinc, 'r') - ncout = nc.Dataset(FV3inc, 'w', format='NETCDF4') - create_fv3inc(ncges, ncin, ncout) - - except FileNotFoundError as e: - logging.error(f"Error occurred with message {e}") - raise - - -def create_fv3inc(ncges, ncin, ncout): - - # Copy over dimensions - for name, dimension in ncin.dimensions.items(): - if name == 'time': - continue - elif name == 'edge': - nameout = 'ilev' - else: - nameout = name - ncout.createDimension(nameout, - (len(dimension) if not dimension.isunlimited() else None)) - # Some global attributes - ncout.source = 'jediinc2fv3.py' - ncout.comment = 'Increment produced by FV3-JEDI and modified for use by FV3 read' - - # Create all the dummy vertical coordinate variables - nlevs = len(ncin.dimensions['lev']) - nlats = len(ncin.dimensions['lat']) - nlons = len(ncin.dimensions['lon']) - pfull = range(1, nlevs+1) - phalf = range(1, nlevs+2) - levvar = ncout.createVariable('lev', 'f4', ('lev')) - levvar[:] = pfull - pfullvar = ncout.createVariable('pfull', 'f4', ('lev')) - pfullvar[:] = pfull - ilevvar = ncout.createVariable('ilev', 'f4', ('ilev')) - ilevvar[:] = phalf - hyaivar = ncout.createVariable('hyai', 'f4', ('ilev')) - hyaivar[:] = phalf - hybivar = ncout.createVariable('hybi', 'f4', ('ilev')) - hybivar[:] = phalf - - # Rename and change dimensionality of fields - for name, variable in ncin.variables.items(): - if len(variable.dimensions) in [4]: - dimsout = variable.dimensions[1:] - dimsout_inc = dimsout - else: - dimsout = variable.dimensions - - if name in vardict: - # The temperature increment is needed to compute the delz - # increment. Either T or t may be used in jedi increment - # files. Set tinc to the appropriate case. - if name in ['T', 't']: - tinc = name - - x = ncout.createVariable(vardict[name], 'f4', dimsout) - if len(variable.dimensions) in [4]: - ncout[vardict[name]][:] = ncin[name][0, ...] - else: - ncout[vardict[name]][:] = ncin[name][:] - - # Populate increment and guess fields - # Note: increment and guess fields have same shape - # ps_inc is (time, lat, lon), ps_ges is {time, grid_yt, grid_xt) - # t_inc is (time, lev, lat, lon), t_ges is (time, pfull, grid_yt, grid_xt) - - ps_ges = ncges.variables['pressfc'][:] - t_ges = ncges.variables['tmp'][:] - q_ges = ncges.variables['spfh'][:] - - ps_inc = ncin.variables['ps'][:] - t_inc = ncin.variables[tinc][:] - q_inc = ncin.variables['sphum'][:] - - # Compute analysis ps - ps_anl = np.zeros((nlats, nlons), float) - ps_anl = ps_ges + ps_inc - - # Set constants and compute derived constants - grav = 9.80665 - airmw = 28.965 - h2omw = 18.015 - runiv = 8314.47 - rdry = runiv/airmw - rvap = runiv/h2omw - cpdry = 3.5*rdry - fv = (rvap/rdry)-1 - rdog = rdry/grav - kappa = rdry/cpdry - kap1 = kappa+1.0 - kapr = 1.0/kappa - - # Get ak,bk from guess file - nc_attrs = ncges.ncattrs() - ak = ncges.getncattr('ak') - bk = ncges.getncattr('bk') - - # Compute guess and analysis interface pressures - prsi_ges = np.zeros((nlevs+1, nlats, nlons), float) - prsi_anl = np.zeros((nlevs+1, nlats, nlons), float) - for k in range(0, nlevs+1): - prsi_ges[k, :, :] = ak[k]+bk[k]*ps_ges[:, :] - prsi_anl[k, :, :] = ak[k]+bk[k]*ps_anl[:, :] - - # Compute pressure increment (delp_inc). Compute - # guess and analysis layer pressures using Philips method - delp_inc = np.zeros((nlevs, nlats, nlons), float) - prsl_ges = np.zeros((nlevs, nlats, nlons), float) - prsl_anl = np.zeros((nlevs, nlats, nlons), float) - for k in range(0, nlevs): - dbk = bk[k+1] - bk[k] - delp_inc[k, :, :] = ps_inc[:, :] * dbk - prsl_ges[k, :, :] = ((prsi_ges[k+1, :, :]**kap1 - prsi_ges[k, :, :]**kap1) / (kap1*(prsi_ges[k+1, :, :] - prsi_ges[k, :, :])))**kapr - prsl_anl[k, :, :] = ((prsi_anl[k+1, :, :]**kap1 - prsi_anl[k, :, :]**kap1) / (kap1*(prsi_anl[k+1, :, :] - prsi_anl[k, :, :])))**kapr - - # Write delp increment to output file - x = ncout.createVariable('delp_inc', 'f4', dimsout_inc) - ncout['delp_inc'][:] = delp_inc[:] - - # Compute analysis temperature andl specific humidity - t_anl = np.zeros((nlevs, nlats, nlons), float) - q_anl = np.zeros((nlevs, nlats, nlons), float) - t_anl = t_ges + t_inc - q_anl = q_ges + q_inc - - # Compute guess and analysis virtual temperature - tv_ges = np.zeros((nlevs, nlats, nlons), float) - tv_anl = np.zeros((nlevs, nlats, nlons), float) - tv_ges = t_ges * (1.0 + fv*q_ges) - tv_anl = t_anl * (1.0 + fv*q_anl) - - # Compute guess and analysis delz and delz increment - delz_ges = np.zeros((nlevs, nlats, nlons), float) - delz_anl = np.zeros((nlevs, nlats, nlons), float) - delz_inc = np.zeros((nlevs, nlats, nlons), float) - for k in range(0, nlevs): - if k == 0: - delz_ges[k, :, :] = rdog * tv_ges[:, k, :, :] * np.log(prsl_ges[k, :, :]/prsi_ges[k+1, :, :]) - delz_anl[k, :, :] = rdog * tv_anl[:, k, :, :] * np.log(prsl_anl[k, :, :]/prsi_anl[k+1, :, :]) - else: - delz_ges[k, :, :] = rdog * tv_ges[:, k, :, :] * np.log(prsi_ges[k, :, :]/prsi_ges[k+1, :, :]) - delz_anl[k, :, :] = rdog * tv_anl[:, k, :, :] * np.log(prsi_anl[k, :, :]/prsi_anl[k+1, :, :]) - - delz_inc[k, :, :] = delz_anl[k, :, :] - delz_ges[k, :, :] - - # Write delz increment to output file - x = ncout.createVariable('delz_inc', 'f4', dimsout_inc) - ncout['delz_inc'][:] = delz_inc[:] - - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument('FV3background', type=str, help='Input FV3 background file') - parser.add_argument('FV3JEDIincrement', type=str, help='Input FV3-JEDI LatLon Increment File') - parser.add_argument('FV3increment', type=str, help='Output FV3 Increment File') - args = parser.parse_args() - jedi_inc_to_fv3(args.FV3background, args.FV3JEDIincrement, args.FV3increment) From 5044d5a29b9b7f0a4230aabbcd3fd128ca455453 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Sun, 24 Nov 2024 16:29:39 +0000 Subject: [PATCH 51/60] Get rid of standalone fv3inc ctest --- test/CMakeLists.txt | 24 ++++--- test/fv3jedi/CMakeLists.txt | 23 ------- .../testinput/gdasapp_fv3jedi_fv3inc.yaml | 65 ------------------- .../testoutput/gdasapp_fv3jedi_fv3inc.ref | 41 ------------ 4 files changed, 11 insertions(+), 142 deletions(-) delete mode 100644 test/fv3jedi/CMakeLists.txt delete mode 100644 test/fv3jedi/testinput/gdasapp_fv3jedi_fv3inc.yaml delete mode 100644 test/fv3jedi/testoutput/gdasapp_fv3jedi_fv3inc.ref diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 9d9853ca0..419dffcf6 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -24,7 +24,6 @@ file(ARCHIVE_EXTRACT INPUT ${CMAKE_CURRENT_BINARY_DIR}/${TAR} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) # list of test binary/data files to install list(APPEND test_data - ${CMAKE_CURRENT_BINARY_DIR}/testdata/atminc_compress.nc4 ${CMAKE_CURRENT_BINARY_DIR}/testdata/adt.nc ${CMAKE_CURRENT_BINARY_DIR}/testdata/sst.nc ${CMAKE_CURRENT_BINARY_DIR}/testdata/sss.nc @@ -84,26 +83,30 @@ file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/testrun) # create testout dir file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/testoutput) -# create testreference dir -file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/testreference) - # list of test reference files to install -list(APPEND test_reference - ${PROJECT_SOURCE_DIR}/test/testreference/amsua_n19_gdas.yaml +list(APPEND test_output ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_3dvar.ref ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_3dvar.ref - ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_3dvar-fv3inc.ref + ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_3dvar-fv3inc.ref + ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf.ref ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf_observer.ref ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf_solver.ref ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf_fv3inc.ref - ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf.ref ${PROJECT_SOURCE_DIR}/test/testreference/C48mx500_3DVarAOWCDA_3dfgat.ref ) +# create testreference dir +file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/testreference) + +# list of test reference files to install +list(APPEND test_reference + ${PROJECT_SOURCE_DIR}/test/testreference/amsua_n19_gdas.yaml +) + # symlink foreach(FILENAME ${test_reference}) file(RELATIVE_PATH FILENAME_REL ${PROJECT_SOURCE_DIR}/test/testreference/ ${FILENAME}) @@ -132,11 +135,6 @@ add_test(NAME test_gdasapp_check_yaml_keys # WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/) # commented out above test because it does not really do as advertised with all these templates which are not valid yaml -# test for ush/jediinc2fv3.py -add_test(NAME test_gdasapp_jedi_increment_to_fv3 - COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/ush/jediinc2fv3.py ${PROJECT_BINARY_DIR}/test/testdata/atmges_compress.nc4 ${PROJECT_BINARY_DIR}/test/testdata/atminc_compress.nc4 ${PROJECT_BINARY_DIR}/test/testoutput/fv_increment.nc - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/) - # high level tests that require the global-workflow # TODO(AFE) see GDASApp issue #1213 #if (WORKFLOW_TESTS) diff --git a/test/fv3jedi/CMakeLists.txt b/test/fv3jedi/CMakeLists.txt deleted file mode 100644 index 9b75510b9..000000000 --- a/test/fv3jedi/CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ -# Subdirectories -file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/fv3jedi/testinput) -file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/fv3jedi/testoutput) -file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/fv3jedi/fv3jedi) - -# Test YAMLs -file(CREATE_LINK ${PROJECT_SOURCE_DIR}/test/fv3jedi/testinput/gdasapp_fv3jedi_fv3inc.yaml ${PROJECT_BINARY_DIR}/test/fv3jedi/testinput/gdasapp_fv3jedi_fv3inc.yaml SYMBOLIC) - -# Test reference files -file(CREATE_LINK ${PROJECT_SOURCE_DIR}/test/fv3jedi/testoutput/gdasapp_fv3jedi_fv3inc.ref ${PROJECT_BINARY_DIR}/test/fv3jedi/testoutput/gdasapp_fv3jedi_fv3inc.ref SYMBOLIC) - -# FV3 files -file(CREATE_LINK ${PROJECT_SOURCE_DIR}/parm/io/fv3jedi_fieldmetadata_fv3inc.yaml ${PROJECT_BINARY_DIR}/test/fv3jedi/fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml SYMBOLIC) -file(CREATE_LINK ${PROJECT_SOURCE_DIR}/parm/io/fv3jedi_fieldmetadata_history.yaml ${PROJECT_BINARY_DIR}/test/fv3jedi/fv3jedi/fv3jedi_fieldmetadata_history.yaml SYMBOLIC) -file(CREATE_LINK ${PROJECT_SOURCE_DIR}/sorc/fv3-jedi/test/Data/fv3files/akbk127.nc4 ${PROJECT_BINARY_DIR}/test/fv3jedi/fv3jedi/akbk127.nc4 SYMBOLIC) -file(CREATE_LINK ${PROJECT_SOURCE_DIR}/sorc/fv3-jedi/test/Data/fv3files/fmsmpp.nml ${PROJECT_BINARY_DIR}/test/fv3jedi/fv3jedi/fmsmpp.nml SYMBOLIC) -file(CREATE_LINK ${PROJECT_SOURCE_DIR}/sorc/fv3-jedi/test/Data/fv3files/field_table_gfdl ${PROJECT_BINARY_DIR}/test/fv3jedi/fv3jedi/field_table_gfdl SYMBOLIC) - -# Tests -add_test(NAME test_gdasapp_fv3jedi_fv3inc - COMMAND srun -n6 ${CMAKE_BINARY_DIR}/bin/fv3jedi_fv3inc.x ${PROJECT_BINARY_DIR}/test/fv3jedi/testinput/gdasapp_fv3jedi_fv3inc.yaml - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/fv3jedi) - diff --git a/test/fv3jedi/testinput/gdasapp_fv3jedi_fv3inc.yaml b/test/fv3jedi/testinput/gdasapp_fv3jedi_fv3inc.yaml deleted file mode 100644 index 7ee403ccc..000000000 --- a/test/fv3jedi/testinput/gdasapp_fv3jedi_fv3inc.yaml +++ /dev/null @@ -1,65 +0,0 @@ -variable change: - variable change name: Model2GeoVaLs - input variables: &bkgvars [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr,hgtsfc] - output variables: &fv3incrvars [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz] -jedi increment variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] -fv3 increment variables: *fv3incrvars -background geometry: - fms initialization: - namelist filename: ./fv3jedi/fmsmpp.nml - field table filename: ./fv3jedi/field_table_gfdl - akbk: ./fv3jedi/akbk127.nc4 - layout: - - '1' - - '1' - npx: '13' - npy: '13' - npz: '127' - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml -jedi increment geometry: - fms initialization: - namelist filename: ./fv3jedi/fmsmpp.nml - field table filename: ./fv3jedi/field_table_gfdl - akbk: ./fv3jedi/akbk127.nc4 - layout: - - '1' - - '1' - npx: '13' - npy: '13' - npz: '127' - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml -fv3 increment geometry: - fms initialization: - namelist filename: ./fv3jedi/fmsmpp.nml - field table filename: ./fv3jedi/field_table_gfdl - akbk: ./fv3jedi/akbk127.nc4 - layout: - - '1' - - '1' - npx: '13' - npy: '13' - npz: '127' - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml -members: -- background input: - filetype: cube sphere history - datapath: ../testdata/ - provider: ufs - datetime: '2021-07-31T12:00:00Z' - filename: gdas.t06z.atmf006.nc - state variables: *bkgvars - jedi increment input: - filetype: cube sphere history - datapath: ../testdata/ - filename: atminc.20210731.120000.nc4 - provider: ufs - fv3 increment output: - filetype: cube sphere history - filename: atminc.20210731_120000.nc4 - provider: ufs - -test: - reference filename: testoutput/gdasapp_fv3jedi_fv3inc.ref - test output filename: testoutput/gdasapp_fv3jedi_fv3inc.test.out - float relative tolerance: 1.0e-3 - diff --git a/test/fv3jedi/testoutput/gdasapp_fv3jedi_fv3inc.ref b/test/fv3jedi/testoutput/gdasapp_fv3jedi_fv3inc.ref deleted file mode 100644 index a4be55d39..000000000 --- a/test/fv3jedi/testoutput/gdasapp_fv3jedi_fv3inc.ref +++ /dev/null @@ -1,41 +0,0 @@ -Background State: - ----------------------------------------------------------------------------------------------------- -State print | number of fields = 9 | cube sphere face size: C12 -eastward_wind | Min:-7.6655158996582031e+01 Max:+1.3484048461914062e+02 RMS:+2.4474819956360815e+01 -northward_wind | Min:-5.7591831207275391e+01 Max:+6.1521602630615234e+01 RMS:+9.0604680778982232e+00 -air_temperature | Min:+1.6467715454101562e+02 Max:+3.1937854003906250e+02 RMS:+2.5118590413162758e+02 -surface_pressure | Min:+5.6141089843750000e+04 Max:+1.0346660156250000e+05 RMS:+9.8890740204548158e+04 -specific_humidity | Min:+1.2364032020428795e-09 Max:+2.1250871941447258e-02 RMS:+5.1335857648077696e-03 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+5.9844314819201827e-04 RMS:+1.2911033014274613e-05 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.1054204078391194e-03 RMS:+3.7434027002184771e-05 -ozone_mass_mixing_ratio | Min:+8.6089233519714981e-09 Max:+1.6528036212548614e-05 RMS:+4.4014999048943556e-06 -sfc_geopotential_height_times_grav | Min:-3.9759671688079834e+00 Max:+4.8742519531250000e+03 RMS:+6.2112179267749525e+02 ----------------------------------------------------------------------------------------------------- -JEDI Increment: - ----------------------------------------------------------------------------------------------------- -Increment print | number of fields = 8 | cube sphere face size: C12 -eastward_wind | Min:-4.3422836419308410e+00 Max:+1.2320940067737499e+01 RMS:+3.0957235443709130e-01 -northward_wind | Min:-4.1090470888107049e+00 Max:+5.4552721209750796e+00 RMS:+3.1062842460180656e-01 -air_temperature | Min:-5.2980343087781989e-01 Max:+5.1811022097894011e-01 RMS:+3.5920751813835923e-02 -surface_pressure | Min:-1.3399192319669237e+02 Max:+6.8315024915413233e+01 RMS:+1.5538727344814935e+01 -specific_humidity | Min:-2.8092260972819617e-04 Max:+2.9434075393080551e-04 RMS:+1.6532405760382759e-05 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+0.0000000000000000e+00 RMS:+0.0000000000000000e+00 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+0.0000000000000000e+00 RMS:+0.0000000000000000e+00 -ozone_mass_mixing_ratio | Min:+0.0000000000000000e+00 Max:+0.0000000000000000e+00 RMS:+0.0000000000000000e+00 ----------------------------------------------------------------------------------------------------- -FV3 Increment: - ----------------------------------------------------------------------------------------------------- -Increment print | number of fields = 9 | cube sphere face size: C12 -eastward_wind | Min:-4.3422836419308410e+00 Max:+1.2320940067737499e+01 RMS:+3.0957235443709130e-01 -northward_wind | Min:-4.1090470888107049e+00 Max:+5.4552721209750796e+00 RMS:+3.1062842460180656e-01 -air_temperature | Min:-5.2980343087781989e-01 Max:+5.1811022097894011e-01 RMS:+3.5920751813835923e-02 -specific_humidity | Min:-2.8092260972819617e-04 Max:+2.9434075393080551e-04 RMS:+1.6532405760382759e-05 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+0.0000000000000000e+00 RMS:+0.0000000000000000e+00 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+0.0000000000000000e+00 RMS:+0.0000000000000000e+00 -ozone_mass_mixing_ratio | Min:+0.0000000000000000e+00 Max:+0.0000000000000000e+00 RMS:+0.0000000000000000e+00 -air_pressure_thickness | Min:-2.9992886080290191e+00 Max:+1.5291703492039233e+00 RMS:+1.7535872214547940e-01 -layer_thickness | Min:-4.6699236754648155e-01 Max:+7.4693987323735200e-01 RMS:+3.1162055487823255e-02 ----------------------------------------------------------------------------------------------------- From 93fbcfe95ea0ff7d4a653cff96f83bcaf778b549 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Sun, 24 Nov 2024 16:48:30 +0000 Subject: [PATCH 52/60] Update --- test/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 419dffcf6..b07c59993 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -146,7 +146,6 @@ add_test(NAME test_gdasapp_check_yaml_keys #endif() if (${BUILD_GDASBUNDLE}) - add_subdirectory(fv3jedi) # fv3jedi tests add_subdirectory(snow) # snow da tests add_subdirectory(gw-ci) # subset of the global-workflow ci tests endif() From 6cac185bd270cc6f5f910e34040c7a264e83308e Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Sun, 24 Nov 2024 17:13:45 +0000 Subject: [PATCH 53/60] Update --- parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 | 2 +- parm/atm/jcb-prototype_3dvar.yaml.j2 | 2 +- parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 | 2 +- parm/atm/jcb-prototype_lgetkf.yaml.j2 | 2 +- parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 | 2 +- parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 | 2 +- parm/soca/marine-jcb-3dfgat.yaml.j2 | 2 +- test/CMakeLists.txt | 18 +----------------- .../jcb-prototype_3dvar-fv3inc.yaml.j2 | 2 +- .../jcb-prototype_3dvar.yaml.j2 | 2 +- .../jcb-prototype_lgetkf-fv3inc.yaml.j2 | 2 +- .../jcb-prototype_lgetkf.yaml.j2 | 2 +- .../jcb-prototype_lgetkf_observer.yaml.j2 | 2 +- 13 files changed, 13 insertions(+), 29 deletions(-) diff --git a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 index b3d9d60de..f7f6db57a 100644 --- a/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_variational # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_3dvar-fv3inc.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_3dvar.yaml.j2 b/parm/atm/jcb-prototype_3dvar.yaml.j2 index e2a8c1e90..b89b65105 100644 --- a/parm/atm/jcb-prototype_3dvar.yaml.j2 +++ b/parm/atm/jcb-prototype_3dvar.yaml.j2 @@ -33,7 +33,7 @@ observations: # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_3dvar.ref +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/testreference/C96C48_ufs_hybatmDA_3dvar.ref test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_3dvar.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 index 5ede5aa5c..9845103df 100644 --- a/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_lgetkf # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf-fv3inc.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf.yaml.j2 b/parm/atm/jcb-prototype_lgetkf.yaml.j2 index 0f6cca75f..04f9faafd 100644 --- a/parm/atm/jcb-prototype_lgetkf.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf.yaml.j2 @@ -41,7 +41,7 @@ observations: # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf.ref +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 index 5ec7651ae..39e682415 100644 --- a/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_observer.yaml.j2 @@ -47,7 +47,7 @@ distribution_type: RoundRobin # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_observer.ref +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_observer.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 index 6c3ff6067..7abccdd6e 100644 --- a/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/parm/atm/jcb-prototype_lgetkf_solver.yaml.j2 @@ -50,7 +50,7 @@ distribution_type: Halo # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.ref +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/C96C48_ufs_hybatmDA_lgetkf_solver.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/parm/soca/marine-jcb-3dfgat.yaml.j2 b/parm/soca/marine-jcb-3dfgat.yaml.j2 index f28b2a22d..59d0b9ff5 100644 --- a/parm/soca/marine-jcb-3dfgat.yaml.j2 +++ b/parm/soca/marine-jcb-3dfgat.yaml.j2 @@ -6,7 +6,7 @@ observations: !INC ${OBS_LIST_SHORT} # Testing things # -------------- -test_reference_filename: '{{HOMEgfs}}/sorc/gdas.cd/build/gdas/test/testoutput/C48mx500_3DVarAOWCDA_3dfgat.ref' +test_reference_filename: '{{HOMEgfs}}/sorc/gdas.cd/test/testreference/C48mx500_3DVarAOWCDA_3dfgat.ref' test_output_filename: '{{HOMEgfs}}/sorc/gdas.cd/build/gdas/test/testoutput/C48mx500_3DVarAOWCDA_3dfgat.test.out' test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index b07c59993..a31f5443e 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -63,7 +63,7 @@ list(APPEND test_input ${PROJECT_SOURCE_DIR}/test/testinput/bufr_sfcships.yaml ${PROJECT_SOURCE_DIR}/test/testinput/bufr_sfcshipsu.yaml ) - + # create testinput dir file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/testinput) @@ -83,22 +83,6 @@ file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/testrun) # create testout dir file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/testoutput) -# list of test reference files to install -list(APPEND test_output - ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_3dvar.ref - ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_3dvar-fv3inc.ref - ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf_observer.ref - ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf_solver.ref - ${PROJECT_SOURCE_DIR}/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref - ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_3dvar.ref - ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_3dvar-fv3inc.ref - ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf.ref - ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf_observer.ref - ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf_solver.ref - ${PROJECT_SOURCE_DIR}/test/testreference/atm_jjob_lgetkf_fv3inc.ref - ${PROJECT_SOURCE_DIR}/test/testreference/C48mx500_3DVarAOWCDA_3dfgat.ref -) - # create testreference dir file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/testreference) diff --git a/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 b/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 index 071bd6a46..9686fbbce 100644 --- a/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_3dvar-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_variational # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_3dvar-fv3inc.ref +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/testreference/atm_jjob_3dvar-fv3inc.ref test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_3dvar-fv3inc.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 b/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 index 295713b29..7465a4274 100644 --- a/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_3dvar.yaml.j2 @@ -17,7 +17,7 @@ atmosphere_obsdatain_suffix: ".{{ current_cycle | to_YMDH }}.nc" # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_3dvar.ref +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/testreference/atm_jjob_3dvar.ref test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_3dvar.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 index ac16ffca2..cd11e771d 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf-fv3inc.yaml.j2 @@ -4,7 +4,7 @@ algorithm: fv3jedi_fv3inc_lgetkf # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf-fv3inc.ref +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/testreference/atm_jjob_lgetkf-fv3inc.ref test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf-fv3inc.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 index a2b29f62b..e6b1f9593 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2 @@ -22,7 +22,7 @@ atmosphere_obsdatain_suffix: ".{{ current_cycle | to_YMDH }}.nc" # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf.ref +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/testreference/atm_jjob_lgetkf.ref test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 index 1071abe03..ac0fcd7dd 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2 @@ -28,7 +28,7 @@ distribution_type: RoundRobin # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf_observer.ref +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/testreference/atm_jjob_lgetkf_observer.ref test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf_observer.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 From 5ef43b76471dbc666e2450c0abce2524a8f02917 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Sun, 24 Nov 2024 19:02:05 +0000 Subject: [PATCH 54/60] Hopefully final commit --- .../jcb-prototype_lgetkf_solver.yaml.j2 | 2 +- .../C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref | 82 +++++++++++++++++++ 2 files changed, 83 insertions(+), 1 deletion(-) diff --git a/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 b/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 index a209aa308..2c3bd2aae 100644 --- a/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 +++ b/test/atm/global-workflow/jcb-prototype_lgetkf_solver.yaml.j2 @@ -28,7 +28,7 @@ distribution_type: Halo # Testing things # -------------- -test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf_solver.ref +test_reference_filename: {{ HOMEgfs }}/sorc/gdas.cd/test/testreference/atm_jjob_lgetkf_solver.ref test_output_filename: {{ HOMEgfs }}/sorc/gdas.cd/build/gdas/test/testoutput/atm_jjob_lgetkf_solver.test.out test_float_relative_tolerance: 1.0e-3 test_float_absolute_tolerance: 1.0e-5 diff --git a/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref b/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref index e69de29bb..103e05260 100644 --- a/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref +++ b/test/testreference/C96C48_ufs_hybatmDA_lgetkf-fv3inc.ref @@ -0,0 +1,82 @@ +Background State for member 0: + +---------------------------------------------------------------------------------------------------- +State print | number of fields = 9 | cube sphere face size: C48 +eastward_wind | Min:-8.4384330749511719e+01 Max:+1.1146717834472656e+02 RMS:+1.7423407399233511e+01 +northward_wind | Min:-8.6144805908203125e+01 Max:+8.9331993103027344e+01 RMS:+1.0017299694477177e+01 +air_temperature | Min:+1.7350303649902344e+02 Max:+3.0961535644531250e+02 RMS:+2.5015669840056216e+02 +air_pressure_at_surface | Min:+5.2320046875000000e+04 Max:+1.0452482812500000e+05 RMS:+9.8914997456124955e+04 +water_vapor_mixing_ratio_wrt_moist_air | Min:+1.6847316430812498e-08 Max:+2.2395884618163109e-02 RMS:+5.0107896876815721e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.1855275048874319e-04 RMS:+1.0354889627583217e-05 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.3839458115398884e-03 RMS:+3.5588872198565466e-05 +ozone_mass_mixing_ratio | Min:+1.1339260641562987e-09 Max:+1.7277885490329936e-05 RMS:+4.4686682637740296e-06 +geopotential_height_at_surface | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +---------------------------------------------------------------------------------------------------- +JEDI Increment for member 0: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 8 | cube sphere face size: C48 +eastward_wind | Min:-2.6713170463703555e+01 Max:+2.7247719731829164e+01 RMS:+7.7003410130506966e-01 +northward_wind | Min:-2.2266548354929135e+01 Max:+2.4111106836816546e+01 RMS:+7.7874592260732178e-01 +air_temperature | Min:-1.0204740456386372e+01 Max:+1.0612363461439131e+01 RMS:+3.2383456606394428e-01 +air_pressure_at_surface | Min:-1.6632427368676872e-03 Max:+1.3842245934938546e-03 RMS:+8.3556099392947144e-05 +water_vapor_mixing_ratio_wrt_moist_air | Min:-1.0075023053001828e-02 Max:+1.3216991071147419e-02 RMS:+1.3161159034094137e-04 +cloud_liquid_ice | Min:-3.2384493993478425e-04 Max:+2.5782120798697029e-04 RMS:+3.5186992249237140e-06 +cloud_liquid_water | Min:-1.3410840615217380e-03 Max:+1.0793991164780980e-03 RMS:+1.2675198989331570e-05 +ozone_mass_mixing_ratio | Min:-1.7321578649115885e-06 Max:+2.2122365151317159e-06 RMS:+3.4501654041399942e-08 +---------------------------------------------------------------------------------------------------- +FV3 Increment for member 0: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 9 | cube sphere face size: C48 +eastward_wind | Min:-2.6713170463703555e+01 Max:+2.7247719731829164e+01 RMS:+7.7003410130506966e-01 +northward_wind | Min:-2.2266548354929135e+01 Max:+2.4111106836816546e+01 RMS:+7.7874592260732178e-01 +air_temperature | Min:-1.0204740456386372e+01 Max:+1.0612363461439131e+01 RMS:+3.2383456606394428e-01 +water_vapor_mixing_ratio_wrt_moist_air | Min:-1.0075023053001828e-02 Max:+1.3216991071147419e-02 RMS:+1.3161159034094137e-04 +cloud_liquid_ice | Min:-3.2384493993478425e-04 Max:+2.5782120798697029e-04 RMS:+3.5186992249237140e-06 +cloud_liquid_water | Min:-1.3410840615217380e-03 Max:+1.0793991164780980e-03 RMS:+1.2675198989331570e-05 +ozone_mass_mixing_ratio | Min:-1.7321578649115885e-06 Max:+2.2122365151317159e-06 RMS:+3.4501654041399942e-08 +air_pressure_thickness | Min:-3.7230194720905274e-05 Max:+3.0984621844254434e-05 RMS:+9.4295307947072803e-07 +layer_thickness | Min:-5.0314572597610095e+01 Max:+3.1207257614340051e+01 RMS:+6.5903625246599373e-01 +---------------------------------------------------------------------------------------------------- +Background State for member 1: + +---------------------------------------------------------------------------------------------------- +State print | number of fields = 9 | cube sphere face size: C48 +eastward_wind | Min:-8.5966735839843750e+01 Max:+1.1211631774902344e+02 RMS:+1.7425666524535583e+01 +northward_wind | Min:-8.5594192504882812e+01 Max:+8.9450973510742188e+01 RMS:+1.0012910607932993e+01 +air_temperature | Min:+1.7322386169433594e+02 Max:+3.1173611450195312e+02 RMS:+2.5015480177211401e+02 +air_pressure_at_surface | Min:+5.2300289062500000e+04 Max:+1.0443091406250000e+05 RMS:+9.8912612346289476e+04 +water_vapor_mixing_ratio_wrt_moist_air | Min:+1.7588122958045460e-08 Max:+2.1704806014895439e-02 RMS:+4.9960608009716814e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+4.2980920989066362e-04 RMS:+9.7698907168770129e-06 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.4689513482153416e-03 RMS:+3.5167035611299903e-05 +ozone_mass_mixing_ratio | Min:+2.9807353807420611e-10 Max:+1.7195472537423484e-05 RMS:+4.4692040486361164e-06 +geopotential_height_at_surface | Min:-2.7018375396728516e+01 Max:+5.2697558593750000e+03 RMS:+6.3772571434211386e+02 +---------------------------------------------------------------------------------------------------- +JEDI Increment for member 1: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 8 | cube sphere face size: C48 +eastward_wind | Min:-2.7118603154153071e+01 Max:+2.5039255461317936e+01 RMS:+7.9016696986758683e-01 +northward_wind | Min:-1.9134521911266908e+01 Max:+1.8052220490594621e+01 RMS:+8.1416259656824774e-01 +air_temperature | Min:-1.0334410919697632e+01 Max:+1.0023267385714213e+01 RMS:+3.2993662752227909e-01 +air_pressure_at_surface | Min:-1.7015457730735761e-03 Max:+1.4328894367281464e-03 RMS:+8.3597529649529631e-05 +water_vapor_mixing_ratio_wrt_moist_air | Min:-1.0940498213010061e-02 Max:+1.4176037926216224e-02 RMS:+1.3345901067359821e-04 +cloud_liquid_ice | Min:-2.7333859171390946e-04 Max:+4.8852641654798684e-04 RMS:+3.6400194778040982e-06 +cloud_liquid_water | Min:-1.1354531767787950e-03 Max:+1.0641496243961217e-03 RMS:+1.3080375599165519e-05 +ozone_mass_mixing_ratio | Min:-1.8008616277179968e-06 Max:+2.4391037763833551e-06 RMS:+3.6841977469037158e-08 +---------------------------------------------------------------------------------------------------- +FV3 Increment for member 1: + +---------------------------------------------------------------------------------------------------- +Increment print | number of fields = 9 | cube sphere face size: C48 +eastward_wind | Min:-2.7118603154153071e+01 Max:+2.5039255461317936e+01 RMS:+7.9016696986758683e-01 +northward_wind | Min:-1.9134521911266908e+01 Max:+1.8052220490594621e+01 RMS:+8.1416259656824774e-01 +air_temperature | Min:-1.0334410919697632e+01 Max:+1.0023267385714213e+01 RMS:+3.2993662752227909e-01 +water_vapor_mixing_ratio_wrt_moist_air | Min:-1.0940498213010061e-02 Max:+1.4176037926216224e-02 RMS:+1.3345901067359821e-04 +cloud_liquid_ice | Min:-2.7333859171390946e-04 Max:+4.8852641654798684e-04 RMS:+3.6400194778040982e-06 +cloud_liquid_water | Min:-1.1354531767787950e-03 Max:+1.0641496243961217e-03 RMS:+1.3080375599165519e-05 +ozone_mass_mixing_ratio | Min:-1.8008616277179968e-06 Max:+2.4391037763833551e-06 RMS:+3.6841977469037158e-08 +air_pressure_thickness | Min:-3.8087571738287807e-05 Max:+3.2073941838461906e-05 RMS:+9.4342063209947081e-07 +layer_thickness | Min:-4.7521592877819785e+01 Max:+3.1680899109200254e+01 RMS:+6.5375317024288038e-01 +---------------------------------------------------------------------------------------------------- From cb672bfb13e6a4f7382cbb9f1253b8fe84308afb Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Sun, 24 Nov 2024 19:15:20 +0000 Subject: [PATCH 55/60] Run gw-ci tests in parallel for nightly testing --- ci/run_ci.sh | 2 +- ci/run_gw_ci.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/run_ci.sh b/ci/run_ci.sh index 1b5f27231..f6c21642b 100755 --- a/ci/run_ci.sh +++ b/ci/run_ci.sh @@ -61,7 +61,7 @@ module use $GDAS_MODULE_USE module load GDAS/$TARGET echo "---------------------------------------------------" >> $outfile rm -rf log.ctest -ctest -R gdasapp --output-on-failure &>> log.ctest +ctest -j12 -R gdasapp --output-on-failure &>> log.ctest ctest_status=$? npassed=$(cat log.ctest | grep "tests passed") if [ $ctest_status -eq 0 ]; then diff --git a/ci/run_gw_ci.sh b/ci/run_gw_ci.sh index ba1874107..dde762782 100755 --- a/ci/run_gw_ci.sh +++ b/ci/run_gw_ci.sh @@ -62,7 +62,7 @@ module use $repodir/sorc/gdas.cd/modulefiles module load GDAS/$TARGET echo "---------------------------------------------------" >> $outfile rm -rf log.ctest -ctest -R gdasapp --output-on-failure &>> log.ctest +ctest -j12 -R gdasapp --output-on-failure &>> log.ctest ctest_status=$? npassed=$(cat log.ctest | grep "tests passed") if [ $ctest_status -eq 0 ]; then From 0302beee448ba89e445f885ad65793b111618dc9 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 25 Nov 2024 15:32:07 +0000 Subject: [PATCH 56/60] Address comments --- ci/driver.sh | 1 + ci/gw_driver.sh | 1 + ci/run_ci.sh | 2 +- ci/run_gw_ci.sh | 2 +- test/atm/global-workflow/CMakeLists.txt | 116 ++++++------------ .../C96C48_ufs_hybatmDA_fv3inc.ref | 0 .../C96C48_ufs_hybatmDA_lgetkf.ref | 0 7 files changed, 39 insertions(+), 83 deletions(-) delete mode 100644 test/testreference/C96C48_ufs_hybatmDA_fv3inc.ref delete mode 100644 test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref diff --git a/ci/driver.sh b/ci/driver.sh index 933b9223b..afd1e1974 100755 --- a/ci/driver.sh +++ b/ci/driver.sh @@ -42,6 +42,7 @@ case ${TARGET} in module use $GDAS_MODULE_USE module load GDAS/$TARGET module list + export NTASKS_TESTS=12 ;; *) echo "Unsupported platform. Exiting with error." diff --git a/ci/gw_driver.sh b/ci/gw_driver.sh index c40ff4026..41c6915f6 100755 --- a/ci/gw_driver.sh +++ b/ci/gw_driver.sh @@ -42,6 +42,7 @@ case ${TARGET} in module use $GDAS_MODULE_USE module load GDAS/$TARGET module list + export NTASKS_TESTS=12 ;; *) echo "Unsupported platform. Exiting with error." diff --git a/ci/run_ci.sh b/ci/run_ci.sh index f6c21642b..64c8ec1be 100755 --- a/ci/run_ci.sh +++ b/ci/run_ci.sh @@ -61,7 +61,7 @@ module use $GDAS_MODULE_USE module load GDAS/$TARGET echo "---------------------------------------------------" >> $outfile rm -rf log.ctest -ctest -j12 -R gdasapp --output-on-failure &>> log.ctest +ctest -j${$NTASKS_TESTS} -R gdasapp --output-on-failure &>> log.ctest ctest_status=$? npassed=$(cat log.ctest | grep "tests passed") if [ $ctest_status -eq 0 ]; then diff --git a/ci/run_gw_ci.sh b/ci/run_gw_ci.sh index dde762782..606a1c6b7 100755 --- a/ci/run_gw_ci.sh +++ b/ci/run_gw_ci.sh @@ -62,7 +62,7 @@ module use $repodir/sorc/gdas.cd/modulefiles module load GDAS/$TARGET echo "---------------------------------------------------" >> $outfile rm -rf log.ctest -ctest -j12 -R gdasapp --output-on-failure &>> log.ctest +ctest -j${$NTASKS_TESTS} -R gdasapp --output-on-failure &>> log.ctest ctest_status=$? npassed=$(cat log.ctest | grep "tests passed") if [ $ctest_status -eq 0 ]; then diff --git a/test/atm/global-workflow/CMakeLists.txt b/test/atm/global-workflow/CMakeLists.txt index daa5b8edf..0138a3002 100644 --- a/test/atm/global-workflow/CMakeLists.txt +++ b/test/atm/global-workflow/CMakeLists.txt @@ -1,86 +1,40 @@ +set(COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/setup_workflow_exp.sh) +set(ARGS "${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}") +set(WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) + +function(add_jjob_test TARGET TEST_DEPENDS) + message(STATUS "preparing ${TARGET} for atm_jjob ctests") + ecbuild_add_test(TARGET ${TARGET} + TYPE SCRIPT + COMMAND ${COMMAND} + ARGS ${ARGS} + WORKING_DIRECTORY ${WORKING_DIRECTORY} + TEST_DEPENDS ${TEST_DEPENDS}) +endfunction() + # test for creating an experiment directory within the global-workflow file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) +# Setup jjob tests ecbuild_add_test(TARGET test_gdasapp_setup_atm_cycled_exp TYPE SCRIPT - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/setup_workflow_exp.sh - ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) - -ecbuild_add_test(TARGET test_gdasapp_atm_jjob_var_init - TYPE SCRIPT - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_init.sh - ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun - TEST_DEPENDS test_gdasapp_setup_atm_cycled_exp) - -ecbuild_add_test(TARGET test_gdasapp_atm_jjob_var_run - TYPE SCRIPT - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_run.sh - ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun - TEST_DEPENDS test_gdasapp_atm_jjob_var_init) - -ecbuild_add_test(TARGET test_gdasapp_atm_jjob_var_inc - TYPE SCRIPT - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_inc.sh - ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun - TEST_DEPENDS test_gdasapp_atm_jjob_var_run) - -ecbuild_add_test(TARGET test_gdasapp_atm_jjob_var_final - TYPE SCRIPT - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_final.sh - ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun - TEST_DEPENDS test_gdasapp_atm_jjob_var_inc) - -ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_init - TYPE SCRIPT - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_init.sh - ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun - TEST_DEPENDS test_gdasapp_setup_atm_cycled_exp) - -ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_letkf - TYPE SCRIPT - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_letkf.sh - ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun - TEST_DEPENDS test_gdasapp_atm_jjob_ens_init) - -ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_init_split - TYPE SCRIPT - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_init_split.sh - ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun - TEST_DEPENDS test_gdasapp_atm_jjob_ens_letkf) - -ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_obs - TYPE SCRIPT - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_obs.sh - ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun - TEST_DEPENDS test_gdasapp_atm_jjob_ens_init_split) - -ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_sol - TYPE SCRIPT - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_sol.sh - ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun - TEST_DEPENDS test_gdasapp_atm_jjob_ens_obs) - -ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_inc - TYPE SCRIPT - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_inc.sh - ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun - TEST_DEPENDS test_gdasapp_atm_jjob_ens_sol) - -ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_final - TYPE SCRIPT - COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_final.sh - ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun - TEST_DEPENDS test_gdasapp_atm_jjob_ens_inc) - + COMMAND ${COMMAND} + ARGS ${ARGS} + WORKING_DIRECTORY ${WORKING_DIRECTORY}) + +# Variational jjobs +add_jjob_test(test_gdasapp_atm_jjob_var_init test_gdasapp_setup_atm_cycled_exp) +add_jjob_test(test_gdasapp_atm_jjob_var_run test_gdasapp_atm_jjob_var_init) +add_jjob_test(test_gdasapp_atm_jjob_var_inc test_gdasapp_atm_jjob_var_run) +add_jjob_test(test_gdasapp_atm_jjob_var_final test_gdasapp_atm_jjob_var_inc) + +# Ensemble jjobs with no split observer-solver +add_jjob_test(test_gdasapp_atm_jjob_ens_init test_gdasapp_setup_atm_cycled_exp) +add_jjob_test(test_gdasapp_atm_jjob_ens_letkf test_gdasapp_atm_jjob_ens_init) + +# Ensemble jjobs with split observer-solver +add_jjob_test(test_gdasapp_atm_jjob_ens_init_split test_gdasapp_setup_atm_cycled_exp) +add_jjob_test(test_gdasapp_atm_jjob_ens_obs test_gdasapp_atm_jjob_ens_init_split) +add_jjob_test(test_gdasapp_atm_jjob_ens_sol test_gdasapp_atm_jjob_ens_obs) +add_jjob_test(test_gdasapp_atm_jjob_ens_inc test_gdasapp_atm_jjob_ens_sol) +add_jjob_test(test_gdasapp_atm_jjob_ens_final test_gdasapp_atm_jjob_ens_inc) diff --git a/test/testreference/C96C48_ufs_hybatmDA_fv3inc.ref b/test/testreference/C96C48_ufs_hybatmDA_fv3inc.ref deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref b/test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref deleted file mode 100644 index e69de29bb..000000000 From b1ae4d291dbc3984c46ead8625220e77223c4786 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 25 Nov 2024 15:58:10 +0000 Subject: [PATCH 57/60] Redo setting on ntasks for tests --- ci/driver.sh | 1 - ci/gw_driver.sh | 1 - ci/hera.sh | 1 + ci/orion.sh | 1 + 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/driver.sh b/ci/driver.sh index afd1e1974..933b9223b 100755 --- a/ci/driver.sh +++ b/ci/driver.sh @@ -42,7 +42,6 @@ case ${TARGET} in module use $GDAS_MODULE_USE module load GDAS/$TARGET module list - export NTASKS_TESTS=12 ;; *) echo "Unsupported platform. Exiting with error." diff --git a/ci/gw_driver.sh b/ci/gw_driver.sh index 41c6915f6..c40ff4026 100755 --- a/ci/gw_driver.sh +++ b/ci/gw_driver.sh @@ -42,7 +42,6 @@ case ${TARGET} in module use $GDAS_MODULE_USE module load GDAS/$TARGET module list - export NTASKS_TESTS=12 ;; *) echo "Unsupported platform. Exiting with error." diff --git a/ci/hera.sh b/ci/hera.sh index ec3858370..8a9518f8b 100644 --- a/ci/hera.sh +++ b/ci/hera.sh @@ -6,3 +6,4 @@ export SALLOC_ACCOUNT=$SLURM_ACCOUNT export SBATCH_ACCOUNT=$SLURM_ACCOUNT export SLURM_QOS=debug export PATH=$PATH:/home/role.jedipara/bin +export NTASKS_TESTS=12 diff --git a/ci/orion.sh b/ci/orion.sh index 1232d2828..8c2cf9a5f 100644 --- a/ci/orion.sh +++ b/ci/orion.sh @@ -8,3 +8,4 @@ export SLURM_QOS=debug export SLURM_EXCLUSIVE=user export OMP_NUM_THREADS=1 ulimit -s unlimited +export NTASKS_TESTS=12 From 0ff61745f2e9416d4c5655a8d34d5098f309c03a Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 25 Nov 2024 20:12:54 +0000 Subject: [PATCH 58/60] Revert "Redo setting on ntasks for tests" This reverts commit b1ae4d291dbc3984c46ead8625220e77223c4786. --- ci/driver.sh | 1 + ci/gw_driver.sh | 1 + ci/hera.sh | 1 - ci/orion.sh | 1 - 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/driver.sh b/ci/driver.sh index 933b9223b..afd1e1974 100755 --- a/ci/driver.sh +++ b/ci/driver.sh @@ -42,6 +42,7 @@ case ${TARGET} in module use $GDAS_MODULE_USE module load GDAS/$TARGET module list + export NTASKS_TESTS=12 ;; *) echo "Unsupported platform. Exiting with error." diff --git a/ci/gw_driver.sh b/ci/gw_driver.sh index c40ff4026..41c6915f6 100755 --- a/ci/gw_driver.sh +++ b/ci/gw_driver.sh @@ -42,6 +42,7 @@ case ${TARGET} in module use $GDAS_MODULE_USE module load GDAS/$TARGET module list + export NTASKS_TESTS=12 ;; *) echo "Unsupported platform. Exiting with error." diff --git a/ci/hera.sh b/ci/hera.sh index 8a9518f8b..ec3858370 100644 --- a/ci/hera.sh +++ b/ci/hera.sh @@ -6,4 +6,3 @@ export SALLOC_ACCOUNT=$SLURM_ACCOUNT export SBATCH_ACCOUNT=$SLURM_ACCOUNT export SLURM_QOS=debug export PATH=$PATH:/home/role.jedipara/bin -export NTASKS_TESTS=12 diff --git a/ci/orion.sh b/ci/orion.sh index 8c2cf9a5f..1232d2828 100644 --- a/ci/orion.sh +++ b/ci/orion.sh @@ -8,4 +8,3 @@ export SLURM_QOS=debug export SLURM_EXCLUSIVE=user export OMP_NUM_THREADS=1 ulimit -s unlimited -export NTASKS_TESTS=12 From 27ac65f7d06f61472165789b7b09c60d33c5f8b7 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 25 Nov 2024 20:13:06 +0000 Subject: [PATCH 59/60] Revert "Address comments" This reverts commit 0302beee448ba89e445f885ad65793b111618dc9. --- ci/driver.sh | 1 - ci/gw_driver.sh | 1 - ci/run_ci.sh | 2 +- ci/run_gw_ci.sh | 2 +- test/atm/global-workflow/CMakeLists.txt | 116 ++++++++++++------ .../C96C48_ufs_hybatmDA_fv3inc.ref | 0 .../C96C48_ufs_hybatmDA_lgetkf.ref | 0 7 files changed, 83 insertions(+), 39 deletions(-) create mode 100644 test/testreference/C96C48_ufs_hybatmDA_fv3inc.ref create mode 100644 test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref diff --git a/ci/driver.sh b/ci/driver.sh index afd1e1974..933b9223b 100755 --- a/ci/driver.sh +++ b/ci/driver.sh @@ -42,7 +42,6 @@ case ${TARGET} in module use $GDAS_MODULE_USE module load GDAS/$TARGET module list - export NTASKS_TESTS=12 ;; *) echo "Unsupported platform. Exiting with error." diff --git a/ci/gw_driver.sh b/ci/gw_driver.sh index 41c6915f6..c40ff4026 100755 --- a/ci/gw_driver.sh +++ b/ci/gw_driver.sh @@ -42,7 +42,6 @@ case ${TARGET} in module use $GDAS_MODULE_USE module load GDAS/$TARGET module list - export NTASKS_TESTS=12 ;; *) echo "Unsupported platform. Exiting with error." diff --git a/ci/run_ci.sh b/ci/run_ci.sh index 64c8ec1be..f6c21642b 100755 --- a/ci/run_ci.sh +++ b/ci/run_ci.sh @@ -61,7 +61,7 @@ module use $GDAS_MODULE_USE module load GDAS/$TARGET echo "---------------------------------------------------" >> $outfile rm -rf log.ctest -ctest -j${$NTASKS_TESTS} -R gdasapp --output-on-failure &>> log.ctest +ctest -j12 -R gdasapp --output-on-failure &>> log.ctest ctest_status=$? npassed=$(cat log.ctest | grep "tests passed") if [ $ctest_status -eq 0 ]; then diff --git a/ci/run_gw_ci.sh b/ci/run_gw_ci.sh index 606a1c6b7..dde762782 100755 --- a/ci/run_gw_ci.sh +++ b/ci/run_gw_ci.sh @@ -62,7 +62,7 @@ module use $repodir/sorc/gdas.cd/modulefiles module load GDAS/$TARGET echo "---------------------------------------------------" >> $outfile rm -rf log.ctest -ctest -j${$NTASKS_TESTS} -R gdasapp --output-on-failure &>> log.ctest +ctest -j12 -R gdasapp --output-on-failure &>> log.ctest ctest_status=$? npassed=$(cat log.ctest | grep "tests passed") if [ $ctest_status -eq 0 ]; then diff --git a/test/atm/global-workflow/CMakeLists.txt b/test/atm/global-workflow/CMakeLists.txt index 0138a3002..daa5b8edf 100644 --- a/test/atm/global-workflow/CMakeLists.txt +++ b/test/atm/global-workflow/CMakeLists.txt @@ -1,40 +1,86 @@ -set(COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/setup_workflow_exp.sh) -set(ARGS "${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}") -set(WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) - -function(add_jjob_test TARGET TEST_DEPENDS) - message(STATUS "preparing ${TARGET} for atm_jjob ctests") - ecbuild_add_test(TARGET ${TARGET} - TYPE SCRIPT - COMMAND ${COMMAND} - ARGS ${ARGS} - WORKING_DIRECTORY ${WORKING_DIRECTORY} - TEST_DEPENDS ${TEST_DEPENDS}) -endfunction() - # test for creating an experiment directory within the global-workflow file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) -# Setup jjob tests ecbuild_add_test(TARGET test_gdasapp_setup_atm_cycled_exp TYPE SCRIPT - COMMAND ${COMMAND} - ARGS ${ARGS} - WORKING_DIRECTORY ${WORKING_DIRECTORY}) - -# Variational jjobs -add_jjob_test(test_gdasapp_atm_jjob_var_init test_gdasapp_setup_atm_cycled_exp) -add_jjob_test(test_gdasapp_atm_jjob_var_run test_gdasapp_atm_jjob_var_init) -add_jjob_test(test_gdasapp_atm_jjob_var_inc test_gdasapp_atm_jjob_var_run) -add_jjob_test(test_gdasapp_atm_jjob_var_final test_gdasapp_atm_jjob_var_inc) - -# Ensemble jjobs with no split observer-solver -add_jjob_test(test_gdasapp_atm_jjob_ens_init test_gdasapp_setup_atm_cycled_exp) -add_jjob_test(test_gdasapp_atm_jjob_ens_letkf test_gdasapp_atm_jjob_ens_init) - -# Ensemble jjobs with split observer-solver -add_jjob_test(test_gdasapp_atm_jjob_ens_init_split test_gdasapp_setup_atm_cycled_exp) -add_jjob_test(test_gdasapp_atm_jjob_ens_obs test_gdasapp_atm_jjob_ens_init_split) -add_jjob_test(test_gdasapp_atm_jjob_ens_sol test_gdasapp_atm_jjob_ens_obs) -add_jjob_test(test_gdasapp_atm_jjob_ens_inc test_gdasapp_atm_jjob_ens_sol) -add_jjob_test(test_gdasapp_atm_jjob_ens_final test_gdasapp_atm_jjob_ens_inc) + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/setup_workflow_exp.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_var_init + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_init.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_setup_atm_cycled_exp) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_var_run + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_run.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_var_init) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_var_inc + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_inc.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_var_run) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_var_final + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_var_final.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_var_inc) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_init + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_init.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_setup_atm_cycled_exp) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_letkf + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_letkf.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_ens_init) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_init_split + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_init_split.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_ens_letkf) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_obs + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_obs.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_ens_init_split) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_sol + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_sol.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_ens_obs) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_inc + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_inc.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_ens_sol) + +ecbuild_add_test(TARGET test_gdasapp_atm_jjob_ens_final + TYPE SCRIPT + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_final.sh + ARGS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun + TEST_DEPENDS test_gdasapp_atm_jjob_ens_inc) + diff --git a/test/testreference/C96C48_ufs_hybatmDA_fv3inc.ref b/test/testreference/C96C48_ufs_hybatmDA_fv3inc.ref new file mode 100644 index 000000000..e69de29bb diff --git a/test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref b/test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref new file mode 100644 index 000000000..e69de29bb From a857a8f90301d8f788a140c919eacd7cb752b576 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Mon, 25 Nov 2024 20:16:51 +0000 Subject: [PATCH 60/60] Readdress comments --- ci/hera.sh | 1 + ci/orion.sh | 1 + ci/run_ci.sh | 2 +- ci/run_gw_ci.sh | 2 +- test/testreference/C96C48_ufs_hybatmDA_fv3inc.ref | 0 test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref | 0 6 files changed, 4 insertions(+), 2 deletions(-) delete mode 100644 test/testreference/C96C48_ufs_hybatmDA_fv3inc.ref delete mode 100644 test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref diff --git a/ci/hera.sh b/ci/hera.sh index ec3858370..8a9518f8b 100644 --- a/ci/hera.sh +++ b/ci/hera.sh @@ -6,3 +6,4 @@ export SALLOC_ACCOUNT=$SLURM_ACCOUNT export SBATCH_ACCOUNT=$SLURM_ACCOUNT export SLURM_QOS=debug export PATH=$PATH:/home/role.jedipara/bin +export NTASKS_TESTS=12 diff --git a/ci/orion.sh b/ci/orion.sh index 1232d2828..8c2cf9a5f 100644 --- a/ci/orion.sh +++ b/ci/orion.sh @@ -8,3 +8,4 @@ export SLURM_QOS=debug export SLURM_EXCLUSIVE=user export OMP_NUM_THREADS=1 ulimit -s unlimited +export NTASKS_TESTS=12 diff --git a/ci/run_ci.sh b/ci/run_ci.sh index f6c21642b..917f70e90 100755 --- a/ci/run_ci.sh +++ b/ci/run_ci.sh @@ -61,7 +61,7 @@ module use $GDAS_MODULE_USE module load GDAS/$TARGET echo "---------------------------------------------------" >> $outfile rm -rf log.ctest -ctest -j12 -R gdasapp --output-on-failure &>> log.ctest +ctest -j${NTASKS_TESTS} -R gdasapp --output-on-failure &>> log.ctest ctest_status=$? npassed=$(cat log.ctest | grep "tests passed") if [ $ctest_status -eq 0 ]; then diff --git a/ci/run_gw_ci.sh b/ci/run_gw_ci.sh index dde762782..d3b7de9d0 100755 --- a/ci/run_gw_ci.sh +++ b/ci/run_gw_ci.sh @@ -62,7 +62,7 @@ module use $repodir/sorc/gdas.cd/modulefiles module load GDAS/$TARGET echo "---------------------------------------------------" >> $outfile rm -rf log.ctest -ctest -j12 -R gdasapp --output-on-failure &>> log.ctest +ctest -j${NTASKS_TESTS} -R gdasapp --output-on-failure &>> log.ctest ctest_status=$? npassed=$(cat log.ctest | grep "tests passed") if [ $ctest_status -eq 0 ]; then diff --git a/test/testreference/C96C48_ufs_hybatmDA_fv3inc.ref b/test/testreference/C96C48_ufs_hybatmDA_fv3inc.ref deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref b/test/testreference/C96C48_ufs_hybatmDA_lgetkf.ref deleted file mode 100644 index e69de29bb..000000000