From 97c2f2f68eb90e2e4b64c6fbd991efc50add5c40 Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Thu, 1 Jun 2023 18:20:51 +0000 Subject: [PATCH 01/41] update code to a version that has unstructured grid features --- Externals.cfg | 2 +- sorc/checkout.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index fb173bc93a..960d83538f 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -1,7 +1,7 @@ # External sub-modules of global-workflow [UFS] -tag = 2247060 +tag = 5d47ea8 local_path = sorc/ufs_model.fd repo_url = https://github.com/ufs-community/ufs-weather-model.git protocol = git diff --git a/sorc/checkout.sh b/sorc/checkout.sh index f3034738e9..0e266d6bd1 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -148,7 +148,7 @@ mkdir -p "${logdir}" errs=0 checkout "gfs_utils.fd" "https://github.com/NOAA-EMC/gfs-utils" "8965258" ; errs=$((errs + $?)) checkout "ufs_utils.fd" "https://github.com/ufs-community/UFS_UTILS.git" "72a0471" ; errs=$((errs + $?)) -checkout "ufs_model.fd" "https://github.com/ufs-community/ufs-weather-model" "${ufs_model_hash:-2247060}" ; errs=$((errs + $?)) +checkout "ufs_model.fd" "https://github.com/ufs-community/ufs-weather-model" "${ufs_model_hash:-5d47ea8}" ; errs=$((errs + $?)) checkout "verif-global.fd" "https://github.com/NOAA-EMC/EMC_verif-global.git" "c267780" ; errs=$((errs + $?)) if [[ ${checkout_gsi} == "YES" ]]; then From 56ecf611236ef69d991c31bc18a283d621008045 Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Tue, 1 Aug 2023 13:34:06 +0000 Subject: [PATCH 02/41] commit local changes from a few weeks ago --- parm/config/gfs/config.base.emc.dyn | 1 + parm/config/gfs/config.fcst | 2 +- parm/config/gfs/config.ufs | 5 ++++- sorc/build_all.sh | 12 ++++++++---- sorc/build_ufs.sh | 8 +++++--- sorc/build_ww3prepost.sh | 29 +++++++++++++++++++++-------- 6 files changed, 40 insertions(+), 17 deletions(-) diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index 8f48f932b9..cc8b0e7232 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -164,6 +164,7 @@ case "${CASE}" in "C48") export OCNRES=500 export waveGRD='glo_500' + export waveGRD='unst_glo_100km' ;; "C96") export OCNRES=100 diff --git a/parm/config/gfs/config.fcst b/parm/config/gfs/config.fcst index 2a57647644..15527393bf 100644 --- a/parm/config/gfs/config.fcst +++ b/parm/config/gfs/config.fcst @@ -35,7 +35,7 @@ if [[ "$DONST" = "YES" ]]; then . $EXPDIR/config.nsst fi -export esmf_profile=".false." +export esmf_profile=".true." export esmf_logkind="ESMF_LOGKIND_MULTI_ON_ERROR" #Options: ESMF_LOGKIND_MULTI_ON_ERROR, ESMF_LOGKIND_MULTI, ESMF_LOGKIND_NONE diff --git a/parm/config/gfs/config.ufs b/parm/config/gfs/config.ufs index 1ec419b822..e769671a49 100644 --- a/parm/config/gfs/config.ufs +++ b/parm/config/gfs/config.ufs @@ -15,7 +15,7 @@ if [ $# -le 1 ]; then echo "--fv3 C48|C96|C192|C384|C768|C1152|C3072" echo "--mom6 500|100|025" echo "--cice6 500|100|025" - echo "--ww3 gnh_10m;aoc_9km;gsh_15m|gwes_30m|glo_025|glo_200|glo_500|mx025" + echo "--ww3 gnh_10m;aoc_9km;gsh_15m|gwes_30m|glo_025|glo_200|glo_500|mx025|unst_glo_100km" exit 1 @@ -367,6 +367,9 @@ if [[ "${skip_ww3}" == "false" ]]; then "mx025") ntasks_ww3=80 ;; + "unst_glo_100km") + ntasks_ww3=40 + ;; *) echo "FATAL ERROR: Unsupported WW3 resolution = ${ww3_res}, ABORT!" exit 1 diff --git a/sorc/build_all.sh b/sorc/build_all.sh index 19f1ae6c92..e2fd138fa5 100755 --- a/sorc/build_all.sh +++ b/sorc/build_all.sh @@ -16,7 +16,7 @@ function _usage() { Builds all of the global-workflow components by calling the individual build scripts in sequence. -Usage: ${BASH_SOURCE[0]} [-a UFS_app][-c build_config][-h][-v] +Usage: ${BASH_SOURCE[0]} [-a UFS_app][-c build_config][-h][-v][-w] -a UFS_app: Build a specific UFS app instead of the default -c build_config: @@ -25,6 +25,8 @@ Usage: ${BASH_SOURCE[0]} [-a UFS_app][-c build_config][-h][-v] print this help message and exit -v: Execute all build scripts with -v option to turn on verbose where supported + -w: + Use unstructured wave grid EOF exit 1 } @@ -36,15 +38,17 @@ _build_ufs_opt="" _ops_opt="" _verbose_opt="" _partial_opt="" +_wave_unst="" # Reset option counter in case this script is sourced OPTIND=1 -while getopts ":a:c:hov" option; do +while getopts ":a:c:hovw" option; do case "${option}" in a) _build_ufs_opt+="-a ${OPTARG} ";; c) _partial_opt+="-c ${OPTARG} ";; h) _usage;; o) _ops_opt+="-o";; v) _verbose_opt="-v";; + w) _wave_unst="-w";; :) echo "[${BASH_SOURCE[0]}]: ${option} requires an argument" usage @@ -127,7 +131,7 @@ fi if [[ ${Build_ww3_prepost} == "true" ]]; then echo " .... Building WW3 pre and post execs .... " # shellcheck disable=SC2086,SC2248 - ./build_ww3prepost.sh ${_verbose_opt} ${_build_ufs_opt} > "${logs_dir}/build_ww3_prepost.log" 2>&1 + ./build_ww3prepost.sh ${_verbose_opt} ${_build_ufs_opt} ${_wave_unst} > "${logs_dir}/build_ww3_prepost.log" 2>&1 # shellcheck disable= rc=$? if (( rc != 0 )) ; then @@ -143,7 +147,7 @@ fi if [[ ${Build_ufs_model} == 'true' ]]; then echo " .... Building forecast model .... " # shellcheck disable=SC2086,SC2248 - ./build_ufs.sh ${_verbose_opt} ${_build_ufs_opt} > "${logs_dir}/build_ufs.log" 2>&1 + ./build_ufs.sh ${_verbose_opt} ${_build_ufs_opt} ${_wave_unst} > "${logs_dir}/build_ufs.log" 2>&1 # shellcheck disable= rc=$? if (( rc != 0 )) ; then diff --git a/sorc/build_ufs.sh b/sorc/build_ufs.sh index 01eab66c4a..9bbed07afb 100755 --- a/sorc/build_ufs.sh +++ b/sorc/build_ufs.sh @@ -6,16 +6,16 @@ cwd=$(pwd) # Default settings APP="S2SWA" CCPP_SUITES="FV3_GFS_v16,FV3_GFS_v16_no_nsst,FV3_GFS_v16_ugwpv1,FV3_GFS_v17_p8,FV3_GFS_v16_coupled_nsstNoahmpUGWPv1,FV3_GFS_v17_coupled_p8" - export RT_COMPILER="intel" source "${cwd}/ufs_model.fd/tests/detect_machine.sh" source "${cwd}/ufs_model.fd/tests/module-setup.sh" -while getopts ":da:v" option; do +while getopts ":da:vw" option; do case "${option}" in d) BUILD_TYPE="DEBUG";; a) APP="${OPTARG}" ;; v) export BUILD_VERBOSE="YES";; + w) export PDLIB="ON";; :) echo "[${BASH_SOURCE[0]}]: ${option} requires an argument" ;; @@ -28,12 +28,14 @@ done cd "${cwd}/ufs_model.fd" MAKE_OPT="-DAPP=${APP} -D32BIT=ON -DCCPP_SUITES=${CCPP_SUITES}" +[[ ${PDLIB:-"OFF"} = "ON" ]] && MAKE_OPT+=" -DPDLIB=ON" [[ ${BUILD_TYPE:-"Release"} = "DEBUG" ]] && MAKE_OPT+=" -DDEBUG=ON" COMPILE_NR=0 +RT_COMPILER=intel CLEAN_BEFORE=YES CLEAN_AFTER=NO -./tests/compile.sh "${MACHINE_ID}" "${MAKE_OPT}" "${COMPILE_NR}" "${CLEAN_BEFORE}" "${CLEAN_AFTER}" +./tests/compile.sh "${MACHINE_ID}" "${MAKE_OPT}" "${COMPILE_NR}" "${RT_COMPILER}" "${CLEAN_BEFORE}" "${CLEAN_AFTER}" mv "./tests/fv3_${COMPILE_NR}.exe" ./tests/ufs_model.x mv "./tests/modules.fv3_${COMPILE_NR}.lua" ./tests/modules.ufs_model.lua cp "./modulefiles/ufs_common.lua" ./tests/ufs_common.lua diff --git a/sorc/build_ww3prepost.sh b/sorc/build_ww3prepost.sh index bf78e7b2ac..8d59ee54bc 100755 --- a/sorc/build_ww3prepost.sh +++ b/sorc/build_ww3prepost.sh @@ -10,11 +10,14 @@ source "${script_dir}/ufs_model.fd/tests/module-setup.sh" # Default settings APP="S2SWA" +PDLIB="OFF" -while getopts "a:v" option; do +while getopts "a:dvw" option; do case "${option}" in a) APP="${OPTARG}" ;; + d) BUILD_TYPE="DEBUG";; v) export BUILD_VERBOSE="YES";; + w) PDLIB="ON";; :) echo "[${BASH_SOURCE[0]}]: ${option} requires an argument" usage @@ -26,15 +29,17 @@ while getopts "a:v" option; do esac done - # Determine which switch to use if [[ "${APP}" == "ATMW" ]]; then ww3switch="model/esmf/switch" else - ww3switch="model/bin/switch_meshcap" + if [[ "${PDLIB}" == "ON" ]]; then + ww3switch="model/bin/switch_meshcap_pdlib" + else + ww3switch="model/bin/switch_meshcap" + fi fi - # Check final exec folder exists if [[ ! -d "../exec" ]]; then mkdir ../exec @@ -45,7 +50,7 @@ finalexecdir="$( pwd -P )/../exec" #Determine machine and load modules set +x module use "${script_dir}/ufs_model.fd/modulefiles" -module load "ufs_${MACHINE_ID}" +module load "ufs_${MACHINE_ID}.${RT_COMPILER}" set -x #Set WW3 directory, switch, prep and post exes @@ -64,6 +69,8 @@ mkdir -p "${path_build}" || exit 1 cd "${path_build}" || exit 1 echo "Forcing a SHRD build" +buildswitch="${path_build}/switch" + cat "${SWITCHFILE}" > "${path_build}/tempswitch" sed -e "s/DIST/SHRD/g"\ @@ -73,15 +80,21 @@ sed -e "s/DIST/SHRD/g"\ -e "s/MPI / /g"\ -e "s/B4B / /g"\ -e "s/PDLIB / /g"\ + -e "s/SCOTCH / /g"\ + -e "s/METIS / /g"\ -e "s/NOGRB/NCEP2/g"\ "${path_build}/tempswitch" > "${path_build}/switch" rm "${path_build}/tempswitch" -echo "Switch file is ${path_build}/switch with switches:" -cat "${path_build}/switch" +echo "Switch file is ${buildswitch} with switches:" +cat "${buildswitch}" + +#define cmake build options +MAKE_OPT="-DCMAKE_INSTALL_PREFIX=install" +[[ ${BUILD_TYPE:-"Release"} = "DEBUG" ]] && MAKE_OPT+=" -DDEBUG=ON" #Build executables: -cmake "${WW3_DIR}" -DSWITCH="${path_build}/switch" -DCMAKE_INSTALL_PREFIX=install +cmake "${WW3_DIR}" -DSWITCH="${buildswitch}" ${MAKE_OPT} rc=$? if (( rc != 0 )); then echo "Fatal error in cmake." From 3f7d7683a4c06c9463ec7950e24760828a31e5dc Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Wed, 2 Aug 2023 13:17:20 +0000 Subject: [PATCH 03/41] updates to get wave prep to run --- parm/config/gfs/config.wave | 6 ++++++ scripts/exgfs_wave_init.sh | 7 +++++++ ush/wave_grid_moddef.sh | 8 ++++++++ 3 files changed, 21 insertions(+) diff --git a/parm/config/gfs/config.wave b/parm/config/gfs/config.wave index a0c0156166..f7515c44b9 100644 --- a/parm/config/gfs/config.wave +++ b/parm/config/gfs/config.wave @@ -80,6 +80,12 @@ case "${waveGRD}" in export wavepostGRD='glo_500' export waveuoutpGRD=${waveGRD} ;; + "unst_glo_100km") + #unstructured 100km grid + export waveinterpGRD='glo_200' + export wavepostGRD='' + export waveuoutpGRD=${waveGRD} + ;; *) echo "FATAL ERROR: No grid specific wave config values exist for ${waveGRD}. Aborting." exit 1 diff --git a/scripts/exgfs_wave_init.sh b/scripts/exgfs_wave_init.sh index 2be224d1da..f3bef58f69 100755 --- a/scripts/exgfs_wave_init.sh +++ b/scripts/exgfs_wave_init.sh @@ -118,6 +118,13 @@ source "${HOMEgfs}/ush/preamble.sh" err=2;export err;${errchk} fi + + if [ -f ${FIXwave}/${grdID}.msh ] + then + cp $FIXwave/${grdID}.msh ${grdID}.msh + fi + #TO DO: how do we say "it's unstructured, and therefore need to have error check here" + [[ ! -d "${COM_WAVE_PREP}" ]] && mkdir -m 775 -p "${COM_WAVE_PREP}" if [ ${CFP_MP:-"NO"} = "YES" ]; then echo "$nmoddef $USHwave/wave_grid_moddef.sh $grdID > $grdID.out 2>&1" >> cmdfile diff --git a/ush/wave_grid_moddef.sh b/ush/wave_grid_moddef.sh index 5b1b212a16..09731e7fcd 100755 --- a/ush/wave_grid_moddef.sh +++ b/ush/wave_grid_moddef.sh @@ -83,6 +83,14 @@ source "$HOMEgfs/ush/preamble.sh" rm -f ww3_grid.inp ln -sf ../ww3_grid.inp.$grdID ww3_grid.inp + + if [ -f ../${grdID}.msh ] + then + rm -f ${grdID}.msh + ln -sf ../${grdID}.msh ${grdID}.msh + fi + + $EXECwave/ww3_grid 1> grid_${grdID}.out 2>&1 err=$? From 41828a29327dc55c8f700fa2050495956514bad0 Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Wed, 2 Aug 2023 16:08:14 +0000 Subject: [PATCH 04/41] change name of unstructured grid to be short enough for ww3 --- parm/config/gfs/config.base.emc.dyn | 2 +- parm/config/gfs/config.ufs | 4 ++-- parm/config/gfs/config.wave | 2 +- parm/wave/glo_200_interp.inp.tmpl | 12 ++++++++++++ 4 files changed, 16 insertions(+), 4 deletions(-) create mode 100755 parm/wave/glo_200_interp.inp.tmpl diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index 9fb3f91da9..1382cc4de3 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -165,7 +165,7 @@ case "${CASE}" in "C48") export OCNRES=500 export waveGRD='glo_500' - export waveGRD='unst_glo_100km' + export waveGRD='uglo_100km' ;; "C96") export OCNRES=500 diff --git a/parm/config/gfs/config.ufs b/parm/config/gfs/config.ufs index a2124c8bcf..d7e5900800 100644 --- a/parm/config/gfs/config.ufs +++ b/parm/config/gfs/config.ufs @@ -15,7 +15,7 @@ if [ $# -le 1 ]; then echo "--fv3 C48|C96|C192|C384|C768|C1152|C3072" echo "--mom6 500|100|025" echo "--cice6 500|100|025" - echo "--ww3 gnh_10m;aoc_9km;gsh_15m|gwes_30m|glo_025|glo_200|glo_500|mx025|unst_glo_100km" + echo "--ww3 gnh_10m;aoc_9km;gsh_15m|gwes_30m|glo_025|glo_200|glo_500|mx025|uglo_100km" exit 1 @@ -373,7 +373,7 @@ if [[ "${skip_ww3}" == "false" ]]; then "mx025") ntasks_ww3=80 ;; - "unst_glo_100km") + "uglo_100km") ntasks_ww3=40 ;; *) diff --git a/parm/config/gfs/config.wave b/parm/config/gfs/config.wave index f7515c44b9..bb6a2fa126 100644 --- a/parm/config/gfs/config.wave +++ b/parm/config/gfs/config.wave @@ -80,7 +80,7 @@ case "${waveGRD}" in export wavepostGRD='glo_500' export waveuoutpGRD=${waveGRD} ;; - "unst_glo_100km") + "uglo_100km") #unstructured 100km grid export waveinterpGRD='glo_200' export wavepostGRD='' diff --git a/parm/wave/glo_200_interp.inp.tmpl b/parm/wave/glo_200_interp.inp.tmpl new file mode 100755 index 0000000000..c238a6fe0b --- /dev/null +++ b/parm/wave/glo_200_interp.inp.tmpl @@ -0,0 +1,12 @@ +$ Input file for interpolation of GLO30m_ext Grid +$------------------------------------------------ +$ Start Time DT NSteps + TIME DT NSTEPS +$ Total number of grids + 2 +$ Grid extensions + 'uglo_100km' + 'glo_200' +$ + 0 +$ From c6a211751e7e18313d518b5b4c576974c7f1b78f Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Thu, 10 Aug 2023 12:53:54 +0000 Subject: [PATCH 05/41] update to s2s default --- parm/config/gfs/config.defaults.s2sw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/config/gfs/config.defaults.s2sw b/parm/config/gfs/config.defaults.s2sw index bfbeb01e2d..1c22e17b46 100644 --- a/parm/config/gfs/config.defaults.s2sw +++ b/parm/config/gfs/config.defaults.s2sw @@ -10,7 +10,7 @@ FHMAX_GFS_00=48 FHMAX_GFS_06=48 FHMAX_GFS_12=48 FHMAX_GFS_18=48 -FHOUT_GFS=6 +FHOUT_GFS=3 FHOUT_HF_GFS=-1 # config.fcst From cba06b8e818f1597fb677f8e7f8f448ec8bb2908 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Sun, 10 Sep 2023 14:38:22 -0500 Subject: [PATCH 06/41] update to latest ufs weather model --- sorc/checkout.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/checkout.sh b/sorc/checkout.sh index 76966387c5..f4a350ac8d 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -152,7 +152,7 @@ errs=0 checkout "wxflow" "https://github.com/NOAA-EMC/wxflow" "528f5ab" ; errs=$((errs + $?)) checkout "gfs_utils.fd" "https://github.com/NOAA-EMC/gfs-utils" "a283262" ; errs=$((errs + $?)) checkout "ufs_utils.fd" "https://github.com/ufs-community/UFS_UTILS.git" "72a0471" ; errs=$((errs + $?)) -checkout "ufs_model.fd" "https://github.com/ufs-community/ufs-weather-model" "${ufs_model_hash:-4d05445}" ; errs=$((errs + $?)) +checkout "ufs_model.fd" "https://github.com/ufs-community/ufs-weather-model" "${ufs_model_hash:-1787f26}" ; errs=$((errs + $?)) checkout "verif-global.fd" "https://github.com/NOAA-EMC/EMC_verif-global.git" "c267780" ; errs=$((errs + $?)) if [[ ${checkout_gsi} == "YES" ]]; then From 90bea44e9eb79691ee348bae4ebd4c99a352cd84 Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Tue, 31 Oct 2023 20:55:34 +0000 Subject: [PATCH 07/41] update version of ufs to have 7.0.4 of scotch on RDHPCS --- ush/load_ufswm_modules.sh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/ush/load_ufswm_modules.sh b/ush/load_ufswm_modules.sh index 2d6e6a02c1..1f9257dda7 100755 --- a/ush/load_ufswm_modules.sh +++ b/ush/load_ufswm_modules.sh @@ -14,23 +14,17 @@ source "${HOMEgfs}/ush/module-setup.sh" if [[ "${MACHINE_ID}" != "noaacloud" ]]; then module use "${HOMEgfs}/sorc/ufs_model.fd/tests" module load modules.ufs_model.lua + module load prod_util if [[ "${MACHINE_ID}" = "wcoss2" ]]; then - module load prod_util module load cray-pals module load cfp module load libjpeg else - module load prod-util export UTILROOT=${prod_util_ROOT} fi module load wgrib2 export WGRIB2=wgrib2 fi -if [[ "${MACHINE_ID}" = "hera" ]]; then - module use "/scratch2/NCEPDEV/ensemble/save/Walter.Kolczynski/modulefiles/core" - module load "miniconda3/4.6.14" - module load "gfs_workflow/1.0.0" -fi if [[ "${MACHINE_ID}" == "noaacloud" ]]; then if [[ "${PW_CSP:-}" = "aws" ]]; then From a739bf45964d6d015697666b1062370ae0f8abdf Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Sat, 4 Nov 2023 12:42:12 +0000 Subject: [PATCH 08/41] update commit hash of ufs-weather-model --- Externals.cfg | 2 +- sorc/checkout.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index abe5f30aaf..c6d1228e7a 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -8,7 +8,7 @@ protocol = git required = True [UFS] -tag = 68050e5 +tag = 812aac5 local_path = sorc/ufs_model.fd repo_url = https://github.com/ufs-community/ufs-weather-model.git protocol = git diff --git a/sorc/checkout.sh b/sorc/checkout.sh index de4fcdf838..a4e27236fe 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -151,7 +151,7 @@ source "${topdir}/../workflow/gw_setup.sh" # The checkout version should always be a speciifc commit (hash or tag), not a branch errs=0 # Checkout UFS submodules in parallel -checkout "ufs_model.fd" "https://github.com/ufs-community/ufs-weather-model" "${ufs_model_hash:-68050e5}" "8" & +checkout "ufs_model.fd" "https://github.com/ufs-community/ufs-weather-model" "${ufs_model_hash:-812aac5}" "8" & # Run all other checkouts simultaneously with just 1 core each to handle submodules. checkout "wxflow" "https://github.com/NOAA-EMC/wxflow" "528f5ab" & From 04e8a047dc669d3607a981025d66e20d0032a639 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Wed, 8 Nov 2023 15:34:36 -0600 Subject: [PATCH 09/41] updates for build --- sorc/build_all.sh | 4 ++-- sorc/build_ufs.sh | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/sorc/build_all.sh b/sorc/build_all.sh index 25cf0140ba..f87b06b139 100755 --- a/sorc/build_all.sh +++ b/sorc/build_all.sh @@ -123,7 +123,7 @@ big_jobs=0 if [[ ${Build_ufs_model} == 'true' ]]; then build_jobs["ufs"]=8 big_jobs=$((big_jobs+1)) - build_opts["ufs"]="${_verbose_opt} ${_build_ufs_opt} ${_wave_unst}" + build_opts["ufs"]="${_wave_unst} ${_verbose_opt} ${_build_ufs_opt}" fi # The UPP is hardcoded to use 6 cores if [[ ${Build_upp} == 'true' ]]; then @@ -140,7 +140,7 @@ if [[ ${Build_gfs_utils} == 'true' ]]; then fi if [[ ${Build_ww3prepost} == "true" ]]; then build_jobs["ww3prepost"]=3 - build_opts["ww3prepost"]="${_verbose_opt} ${_build_ufs_opt} ${_wave_unst}" + build_opts["ww3prepost"]="${_wave_unst} ${_verbose_opt} ${_build_ufs_opt}" fi # Optional DA builds diff --git a/sorc/build_ufs.sh b/sorc/build_ufs.sh index 0b8f780042..9e586d9f34 100755 --- a/sorc/build_ufs.sh +++ b/sorc/build_ufs.sh @@ -32,7 +32,6 @@ MAKE_OPT="-DAPP=${APP} -D32BIT=ON -DCCPP_SUITES=${CCPP_SUITES}" [[ ${PDLIB:-"OFF"} = "ON" ]] && MAKE_OPT+=" -DPDLIB=ON" [[ ${BUILD_TYPE:-"Release"} = "DEBUG" ]] && MAKE_OPT+=" -DDEBUG=ON" COMPILE_NR=0 -RT_COMPILER=intel CLEAN_BEFORE=YES CLEAN_AFTER=NO From 2af29307b27192a45dfb99267e2682ded0a9f9c9 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Wed, 8 Nov 2023 15:34:51 -0600 Subject: [PATCH 10/41] temp file --- workflow/coupled48.sh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 workflow/coupled48.sh diff --git a/workflow/coupled48.sh b/workflow/coupled48.sh new file mode 100644 index 0000000000..ff6fdabefb --- /dev/null +++ b/workflow/coupled48.sh @@ -0,0 +1,26 @@ +APP=S2SW +PSLOT=s2swc48un01 +BASEDIR=/work2/noaa/marine/jmeixner/HR3/unstruc +CDUMP=gfs #gfs or gefs +CONFIGDIR=$BASEDIR/global-workflow/parm/config/${CDUMP} +IDATE=2021032312 +EDATE=2021032312 +RES=48 +GFS_CYC=1 +COMROT=$BASEDIR/$PSLOT/COMROOT +EXPDIR=$BASEDIR/$PSLOT/EXPDIR + +echo "Set Up Modules:" +echo "source gw_setup.sh" +echo "set +u" + +echo " " +echo "Set up script" +echo ./setup_expt.py ${CDUMP} forecast-only --app $APP --pslot $PSLOT --configdir $CONFIGDIR --idate $IDATE --edate $EDATE --res $RES --gfs_cyc $GFS_CYC --comrot $COMROT --expdir $EXPDIR + +echo " " +echo "setup workflow after any changes:" +echo "./setup_xml.py $EXPDIR/$PSLOT" + +echo " " +echo "cat $EXPDIR/$PSLOT/$PSLOT.crontab" From b390d43ef7ed779888b0d7b877105d8b98c3c99e Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Wed, 15 Nov 2023 17:34:24 +0000 Subject: [PATCH 11/41] updates for new unstructured grids --- parm/config/gfs/config.base.emc.dyn | 6 ++++-- parm/config/gfs/config.stage_ic | 8 ++++---- parm/config/gfs/config.ufs | 15 ++++++++++++++- parm/config/gfs/config.wave | 20 +++++++++++++++++++- parm/ufs/fv3/diag_table | 2 +- scripts/exglobal_stage_ic.sh | 8 ++++---- workflow/coupled48.sh | 2 +- workflow/coupled768.sh | 26 ++++++++++++++++++++++++++ 8 files changed, 73 insertions(+), 14 deletions(-) create mode 100644 workflow/coupled768.sh diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index 3f54f1e24b..2c405bb049 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -41,7 +41,8 @@ export PACKAGEROOT="@PACKAGEROOT@" # TODO: set via prod_envir in Ops export COMROOT="@COMROOT@" # TODO: set via prod_envir in Ops export COMINsyn="@COMINsyn@" export DMPDIR="@DMPDIR@" -export BASE_CPLIC="@BASE_CPLIC@" +#export BASE_CPLIC="@BASE_CPLIC@" +export BASE_CPLIC="/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/IC" # USER specific paths export HOMEDIR="@HOMEDIR@" @@ -184,6 +185,7 @@ case "${CASE}" in "C768" | "C1152") export OCNRES=025 export waveGRD='mx025' + export waveGRD='uglo_20km' ;; *) echo "FATAL ERROR: Unrecognized CASE ${CASE}, ABORT!" @@ -265,7 +267,7 @@ export FHMAX_GFS_12=120 export FHMAX_GFS_18=120 current_fhmax_var=FHMAX_GFS_${cyc}; declare -x FHMAX_GFS=${!current_fhmax_var} -export FHOUT_GFS=6 # Must be 6 for S2S until #1629 is addressed; 3 for ops +export FHOUT_GFS=3 # Must be 6 for S2S until #1629 is addressed; 3 for ops export FHMAX_HF_GFS=0 export FHOUT_HF_GFS=1 if (( gfs_cyc != 0 )); then diff --git a/parm/config/gfs/config.stage_ic b/parm/config/gfs/config.stage_ic index b7e6dbbeca..3008f76023 100644 --- a/parm/config/gfs/config.stage_ic +++ b/parm/config/gfs/config.stage_ic @@ -21,10 +21,10 @@ case "${CASE}" in export CPL_WAVIC=GEFSwave20210528v2_refactored ;; "C768") - export CPL_ATMIC=HR2_refactored - export CPL_ICEIC=HR1_refactored - export CPL_OCNIC=HR1_refactored - export CPL_WAVIC=HR1_refactored + export CPL_ATMIC=TestHR23_768 + export CPL_ICEIC=TestHR23_768 + export CPL_OCNIC=TestHR23_768 + export CPL_WAVIC=TestHR23_768 ;; "C1152") export CPL_ATMIC=HR2_C1152_refactored diff --git a/parm/config/gfs/config.ufs b/parm/config/gfs/config.ufs index 1b432126ee..bf77f538b2 100644 --- a/parm/config/gfs/config.ufs +++ b/parm/config/gfs/config.ufs @@ -15,7 +15,7 @@ if [ $# -le 1 ]; then echo "--fv3 C48|C96|C192|C384|C768|C1152|C3072" echo "--mom6 500|100|025" echo "--cice6 500|100|025" - echo "--ww3 gnh_10m;aoc_9km;gsh_15m|gwes_30m|glo_025|glo_200|glo_500|mx025|uglo_100km" + echo "--ww3 gnh_10m;aoc_9km;gsh_15m|gwes_30m|glo_025|glo_200|glo_500|mx025|uglo_100km|uglo_20km|uglo_15km|uglo_m1g16" exit 1 @@ -410,6 +410,19 @@ if [[ "${skip_ww3}" == "false" ]]; then ;; "uglo_100km") ntasks_ww3=40 + nthreads_ww3=1 + ;; + "uglo_20km") + ntasks_ww3=500 + nthreads_ww3=1 + ;; + "uglo_15km") + ntasks_ww3=900 + nthreads_ww3=1 + ;; + "uglo_m1g16") + ntasks_ww3=900 + nthreads_ww3=1 ;; *) echo "FATAL ERROR: Unsupported WW3 resolution = ${ww3_res}, ABORT!" diff --git a/parm/config/gfs/config.wave b/parm/config/gfs/config.wave index 65e3db7bdd..715c2e3a3c 100644 --- a/parm/config/gfs/config.wave +++ b/parm/config/gfs/config.wave @@ -86,7 +86,25 @@ case "${waveGRD}" in export wavepostGRD='' export waveuoutpGRD=${waveGRD} ;; - *) + "uglo_20km") + #unstructured 20km grid + export waveinterpGRD='glo_15mxt' + export wavepostGRD='' + export waveuoutpGRD=${waveGRD} + ;; + "uglo_15km") + #unstructured 15km grid + export waveinterpGRD='glo_15mxt' + export wavepostGRD='' + export waveuoutpGRD=${waveGRD} + ;; + "uglo_m1v16") + #unstructured m1v16 grid + export waveinterpGRD='glo_15mxt' + export wavepostGRD='' + export waveuoutpGRD=${waveGRD} + ;; + *) echo "FATAL ERROR: No grid specific wave config values exist for ${waveGRD}. Aborting." exit 1 ;; diff --git a/parm/ufs/fv3/diag_table b/parm/ufs/fv3/diag_table index 37421f8a4f..2fe314b9a7 100644 --- a/parm/ufs/fv3/diag_table +++ b/parm/ufs/fv3/diag_table @@ -1,6 +1,6 @@ "fv3_history", 0, "hours", 1, "hours", "time" "fv3_history2d", 0, "hours", 1, "hours", "time" -"ocn%4yr%2mo%2dy%2hr", 6, "hours", 1, "hours", "time", 6, "hours", "1901 1 1 0 0 0" +"ocn%4yr%2mo%2dy%2hr", 3, "hours", 1, "hours", "time", 3, "hours", "1901 1 1 0 0 0" "ocn_daily%4yr%2mo%2dy", 1, "days", 1, "days", "time", 1, "days", "1901 1 1 0 0 0" ############## diff --git a/scripts/exglobal_stage_ic.sh b/scripts/exglobal_stage_ic.sh index 53042c7e45..68e6896f39 100755 --- a/scripts/exglobal_stage_ic.sh +++ b/scripts/exglobal_stage_ic.sh @@ -100,10 +100,10 @@ for MEMDIR in "${MEMDIR_ARRAY[@]}"; do for grdID in ${waveGRD}; do # TODO: check if this is a bash array; if so adjust src="${BASE_CPLIC}/${CPL_WAVIC}/${PDY}${cyc}/${MEMDIR}/wave/${PDY}.${cyc}0000.restart.${grdID}" tgt="${COM_WAVE_RESTART}/${PDY}.${cyc}0000.restart.${grdID}" - ${NCP} "${src}" "${tgt}" - rc=$? - ((rc != 0)) && error_message "${src}" "${tgt}" "${rc}" - err=$((err + rc)) + #${NCP} "${src}" "${tgt}" + #rc=$? + #((rc != 0)) && error_message "${src}" "${tgt}" "${rc}" + #err=$((err + rc)) done fi diff --git a/workflow/coupled48.sh b/workflow/coupled48.sh index ff6fdabefb..ea85ccb321 100644 --- a/workflow/coupled48.sh +++ b/workflow/coupled48.sh @@ -1,6 +1,6 @@ APP=S2SW PSLOT=s2swc48un01 -BASEDIR=/work2/noaa/marine/jmeixner/HR3/unstruc +BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc01 CDUMP=gfs #gfs or gefs CONFIGDIR=$BASEDIR/global-workflow/parm/config/${CDUMP} IDATE=2021032312 diff --git a/workflow/coupled768.sh b/workflow/coupled768.sh new file mode 100644 index 0000000000..39705460a2 --- /dev/null +++ b/workflow/coupled768.sh @@ -0,0 +1,26 @@ +APP=S2SW +PSLOT=u20kmt03 +BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc01 +CDUMP=gfs #gfs or gefs +CONFIGDIR=$BASEDIR/global-workflow/parm/config/${CDUMP} +IDATE=2019120300 +EDATE=${IDATE} +RES=768 +GFS_CYC=1 +COMROT=$BASEDIR/$PSLOT/COMROOT +EXPDIR=$BASEDIR/$PSLOT/EXPDIR + +echo "Set Up Modules:" +echo "source gw_setup.sh" +echo "set +u" + +echo " " +echo "Set up script" +echo ./setup_expt.py ${CDUMP} forecast-only --app $APP --pslot $PSLOT --configdir $CONFIGDIR --idate $IDATE --edate $EDATE --res $RES --gfs_cyc $GFS_CYC --comrot $COMROT --expdir $EXPDIR + +echo " " +echo "setup workflow after any changes:" +echo "./setup_xml.py $EXPDIR/$PSLOT" + +echo " " +echo "cat $EXPDIR/$PSLOT/$PSLOT.crontab" From 22144484e0aedbfef639085228705e9f97a5cf32 Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Tue, 28 Nov 2023 14:24:18 +0000 Subject: [PATCH 12/41] use UFS that has scotch 7.0.4 on WCOSS2 --- Externals.cfg | 2 +- sorc/checkout.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index 35b75a2260..3e59ef1f26 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -8,7 +8,7 @@ protocol = git required = True [UFS] -tag = 3ba8dff +tag = f431fbe local_path = sorc/ufs_model.fd repo_url = https://github.com/ufs-community/ufs-weather-model.git protocol = git diff --git a/sorc/checkout.sh b/sorc/checkout.sh index 2b54502772..62a38be6c6 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -151,7 +151,7 @@ source "${topdir}/../workflow/gw_setup.sh" # The checkout version should always be a speciifc commit (hash or tag), not a branch errs=0 # Checkout UFS submodules in parallel -checkout "ufs_model.fd" "https://github.com/ufs-community/ufs-weather-model" "${ufs_model_hash:-3ba8dff}" "8" & +checkout "ufs_model.fd" "https://github.com/ufs-community/ufs-weather-model" "${ufs_model_hash:-f431fbe}" "8" & # Run all other checkouts simultaneously with just 1 core each to handle submodules. checkout "wxflow" "https://github.com/NOAA-EMC/wxflow" "528f5ab" & From 5e48d67ea7c3bd6027d734d334e670629feff26a Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Mon, 11 Dec 2023 19:59:44 +0000 Subject: [PATCH 13/41] temporary files added --- workflow/coupled1152.sh | 26 ++++++++++++++++++++++++++ workflow/coupled48.sh | 2 +- workflow/coupled768.sh | 4 ++-- 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 workflow/coupled1152.sh diff --git a/workflow/coupled1152.sh b/workflow/coupled1152.sh new file mode 100644 index 0000000000..6cb70ba6a2 --- /dev/null +++ b/workflow/coupled1152.sh @@ -0,0 +1,26 @@ +APP=S2SW +PSLOT=c1152t01 +BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc02 +CDUMP=gfs #gfs or gefs +CONFIGDIR=$BASEDIR/global-workflow/parm/config/${CDUMP} +IDATE=2019120300 +EDATE=${IDATE} +RES=1152 +GFS_CYC=1 +COMROT=$BASEDIR/$PSLOT/COMROOT +EXPDIR=$BASEDIR/$PSLOT/EXPDIR + +echo "Set Up Modules:" +echo "source gw_setup.sh" +echo "set +u" + +echo " " +echo "Set up script" +echo ./setup_expt.py ${CDUMP} forecast-only --app $APP --pslot $PSLOT --configdir $CONFIGDIR --idate $IDATE --edate $EDATE --res $RES --gfs_cyc $GFS_CYC --comrot $COMROT --expdir $EXPDIR + +echo " " +echo "setup workflow after any changes:" +echo "./setup_xml.py $EXPDIR/$PSLOT" + +echo " " +echo "cat $EXPDIR/$PSLOT/$PSLOT.crontab" diff --git a/workflow/coupled48.sh b/workflow/coupled48.sh index ea85ccb321..6657a6796d 100644 --- a/workflow/coupled48.sh +++ b/workflow/coupled48.sh @@ -1,6 +1,6 @@ APP=S2SW PSLOT=s2swc48un01 -BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc01 +BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc02 CDUMP=gfs #gfs or gefs CONFIGDIR=$BASEDIR/global-workflow/parm/config/${CDUMP} IDATE=2021032312 diff --git a/workflow/coupled768.sh b/workflow/coupled768.sh index 39705460a2..6a69de44d9 100644 --- a/workflow/coupled768.sh +++ b/workflow/coupled768.sh @@ -1,6 +1,6 @@ APP=S2SW -PSLOT=u20kmt03 -BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc01 +PSLOT=u15kmt07gfsdat +BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc02 CDUMP=gfs #gfs or gefs CONFIGDIR=$BASEDIR/global-workflow/parm/config/${CDUMP} IDATE=2019120300 From 91ffd18ea98f31f56e5725b30d4db9921d51c3b8 Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Mon, 11 Dec 2023 20:00:38 +0000 Subject: [PATCH 14/41] updates to run with C768 on wcoss2 --- env/WCOSS2.env | 2 ++ 1 file changed, 2 insertions(+) diff --git a/env/WCOSS2.env b/env/WCOSS2.env index 9d8f459aa1..ef01ac1e1d 100755 --- a/env/WCOSS2.env +++ b/env/WCOSS2.env @@ -178,6 +178,8 @@ elif [[ "${step}" = "fcst" ]] || [[ "${step}" = "efcs" ]]; then if [[ "${step}" = "fcst" ]]; then export OMP_PLACES=cores export OMP_STACKSIZE=2048M + export MPICH_MPIIO_HINTS="*:romio_cb_write=disable" + export FI_OFI_RXM_SAR_LIMIT=3145728 elif [[ "${step}" = "efcs" ]]; then export MPICH_MPIIO_HINTS="*:romio_cb_write=disable" export FI_OFI_RXM_SAR_LIMIT=3145728 From f537bb5d4e4524da1acd17fc3a590eb9445d9d9f Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Mon, 11 Dec 2023 20:01:58 +0000 Subject: [PATCH 15/41] updates for wave configuration --- parm/config/gfs/config.ufs | 6 +++--- parm/config/gfs/config.wave | 2 +- parm/wave/glo_15mxt_interp.inp.tmpl | 6 ++---- parm/wave/wave_gfs.buoys | 2 +- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/parm/config/gfs/config.ufs b/parm/config/gfs/config.ufs index 6cd0d4b3b9..05df2e4e51 100644 --- a/parm/config/gfs/config.ufs +++ b/parm/config/gfs/config.ufs @@ -466,15 +466,15 @@ if [[ "${skip_ww3}" == "false" ]]; then nthreads_ww3=1 ;; "uglo_20km") - ntasks_ww3=500 + ntasks_ww3=2000 nthreads_ww3=1 ;; "uglo_15km") - ntasks_ww3=900 + ntasks_ww3=2000 nthreads_ww3=1 ;; "uglo_m1g16") - ntasks_ww3=900 + ntasks_ww3=2000 nthreads_ww3=1 ;; *) diff --git a/parm/config/gfs/config.wave b/parm/config/gfs/config.wave index 715c2e3a3c..7ca2e413d6 100644 --- a/parm/config/gfs/config.wave +++ b/parm/config/gfs/config.wave @@ -98,7 +98,7 @@ case "${waveGRD}" in export wavepostGRD='' export waveuoutpGRD=${waveGRD} ;; - "uglo_m1v16") + "uglo_m1g16") #unstructured m1v16 grid export waveinterpGRD='glo_15mxt' export wavepostGRD='' diff --git a/parm/wave/glo_15mxt_interp.inp.tmpl b/parm/wave/glo_15mxt_interp.inp.tmpl index 74bc9eebf4..19e9dae684 100755 --- a/parm/wave/glo_15mxt_interp.inp.tmpl +++ b/parm/wave/glo_15mxt_interp.inp.tmpl @@ -3,11 +3,9 @@ $------------------------------------------------ $ Start Time DT NSteps TIME DT NSTEPS $ Total number of grids - 4 + 2 $ Grid extensions - 'gnh_10m' - 'aoc_9km' - 'gsh_15m' + 'uglo_m1g16' 'glo_15mxt' $ 0 diff --git a/parm/wave/wave_gfs.buoys b/parm/wave/wave_gfs.buoys index 6f47adefac..29d3c041b1 120000 --- a/parm/wave/wave_gfs.buoys +++ b/parm/wave/wave_gfs.buoys @@ -1 +1 @@ -wave_gfs.buoys.full \ No newline at end of file +wave_gfs.buoys.dat \ No newline at end of file From ee53c0aec1298e214ea65241ae35a684bd21765c Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Fri, 22 Dec 2023 10:15:14 -0600 Subject: [PATCH 16/41] update ufs model to code that was used in previous commit --- sorc/ufs_model.fd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/ufs_model.fd b/sorc/ufs_model.fd index 3ba8dff29a..f431fbe177 160000 --- a/sorc/ufs_model.fd +++ b/sorc/ufs_model.fd @@ -1 +1 @@ -Subproject commit 3ba8dff29a7395445ce5da8c9b48cfe0ff8a668a +Subproject commit f431fbe177445d74879a909bc815d427480c1973 From c189425aff60f2a2bf8148652c4fefee767234a5 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Wed, 3 Jan 2024 09:20:16 -0600 Subject: [PATCH 17/41] orion temp update --- parm/config/gfs/config.base.emc.dyn | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index b0cbd0fec3..ff2d37ad04 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -43,6 +43,7 @@ export COMINsyn="@COMINsyn@" export DMPDIR="@DMPDIR@" #export BASE_CPLIC="@BASE_CPLIC@" export BASE_CPLIC="/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/IC" +export BASE_CPLIC="/work2/noaa/marine/jmeixner/HR3/HR2_refactored_IC" # USER specific paths export HOMEDIR="@HOMEDIR@" @@ -188,7 +189,7 @@ case "${CASE}" in "C768" | "C1152") export OCNRES=025 export waveGRD='mx025' - export waveGRD='uglo_20km' + export waveGRD='uglo_m1g16' ;; *) echo "FATAL ERROR: Unrecognized CASE ${CASE}, ABORT!" From c729c075e0075ad658697f3451bfd6a5ec505a9a Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Wed, 10 Jan 2024 16:13:10 +0000 Subject: [PATCH 18/41] updates --- parm/config/gfs/config.base.emc.dyn | 2 +- parm/config/gfs/config.stage_ic | 8 ++++---- parm/wave/at_10m_interp.inp.tmpl | 2 +- parm/wave/ep_10m_interp.inp.tmpl | 2 +- parm/wave/glo_30m_interp.inp.tmpl | 6 ++---- parm/wave/wc_10m_interp.inp.tmpl | 2 +- workflow/coupled1152.sh | 2 +- workflow/coupled768.sh | 4 ++-- 8 files changed, 13 insertions(+), 15 deletions(-) diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index 9bfbfa2bdc..4ece8de6dc 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -49,7 +49,7 @@ export COMINsyn="@COMINsyn@" export DMPDIR="@DMPDIR@" #export BASE_CPLIC="@BASE_CPLIC@" export BASE_CPLIC="/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/IC" -export BASE_CPLIC="/work2/noaa/marine/jmeixner/HR3/HR2_refactored_IC" +#export BASE_CPLIC="/work2/noaa/marine/jmeixner/HR3/HR2_refactored_IC" # USER specific paths export HOMEDIR="@HOMEDIR@" diff --git a/parm/config/gfs/config.stage_ic b/parm/config/gfs/config.stage_ic index 88164b1e35..8135b787bc 100644 --- a/parm/config/gfs/config.stage_ic +++ b/parm/config/gfs/config.stage_ic @@ -27,10 +27,10 @@ case "${CASE}" in export CPL_WAVIC=TestHR23_768 ;; "C1152") - export CPL_ATMIC=HR2_C1152_refactored - export CPL_ICEIC=HR3_refactored - export CPL_OCNIC=HR3_refactored - export CPL_WAVIC=HR1_refactored + export CPL_ATMIC=TestHR23_C1152 + export CPL_ICEIC=TestHR23_C1152 + export CPL_OCNIC=TestHR23_C1152 + export CPL_WAVIC=TestHR23_C1152 ;; *) echo "FATAL ERROR Unrecognized resolution: ${CASE}" diff --git a/parm/wave/at_10m_interp.inp.tmpl b/parm/wave/at_10m_interp.inp.tmpl index b2a80081e1..6f4c1f7099 100755 --- a/parm/wave/at_10m_interp.inp.tmpl +++ b/parm/wave/at_10m_interp.inp.tmpl @@ -5,7 +5,7 @@ $ Start Time DT NSteps $ Total number of grids 2 $ Grid extensions - 'gnh_10m' + 'uglo_m1g16' 'at_10m' $ 0 diff --git a/parm/wave/ep_10m_interp.inp.tmpl b/parm/wave/ep_10m_interp.inp.tmpl index 0848854ccf..23cfd50c2e 100755 --- a/parm/wave/ep_10m_interp.inp.tmpl +++ b/parm/wave/ep_10m_interp.inp.tmpl @@ -5,7 +5,7 @@ $ Start Time DT NSteps $ Total number of grids 2 $ Grid extensions - 'gnh_10m' + 'uglo_m1g16' 'ep_10m' $ 0 diff --git a/parm/wave/glo_30m_interp.inp.tmpl b/parm/wave/glo_30m_interp.inp.tmpl index ea1baf7fc4..c62881202c 100755 --- a/parm/wave/glo_30m_interp.inp.tmpl +++ b/parm/wave/glo_30m_interp.inp.tmpl @@ -3,11 +3,9 @@ $------------------------------------------------ $ Start Time DT NSteps TIME DT NSTEPS $ Total number of grids - 4 + 2 $ Grid extensions - 'gnh_10m' - 'aoc_9km' - 'gsh_15m' + 'uglo_m1g16' 'glo_30m' $ 0 diff --git a/parm/wave/wc_10m_interp.inp.tmpl b/parm/wave/wc_10m_interp.inp.tmpl index abb51b4dfc..8338c91d0c 100755 --- a/parm/wave/wc_10m_interp.inp.tmpl +++ b/parm/wave/wc_10m_interp.inp.tmpl @@ -5,7 +5,7 @@ $ Start Time DT NSteps $ Total number of grids 2 $ Grid extensions - 'gnh_10m' + 'uglo_m1g16' 'wc_10m' $ 0 diff --git a/workflow/coupled1152.sh b/workflow/coupled1152.sh index 6cb70ba6a2..b171a1991a 100644 --- a/workflow/coupled1152.sh +++ b/workflow/coupled1152.sh @@ -1,6 +1,6 @@ APP=S2SW PSLOT=c1152t01 -BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc02 +BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc04 CDUMP=gfs #gfs or gefs CONFIGDIR=$BASEDIR/global-workflow/parm/config/${CDUMP} IDATE=2019120300 diff --git a/workflow/coupled768.sh b/workflow/coupled768.sh index 6a69de44d9..158728b463 100644 --- a/workflow/coupled768.sh +++ b/workflow/coupled768.sh @@ -1,6 +1,6 @@ APP=S2SW -PSLOT=u15kmt07gfsdat -BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc02 +PSLOT=test04extraout +BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc04 CDUMP=gfs #gfs or gefs CONFIGDIR=$BASEDIR/global-workflow/parm/config/${CDUMP} IDATE=2019120300 From e7137d58fab522c28ad3a947910c9bd4ac44c47c Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Thu, 11 Jan 2024 21:10:09 +0000 Subject: [PATCH 19/41] revert bypass of wave IC --- scripts/exglobal_stage_ic.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/exglobal_stage_ic.sh b/scripts/exglobal_stage_ic.sh index 0eadfa3f12..58b37f3114 100755 --- a/scripts/exglobal_stage_ic.sh +++ b/scripts/exglobal_stage_ic.sh @@ -143,10 +143,10 @@ for MEMDIR in "${MEMDIR_ARRAY[@]}"; do for grdID in ${waveGRD}; do # TODO: check if this is a bash array; if so adjust src="${BASE_CPLIC}/${CPL_WAVIC:-}/${PDY}${cyc}/${MEMDIR}/wave/${PDY}.${cyc}0000.restart.${grdID}" tgt="${COM_WAVE_RESTART}/${PDY}.${cyc}0000.restart.${grdID}" - #${NCP} "${src}" "${tgt}" - #rc=$? - #((rc != 0)) && error_message "${src}" "${tgt}" "${rc}" - #err=$((err + rc)) + ${NCP} "${src}" "${tgt}" + rc=$? + ((rc != 0)) && error_message "${src}" "${tgt}" "${rc}" + err=$((err + rc)) done fi From 7b840b24f2bf9ce73e084fbc57de34309e2d9ba1 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 16 Jan 2024 13:21:39 -0600 Subject: [PATCH 20/41] clean up for PR --- docs/source/clone.rst | 7 +++++++ parm/config/gfs/config.base.emc.dyn | 12 ++++-------- parm/config/gfs/config.fcst | 2 +- parm/config/gfs/config.stage_ic | 16 ++++++++-------- parm/config/gfs/config.ufs | 10 +--------- parm/config/gfs/config.wave | 12 ------------ parm/ufs/fv3/diag_table | 2 +- workflow/coupled1152.sh | 26 -------------------------- workflow/coupled48.sh | 26 -------------------------- workflow/coupled768.sh | 26 -------------------------- 10 files changed, 22 insertions(+), 117 deletions(-) delete mode 100644 workflow/coupled1152.sh delete mode 100644 workflow/coupled48.sh delete mode 100644 workflow/coupled768.sh diff --git a/docs/source/clone.rst b/docs/source/clone.rst index bad3f0e9f6..4f47eb230f 100644 --- a/docs/source/clone.rst +++ b/docs/source/clone.rst @@ -39,6 +39,13 @@ For coupled cycling (include new UFSDA) use the `-gu` options during build: ./build_all.sh -gu +For building with PDLIB for the wave model, use the `-w` options during build: + +:: + + ./build_all.sh -w + + Build workflow components and link workflow artifacts such as executables, etc. :: diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index efdfaca1f9..4b7a79cc47 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -47,9 +47,7 @@ export PACKAGEROOT="@PACKAGEROOT@" # TODO: set via prod_envir in Ops export COMROOT="@COMROOT@" # TODO: set via prod_envir in Ops export COMINsyn="@COMINsyn@" export DMPDIR="@DMPDIR@" -#export BASE_CPLIC="@BASE_CPLIC@" -export BASE_CPLIC="/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/IC" -#export BASE_CPLIC="/work2/noaa/marine/jmeixner/HR3/HR2_refactored_IC" +export BASE_CPLIC="@BASE_CPLIC@" # USER specific paths export HOMEDIR="@HOMEDIR@" @@ -184,17 +182,15 @@ export ICERES="${OCNRES}" # These are the currently recommended grid-combinations case "${CASE}" in "C48") - export waveGRD='glo_500' export waveGRD='uglo_100km' ;; "C96" | "C192") - export waveGRD='glo_200' + export waveGRD='uglo_100km' ;; "C384") - export waveGRD='glo_025' + export waveGRD='uglo_m1g16' ;; "C768" | "C1152") - export waveGRD='mx025' export waveGRD='uglo_m1g16' ;; *) @@ -267,7 +263,7 @@ export FHMAX_GFS_12=120 export FHMAX_GFS_18=120 current_fhmax_var=FHMAX_GFS_${cyc}; declare -x FHMAX_GFS=${!current_fhmax_var} -export FHOUT_GFS=3 # Must be 6 for S2S until #1629 is addressed; 3 for ops +export FHOUT_GFS=6 # Must be 6 for S2S until #1629 is addressed; 3 for ops export FHMAX_HF_GFS=0 export FHOUT_HF_GFS=1 if (( gfs_cyc != 0 )); then diff --git a/parm/config/gfs/config.fcst b/parm/config/gfs/config.fcst index f44f302680..f367df1194 100644 --- a/parm/config/gfs/config.fcst +++ b/parm/config/gfs/config.fcst @@ -31,7 +31,7 @@ if [[ "${DONST}" == "YES" ]]; then source "${EXPDIR}/config.nsst" fi -export esmf_profile=".true." +export esmf_profile=".false." export esmf_logkind="ESMF_LOGKIND_MULTI_ON_ERROR" #Options: ESMF_LOGKIND_MULTI_ON_ERROR, ESMF_LOGKIND_MULTI, ESMF_LOGKIND_NONE diff --git a/parm/config/gfs/config.stage_ic b/parm/config/gfs/config.stage_ic index 8135b787bc..7f3956af4d 100644 --- a/parm/config/gfs/config.stage_ic +++ b/parm/config/gfs/config.stage_ic @@ -21,16 +21,16 @@ case "${CASE}" in export CPL_WAVIC=workflow_C384_refactored ;; "C768") - export CPL_ATMIC=TestHR23_768 - export CPL_ICEIC=TestHR23_768 - export CPL_OCNIC=TestHR23_768 - export CPL_WAVIC=TestHR23_768 + export CPL_ATMIC=HR2_refactored + export CPL_ICEIC=HR1_refactored + export CPL_OCNIC=HR1_refactored + export CPL_WAVIC=HR1_refactored ;; "C1152") - export CPL_ATMIC=TestHR23_C1152 - export CPL_ICEIC=TestHR23_C1152 - export CPL_OCNIC=TestHR23_C1152 - export CPL_WAVIC=TestHR23_C1152 + export CPL_ATMIC=HR2_C1152_refactored + export CPL_ICEIC=HR3_refactored + export CPL_OCNIC=HR3_refactored + export CPL_WAVIC=HR1_refactored ;; *) echo "FATAL ERROR Unrecognized resolution: ${CASE}" diff --git a/parm/config/gfs/config.ufs b/parm/config/gfs/config.ufs index 36eb1933ec..841ee9102e 100644 --- a/parm/config/gfs/config.ufs +++ b/parm/config/gfs/config.ufs @@ -15,7 +15,7 @@ if (( $# <= 1 )); then echo "--fv3 C48|C96|C192|C384|C768|C1152|C3072" echo "--mom6 500|100|025" echo "--cice6 500|100|025" - echo "--ww3 gnh_10m;aoc_9km;gsh_15m|gwes_30m|glo_025|glo_200|glo_500|mx025|uglo_100km|uglo_20km|uglo_15km|uglo_m1g16" + echo "--ww3 gnh_10m;aoc_9km;gsh_15m|gwes_30m|glo_025|glo_200|glo_500|mx025|uglo_100km|uglo_m1g16" echo "--gocart" exit 1 @@ -468,14 +468,6 @@ if [[ "${skip_ww3}" == "false" ]]; then ntasks_ww3=40 nthreads_ww3=1 ;; - "uglo_20km") - ntasks_ww3=2000 - nthreads_ww3=1 - ;; - "uglo_15km") - ntasks_ww3=2000 - nthreads_ww3=1 - ;; "uglo_m1g16") ntasks_ww3=2000 nthreads_ww3=1 diff --git a/parm/config/gfs/config.wave b/parm/config/gfs/config.wave index 7ca2e413d6..74f5b78937 100644 --- a/parm/config/gfs/config.wave +++ b/parm/config/gfs/config.wave @@ -86,18 +86,6 @@ case "${waveGRD}" in export wavepostGRD='' export waveuoutpGRD=${waveGRD} ;; - "uglo_20km") - #unstructured 20km grid - export waveinterpGRD='glo_15mxt' - export wavepostGRD='' - export waveuoutpGRD=${waveGRD} - ;; - "uglo_15km") - #unstructured 15km grid - export waveinterpGRD='glo_15mxt' - export wavepostGRD='' - export waveuoutpGRD=${waveGRD} - ;; "uglo_m1g16") #unstructured m1v16 grid export waveinterpGRD='glo_15mxt' diff --git a/parm/ufs/fv3/diag_table b/parm/ufs/fv3/diag_table index 8e6d35810c..b972b3470c 100644 --- a/parm/ufs/fv3/diag_table +++ b/parm/ufs/fv3/diag_table @@ -1,6 +1,6 @@ "fv3_history", 0, "hours", 1, "hours", "time" "fv3_history2d", 0, "hours", 1, "hours", "time" -"ocn%4yr%2mo%2dy%2hr", 3, "hours", 1, "hours", "time", 3, "hours", "1901 1 1 0 0 0" +"ocn%4yr%2mo%2dy%2hr", 6, "hours", 1, "hours", "time", 6, "hours", "1901 1 1 0 0 0" "ocn_daily%4yr%2mo%2dy", 1, "days", 1, "days", "time", 1, "days", "1901 1 1 0 0 0" ############## diff --git a/workflow/coupled1152.sh b/workflow/coupled1152.sh deleted file mode 100644 index b171a1991a..0000000000 --- a/workflow/coupled1152.sh +++ /dev/null @@ -1,26 +0,0 @@ -APP=S2SW -PSLOT=c1152t01 -BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc04 -CDUMP=gfs #gfs or gefs -CONFIGDIR=$BASEDIR/global-workflow/parm/config/${CDUMP} -IDATE=2019120300 -EDATE=${IDATE} -RES=1152 -GFS_CYC=1 -COMROT=$BASEDIR/$PSLOT/COMROOT -EXPDIR=$BASEDIR/$PSLOT/EXPDIR - -echo "Set Up Modules:" -echo "source gw_setup.sh" -echo "set +u" - -echo " " -echo "Set up script" -echo ./setup_expt.py ${CDUMP} forecast-only --app $APP --pslot $PSLOT --configdir $CONFIGDIR --idate $IDATE --edate $EDATE --res $RES --gfs_cyc $GFS_CYC --comrot $COMROT --expdir $EXPDIR - -echo " " -echo "setup workflow after any changes:" -echo "./setup_xml.py $EXPDIR/$PSLOT" - -echo " " -echo "cat $EXPDIR/$PSLOT/$PSLOT.crontab" diff --git a/workflow/coupled48.sh b/workflow/coupled48.sh deleted file mode 100644 index 6657a6796d..0000000000 --- a/workflow/coupled48.sh +++ /dev/null @@ -1,26 +0,0 @@ -APP=S2SW -PSLOT=s2swc48un01 -BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc02 -CDUMP=gfs #gfs or gefs -CONFIGDIR=$BASEDIR/global-workflow/parm/config/${CDUMP} -IDATE=2021032312 -EDATE=2021032312 -RES=48 -GFS_CYC=1 -COMROT=$BASEDIR/$PSLOT/COMROOT -EXPDIR=$BASEDIR/$PSLOT/EXPDIR - -echo "Set Up Modules:" -echo "source gw_setup.sh" -echo "set +u" - -echo " " -echo "Set up script" -echo ./setup_expt.py ${CDUMP} forecast-only --app $APP --pslot $PSLOT --configdir $CONFIGDIR --idate $IDATE --edate $EDATE --res $RES --gfs_cyc $GFS_CYC --comrot $COMROT --expdir $EXPDIR - -echo " " -echo "setup workflow after any changes:" -echo "./setup_xml.py $EXPDIR/$PSLOT" - -echo " " -echo "cat $EXPDIR/$PSLOT/$PSLOT.crontab" diff --git a/workflow/coupled768.sh b/workflow/coupled768.sh deleted file mode 100644 index 158728b463..0000000000 --- a/workflow/coupled768.sh +++ /dev/null @@ -1,26 +0,0 @@ -APP=S2SW -PSLOT=test04extraout -BASEDIR=/lfs/h2/emc/couple/noscrub/jessica.meixner/HR3/unstruc04 -CDUMP=gfs #gfs or gefs -CONFIGDIR=$BASEDIR/global-workflow/parm/config/${CDUMP} -IDATE=2019120300 -EDATE=${IDATE} -RES=768 -GFS_CYC=1 -COMROT=$BASEDIR/$PSLOT/COMROOT -EXPDIR=$BASEDIR/$PSLOT/EXPDIR - -echo "Set Up Modules:" -echo "source gw_setup.sh" -echo "set +u" - -echo " " -echo "Set up script" -echo ./setup_expt.py ${CDUMP} forecast-only --app $APP --pslot $PSLOT --configdir $CONFIGDIR --idate $IDATE --edate $EDATE --res $RES --gfs_cyc $GFS_CYC --comrot $COMROT --expdir $EXPDIR - -echo " " -echo "setup workflow after any changes:" -echo "./setup_xml.py $EXPDIR/$PSLOT" - -echo " " -echo "cat $EXPDIR/$PSLOT/$PSLOT.crontab" From 69dd2611d9ba6ea0ba17389349b80f9701b34469 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 16 Jan 2024 14:35:51 -0600 Subject: [PATCH 21/41] attempt to fix shellcheck --- sorc/build_ww3prepost.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sorc/build_ww3prepost.sh b/sorc/build_ww3prepost.sh index da666e559c..a96cf12820 100755 --- a/sorc/build_ww3prepost.sh +++ b/sorc/build_ww3prepost.sh @@ -26,7 +26,7 @@ while getopts ":j:a:dvw" option; do esac done -# Determine which switch to use +# Determine which switch to use if [[ "${APP}" == "ATMW" ]]; then ww3switch="model/esmf/switch" else @@ -93,8 +93,8 @@ cat "${buildswitch}" MAKE_OPT="-DCMAKE_INSTALL_PREFIX=install" [[ ${BUILD_TYPE:-"Release"} = "DEBUG" ]] && MAKE_OPT+=" -DDEBUG=ON" -#Build executables: -cmake "${WW3_DIR}" -DSWITCH="${buildswitch}" ${MAKE_OPT} +#Build executables: +cmake "${WW3_DIR} -DSWITCH=${buildswitch} ${MAKE_OPT}" rc=$? if (( rc != 0 )); then echo "Fatal error in cmake." From 903ab13020a1d9352e00d7c9cddd0df05c0c181c Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 16 Jan 2024 14:51:57 -0600 Subject: [PATCH 22/41] shell check updates round 2 --- scripts/exgfs_wave_init.sh | 6 +++--- sorc/build_ww3prepost.sh | 2 +- ush/wave_grid_moddef.sh | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/exgfs_wave_init.sh b/scripts/exgfs_wave_init.sh index 0a904541a1..cbd205d9b7 100755 --- a/scripts/exgfs_wave_init.sh +++ b/scripts/exgfs_wave_init.sh @@ -173,7 +173,7 @@ source "${HOMEgfs}/ush/preamble.sh" exit=$? fi - if [ "$exit" != '0' ] + if [[ "$exit" != '0' ]] then set +x echo ' ' @@ -202,9 +202,9 @@ source "${HOMEgfs}/ush/preamble.sh" echo '********************************************** ' echo '*** FATAL ERROR : NO MODEL DEFINITION FILE *** ' echo '********************************************** ' - echo " grdID = $grdID" + echo " grdID = ${grdID}" echo ' ' - sed "s/^/$grdID.out : /g" $grdID.out + sed "s/^/${grdID}.out : /g" ${grdID}.out set_trace err=3;export err;${errchk} fi diff --git a/sorc/build_ww3prepost.sh b/sorc/build_ww3prepost.sh index a96cf12820..19cdba98da 100755 --- a/sorc/build_ww3prepost.sh +++ b/sorc/build_ww3prepost.sh @@ -94,7 +94,7 @@ MAKE_OPT="-DCMAKE_INSTALL_PREFIX=install" [[ ${BUILD_TYPE:-"Release"} = "DEBUG" ]] && MAKE_OPT+=" -DDEBUG=ON" #Build executables: -cmake "${WW3_DIR} -DSWITCH=${buildswitch} ${MAKE_OPT}" +cmake "${WW3_DIR}" -DSWITCH="${buildswitch}" "${MAKE_OPT}" rc=$? if (( rc != 0 )); then echo "Fatal error in cmake." diff --git a/ush/wave_grid_moddef.sh b/ush/wave_grid_moddef.sh index 09731e7fcd..a0d3d9830e 100755 --- a/ush/wave_grid_moddef.sh +++ b/ush/wave_grid_moddef.sh @@ -92,7 +92,7 @@ source "$HOMEgfs/ush/preamble.sh" - $EXECwave/ww3_grid 1> grid_${grdID}.out 2>&1 + ${EXECwave}/ww3_grid 1> grid_${grdID}.out 2>&1 err=$? if [ "$err" != '0' ] @@ -107,10 +107,10 @@ source "$HOMEgfs/ush/preamble.sh" exit 3 fi - if [ -f mod_def.ww3 ] + if [[ -f mod_def.ww3 ]] then cp mod_def.ww3 "${COM_WAVE_PREP}/${RUN}wave.mod_def.${grdID}" - mv mod_def.ww3 ../mod_def.$grdID + mv mod_def.ww3 ../mod_def.${grdID} else set +x echo ' ' @@ -126,6 +126,6 @@ source "$HOMEgfs/ush/preamble.sh" # 3. Clean up cd .. -rm -rf moddef_$grdID +rm -rf moddef_${grdID} # End of ww3_mod_def.sh ------------------------------------------------- # From 223e49dd7d16429d1fdfa727003d0abbb132f8f6 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 16 Jan 2024 14:57:01 -0600 Subject: [PATCH 23/41] shell check round 3 --- ush/wave_grid_moddef.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ush/wave_grid_moddef.sh b/ush/wave_grid_moddef.sh index a0d3d9830e..f704c74af4 100755 --- a/ush/wave_grid_moddef.sh +++ b/ush/wave_grid_moddef.sh @@ -92,7 +92,7 @@ source "$HOMEgfs/ush/preamble.sh" - ${EXECwave}/ww3_grid 1> grid_${grdID}.out 2>&1 + "${EXECwave}/ww3_grid" 1> "grid_${grdID}.out" 2>&1 err=$? if [ "$err" != '0' ] @@ -110,7 +110,7 @@ source "$HOMEgfs/ush/preamble.sh" if [[ -f mod_def.ww3 ]] then cp mod_def.ww3 "${COM_WAVE_PREP}/${RUN}wave.mod_def.${grdID}" - mv mod_def.ww3 ../mod_def.${grdID} + mv mod_def.ww3 "../mod_def.${grdID}" else set +x echo ' ' @@ -126,6 +126,6 @@ source "$HOMEgfs/ush/preamble.sh" # 3. Clean up cd .. -rm -rf moddef_${grdID} +rm -rf "moddef_${grdID}" # End of ww3_mod_def.sh ------------------------------------------------- # From 384a15eec932bee701b01416e0f7137161d626f2 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 16 Jan 2024 15:10:18 -0600 Subject: [PATCH 24/41] update for shellcheck --- scripts/exgfs_wave_init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/exgfs_wave_init.sh b/scripts/exgfs_wave_init.sh index cbd205d9b7..ced16bf4c4 100755 --- a/scripts/exgfs_wave_init.sh +++ b/scripts/exgfs_wave_init.sh @@ -204,7 +204,7 @@ source "${HOMEgfs}/ush/preamble.sh" echo '********************************************** ' echo " grdID = ${grdID}" echo ' ' - sed "s/^/${grdID}.out : /g" ${grdID}.out + sed "s/^/${grdID}.out : /g" "${grdID}.out" set_trace err=3;export err;${errchk} fi From f3937f9fab62022a896f421eac822d4923986890 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 16 Jan 2024 15:14:27 -0600 Subject: [PATCH 25/41] more shell check update attempts --- scripts/exgfs_wave_init.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/exgfs_wave_init.sh b/scripts/exgfs_wave_init.sh index ced16bf4c4..d198c853a2 100755 --- a/scripts/exgfs_wave_init.sh +++ b/scripts/exgfs_wave_init.sh @@ -163,9 +163,9 @@ source "${HOMEgfs}/ush/preamble.sh" if [ "$NTASKS" -gt '1' ] then if [ ${CFP_MP:-"NO"} = "YES" ]; then - ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdfile + "${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdfile" else - ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + "${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile" fi exit=$? else From 27e86c1cc30ea0ce584ab19bd6fc62e825bd2ae9 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Wed, 17 Jan 2024 08:00:31 -0600 Subject: [PATCH 26/41] revert two files so that existing tests will work --- parm/config/gfs/config.base.emc.dyn | 8 ++++---- parm/wave/wave_gfs.buoys | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index 4b7a79cc47..3ac98c3963 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -182,16 +182,16 @@ export ICERES="${OCNRES}" # These are the currently recommended grid-combinations case "${CASE}" in "C48") - export waveGRD='uglo_100km' + export waveGRD='glo_500' ;; "C96" | "C192") - export waveGRD='uglo_100km' + export waveGRD='glo_200' ;; "C384") - export waveGRD='uglo_m1g16' + export waveGRD='glo_025' ;; "C768" | "C1152") - export waveGRD='uglo_m1g16' + export waveGRD='mx025' ;; *) echo "FATAL ERROR: Unrecognized CASE ${CASE}, ABORT!" diff --git a/parm/wave/wave_gfs.buoys b/parm/wave/wave_gfs.buoys index 29d3c041b1..6f47adefac 120000 --- a/parm/wave/wave_gfs.buoys +++ b/parm/wave/wave_gfs.buoys @@ -1 +1 @@ -wave_gfs.buoys.dat \ No newline at end of file +wave_gfs.buoys.full \ No newline at end of file From dc9932e834ffd289a314469847d94ffe1a25968d Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Wed, 17 Jan 2024 10:09:29 -0600 Subject: [PATCH 27/41] since tests only go up to C384, setting C768/C1152 to desired unstructred grid as default --- parm/config/gfs/config.base.emc.dyn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index 3ac98c3963..728dca55a3 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -191,7 +191,7 @@ case "${CASE}" in export waveGRD='glo_025' ;; "C768" | "C1152") - export waveGRD='mx025' + export waveGRD='uglo_m1g16' ;; *) echo "FATAL ERROR: Unrecognized CASE ${CASE}, ABORT!" From 3d30ca43e2616e8ee70dc23fa26f02851766ea6f Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Thu, 18 Jan 2024 14:51:02 +0000 Subject: [PATCH 28/41] Update scripts/exgfs_wave_init.sh Co-authored-by: Walter Kolczynski - NOAA --- scripts/exgfs_wave_init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/exgfs_wave_init.sh b/scripts/exgfs_wave_init.sh index d198c853a2..f3fd33b868 100755 --- a/scripts/exgfs_wave_init.sh +++ b/scripts/exgfs_wave_init.sh @@ -163,7 +163,7 @@ source "${HOMEgfs}/ush/preamble.sh" if [ "$NTASKS" -gt '1' ] then if [ ${CFP_MP:-"NO"} = "YES" ]; then - "${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdfile" + ${wavempexec} -n "${wavenproc}" "${wave_mpmd}" cmdfile else "${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile" fi From df2a08a2742e883efce62a640683d47246a2034e Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Thu, 18 Jan 2024 14:51:10 +0000 Subject: [PATCH 29/41] Update scripts/exgfs_wave_init.sh Co-authored-by: Walter Kolczynski - NOAA --- scripts/exgfs_wave_init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/exgfs_wave_init.sh b/scripts/exgfs_wave_init.sh index f3fd33b868..e7a558e433 100755 --- a/scripts/exgfs_wave_init.sh +++ b/scripts/exgfs_wave_init.sh @@ -165,7 +165,7 @@ source "${HOMEgfs}/ush/preamble.sh" if [ ${CFP_MP:-"NO"} = "YES" ]; then ${wavempexec} -n "${wavenproc}" "${wave_mpmd}" cmdfile else - "${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile" + ${wavempexec} "${wavenproc}" "${wave_mpmd}" cmdfile fi exit=$? else From 02376874010b80cea91be6e871a2bb0e03a2b09d Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Thu, 18 Jan 2024 14:51:26 +0000 Subject: [PATCH 30/41] Update scripts/exgfs_wave_init.sh Co-authored-by: Walter Kolczynski - NOAA --- scripts/exgfs_wave_init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/exgfs_wave_init.sh b/scripts/exgfs_wave_init.sh index e7a558e433..71b47a2e13 100755 --- a/scripts/exgfs_wave_init.sh +++ b/scripts/exgfs_wave_init.sh @@ -121,7 +121,7 @@ source "${HOMEgfs}/ush/preamble.sh" if [ -f ${FIXwave}/${grdID}.msh ] then - cp $FIXwave/${grdID}.msh ${grdID}.msh + cp "${FIXwave}/${grdID}.msh" "${grdID}.msh" fi #TO DO: how do we say "it's unstructured, and therefore need to have error check here" From 3a179708d3fa67c8bc970ce18c9456920c6037cb Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Thu, 18 Jan 2024 19:39:38 +0000 Subject: [PATCH 31/41] Update sorc/build_ufs.sh Co-authored-by: Walter Kolczynski - NOAA --- sorc/build_ufs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/build_ufs.sh b/sorc/build_ufs.sh index fbbd9ae949..24ee8c5f13 100755 --- a/sorc/build_ufs.sh +++ b/sorc/build_ufs.sh @@ -13,7 +13,7 @@ while getopts ":da:j:vw" option; do a) APP="${OPTARG}";; j) BUILD_JOBS="${OPTARG}";; v) export BUILD_VERBOSE="YES";; - w) export PDLIB="ON";; + w) PDLIB="ON";; :) echo "[${BASH_SOURCE[0]}]: ${option} requires an argument" ;; From f4a73773d79a7557a9dfc954d97b2a1b59dacfa2 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Fri, 19 Jan 2024 10:50:59 -0600 Subject: [PATCH 32/41] fix reason of ci test failures --- scripts/exgfs_wave_init.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/exgfs_wave_init.sh b/scripts/exgfs_wave_init.sh index 71b47a2e13..03fd93bf48 100755 --- a/scripts/exgfs_wave_init.sh +++ b/scripts/exgfs_wave_init.sh @@ -163,9 +163,9 @@ source "${HOMEgfs}/ush/preamble.sh" if [ "$NTASKS" -gt '1' ] then if [ ${CFP_MP:-"NO"} = "YES" ]; then - ${wavempexec} -n "${wavenproc}" "${wave_mpmd}" cmdfile + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdfile else - ${wavempexec} "${wavenproc}" "${wave_mpmd}" cmdfile + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile fi exit=$? else From 42e7e00a9c8e9a807573221b045ad7fe385d4fbc Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Fri, 9 Feb 2024 00:18:26 +0000 Subject: [PATCH 33/41] lower task count so it runs out of box on hera --- parm/config/gfs/config.ufs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/config/gfs/config.ufs b/parm/config/gfs/config.ufs index 219c259acf..e8560817d3 100644 --- a/parm/config/gfs/config.ufs +++ b/parm/config/gfs/config.ufs @@ -469,7 +469,7 @@ if [[ "${skip_ww3}" == "false" ]]; then nthreads_ww3=1 ;; "uglo_m1g16") - ntasks_ww3=2000 + ntasks_ww3=1000 nthreads_ww3=1 ;; *) From 98812ff065c8ceffd6bc5bcc61cd6e5fa6d81cac Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Fri, 9 Feb 2024 18:04:30 +0000 Subject: [PATCH 34/41] update build for unstructured waves --- ci/cases/yamls/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/cases/yamls/build.yaml b/ci/cases/yamls/build.yaml index 5398fa1889..2ff008d372 100644 --- a/ci/cases/yamls/build.yaml +++ b/ci/cases/yamls/build.yaml @@ -1,3 +1,3 @@ builds: - gefs: './build_all.sh' - - gfs: './build_all.sh -gu' \ No newline at end of file + - gfs: './build_all.sh -wgu' From 99e17edbe60362e8268b4b259fd32994d34bd3bd Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Fri, 9 Feb 2024 21:01:28 +0000 Subject: [PATCH 35/41] all gfs wave grids need to be unstructured since we build with -w --- parm/config/gfs/config.base.emc.dyn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index 33292e25a8..bb4bdfbf18 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -182,13 +182,13 @@ export ICERES="${OCNRES}" # These are the currently recommended grid-combinations case "${CASE}" in "C48") - export waveGRD='glo_500' + export waveGRD='uglo_100km' ;; "C96" | "C192") - export waveGRD='glo_200' + export waveGRD='uglo_100km' ;; "C384") - export waveGRD='glo_025' + export waveGRD='uglo_100km' ;; "C768" | "C1152") export waveGRD='uglo_m1g16' From 5e5ce614acedd990d34eb287554d34d358964719 Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Wed, 14 Feb 2024 16:23:10 +0000 Subject: [PATCH 36/41] increased memory was required on wcoss2 for scout runs --- parm/config/gfs/config.resources | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/parm/config/gfs/config.resources b/parm/config/gfs/config.resources index ced6e6a3d8..afebc70ae2 100644 --- a/parm/config/gfs/config.resources +++ b/parm/config/gfs/config.resources @@ -737,7 +737,7 @@ case ${step} in export npe_genesis=1 export nth_genesis=1 export npe_node_genesis=1 - export memory_genesis="4G" + export memory_genesis="10G" ;; "genesis_fsu") @@ -745,7 +745,7 @@ case ${step} in export npe_genesis_fsu=1 export nth_genesis_fsu=1 export npe_node_genesis_fsu=1 - export memory_genesis_fsu="4G" + export memory_genesis_fsu="10G" ;; "fit2obs") From ec1202694ac86b7c485adcf1254cc5caff494cdc Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Wed, 14 Feb 2024 16:26:00 +0000 Subject: [PATCH 37/41] update to HR3 ICs --- parm/config/gfs/config.stage_ic | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/parm/config/gfs/config.stage_ic b/parm/config/gfs/config.stage_ic index 7f3956af4d..dc224b72db 100644 --- a/parm/config/gfs/config.stage_ic +++ b/parm/config/gfs/config.stage_ic @@ -21,16 +21,16 @@ case "${CASE}" in export CPL_WAVIC=workflow_C384_refactored ;; "C768") - export CPL_ATMIC=HR2_refactored - export CPL_ICEIC=HR1_refactored - export CPL_OCNIC=HR1_refactored - export CPL_WAVIC=HR1_refactored + export CPL_ATMIC=HR3C768 + export CPL_ICEIC=HR3marine + export CPL_OCNIC=HR3marine + export CPL_WAVIC=HR3marine ;; "C1152") - export CPL_ATMIC=HR2_C1152_refactored - export CPL_ICEIC=HR3_refactored - export CPL_OCNIC=HR3_refactored - export CPL_WAVIC=HR1_refactored + export CPL_ATMIC=HR3C1152 + export CPL_ICEIC=HR3marine + export CPL_OCNIC=HR3marine + export CPL_WAVIC=HR3marine ;; *) echo "FATAL ERROR Unrecognized resolution: ${CASE}" From b32e46f667d3152c1de79e2ccb8300436c0891ac Mon Sep 17 00:00:00 2001 From: "Walter.Kolczynski" Date: Wed, 14 Feb 2024 16:49:50 -0600 Subject: [PATCH 38/41] Update shell-based CI scripts Updates the shell-based CI scripts to build with the new `-w` option. The GEFS test is temporarily disabled pending switch to the Jenkins system and multi-build capabililty in the CI system. --- ci/cases/pr/C48_S2SWA_gefs.yaml | 5 +++++ ci/scripts/clone-build_ci.sh | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ci/cases/pr/C48_S2SWA_gefs.yaml b/ci/cases/pr/C48_S2SWA_gefs.yaml index d42f4cd15b..de677a70b6 100644 --- a/ci/cases/pr/C48_S2SWA_gefs.yaml +++ b/ci/cases/pr/C48_S2SWA_gefs.yaml @@ -16,3 +16,8 @@ arguments: idate: 2021032312 edate: 2021032312 yaml: {{ HOMEgfs }}/ci/cases/yamls/gefs_ci_defaults.yaml + +skip_ci_on_hosts: + - hera + - orion + - hercules diff --git a/ci/scripts/clone-build_ci.sh b/ci/scripts/clone-build_ci.sh index 798c98bf50..989afabb80 100755 --- a/ci/scripts/clone-build_ci.sh +++ b/ci/scripts/clone-build_ci.sh @@ -74,7 +74,7 @@ set +e source "${HOMEgfs}/ush/module-setup.sh" export BUILD_JOBS=8 rm -rf log.build -./build_all.sh -gu >> log.build 2>&1 +./build_all.sh -guw >> log.build 2>&1 build_status=$? DATE=$(date +'%D %r') From fc546d9ea8b395b5c65220ea2c5a9b3efc8d61ed Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Thu, 15 Feb 2024 16:32:42 +0000 Subject: [PATCH 39/41] updating ugwd fix file --- versions/fix.ver | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/fix.ver b/versions/fix.ver index 13d9b56dd2..a64a6e86ae 100644 --- a/versions/fix.ver +++ b/versions/fix.ver @@ -17,6 +17,6 @@ export mom6_ver=20231219 export orog_ver=20231027 export reg2grb2_ver=20220805 export sfc_climo_ver=20220805 -export ugwd_ver=20220805 +export ugwd_ver=20231027 export verif_ver=20220805 export wave_ver=20240105 From 1514906591d674f216712f503c40c39e7e548340 Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Thu, 15 Feb 2024 21:19:13 +0000 Subject: [PATCH 40/41] hera.intl to hera in gdas build all --- sorc/build_all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/build_all.sh b/sorc/build_all.sh index d9909078e9..dd74c53487 100755 --- a/sorc/build_all.sh +++ b/sorc/build_all.sh @@ -133,7 +133,7 @@ build_opts["ww3prepost"]="${_wave_unst} ${_verbose_opt} ${_build_ufs_opt}" # Optional DA builds if [[ "${_build_ufsda}" == "YES" ]]; then - if [[ "${MACHINE_ID}" != "orion" && "${MACHINE_ID}" != "hera.intel" && "${MACHINE_ID}" != "hercules" ]]; then + if [[ "${MACHINE_ID}" != "orion" && "${MACHINE_ID}" != "hera" && "${MACHINE_ID}" != "hercules" ]]; then echo "NOTE: The GDAS App is not supported on ${MACHINE_ID}. Disabling build." else build_jobs["gdas"]=8 From 7c06061fecf02389587286e70940fae87705df07 Mon Sep 17 00:00:00 2001 From: Jessica Meixner Date: Thu, 15 Feb 2024 21:55:35 +0000 Subject: [PATCH 41/41] fix typo, to turn off C48mx500_3DVarAOWCDA tests --- ci/cases/pr/C48mx500_3DVarAOWCDA.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/cases/pr/C48mx500_3DVarAOWCDA.yaml b/ci/cases/pr/C48mx500_3DVarAOWCDA.yaml index 6e9fc6d3de..d9156e38f3 100644 --- a/ci/cases/pr/C48mx500_3DVarAOWCDA.yaml +++ b/ci/cases/pr/C48mx500_3DVarAOWCDA.yaml @@ -17,7 +17,7 @@ arguments: start: warm yaml: {{ HOMEgfs }}/ci/cases/yamls/soca_gfs_defaults_ci.yaml -skip_ci_on_host: +skip_ci_on_hosts: - orion - hera - hercules