From d54f8fe6b6077c3a8d46479f1b7e51d8a064fc8c Mon Sep 17 00:00:00 2001 From: Brian Curtis Date: Fri, 17 Jan 2025 16:37:57 -0500 Subject: [PATCH] Work update 20250117 --- tests/newtests/detect_machine.sh | 110 +++++++ tests/newtests/error_handling.sh | 35 +++ tests/newtests/manage_ecflow.sh | 95 ++++++ tests/newtests/manage_rocoto.sh | 59 ++++ tests/newtests/newtests.sh | 160 ++++++++++ tests/newtests/rt.conf | 491 +++++++++++++++++++++++++++++++ tests/newtests/setup_machine.sh | 162 ++++++++++ 7 files changed, 1112 insertions(+) create mode 100755 tests/newtests/detect_machine.sh create mode 100644 tests/newtests/error_handling.sh create mode 100644 tests/newtests/manage_ecflow.sh create mode 100644 tests/newtests/manage_rocoto.sh create mode 100644 tests/newtests/newtests.sh create mode 100644 tests/newtests/rt.conf create mode 100644 tests/newtests/setup_machine.sh diff --git a/tests/newtests/detect_machine.sh b/tests/newtests/detect_machine.sh new file mode 100755 index 0000000000..99419f3555 --- /dev/null +++ b/tests/newtests/detect_machine.sh @@ -0,0 +1,110 @@ +#!/bin/bash + +# The authoritative copy of this script lives in the ufs-weather-model at: +# https://github.com/ufs-community/ufs-weather-model/blob/develop/tests/detect_machine.sh +# If any local modifications are made or new platform support added, +# please consider opening an issue and a PR to the ufs-weather-model +# so that this copy remains in sync with its authoritative source +# +# Thank you for your contribution + +# If the MACHINE_ID variable is set, skip this script. +[[ -n ${MACHINE_ID:-} ]] && return + +# First detect w/ hostname +case $(hostname -f) in + + adecflow0[12].acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=acorn ;; ### acorn + alogin0[123].acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=acorn ;; ### acorn + clogin0[1-9].cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus01-9 + clogin10.cactus.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### cactus10 + dlogin0[1-9].dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dogwood01-9 + dlogin10.dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dogwood10 + + gaea5[1-8]) MACHINE_ID=gaeac5 ;; ### gaea51-58 + gaea5[1-8].ncrc.gov) MACHINE_ID=gaeac5 ;; ### gaea51-58 + gaea6[1-8]) MACHINE_ID=gaeac6 ;; ### gaea61-68 + gaea6[1-8].ncrc.gov) MACHINE_ID=gaeac6 ;; ### gaea61-68 + + hfe0[1-9]) MACHINE_ID=hera ;; ### hera01-09 + hfe1[0-2]) MACHINE_ID=hera ;; ### hera10-12 + hecflow01) MACHINE_ID=hera ;; ### heraecflow01 + + s4-submit.ssec.wisc.edu) MACHINE_ID=s4 ;; ### s4 + + fe[1-8]) MACHINE_ID=jet ;; ### jet01-8 + tfe[12]) MACHINE_ID=jet ;; ### tjet1-2 + + Orion-login-[1-4].HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion1-4 + + [Hh]ercules-login-[1-4].[Hh][Pp][Cc].[Mm]s[Ss]tate.[Ee]du) MACHINE_ID=hercules ;; ### hercules1-4 + + derecho1.hsn.de.hpc.ucar.edu) MACHINE_ID=derecho ;; ### derecho1 + derecho2.hsn.de.hpc.ucar.edu) MACHINE_ID=derecho ;; ### derecho2 + derecho3.hsn.de.hpc.ucar.edu) MACHINE_ID=derecho ;; ### derecho3 + derecho4.hsn.de.hpc.ucar.edu) MACHINE_ID=derecho ;; ### derecho4 + derecho5.hsn.de.hpc.ucar.edu) MACHINE_ID=derecho ;; ### derecho5 + derecho6.hsn.de.hpc.ucar.edu) MACHINE_ID=derecho ;; ### derecho6 + derecho7.hsn.de.hpc.ucar.edu) MACHINE_ID=derecho ;; ### derecho7 + derecho8.hsn.de.hpc.ucar.edu) MACHINE_ID=derecho ;; ### derecho8 + + login[1-4].stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede1-4 + + login[1-4].frontera.tacc.utexas.edu) MACHINE_ID=frontera ;; ### frontera1-4 + c*.frontera.tacc.utexas.edu) MACHINE_ID=frontera ;; ### frontera compute + + login0[1-2].expanse.sdsc.edu) MACHINE_ID=expanse ;; ### expanse1-2 + + discover3[1-5].prv.cube) MACHINE_ID=discover ;; ### discover31-35 + *) MACHINE_ID=UNKNOWN ;; # Unknown platform +esac + +if [[ ${MACHINE_ID} == "UNKNOWN" ]]; then + case ${PW_CSP:-} in + "aws" | "google" | "azure") MACHINE_ID=noaacloud ;; + *) PW_CSP="UNKNOWN" + esac +fi + +# Overwrite auto-detect with MACHINE if set +MACHINE_ID=${MACHINE:-${MACHINE_ID}} + +# If MACHINE_ID is no longer UNKNNOWN, return it +if [[ "${MACHINE_ID}" != "UNKNOWN" ]]; then + return +fi + +# Try searching based on paths since hostname may not match on compute nodes +if [[ -d /lfs/h3 ]]; then + # We are on NOAA Cactus or Dogwood + MACHINE_ID=wcoss2 +elif [[ -d /lfs/h1 && ! -d /lfs/h3 ]]; then + # We are on NOAA TDS Acorn + MACHINE_ID=acorn +elif [[ -d /mnt/lfs1 ]]; then + # We are on NOAA Jet + MACHINE_ID=jet +elif [[ -d /scratch1 ]]; then + # We are on NOAA Hera + MACHINE_ID=hera +elif [[ -d /work ]]; then + # We are on MSU Orion or Hercules + mount=$(findmnt -n -o SOURCE /home) + if [[ ${mount} =~ "hercules" ]]; then + # We are on Hercules + MACHINE_ID=hercules + else + MACHINE_ID=orion + fi +elif [[ -d /gpfs/f5 && -d /ncrc ]]; then + # We are on GAEA C5. + MACHINE_ID=gaeac5 +elif [[ -d /gpfs/f6 && -d /ncrc ]]; then + # We are on GAEA C6. + MACHINE_ID=gaeac6 +elif [[ -d /data/prod ]]; then + # We are on SSEC's S4 + MACHINE_ID=s4 +else + echo WARNING: UNKNOWN PLATFORM 1>&2 +fi diff --git a/tests/newtests/error_handling.sh b/tests/newtests/error_handling.sh new file mode 100644 index 0000000000..63c3d854f5 --- /dev/null +++ b/tests/newtests/error_handling.sh @@ -0,0 +1,35 @@ +#! /bin/bash + +die() { echo "$@" >&2; exit 1; } + +handle_error() { + echo "rt.sh: Getting error information..." + local exit_code=$1 + local exit_line=$2 + echo "Exited at line ${exit_line} having code ${exit_code}" + rt_trap +} + +rt_trap() { + echo "rt.sh: Exited abnormally, killing workflow and cleaning up" + trap "" SIGINT + [[ ${ROCOTO:-false} == true ]] && rocoto_kill + [[ ${ECFLOW:-false} == true ]] && ecflow_kill + cleanup +} + +cleanup() { + echo "rt.sh: Cleaning up..." + awk_info=$(awk '{print $2}' < "${LOCKDIR}/PID") + [[ ${awk_info} == "$$" ]] && rm -rf "${LOCKDIR}" + [[ ${ECFLOW:-false} == true ]] && ecflow_stop + trap 0 + echo "rt.sh: Exiting." + exit +} + +trap '{ echo "rt.sh interrupted"; rt_trap ; }' INT +trap '{ echo "rt.sh quit"; rt_trap ; }' QUIT +trap '{ echo "rt.sh terminated"; rt_trap ; }' TERM +trap '{ handle_error $? $LINENO ; }' ERR +trap '{ echo "rt.sh finished"; cleanup ; }' EXIT \ No newline at end of file diff --git a/tests/newtests/manage_ecflow.sh b/tests/newtests/manage_ecflow.sh new file mode 100644 index 0000000000..9c0dadc950 --- /dev/null +++ b/tests/newtests/manage_ecflow.sh @@ -0,0 +1,95 @@ +#! /bin/bash + +source error_handling.sh + +case ${MACHINE_ID} in + wcoss2|acorn) + module load ecflow/5.6.0.13 + ;; + gaeac5) + # UFSWM Uses ECFLow in Python + module load PrgEnv-intel/8.5.0 + module load intel-classic/2023.2.0 + module load python/3.9.12 + + # ECFLow isn't installed by default. It is in epic stack + module use /ncrc/proj/epic/spack-stack/modulefiles + module load ecflow/5.8.4 + ECF_HOST=$(hostname) + ECF_PORT=$(( $(id -u) + 1500 )) + export ECF_PORT ECF_HOST + ;; + gaeac6) + # UFSWM Uses ECFLow in Python + module use /ncrc/proj/epic/spack-stack/c6/spack-stack-1.6.0/envs/fms-2024.01/install/modulefiles/Core + module load stack-intel/2023.2.0 + module load python/3.10.13 + + # ECFLow isn't installed by default. It is in epic stack + module use /ncrc/proj/epic/spack-stack/modulefiles + module load ecflow/5.8.4 + ECF_HOST=$(hostname) + ECF_PORT=$(( $(id -u) + 1500 )) + export ECF_PORT ECF_HOST + ;; + hera) + module load ecflow/5.11.4 + ;; + orion) + module use /work/noaa/epic/role-epic/spack-stack/orion/modulefiles + module load ecflow/5.8.4 + ECF_HOST=$(hostname) + ECF_PORT="$(( $(id -u) + 1500 ))" + export ECF_PORT ECF_HOST + ;; + hercules) + module use /work/noaa/epic/role-epic/spack-stack/hercules/modulefiles + module load ecflow/5.8.4 + ECF_HOST=$(hostname) + ECF_PORT="$(( $(id -u) + 1500 ))" + export ECF_PORT ECF_HOST + ;; + jet) + # UFSWM Uses ECFlow in Python + module use /contrib/spack-stack/spack-stack-1.6.0/envs/unified-env-rocky8/install/modulefiles/Core + module load stack-intel/2021.5.0 + module load stack-python/3.10.13 + + module load ecflow/5.11.4 + ;; + s4) + module load ecflow/5.6.0 + module load miniconda/3.8-s4 + module use /data/prod/jedi/spack-stack/modulefiles + module load ecflow/5.8.4 + ECF_HOST=$(hostname) + ECF_PORT="$(( $(id -u) + 1500 ))" + export ECF_PORT ECF_HOST + ;; + derecho) + # ECFlow needs Python + module unload ncarcompilers + module use /glade/work/epicufsrt/contrib/spack-stack/derecho/spack-stack-1.5.1/envs/unified-env/install/modulefiles/Core + module load stack-intel/2021.10.0 + module load stack-python/3.10.8 + + # ECFlow not in default system stack. Need to use epic build + module use /glade/work/epicufsrt/contrib/spack-stack/derecho/modulefiles + module load ecflow/5.8.4 + ECF_HOST=$(hostname) + ECF_PORT=$(( $(id -u) + 1500 )) + export ECF_PORT ECF_HOST + ;; + stampede) + die "Machine does not support ECFlow." + ;; + expanse) + die "Machine does not support ECFlow." + ;; + noaacloud) + die "Machine does not support ECFlow." + ;; + *) + die "Unknown machine ID, please edit detect_machine.sh file" + ;; +esac \ No newline at end of file diff --git a/tests/newtests/manage_rocoto.sh b/tests/newtests/manage_rocoto.sh new file mode 100644 index 0000000000..e8c2ebe1f6 --- /dev/null +++ b/tests/newtests/manage_rocoto.sh @@ -0,0 +1,59 @@ +#! /bin/bash + +source error_handling.sh + +case ${MACHINE_ID} in + wcoss2|acorn) + ROCOTO_SCHEDULER="pbs" + ;; + gaeac5) + module use /ncrc/proj/epic/rocoto/modulefiles + module load rocoto + ROCOTO_SCHEDULER="slurm" + ;; + gaeac6) + module use /ncrc/proj/epic/c6/modulefiles + module load rocoto/1.3.7 + ROCOTO_SCHEDULER="slurm" + ;; + hera) + module load rocoto + ROCOTO_SCHEDULER=slurm + ;; + orion) + module load contrib ruby/3.2.3 rocoto/1.3.7 + ROCOTO_SCHEDULER="slurm" + ;; + hercules) + module load contrib rocoto + ROCOTO_SCHEDULER="slurm" + ;; + jet) + module load rocoto + ROCOTO_SCHEDULER="slurm" + ;; + s4) + module load rocoto/1.3.2 + ROCOTO_SCHEDULER=slurm + ;; + derecho) + module use /glade/work/epicufsrt/contrib/derecho/rocoto/modulefiles + module load rocoto + ROCOTO_SCHEDULER="pbspro" + ;; + stampede) + die "Machine does not support Rocoto." + ;; + expanse) + die "Machine does not support Rocoto." + ;; + noaacloud) + export PATH="/contrib/EPIC/bin:${PATH}" + module use /apps/modules/modulefiles + module load rocoto/1.3.7 + ROCOTO_SCHEDULER=slurm + ;; + *) + die "Unknown machine ID, please edit detect_machine.sh file" + ;; +esac \ No newline at end of file diff --git a/tests/newtests/newtests.sh b/tests/newtests/newtests.sh new file mode 100644 index 0000000000..b9194c35dc --- /dev/null +++ b/tests/newtests/newtests.sh @@ -0,0 +1,160 @@ +#! /bin/bash + +set -eu +set -o errexit #Lets trap exit info as error for logging +echo "******Regression Testing Suite Started******" +SECONDS=0 + +# Break the current rt.sh out into separate files or more functions +# The goal is to make it possible to restart any/all steps of the RT system + +# Master Script run_rt.sh +# Will it work to export all variables + +# Tests should save their state to a _new_ dir in tests/ + +# Tests should be labeled by their starting date and time (not PID) + +# STEPS +# 1 - Validate Inputs +# - Improve to use -- options +# - Set defaults +# 2 - Setup Directories +# - verify common dirs exist +# - create unique dirs +# 3 - Setup RT Env Vars +# 4 - Setup machine & machine env vars +# 4 - Setup ECFlow or Setup Rocoto & Ecflow/Rocoto env vars +# - ECFlow/Rocoto should be able to control: +# - RT Stage (setup, run, comparison) +# - Setup +# - Run +# - Comparison +# - Log Generation +usage() { + set +x #No reason to print out a bunch of echo statements here + echo + echo "Usage: $0 -a | -b | -c | -d | -e | -h | -k | -l | -m | -n | -o | -r | -v | -w" + echo + echo " --account, -a to use on for HPC queue" + echo " --test-list, -b create new baselines only for tests listed in " + echo " --create-baselines, -c create new baseline results" + echo " --delete-rundir, -d delete run directories that are not used by other tests" + echo " --use-ecflow, -e use ecFlow workflow manager" + echo " --help, -h display this help" + echo " --keep-rundir, -k keep run directory after rt.sh is completed" + echo " --conf-file, -l runs test specified in " + echo " --compare-baselines, -m compare against new baseline results" + echo " --run-single-test, -n run single test " + echo " --compile-only, -o compile only, skip tests" + echo " --user-rocoto, -r use Rocoto workflow manager" + echo " --verbose, -v verbose output" + echo " --skip-results-check, -w for weekly_test, skip comparing baseline results" + echo +} + +### User Spec Defaults +CREATE_BASELINE=false +ROCOTO=false +ECFLOW=false +KEEP_RUNDIR=false +# TEST_35D=false +skip_check_results=false +delete_rundir=false +COMPILE_ONLY=false +RTPWD_NEW_BASELINE=false +TESTS_FILE='rt.conf' +NEW_BASELINES_FILE='' +DEFINE_CONF_FILE=false +RUN_SINGLE_TEST=false +RTVERBOSE=false +ACCNR=${ACCNR:-""} + +### User specifications ### +while [[ $# -gt 0 ]]; do + case "$1" in + --account|-a) + ACCNR="$2" + shift 2 + ;; + --test-list|-b) + NEW_BASELINES_FILE="$2" + shift 2 + ;; + --create-baselines|-c) + CREATE_BASELINE=true + shift + ;; + --conf-file|-l) + DEFINE_CONF_FILE=true + TESTS_FILE="$2" + grep -q '[^[:space:]]' < "${TESTS_FILE}" || die "${TESTS_FILE} empty, exiting..." + shift 2 + ;; + --compile-only|-o) + COMPILE_ONLY=true + shift + ;; + --compare-baselines|-m) + # redefine RTPWD to point to newly created baseline outputs + RTPWD_NEW_BASELINE=true + shift + ;; + --run-single-test|-n) + RUN_SINGLE_TEST=true + SRT_NAME="$1" + SRT_COMPILER="$2" + + if [[ "${SRT_COMPILER}" != "intel" ]] && [[ "${SRT_COMPILER}" != "intelllvm" ]] && [[ "${SRT_COMPILER}" != "gnu" ]]; then + die "COMPILER MUST BE 'intel' OR 'intelllvm' OR 'gnu'" + fi + shift 3 + ;; + --delete-rundir|-d) + export delete_rundir=true + AWK_OUT=$(awk -F "|" '{print $5}' rt.conf) + grep "\S" <<< "${AWK_OUT}" > keep_tests.tmp + shift + ;; + --skip-results-check|-w) + export skip_check_results=true + shift + ;; + --keep-rundir|-k) + KEEP_RUNDIR=true + shift + ;; + --use-rocoto|-r) + ROCOTO=true + ECFLOW=false + shift + ;; + --use-ecflow|-e) + ECFLOW=true + ROCOTO=false + shift + ;; + --verbose|-v) + RTVERBOSE=true + shift + ;; + --help|-h) + usage + exit 1 + ;; + *) + echo "Invalid option: $1" + exit 1 + ;; + esac +done + +# Statuses are 'Called', 'Started', 'Failed', 'Success' +# Called - The main script has made the call to the script +# Started - Script set status at beginning of code execution +# Failed - Script exits with non-standard exit +# Success - Script exist normally + +status_setup_machine="Called" +export status_setup_machine +source setup_machine.sh \ No newline at end of file diff --git a/tests/newtests/rt.conf b/tests/newtests/rt.conf new file mode 100644 index 0000000000..7a1c4460f3 --- /dev/null +++ b/tests/newtests/rt.conf @@ -0,0 +1,491 @@ +### RT.CONF FORMATTING ### +# COMPILE Line ( Items separated by a | ) +# Item 1: COMPILE - This tells rt.conf the following information is to be used in setting up a compile job +# Item 2: Compile name - The rt.sh will add _gnu or _intel to it. There must be no duplicate names for each compiler. +# If two compilations are identical except compiler, please use the same name for each. +# Item 3: Compiler to use in build (intel or gnu) +# Item 4: CMAKE Options - Provide all CMAKE options for the build +# Item 5: Machines to run on (- is used to ignore specified machines, + is used to only run on specified machines) +## -> EX: + hera orion gaea = compile will only run on hera orion and gaea machines +## -> EX: - wcoss2 acorn = compile will NOT be run on wcoss2 or acorn +# Item 6: [set as fv3]. Used to control the compile job only if FV3 was present, previously used to run a test w/o compiling code +# +# RUN Line ( Items separated by a | ) +## NOTE: The build resulting from the COMPILE line above the RUN line will be used to run the test +# Item 1: RUN - This tells rt.conf the following information is to be used in setting up a model run +# Item 2: Test name. (Which test in the tests/tests directory should be sourced) +# Item 3: Machines to run on (- is used to ignore specified machines, + is used to only run on specified machines). +## reference example above +# Item 4: Controls whether the run creates its own baseline or it uses the baseline from a different (control) test. +# Item 5: Test name to compare baselines with if not itself. + +############################# +### Intel (Classic) Tests ### +############################# + +# COMPILES [ add_compile( , , , , ) ] +add_compile("s2swa_32bit", "intel", "-DAPP=S2SWA -D32BIT=ON -DCCPP_SUITES=FV3_GFS_v17_coupled_p8,FV3_GFS_v17_coupled_p8_ugwpv1", "", "fv3" ) +add_compile("s2swa_32bit_pdlib", "intel", "-DAPP=S2SWA -D32BIT=ON -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 -DPDLIB=ON", "- noaacloud", "fv3") + +# TESTS [ add_test( , , , , )] +add_test("cpld_control_p8_mixedmode", "s2swa_32bit", "- noaacloud", "True", "") +add_test("cpld_control_gfsv17", "s2swa_32bit_pdlib", "- noaacloud", "True", "") +add_test("cpld_control_gfsv17_iau", "s2swa_32bit_pdlib", "- noaacloud", "True", "cpld_control_gfsv17") +add_test("cpld_restart_gfsv17", "s2swa_32bit_pdlib", "- noaacloud", "False", "cpld_control_gfsv17") +add_test("cpld_mpi_gfsv17", "s2swa_32bit_pdlib", "- noaacloud", "False", "") + +# BELOW THIS LINE I'VE DELETED WHAT I'VE ADDED ABOVE +### S2S tests ### +#GFS +#SFS +# COMPILE | s2swa_32bit_pdlib_sfs | intel | -DAPP=S2SWA -D32BIT=ON -DHYDRO=ON -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 -DPDLIB=ON | - noaacloud | fv3 | +# RUN | cpld_control_sfs | - noaacloud | baseline | + +# COMPILE | s2swa_32bit_pdlib_debug | intel | -DAPP=S2SWA -D32BIT=ON -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 -DPDLIB=ON -DDEBUG=ON | - noaacloud jet | fv3 | +# RUN | cpld_debug_gfsv17 | - noaacloud jet | baseline | + +# COMPILE | s2swa | intel | -DAPP=S2SWA -DCCPP_SUITES=FV3_GFS_v17_coupled_p8,FV3_GFS_v17_coupled_p8_ugwpv1 | | fv3 | +# RUN | cpld_control_p8 | - noaacloud | baseline | +# RUN | cpld_control_p8.v2.sfc | - noaacloud | baseline | +# RUN | cpld_restart_p8 | - noaacloud | | cpld_control_p8 +# RUN | cpld_control_qr_p8 | - noaacloud | | +# RUN | cpld_restart_qr_p8 | - noaacloud | | cpld_control_qr_p8 +# RUN | cpld_2threads_p8 | - noaacloud | | +# RUN | cpld_decomp_p8 | - noaacloud | | +# RUN | cpld_mpi_p8 | - noaacloud | | +# RUN | cpld_control_ciceC_p8 | - noaacloud | baseline | +# RUN | cpld_control_c192_p8 | - wcoss2 jet acorn s4 noaacloud | baseline | +# RUN | cpld_restart_c192_p8 | - wcoss2 jet acorn s4 noaacloud | | cpld_control_c192_p8 +# RUN | cpld_bmark_p8 | - s4 jet acorn noaacloud | baseline | +# RUN | cpld_restart_bmark_p8 | - s4 jet acorn noaacloud | | cpld_bmark_p8 + +# # Aerosol, no Wave +# RUN | cpld_s2sa_p8 | - noaacloud | baseline | + +# COMPILE | s2sw | intel | -DAPP=S2SW -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 | | fv3 | +# RUN | cpld_control_noaero_p8 | | baseline | +# RUN | cpld_control_nowave_noaero_p8 | - noaacloud | baseline | + +# COMPILE | s2swa_debug | intel | -DAPP=S2SWA -DDEBUG=ON -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 | - wcoss2 noaacloud acorn | fv3 | +# RUN | cpld_debug_p8 | - wcoss2 acorn noaacloud | baseline | + +# COMPILE | s2sw_debug | intel | -DAPP=S2SW -DDEBUG=ON -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 | - wcoss2 noaacloud acorn | fv3 | +# RUN | cpld_debug_noaero_p8 | - wcoss2 acorn noaacloud | baseline | + +# # Waves and aerosol off for computing fluxes in mediator +# COMPILE | s2s_aoflux | intel | -DAPP=S2S -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_sfcocn -DCMEPS_AOFLUX=ON | | fv3 | +# RUN | cpld_control_noaero_p8_agrid | | baseline | + +# COMPILE | s2s | intel | -DAPP=S2S -DCCPP_SUITES=FV3_GFS_v17_coupled_p8,FV3_GFS_v17_coupled_p8_ugwpv1 | | fv3 | +# RUN | cpld_control_c48 | | baseline | +# RUN | cpld_warmstart_c48 | - noaacloud | baseline | +# RUN | cpld_restart_c48 | - noaacloud | | cpld_warmstart_c48 + +# COMPILE | s2swa_faster | intel | -DAPP=S2SWA -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 -DFASTER=ON | - noaacloud | fv3 | +# RUN | cpld_control_p8_faster | - noaacloud | baseline | + +# # Unstructured WW3 mesh +# COMPILE | s2sw_pdlib | intel | -DAPP=S2SW -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 -DPDLIB=ON | - noaacloud | fv3 | +# RUN | cpld_control_pdlib_p8 | - noaacloud | baseline | +# RUN | cpld_restart_pdlib_p8 | - noaacloud | | cpld_control_pdlib_p8 +# RUN | cpld_mpi_pdlib_p8 | - noaacloud | | cpld_control_pdlib_p8 + +# COMPILE | s2sw_pdlib_debug | intel | -DAPP=S2SW -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 -DPDLIB=ON -DDEBUG=ON | - noaacloud | fv3 | +# RUN | cpld_debug_pdlib_p8 | - noaacloud | baseline | + +# ### ATM tests ### +# COMPILE | atm_dyn32 | intel | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v16,FV3_GFS_v16_flake,FV3_GFS_v17_p8,FV3_GFS_v17_p8_rrtmgp,FV3_GFS_v15_thompson_mynn_lam3km,FV3_WoFS_v0,FV3_GFS_v17_p8_mynn,FV3_GFS_v17_p8_ugwpv1 -D32BIT=ON | | fv3 | +# RUN | control_flake | | baseline | +# RUN | control_CubedSphereGrid | | baseline | +# RUN | control_CubedSphereGrid_parallel | - noaacloud | baseline | +# RUN | control_latlon | | baseline | +# RUN | control_wrtGauss_netcdf_parallel | | baseline | +# RUN | control_c48 | | baseline | +# RUN | control_c48.v2.sfc | | baseline | +# RUN | control_c48_lnd_iau | | baseline | +# RUN | control_c192 | - noaacloud | baseline | +# RUN | control_c384 | | baseline | +# RUN | control_c384gdas | - noaacloud | baseline | +# RUN | control_stochy | | baseline | +# RUN | control_stochy_restart | - noaacloud | | control_stochy +# RUN | control_lndp | | baseline | +# RUN | control_iovr4 | | baseline | +# RUN | control_iovr5 | | baseline | +# RUN | control_p8 | - noaacloud | baseline | +# RUN | control_p8.v2.sfc | - noaacloud | baseline | +# RUN | control_p8_ugwpv1 | - noaacloud | baseline | +# RUN | control_restart_p8 | - noaacloud | | control_p8 +# RUN | control_noqr_p8 | - noaacloud | | +# RUN | control_restart_noqr_p8 | - noaacloud | | control_noqr_p8 +# RUN | control_decomp_p8 | - noaacloud | | +# RUN | control_2threads_p8 | - noaacloud | | +# RUN | control_p8_lndp | | baseline | +# RUN | control_p8_rrtmgp | - noaacloud | baseline | +# RUN | control_p8_mynn | - noaacloud | baseline | +# RUN | merra2_thompson | - noaacloud | baseline | +# RUN | regional_control | | baseline | +# RUN | regional_restart | - noaacloud | | regional_control +# RUN | regional_decomp | - noaacloud | | +# RUN | regional_2threads | - derecho noaacloud | | +# RUN | regional_noquilt | - jet s4 | baseline | +# RUN | regional_netcdf_parallel | - acorn | baseline | +# RUN | regional_2dwrtdecomp | | | +# RUN | regional_wofs | - jet s4 | baseline | + +# COMPILE | rrfs | intel | -DAPP=ATM -DCCPP_SUITES=FV3_RAP,FV3_RAP_sfcdiff,FV3_HRRR,FV3_RRFS_v1beta,FV3_RRFS_v1nssl -D32BIT=ON | | fv3 | +# RUN | rap_control | | baseline | +# RUN | regional_spp_sppt_shum_skeb | | baseline | +# RUN | rap_decomp | - noaacloud | | +# RUN | rap_2threads | - noaacloud | | +# RUN | rap_restart | - noaacloud | | rap_control +# RUN | rap_sfcdiff | - noaacloud | baseline | +# RUN | rap_sfcdiff_decomp | - noaacloud | | +# RUN | rap_sfcdiff_restart | - noaacloud | | rap_sfcdiff +# RUN | hrrr_control | - noaacloud | baseline | +# RUN | hrrr_control_decomp | - noaacloud | | +# RUN | hrrr_control_2threads | - noaacloud | | +# RUN | hrrr_control_restart | - noaacloud | | hrrr_control +# RUN | rrfs_v1beta | | baseline | +# RUN | rrfs_v1nssl | | baseline | +# RUN | rrfs_v1nssl_nohailnoccn | | baseline | + +# COMPILE | csawmg | intel | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v16_csawmg,FV3_GFS_v16_ras | - noaacloud | fv3 | +# RUN | control_csawmg | - noaacloud | baseline | +# RUN | control_ras | - noaacloud | baseline | + +# # Run WAM test in REPRO mode to avoid numerical instability in the deep atmosphere +# COMPILE | wam | intel | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v17_p8 -D32BIT=ON -DMULTI_GASES=ON | - noaacloud | fv3 | +# RUN | control_wam | - noaacloud | baseline | + +# COMPILE | atm_faster_dyn32 | intel | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v17_p8,FV3_GFS_v15_thompson_mynn_lam3km -D32BIT=ON -DFASTER=ON | | fv3 | +# RUN | control_p8_faster | - noaacloud | baseline | +# RUN | regional_control_faster | | baseline | + +# ### DEBUG ATM tests ### +# COMPILE | atm_debug_dyn32 | intel | -DAPP=ATM -DDEBUG=ON -D32BIT=ON -DCCPP_SUITES=FV3_HRRR,FV3_GFS_v16,FV3_GFS_v16_csawmg,FV3_GFS_v16_ras,FV3_GFS_v17_p8,FV3_GFS_v17_p8_ugwpv1,FV3_GFS_v15_thompson_mynn_lam3km,FV3_RAP,FV3_RAP_unified_ugwp,FV3_RAP_cires_ugwp,FV3_RAP_flake,FV3_RAP_clm_lake,FV3_RAP_noah,FV3_RAP_sfcdiff,FV3_RAP_noah_sfcdiff_cires_ugwp,FV3_RRFS_v1beta,FV3_HRRR_c3,FV3_HRRR_gf,FV3_global_nest_v1 | - noaacloud | fv3 | +# RUN | control_CubedSphereGrid_debug | - noaacloud | baseline | +# RUN | control_wrtGauss_netcdf_parallel_debug | - noaacloud | baseline | +# RUN | control_stochy_debug | - noaacloud | baseline | +# RUN | control_lndp_debug | - noaacloud | baseline | +# RUN | control_csawmg_debug | - noaacloud | baseline | +# RUN | control_ras_debug | - noaacloud | baseline | +# RUN | control_diag_debug | - noaacloud | baseline | +# RUN | control_debug_p8 | - noaacloud | baseline | +# RUN | regional_debug | - noaacloud | baseline | +# RUN | rap_control_debug | - noaacloud | baseline | +# RUN | hrrr_control_debug | - noaacloud | baseline | +# RUN | hrrr_gf_debug | - noaacloud | baseline | +# RUN | hrrr_c3_debug | - noaacloud | baseline | +# RUN | rap_unified_drag_suite_debug | - noaacloud | | +# RUN | rap_diag_debug | - noaacloud | baseline | +# RUN | rap_cires_ugwp_debug | - noaacloud | baseline | +# RUN | rap_unified_ugwp_debug | - noaacloud | | +# RUN | rap_lndp_debug | - noaacloud | baseline | +# RUN | rap_progcld_thompson_debug | - noaacloud | baseline | +# RUN | rap_noah_debug | - noaacloud | baseline | +# RUN | rap_sfcdiff_debug | - noaacloud | baseline | +# RUN | rap_noah_sfcdiff_cires_ugwp_debug | - noaacloud | baseline | +# RUN | rrfs_v1beta_debug | - noaacloud | baseline | +# RUN | rap_clm_lake_debug | - noaacloud | baseline | +# RUN | rap_flake_debug | - noaacloud | baseline | +# RUN | gnv1_c96_no_nest_debug | - noaacloud | baseline | +# ### DEBUG ATM tests ### +# COMPILE | atm_debug_dyn32 | gnu | -DAPP=ATM -DDEBUG=ON -D32BIT=ON -DCCPP_SUITES=FV3_HRRR,FV3_GFS_v16,FV3_GFS_v16_csawmg,FV3_GFS_v16_ras,FV3_GFS_v17_p8,FV3_GFS_v15_thompson_mynn_lam3km,FV3_RAP,FV3_RAP_unified_ugwp,FV3_RAP_cires_ugwp,FV3_RAP_flake,FV3_RAP_clm_lake,FV3_RAP_noah,FV3_RAP_sfcdiff,FV3_RAP_noah_sfcdiff_cires_ugwp,FV3_RRFS_v1beta,FV3_HRRR_c3,FV3_HRRR_gf,FV3_global_nest_v1 | + hera hercules | fv3 | +# RUN | control_csawmg_debug | + hera hercules | baseline | + +# COMPILE | wam_debug | intel | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v17_p8 -D32BIT=ON -DMULTI_GASES=ON -DDEBUG=ON | - noaacloud | fv3 | +# RUN | control_wam_debug | - noaacloud hercules | baseline | + +# ### 32-bit physics tests ### +# COMPILE | rrfs_dyn32_phy32 | intel | -DAPP=ATM -DCCPP_SUITES=FV3_RAP,FV3_HRRR -D32BIT=ON -DCCPP_32BIT=ON | - noaacloud | fv3 | +# RUN | regional_spp_sppt_shum_skeb_dyn32_phy32 | - noaacloud | baseline | +# RUN | rap_control_dyn32_phy32 | - noaacloud | baseline | +# RUN | hrrr_control_dyn32_phy32 | - noaacloud | baseline | +# RUN | rap_2threads_dyn32_phy32 | - noaacloud | | +# RUN | hrrr_control_2threads_dyn32_phy32 | - noaacloud | | +# RUN | hrrr_control_decomp_dyn32_phy32 | - noaacloud | | +# RUN | rap_restart_dyn32_phy32 | - noaacloud | | rap_control_dyn32_phy32 +# RUN | hrrr_control_restart_dyn32_phy32 | - noaacloud | | hrrr_control_dyn32_phy32 + +# COMPILE | rrfs_dyn32_phy32_faster | intel | -DAPP=ATM -DFASTER=ON -DCCPP_SUITES=FV3_HRRR -D32BIT=ON -DCCPP_32BIT=ON | - noaacloud | fv3 | +# RUN | conus13km_control | - noaacloud | baseline | +# RUN | conus13km_2threads | - noaacloud | | conus13km_control +# RUN | conus13km_restart_mismatch | - noaacloud | baseline | conus13km_control + +# # Expected to fail: +# # RUN | conus13km_restart | - noaacloud | | conus13km_control +# # RUN | conus13km_decomp | - noaacloud | | conus13km_control + +# COMPILE | rrfs_dyn64_phy32 | intel | -DAPP=ATM -DCCPP_SUITES=FV3_RAP,FV3_HRRR -DCCPP_32BIT=ON | - noaacloud | fv3 | +# RUN | rap_control_dyn64_phy32 | - noaacloud | baseline | + +# COMPILE | rrfs_dyn32_phy32_debug | intel | -DAPP=ATM -DCCPP_SUITES=FV3_RAP,FV3_HRRR,FV3_HRRR_gf -D32BIT=ON -DCCPP_32BIT=ON -DDEBUG=ON | - noaacloud | fv3 | +# RUN | rap_control_debug_dyn32_phy32 | - noaacloud | baseline | +# RUN | hrrr_control_debug_dyn32_phy32 | - noaacloud | baseline | +# RUN | conus13km_debug | - noaacloud | baseline | +# RUN | conus13km_debug_qr | - noaacloud | | +# RUN | conus13km_debug_2threads | - noaacloud | | +# RUN | conus13km_radar_tten_debug | - noaacloud | baseline | + +# # Expected to fail: +# # RUN | conus13km_debug_decomp | - noaacloud | | + +# COMPILE | rrfs_dyn64_phy32_debug | intel | -DAPP=ATM -DCCPP_SUITES=FV3_RAP,FV3_HRRR -DCCPP_32BIT=ON -DDEBUG=ON | - noaacloud | fv3 | +# RUN | rap_control_dyn64_phy32_debug | - noaacloud | baseline | + +# ### HAFS tests ### +# COMPILE | hafsw | intel | -DAPP=HAFSW -DMOVING_NEST=ON -DCCPP_SUITES=FV3_HAFS_v1_gfdlmp_tedmf,FV3_HAFS_v1_gfdlmp_tedmf_nonsst,FV3_HAFS_v1_thompson_tedmf_gfdlsf,FV3_global_nest_v1 -D32BIT=ON | | fv3 | +# RUN | hafs_regional_atm | | baseline | +# RUN | hafs_regional_atm_thompson_gfdlsf | | baseline | +# RUN | hafs_regional_atm_ocn | | baseline | +# RUN | hafs_regional_atm_wav | | baseline | +# RUN | hafs_regional_atm_ocn_wav | - noaacloud | baseline | +# RUN | hafs_regional_1nest_atm | - jet s4 noaacloud | baseline | +# RUN | hafs_regional_telescopic_2nests_atm | - jet s4 noaacloud | baseline | +# RUN | hafs_global_1nest_atm | - jet s4 noaacloud | baseline | +# RUN | hafs_global_multiple_4nests_atm | - jet s4 noaacloud | baseline | +# RUN | hafs_regional_specified_moving_1nest_atm | - jet s4 noaacloud | baseline | +# RUN | hafs_regional_storm_following_1nest_atm | - jet s4 noaacloud | baseline | +# RUN | hafs_regional_storm_following_1nest_atm_ocn | - jet s4 noaacloud | baseline | +# RUN | hafs_global_storm_following_1nest_atm | - jet s4 noaacloud | baseline | + +# # This probably works on S4, but I cannot know for certain. I don't have access to the machine. +# RUN | gnv1_nested | - hercules wcoss2 s4 noaacloud | baseline | + +# COMPILE | hafsw_debug | intel | -DAPP=HAFSW -DMOVING_NEST=ON -DCCPP_SUITES=FV3_HAFS_v1_gfdlmp_tedmf_nonsst -D32BIT=ON -DDEBUG=ON | - jet noaacloud s4 | fv3 | +# RUN | hafs_regional_storm_following_1nest_atm_ocn_debug | - jet s4 noaacloud | baseline | + +# COMPILE | hafsw_faster | intel | -DAPP=HAFSW -DCDEPS_INLINE=ON -DMOVING_NEST=ON -DCCPP_SUITES=FV3_HAFS_v1_gfdlmp_tedmf,FV3_HAFS_v1_gfdlmp_tedmf_nonsst,FV3_HAFS_v1_thompson,FV3_HAFS_v1_thompson_nonsst -D32BIT=ON -DFASTER=ON | -jet noaacloud s4 | fv3 | +# RUN | hafs_regional_storm_following_1nest_atm_ocn_wav | - jet s4 noaacloud | baseline | +# RUN | hafs_regional_storm_following_1nest_atm_ocn_wav_inline | - jet s4 noaacloud | baseline | + +# COMPILE | hafs_mom6w | intel| -DAPP=HAFS-MOM6W -DREGIONAL_MOM6=ON -DCDEPS_INLINE=ON -DMOVING_NEST=ON -DCCPP_SUITES=FV3_HAFS_v1_gfdlmp_tedmf,FV3_HAFS_v1_gfdlmp_tedmf_nonsst,FV3_HAFS_v1_thompson,FV3_HAFS_v1_thompson_nonsst -D32BIT=ON | -jet noaacloud s4 | fv3 | +# RUN | hafs_regional_storm_following_1nest_atm_ocn_wav_mom6 | - jet s4 noaacloud | baseline | + +# COMPILE | hafs_all | intel | -DAPP=HAFS-ALL -DCCPP_SUITES=FV3_HAFS_v1_gfdlmp_tedmf,FV3_HAFS_v1_gfdlmp_tedmf_nonsst -D32BIT=ON | - noaacloud | fv3 | +# RUN | hafs_regional_docn | - noaacloud | baseline | +# RUN | hafs_regional_docn_oisst | - noaacloud | baseline | +# RUN | hafs_regional_datm_cdeps | - jet s4 noaacloud | baseline | + +# ### CDEPS Data Atmosphere tests ### +# COMPILE | datm_cdeps | intel | -DAPP=NG-GODAS | - wcoss2 | fv3 | +# RUN | datm_cdeps_control_cfsr | - wcoss2 | baseline | +# RUN | datm_cdeps_restart_cfsr | - wcoss2 noaacloud | | datm_cdeps_control_cfsr +# RUN | datm_cdeps_control_gefs | - wcoss2 | baseline | +# RUN | datm_cdeps_iau_gefs | - wcoss2 | baseline | +# RUN | datm_cdeps_stochy_gefs | - wcoss2 | baseline | +# RUN | datm_cdeps_ciceC_cfsr | - wcoss2 noaacloud | baseline | +# RUN | datm_cdeps_bulk_cfsr | - wcoss2 noaacloud | baseline | +# RUN | datm_cdeps_bulk_gefs | - wcoss2 noaacloud | baseline | +# RUN | datm_cdeps_mx025_cfsr | - wcoss2 noaacloud | baseline | +# RUN | datm_cdeps_mx025_gefs | - wcoss2 noaacloud | baseline | +# RUN | datm_cdeps_multiple_files_cfsr | - wcoss2 noaacloud | | +# RUN | datm_cdeps_3072x1536_cfsr | - wcoss2 noaacloud | baseline | +# RUN | datm_cdeps_gfs | - wcoss2 noaacloud | baseline | + +# COMPILE | datm_cdeps_debug | intel | -DAPP=NG-GODAS -DDEBUG=ON | - wcoss2 acorn noaacloud | fv3 | +# RUN | datm_cdeps_debug_cfsr | - wcoss2 acorn noaacloud | baseline | + +# COMPILE | datm_cdeps_faster | intel | -DAPP=NG-GODAS -DFASTER=ON | - wcoss2 | fv3 | +# RUN | datm_cdeps_control_cfsr_faster | - wcoss2 | baseline | + +# ### CDEPS Data Atmosphere tests with LND ### +# COMPILE | datm_cdeps_land | intel | -DAPP=LND | - wcoss2 | fv3 | +# RUN | datm_cdeps_lnd_gswp3 | - wcoss2 | baseline | +# RUN | datm_cdeps_lnd_era5 | - wcoss2 | baseline | +# RUN | datm_cdeps_lnd_era5_rst | - wcoss2 noaacloud | | datm_cdeps_lnd_era5 + +# ### CDEPS Data Atmosphere tests with LM4 ### +# COMPILE | datm_cdeps_lm4 | intel | -DAPP=LND-LM4 | + hera orion gaeac5 | fv3 | +# RUN | datm_cdeps_lm4_gswp3 | + hera orion gaeac5 | baseline | +# RUN | datm_cdeps_lm4_gswp3_rst | + hera orion gaeac5 | | datm_cdeps_lm4_gswp3 + +# ### AMIP+ tests ### +# COMPILE | atm_ds2s_docn_pcice | intel | -DAPP=ATM_DS2S-PCICE -DCCPP_SUITES=FV3_GFS_v17_coupled_p8 | | fv3 | +# RUN | atm_ds2s_docn_pcice | - noaacloud | baseline | +# COMPILE | atm_ds2s_docn_dice | intel | -DAPP=ATM_DS2S -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 | - wcoss2 acorn | fv3 | +# RUN | atm_ds2s_docn_dice | - noaacloud wcoss2 acorn | baseline | cpld_control_nowave_noaero_p8 + +# ### ATM-LND tests ### +# COMPILE | atml | intel | -DAPP=ATML -DCCPP_SUITES=FV3_GFS_v16,FV3_GFS_v16_flake,FV3_GFS_v17_p8,FV3_GFS_v17_p8_rrtmgp,FV3_GFS_v15_thompson_mynn_lam3km,FV3_WoFS_v0,FV3_GFS_v17_p8_mynn -D32BIT=ON | | fv3 | +# RUN | control_p8_atmlnd_sbs | - noaacloud wcoss2 | baseline | +# RUN | control_p8_atmlnd | - noaacloud wcoss2 | baseline | +# RUN | control_restart_p8_atmlnd | - noaacloud wcoss2 | | control_p8_atmlnd + +# COMPILE | atml_debug | intel | -DAPP=ATML -DCCPP_SUITES=FV3_GFS_v16,FV3_GFS_v16_flake,FV3_GFS_v17_p8,FV3_GFS_v17_p8_rrtmgp,FV3_GFS_v15_thompson_mynn_lam3km,FV3_WoFS_v0,FV3_GFS_v17_p8_mynn -D32BIT=ON -DDEBUG=ON | | fv3 | +# RUN | control_p8_atmlnd_debug | - noaacloud wcoss2 | baseline | + +# ### ATM-WAV tests ### +# #mediator (cmeps) +# COMPILE | atmw | intel | -DAPP=ATMW -DCCPP_SUITES=FV3_GFS_v17_p8 -D32BIT=ON | - wcoss2 | fv3 | +# RUN | atmwav_control_noaero_p8 | - wcoss2 | baseline | + +# ### ATM-GOCART tests ### +# COMPILE | atmaero | intel | -DAPP=ATMAERO -DCCPP_SUITES=FV3_GFS_v17_p8 -D32BIT=ON | - noaacloud | fv3 | +# RUN | atmaero_control_p8 | - noaacloud | baseline | +# RUN | atmaero_control_p8_rad | - noaacloud | baseline | +# RUN | atmaero_control_p8_rad_micro | - noaacloud | baseline | + +# ### ATM-CMAQ tests ### +# #COMPILE | atmaq | intel | -DAPP=ATMAQ -DCCPP_SUITES=FV3_GFS_v15p2 -D32BIT=ON | - jet s4 | fv3 | +# #RUN | regional_atmaq | - jet s4 | baseline | + +# COMPILE | atmaq_debug | intel | -DAPP=ATMAQ -DCCPP_SUITES=FV3_GFS_v15p2 -DDEBUG=ON -D32BIT=ON | - jet noaacloud s4 | fv3 | +# RUN | regional_atmaq_debug | - hera jet s4 noaacloud | baseline | + +# ### ATM-FBH test ### +# COMPILE | atm_fbh | intel | -DAPP=ATMF -DCCPP_SUITES=FV3_HRRR -D32BIT=ON | - wcoss2 noaacloud acorn | fv3 | +# RUN | cpld_regional_atm_fbh | - wcoss2 noaacloud acorn | baseline | + + + +# ############################# +# ### Intel (LLVM) Tests ###### +# ############################# + + +# # Coupled gfs17 tests on Gaea +# COMPILE | s2swa_32bit_pdlib | intelllvm | -DAPP=S2SWA -D32BIT=ON -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 -DPDLIB=ON | + gaeac5 | fv3 | +# RUN | cpld_control_gfsv17 | + gaeac5 | baseline | + +# COMPILE | s2swa_32bit_pdlib_debug | intelllvm | -DAPP=S2SWA -D32BIT=ON -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 -DPDLIB=ON -DDEBUG=ON | + gaeac5 | fv3 | +# RUN | cpld_debug_gfsv17 | + gaeac5 | baseline | + +# COMPILE | s2swa_32bit_pdlib_sfs | intelllvm | -DAPP=S2SWA -D32BIT=ON -DHYDRO=ON -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 -DPDLIB=ON | + gaeac5 | fv3 | +# RUN | cpld_control_sfs | + gaeac5 | baseline | + +# COMPILE | s2swa | intelllvm | -DAPP=S2SWA -DCCPP_SUITES=FV3_GFS_v17_coupled_p8,FV3_GFS_v17_coupled_p8_ugwpv1 | + gaeac5 | fv3 | +# RUN | cpld_control_p8 | + gaeac5 | baseline | + +# # Regional RRFS tests on Hera +# COMPILE | rrfs_dyn32_phy32 | intelllvm | -DAPP=ATM -DCCPP_SUITES=FV3_RAP -D32BIT=ON -DCCPP_32BIT=ON | + hera | fv3 | +# RUN | rap_control_dyn32_phy32 | + hera | baseline | + +# COMPILE | rrfs_dyn64_phy32 | intelllvm | -DAPP=ATM -DCCPP_SUITES=FV3_RAP -DCCPP_32BIT=ON | + hera | fv3 | +# RUN | rap_control_dyn64_phy32 | + hera | baseline | + +# # HAFS tests on Orion +# COMPILE | hafsw | intelllvm | -DAPP=HAFSW -DMOVING_NEST=ON -DCCPP_SUITES=FV3_HAFS_v1_gfdlmp_tedmf_nonsst -D32BIT=ON | + orion | fv3 | +# RUN | hafs_regional_storm_following_1nest_atm_ocn | + orion | baseline | + +# COMPILE | hafsw_debug | intelllvm | -DAPP=HAFSW -DMOVING_NEST=ON -DCCPP_SUITES=FV3_HAFS_v1_gfdlmp_tedmf_nonsst -D32BIT=ON -DDEBUG=ON | + orion | fv3 | +# RUN | hafs_regional_storm_following_1nest_atm_ocn_debug | + orion | baseline | + +# # DATM/CDEPS tests on Hercules +# COMPILE | datm_cdeps | intelllvm | -DAPP=NG-GODAS | + hercules | fv3 | +# RUN | datm_cdeps_control_cfsr | + hercules | baseline | + +# COMPILE | datm_cdeps_debug | intelllvm | -DAPP=NG-GODAS -DDEBUG=ON | + hercules | fv3 | +# RUN | datm_cdeps_debug_cfsr | + hercules | baseline | + + + +# ############################# +# ### Gnu Tests ############### +# ############################# + +# ### CCPP PROD tests ### +# COMPILE | atm | gnu | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v16,FV3_GFS_v16_flake,FV3_GFS_v16_ras,FV3_GFS_v17_p8,FV3_GFS_v17_p8_ugwpv1 | + hera hercules | fv3 | +# RUN | control_c48 | + hera hercules | baseline | +# RUN | control_stochy | + hera hercules | baseline | +# RUN | control_ras | + hera hercules | baseline | +# RUN | control_p8 | + hera hercules | baseline | +# RUN | control_p8_ugwpv1 | + hera hercules | baseline | +# RUN | control_flake | + hera hercules | baseline | + +# COMPILE | rrfs | gnu | -DAPP=ATM -DCCPP_SUITES=FV3_RAP,FV3_RAP_sfcdiff,FV3_HRRR,FV3_RRFS_v1beta -D32BIT=ON | + hera hercules | fv3 | +# RUN | rap_control | + hera hercules | baseline | +# RUN | rap_decomp | + hera hercules | | +# RUN | rap_2threads | + hera hercules | | +# RUN | rap_restart | + hera hercules | | rap_control +# RUN | rap_sfcdiff | + hera hercules | baseline | +# RUN | rap_sfcdiff_decomp | + hera hercules | | +# RUN | rap_sfcdiff_restart | + hera hercules | | rap_sfcdiff +# RUN | hrrr_control | + hera hercules | baseline | +# RUN | hrrr_control_noqr | + hera hercules | | +# RUN | hrrr_control_2threads | + hera hercules | | +# RUN | hrrr_control_decomp | + hera hercules | | +# RUN | hrrr_control_restart | + hera hercules | | hrrr_control +# RUN | hrrr_control_restart_noqr | + hera hercules | | hrrr_control_noqr +# RUN | rrfs_v1beta | + hera hercules | baseline | + +# COMPILE | csawmg | gnu | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v16_csawmg,FV3_GFS_v16_ras | + hera hercules | fv3 | +# RUN | control_csawmg | + hera hercules | baseline | + +# ### CCPP DEBUG tests ### +# # Exercise compilation without specifying suites (i.e. compile all suites) in DEBUG mode (faster than in PROD mode) +# COMPILE | atm_dyn32_debug | gnu | -DAPP=ATM -D32BIT=ON -DDEBUG=ON | + hera hercules | fv3 | +# RUN | control_diag_debug | + hera hercules | baseline | +# RUN | regional_debug | + hera hercules | baseline | +# RUN | rap_control_debug | + hera hercules | baseline | +# RUN | hrrr_control_debug | + hera hercules | baseline | +# RUN | hrrr_gf_debug | + hera hercules | baseline | +# RUN | hrrr_c3_debug | + hera hercules | baseline | +# RUN | rap_diag_debug | + hera hercules | baseline | +# RUN | rap_noah_sfcdiff_cires_ugwp_debug | + hera hercules | baseline | +# RUN | rap_progcld_thompson_debug | + hera hercules | baseline | +# RUN | rrfs_v1beta_debug | + hera hercules | baseline | +# RUN | control_ras_debug | + hera hercules | baseline | +# RUN | control_stochy_debug | + hera hercules | baseline | +# RUN | control_debug_p8 | + hera hercules | baseline | +# RUN | rap_flake_debug | + hera hercules | baseline | +# RUN | rap_clm_lake_debug | + hera hercules | baseline | +# RUN | gnv1_c96_no_nest_debug | + hera hercules | baseline | + +# COMPILE | wam_debug | gnu | -DAPP=ATM -DCCPP_SUITES=FV3_GFS_v17_p8 -D32BIT=ON -DMULTI_GASES=ON -DDEBUG=ON | + hera hercules | fv3 | +# RUN | control_wam_debug | + hercules | baseline | + +# ### 32-bit physics tests ### +# COMPILE | rrfs_dyn32_phy32 | gnu | -DAPP=ATM -DCCPP_SUITES=FV3_RAP,FV3_HRRR -D32BIT=ON -DCCPP_32BIT=ON | + hera hercules | fv3 | +# RUN | rap_control_dyn32_phy32 | + hera hercules | baseline | +# RUN | hrrr_control_dyn32_phy32 | + hera hercules | baseline | +# RUN | rap_2threads_dyn32_phy32 | + hera hercules | | +# RUN | hrrr_control_2threads_dyn32_phy32 | + hera hercules | | +# RUN | hrrr_control_decomp_dyn32_phy32 | + hera hercules | | +# RUN | rap_restart_dyn32_phy32 | + hera hercules | | rap_control_dyn32_phy32 +# RUN | hrrr_control_restart_dyn32_phy32 | + hera hercules | | hrrr_control_dyn32_phy32 +# RUN | conus13km_control | + hera hercules | baseline | +# RUN | conus13km_2threads | + hera hercules | | conus13km_control +# RUN | conus13km_restart_mismatch | + hera hercules | baseline | conus13km_control + +# # Expected to fail: +# # RUN | conus13km_restart | + hera hercules | | conus13km_control +# # RUN | conus13km_decomp | + hera hercules | | conus13km_control + +# COMPILE | atm_dyn64_phy32 | gnu | -DAPP=ATM -DCCPP_32BIT=ON | + hera hercules | fv3 | +# RUN | rap_control_dyn64_phy32 | + hera hercules | baseline | + +# COMPILE | atm_dyn32_phy32_debug | gnu | -DAPP=ATM -D32BIT=ON -DCCPP_32BIT=ON -DDEBUG=ON | + hera hercules | fv3 | +# RUN | rap_control_debug_dyn32_phy32 | + hera hercules | baseline | +# RUN | hrrr_control_debug_dyn32_phy32 | + hera hercules | baseline | +# RUN | conus13km_debug | + hera hercules | baseline | +# RUN | conus13km_debug_qr | + hera hercules | | +# RUN | conus13km_debug_2threads | + hera hercules | | +# RUN | conus13km_radar_tten_debug | + hera hercules | baseline | + +# # Expected to fail: +# # RUN | conus13km_debug_decomp | + hera derecho hercules | | + +# COMPILE | atm_dyn64_phy32_debug | gnu | -DAPP=ATM -DCCPP_32BIT=ON -DDEBUG=ON | + hera hercules | fv3 | +# RUN | rap_control_dyn64_phy32_debug | + hera hercules | baseline | + +# ### S2S tests ### +# COMPILE | s2swa | gnu | -DAPP=S2SWA -DCCPP_SUITES=FV3_GFS_v17_coupled_p8 | + hera hercules | fv3 | +# #RUN | cpld_control_p8 | + hercules | baseline | + +# COMPILE | s2s | gnu | -DAPP=S2S -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 | + hera hercules | fv3 | +# RUN | cpld_control_nowave_noaero_p8 | + hera hercules | baseline | + +# COMPILE | s2swa_debug | gnu | -DAPP=S2SWA -DDEBUG=ON -DCCPP_SUITES=FV3_GFS_v17_coupled_p8 | + hera hercules | fv3 | +# #RUN | cpld_debug_p8 | + hercules | baseline | + +# # Unstructured WW3 +# COMPILE | s2sw_pdlib | gnu | -DAPP=S2SW -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 -DPDLIB=ON | + hera hercules | fv3 | +# RUN | cpld_control_pdlib_p8 | + hera hercules | baseline | + +# COMPILE | s2sw_pdlib_debug | gnu | -DAPP=S2SW -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 -DPDLIB=ON -DDEBUG=ON | + hera hercules | fv3 | +# RUN | cpld_debug_pdlib_p8 | + hercules | baseline | + +# ### CDEPS Data Atmosphere test ### +# COMPILE | datm_cdeps | gnu | -DAPP=NG-GODAS | + hera hercules | fv3 | +# RUN | datm_cdeps_control_cfsr | + hera hercules | baseline | diff --git a/tests/newtests/setup_machine.sh b/tests/newtests/setup_machine.sh new file mode 100644 index 0000000000..d2e4dc1949 --- /dev/null +++ b/tests/newtests/setup_machine.sh @@ -0,0 +1,162 @@ +#! /bin/bash + +# Variable to track the status of this script +status_setup_machine=${status_setup_machine:-"Started"} +local local_status="Started" + +# Detect the machine (if $MACHINE_ID is already set this script will just quit without changing anything) +source detect_machine.sh + +case ${MACHINE_ID} in + wcoss2|acorn) + echo "rt.sh: Setting up WCOSS2/Acorn" + DISKNM="/lfs/h2/emc/nems/noscrub/emc.nems/RT" + QUEUE="dev" + COMPILE_QUEUE="dev" + PARTITION= + STMP="/lfs/h2/emc/ptmp" + PTMP="/lfs/h2/emc/ptmp" + SCHEDULER="pbs" + ;; + gaeac5) + echo "rt.sh: Setting up gaea c5..." + export LD_PRELOAD=/usr/lib64/libstdc++.so.6 + DISKNM=/gpfs/f5/epic/world-shared/UFS-WM_RT + QUEUE=normal + COMPILE_QUEUE=normal + PARTITION=c5 + dprefix=${dprefix:-/gpfs/f5/${ACCNR}/scratch/${USER}} + STMP=${STMP:-${dprefix}/RT_BASELINE} + PTMP=${PTMP:-${dprefix}/RT_RUNDIRS} + SCHEDULER="slurm" + ;; + gaeac6) + echo "rt.sh: Setting up gaea c6..." + export LD_PRELOAD=/usr/lib64/libstdc++.so.6 + DISKNM=/gpfs/f6/bil-fire8/world-shared/role.epic/UFS-WM_RT + QUEUE=normal + COMPILE_QUEUE=normal + PARTITION=c6 + dprefix=${dprefix:-/gpfs/f6/${ACCNR}/proj-shared/${USER}} + STMP=${STMP:-${dprefix}/RT_BASELINE} + PTMP=${PTMP:-${dprefix}/RT_RUNDIRS} + SCHEDULER="slurm" + ;; + hera) + echo "rt.sh: Setting up hera..." + QUEUE="batch" + COMPILE_QUEUE="batch" + PARTITION= + dprefix="/scratch1/NCEPDEV" + DISKNM="/scratch2/NAGAPE/epic/UFS-WM_RT" + STMP="${dprefix}/stmp4" + PTMP="${dprefix}/stmp2" + SCHEDULER=slurm + ;; + orion) + echo "rt.sh: Setting up orion..." + QUEUE="batch" + COMPILE_QUEUE="batch" + PARTITION="orion" + dprefix="/work/noaa/stmp/${USER}" + DISKNM="/work/noaa/epic/UFS-WM_RT" + STMP="${dprefix}/stmp" + PTMP="${dprefix}/stmp" + SCHEDULER="slurm" + cp fv3_conf/fv3_slurm.IN_orion fv3_conf/fv3_slurm.IN + cp fv3_conf/compile_slurm.IN_orion fv3_conf/compile_slurm.IN + ;; + hercules) + echo "rt.sh: Setting up hercules..." + QUEUE="batch" + COMPILE_QUEUE="batch" + PARTITION="hercules" + dprefix="/work2/noaa/stmp/${USER}" + DISKNM="/work/noaa/epic/hercules/UFS-WM_RT" + STMP="${dprefix}/stmp" + PTMP="${dprefix}/stmp" + SCHEDULER="slurm" + cp fv3_conf/fv3_slurm.IN_hercules fv3_conf/fv3_slurm.IN + cp fv3_conf/compile_slurm.IN_hercules fv3_conf/compile_slurm.IN + ;; + jet) + echo "rt.sh: Setting up jet..." + CurJetOS=$(lsb_release -is) + echo "=======Running on ${CurJetOS}=======" + if [[ ${CurJetOS} == "CentOS" ]]; then + echo "=======Please, move to Rocky8 node fe[5-8]=======" + exit 1 + fi + QUEUE="batch" + COMPILE_QUEUE="batch" + PARTITION="xjet" + DISKNM="/lfs5/HFIP/hfv3gfs/role.epic/RT" + dprefix="${dprefix:-/lfs5/HFIP/${ACCNR}/${USER}}" + STMP="${STMP:-${dprefix}/RT_BASELINE}" + PTMP="${PTMP:-${dprefix}/RT_RUNDIRS}" + SCHEDULER="slurm" + ;; + s4) + echo "rt.sh: Setting up s4..." + QUEUE="s4" + COMPILE_QUEUE="s4" + PARTITION="s4" + dprefix="/data/prod" + DISKNM="${dprefix}/emc.nemspara/RT" + STMP="/scratch/short/users" + PTMP="/scratch/users" + SCHEDULER="slurm" + ;; + derecho) + echo "rt.sh: Setting up derecho..." + QUEUE="main" + COMPILE_QUEUE="main" + PARTITION= + dprefix="/glade/derecho/scratch" + DISKNM="/glade/derecho/scratch/epicufsrt/ufs-weather-model/RT/" + STMP="${dprefix}" + PTMP="${dprefix}" + SCHEDULER="pbs" + cp fv3_conf/fv3_qsub.IN_derecho fv3_conf/fv3_qsub.IN + cp fv3_conf/compile_qsub.IN_derecho fv3_conf/compile_qsub.IN + + ;; + stampede) + echo "rt.sh: Setting up stampede..." + QUEUE=skx-normal + COMPILE_QUEUE=skx-dev + PARTITION= + dprefix="${SCRATCH}/ufs-weather-model/run" + DISKNM="/work2/07736/minsukji/stampede2/ufs-weather-model/RT" + STMP="${dprefix}" + PTMP="${dprefix}" + SCHEDULER="slurm" + export MPIEXEC="ibrun" + export MPIEXECOPTS= + ;; + expanse) + echo "rt.sh: Setting up expanse..." + QUEUE="compute" + COMPILE_QUEUE="shared" + PARTITION= + dprefix="/expanse/lustre/scratch/${USER}/temp_project/run" + DISKNM="/expanse/lustre/scratch/domh/temp_project/RT" + STMP="${dprefix}" + PTMP="${dprefix}" + SCHEDULER="slurm" + ;; + noaacloud) + echo "rt.sh: Setting up noaacloud..." + QUEUE="batch" + COMPILE_QUEUE="batch" + PARTITION= + dprefix="/lustre/" + DISKNM="/contrib/ufs-weather-model/RT" + STMP="${dprefix}/stmp4" + PTMP="${dprefix}/stmp2" + SCHEDULER="slurm" + ;; + *) + die "Unknown machine ID, please edit detect_machine.sh file" + ;; +esac \ No newline at end of file