From ff9c7955ebaaaedad930cbaea19a78215ee78d85 Mon Sep 17 00:00:00 2001 From: Rahul Mahajan Date: Tue, 27 Aug 2024 08:05:23 -0400 Subject: [PATCH] ecflow updates after testing suite (#41) * consolidate gitignore and update resources in ecf to match dev/drivers * minor updates to ecflow parts * export model=wafs in all ecf scripts * minor tweaks to build * use envir-p1.h from NCO * use head.h from ops * suppress verbose echos when loading or listing modules * use envir-p1.h from NCO, allow over-riding for devs in head.h * update wafs.def after testing wafs_00.def * remove hardwired paths to COMROOT and DATAROOT from envir-p1.h * fix errors in suite def for blending family * ensure the name of the job has a f in front of the forecast hour * COM needs a %ENVIR% * remove wafs_00.def and add COMPATH * update FHR for grib jobs, use DCOMROOT for testing * update suite def and create a setup script for developers * add README.md for ecflow * typo fix * added 000 for grib2_1p25 * fix typo for upp f001 --- .gitignore | 15 + dev/ecf/README.md | 66 +++ dev/ecf/setup_ecf.sh | 28 + ecf/def/wafs.def | 520 ----------------- ecf/def/wafs.def.tmpl | 544 ++++++++++++++++++ ecf/include/envir-p1.h | 14 +- ecf/include/head.h | 33 +- ecf/scripts/.gitignore | 8 - ecf/scripts/gcip/jwafs_gcip_master.ecf | 9 +- ecf/scripts/grib/jwafs_grib_master.ecf | 7 +- .../jwafs_grib2_0p25_blending_master.ecf | 11 +- .../grib2/0p25/jwafs_grib2_0p25_master.ecf | 11 +- .../grib2/1p25/jwafs_grib2_1p25_master.ecf | 11 +- ecf/scripts/jwafs_gfs_manager.ecf | 6 +- ecf/scripts/upp/jwafs_upp_master.ecf | 9 +- ecf/setup_ecf_links.sh | 7 +- sorc/build_all.sh | 8 - sorc/build_upp.sh | 10 + versions/run.ver | 9 +- 19 files changed, 740 insertions(+), 586 deletions(-) create mode 100644 dev/ecf/README.md create mode 100755 dev/ecf/setup_ecf.sh delete mode 100644 ecf/def/wafs.def create mode 100644 ecf/def/wafs.def.tmpl delete mode 100644 ecf/scripts/.gitignore diff --git a/.gitignore b/.gitignore index e8f49c1..9d24c3c 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,18 @@ install*/ log* *.sw[a-p] + +# Ignore the upp parm files so they do not get added to this repo +parm/upp + +# Ignore the symlinked files in the ecf/scripts directory +ecf/scripts/upp/jwafs_upp_f*.ecf +ecf/scripts/upp/jwafs_upp_anl.ecf +ecf/scripts/grib2/1p25/jwafs_grib2_1p25_f*.ecf +ecf/scripts/grib2/0p25/jwafs_grib2_0p25_f*.ecf +ecf/scripts/grib2/0p25/blending/jwafs_grib2_0p25_blending_f*.ecf +ecf/scripts/gcip/jwafs_gcip_f*.ecf +ecf/scripts/grib/jwafs_grib_f*.ecf + +# Ignore wafs.def +ecf/def/wafs.def diff --git a/dev/ecf/README.md b/dev/ecf/README.md new file mode 100644 index 0000000..ecff506 --- /dev/null +++ b/dev/ecf/README.md @@ -0,0 +1,66 @@ +# Getting Started with ecflow + +This README provides a basic guide on how to start using ecflow and load a suite definition file. + +## Create the `ecflow` suite +The `ecflow` suite is a collection of tasks that can be run in a specific order. The suite is defined in a suite definition file, which is a text file that contains the tasks and dependencies between them. +```bash +cd dev/ecf +./setup_ecf.sh +``` +This will create a suite definition file called `wafs.def` in the `ecf/def` directory as well as links to the individual forecast hour ecf scripts. + +## Loading `ecflow` +`ecflow` can be loaded using the following command: +```bash +module load ecflow +``` +This will load `ecflow` in your environment and setup the necessary value for `ECF_PORT`. It will also add `ecflow` calls to your `PATH`. + +## Starting `ecflow_server` +`ecflow_server` can only be started on dedicated ecflow server nodes. On WCOSS2, the ecflow server nodes for development are: +- `cdecflow01`, `cdecflow02` (cactus) +- `ddcflow01`, `ddcflow02` (dogwood) + +Before starting the `ecflow_server`, one has to set the following variables. This only needs to be set once before starting the `ecflow_server`. +```bash +export ECF_ROOT=${HOME}/ecflow +export ECF_OUTPUTDIR=${ECF_ROOT}/output +export LFS_OUTPUTDIR=${ECF_ROOT}/submit +export ECF_COMDIR=${ECF_ROOT}/com +mkdir -p ${ECF_ROOT} +``` + +You are now ready to start the `ecflow_server`. +```bash +server_check.sh ${ECF_ROOT} +``` +This will start the `ecflow_server` and print out the port number that the server is running on. + +You can now exit the host where you started the `ecflow_server` and return to the usual WCOSS2 login nodes. + +## Loading a Suite Definition File +Load the `ecflow` module on the WCOSS2 login node where you want to load the suite definition file. +Check to ensure the `ecflow_client` can ping the `ecflow_server`: +```bash +`ecflow_client --ping` +``` + +If this is successful, one can launch the `ecflow_ui` and place it in the background. +```bash +ecflow_ui & +``` + +Navigate to the directory where the suite definition file is located (typically `ecf/def`). +```bash +ecflow_client --load $PWD/wafs.def +``` + +## Begin Running the Suite +To begin running the suite, use the following command: +```bash +ecflow_client --begin wafs +``` + +## Additional Resources +For more information on using ecflow, refer to the official [documentation](https://ecflow.readthedocs.io/en/latest/overview.html) diff --git a/dev/ecf/setup_ecf.sh b/dev/ecf/setup_ecf.sh new file mode 100755 index 0000000..4b5b288 --- /dev/null +++ b/dev/ecf/setup_ecf.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +set -eu + + +# Get the root of the cloned WAFS directory +readonly DIR_ROOT=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}")")/../.." && pwd -P) + +ECF_DIR="${DIR_ROOT}/ecf" + +model="wafs" +modelver=$(echo ${DIR_ROOT} | perl -pe "s:.*?/${model}\.(v[\d\.a-z]+).*:\1:") +packageroot=$(dirname ${DIR_ROOT}) + +# Replace @VARIABLE@ names in suite definition files with values +echo "Create ecflow suite definition file in ... ecf/def/wafs.def" +sed -e "s|@MACHINE_SITE@|${MACHINE_SITE:-development}|g" \ + -e "s|@USER@|${USER}|g" \ + -e "s|@MODELVER@|${modelver}|g" \ + -e "s|@PACKAGEROOT@|${packageroot}|g" \ + "${ECF_DIR}/def/wafs.def.tmpl" > "${ECF_DIR}/def/wafs.def" + +# Link ecflow scripts +echo "Link ecflow scripts in ... ecf/scripts" +cd "${ECF_DIR}" || exit 1 +./setup_ecf_links.sh + +echo "... done" diff --git a/ecf/def/wafs.def b/ecf/def/wafs.def deleted file mode 100644 index 065415e..0000000 --- a/ecf/def/wafs.def +++ /dev/null @@ -1,520 +0,0 @@ -suite wafs_suite - family wafs - edit PACKAGEHOME '/lfs/h2/emc/global/noscrub/%USER%/src/wafs' - edit OUTPUTDIR '/lfs/h2/emc/ptmp/%USER%/output/wafs' - edit QUEUE 'dev' - edit QUEUE_ARCH 'dev_transfer' - edit PROJENVIR 'DEV' - edit PROJ 'WAFS' - edit NET 'wafs' - edit RUN 'wafs' - family 00 - edit CYC '00' - task jwafs_gfs_manager - trigger /00/gfs/jgfs_forecast == active or /00/gfs/jgfs_forecast == complete - event 1 release_wafs_upp_anl - event 2 release_wafs_upp_000 - event 3 release_wafs_upp_001 - event 4 release_wafs_upp_002 - event 5 release_wafs_upp_003 - event 6 release_wafs_upp_004 - event 7 release_wafs_upp_005 - event 8 release_wafs_upp_006 - event 9 release_wafs_upp_007 - event 10 release_wafs_upp_008 - event 11 release_wafs_upp_009 - event 12 release_wafs_upp_010 - event 13 release_wafs_upp_011 - event 14 release_wafs_upp_012 - event 15 release_wafs_upp_013 - event 16 release_wafs_upp_014 - event 17 release_wafs_upp_015 - event 18 release_wafs_upp_016 - event 19 release_wafs_upp_017 - event 20 release_wafs_upp_018 - event 21 release_wafs_upp_019 - event 22 release_wafs_upp_020 - event 23 release_wafs_upp_021 - event 24 release_wafs_upp_022 - event 25 release_wafs_upp_023 - event 26 release_wafs_upp_024 - event 27 release_wafs_upp_027 - event 28 release_wafs_upp_030 - event 29 release_wafs_upp_033 - event 30 release_wafs_upp_036 - event 31 release_wafs_upp_039 - event 32 release_wafs_upp_042 - event 33 release_wafs_upp_045 - event 34 release_wafs_upp_048 - event 35 release_wafs_upp_054 - event 36 release_wafs_upp_060 - event 37 release_wafs_upp_066 - event 38 release_wafs_upp_072 - event 39 release_wafs_upp_078 - event 40 release_wafs_upp_084 - event 41 release_wafs_upp_090 - event 42 release_wafs_upp_096 - event 43 release_wafs_upp_102 - event 44 release_wafs_upp_108 - event 45 release_wafs_upp_114 - event 46 release_wafs_upp_120 - event 47 release_wafs_gcip_000 - event 48 release_wafs_gcip_003 - event 49 release_wafs_grib_006 - event 50 release_wafs_grib_012 - event 51 release_wafs_grib_018 - event 52 release_wafs_grib_024 - event 53 release_wafs_grib_030 - event 54 release_wafs_grib_036 - event 55 release_wafs_grib_042 - event 56 release_wafs_grib_048 - event 57 release_wafs_grib_054 - event 58 release_wafs_grib_060 - event 59 release_wafs_grib_066 - event 60 release_wafs_grib_072 - family upp - task jwafs_upp_anl - trigger ../jwafs_gfs_manager:release_wafs_upp_anl - edit FHR anl - task jwafs_upp_f000 - trigger ../jwafs_gfs_manager:release_wafs_upp_000 - edit FHR 000 - task jwafs_upp_f001 - trigger ../jwafs_gfs_manager:release_wafs_upp_001 - edit FHR 000 - task jwafs_upp_f002 - trigger ../jwafs_gfs_manager:release_wafs_upp_002 - edit FHR 002 - task jwafs_upp_f003 - trigger ../jwafs_gfs_manager:release_wafs_upp_003 - edit FHR 003 - task jwafs_upp_f004 - trigger ../jwafs_gfs_manager:release_wafs_upp_004 - edit FHR 004 - task jwafs_upp_f001 - trigger ../jwafs_gfs_manager:release_wafs_upp_005 - edit FHR 005 - task jwafs_upp_f005 - trigger ../jwafs_gfs_manager:release_wafs_upp_006 - edit FHR 006 - task jwafs_upp_f007 - trigger ../jwafs_gfs_manager:release_wafs_upp_007 - edit FHR 007 - task jwafs_upp_f008 - trigger ../jwafs_gfs_manager:release_wafs_upp_008 - edit FHR 008 - task jwafs_upp_f009 - trigger ../jwafs_gfs_manager:release_wafs_upp_009 - edit FHR 009 - task jwafs_upp_f010 - trigger ../jwafs_gfs_manager:release_wafs_upp_010 - edit FHR 010 - task jwafs_upp_f011 - trigger ../jwafs_gfs_manager:release_wafs_upp_011 - edit FHR 011 - task jwafs_upp_f012 - trigger ../jwafs_gfs_manager:release_wafs_upp_012 - edit FHR 012 - task jwafs_upp_f013 - trigger ../jwafs_gfs_manager:release_wafs_upp_013 - edit FHR 013 - task jwafs_upp_f014 - trigger ../jwafs_gfs_manager:release_wafs_upp_014 - edit FHR 014 - task jwafs_upp_f015 - trigger ../jwafs_gfs_manager:release_wafs_upp_015 - edit FHR 015 - task jwafs_upp_f016 - trigger ../jwafs_gfs_manager:release_wafs_upp_016 - edit FHR 016 - task jwafs_upp_f017 - trigger ../jwafs_gfs_manager:release_wafs_upp_017 - edit FHR 017 - task jwafs_upp_f018 - trigger ../jwafs_gfs_manager:release_wafs_upp_018 - edit FHR 018 - task jwafs_upp_f019 - trigger ../jwafs_gfs_manager:release_wafs_upp_019 - edit FHR 019 - task jwafs_upp_f020 - trigger ../jwafs_gfs_manager:release_wafs_upp_020 - edit FHR 020 - task jwafs_upp_f021 - trigger ../jwafs_gfs_manager:release_wafs_upp_021 - edit FHR 021 - task jwafs_upp_f022 - trigger ../jwafs_gfs_manager:release_wafs_upp_022 - edit FHR 022 - task jwafs_upp_f023 - trigger ../jwafs_gfs_manager:release_wafs_upp_023 - edit FHR 023 - task jwafs_upp_f024 - trigger ../jwafs_gfs_manager:release_wafs_upp_024 - edit FHR 024 - task jwafs_upp_f027 - trigger ../jwafs_gfs_manager:release_wafs_upp_027 - edit FHR 027 - task jwafs_upp_f030 - trigger ../jwafs_gfs_manager:release_wafs_upp_030 - edit FHR 030 - task jwafs_upp_f033 - trigger ../jwafs_gfs_manager:release_wafs_upp_033 - edit FHR 033 - task jwafs_upp_f036 - trigger ../jwafs_gfs_manager:release_wafs_upp_036 - edit FHR 036 - task jwafs_upp_f039 - trigger ../jwafs_gfs_manager:release_wafs_upp_039 - edit FHR 039 - task jwafs_upp_f042 - trigger ../jwafs_gfs_manager:release_wafs_upp_042 - edit FHR 042 - task jwafs_upp_f045 - trigger ../jwafs_gfs_manager:release_wafs_upp_045 - edit FHR 045 - task jwafs_upp_f048 - trigger ../jwafs_gfs_manager:release_wafs_upp_048 - edit FHR 048 - task jwafs_upp_f054 - trigger ../jwafs_gfs_manager:release_wafs_upp_054 - edit FHR 054 - task jwafs_upp_f060 - trigger ../jwafs_gfs_manager:release_wafs_upp_060 - edit FHR 060 - task jwafs_upp_f066 - trigger ../jwafs_gfs_manager:release_wafs_upp_066 - edit FHR 066 - task jwafs_upp_f072 - trigger ../jwafs_gfs_manager:release_wafs_upp_072 - edit FHR 072 - task jwafs_upp_f078 - trigger ../jwafs_gfs_manager:release_wafs_upp_078 - edit FHR 078 - task jwafs_upp_f084 - trigger ../jwafs_gfs_manager:release_wafs_upp_084 - edit FHR 084 - task jwafs_upp_f090 - trigger ../jwafs_gfs_manager:release_wafs_upp_090 - edit FHR 090 - task jwafs_upp_f096 - trigger ../jwafs_gfs_manager:release_wafs_upp_096 - edit FHR 096 - task jwafs_upp_f102 - trigger ../jwafs_gfs_manager:release_wafs_upp_102 - edit FHR 102 - task jwafs_upp_f108 - trigger ../jwafs_gfs_manager:release_wafs_upp_108 - edit FHR 108 - task jwafs_upp_f114 - trigger ../jwafs_gfs_manager:release_wafs_upp_114 - edit FHR 114 - task jwafs_upp_f120 - trigger ../jwafs_gfs_manager:release_wafs_upp_120 - edit FHR 120 - endfamily # endfamily upp - family gcip - task jwafs_gcip_f000 - trigger ../jwafs_gfs_manager:release_wafs_gcip_000 - edit FHR 000 - task jwafs_gcip_f003 - trigger ../jwafs_gfs_manager:release_wafs_gcip_003 - edit FHR 003 - endfamily # endfamily gcip - family grib - task jwafs_grib_f006 - trigger ../jwafs_gfs_manager:release_wafs_grib_006 - edit FHR 006 - task jwafs_grib_f012 - trigger ../jwafs_gfs_manager:release_wafs_grib_012 - edit FHR 012 - task jwafs_grib_f018 - trigger ../jwafs_gfs_manager:release_wafs_grib_018 - edit FHR 018 - task jwafs_grib_f024 - trigger ../jwafs_gfs_manager:release_wafs_grib_024 - edit FHR 024 - task jwafs_grib_f030 - trigger ../jwafs_gfs_manager:release_wafs_grib_030 - edit FHR 030 - task jwafs_grib_f036 - trigger ../jwafs_gfs_manager:release_wafs_grib_036 - edit FHR 036 - task jwafs_grib_f042 - trigger ../jwafs_gfs_manager:release_wafs_grib_042 - edit FHR 042 - task jwafs_grib_f048 - trigger ../jwafs_gfs_manager:release_wafs_grib_048 - edit FHR 048 - task jwafs_grib_f054 - trigger ../jwafs_gfs_manager:release_wafs_grib_054 - edit FHR 054 - task jwafs_grib_f060 - trigger ../jwafs_gfs_manager:release_wafs_grib_060 - edit FHR 060 - task jwafs_grib_f066 - trigger ../jwafs_gfs_manager:release_wafs_grib_066 - edit FHR 066 - task jwafs_grib_f072 - trigger ../jwafs_gfs_manager:release_wafs_grib_072 - edit FHR 072 - endfamily # endfamily grib - family grib2 - family 1p25 - task jwafs_grib2_1p25_f006 - trigger ../../upp/jwafs_upp_f006 == complete - edit FHR 006 - task jwafs_grib2_1p25_f009 - trigger ../../upp/jwafs_upp_f009 == complete - edit FHR 009 - task jwafs_grib2_1p25_f012 - trigger ../../upp/jwafs_upp_f012 == complete - edit FHR 012 - task jwafs_grib2_1p25_f015 - trigger ../../upp/jwafs_upp_f015 == complete - edit FHR 015 - task jwafs_grib2_1p25_f018 - trigger ../../upp/jwafs_upp_f018 == complete - edit FHR 018 - task jwafs_grib2_1p25_f021 - trigger ../../upp/jwafs_upp_f021 == complete - edit FHR 021 - task jwafs_grib2_1p25_f024 - trigger ../../upp/jwafs_upp_f024 == complete - edit FHR 024 - task jwafs_grib2_1p25_f027 - trigger ../../upp/jwafs_upp_f027 == complete - edit FHR 027 - task jwafs_grib2_1p25_f030 - trigger ../../upp/jwafs_upp_f030 == complete - edit FHR 030 - task jwafs_grib2_1p25_f033 - trigger ../../upp/jwafs_upp_f033 == complete - edit FHR 033 - task jwafs_grib2_1p25_f036 - trigger ../../upp/jwafs_upp_f036 == complete - edit FHR 036 - task jwafs_grib2_1p25_f042 - trigger ../../upp/jwafs_upp_f042 == complete - edit FHR 042 - task jwafs_grib2_1p25_f048 - trigger ../../upp/jwafs_upp_f048 == complete - edit FHR 048 - task jwafs_grib2_1p25_f054 - trigger ../../upp/jwafs_upp_f054 == complete - edit FHR 054 - task jwafs_grib2_1p25_f060 - trigger ../../upp/jwafs_upp_f060 == complete - edit FHR 060 - task jwafs_grib2_1p25_f066 - trigger ../../upp/jwafs_upp_f066 == complete - edit FHR 066 - task jwafs_grib2_1p25_f072 - trigger ../../upp/jwafs_upp_f072 == complete - edit FHR 072 - endfamily # endfamily 1p25 - family 0p25 - task jwafs_grib2_0p25_f006 - trigger ../../upp/jwafs_upp_f006 == complete - edit FHR 006 - task jwafs_grib2_0p25_f007 - trigger ../../upp/jwafs_upp_f007 == complete - edit FHR 007 - task jwafs_grib2_0p25_f008 - trigger ../../upp/jwafs_upp_f008 == complete - edit FHR 008 - task jwafs_grib2_0p25_f009 - trigger ../../upp/jwafs_upp_f009 == complete - edit FHR 009 - task jwafs_grib2_0p25_f010 - trigger ../../upp/jwafs_upp_f010 == complete - edit FHR 010 - task jwafs_grib2_0p25_f011 - trigger ../../upp/jwafs_upp_f011 == complete - edit FHR 011 - task jwafs_grib2_0p25_f012 - trigger ../../upp/jwafs_upp_f012 == complete - edit FHR 012 - task jwafs_grib2_0p25_f013 - trigger ../../upp/jwafs_upp_f013 == complete - edit FHR 013 - task jwafs_grib2_0p25_f014 - trigger ../../upp/jwafs_upp_f014 == complete - edit FHR 014 - task jwafs_grib2_0p25_f015 - trigger ../../upp/jwafs_upp_f015 == complete - edit FHR 015 - task jwafs_grib2_0p25_f016 - trigger ../../upp/jwafs_upp_f016 == complete - edit FHR 016 - task jwafs_grib2_0p25_f017 - trigger ../../upp/jwafs_upp_f017 == complete - edit FHR 017 - task jwafs_grib2_0p25_f018 - trigger ../../upp/jwafs_upp_f018 == complete - edit FHR 018 - task jwafs_grib2_0p25_f019 - trigger ../../upp/jwafs_upp_f019 == complete - edit FHR 019 - task jwafs_grib2_0p25_f020 - trigger ../../upp/jwafs_upp_f020 == complete - edit FHR 020 - task jwafs_grib2_0p25_f021 - trigger ../../upp/jwafs_upp_f021 == complete - edit FHR 021 - task jwafs_grib2_0p25_f022 - trigger ../../upp/jwafs_upp_f022 == complete - edit FHR 022 - task jwafs_grib2_0p25_f023 - trigger ../../upp/jwafs_upp_f023 == complete - edit FHR 023 - task jwafs_grib2_0p25_f024 - trigger ../../upp/jwafs_upp_f024 == complete - edit FHR 024 - task jwafs_grib2_0p25_f027 - trigger ../../upp/jwafs_upp_f027 == complete - edit FHR 027 - task jwafs_grib2_0p25_f030 - trigger ../../upp/jwafs_upp_f030 == complete - edit FHR 030 - task jwafs_grib2_0p25_f033 - trigger ../../upp/jwafs_upp_f033 == complete - edit FHR 033 - task jwafs_grib2_0p25_f036 - trigger ../../upp/jwafs_upp_f036 == complete - edit FHR 036 - task jwafs_grib2_0p25_f039 - trigger ../../upp/jwafs_upp_f039 == complete - edit FHR 039 - task jwafs_grib2_0p25_f042 - trigger ../../upp/jwafs_upp_f042 == complete - edit FHR 042 - task jwafs_grib2_0p25_f045 - trigger ../../upp/jwafs_upp_f045 == complete - edit FHR 045 - task jwafs_grib2_0p25_f048 - trigger ../../upp/jwafs_upp_f048 == complete - edit FHR 048 - task jwafs_grib2_0p25_f054 - trigger ../../upp/jwafs_upp_f054 == complete - edit FHR 054 - task jwafs_grib2_0p25_f060 - trigger ../../upp/jwafs_upp_f060 == complete - edit FHR 060 - task jwafs_grib2_0p25_f066 - trigger ../../upp/jwafs_upp_f066 == complete - edit FHR 066 - task jwafs_grib2_0p25_f072 - trigger ../../upp/jwafs_upp_f072 == complete - edit FHR 072 - task jwafs_grib2_0p25_f078 - trigger ../../upp/jwafs_upp_f078 == complete - edit FHR 078 - task jwafs_grib2_0p25_f084 - trigger ../../upp/jwafs_upp_f084 == complete - edit FHR 084 - task jwafs_grib2_0p25_f090 - trigger ../../upp/jwafs_upp_f090 == complete - edit FHR 090 - task jwafs_grib2_0p25_f096 - trigger ../../upp/jwafs_upp_f096 == complete - edit FHR 096 - task jwafs_grib2_0p25_f102 - trigger ../../upp/jwafs_upp_f102 == complete - edit FHR 102 - task jwafs_grib2_0p25_f108 - trigger ../../upp/jwafs_upp_f108 == complete - edit FHR 108 - task jwafs_grib2_0p25_f114 - trigger ../../upp/jwafs_upp_f114 == complete - edit FHR 114 - task jwafs_grib2_0p25_f120 - trigger ../../upp/jwafs_upp_f120 == complete - edit FHR 120 - endfamily # endfamily 0p25 - family blending - task jwafs_grib2_0p25_blending_f006 - trigger ../jwafs_grib2_0p25_f006 == complete - edit FHR 006 - task jwafs_grib2_0p25_blending_f007 - trigger ../jwafs_grib2_0p25_f007 == complete - edit FHR 007 - task jwafs_grib2_0p25_blending_f008 - trigger ../jwafs_grib2_0p25_f008 == complete - edit FHR 008 - task jwafs_grib2_0p25_blending_f009 - trigger ../jwafs_grib2_0p25_f009 == complete - edit FHR 009 - task jwafs_grib2_0p25_blending_f010 - trigger ../jwafs_grib2_0p25_f010 == complete - edit FHR 010 - task jwafs_grib2_0p25_blending_f011 - trigger ../jwafs_grib2_0p25_f011 == complete - edit FHR 011 - task jwafs_grib2_0p25_blending_f012 - trigger ../jwafs_grib2_0p25_f012 == complete - edit FHR 012 - task jwafs_grib2_0p25_blending_f013 - trigger ../jwafs_grib2_0p25_f013 == complete - edit FHR 013 - task jwafs_grib2_0p25_blending_f014 - trigger ../jwafs_grib2_0p25_f014 == complete - edit FHR 014 - task jwafs_grib2_0p25_blending_f015 - trigger ../jwafs_grib2_0p25_f015 == complete - edit FHR 015 - task jwafs_grib2_0p25_blending_f016 - trigger ../jwafs_grib2_0p25_f016 == complete - edit FHR 016 - task jwafs_grib2_0p25_blending_f017 - trigger ../jwafs_grib2_0p25_f017 == complete - edit FHR 017 - task jwafs_grib2_0p25_blending_f018 - trigger ../jwafs_grib2_0p25_f018 == complete - edit FHR 018 - task jwafs_grib2_0p25_blending_f019 - trigger ../jwafs_grib2_0p25_f019 == complete - edit FHR 019 - task jwafs_grib2_0p25_blending_f020 - trigger ../jwafs_grib2_0p25_f020 == complete - edit FHR 020 - task jwafs_grib2_0p25_blending_f021 - trigger ../jwafs_grib2_0p25_f021 == complete - edit FHR 021 - task jwafs_grib2_0p25_blending_f022 - trigger ../jwafs_grib2_0p25_f022 == complete - edit FHR 022 - task jwafs_grib2_0p25_blending_f023 - trigger ../jwafs_grib2_0p25_f023 == complete - edit FHR 023 - task jwafs_grib2_0p25_blending_f024 - trigger ../jwafs_grib2_0p25_f024 == complete - edit FHR 024 - task jwafs_grib2_0p25_blending_f027 - trigger ../jwafs_grib2_0p25_f027 == complete - edit FHR 027 - task jwafs_grib2_0p25_blending_f030 - trigger ../jwafs_grib2_0p25_f030 == complete - edit FHR 030 - task jwafs_grib2_0p25_blending_f033 - trigger ../jwafs_grib2_0p25_f033 == complete - edit FHR 033 - task jwafs_grib2_0p25_blending_f036 - trigger ../jwafs_grib2_0p25_f036 == complete - edit FHR 036 - task jwafs_grib2_0p25_blending_f039 - trigger ../jwafs_grib2_0p25_f039 == complete - edit FHR 039 - task jwafs_grib2_0p25_blending_f042 - trigger ../jwafs_grib2_0p25_f042 == complete - edit FHR 042 - task jwafs_grib2_0p25_blending_f045 - trigger ../jwafs_grib2_0p25_f045 == complete - edit FHR 045 - task jwafs_grib2_0p25_blending_f048 - trigger ../jwafs_grib2_0p25_f048 == complete - edit FHR 048 - endfamily # endfamily blending - endfamily # endfamily grib2 - endfamily # endfamily 00 - endfamily # endfamily wafs -endsuite # endsuite wafs_suite diff --git a/ecf/def/wafs.def.tmpl b/ecf/def/wafs.def.tmpl new file mode 100644 index 0000000..c633350 --- /dev/null +++ b/ecf/def/wafs.def.tmpl @@ -0,0 +1,544 @@ +suite wafs + edit MACHINE_SITE '@MACHINE_SITE@' + edit USER '@USER@' + edit wafs_ver '@MODELVER@' + edit PACKAGEHOME '@PACKAGEROOT@/wafs.%wafs_ver%' + edit ECF_INCLUDE '@PACKAGEROOT@/wafs.@MODELVER@/ecf/include' + edit ECF_FILES '%PACKAGEHOME%/ecf/scripts' + edit ENVIR 'prod' + edit QUEUE 'dev' + edit QUEUE_ARCH 'dev_transfer' + edit PROJENVIR 'DEV' + edit PROJ 'GFS' # TODO: Change to 'WAFS' when ready + edit PDY '20240824' + edit PARATEST 'NO' + edit SENDDBN 'NO' + edit SENDDBN_NTC 'NO' + edit SENDCANNEDDBN 'NO' + edit KEEPDATA 'NO' + edit RUN_ENVIR 'dev' + edit COMROOT '/lfs/h2/emc/ptmp/%USER%/%ENVIR%/com' + edit DATAROOT '/lfs/h2/emc/stmp/%USER%/tmp' + edit DCOMROOT '/lfs/h1/ops/dev/dcom/test' + edit OUTPUTDIR '/lfs/h2/emc/stmp/%USER%/output' + edit COMPATH '%COMROOT%/wafs' + family primary + family wafs + edit NET 'wafs' + edit RUN 'wafs' + family v7.0 + family 00 + edit CYC '00' + task jwafs_gfs_manager + #trigger /00/gfs/jgfs_forecast == active or /00/gfs/jgfs_forecast == complete + event 1 release_wafs_upp_anl + event 2 release_wafs_upp_000 + event 3 release_wafs_upp_001 + event 4 release_wafs_upp_002 + event 5 release_wafs_upp_003 + event 6 release_wafs_upp_004 + event 7 release_wafs_upp_005 + event 8 release_wafs_upp_006 + event 9 release_wafs_upp_007 + event 10 release_wafs_upp_008 + event 11 release_wafs_upp_009 + event 12 release_wafs_upp_010 + event 13 release_wafs_upp_011 + event 14 release_wafs_upp_012 + event 15 release_wafs_upp_013 + event 16 release_wafs_upp_014 + event 17 release_wafs_upp_015 + event 18 release_wafs_upp_016 + event 19 release_wafs_upp_017 + event 20 release_wafs_upp_018 + event 21 release_wafs_upp_019 + event 22 release_wafs_upp_020 + event 23 release_wafs_upp_021 + event 24 release_wafs_upp_022 + event 25 release_wafs_upp_023 + event 26 release_wafs_upp_024 + event 27 release_wafs_upp_027 + event 28 release_wafs_upp_030 + event 29 release_wafs_upp_033 + event 30 release_wafs_upp_036 + event 31 release_wafs_upp_039 + event 32 release_wafs_upp_042 + event 33 release_wafs_upp_045 + event 34 release_wafs_upp_048 + event 35 release_wafs_upp_054 + event 36 release_wafs_upp_060 + event 37 release_wafs_upp_066 + event 38 release_wafs_upp_072 + event 39 release_wafs_upp_078 + event 40 release_wafs_upp_084 + event 41 release_wafs_upp_090 + event 42 release_wafs_upp_096 + event 43 release_wafs_upp_102 + event 44 release_wafs_upp_108 + event 45 release_wafs_upp_114 + event 46 release_wafs_upp_120 + event 47 release_wafs_gcip_000 + event 48 release_wafs_gcip_003 + event 49 release_wafs_grib_006 + event 50 release_wafs_grib_012 + event 51 release_wafs_grib_018 + event 52 release_wafs_grib_024 + event 53 release_wafs_grib_030 + event 54 release_wafs_grib_036 + event 55 release_wafs_grib_042 + event 56 release_wafs_grib_048 + event 57 release_wafs_grib_054 + event 58 release_wafs_grib_060 + event 59 release_wafs_grib_066 + event 60 release_wafs_grib_072 + family upp + task jwafs_upp_anl + trigger ../jwafs_gfs_manager:release_wafs_upp_anl + edit FHR anl + task jwafs_upp_f000 + trigger ../jwafs_gfs_manager:release_wafs_upp_000 + edit FHR 000 + task jwafs_upp_f001 + trigger ../jwafs_gfs_manager:release_wafs_upp_001 + edit FHR 001 + task jwafs_upp_f002 + trigger ../jwafs_gfs_manager:release_wafs_upp_002 + edit FHR 002 + task jwafs_upp_f003 + trigger ../jwafs_gfs_manager:release_wafs_upp_003 + edit FHR 003 + task jwafs_upp_f004 + trigger ../jwafs_gfs_manager:release_wafs_upp_004 + edit FHR 004 + task jwafs_upp_f005 + trigger ../jwafs_gfs_manager:release_wafs_upp_005 + edit FHR 005 + task jwafs_upp_f006 + trigger ../jwafs_gfs_manager:release_wafs_upp_006 + edit FHR 006 + task jwafs_upp_f007 + trigger ../jwafs_gfs_manager:release_wafs_upp_007 + edit FHR 007 + task jwafs_upp_f008 + trigger ../jwafs_gfs_manager:release_wafs_upp_008 + edit FHR 008 + task jwafs_upp_f009 + trigger ../jwafs_gfs_manager:release_wafs_upp_009 + edit FHR 009 + task jwafs_upp_f010 + trigger ../jwafs_gfs_manager:release_wafs_upp_010 + edit FHR 010 + task jwafs_upp_f011 + trigger ../jwafs_gfs_manager:release_wafs_upp_011 + edit FHR 011 + task jwafs_upp_f012 + trigger ../jwafs_gfs_manager:release_wafs_upp_012 + edit FHR 012 + task jwafs_upp_f013 + trigger ../jwafs_gfs_manager:release_wafs_upp_013 + edit FHR 013 + task jwafs_upp_f014 + trigger ../jwafs_gfs_manager:release_wafs_upp_014 + edit FHR 014 + task jwafs_upp_f015 + trigger ../jwafs_gfs_manager:release_wafs_upp_015 + edit FHR 015 + task jwafs_upp_f016 + trigger ../jwafs_gfs_manager:release_wafs_upp_016 + edit FHR 016 + task jwafs_upp_f017 + trigger ../jwafs_gfs_manager:release_wafs_upp_017 + edit FHR 017 + task jwafs_upp_f018 + trigger ../jwafs_gfs_manager:release_wafs_upp_018 + edit FHR 018 + task jwafs_upp_f019 + trigger ../jwafs_gfs_manager:release_wafs_upp_019 + edit FHR 019 + task jwafs_upp_f020 + trigger ../jwafs_gfs_manager:release_wafs_upp_020 + edit FHR 020 + task jwafs_upp_f021 + trigger ../jwafs_gfs_manager:release_wafs_upp_021 + edit FHR 021 + task jwafs_upp_f022 + trigger ../jwafs_gfs_manager:release_wafs_upp_022 + edit FHR 022 + task jwafs_upp_f023 + trigger ../jwafs_gfs_manager:release_wafs_upp_023 + edit FHR 023 + task jwafs_upp_f024 + trigger ../jwafs_gfs_manager:release_wafs_upp_024 + edit FHR 024 + task jwafs_upp_f027 + trigger ../jwafs_gfs_manager:release_wafs_upp_027 + edit FHR 027 + task jwafs_upp_f030 + trigger ../jwafs_gfs_manager:release_wafs_upp_030 + edit FHR 030 + task jwafs_upp_f033 + trigger ../jwafs_gfs_manager:release_wafs_upp_033 + edit FHR 033 + task jwafs_upp_f036 + trigger ../jwafs_gfs_manager:release_wafs_upp_036 + edit FHR 036 + task jwafs_upp_f039 + trigger ../jwafs_gfs_manager:release_wafs_upp_039 + edit FHR 039 + task jwafs_upp_f042 + trigger ../jwafs_gfs_manager:release_wafs_upp_042 + edit FHR 042 + task jwafs_upp_f045 + trigger ../jwafs_gfs_manager:release_wafs_upp_045 + edit FHR 045 + task jwafs_upp_f048 + trigger ../jwafs_gfs_manager:release_wafs_upp_048 + edit FHR 048 + task jwafs_upp_f054 + trigger ../jwafs_gfs_manager:release_wafs_upp_054 + edit FHR 054 + task jwafs_upp_f060 + trigger ../jwafs_gfs_manager:release_wafs_upp_060 + edit FHR 060 + task jwafs_upp_f066 + trigger ../jwafs_gfs_manager:release_wafs_upp_066 + edit FHR 066 + task jwafs_upp_f072 + trigger ../jwafs_gfs_manager:release_wafs_upp_072 + edit FHR 072 + task jwafs_upp_f078 + trigger ../jwafs_gfs_manager:release_wafs_upp_078 + edit FHR 078 + task jwafs_upp_f084 + trigger ../jwafs_gfs_manager:release_wafs_upp_084 + edit FHR 084 + task jwafs_upp_f090 + trigger ../jwafs_gfs_manager:release_wafs_upp_090 + edit FHR 090 + task jwafs_upp_f096 + trigger ../jwafs_gfs_manager:release_wafs_upp_096 + edit FHR 096 + task jwafs_upp_f102 + trigger ../jwafs_gfs_manager:release_wafs_upp_102 + edit FHR 102 + task jwafs_upp_f108 + trigger ../jwafs_gfs_manager:release_wafs_upp_108 + edit FHR 108 + task jwafs_upp_f114 + trigger ../jwafs_gfs_manager:release_wafs_upp_114 + edit FHR 114 + task jwafs_upp_f120 + trigger ../jwafs_gfs_manager:release_wafs_upp_120 + edit FHR 120 + endfamily # endfamily upp + family gcip + task jwafs_gcip_f000 + trigger ../jwafs_gfs_manager:release_wafs_gcip_000 + edit FHR 000 + task jwafs_gcip_f003 + trigger ../jwafs_gfs_manager:release_wafs_gcip_003 + edit FHR 003 + endfamily # endfamily gcip + family grib + task jwafs_grib_f006 + trigger ../jwafs_gfs_manager:release_wafs_grib_006 + edit FHR 06 + task jwafs_grib_f012 + trigger ../jwafs_gfs_manager:release_wafs_grib_012 + edit FHR 12 + task jwafs_grib_f018 + trigger ../jwafs_gfs_manager:release_wafs_grib_018 + edit FHR 18 + task jwafs_grib_f024 + trigger ../jwafs_gfs_manager:release_wafs_grib_024 + edit FHR 24 + task jwafs_grib_f030 + trigger ../jwafs_gfs_manager:release_wafs_grib_030 + edit FHR 30 + task jwafs_grib_f036 + trigger ../jwafs_gfs_manager:release_wafs_grib_036 + edit FHR 36 + task jwafs_grib_f042 + trigger ../jwafs_gfs_manager:release_wafs_grib_042 + edit FHR 42 + task jwafs_grib_f048 + trigger ../jwafs_gfs_manager:release_wafs_grib_048 + edit FHR 48 + task jwafs_grib_f054 + trigger ../jwafs_gfs_manager:release_wafs_grib_054 + edit FHR 54 + task jwafs_grib_f060 + trigger ../jwafs_gfs_manager:release_wafs_grib_060 + edit FHR 60 + task jwafs_grib_f066 + trigger ../jwafs_gfs_manager:release_wafs_grib_066 + edit FHR 66 + task jwafs_grib_f072 + trigger ../jwafs_gfs_manager:release_wafs_grib_072 + edit FHR 72 + endfamily # endfamily grib + family grib2 + family 1p25 + task jwafs_grib2_1p25_f000 + trigger ../../upp/jwafs_upp_f000 == complete + edit FHR 000 + task jwafs_grib2_1p25_f006 + trigger ../../upp/jwafs_upp_f006 == complete + edit FHR 006 + task jwafs_grib2_1p25_f009 + trigger ../../upp/jwafs_upp_f009 == complete + edit FHR 009 + task jwafs_grib2_1p25_f012 + trigger ../../upp/jwafs_upp_f012 == complete + edit FHR 012 + task jwafs_grib2_1p25_f015 + trigger ../../upp/jwafs_upp_f015 == complete + edit FHR 015 + task jwafs_grib2_1p25_f018 + trigger ../../upp/jwafs_upp_f018 == complete + edit FHR 018 + task jwafs_grib2_1p25_f021 + trigger ../../upp/jwafs_upp_f021 == complete + edit FHR 021 + task jwafs_grib2_1p25_f024 + trigger ../../upp/jwafs_upp_f024 == complete + edit FHR 024 + task jwafs_grib2_1p25_f027 + trigger ../../upp/jwafs_upp_f027 == complete + edit FHR 027 + task jwafs_grib2_1p25_f030 + trigger ../../upp/jwafs_upp_f030 == complete + edit FHR 030 + task jwafs_grib2_1p25_f033 + trigger ../../upp/jwafs_upp_f033 == complete + edit FHR 033 + task jwafs_grib2_1p25_f036 + trigger ../../upp/jwafs_upp_f036 == complete + edit FHR 036 + task jwafs_grib2_1p25_f042 + trigger ../../upp/jwafs_upp_f042 == complete + edit FHR 042 + task jwafs_grib2_1p25_f048 + trigger ../../upp/jwafs_upp_f048 == complete + edit FHR 048 + task jwafs_grib2_1p25_f054 + trigger ../../upp/jwafs_upp_f054 == complete + edit FHR 054 + task jwafs_grib2_1p25_f060 + trigger ../../upp/jwafs_upp_f060 == complete + edit FHR 060 + task jwafs_grib2_1p25_f066 + trigger ../../upp/jwafs_upp_f066 == complete + edit FHR 066 + task jwafs_grib2_1p25_f072 + trigger ../../upp/jwafs_upp_f072 == complete + edit FHR 072 + endfamily # endfamily 1p25 + family 0p25 + task jwafs_grib2_0p25_f006 + trigger ../../upp/jwafs_upp_f006 == complete + edit FHR 006 + task jwafs_grib2_0p25_f007 + trigger ../../upp/jwafs_upp_f007 == complete + edit FHR 007 + task jwafs_grib2_0p25_f008 + trigger ../../upp/jwafs_upp_f008 == complete + edit FHR 008 + task jwafs_grib2_0p25_f009 + trigger ../../upp/jwafs_upp_f009 == complete + edit FHR 009 + task jwafs_grib2_0p25_f010 + trigger ../../upp/jwafs_upp_f010 == complete + edit FHR 010 + task jwafs_grib2_0p25_f011 + trigger ../../upp/jwafs_upp_f011 == complete + edit FHR 011 + task jwafs_grib2_0p25_f012 + trigger ../../upp/jwafs_upp_f012 == complete + edit FHR 012 + task jwafs_grib2_0p25_f013 + trigger ../../upp/jwafs_upp_f013 == complete + edit FHR 013 + task jwafs_grib2_0p25_f014 + trigger ../../upp/jwafs_upp_f014 == complete + edit FHR 014 + task jwafs_grib2_0p25_f015 + trigger ../../upp/jwafs_upp_f015 == complete + edit FHR 015 + task jwafs_grib2_0p25_f016 + trigger ../../upp/jwafs_upp_f016 == complete + edit FHR 016 + task jwafs_grib2_0p25_f017 + trigger ../../upp/jwafs_upp_f017 == complete + edit FHR 017 + task jwafs_grib2_0p25_f018 + trigger ../../upp/jwafs_upp_f018 == complete + edit FHR 018 + task jwafs_grib2_0p25_f019 + trigger ../../upp/jwafs_upp_f019 == complete + edit FHR 019 + task jwafs_grib2_0p25_f020 + trigger ../../upp/jwafs_upp_f020 == complete + edit FHR 020 + task jwafs_grib2_0p25_f021 + trigger ../../upp/jwafs_upp_f021 == complete + edit FHR 021 + task jwafs_grib2_0p25_f022 + trigger ../../upp/jwafs_upp_f022 == complete + edit FHR 022 + task jwafs_grib2_0p25_f023 + trigger ../../upp/jwafs_upp_f023 == complete + edit FHR 023 + task jwafs_grib2_0p25_f024 + trigger ../../upp/jwafs_upp_f024 == complete + edit FHR 024 + task jwafs_grib2_0p25_f027 + trigger ../../upp/jwafs_upp_f027 == complete + edit FHR 027 + task jwafs_grib2_0p25_f030 + trigger ../../upp/jwafs_upp_f030 == complete + edit FHR 030 + task jwafs_grib2_0p25_f033 + trigger ../../upp/jwafs_upp_f033 == complete + edit FHR 033 + task jwafs_grib2_0p25_f036 + trigger ../../upp/jwafs_upp_f036 == complete + edit FHR 036 + task jwafs_grib2_0p25_f039 + trigger ../../upp/jwafs_upp_f039 == complete + edit FHR 039 + task jwafs_grib2_0p25_f042 + trigger ../../upp/jwafs_upp_f042 == complete + edit FHR 042 + task jwafs_grib2_0p25_f045 + trigger ../../upp/jwafs_upp_f045 == complete + edit FHR 045 + task jwafs_grib2_0p25_f048 + trigger ../../upp/jwafs_upp_f048 == complete + edit FHR 048 + task jwafs_grib2_0p25_f054 + trigger ../../upp/jwafs_upp_f054 == complete + edit FHR 054 + task jwafs_grib2_0p25_f060 + trigger ../../upp/jwafs_upp_f060 == complete + edit FHR 060 + task jwafs_grib2_0p25_f066 + trigger ../../upp/jwafs_upp_f066 == complete + edit FHR 066 + task jwafs_grib2_0p25_f072 + trigger ../../upp/jwafs_upp_f072 == complete + edit FHR 072 + task jwafs_grib2_0p25_f078 + trigger ../../upp/jwafs_upp_f078 == complete + edit FHR 078 + task jwafs_grib2_0p25_f084 + trigger ../../upp/jwafs_upp_f084 == complete + edit FHR 084 + task jwafs_grib2_0p25_f090 + trigger ../../upp/jwafs_upp_f090 == complete + edit FHR 090 + task jwafs_grib2_0p25_f096 + trigger ../../upp/jwafs_upp_f096 == complete + edit FHR 096 + task jwafs_grib2_0p25_f102 + trigger ../../upp/jwafs_upp_f102 == complete + edit FHR 102 + task jwafs_grib2_0p25_f108 + trigger ../../upp/jwafs_upp_f108 == complete + edit FHR 108 + task jwafs_grib2_0p25_f114 + trigger ../../upp/jwafs_upp_f114 == complete + edit FHR 114 + task jwafs_grib2_0p25_f120 + trigger ../../upp/jwafs_upp_f120 == complete + edit FHR 120 + family blending + task jwafs_grib2_0p25_blending_f006 + trigger ../jwafs_grib2_0p25_f006 == complete + edit FHR 006 + task jwafs_grib2_0p25_blending_f007 + trigger ../jwafs_grib2_0p25_f007 == complete + edit FHR 007 + task jwafs_grib2_0p25_blending_f008 + trigger ../jwafs_grib2_0p25_f008 == complete + edit FHR 008 + task jwafs_grib2_0p25_blending_f009 + trigger ../jwafs_grib2_0p25_f009 == complete + edit FHR 009 + task jwafs_grib2_0p25_blending_f010 + trigger ../jwafs_grib2_0p25_f010 == complete + edit FHR 010 + task jwafs_grib2_0p25_blending_f011 + trigger ../jwafs_grib2_0p25_f011 == complete + edit FHR 011 + task jwafs_grib2_0p25_blending_f012 + trigger ../jwafs_grib2_0p25_f012 == complete + edit FHR 012 + task jwafs_grib2_0p25_blending_f013 + trigger ../jwafs_grib2_0p25_f013 == complete + edit FHR 013 + task jwafs_grib2_0p25_blending_f014 + trigger ../jwafs_grib2_0p25_f014 == complete + edit FHR 014 + task jwafs_grib2_0p25_blending_f015 + trigger ../jwafs_grib2_0p25_f015 == complete + edit FHR 015 + task jwafs_grib2_0p25_blending_f016 + trigger ../jwafs_grib2_0p25_f016 == complete + edit FHR 016 + task jwafs_grib2_0p25_blending_f017 + trigger ../jwafs_grib2_0p25_f017 == complete + edit FHR 017 + task jwafs_grib2_0p25_blending_f018 + trigger ../jwafs_grib2_0p25_f018 == complete + edit FHR 018 + task jwafs_grib2_0p25_blending_f019 + trigger ../jwafs_grib2_0p25_f019 == complete + edit FHR 019 + task jwafs_grib2_0p25_blending_f020 + trigger ../jwafs_grib2_0p25_f020 == complete + edit FHR 020 + task jwafs_grib2_0p25_blending_f021 + trigger ../jwafs_grib2_0p25_f021 == complete + edit FHR 021 + task jwafs_grib2_0p25_blending_f022 + trigger ../jwafs_grib2_0p25_f022 == complete + edit FHR 022 + task jwafs_grib2_0p25_blending_f023 + trigger ../jwafs_grib2_0p25_f023 == complete + edit FHR 023 + task jwafs_grib2_0p25_blending_f024 + trigger ../jwafs_grib2_0p25_f024 == complete + edit FHR 024 + task jwafs_grib2_0p25_blending_f027 + trigger ../jwafs_grib2_0p25_f027 == complete + edit FHR 027 + task jwafs_grib2_0p25_blending_f030 + trigger ../jwafs_grib2_0p25_f030 == complete + edit FHR 030 + task jwafs_grib2_0p25_blending_f033 + trigger ../jwafs_grib2_0p25_f033 == complete + edit FHR 033 + task jwafs_grib2_0p25_blending_f036 + trigger ../jwafs_grib2_0p25_f036 == complete + edit FHR 036 + task jwafs_grib2_0p25_blending_f039 + trigger ../jwafs_grib2_0p25_f039 == complete + edit FHR 039 + task jwafs_grib2_0p25_blending_f042 + trigger ../jwafs_grib2_0p25_f042 == complete + edit FHR 042 + task jwafs_grib2_0p25_blending_f045 + trigger ../jwafs_grib2_0p25_f045 == complete + edit FHR 045 + task jwafs_grib2_0p25_blending_f048 + trigger ../jwafs_grib2_0p25_f048 == complete + edit FHR 048 + endfamily # endfamily blending + endfamily # endfamily 0p25 + endfamily # endfamily grib2 + endfamily # endfamily 00 + endfamily # endfamily v7.0 + endfamily # endfamily wafs + endfamily # endfamily primary +endsuite # endsuite wafs diff --git a/ecf/include/envir-p1.h b/ecf/include/envir-p1.h index bc741b6..814ac6b 100644 --- a/ecf/include/envir-p1.h +++ b/ecf/include/envir-p1.h @@ -1,6 +1,10 @@ # envir-p1.h export job=${job:-$PBS_JOBNAME} export jobid=${jobid:-$job.$PBS_JOBID} +pwd + +if [ -n "%SENDCANNEDDBN:%" ]; then export SENDCANNEDDBN=${SENDCANNEDDBN:-%SENDCANNEDDBN:%}; fi +export SENDCANNEDDBN=${SENDCANNEDDBN:-"NO"} if [[ "$envir" == prod && "$SENDDBN" == YES ]]; then export eval=%EVAL:NO% @@ -8,15 +12,15 @@ if [[ "$envir" == prod && "$SENDDBN" == YES ]]; then else export SIPHONROOT=/lfs/h1/ops/prod/dbnet_siphon fi if [ "$PARATEST" == YES ]; then export SIPHONROOT=${UTILROOT}/fakedbn; export NODBNFCHK=YES; fi +elif [[ "$envir" == para && "$SENDCANNEDDBN" == YES ]]; then + export SIPHONROOT=${UTILROOT}/para_dbn + export NODBNFCHK=YES else export SIPHONROOT=${UTILROOT}/fakedbn fi export DBNROOT=$SIPHONROOT +export TMPDIR=$DATAROOT +export SITE=$(cat /etc/cluster_name) if [[ ! " prod para test " =~ " ${envir} " && " ops.prod ops.para " =~ " $(whoami) " ]]; then err_exit "ENVIR must be prod, para, or test [envir-p1.h]"; fi - -if [ -n "%PDY:%" ]; then - export PDY=${PDY:-%PDY:%} - export CDATE=${PDY}%CYC:% -fi diff --git a/ecf/include/head.h b/ecf/include/head.h index 487c750..9446251 100644 --- a/ecf/include/head.h +++ b/ecf/include/head.h @@ -36,9 +36,11 @@ export SENDECF=${SENDECF:-YES} export SENDCOM=${SENDCOM:-YES} if [ -n "%PDY:%" ]; then export PDY=${PDY:-%PDY:%}; fi if [ -n "%PARATEST:%" ]; then export PARATEST=${PARATEST:-%PARATEST:%}; fi +export PARATEST=${PARATEST:-"NO"} if [ -n "%COMPATH:%" ]; then export COMPATH=${COMPATH:-%COMPATH:%}; fi if [ -n "%MAILTO:%" ]; then export MAILTO=${MAILTO:-%MAILTO:%}; fi if [ -n "%DBNLOG:%" ]; then export DBNLOG=${DBNLOG:-%DBNLOG:%}; fi +if [ -n "%DATAFS:%" ]; then export DATAFS=${DATAFS:-%DATAFS:%}; fi export KEEPDATA=${KEEPDATA:-%KEEPDATA:NO%} export SENDDBN=${SENDDBN:-%SENDDBN:YES%} export SENDDBN_NTC=${SENDDBN_NTC:-%SENDDBN_NTC:YES%} @@ -53,6 +55,12 @@ if [ -d /apps/ops/prod ]; then # On WCOSS2 echo "ecflow module location: $(module display ecflow |& head -2 | tail -1 | sed 's/:$//')" set -x . ${ECF_ROOT}/versions/run.ver + if [[ ! " ops.prod ops.para " =~ " $(whoami) " ]]; then + echo "Allow over-riding defaults for developers" + if [ -n "%COMROOT:%" ]; then export COMROOT=${COMROOT:-%COMROOT:%}; fi + if [ -n "%DATAROOT:%" ]; then export DATAROOT=${DATAROOT:-%DATAROOT:%}; fi + if [ -n "%DCOMROOT:%" ]; then export DCOMROOT=${DCOMROOT:-%DCOMROOT:%}; fi + fi set +x module load prod_util/${prod_util_ver} module load prod_envir/${prod_envir_ver} @@ -63,15 +71,15 @@ fi timeout 300 ecflow_client --init=${ECF_RID} -if [[ " ops.prod ops.para " =~ " $(whoami) " ]]; then - POST_OUT=${POST_OUT:-/lfs/h1/ops/%ENVIR%/tmp/posts/ecflow_post_in.${ECF_RID}} - echo 'export ECF_NAME=${ECF_NAME}' > $POST_OUT - echo 'export ECF_HOST=${ECF_HOST}' >> $POST_OUT - echo 'export ECF_PORT=${ECF_PORT}' >> $POST_OUT - echo 'export ECF_PASS=${ECF_PASS}' >> $POST_OUT - echo 'export ECF_TRYNO=${ECF_TRYNO}' >> $POST_OUT - echo 'export ECF_RID=${ECF_RID}' >> $POST_OUT -fi +#if [[ " ops.prod ops.para " =~ " $(whoami) " ]]; then +# POST_OUT=${POST_OUT:-/lfs/h1/ops/%ENVIR%/tmp/posts/ecflow_post_in.${ECF_RID}} +# echo 'export ECF_NAME=${ECF_NAME}' > $POST_OUT +# echo 'export ECF_HOST=${ECF_HOST}' >> $POST_OUT +# echo 'export ECF_PORT=${ECF_PORT}' >> $POST_OUT +# echo 'export ECF_PASS=${ECF_PASS}' >> $POST_OUT +# echo 'export ECF_TRYNO=${ECF_TRYNO}' >> $POST_OUT +# echo 'export ECF_RID=${ECF_RID}' >> $POST_OUT +#fi # Define error handler ERROR() { @@ -83,11 +91,10 @@ ERROR() { fi ecflow_client --abort="$msg" echo $msg - if [[ " ops.prod ops.para " =~ " $(whoami) " ]]; then - echo "# Trap Caught" >>$POST_OUT - fi +# if [[ " ops.prod ops.para " =~ " $(whoami) " ]]; then +# echo "# Trap Caught" >>$POST_OUT +# fi trap $1; exit $1 } # Trap all error and exit signals trap 'ERROR $?' ERR EXIT - diff --git a/ecf/scripts/.gitignore b/ecf/scripts/.gitignore deleted file mode 100644 index fda1a95..0000000 --- a/ecf/scripts/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Ignore these -upp/jwafs_upp_f*.ecf -upp/jwafs_upp_anl.ecf -grib2/1p25/jwafs_grib2_1p25_f*.ecf -grib2/0p25/jwafs_grib2_0p25_f*.ecf -grib2/0p25/blending/jwafs_grib2_0p25_blending_f*.ecf -gcip/jwafs_gcip_f*.ecf -grib/jwafs_grib_f*.ecf diff --git a/ecf/scripts/gcip/jwafs_gcip_master.ecf b/ecf/scripts/gcip/jwafs_gcip_master.ecf index 0da662b..e674ba6 100755 --- a/ecf/scripts/gcip/jwafs_gcip_master.ecf +++ b/ecf/scripts/gcip/jwafs_gcip_master.ecf @@ -1,13 +1,14 @@ #PBS -S /bin/bash -#PBS -N %RUN%_gcip_%FHR%_%CYC% +#PBS -N %RUN%_gcip_f%FHR%_%CYC% #PBS -j oe #PBS -q %QUEUE% #PBS -A %PROJ%-%PROJENVIR% -#PBS -l walltime=00:15:00 +#PBS -l walltime=00:10:00 #PBS -l select=1:ncpus=1:mem=25GB #PBS -l debug=true -model=wafs +export model=wafs + %include %include @@ -21,6 +22,7 @@ export fhr=%FHR% ############################################################ # Load modules ############################################################ +set +x module load PrgEnv-intel/${PrgEnv_intel_ver} module load craype/${craype_ver} module load intel/${intel_ver} @@ -32,6 +34,7 @@ module load bufr_dump/${bufr_dump_ver} module load wgrib2/${wgrib2_ver} module list +set -x ############################################################# # WCOSS environment settings diff --git a/ecf/scripts/grib/jwafs_grib_master.ecf b/ecf/scripts/grib/jwafs_grib_master.ecf index 898ec3f..3e25a1b 100755 --- a/ecf/scripts/grib/jwafs_grib_master.ecf +++ b/ecf/scripts/grib/jwafs_grib_master.ecf @@ -1,5 +1,5 @@ #PBS -S /bin/bash -#PBS -N %RUN%_grib_%FHR%_%CYC% +#PBS -N %RUN%_grib_f%FHR%_%CYC% #PBS -j oe #PBS -q %QUEUE% #PBS -A %PROJ%-%PROJENVIR% @@ -7,7 +7,8 @@ #PBS -l select=1:ncpus=1 #PBS -l debug=true -model=wafs +export model=wafs + %include %include @@ -21,6 +22,7 @@ export fhr=%FHR% ############################################################ # Load modules ############################################################ +set +x module load PrgEnv-intel/${PrgEnv_intel_ver} module load craype/${craype_ver} module load intel/${intel_ver} @@ -29,6 +31,7 @@ module load grib_util/$grib_util_ver module load wgrib2/${wgrib2_ver} module list +set -x ############################################################# # WCOSS environment settings diff --git a/ecf/scripts/grib2/0p25/blending/jwafs_grib2_0p25_blending_master.ecf b/ecf/scripts/grib2/0p25/blending/jwafs_grib2_0p25_blending_master.ecf index 04e77a3..a01780a 100755 --- a/ecf/scripts/grib2/0p25/blending/jwafs_grib2_0p25_blending_master.ecf +++ b/ecf/scripts/grib2/0p25/blending/jwafs_grib2_0p25_blending_master.ecf @@ -1,13 +1,14 @@ #PBS -S /bin/bash -#PBS -N %RUN%_grib2_0p25_blending_%FHR%_%CYC% +#PBS -N %RUN%_grib2_0p25_blending_f%FHR%_%CYC% #PBS -j oe #PBS -q %QUEUE% #PBS -A %PROJ%-%PROJENVIR% -#PBS -l walltime=00:15:00 -#PBS -l select=1:ncpus=1:mem=15GB +#PBS -l walltime=00:25:00 +#PBS -l select=1:ncpus=1 #PBS -l debug=true -model=wafs +export model=wafs + %include %include @@ -21,6 +22,7 @@ export fhr=%FHR% ############################################################ # Load modules ############################################################ +set +x module load PrgEnv-intel/${PrgEnv_intel_ver} module load craype/${craype_ver} module load intel/${intel_ver} @@ -29,6 +31,7 @@ module load grib_util/${grib_util_ver} module load util_shared/${util_shared_ver} module list +set -x ############################################################# # WCOSS environment settings diff --git a/ecf/scripts/grib2/0p25/jwafs_grib2_0p25_master.ecf b/ecf/scripts/grib2/0p25/jwafs_grib2_0p25_master.ecf index 24e7ec5..8dc3587 100755 --- a/ecf/scripts/grib2/0p25/jwafs_grib2_0p25_master.ecf +++ b/ecf/scripts/grib2/0p25/jwafs_grib2_0p25_master.ecf @@ -1,13 +1,14 @@ #PBS -S /bin/bash -#PBS -N %RUN%_grib2_0p25_%FHR%_%CYC% +#PBS -N %RUN%_grib2_0p25_f%FHR%_%CYC% #PBS -j oe #PBS -q %QUEUE% #PBS -A %PROJ%-%PROJENVIR% -#PBS -l walltime=00:15:00 -#PBS -l select=1:ncpus=1:mem=6GB +#PBS -l walltime=00:05:00 +#PBS -l select=1:ncpus=1 #PBS -l debug=true -model=wafs +export model=wafs + %include %include @@ -21,6 +22,7 @@ export fhr=%FHR% ############################################################ # Load modules ############################################################ +set +x module load PrgEnv-intel/${PrgEnv_intel_ver} module load craype/${craype_ver} module load intel/${intel_ver} @@ -30,6 +32,7 @@ module load grib_util/${grib_util_ver} module load wgrib2/${wgrib2_ver} module list +set -x ############################################################# # WCOSS environment settings diff --git a/ecf/scripts/grib2/1p25/jwafs_grib2_1p25_master.ecf b/ecf/scripts/grib2/1p25/jwafs_grib2_1p25_master.ecf index db34a23..54b90c0 100755 --- a/ecf/scripts/grib2/1p25/jwafs_grib2_1p25_master.ecf +++ b/ecf/scripts/grib2/1p25/jwafs_grib2_1p25_master.ecf @@ -1,13 +1,14 @@ #PBS -S /bin/bash -#PBS -N %RUN%_grib2_1p25_%FHR%_%CYC% +#PBS -N %RUN%_grib2_1p25_f%FHR%_%CYC% #PBS -j oe #PBS -q %QUEUE% #PBS -A %PROJ%-%PROJENVIR% -#PBS -l walltime=00:15:00 -#PBS -l select=1:ncpus=1:mem=5GB +#PBS -l walltime=00:05:00 +#PBS -l select=1:ncpus=1 #PBS -l debug=true -model=wafs +export model=wafs + %include %include @@ -21,6 +22,7 @@ export fhr=%FHR% ############################################################ # Load modules ############################################################ +set +x module load PrgEnv-intel/${PrgEnv_intel_ver} module load craype/${craype_ver} module load intel/${intel_ver} @@ -30,6 +32,7 @@ module load grib_util/${grib_util_ver} module load wgrib2/${wgrib2_ver} module list +set -x ############################################################# # WCOSS environment settings diff --git a/ecf/scripts/jwafs_gfs_manager.ecf b/ecf/scripts/jwafs_gfs_manager.ecf index f70b7be..2939ac0 100755 --- a/ecf/scripts/jwafs_gfs_manager.ecf +++ b/ecf/scripts/jwafs_gfs_manager.ecf @@ -7,7 +7,8 @@ #PBS -l select=1:ncpus=1 #PBS -l debug=true -model=wafs +export model=wafs + %include %include @@ -20,8 +21,9 @@ export cyc=%CYC% ############################################################ # Load modules ############################################################ - +set +x module list +set -x ############################################################ # CALL executable job script diff --git a/ecf/scripts/upp/jwafs_upp_master.ecf b/ecf/scripts/upp/jwafs_upp_master.ecf index 92c10ea..b249224 100755 --- a/ecf/scripts/upp/jwafs_upp_master.ecf +++ b/ecf/scripts/upp/jwafs_upp_master.ecf @@ -1,14 +1,15 @@ #PBS -S /bin/bash -#PBS -N %RUN%_upp_%FHR%_%CYC% +#PBS -N %RUN%_upp_f%FHR%_%CYC% #PBS -j oe #PBS -q %QUEUE% #PBS -A %PROJ%-%PROJENVIR% -#PBS -l walltime=00:20:00 +#PBS -l walltime=00:10:00 #PBS -l select=1:mpiprocs=126:ompthreads=1:ncpus=126 #PBS -l place=vscatter:exclhost #PBS -l debug=true -model=wafs +export model=wafs + %include %include @@ -22,6 +23,7 @@ export fhr=%FHR% ############################################################ # Load modules ############################################################ +set +x module load PrgEnv-intel/${PrgEnv_intel_ver} module load craype/${craype_ver} module load intel/${intel_ver} @@ -36,6 +38,7 @@ module load grib_util/${grib_util_ver} module load wgrib2/${wgrib2_ver} module list +set -x ############################################################# # WCOSS environment settings diff --git a/ecf/setup_ecf_links.sh b/ecf/setup_ecf_links.sh index c4c963e..0990752 100755 --- a/ecf/setup_ecf_links.sh +++ b/ecf/setup_ecf_links.sh @@ -10,9 +10,10 @@ ECF_DIR="${DIR_ROOT}/ecf" # Function that loops over forecast hours and # creates link between the master and target function link_master_to_fhr() { - tmpl=$1 # Name of the master template - fhrs=$2 # Array of forecast hours - clean_only=${3:-"NO"} # Clean only flag to remove existing links + local tmpl=$1 # Name of the master template + local fhrs=$2 # Array of forecast hours + local clean_only=${3:-"NO"} # Clean only flag to remove existing links + local fhr3 master target for fhr in ${fhrs[@]}; do fhr3=$(printf %03d $fhr) master=${tmpl}_master.ecf diff --git a/sorc/build_all.sh b/sorc/build_all.sh index e46096b..9fa5ca3 100755 --- a/sorc/build_all.sh +++ b/sorc/build_all.sh @@ -14,14 +14,6 @@ if [[ ! -d "${DIR_ROOT}/exec" ]]; then mkdir -p "${DIR_ROOT}/exec" fi -# upp_v8.3.0: copy GTG code to UPP -cd "${DIR_ROOT}/sorc/upp.fd" -cp sorc/post_gtg.fd/*f90 sorc/ncep_post.fd/. -cp sorc/post_gtg.fd/gtg.config.gfs parm/gtg.config.gfs - -# cp UPP parm/ to the main vertical structure -cp -r parm "${DIR_ROOT}/parm/upp" - # Begin to compile cd "${DIR_ROOT}/sorc" diff --git a/sorc/build_upp.sh b/sorc/build_upp.sh index 94ac476..419196b 100755 --- a/sorc/build_upp.sh +++ b/sorc/build_upp.sh @@ -10,6 +10,16 @@ if [[ ! -d "${DIR_ROOT}/exec" ]]; then mkdir -p "${DIR_ROOT}/exec" fi +# upp_v8.3.0: +cd "${DIR_ROOT}/sorc/upp.fd" + +# copy UPP parm/ to the main vertical structure +cp -r parm "${DIR_ROOT}/parm/upp" + +# copy GTG code to UPP +cp sorc/post_gtg.fd/*f90 sorc/ncep_post.fd/. +cp sorc/post_gtg.fd/gtg.config.gfs parm/gtg.config.gfs + # Build upp executable file cd "${DIR_ROOT}/sorc/upp.fd/sorc" ./build_ncep_post.sh diff --git a/versions/run.ver b/versions/run.ver index 855aea7..6685f91 100644 --- a/versions/run.ver +++ b/versions/run.ver @@ -7,11 +7,6 @@ export intel_ver=19.1.3.304 export PrgEnvintel_ver=8.1.0 export craype_ver=2.7.10 -# To access mpiexec -export craypals_ver=1.1.3 -# For MPMD -export cfp_ver=2.0.4 - export libjpeg_ver=9c export prod_util_ver=2.0.14 export prod_envir_ver=2.0.6 @@ -27,6 +22,6 @@ export bufr_dump_ver=1.1.2 # For UPP export hdf5_ver=1.10.6 export netcdf_ver=4.7.4 -# export crtm_ver=2.4.0.1 # WAFS doesn't need CRTM -export craympich_ver=8.1.9 export g2tmpl_ver=1.9.1 +export craympich_ver=8.1.9 +export craypals_ver=1.1.3