diff --git a/Jenkinsfile b/ci/Jenkinsfile
similarity index 79%
rename from Jenkinsfile
rename to ci/Jenkinsfile
index be62a20512..52175c2b50 100644
--- a/Jenkinsfile
+++ b/ci/Jenkinsfile
@@ -1,8 +1,8 @@
def Machine = 'none'
def machine = 'none'
def HOME = 'none'
-def localworkspace = 'none'
-def commonworkspace = 'none'
+def caseList = ''
+def custom_workspace = [hera: '/scratch1/NCEPDEV/global/CI', orion: '/work2/noaa/stmp/CI/ORION', hercules: '/work2/noaa/stmp/CI/HERCULES']
pipeline {
agent { label 'built-in' }
@@ -20,7 +20,6 @@ pipeline {
agent { label 'built-in' }
steps {
script {
- localworkspace = env.WORKSPACE
machine = 'none'
for (label in pullRequest.labels) {
echo "Label: ${label}"
@@ -42,14 +41,16 @@ pipeline {
agent { label "${machine}-emc" }
steps {
script {
- properties([parameters([[$class: 'NodeParameterDefinition', allowedSlaves: ['built-in', 'Hera-EMC', 'Orion-EMC'], defaultSlaves: ['built-in'], name: '', nodeEligibility: [$class: 'AllNodeEligibility'], triggerIfResult: 'allCases']])])
- HOME = "${WORKSPACE}/TESTDIR"
- commonworkspace = "${WORKSPACE}"
- sh(script: "mkdir -p ${HOME}/RUNTESTS")
- pullRequest.addLabel("CI-${Machine}-Building")
- if (pullRequest.labels.any { value -> value.matches("CI-${Machine}-Ready") }) {
- pullRequest.removeLabel("CI-${Machine}-Ready")
+ ws("${custom_workspace[machine]}/${env.CHANGE_ID}") {
+ properties([parameters([[$class: 'NodeParameterDefinition', allowedSlaves: ['built-in', 'Hera-EMC', 'Orion-EMC'], defaultSlaves: ['built-in'], name: '', nodeEligibility: [$class: 'AllNodeEligibility'], triggerIfResult: 'allCases']])])
+ HOME = "${WORKSPACE}"
+ sh(script: "mkdir -p ${HOME}/RUNTESTS;rm -Rf ${HOME}/RUNTESTS/error.logs")
+ pullRequest.addLabel("CI-${Machine}-Building")
+ if (pullRequest.labels.any { value -> value.matches("CI-${Machine}-Ready") }) {
+ pullRequest.removeLabel("CI-${Machine}-Ready")
+ }
}
+ pullRequest.comment("Building and running on ${Machine} in directory ${HOME}")
}
}
}
@@ -73,17 +74,15 @@ pipeline {
def HOMEgfs = "${HOME}/${system}" // local HOMEgfs is used to build the system on per system basis under the common workspace HOME
sh(script: "mkdir -p ${HOMEgfs}")
ws(HOMEgfs) {
- env.MACHINE_ID = machine // MACHINE_ID is used in the build scripts to determine the machine and is added to the shell environment
if (fileExists("${HOMEgfs}/sorc/BUILT_semaphor")) { // if the system is already built, skip the build in the case of re-runs
sh(script: "cat ${HOMEgfs}/sorc/BUILT_semaphor", returnStdout: true).trim() // TODO: and user configurable control to manage build semphore
pullRequest.comment("Cloned PR already built (or build skipped) on ${machine} in directory ${HOMEgfs}
Still doing a checkout to get the latest changes")
- sh(script: 'source workflow/gw_setup.sh; git pull --recurse-submodules')
+ checkout scm
dir('sorc') {
sh(script: './link_workflow.sh')
}
} else {
checkout scm
- sh(script: 'source workflow/gw_setup.sh;which git;git --version;git submodule update --init --recursive')
def builds_file = readYaml file: 'ci/cases/yamls/build.yaml'
def build_args_list = builds_file['builds']
def build_args = build_args_list[system].join(' ').trim().replaceAll('null', '')
@@ -99,6 +98,9 @@ pipeline {
}
pullRequest.addLabel("CI-${Machine}-Running")
}
+ if (system == 'gfs') {
+ caseList = sh(script: "${HOMEgfs}/ci/scripts/utils/get_host_case_list.py ${machine}", returnStdout: true).trim().split()
+ }
}
}
}
@@ -114,11 +116,15 @@ pipeline {
axis {
name 'Case'
// TODO add dynamic list of cases from env vars (needs addtional plugins)
- values 'C48_ATM', 'C48_S2SWA_gefs', 'C48_S2SW', 'C96_atm3DVar', 'C96C48_hybatmDA', 'C96_atmsnowDA' // 'C48mx500_3DVarAOWCDA'
+ values 'C48C48_ufs_hybatmDA', 'C48_ATM', 'C48_S2SW', 'C48_S2SWA_gefs', 'C48mx500_3DVarAOWCDA', 'C96C48_hybatmDA', 'C96_atm3DVar', 'C96_atmsnowDA'
}
}
stages {
- stage('Create Experiment') {
+
+ stage('Create Experiments') {
+ when {
+ expression { return caseList.contains(Case) }
+ }
steps {
script {
sh(script: "sed -n '/{.*}/!p' ${HOME}/gfs/ci/cases/pr/${Case}.yaml > ${HOME}/gfs/ci/cases/pr/${Case}.yaml.tmp")
@@ -130,15 +136,20 @@ pipeline {
}
}
}
+
stage('Run Experiments') {
+ when {
+ expression { return caseList.contains(Case) }
+ }
steps {
script {
HOMEgfs = "${HOME}/gfs" // common HOMEgfs is used to launch the scripts that run the experiments
ws(HOMEgfs) {
pslot = sh(script: "${HOMEgfs}/ci/scripts/utils/ci_utils_wrapper.sh get_pslot ${HOME}/RUNTESTS ${Case}", returnStdout: true).trim()
- // pullRequest.comment("**Running** experiment: ${Case} on ${Machine}
With the experiment in directory:
`${HOME}/RUNTESTS/${pslot}`")
- err = sh(script: "${HOMEgfs}/ci/scripts/run-check_ci.sh ${HOME} ${pslot}")
- if (err != 0) {
+ pullRequest.comment("**Running** experiment: ${Case} on ${Machine}
With the experiment in directory:
`${HOME}/RUNTESTS/${pslot}`")
+ try {
+ sh(script: "${HOMEgfs}/ci/scripts/run-check_ci.sh ${HOME} ${pslot}")
+ } catch (Exception e) {
pullRequest.comment("**FAILURE** running experiment: ${Case} on ${Machine}")
sh(script: "${HOMEgfs}/ci/scripts/utils/ci_utils_wrapper.sh cancel_all_batch_jobs ${HOME}/RUNTESTS")
ws(HOME) {
@@ -153,12 +164,12 @@ pipeline {
}
error("Failed to run experiments ${Case} on ${Machine}")
}
- // pullRequest.comment("**SUCCESS** running experiment: ${Case} on ${Machine}")
}
+ pullRequest.comment("**SUCCESS** running experiment: ${Case} on ${Machine}")
}
-
}
}
+
}
}
}
diff --git a/ci/cases/pr/C48_S2SWA_gefs.yaml b/ci/cases/pr/C48_S2SWA_gefs.yaml
index de677a70b6..d42f4cd15b 100644
--- a/ci/cases/pr/C48_S2SWA_gefs.yaml
+++ b/ci/cases/pr/C48_S2SWA_gefs.yaml
@@ -16,8 +16,3 @@ 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/cases/yamls/atmsnowDA_defaults_ci.yaml b/ci/cases/yamls/atmsnowDA_defaults_ci.yaml
index f805902931..417525742e 100644
--- a/ci/cases/yamls/atmsnowDA_defaults_ci.yaml
+++ b/ci/cases/yamls/atmsnowDA_defaults_ci.yaml
@@ -2,5 +2,5 @@ defaults:
!INC {{ HOMEgfs }}/parm/config/gfs/yaml/defaults.yaml
base:
DOIAU: "NO"
- DO_JEDILANDDA: "YES"
+ DO_JEDISNOWDA: "YES"
ACCOUNT: {{ 'SLURM_ACCOUNT' | getenv }}
diff --git a/ci/cases/yamls/ufs_hybatmDA_defaults.ci.yaml b/ci/cases/yamls/ufs_hybatmDA_defaults.ci.yaml
index c072c391b3..126c0f461a 100644
--- a/ci/cases/yamls/ufs_hybatmDA_defaults.ci.yaml
+++ b/ci/cases/yamls/ufs_hybatmDA_defaults.ci.yaml
@@ -5,10 +5,16 @@ base:
DO_JEDIATMVAR: "YES"
DO_JEDIATMENS: "YES"
ACCOUNT: {{ 'SLURM_ACCOUNT' | getenv }}
+atmanl:
+ LAYOUT_X_ATMANL: 1
+ LAYOUT_Y_ATMANL: 1
+atmensanl:
+ LAYOUT_X_ATMENSANL: 1
+ LAYOUT_Y_ATMENSANL: 1
esfc:
DONST: "NO"
nsst:
NST_MODEL: "1"
sfcanl:
DONST: "NO"
-
\ No newline at end of file
+
diff --git a/ci/scripts/utils/get_host_case_list.py b/ci/scripts/utils/get_host_case_list.py
new file mode 100755
index 0000000000..eb10f29f05
--- /dev/null
+++ b/ci/scripts/utils/get_host_case_list.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+import os
+from os.path import basename, splitext
+import sys
+import glob
+from wxflow import parse_j2yaml
+from wxflow import AttrDict
+
+_here = os.path.dirname(__file__)
+_top = os.path.abspath(os.path.join(os.path.abspath(_here), '../../..'))
+
+if __name__ == '__main__':
+
+ if len(sys.argv) < 2:
+ print('Usage: get_host_case_list.py ')
+ sys.exit(1)
+
+ host = sys.argv[1]
+
+ case_list = []
+ HOMEgfs = _top
+ data = AttrDict(HOMEgfs=_top)
+ data.update(os.environ)
+
+ case_files = glob.glob(f'{HOMEgfs}/ci/cases/pr/*.yaml')
+ for case_yaml in case_files:
+ case_conf = parse_j2yaml(path=case_yaml, data=data)
+ if 'skip_ci_on_hosts' in case_conf:
+ if host.lower() in [machine.lower() for machine in case_conf.skip_ci_on_hosts]:
+ continue
+ case_list.append(splitext(basename(case_yaml))[0])
+ print(' '.join(case_list))
diff --git a/ci/scripts/utils/wxflow b/ci/scripts/utils/wxflow
new file mode 120000
index 0000000000..54d0558aba
--- /dev/null
+++ b/ci/scripts/utils/wxflow
@@ -0,0 +1 @@
+../../../sorc/wxflow/src/wxflow
\ No newline at end of file
diff --git a/env/AWSPW.env b/env/AWSPW.env
index ea5002ecb9..2dbba67eb3 100755
--- a/env/AWSPW.env
+++ b/env/AWSPW.env
@@ -4,7 +4,7 @@ if [[ $# -ne 1 ]]; then
echo "Must specify an input argument to set runtime environment variables!"
echo "argument can be any one of the following:"
- echo "atmanlrun atmensanlrun aeroanlrun landanlrun"
+ echo "atmanlrun atmensanlrun aeroanlrun snowanl"
echo "anal sfcanl fcst post metp"
echo "eobs eupd ecen efcs epos"
echo "postsnd awips gempak"
diff --git a/env/CONTAINER.env b/env/CONTAINER.env
index b1f55a4c98..bc2d64b4ce 100755
--- a/env/CONTAINER.env
+++ b/env/CONTAINER.env
@@ -4,7 +4,7 @@ if [[ $# -ne 1 ]]; then
echo "Must specify an input argument to set runtime environment variables!"
echo "argument can be any one of the following:"
- echo "atmanlrun atmensanlrun aeroanlrun landanl"
+ echo "atmanlrun atmensanlrun aeroanlrun snowanl"
echo "anal sfcanl fcst post metp"
echo "eobs eupd ecen efcs epos"
echo "postsnd awips gempak"
diff --git a/env/HERA.env b/env/HERA.env
index e9a0ee050f..2029a69328 100755
--- a/env/HERA.env
+++ b/env/HERA.env
@@ -4,7 +4,7 @@ if [[ $# -ne 1 ]]; then
echo "Must specify an input argument to set runtime environment variables!"
echo "argument can be any one of the following:"
- echo "atmanlrun atmensanlrun aeroanlrun landanl"
+ echo "atmanlrun atmensanlrun aeroanlrun snowanl"
echo "anal sfcanl fcst post metp"
echo "eobs eupd ecen efcs epos"
echo "postsnd awips gempak"
@@ -42,7 +42,7 @@ if [[ "${step}" = "prep" ]] || [[ "${step}" = "prepbufr" ]]; then
export sys_tp="HERA"
export launcher_PREP="srun"
-elif [[ "${step}" = "preplandobs" ]]; then
+elif [[ "${step}" = "prepsnowobs" ]]; then
export APRUN_CALCFIMS="${launcher} -n 1"
@@ -79,13 +79,13 @@ elif [[ "${step}" = "aeroanlrun" ]]; then
[[ ${NTHREADS_AEROANL} -gt ${nth_max} ]] && export NTHREADS_AEROANL=${nth_max}
export APRUN_AEROANL="${launcher} -n ${npe_aeroanlrun} --cpus-per-task=${NTHREADS_AEROANL}"
-elif [[ "${step}" = "landanl" ]]; then
+elif [[ "${step}" = "snowanl" ]]; then
- nth_max=$((npe_node_max / npe_node_landanl))
+ nth_max=$((npe_node_max / npe_node_snowanl))
- export NTHREADS_LANDANL=${nth_landanl:-${nth_max}}
- [[ ${NTHREADS_LANDANL} -gt ${nth_max} ]] && export NTHREADS_LANDANL=${nth_max}
- export APRUN_LANDANL="${launcher} -n ${npe_landanl} --cpus-per-task=${NTHREADS_LANDANL}"
+ export NTHREADS_SNOWANL=${nth_snowanl:-${nth_max}}
+ [[ ${NTHREADS_SNOWANL} -gt ${nth_max} ]] && export NTHREADS_SNOWANL=${nth_max}
+ export APRUN_SNOWANL="${launcher} -n ${npe_snowanl} --cpus-per-task=${NTHREADS_SNOWANL}"
export APRUN_APPLY_INCR="${launcher} -n 6"
diff --git a/env/HERCULES.env b/env/HERCULES.env
index 396e587798..7d2aa5f8d0 100755
--- a/env/HERCULES.env
+++ b/env/HERCULES.env
@@ -41,7 +41,7 @@ case ${step} in
export sys_tp="HERCULES"
export launcher_PREP="srun"
;;
- "preplandobs")
+ "prepsnowobs")
export APRUN_CALCFIMS="${launcher} -n 1"
;;
@@ -79,13 +79,13 @@ case ${step} in
[[ ${NTHREADS_AEROANL} -gt ${nth_max} ]] && export NTHREADS_AEROANL=${nth_max}
export APRUN_AEROANL="${launcher} -n ${npe_aeroanlrun} --cpus-per-task=${NTHREADS_AEROANL}"
;;
- "landanl")
+ "snowanl")
- nth_max=$((npe_node_max / npe_node_landanl))
+ nth_max=$((npe_node_max / npe_node_snowanl))
- export NTHREADS_LANDANL=${nth_landanl:-${nth_max}}
- [[ ${NTHREADS_LANDANL} -gt ${nth_max} ]] && export NTHREADS_LANDANL=${nth_max}
- export APRUN_LANDANL="${launcher} -n ${npe_landanl} --cpus-per-task=${NTHREADS_LANDANL}"
+ export NTHREADS_SNOWANL=${nth_snowanl:-${nth_max}}
+ [[ ${NTHREADS_SNOWANL} -gt ${nth_max} ]] && export NTHREADS_SNOWANL=${nth_max}
+ export APRUN_SNOWANL="${launcher} -n ${npe_snowanl} --cpus-per-task=${NTHREADS_SNOWANL}"
export APRUN_APPLY_INCR="${launcher} -n 6"
;;
diff --git a/env/JET.env b/env/JET.env
index 02e11950e5..df6666d8dc 100755
--- a/env/JET.env
+++ b/env/JET.env
@@ -4,7 +4,7 @@ if [[ $# -ne 1 ]]; then
echo "Must specify an input argument to set runtime environment variables!"
echo "argument can be any one of the following:"
- echo "atmanlrun atmensanlrun aeroanlrun landanl"
+ echo "atmanlrun atmensanlrun aeroanlrun snowanl"
echo "anal sfcanl fcst post metp"
echo "eobs eupd ecen efcs epos"
echo "postsnd awips gempak"
@@ -33,7 +33,7 @@ if [[ "${step}" = "prep" ]] || [[ "${step}" = "prepbufr" ]]; then
export sys_tp="JET"
export launcher_PREP="srun"
-elif [[ "${step}" = "preplandobs" ]]; then
+elif [[ "${step}" = "prepsnowobs" ]]; then
export APRUN_CALCFIMS="${launcher} -n 1"
@@ -70,13 +70,13 @@ elif [[ "${step}" = "aeroanlrun" ]]; then
[[ ${NTHREADS_AEROANL} -gt ${nth_max} ]] && export NTHREADS_AEROANL=${nth_max}
export APRUN_AEROANL="${launcher} -n ${npe_aeroanlrun}"
-elif [[ "${step}" = "landanl" ]]; then
+elif [[ "${step}" = "snowanl" ]]; then
- nth_max=$((npe_node_max / npe_node_landanl))
+ nth_max=$((npe_node_max / npe_node_snowanl))
- export NTHREADS_LANDANL=${nth_landanl:-${nth_max}}
- [[ ${NTHREADS_LANDANL} -gt ${nth_max} ]] && export NTHREADS_LANDANL=${nth_max}
- export APRUN_LANDANL="${launcher} -n ${npe_landanl}"
+ export NTHREADS_SNOWANL=${nth_snowanl:-${nth_max}}
+ [[ ${NTHREADS_SNOWANL} -gt ${nth_max} ]] && export NTHREADS_SNOWANL=${nth_max}
+ export APRUN_SNOWANL="${launcher} -n ${npe_snowanl}"
export APRUN_APPLY_INCR="${launcher} -n 6"
diff --git a/env/ORION.env b/env/ORION.env
index f0a97eb933..692fa8ab66 100755
--- a/env/ORION.env
+++ b/env/ORION.env
@@ -4,7 +4,7 @@ if [[ $# -ne 1 ]]; then
echo "Must specify an input argument to set runtime environment variables!"
echo "argument can be any one of the following:"
- echo "atmanlrun atmensanlrun aeroanlrun landanl"
+ echo "atmanlrun atmensanlrun aeroanlrun snowanl"
echo "anal sfcanl fcst post metp"
echo "eobs eupd ecen efcs epos"
echo "postsnd awips gempak"
@@ -40,7 +40,7 @@ if [[ "${step}" = "prep" ]] || [[ "${step}" = "prepbufr" ]]; then
export sys_tp="ORION"
export launcher_PREP="srun"
-elif [[ "${step}" = "preplandobs" ]]; then
+elif [[ "${step}" = "prepsnowobs" ]]; then
export APRUN_CALCFIMS="${launcher} -n 1"
@@ -78,13 +78,13 @@ elif [[ "${step}" = "aeroanlrun" ]]; then
[[ ${NTHREADS_AEROANL} -gt ${nth_max} ]] && export NTHREADS_AEROANL=${nth_max}
export APRUN_AEROANL="${launcher} -n ${npe_aeroanlrun} --cpus-per-task=${NTHREADS_AEROANL}"
-elif [[ "${step}" = "landanl" ]]; then
+elif [[ "${step}" = "snowanl" ]]; then
- nth_max=$((npe_node_max / npe_node_landanl))
+ nth_max=$((npe_node_max / npe_node_snowanl))
- export NTHREADS_LANDANL=${nth_landanl:-${nth_max}}
- [[ ${NTHREADS_LANDANL} -gt ${nth_max} ]] && export NTHREADS_LANDANL=${nth_max}
- export APRUN_LANDANL="${launcher} -n ${npe_landanl} --cpus-per-task=${NTHREADS_LANDANL}"
+ export NTHREADS_SNOWANL=${nth_snowanl:-${nth_max}}
+ [[ ${NTHREADS_SNOWANL} -gt ${nth_max} ]] && export NTHREADS_SNOWANL=${nth_max}
+ export APRUN_SNOWANL="${launcher} -n ${npe_snowanl} --cpus-per-task=${NTHREADS_SNOWANL}"
export APRUN_APPLY_INCR="${launcher} -n 6"
diff --git a/env/S4.env b/env/S4.env
index 717d971c7d..ab564eb974 100755
--- a/env/S4.env
+++ b/env/S4.env
@@ -4,7 +4,7 @@ if [[ $# -ne 1 ]]; then
echo "Must specify an input argument to set runtime environment variables!"
echo "argument can be any one of the following:"
- echo "atmanlrun atmensanlrun aeroanlrun landanl"
+ echo "atmanlrun atmensanlrun aeroanlrun snowanl"
echo "anal sfcanl fcst post metp"
echo "eobs eupd ecen efcs epos"
echo "postsnd awips gempak"
@@ -33,7 +33,7 @@ if [[ "${step}" = "prep" ]] || [[ "${step}" = "prepbufr" ]]; then
export sys_tp="S4"
export launcher_PREP="srun"
-elif [[ "${step}" = "preplandobs" ]]; then
+elif [[ "${step}" = "prepsnowobs" ]]; then
export APRUN_CALCFIMS="${launcher} -n 1"
@@ -70,13 +70,13 @@ elif [[ "${step}" = "aeroanlrun" ]]; then
[[ ${NTHREADS_AEROANL} -gt ${nth_max} ]] && export NTHREADS_AEROANL=${nth_max}
export APRUN_AEROANL="${launcher} -n ${npe_aeroanlrun}"
-elif [[ "${step}" = "landanl" ]]; then
+elif [[ "${step}" = "snowanl" ]]; then
- nth_max=$((npe_node_max / npe_node_landanl))
+ nth_max=$((npe_node_max / npe_node_snowanl))
- export NTHREADS_LANDANL=${nth_landanl:-${nth_max}}
- [[ ${NTHREADS_LANDANL} -gt ${nth_max} ]] && export NTHREADS_LANDANL=${nth_max}
- export APRUN_LANDANL="${launcher} -n ${npe_landanl}"
+ export NTHREADS_SNOWANL=${nth_snowanl:-${nth_max}}
+ [[ ${NTHREADS_SNOWANL} -gt ${nth_max} ]] && export NTHREADS_SNOWANL=${nth_max}
+ export APRUN_SNOWANL="${launcher} -n ${npe_snowanl}"
export APRUN_APPLY_INCR="${launcher} -n 6"
diff --git a/env/WCOSS2.env b/env/WCOSS2.env
index e247a37bc9..ebb55a4077 100755
--- a/env/WCOSS2.env
+++ b/env/WCOSS2.env
@@ -4,7 +4,7 @@ if [[ $# -ne 1 ]]; then
echo "Must specify an input argument to set runtime environment variables!"
echo "argument can be any one of the following:"
- echo "atmanlrun atmensanlrun aeroanlrun landanl"
+ echo "atmanlrun atmensanlrun aeroanlrun snowanl"
echo "anal sfcanl fcst post metp"
echo "eobs eupd ecen esfc efcs epos"
echo "postsnd awips gempak"
@@ -27,7 +27,7 @@ if [[ "${step}" = "prep" ]] || [[ "${step}" = "prepbufr" ]]; then
export sys_tp="wcoss2"
export launcher_PREP="mpiexec"
-elif [[ "${step}" = "preplandobs" ]]; then
+elif [[ "${step}" = "prepsnowobs" ]]; then
export APRUN_CALCFIMS="${launcher} -n 1"
@@ -64,13 +64,13 @@ elif [[ "${step}" = "aeroanlrun" ]]; then
[[ ${NTHREADS_AEROANL} -gt ${nth_max} ]] && export NTHREADS_AEROANL=${nth_max}
export APRUN_AEROANL="${launcher} -n ${npe_aeroanlrun}"
-elif [[ "${step}" = "landanl" ]]; then
+elif [[ "${step}" = "snowanl" ]]; then
- nth_max=$((npe_node_max / npe_node_landanl))
+ nth_max=$((npe_node_max / npe_node_snowanl))
- export NTHREADS_LANDANL=${nth_landanl:-${nth_max}}
- [[ ${NTHREADS_LANDANL} -gt ${nth_max} ]] && export NTHREADS_LANDANL=${nth_max}
- export APRUN_LANDANL="${launcher} -n ${npe_landanl}"
+ export NTHREADS_SNOWANL=${nth_snowanl:-${nth_max}}
+ [[ ${NTHREADS_SNOWANL} -gt ${nth_max} ]] && export NTHREADS_SNOWANL=${nth_max}
+ export APRUN_SNOWANL="${launcher} -n ${npe_snowanl}"
export APRUN_APPLY_INCR="${launcher} -n 6"
diff --git a/gempak/ush/gdas_ecmwf_meta_ver.sh b/gempak/ush/gdas_ecmwf_meta_ver.sh
index e4fffd9c8a..5d519c7cc5 100755
--- a/gempak/ush/gdas_ecmwf_meta_ver.sh
+++ b/gempak/ush/gdas_ecmwf_meta_ver.sh
@@ -30,7 +30,7 @@ PDY2=$(echo ${PDY} | cut -c3-)
#
# Copy in datatype table to define gdfile type
#
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
export err=$?
if [[ $err -ne 0 ]] ; then
echo " File datatype.tbl does not exist."
diff --git a/gempak/ush/gdas_meta_loop.sh b/gempak/ush/gdas_meta_loop.sh
index cd0d9b781b..927958a0ad 100755
--- a/gempak/ush/gdas_meta_loop.sh
+++ b/gempak/ush/gdas_meta_loop.sh
@@ -33,7 +33,7 @@ export pgm=gdplot2_nc;. prep_step; startmsg
#
# Copy in datatype table to define gdfile type
#
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
export err=$?
if [[ $err -ne 0 ]] ; then
echo " File datatype.tbl does not exist."
diff --git a/gempak/ush/gdas_ukmet_meta_ver.sh b/gempak/ush/gdas_ukmet_meta_ver.sh
index 845fa1cc6b..c7267ed09c 100755
--- a/gempak/ush/gdas_ukmet_meta_ver.sh
+++ b/gempak/ush/gdas_ukmet_meta_ver.sh
@@ -29,7 +29,7 @@ PDY2=$(echo ${PDY} | cut -c3-)
#
# Copy in datatype table to define gdfile type
#
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
#
# DEFINE 1 CYCLE AGO
diff --git a/gempak/ush/gempak_gdas_f000_gif.sh b/gempak/ush/gempak_gdas_f000_gif.sh
index cdf7659155..3e25d4090f 100755
--- a/gempak/ush/gempak_gdas_f000_gif.sh
+++ b/gempak/ush/gempak_gdas_f000_gif.sh
@@ -13,9 +13,6 @@
#
#########################################################################
- msg=" Make GEMPAK GIFS utility"
- postmsg "$jlogfile" "$msg"
-
set -x
MAPAREA="normal"
@@ -25,7 +22,7 @@
pixels="1728;1472"
- cp $FIXgempak/coltbl.spc coltbl.xwp
+ cp ${HOMEgfs}/gempak/fix/coltbl.spc coltbl.xwp
#################################################################
# NORTHERN HEMISPHERE ANALYSIS CHARTS #
@@ -488,8 +485,4 @@ if [ $SENDCOM = YES ]; then
fi
-
- msg=" GEMPAK_GIF ${fhr} hour completed normally"
- postmsg "$jlogfile" "$msg"
-
exit
diff --git a/gempak/ush/gempak_gfs_f00_gif.sh b/gempak/ush/gempak_gfs_f00_gif.sh
index 2a7cca5c9f..ad16958be2 100755
--- a/gempak/ush/gempak_gfs_f00_gif.sh
+++ b/gempak/ush/gempak_gfs_f00_gif.sh
@@ -15,9 +15,6 @@
#
#########################################################################
- msg=" Make GEMPAK GIFS utility"
- postmsg "$jlogfile" "$msg"
-
set -x
MAPAREA="normal"
@@ -26,7 +23,7 @@
pixels="1728;1472"
- cp $FIXgempak/coltbl.spc coltbl.xwp
+ cp ${HOMEgfs}/gempak/fix/coltbl.spc coltbl.xwp
#################################################################
# ANALYSIS CHARTS #
@@ -596,7 +593,4 @@ if [ $SENDCOM = YES ]; then
${USHgfs}/make_tif.sh
fi
- msg=" GEMPAK_GIF ${fhr} hour completed normally"
- postmsg "$jlogfile" "$msg"
-
exit
diff --git a/gempak/ush/gempak_gfs_f12_gif.sh b/gempak/ush/gempak_gfs_f12_gif.sh
index 611252a2e2..0150affac7 100755
--- a/gempak/ush/gempak_gfs_f12_gif.sh
+++ b/gempak/ush/gempak_gfs_f12_gif.sh
@@ -15,9 +15,6 @@
#
#########################################################################
- msg=" Make GEMPAK GIFS utility"
- postmsg "$jlogfile" "$msg"
-
set -x
MAPAREA="normal"
@@ -26,7 +23,7 @@
pixels="1728;1472"
- cp $FIXgempak/coltbl.spc coltbl.xwp
+ cp ${HOMEgfs}/gempak/fix/coltbl.spc coltbl.xwp
##########################################################
# 12HR FORECAST CHARTS #
@@ -207,7 +204,4 @@ if [ $SENDCOM = YES ]; then
fi
- msg=" GEMPAK_GIF ${fhr} hour completed normally"
- postmsg "$jlogfile" "$msg"
-
exit
diff --git a/gempak/ush/gempak_gfs_f24_gif.sh b/gempak/ush/gempak_gfs_f24_gif.sh
index 53670a29bd..cad24de9f6 100755
--- a/gempak/ush/gempak_gfs_f24_gif.sh
+++ b/gempak/ush/gempak_gfs_f24_gif.sh
@@ -16,13 +16,6 @@
#
#########################################################################
-
-
- msg=" Make GEMPAK GIFS utility"
- postmsg "$jlogfile" "$msg"
-
-
-
set -x
@@ -32,7 +25,7 @@
pixels="1728;1472"
- cp $FIXgempak/coltbl.spc coltbl.xwp
+ cp ${HOMEgfs}/gempak/fix/coltbl.spc coltbl.xwp
@@ -224,8 +217,4 @@ if [ $SENDCOM = YES ]; then
fi
-
- msg=" GEMPAK_GIF ${fhr} hour completed normally"
- postmsg "$jlogfile" "$msg"
-
exit
diff --git a/gempak/ush/gempak_gfs_f36_gif.sh b/gempak/ush/gempak_gfs_f36_gif.sh
index e1999090c0..60644e2fa3 100755
--- a/gempak/ush/gempak_gfs_f36_gif.sh
+++ b/gempak/ush/gempak_gfs_f36_gif.sh
@@ -16,12 +16,6 @@
#
#########################################################################
-
-
- msg=" Make GEMPAK GIFS utility"
- postmsg "$jlogfile" "$msg"
-
-
set -x
@@ -31,7 +25,7 @@
pixels="1728;1472"
- cp $FIXgempak/coltbl.spc coltbl.xwp
+ cp ${HOMEgfs}/gempak/fix/coltbl.spc coltbl.xwp
@@ -223,9 +217,4 @@ if [ $SENDCOM = YES ]; then
fi
-
-
- msg=" GEMPAK_GIF ${fhr} hour completed normally"
- postmsg "$jlogfile" "$msg"
-
exit
diff --git a/gempak/ush/gempak_gfs_f48_gif.sh b/gempak/ush/gempak_gfs_f48_gif.sh
index 1e0ba532fd..b63f644ee6 100755
--- a/gempak/ush/gempak_gfs_f48_gif.sh
+++ b/gempak/ush/gempak_gfs_f48_gif.sh
@@ -16,12 +16,6 @@
#
#########################################################################
-
-
- msg=" Make GEMPAK GIFS utility"
- postmsg "$jlogfile" "$msg"
-
-
set -x
@@ -31,7 +25,7 @@
pixels="1728;1472"
- cp $FIXgempak/coltbl.spc coltbl.xwp
+ cp ${HOMEgfs}/gempak/fix/coltbl.spc coltbl.xwp
@@ -223,9 +217,4 @@ if [ $SENDCOM = YES ]; then
fi
-
-
- msg=" GEMPAK_GIF ${fhr} hour completed normally"
- postmsg "$jlogfile" "$msg"
-
exit
diff --git a/gempak/ush/gfs_meta_ak.sh b/gempak/ush/gfs_meta_ak.sh
index c258b7e83a..03db6fa088 100755
--- a/gempak/ush/gfs_meta_ak.sh
+++ b/gempak/ush/gfs_meta_ak.sh
@@ -24,7 +24,7 @@ set -xa
rm -rf $DATA/ak
mkdir -p -m 775 $DATA/ak
cd $DATA/ak
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
device="nc | gfs.meta.ak"
PDY2=$(echo $PDY | cut -c3-)
diff --git a/gempak/ush/gfs_meta_bwx.sh b/gempak/ush/gfs_meta_bwx.sh
index f5b4e1d944..af7f43e3de 100755
--- a/gempak/ush/gfs_meta_bwx.sh
+++ b/gempak/ush/gfs_meta_bwx.sh
@@ -24,7 +24,7 @@ set -x
export PS4='BWX:$SECONDS + '
mkdir -p -m 775 $DATA/BWX
cd $DATA/BWX
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
mdl=gfs
MDL="GFS"
diff --git a/gempak/ush/gfs_meta_comp.sh b/gempak/ush/gfs_meta_comp.sh
index 9bd27c5736..e033d11bd8 100755
--- a/gempak/ush/gfs_meta_comp.sh
+++ b/gempak/ush/gfs_meta_comp.sh
@@ -29,7 +29,7 @@ export PS4='COMP:$SECONDS + '
rm -Rf $DATA/COMP $DATA/GEMPAK_META_COMP
mkdir -p -m 775 $DATA/COMP $DATA/GEMPAK_META_COMP
cd $DATA/COMP
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
export COMPONENT=${COMPONENT:-atmos}
diff --git a/gempak/ush/gfs_meta_crb.sh b/gempak/ush/gfs_meta_crb.sh
index 82fa7795e8..181afab6c1 100755
--- a/gempak/ush/gfs_meta_crb.sh
+++ b/gempak/ush/gfs_meta_crb.sh
@@ -17,7 +17,7 @@ set -x
export PS4='crb:$SECONDS + '
mkdir -p -m 775 $DATA/crb
cd $DATA/crb
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
#
mdl=gfs
MDL=GFS
diff --git a/gempak/ush/gfs_meta_hi.sh b/gempak/ush/gfs_meta_hi.sh
index 2b47474e12..6167855ae2 100755
--- a/gempak/ush/gfs_meta_hi.sh
+++ b/gempak/ush/gfs_meta_hi.sh
@@ -19,7 +19,7 @@
set -xa
mkdir -p -m 775 $DATA/mrfhi
cd $DATA/mrfhi
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
device="nc | mrfhi.meta"
diff --git a/gempak/ush/gfs_meta_hur.sh b/gempak/ush/gfs_meta_hur.sh
index aed25d6d78..04224ee39b 100755
--- a/gempak/ush/gfs_meta_hur.sh
+++ b/gempak/ush/gfs_meta_hur.sh
@@ -25,7 +25,7 @@ set -x
export PS4='hur:$SECONDS + '
mkdir -p -m 775 $DATA/hur
cd $DATA/hur
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
mdl=gfs
MDL=GFS
diff --git a/gempak/ush/gfs_meta_mar_atl.sh b/gempak/ush/gfs_meta_mar_atl.sh
index c8db3e59d4..b76a25f247 100755
--- a/gempak/ush/gfs_meta_mar_atl.sh
+++ b/gempak/ush/gfs_meta_mar_atl.sh
@@ -12,7 +12,7 @@ set -x
export PS4='MAR_ATL:$SECONDS + '
mkdir -p -m 775 $DATA/MAR_ATL
cd $DATA/MAR_ATL
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
mdl=gfs
MDL="GFS"
diff --git a/gempak/ush/gfs_meta_mar_comp.sh b/gempak/ush/gfs_meta_mar_comp.sh
index a55fa3c642..0c179b6270 100755
--- a/gempak/ush/gfs_meta_mar_comp.sh
+++ b/gempak/ush/gfs_meta_mar_comp.sh
@@ -18,7 +18,7 @@ rm -Rf $DATA/GEMPAK_META_MAR
mkdir -p -m 775 $DATA/GEMPAK_META_MAR $DATA/MAR_COMP
cd $DATA/MAR_COMP
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
export COMPONENT=${COMPONENT:-atmos}
diff --git a/gempak/ush/gfs_meta_mar_pac.sh b/gempak/ush/gfs_meta_mar_pac.sh
index b44f60a2f7..06165e837c 100755
--- a/gempak/ush/gfs_meta_mar_pac.sh
+++ b/gempak/ush/gfs_meta_mar_pac.sh
@@ -12,7 +12,7 @@ set -x
export PS4='MAR_PAC:$SECONDS + '
mkdir -p -m 775 $DATA/MAR_PAC
cd $DATA/MAR_PAC
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
mdl=gfs
MDL="GFS"
diff --git a/gempak/ush/gfs_meta_mar_ql.sh b/gempak/ush/gfs_meta_mar_ql.sh
index f1abf3d395..71ee9d2fee 100755
--- a/gempak/ush/gfs_meta_mar_ql.sh
+++ b/gempak/ush/gfs_meta_mar_ql.sh
@@ -12,7 +12,7 @@ set -x
export PS4='MAR_QL_F${fend}:$SECONDS + '
mkdir -p -m 775 $DATA/MAR_QL
cd $DATA/MAR_QL
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
mdl=gfs
MDL="GFS"
diff --git a/gempak/ush/gfs_meta_mar_skewt.sh b/gempak/ush/gfs_meta_mar_skewt.sh
index 040e09e932..a49439d6a0 100755
--- a/gempak/ush/gfs_meta_mar_skewt.sh
+++ b/gempak/ush/gfs_meta_mar_skewt.sh
@@ -12,7 +12,7 @@ set -x
export PS4='MAR_SKEWT:$SECONDS + '
mkdir -p -m 775 $DATA/MAR_SKEWT
cd $DATA/MAR_SKEWT
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
mdl=gfs
MDL="GFS"
diff --git a/gempak/ush/gfs_meta_mar_ver.sh b/gempak/ush/gfs_meta_mar_ver.sh
index 63ccba00ed..79f4fc7096 100755
--- a/gempak/ush/gfs_meta_mar_ver.sh
+++ b/gempak/ush/gfs_meta_mar_ver.sh
@@ -12,7 +12,7 @@ set -x
export PS4='MAR_VER:$SECONDS + '
mkdir -p -m 775 $DATA/MAR_VER
cd $DATA/MAR_VER
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
mdl=gfs
MDL="GFS"
diff --git a/gempak/ush/gfs_meta_nhsh.sh b/gempak/ush/gfs_meta_nhsh.sh
index 3e0146270e..6e6981c2df 100755
--- a/gempak/ush/gfs_meta_nhsh.sh
+++ b/gempak/ush/gfs_meta_nhsh.sh
@@ -19,7 +19,7 @@
set -xa
mkdir -p -m 775 $DATA/mrfnhsh
cd $DATA/mrfnhsh
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
PDY2=$(echo $PDY | cut -c3-)
diff --git a/gempak/ush/gfs_meta_opc_na_ver b/gempak/ush/gfs_meta_opc_na_ver
index 8d5f394b3d..3c0798ebc6 100755
--- a/gempak/ush/gfs_meta_opc_na_ver
+++ b/gempak/ush/gfs_meta_opc_na_ver
@@ -12,7 +12,7 @@ set -x
export PS4='OPC_NA_VER_F${fend}:$SECONDS + '
mkdir -p -m 775 $DATA/OPC_NA_VER_F${fend}
cd $DATA/OPC_NA_VER_F${fend}
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
export COMPONENT=${COMPONENT:-atmos}
diff --git a/gempak/ush/gfs_meta_opc_np_ver b/gempak/ush/gfs_meta_opc_np_ver
index 5cb9fba3c9..f9f3fc88ab 100755
--- a/gempak/ush/gfs_meta_opc_np_ver
+++ b/gempak/ush/gfs_meta_opc_np_ver
@@ -12,7 +12,7 @@ set -x
export PS4='OPC_NP_VER_F${fend}:$SECONDS + '
mkdir -p -m 775 $DATA/OPC_NP_VER_F${fend}
cd $DATA/OPC_NP_VER_F${fend}
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
#
export COMPONENT=${COMPONENT:-atmos}
diff --git a/gempak/ush/gfs_meta_precip.sh b/gempak/ush/gfs_meta_precip.sh
index cf3db9cbae..a21bcc7d98 100755
--- a/gempak/ush/gfs_meta_precip.sh
+++ b/gempak/ush/gfs_meta_precip.sh
@@ -11,7 +11,7 @@ set -x
export PS4='qpf:$SECONDS + '
mkdir -p -m 775 $DATA/precip
cd $DATA/precip
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
#
# Set model and metafile naming conventions
diff --git a/gempak/ush/gfs_meta_qpf.sh b/gempak/ush/gfs_meta_qpf.sh
index 49ca0d8bd4..85cd7b94f8 100755
--- a/gempak/ush/gfs_meta_qpf.sh
+++ b/gempak/ush/gfs_meta_qpf.sh
@@ -26,7 +26,7 @@ set -x
export PS4='qpf:$SECONDS + '
mkdir -p -m 775 $DATA/qpf
cd $DATA/qpf
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
mdl=gfs
MDL=GFS
diff --git a/gempak/ush/gfs_meta_sa.sh b/gempak/ush/gfs_meta_sa.sh
index 47984e641d..1bd2ff7b59 100755
--- a/gempak/ush/gfs_meta_sa.sh
+++ b/gempak/ush/gfs_meta_sa.sh
@@ -24,7 +24,7 @@ set -x
export PS4='SA:$SECONDS + '
mkdir -p -m 775 $DATA/SA
cd $DATA/SA
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
mdl=gfs
MDL=GFS
diff --git a/gempak/ush/gfs_meta_sa2.sh b/gempak/ush/gfs_meta_sa2.sh
index a566031030..de4b7775da 100755
--- a/gempak/ush/gfs_meta_sa2.sh
+++ b/gempak/ush/gfs_meta_sa2.sh
@@ -19,7 +19,7 @@ set -x
echo " start with ukmet_gfs_meta_sa2.sh"
export PS4='SA2:$SECONDS + '
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
export COMPONENT=${COMPONENT:-atmos}
diff --git a/gempak/ush/gfs_meta_trop.sh b/gempak/ush/gfs_meta_trop.sh
index d0cc0dbd14..a66cb22c74 100755
--- a/gempak/ush/gfs_meta_trop.sh
+++ b/gempak/ush/gfs_meta_trop.sh
@@ -29,7 +29,7 @@ set -x
export PS4='TROP:$SECONDS + '
mkdir -p -m 775 $DATA/TROP
cd $DATA/TROP
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
mdl=gfs
MDL=GFS
diff --git a/gempak/ush/gfs_meta_us.sh b/gempak/ush/gfs_meta_us.sh
index 7a818c338b..495cbc5839 100755
--- a/gempak/ush/gfs_meta_us.sh
+++ b/gempak/ush/gfs_meta_us.sh
@@ -22,7 +22,7 @@ set -xa
rm -rf $DATA/us
mkdir -p -m 775 $DATA/us
cd $DATA/us
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
device="nc | gfs.meta"
PDY2=$(echo $PDY | cut -c3-)
diff --git a/gempak/ush/gfs_meta_usext.sh b/gempak/ush/gfs_meta_usext.sh
index dc522bb896..3db7c27be4 100755
--- a/gempak/ush/gfs_meta_usext.sh
+++ b/gempak/ush/gfs_meta_usext.sh
@@ -28,12 +28,12 @@
set -xa
mkdir -p -m 775 $DATA/mrfus
cd $DATA/mrfus
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
device="nc | mrf.meta"
-#XXW cp $FIXgempak/model/gfs/ak_sfstns.tbl alaska.tbl
-cp $FIXgempak/ak_sfstns.tbl alaska.tbl
+#XXW cp ${HOMEgfs}/gempak/fix/model/gfs/ak_sfstns.tbl alaska.tbl
+cp ${HOMEgfs}/gempak/fix/ak_sfstns.tbl alaska.tbl
month=$(echo $PDY | cut -c5,6)
if [ $month -ge 5 -a $month -le 9 ] ; then
diff --git a/gempak/ush/gfs_meta_ver.sh b/gempak/ush/gfs_meta_ver.sh
index d63f6bc6df..89a413952e 100755
--- a/gempak/ush/gfs_meta_ver.sh
+++ b/gempak/ush/gfs_meta_ver.sh
@@ -26,7 +26,7 @@ set -x
export PS4='VER:$SECONDS + '
mkdir -p -m 775 $DATA/VER
cd $DATA/VER
-cp $FIXgempak/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
export COMPONENT=${COMPONENT:-atmos}
diff --git a/jobs/JGDAS_ATMOS_GEMPAK b/jobs/JGDAS_ATMOS_GEMPAK
index 1535e07ae3..55aca00cee 100755
--- a/jobs/JGDAS_ATMOS_GEMPAK
+++ b/jobs/JGDAS_ATMOS_GEMPAK
@@ -11,7 +11,6 @@ export EXECgfs=${EXECgfs:-${HOMEgfs}/exec}
export PARMgfs=${PARMgfs:-${HOMEgfs}/parm}
export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo}
export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product}
-export FIXgempak=${FIXgempak:-${HOMEgfs}/gempak/fix}
export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush}
export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts}
export UTILgfs=${UTILgfs:-${HOMEgfs}/util}
diff --git a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC
index 6948d29df6..92b56f10b8 100755
--- a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC
+++ b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC
@@ -17,7 +17,6 @@ export EXECgfs=${EXECgfs:-${HOMEgfs}/exec}
export PARMgfs=${PARMgfs:-${HOMEgfs}/parm}
export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo}
export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product}
-export FIXgempak=${FIXgempak:-${HOMEgfs}/gempak/fix}
export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush}
export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts}
export UTILgfs=${UTILgfs:-${HOMEgfs}/util}
@@ -26,7 +25,7 @@ export UTILgfs=${UTILgfs:-${HOMEgfs}/util}
# Now set up GEMPAK/NTRANS environment
#
-cp ${FIXgempak}/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
###################################
# Specify NET and RUN Name and model
diff --git a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG
index 516c7a403b..d2277bb0da 100755
--- a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG
+++ b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG
@@ -14,7 +14,6 @@ export EXECgfs=${EXECgfs:-${HOMEgfs}/exec}
export PARMgfs=${PARMgfs:-${HOMEgfs}/parm}
export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo}
export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product}
-export FIXgfs=${FIXgfs:-${HOMEgfs}/fix}
###################################
# Specify NET and RUN Name and model
diff --git a/jobs/JGFS_ATMOS_AWIPS_G2 b/jobs/JGFS_ATMOS_AWIPS_G2
index 5bd7749997..3503a92b08 100755
--- a/jobs/JGFS_ATMOS_AWIPS_G2
+++ b/jobs/JGFS_ATMOS_AWIPS_G2
@@ -17,7 +17,6 @@ export EXECgfs=${EXECgfs:-${HOMEgfs}/exec}
export PARMgfs=${PARMgfs:-${HOMEgfs}/parm}
export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo}
export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product}
-export FIXgfs=${FIXgfs:-${HOMEgfs}/fix}
export UTILgfs=${UTILgfs:-${HOMEgfs}/util}
###################################
diff --git a/jobs/JGFS_ATMOS_FBWIND b/jobs/JGFS_ATMOS_FBWIND
index e04b06c0d6..d640907c5c 100755
--- a/jobs/JGFS_ATMOS_FBWIND
+++ b/jobs/JGFS_ATMOS_FBWIND
@@ -16,7 +16,6 @@ export EXECgfs=${EXECgfs:-${HOMEgfs}/exec}
export PARMgfs=${PARMgfs:-${HOMEgfs}/parm}
export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo}
export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product}
-export FIXgfs=${FIXgfs:-${HOMEgfs}/fix}
export UTILgfs=${UTILgfs:-${HOMEgfs}/util}
###################################
diff --git a/jobs/JGFS_ATMOS_GEMPAK b/jobs/JGFS_ATMOS_GEMPAK
index ddf10342d2..ff7479daf2 100755
--- a/jobs/JGFS_ATMOS_GEMPAK
+++ b/jobs/JGFS_ATMOS_GEMPAK
@@ -10,7 +10,6 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak" -c "base gempak"
export EXECgfs=${EXECgfs:-${HOMEgfs}/exec}
export PARMgfs=${PARMgfs:-${HOMEgfs}/parm}
export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config}
-export FIXgempak=${FIXgempak:-${HOMEgfs}/gempak/fix}
export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush}
export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts}
diff --git a/jobs/JGFS_ATMOS_GEMPAK_META b/jobs/JGFS_ATMOS_GEMPAK_META
index 8e1c05763f..f3573419c5 100755
--- a/jobs/JGFS_ATMOS_GEMPAK_META
+++ b/jobs/JGFS_ATMOS_GEMPAK_META
@@ -24,11 +24,10 @@ export MP_DEBUG_NOTIMEOUT=yes
export EXECgfs=${EXECgfs:-${HOMEgfs}/exec}
export PARMgfs=${PARMgfs:-${HOMEgfs}/parm}
export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config}
-export FIXgempak=${FIXgempak:-${HOMEgfs}/gempak/fix}
export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush}
export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts}
-cp ${FIXgempak}/datatype.tbl datatype.tbl
+cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl
#############################################
#set the fcst hrs for all the cycles
diff --git a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF
index 58b24c5e49..aa0acf445e 100755
--- a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF
+++ b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF
@@ -15,7 +15,6 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak_gif" -c "base"
export EXECgfs=${EXECgfs:-${HOMEgfs}/exec}
export PARMgfs=${PARMgfs:-${HOMEgfs}/parm}
export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config}
-export FIXgfs=${FIXgfs:-${HOMEgfs}/gempak/fix}
export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush}
export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts}
export UTILgfs=${UTILgfs:-${HOMEgfs}/util}
@@ -24,7 +23,6 @@ export UTILgfs=${UTILgfs:-${HOMEgfs}/util}
# Set up the GEMPAK directory
#######################################
export HOMEgempak=${HOMEgempak:-${HOMEgfs}/gempak}
-export FIXgempak=${FIXgempak:-${HOMEgempak}/fix}
export USHgempak=${USHgempak:-${HOMEgempak}/ush}
export MP_PULSE=0
diff --git a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC
index 47415a39ff..8b17f96a22 100755
--- a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC
+++ b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC
@@ -13,7 +13,6 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak_spec" -c "base"
export EXECgfs="${EXECgfs:-${HOMEgfs}/exec}"
export PARMgfs="${PARMgfs:-${HOMEgfs}/parm}"
export EXPDIR="${EXPDIR:-${HOMEgfs}/parm/config}"
-export FIXgempak="${FIXgempak:-${HOMEgfs}/gempak/fix}"
export USHgempak="${USHgempak:-${HOMEgfs}/gempak/ush}"
export SRCgfs="${SRCgfs:-${HOMEgfs}/scripts}"
diff --git a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS
index a98835ada2..ecebdffa3e 100755
--- a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS
+++ b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS
@@ -19,7 +19,6 @@ export PARMgfs=${PARMgfs:-${HOMEgfs}/parm}
export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config}
export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo}
export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product}
-export FIXgfs=${FIXgfs:-${HOMEgfs}/fix}
###################################
# Specify NET and RUN Name and model
diff --git a/jobs/JGFS_ATMOS_POSTSND b/jobs/JGFS_ATMOS_POSTSND
index 721dd27628..4e99ef7a46 100755
--- a/jobs/JGFS_ATMOS_POSTSND
+++ b/jobs/JGFS_ATMOS_POSTSND
@@ -24,7 +24,6 @@ export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn}
export HOMEbufrsnd=${HOMEbufrsnd:-${HOMEgfs}}
export EXECbufrsnd=${EXECbufrsnd:-${HOMEbufrsnd}/exec}
-export FIXbufrsnd=${FIXbufrsnd:-${HOMEbufrsnd}/fix/product}
export PARMbufrsnd=${PARMbufrsnd:-${HOMEbufrsnd}/parm/product}
export USHbufrsnd=${USHbufrsnd:-${HOMEbufrsnd}/ush}
export SCRbufrsnd=${SCRbufrsnd:-${HOMEbufrsnd}/scripts}
diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS b/jobs/JGLOBAL_ATMOS_ANALYSIS
index 9e5850bfc3..3d7a4278a2 100755
--- a/jobs/JGLOBAL_ATMOS_ANALYSIS
+++ b/jobs/JGLOBAL_ATMOS_ANALYSIS
@@ -79,7 +79,7 @@ export PREPQCPF="${COM_OBS}/${OPREFIX}prepbufr.acft_profiles"
# Copy fix file for obsproc # TODO: Why is this necessary?
if [[ ${RUN} = "gfs" ]]; then
mkdir -p ${ROTDIR}/fix
- cp ${FIXgsi}/prepobs_errtable.global ${ROTDIR}/fix/
+ cp ${FIXgfs}/gsi/prepobs_errtable.global ${ROTDIR}/fix/
fi
diff --git a/jobs/JGLOBAL_ATMOS_POST_MANAGER b/jobs/JGLOBAL_ATMOS_POST_MANAGER
index 7c726bc2ad..797d26953b 100755
--- a/jobs/JGLOBAL_ATMOS_POST_MANAGER
+++ b/jobs/JGLOBAL_ATMOS_POST_MANAGER
@@ -17,7 +17,6 @@ export RUN=${RUN:-gfs}
####################################
export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}}
export EXECgfs=${HOMEgfs:-${HOMEgfs}/exec}
-export FIXgfs=${HOMEgfs:-${HOMEgfs}/fix}
export PARMgfs=${HOMEgfs:-${HOMEgfs}/parm}
export USHgfs=${HOMEgfs:-${HOMEgfs}/ush}
diff --git a/jobs/JGLOBAL_ATMOS_SFCANL b/jobs/JGLOBAL_ATMOS_SFCANL
index 0d709e56dd..3d897db4c3 100755
--- a/jobs/JGLOBAL_ATMOS_SFCANL
+++ b/jobs/JGLOBAL_ATMOS_SFCANL
@@ -26,7 +26,7 @@ export GPREFIX="${GDUMP}.t${gcyc}z."
export APREFIX="${CDUMP}.t${cyc}z."
YMD=${PDY} HH=${cyc} generate_com -rx COM_OBS COM_ATMOS_ANALYSIS COM_ATMOS_RESTART \
- COM_LAND_ANALYSIS
+ COM_SNOW_ANALYSIS
RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} generate_com -rx \
COM_OBS_PREV:COM_OBS_TMPL \
diff --git a/jobs/JGLOBAL_PREP_LAND_OBS b/jobs/JGLOBAL_PREP_SNOW_OBS
similarity index 86%
rename from jobs/JGLOBAL_PREP_LAND_OBS
rename to jobs/JGLOBAL_PREP_SNOW_OBS
index 9b14451568..22ed977a5e 100755
--- a/jobs/JGLOBAL_PREP_LAND_OBS
+++ b/jobs/JGLOBAL_PREP_SNOW_OBS
@@ -1,8 +1,8 @@
#! /usr/bin/env bash
source "${HOMEgfs}/ush/preamble.sh"
-export DATA=${DATA:-${DATAROOT}/${RUN}landanl_${cyc}}
-source "${HOMEgfs}/ush/jjob_header.sh" -e "preplandobs" -c "base preplandobs"
+export DATA=${DATA:-${DATAROOT}/${RUN}snowanl_${cyc}}
+source "${HOMEgfs}/ush/jjob_header.sh" -e "prepsnowobs" -c "base prepsnowobs"
##############################################
# Set variables used in the script
@@ -25,7 +25,7 @@ RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} generate_com -rx \
###############################################################
# Run relevant script
-EXSCRIPT=${GDASLANDPREPSH:-${HOMEgfs}/scripts/exglobal_prep_land_obs.py}
+EXSCRIPT=${GDASSNOWPREPPY:-${HOMEgfs}/scripts/exglobal_prep_snow_obs.py}
${EXSCRIPT}
status=$?
[[ ${status} -ne 0 ]] && (echo "FATAL ERROR: Error executing ${EXSCRIPT}, ABORT!"; exit "${status}")
diff --git a/jobs/JGLOBAL_LAND_ANALYSIS b/jobs/JGLOBAL_SNOW_ANALYSIS
similarity index 78%
rename from jobs/JGLOBAL_LAND_ANALYSIS
rename to jobs/JGLOBAL_SNOW_ANALYSIS
index 0cef66de09..db1a8a8ba3 100755
--- a/jobs/JGLOBAL_LAND_ANALYSIS
+++ b/jobs/JGLOBAL_SNOW_ANALYSIS
@@ -1,8 +1,8 @@
#! /usr/bin/env bash
source "${HOMEgfs}/ush/preamble.sh"
-export DATA=${DATA:-${DATAROOT}/${RUN}landanl_${cyc}}
-source "${HOMEgfs}/ush/jjob_header.sh" -e "landanl" -c "base landanl"
+export DATA=${DATA:-${DATAROOT}/${RUN}snowanl_${cyc}}
+source "${HOMEgfs}/ush/jjob_header.sh" -e "snowanl" -c "base snowanl"
##############################################
# Set variables used in the script
@@ -18,17 +18,17 @@ GDUMP="gdas"
# Begin JOB SPECIFIC work
##############################################
# Generate COM variables from templates
-YMD=${PDY} HH=${cyc} generate_com -rx COM_OBS COM_LAND_ANALYSIS COM_CONF
+YMD=${PDY} HH=${cyc} generate_com -rx COM_OBS COM_SNOW_ANALYSIS COM_CONF
RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} generate_com -rx \
COM_ATMOS_RESTART_PREV:COM_ATMOS_RESTART_TMPL
-mkdir -m 775 -p "${COM_LAND_ANALYSIS}" "${COM_CONF}"
+mkdir -m 775 -p "${COM_SNOW_ANALYSIS}" "${COM_CONF}"
###############################################################
# Run relevant script
-EXSCRIPT=${LANDANLPY:-${HOMEgfs}/scripts/exglobal_land_analysis.py}
+EXSCRIPT=${SNOWANLPY:-${HOMEgfs}/scripts/exglobal_snow_analysis.py}
${EXSCRIPT}
status=$?
[[ ${status} -ne 0 ]] && exit "${status}"
diff --git a/jobs/JGLOBAL_WAVE_INIT b/jobs/JGLOBAL_WAVE_INIT
index 7ad742f25a..7825c33496 100755
--- a/jobs/JGLOBAL_WAVE_INIT
+++ b/jobs/JGLOBAL_WAVE_INIT
@@ -10,7 +10,6 @@ export errchk=${errchk:-err_chk}
export MP_PULSE=0
# Path to HOME Directory
-export FIXwave=${FIXwave:-${HOMEgfs}/fix/wave}
export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave}
export USHwave=${USHwave:-${HOMEgfs}/ush}
export EXECwave=${EXECwave:-${HOMEgfs}/exec}
diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNT b/jobs/JGLOBAL_WAVE_POST_BNDPNT
index 9d404077fd..69200fba0b 100755
--- a/jobs/JGLOBAL_WAVE_POST_BNDPNT
+++ b/jobs/JGLOBAL_WAVE_POST_BNDPNT
@@ -9,7 +9,6 @@ export errchk=${errchk:-err_chk}
export MP_PULSE=0
# Path to HOME Directory
-export FIXwave=${FIXwave:-${HOMEgfs}/fix/wave}
export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave}
export USHwave=${USHwave:-${HOMEgfs}/ush}
export EXECwave=${EXECwave:-${HOMEgfs}/exec}
diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL
index 3de49fcc3b..536cadd165 100755
--- a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL
+++ b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL
@@ -13,7 +13,6 @@ export CDATE=${PDY}${cyc}
export MP_PULSE=0
# Path to HOME Directory
-export FIXwave=${FIXwave:-${HOMEgfs}/fix/wave}
export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave}
export USHwave=${USHwave:-${HOMEgfs}/ush}
export EXECwave=${EXECwave:-${HOMEgfs}/exec}
diff --git a/jobs/JGLOBAL_WAVE_POST_PNT b/jobs/JGLOBAL_WAVE_POST_PNT
index 1b573435a3..9ff2f78f63 100755
--- a/jobs/JGLOBAL_WAVE_POST_PNT
+++ b/jobs/JGLOBAL_WAVE_POST_PNT
@@ -9,7 +9,6 @@ export errchk=${errchk:-err_chk}
export MP_PULSE=0
# Path to HOME Directory
-export FIXwave=${FIXwave:-${HOMEgfs}/fix/wave}
export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave}
export USHwave=${USHwave:-${HOMEgfs}/ush}
export EXECwave=${EXECwave:-${HOMEgfs}/exec}
diff --git a/jobs/JGLOBAL_WAVE_POST_SBS b/jobs/JGLOBAL_WAVE_POST_SBS
index 231b793de7..2a7e5657dc 100755
--- a/jobs/JGLOBAL_WAVE_POST_SBS
+++ b/jobs/JGLOBAL_WAVE_POST_SBS
@@ -9,7 +9,6 @@ export errchk=${errchk:-err_chk}
export MP_PULSE=0
# Path to HOME Directory
-export FIXwave=${FIXwave:-${HOMEgfs}/fix/wave}
export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave}
export USHwave=${USHwave:-${HOMEgfs}/ush}
export EXECwave=${EXECwave:-${HOMEgfs}/exec}
diff --git a/jobs/JGLOBAL_WAVE_PREP b/jobs/JGLOBAL_WAVE_PREP
index f246045f53..479f9b8641 100755
--- a/jobs/JGLOBAL_WAVE_PREP
+++ b/jobs/JGLOBAL_WAVE_PREP
@@ -17,7 +17,6 @@ export MP_PULSE=0
export CDO=${CDO_ROOT}/bin/cdo
# Path to HOME Directory
-export FIXwave=${FIXwave:-${HOMEgfs}/fix/wave}
export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave}
export USHwave=${USHwave:-${HOMEgfs}/ush}
export EXECwave=${EXECwave:-${HOMEgfs}/exec}
diff --git a/jobs/rocoto/awips_g2.sh b/jobs/rocoto/awips_g2.sh
index 121c96d63f..ed5a10c164 100755
--- a/jobs/rocoto/awips_g2.sh
+++ b/jobs/rocoto/awips_g2.sh
@@ -44,6 +44,7 @@ for fhr3 in ${fhrlst}; do
fhmax=240
if (( fhr >= fhmin && fhr <= fhmax )); then
if ((fhr % 6 == 0)); then
+ export fcsthrs="${fhr3}"
"${AWIPSG2SH}"
fi
fi
diff --git a/jobs/rocoto/preplandobs.sh b/jobs/rocoto/prepsnowobs.sh
similarity index 92%
rename from jobs/rocoto/preplandobs.sh
rename to jobs/rocoto/prepsnowobs.sh
index 6304dd611b..dae11129eb 100755
--- a/jobs/rocoto/preplandobs.sh
+++ b/jobs/rocoto/prepsnowobs.sh
@@ -8,7 +8,7 @@ source "${HOMEgfs}/ush/preamble.sh"
status=$?
[[ ${status} -ne 0 ]] && exit "${status}"
-export job="preplandobs"
+export job="prepsnowobs"
export jobid="${job}.$$"
###############################################################
@@ -20,6 +20,6 @@ export PYTHONPATH
###############################################################
# Execute the JJOB
-"${HOMEgfs}/jobs/JGLOBAL_PREP_LAND_OBS"
+"${HOMEgfs}/jobs/JGLOBAL_PREP_SNOW_OBS"
status=$?
exit "${status}"
diff --git a/jobs/rocoto/landanl.sh b/jobs/rocoto/snowanl.sh
similarity index 91%
rename from jobs/rocoto/landanl.sh
rename to jobs/rocoto/snowanl.sh
index f49b6f9f8b..627dd860f4 100755
--- a/jobs/rocoto/landanl.sh
+++ b/jobs/rocoto/snowanl.sh
@@ -8,7 +8,7 @@ source "${HOMEgfs}/ush/preamble.sh"
status=$?
[[ ${status} -ne 0 ]] && exit "${status}"
-export job="landanl"
+export job="snowanl"
export jobid="${job}.$$"
###############################################################
@@ -19,6 +19,6 @@ export PYTHONPATH
###############################################################
# Execute the JJOB
-"${HOMEgfs}/jobs/JGLOBAL_LAND_ANALYSIS"
+"${HOMEgfs}/jobs/JGLOBAL_SNOW_ANALYSIS"
status=$?
exit "${status}"
diff --git a/modulefiles/module_base.hera.lua b/modulefiles/module_base.hera.lua
index 31df384298..8703100e76 100644
--- a/modulefiles/module_base.hera.lua
+++ b/modulefiles/module_base.hera.lua
@@ -2,9 +2,8 @@ help([[
Load environment to run GFS on Hera
]])
-spack_stack_ver=(os.getenv("spack_stack_ver") or "None")
-spack_env=(os.getenv("spack_env") or "None")
-prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-" .. spack_stack_ver .. "/envs/" .. spack_env .. "/install/modulefiles/Core")
+local spack_mod_path=(os.getenv("spack_mod_path") or "None")
+prepend_path("MODULEPATH", spack_mod_path)
load(pathJoin("stack-intel", (os.getenv("stack_intel_ver") or "None")))
load(pathJoin("stack-intel-oneapi-mpi", (os.getenv("stack_impi_ver") or "None")))
@@ -33,12 +32,12 @@ load(pathJoin("wgrib2", (os.getenv("wgrib2_ver") or "None")))
load(pathJoin("py-netcdf4", (os.getenv("py_netcdf4_ver") or "None")))
load(pathJoin("py-pyyaml", (os.getenv("py_pyyaml_ver") or "None")))
load(pathJoin("py-jinja2", (os.getenv("py_jinja2_ver") or "None")))
+load(pathJoin("py-pandas", (os.getenv("py_pandas_ver") or "None")))
+load(pathJoin("py-python-dateutil", (os.getenv("py_python_dateutil_ver") or "None")))
+load(pathJoin("met", (os.getenv("met_ver") or "None")))
+load(pathJoin("metplus", (os.getenv("metplus_ver") or "None")))
load(pathJoin("py-xarray", (os.getenv("py_xarray_ver") or "None")))
--- MET/METplus are not available for use with spack-stack, yet
---load(pathJoin("met", (os.getenv("met_ver") or "None")))
---load(pathJoin("metplus", (os.getenv("metplus_ver") or "None")))
-
setenv("WGRIB2","wgrib2")
setenv("UTILROOT",(os.getenv("prod_util_ROOT") or "None"))
diff --git a/modulefiles/module_base.hercules.lua b/modulefiles/module_base.hercules.lua
index 6f2b94dbda..5534437392 100644
--- a/modulefiles/module_base.hercules.lua
+++ b/modulefiles/module_base.hercules.lua
@@ -2,9 +2,8 @@ help([[
Load environment to run GFS on Hercules
]])
-spack_stack_ver=(os.getenv("spack_stack_ver") or "None")
-spack_env=(os.getenv("spack_env") or "None")
-prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-" .. spack_stack_ver .. "/envs/" .. spack_env .. "/install/modulefiles/Core")
+local spack_mod_path=(os.getenv("spack_mod_path") or "None")
+prepend_path("MODULEPATH", spack_mod_path)
load(pathJoin("stack-intel", (os.getenv("stack_intel_ver") or "None")))
load(pathJoin("stack-intel-oneapi-mpi", (os.getenv("stack_impi_ver") or "None")))
@@ -12,10 +11,6 @@ load(pathJoin("intel-oneapi-mkl", (os.getenv("intel_mkl_ver") or "None")))
load(pathJoin("python", (os.getenv("python_ver") or "None")))
load(pathJoin("perl", (os.getenv("perl_ver") or "None")))
--- TODO load NCL once the SAs remove the 'depends_on' statements within it
--- NCL is a static installation and does not depend on any libraries
--- but as is will load, among others, the system netcdf-c/4.9.0 module
---load(pathJoin("ncl", (os.getenv("ncl_ver") or "None")))
load(pathJoin("jasper", (os.getenv("jasper_ver") or "None")))
load(pathJoin("libpng", (os.getenv("libpng_ver") or "None")))
load(pathJoin("cdo", (os.getenv("cdo_ver") or "None")))
@@ -35,6 +30,10 @@ load(pathJoin("wgrib2", (os.getenv("wgrib2_ver") or "None")))
load(pathJoin("py-netcdf4", (os.getenv("py_netcdf4_ver") or "None")))
load(pathJoin("py-pyyaml", (os.getenv("py_pyyaml_ver") or "None")))
load(pathJoin("py-jinja2", (os.getenv("py_jinja2_ver") or "None")))
+load(pathJoin("py-pandas", (os.getenv("py_pandas_ver") or "None")))
+load(pathJoin("py-python-dateutil", (os.getenv("py_python_dateutil_ver") or "None")))
+load(pathJoin("met", (os.getenv("met_ver") or "None")))
+load(pathJoin("metplus", (os.getenv("metplus_ver") or "None")))
load(pathJoin("py-xarray", (os.getenv("py_xarray_ver") or "None")))
setenv("WGRIB2","wgrib2")
diff --git a/modulefiles/module_base.jet.lua b/modulefiles/module_base.jet.lua
index 17365c0c39..55a1eb1c68 100644
--- a/modulefiles/module_base.jet.lua
+++ b/modulefiles/module_base.jet.lua
@@ -2,9 +2,8 @@ help([[
Load environment to run GFS on Jet
]])
-spack_stack_ver=(os.getenv("spack_stack_ver") or "None")
-spack_env=(os.getenv("spack_env") or "None")
-prepend_path("MODULEPATH", "/mnt/lfs4/HFIP/hfv3gfs/role.epic/spack-stack/spack-stack-" .. spack_stack_ver .. "/envs/" .. spack_env .. "/install/modulefiles/Core")
+local spack_mod_path=(os.getenv("spack_mod_path") or "None")
+prepend_path("MODULEPATH", spack_mod_path)
load(pathJoin("stack-intel", (os.getenv("stack_intel_ver") or "None")))
load(pathJoin("stack-intel-oneapi-mpi", (os.getenv("stack_impi_ver") or "None")))
@@ -33,6 +32,10 @@ load(pathJoin("wgrib2", (os.getenv("wgrib2_ver") or "None")))
load(pathJoin("py-netcdf4", (os.getenv("py_netcdf4_ver") or "None")))
load(pathJoin("py-pyyaml", (os.getenv("py_pyyaml_ver") or "None")))
load(pathJoin("py-jinja2", (os.getenv("py_jinja2_ver") or "None")))
+load(pathJoin("py-pandas", (os.getenv("py_pandas_ver") or "None")))
+load(pathJoin("py-python-dateutil", (os.getenv("py_python_dateutil_ver") or "None")))
+load(pathJoin("met", (os.getenv("met_ver") or "None")))
+load(pathJoin("metplus", (os.getenv("metplus_ver") or "None")))
load(pathJoin("py-xarray", (os.getenv("py_xarray_ver") or "None")))
setenv("WGRIB2","wgrib2")
diff --git a/modulefiles/module_base.orion.lua b/modulefiles/module_base.orion.lua
index e3037b9bb7..4e2e24b82f 100644
--- a/modulefiles/module_base.orion.lua
+++ b/modulefiles/module_base.orion.lua
@@ -2,9 +2,8 @@ help([[
Load environment to run GFS on Orion
]])
-spack_stack_ver=(os.getenv("spack_stack_ver") or "None")
-spack_env=(os.getenv("spack_env") or "None")
-prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-" .. spack_stack_ver .. "/envs/" .. spack_env .. "/install/modulefiles/Core")
+local spack_mod_path=(os.getenv("spack_mod_path") or "None")
+prepend_path("MODULEPATH", spack_mod_path)
load(pathJoin("stack-intel", (os.getenv("stack_intel_ver") or "None")))
load(pathJoin("stack-intel-oneapi-mpi", (os.getenv("stack_impi_ver") or "None")))
@@ -31,12 +30,12 @@ load(pathJoin("wgrib2", (os.getenv("wgrib2_ver") or "None")))
load(pathJoin("py-netcdf4", (os.getenv("py_netcdf4_ver") or "None")))
load(pathJoin("py-pyyaml", (os.getenv("py_pyyaml_ver") or "None")))
load(pathJoin("py-jinja2", (os.getenv("py_jinja2_ver") or "None")))
+load(pathJoin("py-pandas", (os.getenv("py_pandas_ver") or "None")))
+load(pathJoin("py-python-dateutil", (os.getenv("py_python_dateutil_ver") or "None")))
+load(pathJoin("met", (os.getenv("met_ver") or "None")))
+load(pathJoin("metplus", (os.getenv("metplus_ver") or "None")))
load(pathJoin("py-xarray", (os.getenv("py_xarray_ver") or "None")))
--- MET/METplus are not yet supported with spack-stack
---load(pathJoin("met", (os.getenv("met_ver") or "None")))
---load(pathJoin("metplus", (os.getenv("metplus_ver") or "None")))
-
setenv("WGRIB2","wgrib2")
setenv("UTILROOT",(os.getenv("prod_util_ROOT") or "None"))
diff --git a/modulefiles/module_base.s4.lua b/modulefiles/module_base.s4.lua
index 59d618e038..d8dccc89ba 100644
--- a/modulefiles/module_base.s4.lua
+++ b/modulefiles/module_base.s4.lua
@@ -2,9 +2,8 @@ help([[
Load environment to run GFS on S4
]])
-spack_stack_ver=(os.getenv("spack_stack_ver") or "None")
-spack_env=(os.getenv("spack_env") or "None")
-prepend_path("MODULEPATH", "/data/prod/jedi/spack-stack/spack-stack-" .. spack_stack_ver .. "/envs/" .. spack_env .. "/install/modulefiles/Core")
+local spack_mod_path=(os.getenv("spack_mod_path") or "None")
+prepend_path("MODULEPATH", spack_mod_path)
load(pathJoin("stack-intel", (os.getenv("stack_intel_ver") or "None")))
load(pathJoin("stack-intel-oneapi-mpi", (os.getenv("stack_impi_ver") or "None")))
@@ -30,6 +29,10 @@ load(pathJoin("wgrib2", (os.getenv("wgrib2_ver") or "None")))
load(pathJoin("py-netcdf4", (os.getenv("py_netcdf4_ver") or "None")))
load(pathJoin("py-pyyaml", (os.getenv("py_pyyaml_ver") or "None")))
load(pathJoin("py-jinja2", (os.getenv("py_jinja2_ver") or "None")))
+load(pathJoin("py-pandas", (os.getenv("py_pandas_ver") or "None")))
+load(pathJoin("py-python-dateutil", (os.getenv("py_python_dateutil_ver") or "None")))
+load(pathJoin("met", (os.getenv("met_ver") or "None")))
+load(pathJoin("metplus", (os.getenv("metplus_ver") or "None")))
load(pathJoin("py-xarray", (os.getenv("py_xarray_ver") or "None")))
setenv("WGRIB2","wgrib2")
diff --git a/modulefiles/module_base.wcoss2.lua b/modulefiles/module_base.wcoss2.lua
index ee4ee6a5fb..43b21ccc25 100644
--- a/modulefiles/module_base.wcoss2.lua
+++ b/modulefiles/module_base.wcoss2.lua
@@ -31,6 +31,11 @@ load(pathJoin("ncdiag", (os.getenv("ncdiag_ver") or "None")))
load(pathJoin("crtm", (os.getenv("crtm_ver") or "None")))
load(pathJoin("wgrib2", (os.getenv("wgrib2_ver") or "None")))
+prepend_path("MODULEPATH", "/apps/ops/para/libs/modulefiles/compiler/intel/19.1.3.304")
+setenv("HPC_OPT", "/apps/ops/para/libs")
+load(pathJoin("met", (os.getenv("met_ver") or "None")))
+load(pathJoin("metplus", (os.getenv("metplus_ver") or "None")))
+
--prepend_path("MODULEPATH", pathJoin("/lfs/h2/emc/global/save/emc.global/git/prepobs/v" .. (os.getenv("prepobs_run_ver") or "None"), "modulefiles"))
prepend_path("MODULEPATH", pathJoin("/lfs/h2/emc/global/save/emc.global/git/prepobs/feature-GFSv17_com_reorg_log_update/modulefiles"))
load(pathJoin("prepobs", (os.getenv("prepobs_run_ver") or "None")))
diff --git a/modulefiles/module_gwci.hera.lua b/modulefiles/module_gwci.hera.lua
index 1aecddf549..3d4c413a44 100644
--- a/modulefiles/module_gwci.hera.lua
+++ b/modulefiles/module_gwci.hera.lua
@@ -2,13 +2,13 @@ help([[
Load environment to run GFS workflow setup scripts on Hera
]])
-prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core")
+prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.6.0/envs/gsi-addon-dev/install/modulefiles/Core")
load(pathJoin("stack-intel", os.getenv("2021.5.0")))
load(pathJoin("stack-intel-oneapi-mpi", os.getenv("2021.5.1")))
load(pathJoin("netcdf-c", os.getenv("4.9.2")))
-load(pathJoin("netcdf-fortran", os.getenv("4.6.0")))
+load(pathJoin("netcdf-fortran", os.getenv("4.6.1")))
load(pathJoin("nccmp","1.9.0.1"))
load(pathJoin("wgrib2", "2.0.8"))
diff --git a/modulefiles/module_gwci.hercules.lua b/modulefiles/module_gwci.hercules.lua
index 9c60aed467..179bbef114 100644
--- a/modulefiles/module_gwci.hercules.lua
+++ b/modulefiles/module_gwci.hercules.lua
@@ -2,7 +2,7 @@ help([[
Load environment to run GFS workflow ci scripts on Hercules
]])
-prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core")
+prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.6.0/envs/gsi-addon-env/install/modulefiles/Core")
load(pathJoin("stack-intel", os.getenv("2021.9.0")))
load(pathJoin("stack-intel-oneapi-mpi", os.getenv("2021.9.0")))
diff --git a/modulefiles/module_gwci.orion.lua b/modulefiles/module_gwci.orion.lua
index 18851ba7d4..cef7acf308 100644
--- a/modulefiles/module_gwci.orion.lua
+++ b/modulefiles/module_gwci.orion.lua
@@ -2,13 +2,13 @@ help([[
Load environment to run GFS workflow ci scripts on Orion
]])
-prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core")
+prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.6.0/envs/gsi-addon-env/install/modulefiles/Core")
load(pathJoin("stack-intel", os.getenv("2022.0.2")))
load(pathJoin("stack-intel-oneapi-mpi", os.getenv("2021.5.1")))
load(pathJoin("netcdf-c", os.getenv("4.9.2")))
-load(pathJoin("netcdf-fortran", os.getenv("4.6.0")))
+load(pathJoin("netcdf-fortran", os.getenv("4.6.1")))
load(pathJoin("nccmp","1.9.0.1"))
load(pathJoin("wgrib2", "2.0.8"))
diff --git a/modulefiles/module_gwsetup.hera.lua b/modulefiles/module_gwsetup.hera.lua
index 961403e1a2..3e8bf2d7f8 100644
--- a/modulefiles/module_gwsetup.hera.lua
+++ b/modulefiles/module_gwsetup.hera.lua
@@ -4,17 +4,17 @@ Load environment to run GFS workflow setup scripts on Hera
load(pathJoin("rocoto"))
-prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core")
+prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.6.0/envs/gsi-addon-dev/install/modulefiles/Core")
local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0"
-local python_ver=os.getenv("python_ver") or "3.10.8"
+local python_ver=os.getenv("python_ver") or "3.11.6"
load(pathJoin("stack-intel", stack_intel_ver))
load(pathJoin("python", python_ver))
load("py-jinja2")
load("py-pyyaml")
load("py-numpy")
-local git_ver=os.getenv("git_ver") or "2.40.0"
+local git_ver=os.getenv("git_ver") or "2.18.0"
load(pathJoin("git", git_ver))
whatis("Description: GFS run setup environment")
diff --git a/modulefiles/module_gwsetup.hercules.lua b/modulefiles/module_gwsetup.hercules.lua
index 673928605c..795b295b30 100644
--- a/modulefiles/module_gwsetup.hercules.lua
+++ b/modulefiles/module_gwsetup.hercules.lua
@@ -5,10 +5,10 @@ Load environment to run GFS workflow ci scripts on Hercules
load(pathJoin("contrib","0.1"))
load(pathJoin("rocoto","1.3.5"))
-prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core")
+prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.6.0/envs/gsi-addon-env/install/modulefiles/Core")
local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.9.0"
-local python_ver=os.getenv("python_ver") or "3.10.8"
+local python_ver=os.getenv("python_ver") or "3.11.6"
load(pathJoin("stack-intel", stack_intel_ver))
load(pathJoin("python", python_ver))
diff --git a/modulefiles/module_gwsetup.jet.lua b/modulefiles/module_gwsetup.jet.lua
index d08389c711..72c40469e4 100644
--- a/modulefiles/module_gwsetup.jet.lua
+++ b/modulefiles/module_gwsetup.jet.lua
@@ -2,12 +2,12 @@ help([[
Load environment to run GFS workflow setup scripts on Jet
]])
-load(pathJoin("rocoto", "1.3.3"))
+load(pathJoin("rocoto"))
-prepend_path("MODULEPATH", "/mnt/lfs4/HFIP/hfv3gfs/role.epic/spack-stack/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core")
+prepend_path("MODULEPATH", "/mnt/lfs4/HFIP/hfv3gfs/role.epic/spack-stack/spack-stack-1.6.0/envs/gsi-addon-dev/install/modulefiles/Core")
local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0"
-local python_ver=os.getenv("python_ver") or "3.10.8"
+local python_ver=os.getenv("python_ver") or "3.11.6"
load(pathJoin("stack-intel", stack_intel_ver))
load(pathJoin("python", python_ver))
diff --git a/modulefiles/module_gwsetup.orion.lua b/modulefiles/module_gwsetup.orion.lua
index 93a59c8e50..96ed50f7f0 100644
--- a/modulefiles/module_gwsetup.orion.lua
+++ b/modulefiles/module_gwsetup.orion.lua
@@ -7,10 +7,10 @@ load(pathJoin("contrib","0.1"))
load(pathJoin("rocoto","1.3.3"))
load(pathJoin("git","2.28.0"))
-prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core")
+prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.6.0/envs/gsi-addon-env/install/modulefiles/Core")
local stack_intel_ver=os.getenv("stack_intel_ver") or "2022.0.2"
-local python_ver=os.getenv("python_ver") or "3.10.8"
+local python_ver=os.getenv("python_ver") or "3.11.6"
load(pathJoin("stack-intel", stack_intel_ver))
load(pathJoin("python", python_ver))
diff --git a/modulefiles/module_gwsetup.s4.lua b/modulefiles/module_gwsetup.s4.lua
index 291c654bb3..77a647006f 100644
--- a/modulefiles/module_gwsetup.s4.lua
+++ b/modulefiles/module_gwsetup.s4.lua
@@ -5,10 +5,10 @@ Load environment to run GFS workflow setup scripts on S4
load(pathJoin("rocoto","1.3.5"))
load(pathJoin("git","2.30.0"))
-prepend_path("MODULEPATH", "/data/prod/jedi/spack-stack/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core")
+prepend_path("MODULEPATH", "/data/prod/jedi/spack-stack/spack-stack-1.6.0/envs/gsi-addon-env/install/modulefiles/Core")
local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0"
-local python_ver=os.getenv("python_ver") or "3.10.8"
+local python_ver=os.getenv("python_ver") or "3.11.6"
load(pathJoin("stack-intel", stack_intel_ver))
load(pathJoin("python", python_ver))
diff --git a/parm/config/gefs/config.base.emc.dyn b/parm/config/gefs/config.base.emc.dyn
index 051a2188c3..0062aed163 100644
--- a/parm/config/gefs/config.base.emc.dyn
+++ b/parm/config/gefs/config.base.emc.dyn
@@ -30,16 +30,6 @@ export UTILgfs=${HOMEgfs}/util
export EXECgfs=${HOMEgfs}/exec
export SCRgfs=${HOMEgfs}/scripts
-export FIXam="${FIXgfs}/am"
-export FIXaer="${FIXgfs}/aer"
-export FIXcpl="${FIXgfs}/cpl"
-export FIXlut="${FIXgfs}/lut"
-export FIXorog="${FIXgfs}/orog"
-export FIXcice="${FIXgfs}/cice"
-export FIXmom="${FIXgfs}/mom6"
-export FIXreg2grb2="${FIXgfs}/reg2grb2"
-export FIXugwd="${FIXgfs}/ugwd"
-
########################################################################
# GLOBAL static environment parameters
@@ -220,9 +210,10 @@ export gfs_cyc=@gfs_cyc@ # 0: no GFS cycle, 1: 00Z only, 2: 00Z and 12Z only, 4:
export FHMIN_GFS=0
export FHMIN=${FHMIN_GFS}
export FHMAX_GFS=@FHMAX_GFS@
-export FHOUT_GFS=6 # Must be 6 for S2S until #1629 is addressed; 3 for ops
+export FHOUT_GFS=6
export FHMAX_HF_GFS=0
export FHOUT_HF_GFS=1
+export FHOUT_OCNICE_GFS=6
if (( gfs_cyc != 0 )); then
export STEP_GFS=$(( 24 / gfs_cyc ))
else
@@ -257,7 +248,7 @@ export imp_physics=8
export DO_JEDIATMVAR="NO"
export DO_JEDIATMENS="NO"
export DO_JEDIOCNVAR="NO"
-export DO_JEDILANDDA="NO"
+export DO_JEDISNOWDA="NO"
export DO_MERGENSST="NO"
# Hybrid related
diff --git a/parm/config/gefs/config.fcst b/parm/config/gefs/config.fcst
index 6a2a852e0b..74a84e1173 100644
--- a/parm/config/gefs/config.fcst
+++ b/parm/config/gefs/config.fcst
@@ -27,6 +27,7 @@ export FHMAX=${FHMAX_GFS}
export FHOUT=${FHOUT_GFS}
export FHMAX_HF=${FHMAX_HF_GFS}
export FHOUT_HF=${FHOUT_HF_GFS}
+export FHOUT_OCNICE=${FHOUT_OCNICE_GFS}
# Get task specific resources
source "${EXPDIR}/config.resources" fcst
diff --git a/parm/config/gefs/config.resources b/parm/config/gefs/config.resources
index 18750d1192..1f6485931f 100644
--- a/parm/config/gefs/config.resources
+++ b/parm/config/gefs/config.resources
@@ -9,10 +9,10 @@ if (( $# != 1 )); then
echo "Must specify an input task argument to set resource variables!"
echo "argument can be any one of the following:"
echo "stage_ic aerosol_init"
- echo "prep preplandobs prepatmiodaobs"
+ echo "prep prepsnowobs prepatmiodaobs"
echo "atmanlinit atmanlrun atmanlfinal"
echo "atmensanlinit atmensanlrun atmensanlfinal"
- echo "landanl"
+ echo "snowanl"
echo "aeroanlinit aeroanlrun aeroanlfinal"
echo "anal sfcanl analcalc analdiag fcst echgres"
echo "upp atmos_products"
diff --git a/parm/config/gefs/config.wave b/parm/config/gefs/config.wave
index e04331e533..5f4448985c 100644
--- a/parm/config/gefs/config.wave
+++ b/parm/config/gefs/config.wave
@@ -7,11 +7,7 @@ echo "BEGIN: config.wave"
# Parameters that are common to all wave model steps
-# System and version
-export wave_sys_ver=v1.0.0
-
export EXECwave="${HOMEgfs}/exec"
-export FIXwave="${HOMEgfs}/fix/wave"
export PARMwave="${HOMEgfs}/parm/wave"
export USHwave="${HOMEgfs}/ush"
diff --git a/parm/config/gefs/yaml/defaults.yaml b/parm/config/gefs/yaml/defaults.yaml
index 84dfcbf718..b19eb57e55 100644
--- a/parm/config/gefs/yaml/defaults.yaml
+++ b/parm/config/gefs/yaml/defaults.yaml
@@ -2,6 +2,6 @@ base:
DO_JEDIATMVAR: "NO"
DO_JEDIATMENS: "NO"
DO_JEDIOCNVAR: "NO"
- DO_JEDILANDDA: "NO"
+ DO_JEDISNOWDA: "NO"
DO_MERGENSST: "NO"
FHMAX_GFS: 120
diff --git a/parm/config/gfs/config.aeroanl b/parm/config/gfs/config.aeroanl
index 32ba43b7ba..8d8aa92c16 100644
--- a/parm/config/gfs/config.aeroanl
+++ b/parm/config/gfs/config.aeroanl
@@ -10,8 +10,7 @@ export OBS_YAML_DIR=${HOMEgfs}/sorc/gdas.cd/parm/aero/obs/config/
export OBS_LIST=${HOMEgfs}/sorc/gdas.cd/parm/aero/obs/lists/gdas_aero_prototype.yaml
export STATICB_TYPE='identity'
export BERROR_YAML=${HOMEgfs}/sorc/gdas.cd/parm/aero/berror/staticb_${STATICB_TYPE}.yaml
-export FIXgdas=${HOMEgfs}/fix/gdas
-export BERROR_DATA_DIR=${FIXgdas}/bump/aero/${CASE_ANL}/
+export BERROR_DATA_DIR=${FIXgfs}/gdas/bump/aero/${CASE_ANL}/
export BERROR_DATE="20160630.000000"
export io_layout_x=@IO_LAYOUT_X@
diff --git a/parm/config/gfs/config.anal b/parm/config/gfs/config.anal
index e3a17f9c6a..98d0e88cc2 100644
--- a/parm/config/gfs/config.anal
+++ b/parm/config/gfs/config.anal
@@ -45,51 +45,51 @@ export AMSR2BF=${AMSR2BF:-/dev/null}
# Set default values for info files and observation error
# NOTE: Remember to set PRVT in config.prep as OBERROR is set below
-export CONVINFO=${FIXgsi}/global_convinfo.txt
-export OZINFO=${FIXgsi}/global_ozinfo.txt
-export SATINFO=${FIXgsi}/global_satinfo.txt
-export OBERROR=${FIXgsi}/prepobs_errtable.global
+export CONVINFO=${FIXgfs}/gsi/global_convinfo.txt
+export OZINFO=${FIXgfs}/gsi/global_ozinfo.txt
+export SATINFO=${FIXgfs}/gsi/global_satinfo.txt
+export OBERROR=${FIXgfs}/gsi/prepobs_errtable.global
# Use experimental dumps in EMC GFS v16 parallels
if [[ ${RUN_ENVIR} == "emc" ]]; then
# Set info files and prepobs.errtable.global for GFS v16 retrospective parallels
if [[ "${PDY}${cyc}" -ge "2019021900" && "${PDY}${cyc}" -lt "2019110706" ]]; then
- export CONVINFO=${FIXgsi}/gfsv16_historical/global_convinfo.txt.2019021900
- export OBERROR=${FIXgsi}/gfsv16_historical/prepobs_errtable.global.2019021900
+ export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2019021900
+ export OBERROR=${FIXgfs}/gsi/gfsv16_historical/prepobs_errtable.global.2019021900
fi
# Place GOES-15 AMVs in monitor, assimilate GOES-17 AMVs, assimilate KOMPSAT-5 gps
if [[ "${PDY}${cyc}" -ge "2019110706" && "${PDY}${cyc}" -lt "2020040718" ]]; then
- export CONVINFO=${FIXgsi}/gfsv16_historical/global_convinfo.txt.2019110706
- export OBERROR=${FIXgsi}/gfsv16_historical/prepobs_errtable.global.2019110706
+ export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2019110706
+ export OBERROR=${FIXgfs}/gsi/gfsv16_historical/prepobs_errtable.global.2019110706
fi
# Assimilate 135 (T) & 235 (uv) Canadian AMDAR observations
if [[ "${PDY}${cyc}" -ge "2020040718" && "${PDY}${cyc}" -lt "2020052612" ]]; then
- export CONVINFO=${FIXgsi}/gfsv16_historical/global_convinfo.txt.2020040718
- export OBERROR=${FIXgsi}/gfsv16_historical/prepobs_errtable.global.2020040718
+ export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2020040718
+ export OBERROR=${FIXgfs}/gsi/gfsv16_historical/prepobs_errtable.global.2020040718
fi
# Assimilate COSMIC-2
if [[ "${PDY}${cyc}" -ge "2020052612" && "${PDY}${cyc}" -lt "2020082412" ]]; then
- export CONVINFO=${FIXgsi}/gfsv16_historical/global_convinfo.txt.2020052612
- export OBERROR=${FIXgsi}/gfsv16_historical/prepobs_errtable.global.2020040718
+ export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2020052612
+ export OBERROR=${FIXgfs}/gsi/gfsv16_historical/prepobs_errtable.global.2020040718
fi
# Assimilate HDOB
if [[ "${PDY}${cyc}" -ge "2020082412" && "${PDY}${cyc}" -lt "2020091612" ]]; then
- export CONVINFO=${FIXgsi}/gfsv16_historical/global_convinfo.txt.2020082412
+ export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2020082412
fi
# Assimilate Metop-C GNSSRO
if [[ "${PDY}${cyc}" -ge "2020091612" && "${PDY}${cyc}" -lt "2021031712" ]]; then
- export CONVINFO=${FIXgsi}/gfsv16_historical/global_convinfo.txt.2020091612
+ export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2020091612
fi
# Assimilate DO-2 GeoOptics
if [[ "${PDY}${cyc}" -ge "2021031712" && "${PDY}${cyc}" -lt "2021091612" ]]; then
- export CONVINFO=${FIXgsi}/gfsv16_historical/global_convinfo.txt.2021031712
+ export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2021031712
fi
# NOTE:
@@ -98,38 +98,38 @@ if [[ ${RUN_ENVIR} == "emc" ]]; then
# needed at this time.
# Assimilate COSMIC-2 GPS
# if [[ "${PDY}${cyc}" -ge "2021110312" && "${PDY}${cyc}" -lt "YYYYMMDDHH" ]]; then
- # export CONVINFO=$FIXgsi/gfsv16_historical/global_convinfo.txt.2021110312
+ # export CONVINFO=${FIXgfs}/gsi/gfsv16_historical/global_convinfo.txt.2021110312
# fi
# Turn off assmilation of OMPS during period of bad data
if [[ "${PDY}${cyc}" -ge "2020011600" && "${PDY}${cyc}" -lt "2020011806" ]]; then
- export OZINFO=${FIXgsi}/gfsv16_historical/global_ozinfo.txt.2020011600
+ export OZINFO=${FIXgfs}/gsi/gfsv16_historical/global_ozinfo.txt.2020011600
fi
# Set satinfo for start of GFS v16 parallels
if [[ "${PDY}${cyc}" -ge "2019021900" && "${PDY}${cyc}" -lt "2019110706" ]]; then
- export SATINFO=${FIXgsi}/gfsv16_historical/global_satinfo.txt.2019021900
+ export SATINFO=${FIXgfs}/gsi/gfsv16_historical/global_satinfo.txt.2019021900
fi
# Turn on assimilation of Metop-C AMSUA and MHS
if [[ "${PDY}${cyc}" -ge "2019110706" && "${PDY}${cyc}" -lt "2020022012" ]]; then
- export SATINFO=${FIXgsi}/gfsv16_historical/global_satinfo.txt.2019110706
+ export SATINFO=${FIXgfs}/gsi/gfsv16_historical/global_satinfo.txt.2019110706
fi
# Turn off assimilation of Metop-A MHS
if [[ "${PDY}${cyc}" -ge "2020022012" && "${PDY}${cyc}" -lt "2021052118" ]]; then
- export SATINFO=${FIXgsi}/gfsv16_historical/global_satinfo.txt.2020022012
+ export SATINFO=${FIXgfs}/gsi/gfsv16_historical/global_satinfo.txt.2020022012
fi
# Turn off assimilation of S-NPP CrIS
if [[ "${PDY}${cyc}" -ge "2021052118" && "${PDY}${cyc}" -lt "2021092206" ]]; then
- export SATINFO=${FIXgsi}/gfsv16_historical/global_satinfo.txt.2021052118
+ export SATINFO=${FIXgfs}/gsi/gfsv16_historical/global_satinfo.txt.2021052118
fi
# Turn off assimilation of MetOp-A IASI
if [[ "${PDY}${cyc}" -ge "2021092206" && "${PDY}${cyc}" -lt "2021102612" ]]; then
- export SATINFO=${FIXgsi}/gfsv16_historical/global_satinfo.txt.2021092206
+ export SATINFO=${FIXgfs}/gsi/gfsv16_historical/global_satinfo.txt.2021092206
fi
# NOTE:
@@ -139,7 +139,7 @@ if [[ ${RUN_ENVIR} == "emc" ]]; then
#
# Turn off assmilation of all Metop-A MHS
# if [[ "${PDY}${cyc}" -ge "2021110312" && "${PDY}${cyc}" -lt "YYYYMMDDHH" ]]; then
- # export SATINFO=$FIXgsi/gfsv16_historical/global_satinfo.txt.2021110312
+ # export SATINFO=${FIXgfs}/gsi/gfsv16_historical/global_satinfo.txt.2021110312
# fi
fi
diff --git a/parm/config/gfs/config.atmanl b/parm/config/gfs/config.atmanl
index 3e6b351cb2..e344b0a662 100644
--- a/parm/config/gfs/config.atmanl
+++ b/parm/config/gfs/config.atmanl
@@ -13,6 +13,9 @@ export STATICB_TYPE="gsibec"
export BERROR_YAML=${HOMEgfs}/sorc/gdas.cd/parm/atm/berror/staticb_${STATICB_TYPE}.yaml
export INTERP_METHOD='barycentric'
+export layout_x_atmanl=@LAYOUT_X_ATMANL@
+export layout_y_atmanl=@LAYOUT_Y_ATMANL@
+
export io_layout_x=@IO_LAYOUT_X@
export io_layout_y=@IO_LAYOUT_Y@
diff --git a/parm/config/gfs/config.atmensanl b/parm/config/gfs/config.atmensanl
index 58fd7b6e22..7a3a632bf8 100644
--- a/parm/config/gfs/config.atmensanl
+++ b/parm/config/gfs/config.atmensanl
@@ -10,6 +10,9 @@ export OBS_LIST=${HOMEgfs}/sorc/gdas.cd/parm/atm/obs/lists/lgetkf_prototype.yaml
export ATMENSYAML=${HOMEgfs}/sorc/gdas.cd/parm/atm/lgetkf/lgetkf.yaml
export INTERP_METHOD='barycentric'
+export layout_x_atmensanl=@LAYOUT_X_ATMENSANL@
+export layout_y_atmensanl=@LAYOUT_Y_ATMENSANL@
+
export io_layout_x=@IO_LAYOUT_X@
export io_layout_y=@IO_LAYOUT_Y@
diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn
index 16aed843ba..32284929c9 100644
--- a/parm/config/gfs/config.base.emc.dyn
+++ b/parm/config/gfs/config.base.emc.dyn
@@ -30,17 +30,6 @@ export UTILgfs="${HOMEgfs}/util"
export EXECgfs="${HOMEgfs}/exec"
export SCRgfs="${HOMEgfs}/scripts"
-export FIXam="${FIXgfs}/am"
-export FIXaer="${FIXgfs}/aer"
-export FIXcpl="${FIXgfs}/cpl"
-export FIXlut="${FIXgfs}/lut"
-export FIXorog="${FIXgfs}/orog"
-export FIXcice="${FIXgfs}/cice"
-export FIXmom="${FIXgfs}/mom6"
-export FIXreg2grb2="${FIXgfs}/reg2grb2"
-export FIXugwd="${FIXgfs}/ugwd"
-export FIXgdas="${FIXgfs}/gdas"
-
########################################################################
# GLOBAL static environment parameters
@@ -96,7 +85,6 @@ export MODE="@MODE@" # cycled/forecast-only
# CLEAR
####################################################
# Build paths relative to $HOMEgfs
-export FIXgsi="${HOMEgfs}/fix/gsi"
export HOMEpost="${HOMEgfs}"
export HOMEobsproc="${BASE_GIT:-}/obsproc/v${obsproc_run_ver:-1.1.2}"
@@ -248,6 +236,7 @@ fi
export FHMIN=0
export FHMAX=9
export FHOUT=3 # Will be changed to 1 in config.base if (DOHYBVAR set to NO and l4densvar set to false)
+export FHOUT_OCNICE=3
# Cycle to run EnKF (set to BOTH for both gfs and gdas)
export EUPD_CYC="gdas"
@@ -258,9 +247,10 @@ export gfs_cyc=@gfs_cyc@ # 0: no GFS cycle, 1: 00Z only, 2: 00Z and 12Z only, 4:
# GFS output and frequency
export FHMIN_GFS=0
export FHMAX_GFS=@FHMAX_GFS@
-export FHOUT_GFS=6 # Must be 6 for S2S until #1629 is addressed; 3 for ops
+export FHOUT_GFS=3
export FHMAX_HF_GFS=0
export FHOUT_HF_GFS=1
+export FHOUT_OCNICE_GFS=6
if (( gfs_cyc != 0 )); then
export STEP_GFS=$(( 24 / gfs_cyc ))
else
@@ -305,7 +295,7 @@ export imp_physics=8
export DO_JEDIATMVAR="@DO_JEDIATMVAR@"
export DO_JEDIATMENS="@DO_JEDIATMENS@"
export DO_JEDIOCNVAR="@DO_JEDIOCNVAR@"
-export DO_JEDILANDDA="@DO_JEDILANDDA@"
+export DO_JEDISNOWDA="@DO_JEDISNOWDA@"
export DO_MERGENSST="@DO_MERGENSST@"
# Hybrid related
@@ -377,7 +367,7 @@ export netcdf_diag=".true."
export binary_diag=".false."
# Verification options
-export DO_METP="NO" # Run METPLUS jobs - set METPLUS settings in config.metp; not supported with spack-stack
+export DO_METP="YES" # Run METPLUS jobs - set METPLUS settings in config.metp
export DO_FIT2OBS="YES" # Run fit to observations package
export DO_VRFY_OCEANDA="NO" # Run SOCA Ocean DA verification tasks
diff --git a/parm/config/gfs/config.com b/parm/config/gfs/config.com
index 1f046fdef6..2f99e709ea 100644
--- a/parm/config/gfs/config.com
+++ b/parm/config/gfs/config.com
@@ -52,7 +52,7 @@ declare -rx COM_CONF_TMPL=${COM_BASE}'/conf'
declare -rx COM_ATMOS_INPUT_TMPL=${COM_BASE}'/model_data/atmos/input'
declare -rx COM_ATMOS_RESTART_TMPL=${COM_BASE}'/model_data/atmos/restart'
declare -rx COM_ATMOS_ANALYSIS_TMPL=${COM_BASE}'/analysis/atmos'
-declare -rx COM_LAND_ANALYSIS_TMPL=${COM_BASE}'/analysis/land'
+declare -rx COM_SNOW_ANALYSIS_TMPL=${COM_BASE}'/analysis/snow'
declare -rx COM_ATMOS_HISTORY_TMPL=${COM_BASE}'/model_data/atmos/history'
declare -rx COM_ATMOS_MASTER_TMPL=${COM_BASE}'/model_data/atmos/master'
declare -rx COM_ATMOS_GRIB_TMPL=${COM_BASE}'/products/atmos/grib2'
diff --git a/parm/config/gfs/config.fcst b/parm/config/gfs/config.fcst
index d2e2664e9c..c03c97e56f 100644
--- a/parm/config/gfs/config.fcst
+++ b/parm/config/gfs/config.fcst
@@ -30,6 +30,7 @@ case ${RUN} in
export FHOUT=${FHOUT_GFS}
export FHMAX_HF=${FHMAX_HF_GFS}
export FHOUT_HF=${FHOUT_HF_GFS}
+ export FHOUT_OCNICE=${FHOUT_OCNICE_GFS}
;;
*gdas)
export FHMAX_HF=0
diff --git a/parm/config/gfs/config.metp b/parm/config/gfs/config.metp
index c90903f6a5..8260d1c472 100644
--- a/parm/config/gfs/config.metp
+++ b/parm/config/gfs/config.metp
@@ -23,6 +23,7 @@ export VERIF_GLOBALSH=${HOMEverif_global}/ush/run_verif_global_in_global_workflo
export model=${PSLOT}
export model_file_format="pgbf{lead?fmt=%2H}.${CDUMP}.{init?fmt=%Y%m%d%H}.grib2"
export model_hpss_dir=${ATARDIR}/..
+export model_dir=${ARCDIR}/..
export get_data_from_hpss="NO"
export hpss_walltime="10"
## OUTPUT SETTINGS
diff --git a/parm/config/gfs/config.prep b/parm/config/gfs/config.prep
index d5ac1925f7..9733eabc19 100644
--- a/parm/config/gfs/config.prep
+++ b/parm/config/gfs/config.prep
@@ -20,7 +20,6 @@ export COMINsyn=${COMINsyn:-$(compath.py ${envir}/com/gfs/${gfs_ver})/syndat}
export HOMERELO=$HOMEgfs
export EXECRELO=${HOMERELO}/exec
-export FIXRELO=${HOMERELO}/fix/am
export USHRELO=${HOMERELO}/ush
# Adjust observation error for GFS v16 parallels
@@ -28,18 +27,18 @@ export USHRELO=${HOMERELO}/ush
# NOTE: Remember to set OBERROR in config.anal as PRVT is set below
#
# Set default prepobs_errtable.global
-export PRVT=$FIXgsi/prepobs_errtable.global
+export PRVT=${FIXgfs}/gsi/prepobs_errtable.global
# Set prepobs.errtable.global for GFS v16 retrospective parallels
if [[ $RUN_ENVIR == "emc" ]]; then
if [[ "${PDY}${cyc}" -ge "2019021900" && "${PDY}${cyc}" -lt "2019110706" ]]; then
- export PRVT=$FIXgsi/gfsv16_historical/prepobs_errtable.global.2019021900
+ export PRVT=${FIXgfs}/gsi/gfsv16_historical/prepobs_errtable.global.2019021900
fi
# Place GOES-15 AMVs in monitor, assimilate GOES-17 AMVs, assimilate KOMPSAT-5 gps
if [[ "${PDY}${cyc}" -ge "2019110706" && "${PDY}${cyc}" -lt "2020040718" ]]; then
- export PRVT=$FIXgsi/gfsv16_historical/prepobs_errtable.global.2019110706
+ export PRVT=${FIXgfs}/gsi/gfsv16_historical/prepobs_errtable.global.2019110706
fi
# NOTE:
diff --git a/parm/config/gfs/config.preplandobs b/parm/config/gfs/config.preplandobs
deleted file mode 100644
index 20ae20b5ad..0000000000
--- a/parm/config/gfs/config.preplandobs
+++ /dev/null
@@ -1,18 +0,0 @@
-#! /usr/bin/env bash
-
-########## config.preplandobs ##########
-# Land Obs Prep specific
-
-echo "BEGIN: config.preplandobs"
-
-# Get task specific resources
-. "${EXPDIR}/config.resources" preplandobs
-
-export GTS_OBS_LIST="${HOMEgfs}/sorc/gdas.cd/parm/land/prep/prep_gts.yaml"
-export BUFR2IODAX="${HOMEgfs}/exec/bufr2ioda.x"
-export FIMS_NML_TMPL="${HOMEgfs}/sorc/gdas.cd/parm/land/prep/fims.nml.j2"
-export IMS_OBS_LIST="${HOMEgfs}/sorc/gdas.cd/parm/land/prep/prep_ims.yaml"
-export CALCFIMSEXE="${HOMEgfs}/exec/calcfIMS.exe"
-export IMS2IODACONV="${HOMEgfs}/ush/imsfv3_scf2ioda.py"
-
-echo "END: config.preplandobs"
diff --git a/parm/config/gfs/config.prepsnowobs b/parm/config/gfs/config.prepsnowobs
new file mode 100644
index 0000000000..64eb8ba896
--- /dev/null
+++ b/parm/config/gfs/config.prepsnowobs
@@ -0,0 +1,18 @@
+#! /usr/bin/env bash
+
+########## config.prepsnowobs ##########
+# Snow Obs Prep specific
+
+echo "BEGIN: config.prepsnowobs"
+
+# Get task specific resources
+. "${EXPDIR}/config.resources" prepsnowobs
+
+export GTS_OBS_LIST="${HOMEgfs}/sorc/gdas.cd/parm/snow/prep/prep_gts.yaml"
+export BUFR2IODAX="${HOMEgfs}/exec/bufr2ioda.x"
+export FIMS_NML_TMPL="${HOMEgfs}/sorc/gdas.cd/parm/snow/prep/fims.nml.j2"
+export IMS_OBS_LIST="${HOMEgfs}/sorc/gdas.cd/parm/snow/prep/prep_ims.yaml"
+export CALCFIMSEXE="${HOMEgfs}/exec/calcfIMS.exe"
+export IMS2IODACONV="${HOMEgfs}/ush/imsfv3_scf2ioda.py"
+
+echo "END: config.prepsnowobs"
diff --git a/parm/config/gfs/config.resources b/parm/config/gfs/config.resources
index b06e634993..7e1f66cb04 100644
--- a/parm/config/gfs/config.resources
+++ b/parm/config/gfs/config.resources
@@ -9,10 +9,10 @@ if (( $# != 1 )); then
echo "Must specify an input task argument to set resource variables!"
echo "argument can be any one of the following:"
echo "stage_ic aerosol_init"
- echo "prep preplandobs prepatmiodaobs"
+ echo "prep prepsnowobs prepatmiodaobs"
echo "atmanlinit atmanlrun atmanlfinal"
echo "atmensanlinit atmensanlrun atmensanlfinal"
- echo "landanl"
+ echo "snowanl"
echo "aeroanlinit aeroanlrun aeroanlfinal"
echo "anal sfcanl analcalc analdiag fcst echgres"
echo "upp atmos_products"
@@ -83,11 +83,11 @@ case ${step} in
fi
;;
- "preplandobs")
- export wtime_preplandobs="00:05:00"
- export npe_preplandobs=1
- export nth_preplandobs=1
- export npe_node_preplandobs=1
+ "prepsnowobs")
+ export wtime_prepsnowobs="00:05:00"
+ export npe_prepsnowobs=1
+ export nth_prepsnowobs=1
+ export npe_node_prepsnowobs=1
;;
"prepatmiodaobs")
@@ -195,9 +195,8 @@ case ${step} in
;;
"atmanlinit")
- # make below case dependent later
- export layout_x=8
- export layout_y=8
+ export layout_x=${layout_x_atmanl}
+ export layout_y=${layout_y_atmanl}
export layout_gsib_x=$(( layout_x * 3 ))
export layout_gsib_y=$(( layout_y * 2 ))
@@ -211,9 +210,8 @@ case ${step} in
;;
"atmanlrun")
- # make below case dependent later
- export layout_x=8
- export layout_y=8
+ export layout_x=${layout_x_atmanl}
+ export layout_y=${layout_y_atmanl}
export wtime_atmanlrun="00:30:00"
export npe_atmanlrun=$(( layout_x * layout_y * 6 ))
@@ -233,7 +231,7 @@ case ${step} in
export is_exclusive=True
;;
- "landanl")
+ "snowanl")
# below lines are for creating JEDI YAML
case ${CASE} in
"C768")
@@ -256,10 +254,10 @@ case ${step} in
export layout_x
export layout_y
- export wtime_landanl="00:15:00"
- export npe_landanl=$(( layout_x * layout_y * 6 ))
- export nth_landanl=1
- export npe_node_landanl=$(( npe_node_max / nth_landanl ))
+ export wtime_snowanl="00:15:00"
+ export npe_snowanl=$(( layout_x * layout_y * 6 ))
+ export nth_snowanl=1
+ export npe_node_snowanl=$(( npe_node_max / nth_snowanl ))
;;
"aeroanlinit")
@@ -635,7 +633,7 @@ case ${step} in
declare -x "wtime_${step}_gfs"="03:00:00"
;;
"C384")
- declare -x "wtime_${step}"="00:10:00"
+ declare -x "wtime_${step}"="00:30:00"
declare -x "wtime_${step}_gfs"="06:00:00"
;;
"C768" | "C1152")
@@ -829,9 +827,8 @@ case ${step} in
;;
"atmensanlinit")
- # make below case dependent later
- export layout_x=8
- export layout_y=8
+ export layout_x=${layout_x_atmensanl}
+ export layout_y=${layout_y_atmensanl}
export wtime_atmensanlinit="00:10:00"
export npe_atmensanlinit=1
@@ -841,9 +838,8 @@ case ${step} in
;;
"atmensanlrun")
- # make below case dependent later
- export layout_x=8
- export layout_y=8
+ export layout_x=${layout_x_atmensanl}
+ export layout_y=${layout_y_atmensanl}
export wtime_atmensanlrun="00:30:00"
export npe_atmensanlrun=$(( layout_x * layout_y * 6 ))
diff --git a/parm/config/gfs/config.landanl b/parm/config/gfs/config.snowanl
similarity index 52%
rename from parm/config/gfs/config.landanl
rename to parm/config/gfs/config.snowanl
index 70ebae7529..3303ce402b 100644
--- a/parm/config/gfs/config.landanl
+++ b/parm/config/gfs/config.snowanl
@@ -1,24 +1,24 @@
#! /usr/bin/env bash
-########## config.landanl ##########
-# configuration common to land analysis tasks
+########## config.snowanl ##########
+# configuration common to snow analysis tasks
-echo "BEGIN: config.landanl"
+echo "BEGIN: config.snowanl"
# Get task specific resources
-. "${EXPDIR}/config.resources" landanl
+. "${EXPDIR}/config.resources" snowanl
-obs_list_name=gdas_land_gts_only.yaml
+obs_list_name=gdas_snow_gts_only.yaml
if [[ "${cyc}" = "18" ]]; then
- obs_list_name=gdas_land_prototype.yaml
+ obs_list_name=gdas_snow_prototype.yaml
fi
-export OBS_YAML_DIR=${HOMEgfs}/sorc/gdas.cd/parm/land/obs/config/
-export OBS_LIST=${HOMEgfs}/sorc/gdas.cd/parm/land/obs/lists/${obs_list_name}
+export OBS_YAML_DIR=${HOMEgfs}/sorc/gdas.cd/parm/snow/obs/config/
+export OBS_LIST=${HOMEgfs}/sorc/gdas.cd/parm/snow/obs/lists/${obs_list_name}
# Name of the JEDI executable and its yaml template
export JEDIEXE="${HOMEgfs}/exec/fv3jedi_letkf.x"
-export JEDIYAML="${HOMEgfs}/sorc/gdas.cd/parm/land/letkfoi/letkfoi.yaml"
+export JEDIYAML="${HOMEgfs}/sorc/gdas.cd/parm/snow/letkfoi/letkfoi.yaml"
# Ensemble member properties
export SNOWDEPTHVAR="snodl"
@@ -26,9 +26,9 @@ export BESTDDEV="30." # Background Error Std. Dev. for LETKFOI
# Name of the executable that applies increment to bkg and its namelist template
export APPLY_INCR_EXE="${HOMEgfs}/exec/apply_incr.exe"
-export APPLY_INCR_NML_TMPL="${HOMEgfs}/sorc/gdas.cd/parm/land/letkfoi/apply_incr_nml.j2"
+export APPLY_INCR_NML_TMPL="${HOMEgfs}/sorc/gdas.cd/parm/snow/letkfoi/apply_incr_nml.j2"
export io_layout_x=@IO_LAYOUT_X@
export io_layout_y=@IO_LAYOUT_Y@
-echo "END: config.landanl"
+echo "END: config.snowanl"
diff --git a/parm/config/gfs/config.stage_ic b/parm/config/gfs/config.stage_ic
index dc224b72db..63d0e4a5cf 100644
--- a/parm/config/gfs/config.stage_ic
+++ b/parm/config/gfs/config.stage_ic
@@ -8,7 +8,7 @@ echo "BEGIN: config.stage_ic"
source "${EXPDIR}/config.resources" stage_ic
case "${CASE}" in
- "C48" | "C96")
+ "C48" | "C96" | "C192")
export CPL_ATMIC="workflow_${CASE}_refactored"
export CPL_ICEIC="workflow_${CASE}_refactored"
export CPL_OCNIC="workflow_${CASE}_refactored"
diff --git a/parm/config/gfs/config.wave b/parm/config/gfs/config.wave
index 74f5b78937..8068ffcda6 100644
--- a/parm/config/gfs/config.wave
+++ b/parm/config/gfs/config.wave
@@ -7,11 +7,7 @@ echo "BEGIN: config.wave"
# Parameters that are common to all wave model steps
-# System and version
-export wave_sys_ver=v1.0.0
-
export EXECwave="${HOMEgfs}/exec"
-export FIXwave="${HOMEgfs}/fix/wave"
export PARMwave="${HOMEgfs}/parm/wave"
export USHwave="${HOMEgfs}/ush"
diff --git a/parm/config/gfs/yaml/defaults.yaml b/parm/config/gfs/yaml/defaults.yaml
index 10af47de07..e6108fff29 100644
--- a/parm/config/gfs/yaml/defaults.yaml
+++ b/parm/config/gfs/yaml/defaults.yaml
@@ -3,16 +3,20 @@ base:
DO_JEDIATMVAR: "NO"
DO_JEDIATMENS: "NO"
DO_JEDIOCNVAR: "NO"
- DO_JEDILANDDA: "NO"
+ DO_JEDISNOWDA: "NO"
DO_MERGENSST: "NO"
DO_GOES: "NO"
FHMAX_GFS: 120
atmanl:
+ LAYOUT_X_ATMANL: 8
+ LAYOUT_Y_ATMANL: 8
IO_LAYOUT_X: 1
IO_LAYOUT_Y: 1
atmensanl:
+ LAYOUT_X_ATMENSANL: 8
+ LAYOUT_Y_ATMENSANL: 8
IO_LAYOUT_X: 1
IO_LAYOUT_Y: 1
@@ -20,7 +24,7 @@ aeroanl:
IO_LAYOUT_X: 1
IO_LAYOUT_Y: 1
-landanl:
+snowanl:
IO_LAYOUT_X: 1
IO_LAYOUT_Y: 1
diff --git a/parm/gdas/aero_jedi_fix.yaml b/parm/gdas/aero_jedi_fix.yaml
index 85a00c3c30..16cbeac6e7 100644
--- a/parm/gdas/aero_jedi_fix.yaml
+++ b/parm/gdas/aero_jedi_fix.yaml
@@ -1,11 +1,11 @@
mkdir:
- !ENV ${DATA}/fv3jedi
copy:
-- - !ENV ${FIXgdas}/fv3jedi/fv3files/akbk$(npz).nc4
+- - !ENV ${FIXgfs}/gdas/fv3jedi/fv3files/akbk$(npz).nc4
- !ENV ${DATA}/fv3jedi/akbk.nc4
-- - !ENV ${FIXgdas}/fv3jedi/fv3files/fmsmpp.nml
+- - !ENV ${FIXgfs}/gdas/fv3jedi/fv3files/fmsmpp.nml
- !ENV ${DATA}/fv3jedi/fmsmpp.nml
-- - !ENV ${FIXgdas}/fv3jedi/fv3files/field_table_gfdl
+- - !ENV ${FIXgfs}/gdas/fv3jedi/fv3files/field_table_gfdl
- !ENV ${DATA}/fv3jedi/field_table
- - !ENV $(HOMEgfs)/sorc/gdas.cd/parm/io/fv3jedi_fieldmetadata_restart.yaml
- !ENV ${DATA}/fv3jedi/fv3jedi_fieldmetadata_restart.yaml
diff --git a/parm/gdas/land_jedi_fix.yaml b/parm/gdas/snow_jedi_fix.yaml
similarity index 100%
rename from parm/gdas/land_jedi_fix.yaml
rename to parm/gdas/snow_jedi_fix.yaml
diff --git a/parm/ufs/fix/gfs/atmos.fixed_files.yaml b/parm/ufs/fix/gfs/atmos.fixed_files.yaml
index 7d901fe17b..8db691b49c 100644
--- a/parm/ufs/fix/gfs/atmos.fixed_files.yaml
+++ b/parm/ufs/fix/gfs/atmos.fixed_files.yaml
@@ -1,85 +1,85 @@
copy:
# Atmosphere mosaic file linked as the grid_spec file (atm only)
- - [$(FIXorog)/$(CASE)/$(CASE)_mosaic.nc, $(DATA)/INPUT/grid_spec.nc]
+ - [$(FIXgfs)/orog/$(CASE)/$(CASE)_mosaic.nc, $(DATA)/INPUT/grid_spec.nc]
# Atmosphere grid tile files
- - [$(FIXorog)/$(CASE)/$(CASE)_grid.tile1.nc, $(DATA)/INPUT/]
- - [$(FIXorog)/$(CASE)/$(CASE)_grid.tile2.nc, $(DATA)/INPUT/]
- - [$(FIXorog)/$(CASE)/$(CASE)_grid.tile3.nc, $(DATA)/INPUT/]
- - [$(FIXorog)/$(CASE)/$(CASE)_grid.tile4.nc, $(DATA)/INPUT/]
- - [$(FIXorog)/$(CASE)/$(CASE)_grid.tile5.nc, $(DATA)/INPUT/]
- - [$(FIXorog)/$(CASE)/$(CASE)_grid.tile6.nc, $(DATA)/INPUT/]
+ - [$(FIXgfs)/orog/$(CASE)/$(CASE)_grid.tile1.nc, $(DATA)/INPUT/]
+ - [$(FIXgfs)/orog/$(CASE)/$(CASE)_grid.tile2.nc, $(DATA)/INPUT/]
+ - [$(FIXgfs)/orog/$(CASE)/$(CASE)_grid.tile3.nc, $(DATA)/INPUT/]
+ - [$(FIXgfs)/orog/$(CASE)/$(CASE)_grid.tile4.nc, $(DATA)/INPUT/]
+ - [$(FIXgfs)/orog/$(CASE)/$(CASE)_grid.tile5.nc, $(DATA)/INPUT/]
+ - [$(FIXgfs)/orog/$(CASE)/$(CASE)_grid.tile6.nc, $(DATA)/INPUT/]
- # oro_data_ls and oro_data_ss files from FIXugwd
- - [$(FIXugwd)/$(CASE)/$(CASE)_oro_data_ls.tile1.nc, $(DATA)/INPUT/oro_data_ls.tile1.nc]
- - [$(FIXugwd)/$(CASE)/$(CASE)_oro_data_ls.tile2.nc, $(DATA)/INPUT/oro_data_ls.tile2.nc]
- - [$(FIXugwd)/$(CASE)/$(CASE)_oro_data_ls.tile3.nc, $(DATA)/INPUT/oro_data_ls.tile3.nc]
- - [$(FIXugwd)/$(CASE)/$(CASE)_oro_data_ls.tile4.nc, $(DATA)/INPUT/oro_data_ls.tile4.nc]
- - [$(FIXugwd)/$(CASE)/$(CASE)_oro_data_ls.tile5.nc, $(DATA)/INPUT/oro_data_ls.tile5.nc]
- - [$(FIXugwd)/$(CASE)/$(CASE)_oro_data_ls.tile6.nc, $(DATA)/INPUT/oro_data_ls.tile6.nc]
- - [$(FIXugwd)/$(CASE)/$(CASE)_oro_data_ss.tile1.nc, $(DATA)/INPUT/oro_data_ss.tile1.nc]
- - [$(FIXugwd)/$(CASE)/$(CASE)_oro_data_ss.tile2.nc, $(DATA)/INPUT/oro_data_ss.tile2.nc]
- - [$(FIXugwd)/$(CASE)/$(CASE)_oro_data_ss.tile3.nc, $(DATA)/INPUT/oro_data_ss.tile3.nc]
- - [$(FIXugwd)/$(CASE)/$(CASE)_oro_data_ss.tile4.nc, $(DATA)/INPUT/oro_data_ss.tile4.nc]
- - [$(FIXugwd)/$(CASE)/$(CASE)_oro_data_ss.tile5.nc, $(DATA)/INPUT/oro_data_ss.tile5.nc]
- - [$(FIXugwd)/$(CASE)/$(CASE)_oro_data_ss.tile6.nc, $(DATA)/INPUT/oro_data_ss.tile6.nc]
+ # oro_data_ls and oro_data_ss files from FIXgfs/ugwd
+ - [$(FIXgfs)/ugwd/$(CASE)/$(CASE)_oro_data_ls.tile1.nc, $(DATA)/INPUT/oro_data_ls.tile1.nc]
+ - [$(FIXgfs)/ugwd/$(CASE)/$(CASE)_oro_data_ls.tile2.nc, $(DATA)/INPUT/oro_data_ls.tile2.nc]
+ - [$(FIXgfs)/ugwd/$(CASE)/$(CASE)_oro_data_ls.tile3.nc, $(DATA)/INPUT/oro_data_ls.tile3.nc]
+ - [$(FIXgfs)/ugwd/$(CASE)/$(CASE)_oro_data_ls.tile4.nc, $(DATA)/INPUT/oro_data_ls.tile4.nc]
+ - [$(FIXgfs)/ugwd/$(CASE)/$(CASE)_oro_data_ls.tile5.nc, $(DATA)/INPUT/oro_data_ls.tile5.nc]
+ - [$(FIXgfs)/ugwd/$(CASE)/$(CASE)_oro_data_ls.tile6.nc, $(DATA)/INPUT/oro_data_ls.tile6.nc]
+ - [$(FIXgfs)/ugwd/$(CASE)/$(CASE)_oro_data_ss.tile1.nc, $(DATA)/INPUT/oro_data_ss.tile1.nc]
+ - [$(FIXgfs)/ugwd/$(CASE)/$(CASE)_oro_data_ss.tile2.nc, $(DATA)/INPUT/oro_data_ss.tile2.nc]
+ - [$(FIXgfs)/ugwd/$(CASE)/$(CASE)_oro_data_ss.tile3.nc, $(DATA)/INPUT/oro_data_ss.tile3.nc]
+ - [$(FIXgfs)/ugwd/$(CASE)/$(CASE)_oro_data_ss.tile4.nc, $(DATA)/INPUT/oro_data_ss.tile4.nc]
+ - [$(FIXgfs)/ugwd/$(CASE)/$(CASE)_oro_data_ss.tile5.nc, $(DATA)/INPUT/oro_data_ss.tile5.nc]
+ - [$(FIXgfs)/ugwd/$(CASE)/$(CASE)_oro_data_ss.tile6.nc, $(DATA)/INPUT/oro_data_ss.tile6.nc]
# GWD??
- - [$(FIXugwd)/ugwp_limb_tau.nc, $(DATA)/ugwp_limb_tau.nc]
+ - [$(FIXgfs)/ugwd/ugwp_limb_tau.nc, $(DATA)/ugwp_limb_tau.nc]
# CO2 climatology
- - [$(FIXam)/co2monthlycyc.txt, $(DATA)/co2monthlycyc.txt]
- - [$(FIXam)/global_co2historicaldata_glob.txt, $(DATA)/co2historicaldata_glob.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2009.txt, $(DATA)/co2historicaldata_2009.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2010.txt, $(DATA)/co2historicaldata_2010.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2011.txt, $(DATA)/co2historicaldata_2011.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2012.txt, $(DATA)/co2historicaldata_2012.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2013.txt, $(DATA)/co2historicaldata_2013.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2014.txt, $(DATA)/co2historicaldata_2014.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2015.txt, $(DATA)/co2historicaldata_2015.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2016.txt, $(DATA)/co2historicaldata_2016.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2017.txt, $(DATA)/co2historicaldata_2017.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2018.txt, $(DATA)/co2historicaldata_2018.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2019.txt, $(DATA)/co2historicaldata_2019.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2020.txt, $(DATA)/co2historicaldata_2020.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2021.txt, $(DATA)/co2historicaldata_2021.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2022.txt, $(DATA)/co2historicaldata_2022.txt]
- - [$(FIXam)/fix_co2_proj/global_co2historicaldata_2023.txt, $(DATA)/co2historicaldata_2023.txt]
+ - [$(FIXgfs)/am/co2monthlycyc.txt, $(DATA)/co2monthlycyc.txt]
+ - [$(FIXgfs)/am/global_co2historicaldata_glob.txt, $(DATA)/co2historicaldata_glob.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2009.txt, $(DATA)/co2historicaldata_2009.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2010.txt, $(DATA)/co2historicaldata_2010.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2011.txt, $(DATA)/co2historicaldata_2011.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2012.txt, $(DATA)/co2historicaldata_2012.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2013.txt, $(DATA)/co2historicaldata_2013.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2014.txt, $(DATA)/co2historicaldata_2014.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2015.txt, $(DATA)/co2historicaldata_2015.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2016.txt, $(DATA)/co2historicaldata_2016.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2017.txt, $(DATA)/co2historicaldata_2017.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2018.txt, $(DATA)/co2historicaldata_2018.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2019.txt, $(DATA)/co2historicaldata_2019.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2020.txt, $(DATA)/co2historicaldata_2020.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2021.txt, $(DATA)/co2historicaldata_2021.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2022.txt, $(DATA)/co2historicaldata_2022.txt]
+ - [$(FIXgfs)/am/fix_co2_proj/global_co2historicaldata_2023.txt, $(DATA)/co2historicaldata_2023.txt]
- # FIXam files
- - [$(FIXam)/global_climaeropac_global.txt, $(DATA)/aerosol.dat]
- - [$(FIXam)/ozprdlos_2015_new_sbuvO3_tclm15_nuchem.f77, $(DATA)/global_o3prdlos.f77]
- - [$(FIXam)/global_h2o_pltc.f77, $(DATA)/global_h2oprdlos.f77]
- - [$(FIXam)/global_glacier.2x2.grb, $(DATA)/global_glacier.2x2.grb]
- - [$(FIXam)/global_maxice.2x2.grb, $(DATA)/global_maxice.2x2.grb]
- - [$(FIXam)/global_snoclim.1.875.grb, $(DATA)/global_snoclim.1.875.grb]
- - [$(FIXam)/global_slmask.t1534.3072.1536.grb, $(DATA)/global_slmask.t1534.3072.1536.grb]
- - [$(FIXam)/global_soilmgldas.statsgo.t1534.3072.1536.grb, $(DATA)/global_soilmgldas.statsgo.t1534.3072.1536.grb]
- - [$(FIXam)/global_solarconstant_noaa_an.txt, $(DATA)/solarconstant_noaa_an.txt]
- - [$(FIXam)/global_sfc_emissivity_idx.txt, $(DATA)/sfc_emissivity_idx.txt]
- - [$(FIXam)/RTGSST.1982.2012.monthly.clim.grb, $(DATA)/RTGSST.1982.2012.monthly.clim.grb]
- - [$(FIXam)/IMS-NIC.blended.ice.monthly.clim.grb, $(DATA)/IMS-NIC.blended.ice.monthly.clim.grb]
+ # FIXgfs/am files
+ - [$(FIXgfs)/am/global_climaeropac_global.txt, $(DATA)/aerosol.dat]
+ - [$(FIXgfs)/am/ozprdlos_2015_new_sbuvO3_tclm15_nuchem.f77, $(DATA)/global_o3prdlos.f77]
+ - [$(FIXgfs)/am/global_h2o_pltc.f77, $(DATA)/global_h2oprdlos.f77]
+ - [$(FIXgfs)/am/global_glacier.2x2.grb, $(DATA)/global_glacier.2x2.grb]
+ - [$(FIXgfs)/am/global_maxice.2x2.grb, $(DATA)/global_maxice.2x2.grb]
+ - [$(FIXgfs)/am/global_snoclim.1.875.grb, $(DATA)/global_snoclim.1.875.grb]
+ - [$(FIXgfs)/am/global_slmask.t1534.3072.1536.grb, $(DATA)/global_slmask.t1534.3072.1536.grb]
+ - [$(FIXgfs)/am/global_soilmgldas.statsgo.t1534.3072.1536.grb, $(DATA)/global_soilmgldas.statsgo.t1534.3072.1536.grb]
+ - [$(FIXgfs)/am/global_solarconstant_noaa_an.txt, $(DATA)/solarconstant_noaa_an.txt]
+ - [$(FIXgfs)/am/global_sfc_emissivity_idx.txt, $(DATA)/sfc_emissivity_idx.txt]
+ - [$(FIXgfs)/am/RTGSST.1982.2012.monthly.clim.grb, $(DATA)/RTGSST.1982.2012.monthly.clim.grb]
+ - [$(FIXgfs)/am/IMS-NIC.blended.ice.monthly.clim.grb, $(DATA)/IMS-NIC.blended.ice.monthly.clim.grb]
# MERRA2 Aerosol Climatology
- - [$(FIXaer)/merra2.aerclim.2003-2014.m01.nc, $(DATA)/aeroclim.m01.nc]
- - [$(FIXaer)/merra2.aerclim.2003-2014.m02.nc, $(DATA)/aeroclim.m02.nc]
- - [$(FIXaer)/merra2.aerclim.2003-2014.m03.nc, $(DATA)/aeroclim.m03.nc]
- - [$(FIXaer)/merra2.aerclim.2003-2014.m04.nc, $(DATA)/aeroclim.m04.nc]
- - [$(FIXaer)/merra2.aerclim.2003-2014.m05.nc, $(DATA)/aeroclim.m05.nc]
- - [$(FIXaer)/merra2.aerclim.2003-2014.m06.nc, $(DATA)/aeroclim.m06.nc]
- - [$(FIXaer)/merra2.aerclim.2003-2014.m07.nc, $(DATA)/aeroclim.m07.nc]
- - [$(FIXaer)/merra2.aerclim.2003-2014.m08.nc, $(DATA)/aeroclim.m08.nc]
- - [$(FIXaer)/merra2.aerclim.2003-2014.m09.nc, $(DATA)/aeroclim.m09.nc]
- - [$(FIXaer)/merra2.aerclim.2003-2014.m10.nc, $(DATA)/aeroclim.m10.nc]
- - [$(FIXaer)/merra2.aerclim.2003-2014.m11.nc, $(DATA)/aeroclim.m11.nc]
- - [$(FIXaer)/merra2.aerclim.2003-2014.m12.nc, $(DATA)/aeroclim.m12.nc]
+ - [$(FIXgfs)/aer/merra2.aerclim.2003-2014.m01.nc, $(DATA)/aeroclim.m01.nc]
+ - [$(FIXgfs)/aer/merra2.aerclim.2003-2014.m02.nc, $(DATA)/aeroclim.m02.nc]
+ - [$(FIXgfs)/aer/merra2.aerclim.2003-2014.m03.nc, $(DATA)/aeroclim.m03.nc]
+ - [$(FIXgfs)/aer/merra2.aerclim.2003-2014.m04.nc, $(DATA)/aeroclim.m04.nc]
+ - [$(FIXgfs)/aer/merra2.aerclim.2003-2014.m05.nc, $(DATA)/aeroclim.m05.nc]
+ - [$(FIXgfs)/aer/merra2.aerclim.2003-2014.m06.nc, $(DATA)/aeroclim.m06.nc]
+ - [$(FIXgfs)/aer/merra2.aerclim.2003-2014.m07.nc, $(DATA)/aeroclim.m07.nc]
+ - [$(FIXgfs)/aer/merra2.aerclim.2003-2014.m08.nc, $(DATA)/aeroclim.m08.nc]
+ - [$(FIXgfs)/aer/merra2.aerclim.2003-2014.m09.nc, $(DATA)/aeroclim.m09.nc]
+ - [$(FIXgfs)/aer/merra2.aerclim.2003-2014.m10.nc, $(DATA)/aeroclim.m10.nc]
+ - [$(FIXgfs)/aer/merra2.aerclim.2003-2014.m11.nc, $(DATA)/aeroclim.m11.nc]
+ - [$(FIXgfs)/aer/merra2.aerclim.2003-2014.m12.nc, $(DATA)/aeroclim.m12.nc]
# Optical depth
- - [$(FIXlut)/optics_BC.v1_3.dat, $(DATA)/optics_BC.dat]
- - [$(FIXlut)/optics_DU.v15_3.dat, $(DATA)/optics_DU.dat]
- - [$(FIXlut)/optics_OC.v1_3.dat, $(DATA)/optics_OC.dat]
- - [$(FIXlut)/optics_SS.v3_3.dat, $(DATA)/optics_SS.dat]
- - [$(FIXlut)/optics_SU.v1_3.dat, $(DATA)/optics_SU.dat]
+ - [$(FIXgfs)/lut/optics_BC.v1_3.dat, $(DATA)/optics_BC.dat]
+ - [$(FIXgfs)/lut/optics_DU.v15_3.dat, $(DATA)/optics_DU.dat]
+ - [$(FIXgfs)/lut/optics_OC.v1_3.dat, $(DATA)/optics_OC.dat]
+ - [$(FIXgfs)/lut/optics_SS.v3_3.dat, $(DATA)/optics_SS.dat]
+ - [$(FIXgfs)/lut/optics_SU.v1_3.dat, $(DATA)/optics_SU.dat]
# fd_ufs.yaml file
- [$(HOMEgfs)/sorc/ufs_model.fd/tests/parm/fd_ufs.yaml, $(DATA)/]
diff --git a/parm/ufs/fix/gfs/land.fixed_files.yaml b/parm/ufs/fix/gfs/land.fixed_files.yaml
index bb2d060963..8e4d221dbc 100644
--- a/parm/ufs/fix/gfs/land.fixed_files.yaml
+++ b/parm/ufs/fix/gfs/land.fixed_files.yaml
@@ -1,58 +1,58 @@
copy:
- # Files from FIXorog/C??/sfc
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).facsf.tile1.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).facsf.tile2.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).facsf.tile3.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).facsf.tile4.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).facsf.tile5.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).facsf.tile6.nc, $(DATA)/]
+ # Files from FIXgfs/orog/C??/sfc
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).facsf.tile1.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).facsf.tile2.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).facsf.tile3.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).facsf.tile4.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).facsf.tile5.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).facsf.tile6.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).maximum_snow_albedo.tile1.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).maximum_snow_albedo.tile2.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).maximum_snow_albedo.tile3.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).maximum_snow_albedo.tile4.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).maximum_snow_albedo.tile5.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).maximum_snow_albedo.tile6.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).maximum_snow_albedo.tile1.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).maximum_snow_albedo.tile2.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).maximum_snow_albedo.tile3.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).maximum_snow_albedo.tile4.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).maximum_snow_albedo.tile5.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).maximum_snow_albedo.tile6.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).slope_type.tile1.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).slope_type.tile2.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).slope_type.tile3.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).slope_type.tile4.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).slope_type.tile5.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).slope_type.tile6.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).slope_type.tile1.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).slope_type.tile2.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).slope_type.tile3.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).slope_type.tile4.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).slope_type.tile5.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).slope_type.tile6.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).snowfree_albedo.tile1.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).snowfree_albedo.tile2.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).snowfree_albedo.tile3.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).snowfree_albedo.tile4.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).snowfree_albedo.tile5.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).snowfree_albedo.tile6.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).snowfree_albedo.tile1.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).snowfree_albedo.tile2.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).snowfree_albedo.tile3.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).snowfree_albedo.tile4.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).snowfree_albedo.tile5.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).snowfree_albedo.tile6.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).soil_type.tile1.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).soil_type.tile2.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).soil_type.tile3.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).soil_type.tile4.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).soil_type.tile5.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).soil_type.tile6.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).soil_type.tile1.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).soil_type.tile2.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).soil_type.tile3.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).soil_type.tile4.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).soil_type.tile5.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).soil_type.tile6.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).substrate_temperature.tile1.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).substrate_temperature.tile2.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).substrate_temperature.tile3.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).substrate_temperature.tile4.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).substrate_temperature.tile5.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).substrate_temperature.tile6.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).substrate_temperature.tile1.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).substrate_temperature.tile2.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).substrate_temperature.tile3.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).substrate_temperature.tile4.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).substrate_temperature.tile5.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).substrate_temperature.tile6.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_greenness.tile1.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_greenness.tile2.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_greenness.tile3.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_greenness.tile4.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_greenness.tile5.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_greenness.tile6.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_greenness.tile1.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_greenness.tile2.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_greenness.tile3.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_greenness.tile4.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_greenness.tile5.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_greenness.tile6.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_type.tile1.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_type.tile2.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_type.tile3.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_type.tile4.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_type.tile5.nc, $(DATA)/]
- - [$(FIXorog)/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_type.tile6.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_type.tile1.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_type.tile2.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_type.tile3.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_type.tile4.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_type.tile5.nc, $(DATA)/]
+ - [$(FIXgfs)/orog/$(CASE)/sfc/$(CASE).mx$(OCNRES).vegetation_type.tile6.nc, $(DATA)/]
diff --git a/parm/ufs/fix/gfs/ocean.fixed_files.yaml b/parm/ufs/fix/gfs/ocean.fixed_files.yaml
index 1ca8ce7a68..4ef19bab0d 100644
--- a/parm/ufs/fix/gfs/ocean.fixed_files.yaml
+++ b/parm/ufs/fix/gfs/ocean.fixed_files.yaml
@@ -1,9 +1,9 @@
copy:
# Orography data tile files
- - [$(FIXorog)/$(CASE)/$(CASE).mx$(OCNRES)_oro_data.tile1.nc, $(DATA)/INPUT/oro_data.tile1.nc]
- - [$(FIXorog)/$(CASE)/$(CASE).mx$(OCNRES)_oro_data.tile2.nc, $(DATA)/INPUT/oro_data.tile2.nc]
- - [$(FIXorog)/$(CASE)/$(CASE).mx$(OCNRES)_oro_data.tile3.nc, $(DATA)/INPUT/oro_data.tile3.nc]
- - [$(FIXorog)/$(CASE)/$(CASE).mx$(OCNRES)_oro_data.tile4.nc, $(DATA)/INPUT/oro_data.tile4.nc]
- - [$(FIXorog)/$(CASE)/$(CASE).mx$(OCNRES)_oro_data.tile5.nc, $(DATA)/INPUT/oro_data.tile5.nc]
- - [$(FIXorog)/$(CASE)/$(CASE).mx$(OCNRES)_oro_data.tile6.nc, $(DATA)/INPUT/oro_data.tile6.nc]
+ - [$(FIXgfs)/orog/$(CASE)/$(CASE).mx$(OCNRES)_oro_data.tile1.nc, $(DATA)/INPUT/oro_data.tile1.nc]
+ - [$(FIXgfs)/orog/$(CASE)/$(CASE).mx$(OCNRES)_oro_data.tile2.nc, $(DATA)/INPUT/oro_data.tile2.nc]
+ - [$(FIXgfs)/orog/$(CASE)/$(CASE).mx$(OCNRES)_oro_data.tile3.nc, $(DATA)/INPUT/oro_data.tile3.nc]
+ - [$(FIXgfs)/orog/$(CASE)/$(CASE).mx$(OCNRES)_oro_data.tile4.nc, $(DATA)/INPUT/oro_data.tile4.nc]
+ - [$(FIXgfs)/orog/$(CASE)/$(CASE).mx$(OCNRES)_oro_data.tile5.nc, $(DATA)/INPUT/oro_data.tile5.nc]
+ - [$(FIXgfs)/orog/$(CASE)/$(CASE).mx$(OCNRES)_oro_data.tile6.nc, $(DATA)/INPUT/oro_data.tile6.nc]
diff --git a/parm/ufs/fv3/diag_table b/parm/ufs/fv3/diag_table
index b972b3470c..47106cb294 100644
--- a/parm/ufs/fv3/diag_table
+++ b/parm/ufs/fv3/diag_table
@@ -1,7 +1,7 @@
"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_daily%4yr%2mo%2dy", 1, "days", 1, "days", "time", 1, "days", "1901 1 1 0 0 0"
+"ocn%4yr%2mo%2dy%2hr", @[FHOUT_OCNICE], "hours", 1, "hours", "time", @[FHOUT_OCNICE], "hours", "@[SYEAR] @[SMONTH] @[SDAY] @[CHOUR] 0 0"
+"ocn_daily%4yr%2mo%2dy", 1, "days", 1, "days", "time", 1, "days", "@[SYEAR] @[SMONTH] @[SDAY] @[CHOUR] 0 0"
##############
# Ocean fields
diff --git a/scripts/exgdas_atmos_chgres_forenkf.sh b/scripts/exgdas_atmos_chgres_forenkf.sh
index d48d58947e..40f702beb2 100755
--- a/scripts/exgdas_atmos_chgres_forenkf.sh
+++ b/scripts/exgdas_atmos_chgres_forenkf.sh
@@ -21,7 +21,6 @@ source "$HOMEgfs/ush/preamble.sh"
# Directories.
pwd=$(pwd)
-export FIXam=${FIXam:-$HOMEgfs/fix/am}
# Base variables
CDATE=${CDATE:-"2001010100"}
@@ -59,7 +58,7 @@ SENDECF=${SENDECF:-"NO"}
SENDDBN=${SENDDBN:-"NO"}
# level info file
-SIGLEVEL=${SIGLEVEL:-${FIXam}/global_hyblev.l${LEVS}.txt}
+SIGLEVEL=${SIGLEVEL:-${FIXgfs}/am/global_hyblev.l${LEVS}.txt}
# forecast files
APREFIX=${APREFIX:-""}
@@ -129,7 +128,7 @@ if [ $DO_CALC_ANALYSIS == "YES" ]; then
$NLN $ATMF09ENS fcst.ensres.09
fi
export OMP_NUM_THREADS=$NTHREADS_CHGRES
- SIGLEVEL=${SIGLEVEL:-${FIXam}/global_hyblev.l${LEVS_ENKF}.txt}
+ SIGLEVEL=${SIGLEVEL:-${FIXgfs}/am/global_hyblev.l${LEVS_ENKF}.txt}
if [ $USE_CFP = "YES" ]; then
[[ -f $DATA/mp_chgres.sh ]] && rm $DATA/mp_chgres.sh
diff --git a/scripts/exgdas_atmos_nawips.sh b/scripts/exgdas_atmos_nawips.sh
index 94a23f2a85..83781bac5b 100755
--- a/scripts/exgdas_atmos_nawips.sh
+++ b/scripts/exgdas_atmos_nawips.sh
@@ -22,27 +22,27 @@ DATA_RUN=$DATA/$RUN2
mkdir -p $DATA_RUN
cd $DATA_RUN
-cp $FIXgempak/g2varswmo2.tbl g2varswmo2.tbl
+cp ${HOMEgfs}/gempak/fix/g2varswmo2.tbl g2varswmo2.tbl
export err=$?
if [[ $err -ne 0 ]] ; then
echo " File g2varswmo2.tbl file is missing."
exit $err
fi
-cp $FIXgempak/g2vcrdwmo2.tbl g2vcrdwmo2.tbl
+cp ${HOMEgfs}/gempak/fix/g2vcrdwmo2.tbl g2vcrdwmo2.tbl
export err=$?
if [[ $err -ne 0 ]] ; then
echo " File g2vcrdwmo2.tbl file is missing."
exit $err
fi
-cp $FIXgempak/g2varsncep1.tbl g2varsncep1.tbl
+cp ${HOMEgfs}/gempak/fix/g2varsncep1.tbl g2varsncep1.tbl
export err=$?
if [[ $err -ne 0 ]] ; then
echo " File g2varsncep1.tbl file is missing."
exit $err
fi
-cp $FIXgempak/g2vcrdncep1.tbl g2vcrdncep1.tbl
+cp ${HOMEgfs}/gempak/fix/g2vcrdncep1.tbl g2vcrdncep1.tbl
export err=$?
if [[ $err -ne 0 ]] ; then
echo " File g2vcrdncep1.tbl file is missing."
diff --git a/scripts/exgdas_atmos_verfrad.sh b/scripts/exgdas_atmos_verfrad.sh
index 50320ffba1..1ff01ccfa9 100755
--- a/scripts/exgdas_atmos_verfrad.sh
+++ b/scripts/exgdas_atmos_verfrad.sh
@@ -37,9 +37,9 @@ if [[ -s ${radstat} && -s ${biascr} ]]; then
#------------------------------------------------------------------
# SATYPE is the list of expected satellite/instrument sources
- # in the radstat file. It should be stored in the $TANKverf
- # directory. If it isn't there then use the $FIXgdas copy. In all
- # cases write it back out to the radmon.$PDY directory. Add any
+ # in the radstat file. It should be stored in the $TANKverf
+ # directory. If it isn't there then use the gdas fix copy. In all
+ # cases write it back out to the radmon.$PDY directory. Add any
# new sources to the list before writing back out.
#------------------------------------------------------------------
diff --git a/scripts/exgdas_enkf_ecen.sh b/scripts/exgdas_enkf_ecen.sh
index c20d1dec78..59021debaa 100755
--- a/scripts/exgdas_enkf_ecen.sh
+++ b/scripts/exgdas_enkf_ecen.sh
@@ -76,8 +76,6 @@ CYCLESH=${CYCLESH:-$HOMEgfs/ush/global_cycle.sh}
export CYCLEXEC=${CYCLEXEC:-$HOMEgfs/exec/global_cycle}
APRUN_CYCLE=${APRUN_CYCLE:-${APRUN:-""}}
NTHREADS_CYCLE=${NTHREADS_CYCLE:-${NTHREADS:-1}}
-export FIXorog=${FIXorog:-$HOMEgfs/fix/orog}
-export FIXam=${FIXam:-$HOMEgfs/fix/am}
export CYCLVARS=${CYCLVARS:-"FSNOL=-2.,FSNOS=99999.,"}
export FHOUR=${FHOUR:-0}
export DELTSFC=${DELTSFC:-6}
@@ -241,7 +239,7 @@ if [ $RECENTER_ENKF = "YES" ]; then
$NLN $ATMANL_GSI atmanl_gsi
$NLN $ATMANL_GSI_ENSRES atmanl_gsi_ensres
- SIGLEVEL=${SIGLEVEL:-${FIXam}/global_hyblev.l${LEVS}.txt}
+ SIGLEVEL=${SIGLEVEL:-${FIXgfs}/am/global_hyblev.l${LEVS}.txt}
$NLN $CHGRESNC chgres.x
chgresnml=chgres_nc_gauss.nml
nmltitle=chgres
diff --git a/scripts/exgdas_enkf_post.sh b/scripts/exgdas_enkf_post.sh
index 86ab9071a4..f240ae561d 100755
--- a/scripts/exgdas_enkf_post.sh
+++ b/scripts/exgdas_enkf_post.sh
@@ -34,7 +34,7 @@ SENDDBN=${SENDDBN:-"NO"}
# Fix files
LEVS=${LEVS:-64}
-HYBENSMOOTH=${HYBENSMOOTH:-$FIXgsi/global_hybens_smoothinfo.l${LEVS}.txt}
+HYBENSMOOTH=${HYBENSMOOTH:-${FIXgfs}/gsi/global_hybens_smoothinfo.l${LEVS}.txt}
# Executables.
GETATMENSMEANEXEC=${GETATMENSMEANEXEC:-$HOMEgfs/exec/getsigensmeanp_smooth.x}
diff --git a/scripts/exgdas_enkf_sfc.sh b/scripts/exgdas_enkf_sfc.sh
index 81d68fb9fe..085ab35351 100755
--- a/scripts/exgdas_enkf_sfc.sh
+++ b/scripts/exgdas_enkf_sfc.sh
@@ -54,8 +54,6 @@ CYCLESH=${CYCLESH:-$HOMEgfs/ush/global_cycle.sh}
export CYCLEXEC=${CYCLEXEC:-$HOMEgfs/exec/global_cycle}
APRUN_CYCLE=${APRUN_CYCLE:-${APRUN:-""}}
NTHREADS_CYCLE=${NTHREADS_CYCLE:-${NTHREADS:-1}}
-export FIXorog=${FIXorog:-$HOMEgfs/fix/orog}
-export FIXam=${FIXam:-$HOMEgfs/fix/am}
export CYCLVARS=${CYCLVARS:-"FSNOL=-2.,FSNOS=99999.,"}
export FHOUR=${FHOUR:-0}
export DELTSFC=${DELTSFC:-6}
@@ -152,8 +150,8 @@ if [ $DOIAU = "YES" ]; then
"${DATA}/fnbgsi.${cmem}"
${NLN} "${COM_ATMOS_RESTART_MEM}/${bPDY}.${bcyc}0000.sfcanl_data.tile${n}.nc" \
"${DATA}/fnbgso.${cmem}"
- ${NLN} "${FIXorog}/${CASE}/${CASE}_grid.tile${n}.nc" "${DATA}/fngrid.${cmem}"
- ${NLN} "${FIXorog}/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc" "${DATA}/fnorog.${cmem}"
+ ${NLN} "${FIXgfs}/orog/${CASE}/${CASE}_grid.tile${n}.nc" "${DATA}/fngrid.${cmem}"
+ ${NLN} "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc" "${DATA}/fnorog.${cmem}"
done
@@ -188,8 +186,8 @@ if [ $DOSFCANL_ENKF = "YES" ]; then
"${DATA}/fnbgsi.${cmem}"
${NLN} "${COM_ATMOS_RESTART_MEM}/${PDY}.${cyc}0000.sfcanl_data.tile${n}.nc" \
"${DATA}/fnbgso.${cmem}"
- ${NLN} "${FIXorog}/${CASE}/${CASE}_grid.tile${n}.nc" "${DATA}/fngrid.${cmem}"
- ${NLN} "${FIXorog}/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc" "${DATA}/fnorog.${cmem}"
+ ${NLN} "${FIXgfs}/orog/${CASE}/${CASE}_grid.tile${n}.nc" "${DATA}/fngrid.${cmem}"
+ ${NLN} "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc" "${DATA}/fnorog.${cmem}"
done
diff --git a/scripts/exgdas_enkf_update.sh b/scripts/exgdas_enkf_update.sh
index 1f11026ac4..60d2592e4d 100755
--- a/scripts/exgdas_enkf_update.sh
+++ b/scripts/exgdas_enkf_update.sh
@@ -105,14 +105,14 @@ else
fi
LATA_ENKF=${LATA_ENKF:-$LATB_ENKF}
LONA_ENKF=${LONA_ENKF:-$LONB_ENKF}
-SATANGL=${SATANGL:-${FIXgsi}/global_satangbias.txt}
-SATINFO=${SATINFO:-${FIXgsi}/global_satinfo.txt}
-CONVINFO=${CONVINFO:-${FIXgsi}/global_convinfo.txt}
-OZINFO=${OZINFO:-${FIXgsi}/global_ozinfo.txt}
-SCANINFO=${SCANINFO:-${FIXgsi}/global_scaninfo.txt}
-HYBENSINFO=${HYBENSINFO:-${FIXgsi}/global_hybens_info.l${LEVS_ENKF}.txt}
-ANAVINFO=${ANAVINFO:-${FIXgsi}/global_anavinfo.l${LEVS_ENKF}.txt}
-VLOCALEIG=${VLOCALEIG:-${FIXgsi}/vlocal_eig_l${LEVS_ENKF}.dat}
+SATANGL=${SATANGL:-${FIXgfs}/gsi/global_satangbias.txt}
+SATINFO=${SATINFO:-${FIXgfs}/gsi/global_satinfo.txt}
+CONVINFO=${CONVINFO:-${FIXgfs}/gsi/global_convinfo.txt}
+OZINFO=${OZINFO:-${FIXgfs}/gsi/global_ozinfo.txt}
+SCANINFO=${SCANINFO:-${FIXgfs}/gsi/global_scaninfo.txt}
+HYBENSINFO=${HYBENSINFO:-${FIXgfs}/gsi/global_hybens_info.l${LEVS_ENKF}.txt}
+ANAVINFO=${ANAVINFO:-${FIXgfs}/gsi/global_anavinfo.l${LEVS_ENKF}.txt}
+VLOCALEIG=${VLOCALEIG:-${FIXgfs}/gsi/vlocal_eig_l${LEVS_ENKF}.dat}
ENKF_SUFFIX="s"
[[ $SMOOTH_ENKF = "NO" ]] && ENKF_SUFFIX=""
diff --git a/scripts/exgfs_atmos_gempak_meta.sh b/scripts/exgfs_atmos_gempak_meta.sh
index 04f4f1fc5c..ad5ef823fd 100755
--- a/scripts/exgfs_atmos_gempak_meta.sh
+++ b/scripts/exgfs_atmos_gempak_meta.sh
@@ -73,14 +73,14 @@ do
if [ $do_all -eq 1 ] ; then
do_all=0
- awk '{print $1}' $FIXgempak/gfs_meta > $DATA/tmpscript
+ awk '{print $1}' ${HOMEgfs}/gempak/fix/gfs_meta > $DATA/tmpscript
else
#
# Do not try to grep out 12, it will grab the 12 from 126.
# This will work as long as we don't need 12 fhr metafiles
#
if [ $fhr -ne 12 ] ; then
- grep $fhr $FIXgempak/gfs_meta |awk -F" [0-9]" '{print $1}' > $DATA/tmpscript
+ grep $fhr ${HOMEgfs}/gempak/fix/gfs_meta |awk -F" [0-9]" '{print $1}' > $DATA/tmpscript
fi
fi
diff --git a/scripts/exgfs_atmos_goes_nawips.sh b/scripts/exgfs_atmos_goes_nawips.sh
index 583593fef8..137feec7c2 100755
--- a/scripts/exgfs_atmos_goes_nawips.sh
+++ b/scripts/exgfs_atmos_goes_nawips.sh
@@ -15,13 +15,13 @@ source "$HOMEgfs/ush/preamble.sh"
cd $DATA
-cp $FIXgempak/g2varswmo2.tbl g2varswmo2.tbl
-cp $FIXgempak/g2vcrdwmo2.tbl g2vcrdwmo2.tbl
-cp $FIXgempak/g2varsncep1.tbl g2varsncep1.tbl
-cp $FIXgempak/g2vcrdncep1.tbl g2vcrdncep1.tbl
+cp ${HOMEgfs}/gempak/fix/g2varswmo2.tbl g2varswmo2.tbl
+cp ${HOMEgfs}/gempak/fix/g2vcrdwmo2.tbl g2vcrdwmo2.tbl
+cp ${HOMEgfs}/gempak/fix/g2varsncep1.tbl g2varsncep1.tbl
+cp ${HOMEgfs}/gempak/fix/g2vcrdncep1.tbl g2vcrdncep1.tbl
#
-# NAGRIB_TABLE=$FIXgempak/nagrib.tbl
+# NAGRIB_TABLE=${HOMEgfs}/gempak/fix/nagrib.tbl
NAGRIB=$GEMEXE/nagrib2
#
diff --git a/scripts/exgfs_atmos_nawips.sh b/scripts/exgfs_atmos_nawips.sh
index ebb509d392..d03ec9cef6 100755
--- a/scripts/exgfs_atmos_nawips.sh
+++ b/scripts/exgfs_atmos_nawips.sh
@@ -50,10 +50,10 @@ while (( fhcnt <= fend )) ; do
if mkdir "lock.${fhcnt}" ; then
cd "lock.${fhcnt}" || exit 1
- cp "${FIXgempak}/g2varswmo2.tbl" "g2varswmo2.tbl"
- cp "${FIXgempak}/g2vcrdwmo2.tbl" "g2vcrdwmo2.tbl"
- cp "${FIXgempak}/g2varsncep1.tbl" "g2varsncep1.tbl"
- cp "${FIXgempak}/g2vcrdncep1.tbl" "g2vcrdncep1.tbl"
+ cp "${HOMEgfs}/gempak/fix/g2varswmo2.tbl" "g2varswmo2.tbl"
+ cp "${HOMEgfs}/gempak/fix/g2vcrdwmo2.tbl" "g2vcrdwmo2.tbl"
+ cp "${HOMEgfs}/gempak/fix/g2varsncep1.tbl" "g2varsncep1.tbl"
+ cp "${HOMEgfs}/gempak/fix/g2vcrdncep1.tbl" "g2vcrdncep1.tbl"
fhr=$(printf "%03d" "${fhcnt}")
diff --git a/scripts/exgfs_wave_init.sh b/scripts/exgfs_wave_init.sh
index 03fd93bf48..22da372a2a 100755
--- a/scripts/exgfs_wave_init.sh
+++ b/scripts/exgfs_wave_init.sh
@@ -94,16 +94,16 @@ source "${HOMEgfs}/ush/preamble.sh"
echo " Mod def file for ${grdID} not found in ${COM_WAVE_PREP}. Setting up to generate ..."
echo ' '
set_trace
- if [ -f $FIXwave/ww3_grid.inp.$grdID ]
+ if [ -f ${FIXgfs}/wave/ww3_grid.inp.$grdID ]
then
- cp $FIXwave/ww3_grid.inp.$grdID ww3_grid.inp.$grdID
+ cp ${FIXgfs}/wave/ww3_grid.inp.$grdID ww3_grid.inp.$grdID
fi
if [ -f ww3_grid.inp.$grdID ]
then
set +x
echo ' '
- echo " ww3_grid.inp.$grdID copied ($FIXwave/ww3_grid.inp.$grdID)."
+ echo " ww3_grid.inp.$grdID copied (${FIXgfs}/wave/ww3_grid.inp.$grdID)."
echo ' '
set_trace
else
@@ -119,9 +119,9 @@ source "${HOMEgfs}/ush/preamble.sh"
fi
- if [ -f ${FIXwave}/${grdID}.msh ]
+ if [ -f ${FIXgfs}/wave/${grdID}.msh ]
then
- cp "${FIXwave}/${grdID}.msh" "${grdID}.msh"
+ cp "${FIXgfs}/wave/${grdID}.msh" "${grdID}.msh"
fi
#TO DO: how do we say "it's unstructured, and therefore need to have error check here"
diff --git a/scripts/exgfs_wave_nawips.sh b/scripts/exgfs_wave_nawips.sh
index 63690ff1b0..9145a30a2f 100755
--- a/scripts/exgfs_wave_nawips.sh
+++ b/scripts/exgfs_wave_nawips.sh
@@ -24,7 +24,6 @@ export FHOUT_HF_WAV=${FHOUT_HF_WAV:-3}
export maxtries=${maxtries:-720}
export cycle=${cycle:-t${cyc}z}
export GEMwave=${GEMwave:-${HOMEgfs}/gempak}
-export FIXwave=${FIXwave:-${HOMEgfs}/fix/wave}
export DATA=${DATA:-${DATAROOT:?}/${jobid}}
if [ ! -d ${DATA} ];then
mkdir -p ${DATA}
diff --git a/scripts/exgfs_wave_prdgen_bulls.sh b/scripts/exgfs_wave_prdgen_bulls.sh
index 2e6cb2071b..bcad75a660 100755
--- a/scripts/exgfs_wave_prdgen_bulls.sh
+++ b/scripts/exgfs_wave_prdgen_bulls.sh
@@ -31,7 +31,6 @@ source "$HOMEgfs/ush/preamble.sh"
export DATA=${DATA:-${DATAROOT:?}/${job}.$$}
#export CODEwave=${CODEwave:-${PACKAGEROOT}/${NET}_code.${wave_code_ver}/${code_pkg}}
export EXECwave=${EXECwave:-$HOMEgfs/exec}
- export FIXwave=${FIXwave:-$HOMEgfs/fix}
export PARMwave=${PARMwave:-$HOMEgfs/parm/parm_wave}
export USHwave=${USHwave:-$HOMEgfs/ush}
#export EXECcode=${EXECcode:-CODEwave/exec}
diff --git a/scripts/exgfs_wave_prdgen_gridded.sh b/scripts/exgfs_wave_prdgen_gridded.sh
index b0cbc124ce..54efb639d6 100755
--- a/scripts/exgfs_wave_prdgen_gridded.sh
+++ b/scripts/exgfs_wave_prdgen_gridded.sh
@@ -31,7 +31,6 @@ source "$HOMEgfs/ush/preamble.sh"
export FHOUT_WAV=${FHOUT_WAV:-6} #from 72 to 180 inc=6
export FHOUT_HF_WAV=${FHOUT_HF_WAV:-3}
export maxtries=720
- export FIXwave=${FIXwave:-$HOMEgfs/fix/wave}
export PARMwave=${PARMwave:-$HOMEgfs/parm/parm_wave}
export USHwave=${USHwave:-$HOMEgfs/ush}
export cyc=${cyc:-00}
diff --git a/scripts/exgfs_wave_prep.sh b/scripts/exgfs_wave_prep.sh
index be006c1c85..f6cb610559 100755
--- a/scripts/exgfs_wave_prep.sh
+++ b/scripts/exgfs_wave_prep.sh
@@ -23,7 +23,7 @@
# #
# Update log #
# Mar2007 HTolman - Added NCO note on resources on mist/dew #
-# Apr2007 HTolman - Renaming mod_def files in $FIX_wave. #
+# Apr2007 HTolman - Renaming mod_def files in ${FIXgfs}/wave. #
# Mar2011 AChawla - Migrating to a vertical structure #
# Nov2012 JHAlves - Transitioning to WCOSS #
# Apr2019 JHAlves - Transitioning to GEFS workflow #
diff --git a/scripts/exglobal_atmos_analysis.sh b/scripts/exglobal_atmos_analysis.sh
index cb3c6467a1..b12046f9e2 100755
--- a/scripts/exglobal_atmos_analysis.sh
+++ b/scripts/exglobal_atmos_analysis.sh
@@ -289,21 +289,21 @@ else
fi
# GSI Fix files
-BERROR=${BERROR:-${FIXgsi}/Big_Endian/global_berror.l${LEVS}y${NLAT_A}.f77}
-SATANGL=${SATANGL:-${FIXgsi}/global_satangbias.txt}
-SATINFO=${SATINFO:-${FIXgsi}/global_satinfo.txt}
-RADCLOUDINFO=${RADCLOUDINFO:-${FIXgsi}/cloudy_radiance_info.txt}
-ATMSFILTER=${ATMSFILTER:-${FIXgsi}/atms_beamwidth.txt}
-ANAVINFO=${ANAVINFO:-${FIXgsi}/global_anavinfo.l${LEVS}.txt}
-CONVINFO=${CONVINFO:-${FIXgsi}/global_convinfo.txt}
-vqcdat=${vqcdat:-${FIXgsi}/vqctp001.dat}
-INSITUINFO=${INSITUINFO:-${FIXgsi}/global_insituinfo.txt}
-OZINFO=${OZINFO:-${FIXgsi}/global_ozinfo.txt}
-PCPINFO=${PCPINFO:-${FIXgsi}/global_pcpinfo.txt}
-AEROINFO=${AEROINFO:-${FIXgsi}/global_aeroinfo.txt}
-SCANINFO=${SCANINFO:-${FIXgsi}/global_scaninfo.txt}
-HYBENSINFO=${HYBENSINFO:-${FIXgsi}/global_hybens_info.l${LEVS}.txt}
-OBERROR=${OBERROR:-${FIXgsi}/prepobs_errtable.global}
+BERROR=${BERROR:-${FIXgfs}/gsi/Big_Endian/global_berror.l${LEVS}y${NLAT_A}.f77}
+SATANGL=${SATANGL:-${FIXgfs}/gsi/global_satangbias.txt}
+SATINFO=${SATINFO:-${FIXgfs}/gsi/global_satinfo.txt}
+RADCLOUDINFO=${RADCLOUDINFO:-${FIXgfs}/gsi/cloudy_radiance_info.txt}
+ATMSFILTER=${ATMSFILTER:-${FIXgfs}/gsi/atms_beamwidth.txt}
+ANAVINFO=${ANAVINFO:-${FIXgfs}/gsi/global_anavinfo.l${LEVS}.txt}
+CONVINFO=${CONVINFO:-${FIXgfs}/gsi/global_convinfo.txt}
+vqcdat=${vqcdat:-${FIXgfs}/gsi/vqctp001.dat}
+INSITUINFO=${INSITUINFO:-${FIXgfs}/gsi/global_insituinfo.txt}
+OZINFO=${OZINFO:-${FIXgfs}/gsi/global_ozinfo.txt}
+PCPINFO=${PCPINFO:-${FIXgfs}/gsi/global_pcpinfo.txt}
+AEROINFO=${AEROINFO:-${FIXgfs}/gsi/global_aeroinfo.txt}
+SCANINFO=${SCANINFO:-${FIXgfs}/gsi/global_scaninfo.txt}
+HYBENSINFO=${HYBENSINFO:-${FIXgfs}/gsi/global_hybens_info.l${LEVS}.txt}
+OBERROR=${OBERROR:-${FIXgfs}/gsi/prepobs_errtable.global}
# GSI namelist
SETUP=${SETUP:-""}
@@ -381,8 +381,8 @@ ${NLN} ${OBERROR} errtable
#If using correlated error, link to the covariance files
if [ ${USE_CORRELATED_OBERRS} == "YES" ]; then
if grep -q "Rcov" ${ANAVINFO} ; then
- if ls ${FIXgsi}/Rcov* 1> /dev/null 2>&1; then
- ${NLN} ${FIXgsi}/Rcov* ${DATA}
+ if ls ${FIXgfs}/gsi/Rcov* 1> /dev/null 2>&1; then
+ ${NLN} ${FIXgfs}/gsi/Rcov* ${DATA}
echo "using correlated obs error"
else
echo "FATAL ERROR: Satellite error covariance files (Rcov) are missing."
diff --git a/scripts/exglobal_atmos_analysis_calc.sh b/scripts/exglobal_atmos_analysis_calc.sh
index a2086aa927..a2228f0425 100755
--- a/scripts/exglobal_atmos_analysis_calc.sh
+++ b/scripts/exglobal_atmos_analysis_calc.sh
@@ -23,7 +23,6 @@ source "$HOMEgfs/ush/preamble.sh"
# Directories.
pwd=$(pwd)
-export FIXam=${FIXam:-$HOMEgfs/fix/am}
# Base variables
CDUMP=${CDUMP:-"gdas"}
diff --git a/scripts/exglobal_atmos_sfcanl.sh b/scripts/exglobal_atmos_sfcanl.sh
index 2997ac0d25..60869181f3 100755
--- a/scripts/exglobal_atmos_sfcanl.sh
+++ b/scripts/exglobal_atmos_sfcanl.sh
@@ -55,8 +55,6 @@ export SNOW_NUDGE_COEFF=${SNOW_NUDGE_COEFF:-'-2.'}
export CYCLVARS=${CYCLVARS:-""}
export FHOUR=${FHOUR:-0}
export DELTSFC=${DELTSFC:-6}
-export FIXam=${FIXam:-${HOMEgfs}/fix/am}
-export FIXorog=${FIXorog:-${HOMEgfs}/fix/orog}
# FV3 specific info (required for global_cycle)
export CASE=${CASE:-"C384"}
@@ -176,8 +174,8 @@ if [[ ${DOIAU} = "YES" ]]; then
"${COM_ATMOS_RESTART}/${bPDY}.${bcyc}0000.sfcanl_data.tile${n}.nc"
${NLN} "${COM_ATMOS_RESTART_PREV}/${bPDY}.${bcyc}0000.sfc_data.tile${n}.nc" "${DATA}/fnbgsi.00${n}"
${NLN} "${COM_ATMOS_RESTART}/${bPDY}.${bcyc}0000.sfcanl_data.tile${n}.nc" "${DATA}/fnbgso.00${n}"
- ${NLN} "${FIXorog}/${CASE}/${CASE}_grid.tile${n}.nc" "${DATA}/fngrid.00${n}"
- ${NLN} "${FIXorog}/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc" "${DATA}/fnorog.00${n}"
+ ${NLN} "${FIXgfs}/orog/${CASE}/${CASE}_grid.tile${n}.nc" "${DATA}/fngrid.00${n}"
+ ${NLN} "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc" "${DATA}/fnorog.00${n}"
done
export APRUNCY=${APRUN_CYCLE}
@@ -190,8 +188,8 @@ fi
# Update surface restarts at middle of window
for n in $(seq 1 ${ntiles}); do
- if [[ ${DO_JEDILANDDA:-"NO"} = "YES" ]]; then
- ${NCP} "${COM_LAND_ANALYSIS}/${PDY}.${cyc}0000.sfc_data.tile${n}.nc" \
+ if [[ ${DO_JEDISNOWDA:-"NO"} = "YES" ]]; then
+ ${NCP} "${COM_SNOW_ANALYSIS}/${PDY}.${cyc}0000.sfc_data.tile${n}.nc" \
"${COM_ATMOS_RESTART}/${PDY}.${cyc}0000.sfcanl_data.tile${n}.nc"
else
${NCP} "${COM_ATMOS_RESTART_PREV}/${PDY}.${cyc}0000.sfc_data.tile${n}.nc" \
@@ -199,8 +197,8 @@ for n in $(seq 1 ${ntiles}); do
fi
${NLN} "${COM_ATMOS_RESTART_PREV}/${PDY}.${cyc}0000.sfc_data.tile${n}.nc" "${DATA}/fnbgsi.00${n}"
${NLN} "${COM_ATMOS_RESTART}/${PDY}.${cyc}0000.sfcanl_data.tile${n}.nc" "${DATA}/fnbgso.00${n}"
- ${NLN} "${FIXorog}/${CASE}/${CASE}_grid.tile${n}.nc" "${DATA}/fngrid.00${n}"
- ${NLN} "${FIXorog}/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc" "${DATA}/fnorog.00${n}"
+ ${NLN} "${FIXgfs}/orog/${CASE}/${CASE}_grid.tile${n}.nc" "${DATA}/fngrid.00${n}"
+ ${NLN} "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc" "${DATA}/fnorog.00${n}"
done
export APRUNCY=${APRUN_CYCLE}
diff --git a/scripts/exglobal_atmos_vminmon.sh b/scripts/exglobal_atmos_vminmon.sh
index a4453dcf1a..aac63f3fb3 100755
--- a/scripts/exglobal_atmos_vminmon.sh
+++ b/scripts/exglobal_atmos_vminmon.sh
@@ -44,15 +44,15 @@ if [[ -s ${gsistat} ]]; then
#------------------------------------------------------------------
# Run the child sccripts.
#------------------------------------------------------------------
- "${USHgfs}/minmon_xtrct_costs.pl" "${MINMON_SUFFIX}" "${PDY}" "${cyc}" "${gsistat}" dummy
+ "${USHgfs}/minmon_xtrct_costs.pl" "${MINMON_SUFFIX}" "${PDY}" "${cyc}" "${gsistat}"
rc_costs=$?
echo "rc_costs = ${rc_costs}"
- "${USHgfs}/minmon_xtrct_gnorms.pl" "${MINMON_SUFFIX}" "${PDY}" "${cyc}" "${gsistat}" dummy
+ "${USHgfs}/minmon_xtrct_gnorms.pl" "${MINMON_SUFFIX}" "${PDY}" "${cyc}" "${gsistat}"
rc_gnorms=$?
echo "rc_gnorms = ${rc_gnorms}"
- "${USHgfs}/minmon_xtrct_reduct.pl" "${MINMON_SUFFIX}" "${PDY}" "${cyc}" "${gsistat}" dummy
+ "${USHgfs}/minmon_xtrct_reduct.pl" "${MINMON_SUFFIX}" "${PDY}" "${cyc}" "${gsistat}"
rc_reduct=$?
echo "rc_reduct = ${rc_reduct}"
diff --git a/scripts/exglobal_forecast.sh b/scripts/exglobal_forecast.sh
index c07cde3004..c548b827e5 100755
--- a/scripts/exglobal_forecast.sh
+++ b/scripts/exglobal_forecast.sh
@@ -38,19 +38,19 @@
## Restart files:
##
## Fix files:
-## 1. computing grid, $FIXorog/$CASE/${CASE}_grid.tile${n}.nc
-## 2. orography data, $FIXorog/$CASE/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc
-## 3. mosaic data, $FIXorog/$CASE/${CASE}_mosaic.nc
-## 4. Global O3 data, $FIXam/${O3FORC}
-## 5. Global H2O data, $FIXam/${H2OFORC}
-## 6. Global solar constant data, $FIXam/global_solarconstant_noaa_an.txt
-## 7. Global surface emissivity, $FIXam/global_sfc_emissivity_idx.txt
-## 8. Global CO2 historical data, $FIXam/global_co2historicaldata_glob.txt
-## 8. Global CO2 monthly data, $FIXam/co2monthlycyc.txt
-## 10. Additional global CO2 data, $FIXam/fix_co2_proj/global_co2historicaldata
+## 1. computing grid, ${FIXgfs}/orog/$CASE/${CASE}_grid.tile${n}.nc
+## 2. orography data, ${FIXgfs}/orog/$CASE/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc
+## 3. mosaic data, ${FIXgfs}/orog/$CASE/${CASE}_mosaic.nc
+## 4. Global O3 data, ${FIXgfs}/am/${O3FORC}
+## 5. Global H2O data, ${FIXgfs}/am/${H2OFORC}
+## 6. Global solar constant data, ${FIXgfs}/am/global_solarconstant_noaa_an.txt
+## 7. Global surface emissivity, ${FIXgfs}/am/global_sfc_emissivity_idx.txt
+## 8. Global CO2 historical data, ${FIXgfs}/am/global_co2historicaldata_glob.txt
+## 8. Global CO2 monthly data, ${FIXgfs}/am/co2monthlycyc.txt
+## 10. Additional global CO2 data, ${FIXgfs}/am/fix_co2_proj/global_co2historicaldata
## 11. Climatological aerosol global distribution
-## $FIXam/global_climaeropac_global.txt
-## 12. Monthly volcanic forcing $FIXam/global_volcanic_aerosols_YYYY-YYYY.txt
+## ${FIXgfs}/am/global_climaeropac_global.txt
+## 12. Monthly volcanic forcing ${FIXgfs}/am/global_volcanic_aerosols_YYYY-YYYY.txt
##
## Data output (location, name)
## If quilting=true and output grid is gaussian grid:
diff --git a/scripts/exglobal_prep_land_obs.py b/scripts/exglobal_prep_snow_obs.py
similarity index 59%
rename from scripts/exglobal_prep_land_obs.py
rename to scripts/exglobal_prep_snow_obs.py
index 3594771c8a..5107d9c935 100755
--- a/scripts/exglobal_prep_land_obs.py
+++ b/scripts/exglobal_prep_snow_obs.py
@@ -1,12 +1,12 @@
#!/usr/bin/env python3
-# exglobal_land_analysis_prepare.py
-# This script creates a LandAnalysis object
+# exglobal_prep_snow_obs.py
+# This script creates a SnowAnalysis object
# and runs the prepare_GTS and prepare_IMS method
# which perform the pre-processing for GTS and IMS data
import os
from wxflow import Logger, cast_strdict_as_dtypedict
-from pygfs.task.land_analysis import LandAnalysis
+from pygfs.task.snow_analysis import SnowAnalysis
# Initialize root logger
@@ -18,8 +18,8 @@
# Take configuration from environment and cast it as python dictionary
config = cast_strdict_as_dtypedict(os.environ)
- # Instantiate the land prepare task
- LandAnl = LandAnalysis(config)
- LandAnl.prepare_GTS()
- if f"{ LandAnl.runtime_config.cyc }" == '18':
- LandAnl.prepare_IMS()
+ # Instantiate the snow prepare task
+ SnowAnl = SnowAnalysis(config)
+ SnowAnl.prepare_GTS()
+ if f"{ SnowAnl.runtime_config.cyc }" == '18':
+ SnowAnl.prepare_IMS()
diff --git a/scripts/exglobal_land_analysis.py b/scripts/exglobal_snow_analysis.py
similarity index 66%
rename from scripts/exglobal_land_analysis.py
rename to scripts/exglobal_snow_analysis.py
index 70141475b0..fe050f5af5 100755
--- a/scripts/exglobal_land_analysis.py
+++ b/scripts/exglobal_snow_analysis.py
@@ -1,12 +1,12 @@
#!/usr/bin/env python3
-# exglobal_land_analysis.py
-# This script creates an LandAnalysis class
+# exglobal_snow_analysis.py
+# This script creates an SnowAnalysis class
# and runs the initialize, execute and finalize methods
-# for a global Land Snow Depth analysis
+# for a global Snow Depth analysis
import os
from wxflow import Logger, cast_strdict_as_dtypedict
-from pygfs.task.land_analysis import LandAnalysis
+from pygfs.task.snow_analysis import SnowAnalysis
# Initialize root logger
logger = Logger(level=os.environ.get("LOGGING_LEVEL", "DEBUG"), colored_log=True)
@@ -17,8 +17,8 @@
# Take configuration from environment and cast it as python dictionary
config = cast_strdict_as_dtypedict(os.environ)
- # Instantiate the land analysis task
- anl = LandAnalysis(config)
+ # Instantiate the snow analysis task
+ anl = SnowAnalysis(config)
anl.initialize()
anl.execute()
anl.finalize()
diff --git a/sorc/build_all.sh b/sorc/build_all.sh
index dd74c53487..261c245142 100755
--- a/sorc/build_all.sh
+++ b/sorc/build_all.sh
@@ -119,16 +119,16 @@ build_jobs["ufs"]=8
big_jobs=$((big_jobs+1))
build_opts["ufs"]="${_wave_unst} ${_verbose_opt} ${_build_ufs_opt}"
-build_jobs["upp"]=6 # The UPP is hardcoded to use 6 cores
+build_jobs["upp"]=2
build_opts["upp"]=""
-build_jobs["ufs_utils"]=3
+build_jobs["ufs_utils"]=2
build_opts["ufs_utils"]="${_verbose_opt}"
build_jobs["gfs_utils"]=1
build_opts["gfs_utils"]="${_verbose_opt}"
-build_jobs["ww3prepost"]=3
+build_jobs["ww3prepost"]=2
build_opts["ww3prepost"]="${_wave_unst} ${_verbose_opt} ${_build_ufs_opt}"
# Optional DA builds
@@ -146,7 +146,7 @@ if [[ "${_build_gsi}" == "YES" ]]; then
build_opts["gsi_enkf"]="${_verbose_opt}"
fi
if [[ "${_build_gsi}" == "YES" || "${_build_ufsda}" == "YES" ]] ; then
- build_jobs["gsi_utils"]=2
+ build_jobs["gsi_utils"]=1
build_opts["gsi_utils"]="${_verbose_opt}"
if [[ "${MACHINE_ID}" == "hercules" ]]; then
echo "NOTE: The GSI Monitor is not supported on Hercules. Disabling build."
diff --git a/sorc/build_upp.sh b/sorc/build_upp.sh
index a55e96ebc8..8a2e1f6fcd 100755
--- a/sorc/build_upp.sh
+++ b/sorc/build_upp.sh
@@ -6,9 +6,10 @@ cd "${script_dir}" || exit 1
OPTIND=1
_opts=""
-while getopts ":dv" option; do
+while getopts ":dj:v" option; do
case "${option}" in
d) _opts+="-d ";;
+ j) export BUILD_JOBS="${OPTARG}" ;;
v) _opts+="-v ";;
:)
echo "[${BASH_SOURCE[0]}]: ${option} requires an argument"
@@ -27,4 +28,4 @@ fi
cd ufs_model.fd/FV3/upp/tests
# shellcheck disable=SC2086
-./compile_upp.sh ${_opts}
+BUILD_JOBS=${BUILD_JOBS:-8} ./compile_upp.sh ${_opts}
diff --git a/sorc/gdas.cd b/sorc/gdas.cd
index b37680be78..10614c9855 160000
--- a/sorc/gdas.cd
+++ b/sorc/gdas.cd
@@ -1 +1 @@
-Subproject commit b37680be78560343b940352b9b2c6727190a642c
+Subproject commit 10614c9855042b436bb8c37c7e2faeead01259cb
diff --git a/sorc/gfs_utils.fd b/sorc/gfs_utils.fd
index 7a84c884d2..4b7f6095d2 160000
--- a/sorc/gfs_utils.fd
+++ b/sorc/gfs_utils.fd
@@ -1 +1 @@
-Subproject commit 7a84c884d210960bd9f59e6ae09c2e7f0e1e39b1
+Subproject commit 4b7f6095d260b7fcd9c99c337454e170f1aa7f2f
diff --git a/sorc/gsi_enkf.fd b/sorc/gsi_enkf.fd
index c94bc72ff4..74ac594211 160000
--- a/sorc/gsi_enkf.fd
+++ b/sorc/gsi_enkf.fd
@@ -1 +1 @@
-Subproject commit c94bc72ff410b48c325abbfe92c9fcb601d89aed
+Subproject commit 74ac5942118d2a83ca84d3a629ec3aaffdb36fc5
diff --git a/sorc/gsi_monitor.fd b/sorc/gsi_monitor.fd
index ae256c0d69..fb39e83880 160000
--- a/sorc/gsi_monitor.fd
+++ b/sorc/gsi_monitor.fd
@@ -1 +1 @@
-Subproject commit ae256c0d69df3232ee9dd3e81b176bf2c3cda312
+Subproject commit fb39e83880d44d433bed9af856bc5178bf63d64c
diff --git a/sorc/gsi_utils.fd b/sorc/gsi_utils.fd
index 90481d9618..55abe58825 160000
--- a/sorc/gsi_utils.fd
+++ b/sorc/gsi_utils.fd
@@ -1 +1 @@
-Subproject commit 90481d961854e4412ecac49991721e6e63d4b82e
+Subproject commit 55abe588252ec6f39047d54a14727cf59f7f6688
diff --git a/sorc/ufs_model.fd b/sorc/ufs_model.fd
index a837cfcb0c..6988662728 160000
--- a/sorc/ufs_model.fd
+++ b/sorc/ufs_model.fd
@@ -1 +1 @@
-Subproject commit a837cfcb0c79803e13a1375a362d3d0b14b62320
+Subproject commit 698866272846e8c0f8f61ddb1b20d6463460cd63
diff --git a/sorc/ufs_utils.fd b/sorc/ufs_utils.fd
index c3fb3bceaa..47956a96a7 160000
--- a/sorc/ufs_utils.fd
+++ b/sorc/ufs_utils.fd
@@ -1 +1 @@
-Subproject commit c3fb3bceaa1a324599597c9cf8a42d19af817254
+Subproject commit 47956a96a7dc14e33fbccbb7fe74422f9bf542bf
diff --git a/sorc/verif-global.fd b/sorc/verif-global.fd
index c267780a12..bd1c8f62a1 160000
--- a/sorc/verif-global.fd
+++ b/sorc/verif-global.fd
@@ -1 +1 @@
-Subproject commit c267780a1255fa7db052c745cf9c78b7dc6a2695
+Subproject commit bd1c8f62a1878051e34ff7c6f6a4dd290381f1ef
diff --git a/ush/calcanl_gfs.py b/ush/calcanl_gfs.py
index cf2dc8dc89..25bbae4bce 100755
--- a/ush/calcanl_gfs.py
+++ b/ush/calcanl_gfs.py
@@ -346,7 +346,7 @@ def calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix,
ComOut = os.getenv('COM_ATMOS_ANALYSIS', './')
APrefix = os.getenv('APREFIX', '')
NThreads = os.getenv('NTHREADS_CHGRES', 1)
- FixDir = os.getenv('FIXam', './')
+ FixDir = os.path.join(os.getenv('FIXgfs', './'), 'am')
atmges_ens_mean = os.getenv('ATMGES_ENSMEAN', './atmges_ensmean')
RunDir = os.getenv('DATA', './')
ExecCMD = os.getenv('APRUN_CALCANL', '')
diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh
index 052e549251..644a2180da 100755
--- a/ush/forecast_postdet.sh
+++ b/ush/forecast_postdet.sh
@@ -133,17 +133,15 @@ EOF
#--------------------------------------------------------------------------
# Grid and orography data
- FIXsfc=${FIXsfc:-"${FIXorog}/${CASE}/sfc"}
-
if [[ ${cplflx} = ".false." ]] ; then
- ${NLN} "${FIXorog}/${CASE}/${CASE}_mosaic.nc" "${DATA}/INPUT/grid_spec.nc"
+ ${NLN} "${FIXgfs}/orog/${CASE}/${CASE}_mosaic.nc" "${DATA}/INPUT/grid_spec.nc"
else
- ${NLN} "${FIXorog}/${CASE}/${CASE}_mosaic.nc" "${DATA}/INPUT/${CASE}_mosaic.nc"
+ ${NLN} "${FIXgfs}/orog/${CASE}/${CASE}_mosaic.nc" "${DATA}/INPUT/${CASE}_mosaic.nc"
fi
for n in $(seq 1 "${ntiles}"); do
- ${NLN} "${FIXorog}/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc" "${DATA}/INPUT/oro_data.tile${n}.nc"
- ${NLN} "${FIXorog}/${CASE}/${CASE}_grid.tile${n}.nc" "${DATA}/INPUT/${CASE}_grid.tile${n}.nc"
+ ${NLN} "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc" "${DATA}/INPUT/oro_data.tile${n}.nc"
+ ${NLN} "${FIXgfs}/orog/${CASE}/${CASE}_grid.tile${n}.nc" "${DATA}/INPUT/${CASE}_grid.tile${n}.nc"
done
_suite_file="${HOMEgfs}/sorc/ufs_model.fd/FV3/ccpp/suites/suite_${CCPP_SUITE}.xml"
@@ -201,10 +199,10 @@ EOF
fi
# Files for GWD
- ${NLN} "${FIXugwd}/ugwp_limb_tau.nc" "${DATA}/ugwp_limb_tau.nc"
+ ${NLN} "${FIXgfs}/ugwd/ugwp_limb_tau.nc" "${DATA}/ugwp_limb_tau.nc"
for n in $(seq 1 "${ntiles}"); do
- ${NLN} "${FIXugwd}/${CASE}/${CASE}_oro_data_ls.tile${n}.nc" "${DATA}/INPUT/oro_data_ls.tile${n}.nc"
- ${NLN} "${FIXugwd}/${CASE}/${CASE}_oro_data_ss.tile${n}.nc" "${DATA}/INPUT/oro_data_ss.tile${n}.nc"
+ ${NLN} "${FIXgfs}/ugwd/${CASE}/${CASE}_oro_data_ls.tile${n}.nc" "${DATA}/INPUT/oro_data_ls.tile${n}.nc"
+ ${NLN} "${FIXgfs}/ugwd/${CASE}/${CASE}_oro_data_ss.tile${n}.nc" "${DATA}/INPUT/oro_data_ss.tile${n}.nc"
done
# GFS standard input data
@@ -225,41 +223,41 @@ EOF
# imp_physics should be 8:
####
if [[ ${imp_physics} -eq 8 ]]; then
- ${NLN} "${FIXam}/CCN_ACTIVATE.BIN" "${DATA}/CCN_ACTIVATE.BIN"
- ${NLN} "${FIXam}/freezeH2O.dat" "${DATA}/freezeH2O.dat"
- ${NLN} "${FIXam}/qr_acr_qgV2.dat" "${DATA}/qr_acr_qgV2.dat"
- ${NLN} "${FIXam}/qr_acr_qsV2.dat" "${DATA}/qr_acr_qsV2.dat"
+ ${NLN} "${FIXgfs}/am/CCN_ACTIVATE.BIN" "${DATA}/CCN_ACTIVATE.BIN"
+ ${NLN} "${FIXgfs}/am/freezeH2O.dat" "${DATA}/freezeH2O.dat"
+ ${NLN} "${FIXgfs}/am/qr_acr_qgV2.dat" "${DATA}/qr_acr_qgV2.dat"
+ ${NLN} "${FIXgfs}/am/qr_acr_qsV2.dat" "${DATA}/qr_acr_qsV2.dat"
fi
- ${NLN} "${FIXam}/${O3FORC}" "${DATA}/global_o3prdlos.f77"
- ${NLN} "${FIXam}/${H2OFORC}" "${DATA}/global_h2oprdlos.f77"
- ${NLN} "${FIXam}/global_solarconstant_noaa_an.txt" "${DATA}/solarconstant_noaa_an.txt"
- ${NLN} "${FIXam}/global_sfc_emissivity_idx.txt" "${DATA}/sfc_emissivity_idx.txt"
+ ${NLN} "${FIXgfs}/am/${O3FORC}" "${DATA}/global_o3prdlos.f77"
+ ${NLN} "${FIXgfs}/am/${H2OFORC}" "${DATA}/global_h2oprdlos.f77"
+ ${NLN} "${FIXgfs}/am/global_solarconstant_noaa_an.txt" "${DATA}/solarconstant_noaa_an.txt"
+ ${NLN} "${FIXgfs}/am/global_sfc_emissivity_idx.txt" "${DATA}/sfc_emissivity_idx.txt"
## merra2 aerosol climo
if [[ ${IAER} -eq "1011" ]]; then
for month in $(seq 1 12); do
MM=$(printf %02d "${month}")
- ${NLN} "${FIXaer}/merra2.aerclim.2003-2014.m${MM}.nc" "aeroclim.m${MM}.nc"
+ ${NLN} "${FIXgfs}/aer/merra2.aerclim.2003-2014.m${MM}.nc" "aeroclim.m${MM}.nc"
done
- ${NLN} "${FIXlut}/optics_BC.v1_3.dat" "${DATA}/optics_BC.dat"
- ${NLN} "${FIXlut}/optics_OC.v1_3.dat" "${DATA}/optics_OC.dat"
- ${NLN} "${FIXlut}/optics_DU.v15_3.dat" "${DATA}/optics_DU.dat"
- ${NLN} "${FIXlut}/optics_SS.v3_3.dat" "${DATA}/optics_SS.dat"
- ${NLN} "${FIXlut}/optics_SU.v1_3.dat" "${DATA}/optics_SU.dat"
+ ${NLN} "${FIXgfs}/lut/optics_BC.v1_3.dat" "${DATA}/optics_BC.dat"
+ ${NLN} "${FIXgfs}/lut/optics_OC.v1_3.dat" "${DATA}/optics_OC.dat"
+ ${NLN} "${FIXgfs}/lut/optics_DU.v15_3.dat" "${DATA}/optics_DU.dat"
+ ${NLN} "${FIXgfs}/lut/optics_SS.v3_3.dat" "${DATA}/optics_SS.dat"
+ ${NLN} "${FIXgfs}/lut/optics_SU.v1_3.dat" "${DATA}/optics_SU.dat"
fi
- ${NLN} "${FIXam}/global_co2historicaldata_glob.txt" "${DATA}/co2historicaldata_glob.txt"
- ${NLN} "${FIXam}/co2monthlycyc.txt" "${DATA}/co2monthlycyc.txt"
+ ${NLN} "${FIXgfs}/am/global_co2historicaldata_glob.txt" "${DATA}/co2historicaldata_glob.txt"
+ ${NLN} "${FIXgfs}/am/co2monthlycyc.txt" "${DATA}/co2monthlycyc.txt"
if [[ ${ICO2} -gt 0 ]]; then
- for file in $(ls "${FIXam}/fix_co2_proj/global_co2historicaldata"*) ; do
+ for file in $(ls "${FIXgfs}/am/fix_co2_proj/global_co2historicaldata"*) ; do
${NLN} "${file}" "${DATA}/$(basename "${file//global_}")"
done
fi
- ${NLN} "${FIXam}/global_climaeropac_global.txt" "${DATA}/aerosol.dat"
+ ${NLN} "${FIXgfs}/am/global_climaeropac_global.txt" "${DATA}/aerosol.dat"
if [[ ${IAER} -gt 0 ]] ; then
- for file in $(ls "${FIXam}/global_volcanic_aerosols"*) ; do
+ for file in $(ls "${FIXgfs}/am/global_volcanic_aerosols"*) ; do
${NLN} "${file}" "${DATA}/$(basename "${file//global_}")"
done
fi
@@ -296,28 +294,28 @@ EOF
LATB_JMO=${LATB_JMO:-${LATB_CASE}}
# Fix files
- FNGLAC=${FNGLAC:-"${FIXam}/global_glacier.2x2.grb"}
- FNMXIC=${FNMXIC:-"${FIXam}/global_maxice.2x2.grb"}
- FNTSFC=${FNTSFC:-"${FIXam}/RTGSST.1982.2012.monthly.clim.grb"}
- FNSNOC=${FNSNOC:-"${FIXam}/global_snoclim.1.875.grb"}
+ FNGLAC=${FNGLAC:-"${FIXgfs}/am/global_glacier.2x2.grb"}
+ FNMXIC=${FNMXIC:-"${FIXgfs}/am/global_maxice.2x2.grb"}
+ FNTSFC=${FNTSFC:-"${FIXgfs}/am/RTGSST.1982.2012.monthly.clim.grb"}
+ FNSNOC=${FNSNOC:-"${FIXgfs}/am/global_snoclim.1.875.grb"}
FNZORC=${FNZORC:-"igbp"}
- FNAISC=${FNAISC:-"${FIXam}/IMS-NIC.blended.ice.monthly.clim.grb"}
- FNALBC2=${FNALBC2:-"${FIXsfc}/${CASE}.mx${OCNRES}.facsf.tileX.nc"}
- FNTG3C=${FNTG3C:-"${FIXsfc}/${CASE}.mx${OCNRES}.substrate_temperature.tileX.nc"}
- FNVEGC=${FNVEGC:-"${FIXsfc}/${CASE}.mx${OCNRES}.vegetation_greenness.tileX.nc"}
- FNMSKH=${FNMSKH:-"${FIXam}/global_slmask.t1534.3072.1536.grb"}
- FNVMNC=${FNVMNC:-"${FIXsfc}/${CASE}.mx${OCNRES}.vegetation_greenness.tileX.nc"}
- FNVMXC=${FNVMXC:-"${FIXsfc}/${CASE}.mx${OCNRES}.vegetation_greenness.tileX.nc"}
- FNSLPC=${FNSLPC:-"${FIXsfc}/${CASE}.mx${OCNRES}.slope_type.tileX.nc"}
- FNALBC=${FNALBC:-"${FIXsfc}/${CASE}.mx${OCNRES}.snowfree_albedo.tileX.nc"}
- FNVETC=${FNVETC:-"${FIXsfc}/${CASE}.mx${OCNRES}.vegetation_type.tileX.nc"}
- FNSOTC=${FNSOTC:-"${FIXsfc}/${CASE}.mx${OCNRES}.soil_type.tileX.nc"}
- FNSOCC=${FNSOCC:-"${FIXsfc}/${CASE}.mx${OCNRES}.soil_color.tileX.nc"}
- FNABSC=${FNABSC:-"${FIXsfc}/${CASE}.mx${OCNRES}.maximum_snow_albedo.tileX.nc"}
- FNSMCC=${FNSMCC:-"${FIXam}/global_soilmgldas.statsgo.t${JCAP}.${LONB}.${LATB}.grb"}
+ FNAISC=${FNAISC:-"${FIXgfs}/am/IMS-NIC.blended.ice.monthly.clim.grb"}
+ FNALBC2=${FNALBC2:-"${FIXgfs}/orog/${CASE}/sfc/${CASE}.mx${OCNRES}.facsf.tileX.nc"}
+ FNTG3C=${FNTG3C:-"${FIXgfs}/orog/${CASE}/sfc/${CASE}.mx${OCNRES}.substrate_temperature.tileX.nc"}
+ FNVEGC=${FNVEGC:-"${FIXgfs}/orog/${CASE}/sfc/${CASE}.mx${OCNRES}.vegetation_greenness.tileX.nc"}
+ FNMSKH=${FNMSKH:-"${FIXgfs}/am/global_slmask.t1534.3072.1536.grb"}
+ FNVMNC=${FNVMNC:-"${FIXgfs}/orog/${CASE}/sfc/${CASE}.mx${OCNRES}.vegetation_greenness.tileX.nc"}
+ FNVMXC=${FNVMXC:-"${FIXgfs}/orog/${CASE}/sfc/${CASE}.mx${OCNRES}.vegetation_greenness.tileX.nc"}
+ FNSLPC=${FNSLPC:-"${FIXgfs}/orog/${CASE}/sfc/${CASE}.mx${OCNRES}.slope_type.tileX.nc"}
+ FNALBC=${FNALBC:-"${FIXgfs}/orog/${CASE}/sfc/${CASE}.mx${OCNRES}.snowfree_albedo.tileX.nc"}
+ FNVETC=${FNVETC:-"${FIXgfs}/orog/${CASE}/sfc/${CASE}.mx${OCNRES}.vegetation_type.tileX.nc"}
+ FNSOTC=${FNSOTC:-"${FIXgfs}/orog/${CASE}/sfc/${CASE}.mx${OCNRES}.soil_type.tileX.nc"}
+ FNSOCC=${FNSOCC:-"${FIXgfs}/orog/${CASE}/sfc/${CASE}.mx${OCNRES}.soil_color.tileX.nc"}
+ FNABSC=${FNABSC:-"${FIXgfs}/orog/${CASE}/sfc/${CASE}.mx${OCNRES}.maximum_snow_albedo.tileX.nc"}
+ FNSMCC=${FNSMCC:-"${FIXgfs}/am/global_soilmgldas.statsgo.t${JCAP}.${LONB}.${LATB}.grb"}
# If the appropriate resolution fix file is not present, use the highest resolution available (T1534)
- [[ ! -f ${FNSMCC} ]] && FNSMCC="${FIXam}/global_soilmgldas.statsgo.t1534.3072.1536.grb"
+ [[ ! -f ${FNSMCC} ]] && FNSMCC="${FIXgfs}/am/global_soilmgldas.statsgo.t1534.3072.1536.grb"
# NSST Options
# nstf_name contains the NSST related parameters
@@ -541,7 +539,7 @@ WW3_postdet() {
if [[ "${MESH_WAV}" == "${MESH_OCN:-mesh.mx${OCNRES}.nc}" ]]; then
echo "Wave is on same mesh as ocean"
else
- ${NLN} "${FIXwave}/${MESH_WAV}" "${DATA}/"
+ ${NLN} "${FIXgfs}/wave/${MESH_WAV}" "${DATA}/"
fi
export wavprfx=${RUNwave}${WAV_MEMBER:-}
@@ -645,8 +643,8 @@ WW3_nml() {
echo "SUB ${FUNCNAME[0]}: Copying input files for WW3"
WAV_MOD_TAG=${RUN}wave${waveMEMB}
if [[ "${USE_WAV_RMP:-YES}" = "YES" ]]; then
- if (( $( ls -1 "${FIXwave}/rmp_src_to_dst_conserv_"* 2> /dev/null | wc -l) > 0 )); then
- for file in $(ls "${FIXwave}/rmp_src_to_dst_conserv_"*) ; do
+ if (( $( ls -1 "${FIXgfs}/wave/rmp_src_to_dst_conserv_"* 2> /dev/null | wc -l) > 0 )); then
+ for file in $(ls "${FIXgfs}/wave/rmp_src_to_dst_conserv_"*) ; do
${NLN} "${file}" "${DATA}/"
done
else
@@ -696,10 +694,10 @@ MOM6_postdet() {
fi
# Copy MOM6 fixed files
- ${NCP} "${FIXmom}/${OCNRES}/"* "${DATA}/INPUT/" # TODO: These need to be explicit
+ ${NCP} "${FIXgfs}/mom6/${OCNRES}/"* "${DATA}/INPUT/" # TODO: These need to be explicit
# Copy coupled grid_spec
- spec_file="${FIXcpl}/a${CASE}o${OCNRES}/grid_spec.nc"
+ spec_file="${FIXgfs}/cpl/a${CASE}o${OCNRES}/grid_spec.nc"
if [[ -s ${spec_file} ]]; then
${NCP} "${spec_file}" "${DATA}/INPUT/"
else
@@ -833,9 +831,9 @@ CICE_postdet() {
echo "${DATA}/cice_model.res.nc" > "${DATA}/ice.restart_file"
echo "Link CICE fixed files"
- ${NLN} "${FIXcice}/${ICERES}/${CICE_GRID}" "${DATA}/"
- ${NLN} "${FIXcice}/${ICERES}/${CICE_MASK}" "${DATA}/"
- ${NLN} "${FIXcice}/${ICERES}/${MESH_ICE}" "${DATA}/"
+ ${NLN} "${FIXgfs}/cice/${ICERES}/${CICE_GRID}" "${DATA}/"
+ ${NLN} "${FIXgfs}/cice/${ICERES}/${CICE_MASK}" "${DATA}/"
+ ${NLN} "${FIXgfs}/cice/${ICERES}/${MESH_ICE}" "${DATA}/"
# Link iceh_ic file to COM. This is the initial condition file from CICE (f000)
# TODO: Is this file needed in COM? Is this going to be used for generating any products?
diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh
index 1aaa1a4b9d..ab02270b46 100755
--- a/ush/forecast_predet.sh
+++ b/ush/forecast_predet.sh
@@ -229,7 +229,7 @@ CICE_predet(){
# Convert output settings into an explicit list for CICE
# Ignore "not used" warning
# shellcheck disable=SC2034
- CICE_OUTPUT_FH=$(seq -s ' ' "${FHMIN}" "${FHOUT}" "${FHMAX}")
+ CICE_OUTPUT_FH=$(seq -s ' ' "${FHMIN}" "${FHOUT_OCNICE}" "${FHMAX}")
}
@@ -247,7 +247,7 @@ MOM6_predet(){
# Convert output settings into an explicit list for MOM6
# Ignore "not used" warning
# shellcheck disable=SC2034
- MOM6_OUTPUT_FH=$(seq -s ' ' "${FHMIN}" "${FHOUT}" "${FHMAX}")
+ MOM6_OUTPUT_FH=$(seq -s ' ' "${FHMIN}" "${FHOUT_OCNICE}" "${FHMAX}")
}
diff --git a/ush/fv3gfs_remap.sh b/ush/fv3gfs_remap.sh
index 7986add331..eaf2c64a01 100755
--- a/ush/fv3gfs_remap.sh
+++ b/ush/fv3gfs_remap.sh
@@ -14,8 +14,6 @@ export GG=${master_grid:-"0p25deg"} # 1deg 0p5deg 0p25deg 0p125deg
pwd=$(pwd)
export DATA=${DATA:-$pwd}
export HOMEgfs=${HOMEgfs:-$PACKAGEROOT}
-export FIXgfs=${FIXgfs:-$HOMEgfs/fix}
-export FIXorog=${FIXorog:-$FIXgfs/orog}
export REMAPEXE=${REMAPEXE:-$HOMEgfs/exec/fregrid_parallel}
export IPD4=${IPD4:-"YES"}
@@ -25,8 +23,8 @@ export CDUMP=${CDUMP:-gfs}
export PREFIX=${PREFIX:-${CDUMP}${TCYC}}
#--------------------------------------------------
-export grid_loc=${FIXorog}/${CASE}/${CASE}_mosaic.nc
-export weight_file=${FIXorog}/${CASE}/remap_weights_${CASE}_${GG}.nc
+export grid_loc=${FIXgfs}/orog/${CASE}/${CASE}_mosaic.nc
+export weight_file=${FIXgfs}/orog/${CASE}/remap_weights_${CASE}_${GG}.nc
export APRUN_REMAP=${APRUN_REMAP:-${APRUN:-""}}
export NTHREADS_REMAP=${NTHREADS_REMAP:-${NTHREADS:-1}}
diff --git a/ush/gaussian_sfcanl.sh b/ush/gaussian_sfcanl.sh
index 1a0441a06f..79b2cb5b7d 100755
--- a/ush/gaussian_sfcanl.sh
+++ b/ush/gaussian_sfcanl.sh
@@ -27,10 +27,6 @@
# Default is /nwprod2.
# HOMEgfs Directory for gfs version. Default is
# $BASEDIR/gfs_ver.v15.0.0}
-# FIXam Directory for the global fixed climatology files.
-# Defaults to $HOMEgfs/fix/am
-# FIXorog Directory for the model grid and orography netcdf
-# files. Defaults to $HOMEgfs/fix/orog
# FIXWGTS Weight file to use for interpolation
# EXECgfs Directory of the program executable. Defaults to
# $HOMEgfs/exec
@@ -83,9 +79,9 @@
#
# programs : $GAUSFCANLEXE
#
-# fixed data : ${FIXorog}/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile*.nc
+# fixed data : ${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile*.nc
# ${FIXWGTS}
-# ${FIXam}/global_hyblev.l65.txt
+# ${FIXgfs}/am/global_hyblev.l65.txt
#
# input data : ${COM_ATMOS_RESTART}/${PDY}.${cyc}0000.sfcanl_data.tile*.nc
#
@@ -126,15 +122,13 @@ gfs_ver=${gfs_ver:-v16.3.0}
BASEDIR=${BASEDIR:-${PACKAGEROOT:-/lfs/h1/ops/prod/packages}}
HOMEgfs=${HOMEgfs:-$BASEDIR/gfs.${gfs_ver}}
EXECgfs=${EXECgfs:-$HOMEgfs/exec}
-FIXorog=${FIXorog:-$HOMEgfs/fix/orog}
-FIXam=${FIXam:-$HOMEgfs/fix/am}
-FIXWGTS=${FIXWGTS:-$FIXorog/$CASE/fv3_SCRIP_${CASE}_GRIDSPEC_lon${LONB_SFC}_lat${LATB_SFC}.gaussian.neareststod.nc}
+FIXWGTS=${FIXWGTS:-${FIXgfs}/orog/${CASE}/fv3_SCRIP_${CASE}_GRIDSPEC_lon${LONB_SFC}_lat${LATB_SFC}.gaussian.neareststod.nc}
DATA=${DATA:-$(pwd)}
# Filenames.
XC=${XC:-}
GAUSFCANLEXE=${GAUSFCANLEXE:-$EXECgfs/gaussian_sfcanl.x}
-SIGLEVEL=${SIGLEVEL:-$FIXam/global_hyblev.l${LEVSP1}.txt}
+SIGLEVEL=${SIGLEVEL:-${FIXgfs}/am/global_hyblev.l${LEVSP1}.txt}
CDATE=${CDATE:?}
@@ -187,12 +181,12 @@ ${NLN} "${COM_ATMOS_RESTART}/${PDY}.${cyc}0000.sfcanl_data.tile5.nc" "./anal.til
${NLN} "${COM_ATMOS_RESTART}/${PDY}.${cyc}0000.sfcanl_data.tile6.nc" "./anal.tile6.nc"
# input orography tiles
-${NLN} "${FIXorog}/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile1.nc" "./orog.tile1.nc"
-${NLN} "${FIXorog}/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile2.nc" "./orog.tile2.nc"
-${NLN} "${FIXorog}/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile3.nc" "./orog.tile3.nc"
-${NLN} "${FIXorog}/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile4.nc" "./orog.tile4.nc"
-${NLN} "${FIXorog}/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile5.nc" "./orog.tile5.nc"
-${NLN} "${FIXorog}/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile6.nc" "./orog.tile6.nc"
+${NLN} "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile1.nc" "./orog.tile1.nc"
+${NLN} "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile2.nc" "./orog.tile2.nc"
+${NLN} "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile3.nc" "./orog.tile3.nc"
+${NLN} "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile4.nc" "./orog.tile4.nc"
+${NLN} "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile5.nc" "./orog.tile5.nc"
+${NLN} "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile6.nc" "./orog.tile6.nc"
${NLN} "${SIGLEVEL}" "./vcoord.txt"
diff --git a/ush/gfs_sndp.sh b/ush/gfs_sndp.sh
index 99c5c68fa3..e07b3eb42c 100755
--- a/ush/gfs_sndp.sh
+++ b/ush/gfs_sndp.sh
@@ -16,7 +16,7 @@ source "$HOMEgfs/ush/preamble.sh"
export m=$1
mkdir $DATA/$m
cd $DATA/$m
- cp $FIXbufrsnd/gfs_collective${m}.list $DATA/$m/.
+ cp ${HOMEgfs}/fix/product/gfs_collective${m}.list $DATA/$m/.
CCCC=KWBC
file_list=gfs_collective${m}.list
diff --git a/ush/gfs_truncate_enkf.sh b/ush/gfs_truncate_enkf.sh
index 0a7d6fc0dd..8aa47e26e2 100755
--- a/ush/gfs_truncate_enkf.sh
+++ b/ush/gfs_truncate_enkf.sh
@@ -14,17 +14,16 @@ mkdir -p $DATATMP
cd $DATATMP
export LEVS=${LEVS_LORES:-64}
-export FIXam=${FIXam:-$HOMEgfs/fix/am}
export CHGRESSH=${CHGRESSH:-${USHgfs}/global_chgres.sh}
export CHGRESEXEC=${CHGRESEXEC-${EXECgfs}/global_chgres}
-export OROGRAPHY=${OROGRAPHY_LORES:-$FIXam/global_orography.t$JCAP.$LONB.$LATB.grb}
-export OROGRAPHY_UF=${OROGRAPHY_UF_LORES:-$FIXam/global_orography_uf.t$JCAP.$LONB.$LATB.grb}
-export LONSPERLAT=${LONSPERLAT_LORES:-$FIXam/global_lonsperlat.t${JCAP}.$LONB.$LATB.txt}
-export SLMASK=${SLMASK_LORES:-$FIXam/global_slmask.t$JCAP.$LONB.$LATB.grb}
-export MTNVAR=${MTNVAR_LORES:-$FIXam/global_mtnvar.t$JCAP.$LONB.$LATB.f77}
-export SIGLEVEL=${SIGLEVEL_LORES:-$FIXam/global_hyblev.l${LEVS}.txt}
-export O3CLIM=${O3CLIM:-$FIXam/global_o3clim.txt}
+export OROGRAPHY=${OROGRAPHY_LORES:-${FIXgfs}/am/global_orography.t$JCAP.$LONB.$LATB.grb}
+export OROGRAPHY_UF=${OROGRAPHY_UF_LORES:-${FIXgfs}/am/global_orography_uf.t$JCAP.$LONB.$LATB.grb}
+export LONSPERLAT=${LONSPERLAT_LORES:-${FIXgfs}/am/global_lonsperlat.t${JCAP}.$LONB.$LATB.txt}
+export SLMASK=${SLMASK_LORES:-${FIXgfs}/am/global_slmask.t$JCAP.$LONB.$LATB.grb}
+export MTNVAR=${MTNVAR_LORES:-${FIXgfs}/am/global_mtnvar.t$JCAP.$LONB.$LATB.f77}
+export SIGLEVEL=${SIGLEVEL_LORES:-${FIXgfs}/am/global_hyblev.l${LEVS}.txt}
+export O3CLIM=${O3CLIM:-${FIXgfs}/am/global_o3clim.txt}
use_ufo=.true.
diff --git a/ush/load_fv3gfs_modules.sh b/ush/load_fv3gfs_modules.sh
index 48885c62e4..ae0e381db4 100755
--- a/ush/load_fv3gfs_modules.sh
+++ b/ush/load_fv3gfs_modules.sh
@@ -10,6 +10,7 @@ fi
ulimit_s=$( ulimit -S -s )
# Find module command and purge:
+source "${HOMEgfs}/ush/detect_machine.sh"
source "${HOMEgfs}/ush/module-setup.sh"
# Source versions file for runtime
@@ -18,36 +19,14 @@ source "${HOMEgfs}/versions/run.ver"
# Load our modules:
module use "${HOMEgfs}/modulefiles"
-if [[ -d /lfs/f1 ]]; then
- # We are on WCOSS2 (Cactus or Dogwood)
- module load module_base.wcoss2
-elif [[ -d /mnt/lfs1 ]] ; then
- # We are on NOAA Jet
- module load module_base.jet
-elif [[ -d /scratch1 ]] ; then
- # We are on NOAA Hera
- module load module_base.hera
-elif [[ -d /work ]] ; then
- # We are on MSU Orion or Hercules
- if [[ -d /apps/other ]] ; then
- # Hercules
- module load module_base.hercules
- else
- # Orion
- module load module_base.orion
- fi
-elif [[ -d /glade ]] ; then
- # We are on NCAR Yellowstone
- module load module_base.cheyenne
-elif [[ -d /lustre && -d /ncrc ]] ; then
- # We are on GAEA.
- module load module_base.gaea
-elif [[ -d /data/prod ]] ; then
- # We are on SSEC S4
- module load module_base.s4
-else
- echo WARNING: UNKNOWN PLATFORM
-fi
+case "${MACHINE_ID}" in
+ "wcoss2" | "hera" | "orion" | "hercules" | "gaea" | "jet" | "s4")
+ module load "module_base.${MACHINE_ID}"
+ ;;
+ *)
+ echo "WARNING: UNKNOWN PLATFORM"
+ ;;
+esac
module list
diff --git a/ush/load_ufsda_modules.sh b/ush/load_ufsda_modules.sh
index f15ae5666c..e8e72b8fbe 100755
--- a/ush/load_ufsda_modules.sh
+++ b/ush/load_ufsda_modules.sh
@@ -27,48 +27,26 @@ fi
ulimit_s=$( ulimit -S -s )
# Find module command and purge:
+source "${HOMEgfs}/ush/detect_machine.sh"
source "${HOMEgfs}/ush/module-setup.sh"
# Load our modules:
module use "${HOMEgfs}/sorc/gdas.cd/modulefiles"
-if [[ -d /lfs/f1 ]]; then
- # We are on WCOSS2 (Cactus or Dogwood)
- echo WARNING: UFSDA NOT SUPPORTED ON THIS PLATFORM
-elif [[ -d /lfs3 ]] ; then
- # We are on NOAA Jet
- echo WARNING: UFSDA NOT SUPPORTED ON THIS PLATFORM
-elif [[ -d /scratch1 ]] ; then
- # We are on NOAA Hera
- module load "${MODS}/hera"
- # set NETCDF variable based on ncdump location
- NETCDF=$( which ncdump )
- export NETCDF
-elif [[ -d /work ]] ; then
- # We are on MSU Orion or Hercules
- if [[ -d /apps/other ]] ; then
- # Hercules
- module load "${MODS}/hercules"
- else
- # Orion
- module load "${MODS}/orion"
- fi
- # set NETCDF variable based on ncdump location
- ncdump=$( which ncdump )
- NETCDF=$( echo "${ncdump}" | cut -d " " -f 3 )
- export NETCDF
-elif [[ -d /glade ]] ; then
- # We are on NCAR Yellowstone
- echo WARNING: UFSDA NOT SUPPORTED ON THIS PLATFORM
-elif [[ -d /lustre && -d /ncrc ]] ; then
- # We are on GAEA.
- echo WARNING: UFSDA NOT SUPPORTED ON THIS PLATFORM
-elif [[ -d /data/prod ]] ; then
- # We are on SSEC S4
- echo WARNING: UFSDA NOT SUPPORTED ON THIS PLATFORM
-else
- echo WARNING: UNKNOWN PLATFORM
-fi
+case "${MACHINE_ID}" in
+ ("hera" | "orion" | "hercules")
+ module load "${MODS}/${MACHINE_ID}"
+ ncdump=$( command -v ncdump )
+ NETCDF=$( echo "${ncdump}" | cut -d " " -f 3 )
+ export NETCDF
+ ;;
+ ("wcoss2" | "acorn" | "jet" | "gaea" | "s4")
+ echo WARNING: UFSDA NOT SUPPORTED ON THIS PLATFORM
+ ;;
+ *)
+ echo "WARNING: UNKNOWN PLATFORM"
+ ;;
+esac
module list
pip list
diff --git a/ush/minmon_xtrct_costs.pl b/ush/minmon_xtrct_costs.pl
index 502032da80..c56ac3bdad 100755
--- a/ush/minmon_xtrct_costs.pl
+++ b/ush/minmon_xtrct_costs.pl
@@ -22,8 +22,8 @@
#
#---------------------------
-if ($#ARGV != 4 ) {
- print "usage: minmon_xtrct_costs.pl SUFFIX PDY cyc infile jlogfile\n";
+if ($#ARGV != 3 ) {
+ print "usage: minmon_xtrct_costs.pl SUFFIX PDY cyc infile\n";
exit;
}
my $suffix = $ARGV[0];
@@ -31,7 +31,6 @@
my $pdy = $ARGV[1];
my $cyc = $ARGV[2];
my $infile = $ARGV[3];
-my $jlogfile = $ARGV[4];
my $use_costterms = 0;
my $no_data = 0.00;
diff --git a/ush/minmon_xtrct_gnorms.pl b/ush/minmon_xtrct_gnorms.pl
index 0125c58ac8..ac83c08cd3 100755
--- a/ush/minmon_xtrct_gnorms.pl
+++ b/ush/minmon_xtrct_gnorms.pl
@@ -185,8 +185,8 @@ sub updateGnormData {
#
#---------------------------------------------------------------------------
-if ($#ARGV != 4 ) {
- print "usage: minmon_xtrct_gnorms.pl SUFFIX pdy cyc infile jlogfile\n";
+if ($#ARGV != 3 ) {
+ print "usage: minmon_xtrct_gnorms.pl SUFFIX pdy cyc infile \n";
exit;
}
@@ -195,7 +195,6 @@ sub updateGnormData {
my $pdy = $ARGV[1];
my $cyc = $ARGV[2];
my $infile = $ARGV[3];
-my $jlogfile = $ARGV[4];
my $scr = "minmon_xtrct_gnorms.pl";
diff --git a/ush/minmon_xtrct_reduct.pl b/ush/minmon_xtrct_reduct.pl
index 1b8186b6ad..cc5da86af8 100755
--- a/ush/minmon_xtrct_reduct.pl
+++ b/ush/minmon_xtrct_reduct.pl
@@ -9,20 +9,18 @@
# reduction.ieee_d files ready for GrADS use.
#---------------------------------------------------------------------------
-if ($#ARGV != 4 ) {
- print "usage: minmon_xtrct_reduct.pl SUFFIX pdy cyc infile jlogfile\n";
+if ($#ARGV != 3 ) {
+ print "usage: minmon_xtrct_reduct.pl SUFFIX pdy cyc infile\n";
print " suffix is data source identifier\n";
print " pdy is YYYYMMDD of the cycle to be processed\n";
print " cyc is HH of the cycle to be processed\n";
print " infile is the data file containing the reduction stats\n";
- print " jlogfile is the job log file\n";
exit;
}
my $suffix = $ARGV[0];
my $pdy = $ARGV[1];
my $cyc = $ARGV[2];
my $infile = $ARGV[3];
-my $jlogfile = $ARGV[4];
my $scr = "minmon_xtrct_reduct.pl";
print "$scr has started\n";
diff --git a/ush/parsing_namelists_CICE.sh b/ush/parsing_namelists_CICE.sh
index 3f1798d3e9..d749e6d890 100755
--- a/ush/parsing_namelists_CICE.sh
+++ b/ush/parsing_namelists_CICE.sh
@@ -61,8 +61,8 @@ local CICE_RESTART_DIR="./CICE_RESTART/"
local CICE_RESTART_FILE="cice_model.res"
local CICE_DUMPFREQ="y" # "h","d","m" or "y" for restarts at intervals of "hours", "days", "months" or "years"
local CICE_DUMPFREQ_N=10000 # Set this to a really large value, as cice, mom6 and cmeps restart interval is controlled by ufs.configure
-local CICE_DIAGFREQ=6
-local CICE_HISTFREQ_N="0, 0, ${FHOUT}, 1, 1"
+local CICE_DIAGFREQ=$(( 86400 / DT_CICE )) # frequency of diagnostic output in timesteps, recommended for 1x per day
+local CICE_HISTFREQ_N="0, 0, ${FHOUT_OCNICE}, 1, 1"
if [[ "${RUN}" =~ "gdas" ]]; then
local CICE_HIST_AVG=".false., .false., .false., .false., .false." # DA needs instantaneous
else
diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh
index 83e0c10525..88a0065076 100755
--- a/ush/parsing_namelists_FV3.sh
+++ b/ush/parsing_namelists_FV3.sh
@@ -9,6 +9,8 @@
## This script is a direct execution.
#####
+# Disable variable not used warnings
+# shellcheck disable=SC2034
FV3_namelists(){
# setup the tables
@@ -33,7 +35,15 @@ if [[ -n "${AERO_DIAG_TABLE:-}" ]]; then
cat "${AERO_DIAG_TABLE}"
fi
cat "${DIAG_TABLE_APPEND}"
-} >> diag_table
+} >> diag_table_template
+
+local template=diag_table_template
+local SYEAR=${current_cycle:0:4}
+local SMONTH=${current_cycle:4:2}
+local SDAY=${current_cycle:6:2}
+local CHOUR=${current_cycle:8:2}
+source "${HOMEgfs}/ush/atparse.bash"
+atparse < "${template}" >> "diag_table"
# copy data table
diff --git a/ush/python/pygfs/task/analysis.py b/ush/python/pygfs/task/analysis.py
index cfd1fb2206..b562eeee4e 100644
--- a/ush/python/pygfs/task/analysis.py
+++ b/ush/python/pygfs/task/analysis.py
@@ -99,7 +99,7 @@ def get_bias_dict(self) -> Dict[str, Any]:
obdir = os.path.dirname(obfile)
basename = os.path.basename(obfile)
prefix = '.'.join(basename.split('.')[:-2])
- for file in ['satbias.nc4', 'satbias_cov.nc4', 'tlapse.txt']:
+ for file in ['satbias.nc', 'satbias_cov.nc', 'tlapse.txt']:
bfile = f"{prefix}.{file}"
copylist.append([os.path.join(self.task_config.COM_ATMOS_ANALYSIS_PREV, bfile), os.path.join(obdir, bfile)])
@@ -311,13 +311,13 @@ def tgz_diags(statfile: str, diagdir: str) -> None:
Parameters
----------
statfile : str | os.PathLike
- Path to the output .tar.gz .tgz file that will contain the diag*.nc4 files e.g. atmstat.tgz
+ Path to the output .tar.gz .tgz file that will contain the diag*.nc files e.g. atmstat.tgz
diagdir : str | os.PathLike
Directory containing JEDI diag files
"""
# get list of diag files to put in tarball
- diags = glob.glob(os.path.join(diagdir, 'diags', 'diag*nc4'))
+ diags = glob.glob(os.path.join(diagdir, 'diags', 'diag*nc'))
logger.info(f"Compressing {len(diags)} diag files to {statfile}")
diff --git a/ush/python/pygfs/task/atm_analysis.py b/ush/python/pygfs/task/atm_analysis.py
index 6aed0533c6..7e2ae87b6b 100644
--- a/ush/python/pygfs/task/atm_analysis.py
+++ b/ush/python/pygfs/task/atm_analysis.py
@@ -152,7 +152,7 @@ def finalize(self: Analysis) -> None:
atmstat = os.path.join(self.task_config.COM_ATMOS_ANALYSIS, f"{self.task_config.APREFIX}atmstat")
# get list of diag files to put in tarball
- diags = glob.glob(os.path.join(self.task_config.DATA, 'diags', 'diag*nc4'))
+ diags = glob.glob(os.path.join(self.task_config.DATA, 'diags', 'diag*nc'))
logger.info(f"Compressing {len(diags)} diag files to {atmstat}.gz")
diff --git a/ush/python/pygfs/task/atmens_analysis.py b/ush/python/pygfs/task/atmens_analysis.py
index 9cf84c07c7..7b81a10f32 100644
--- a/ush/python/pygfs/task/atmens_analysis.py
+++ b/ush/python/pygfs/task/atmens_analysis.py
@@ -188,7 +188,7 @@ def finalize(self: Analysis) -> None:
atmensstat = os.path.join(self.task_config.COM_ATMOS_ANALYSIS_ENS, f"{self.task_config.APREFIX}atmensstat")
# get list of diag files to put in tarball
- diags = glob.glob(os.path.join(self.task_config.DATA, 'diags', 'diag*nc4'))
+ diags = glob.glob(os.path.join(self.task_config.DATA, 'diags', 'diag*nc'))
logger.info(f"Compressing {len(diags)} diag files to {atmensstat}.gz")
diff --git a/ush/python/pygfs/task/oceanice_products.py b/ush/python/pygfs/task/oceanice_products.py
index 968acb0750..c865a9f408 100644
--- a/ush/python/pygfs/task/oceanice_products.py
+++ b/ush/python/pygfs/task/oceanice_products.py
@@ -61,7 +61,7 @@ def __init__(self, config: Dict[str, Any]) -> None:
# TODO: This is a bit of a hack, but it works for now
# FIXME: find a better way to provide the averaging period
# This will be different for ocean and ice, so when they are made flexible, this will need to be addressed
- avg_period = f"{self.config.FORECAST_HOUR-self.config.FHOUT_GFS:03d}-{self.config.FORECAST_HOUR:03d}"
+ avg_period = f"{self.config.FORECAST_HOUR-self.config.FHOUT_OCNICE_GFS:03d}-{self.config.FORECAST_HOUR:03d}"
localdict = AttrDict(
{'component': self.config.COMPONENT,
diff --git a/ush/python/pygfs/task/land_analysis.py b/ush/python/pygfs/task/snow_analysis.py
similarity index 92%
rename from ush/python/pygfs/task/land_analysis.py
rename to ush/python/pygfs/task/snow_analysis.py
index 90ab997de1..01c69dbc7b 100644
--- a/ush/python/pygfs/task/land_analysis.py
+++ b/ush/python/pygfs/task/snow_analysis.py
@@ -21,14 +21,14 @@
logger = getLogger(__name__.split('.')[-1])
-class LandAnalysis(Analysis):
+class SnowAnalysis(Analysis):
"""
- Class for global land analysis tasks
+ Class for global snow analysis tasks
"""
- NMEM_LANDENS = 2
+ NMEM_SNOWENS = 2
- @logit(logger, name="LandAnalysis")
+ @logit(logger, name="SnowAnalysis")
def __init__(self, config):
super().__init__(config)
@@ -43,8 +43,8 @@ def __init__(self, config):
'npy_ges': _res + 1,
'npz_ges': self.config.LEVS - 1,
'npz': self.config.LEVS - 1,
- 'LAND_WINDOW_BEGIN': _window_begin,
- 'LAND_WINDOW_LENGTH': f"PT{self.config['assim_freq']}H",
+ 'SNOW_WINDOW_BEGIN': _window_begin,
+ 'SNOW_WINDOW_LENGTH': f"PT{self.config['assim_freq']}H",
'OPREFIX': f"{self.runtime_config.RUN}.t{self.runtime_config.cyc:02d}z.",
'APREFIX': f"{self.runtime_config.RUN}.t{self.runtime_config.cyc:02d}z.",
'jedi_yaml': _letkfoi_yaml
@@ -56,9 +56,9 @@ def __init__(self, config):
@logit(logger)
def prepare_GTS(self) -> None:
- """Prepare the GTS data for a global land analysis
+ """Prepare the GTS data for a global snow analysis
- This method will prepare GTS data for a global land analysis using JEDI.
+ This method will prepare GTS data for a global snow analysis using JEDI.
This includes:
- processing GTS bufr snow depth observation data to IODA format
@@ -133,9 +133,9 @@ def _gtsbufr2iodax(exe, yaml_file):
@logit(logger)
def prepare_IMS(self) -> None:
- """Prepare the IMS data for a global land analysis
+ """Prepare the IMS data for a global snow analysis
- This method will prepare IMS data for a global land analysis using JEDI.
+ This method will prepare IMS data for a global snow analysis using JEDI.
This includes:
- staging model backgrounds
- processing raw IMS observation data and prepare for conversion to IODA
@@ -153,7 +153,7 @@ def prepare_IMS(self) -> None:
# create a temporary dict of all keys needed in this method
localconf = AttrDict()
keys = ['DATA', 'current_cycle', 'COM_OBS', 'COM_ATMOS_RESTART_PREV',
- 'OPREFIX', 'CASE', 'OCNRES', 'ntiles', 'FIXgdas']
+ 'OPREFIX', 'CASE', 'OCNRES', 'ntiles', 'FIXgfs']
for key in keys:
localconf[key] = self.task_config[key]
@@ -232,7 +232,7 @@ def prepare_IMS(self) -> None:
@logit(logger)
def initialize(self) -> None:
- """Initialize method for Land analysis
+ """Initialize method for snow analysis
This method:
- creates artifacts in the DATA directory by copying fix files
- creates the JEDI LETKF yaml from the template
@@ -241,7 +241,7 @@ def initialize(self) -> None:
Parameters
----------
self : Analysis
- Instance of the LandAnalysis object
+ Instance of the SnowAnalysis object
"""
super().initialize()
@@ -255,12 +255,12 @@ def initialize(self) -> None:
# Make member directories in DATA for background
dirlist = []
- for imem in range(1, LandAnalysis.NMEM_LANDENS + 1):
+ for imem in range(1, SnowAnalysis.NMEM_SNOWENS + 1):
dirlist.append(os.path.join(localconf.DATA, 'bkg', f'mem{imem:03d}'))
FileHandler({'mkdir': dirlist}).sync()
# stage fix files
- jedi_fix_list_path = os.path.join(self.task_config.HOMEgfs, 'parm', 'gdas', 'land_jedi_fix.yaml')
+ jedi_fix_list_path = os.path.join(self.task_config.HOMEgfs, 'parm', 'gdas', 'snow_jedi_fix.yaml')
logger.info(f"Staging JEDI fix files from {jedi_fix_list_path}")
jedi_fix_list = parse_yamltmpl(jedi_fix_list_path, self.task_config)
FileHandler(jedi_fix_list).sync()
@@ -294,15 +294,15 @@ def execute(self) -> None:
Parameters
----------
self : Analysis
- Instance of the LandAnalysis object
+ Instance of the SnowAnalysis object
"""
# create a temporary dict of all keys needed in this method
localconf = AttrDict()
keys = ['HOMEgfs', 'DATA', 'current_cycle',
- 'COM_ATMOS_RESTART_PREV', 'COM_LAND_ANALYSIS', 'APREFIX',
+ 'COM_ATMOS_RESTART_PREV', 'COM_SNOW_ANALYSIS', 'APREFIX',
'SNOWDEPTHVAR', 'BESTDDEV', 'CASE', 'OCNRES', 'ntiles',
- 'APRUN_LANDANL', 'JEDIEXE', 'jedi_yaml',
+ 'APRUN_SNOWANL', 'JEDIEXE', 'jedi_yaml',
'APPLY_INCR_NML_TMPL', 'APPLY_INCR_EXE', 'APRUN_APPLY_INCR']
for key in keys:
localconf[key] = self.task_config[key]
@@ -314,7 +314,7 @@ def execute(self) -> None:
logger.info("Running JEDI LETKF")
self.execute_jediexe(localconf.DATA,
- localconf.APRUN_LANDANL,
+ localconf.APRUN_SNOWANL,
os.path.basename(localconf.JEDIEXE),
localconf.jedi_yaml)
@@ -323,7 +323,7 @@ def execute(self) -> None:
@logit(logger)
def finalize(self) -> None:
- """Performs closing actions of the Land analysis task
+ """Performs closing actions of the Snow analysis task
This method:
- tar and gzip the output diag files and place in COM/
- copy the generated YAML file from initialize to the COM/
@@ -333,11 +333,11 @@ def finalize(self) -> None:
Parameters
----------
self : Analysis
- Instance of the LandAnalysis object
+ Instance of the SnowAnalysis object
"""
logger.info("Create diagnostic tarball of diag*.nc4 files")
- statfile = os.path.join(self.task_config.COM_LAND_ANALYSIS, f"{self.task_config.APREFIX}landstat.tgz")
+ statfile = os.path.join(self.task_config.COM_SNOW_ANALYSIS, f"{self.task_config.APREFIX}snowstat.tgz")
self.tgz_diags(statfile, self.task_config.DATA)
logger.info("Copy full YAML to COM")
@@ -355,17 +355,17 @@ def finalize(self) -> None:
for itile in range(1, self.task_config.ntiles + 1):
filename = template.format(tilenum=itile)
src = os.path.join(self.task_config.DATA, 'anl', filename)
- dest = os.path.join(self.task_config.COM_LAND_ANALYSIS, filename)
+ dest = os.path.join(self.task_config.COM_SNOW_ANALYSIS, filename)
anllist.append([src, dest])
FileHandler({'copy': anllist}).sync()
logger.info('Copy increments to COM')
- template = f'landinc.{to_fv3time(self.task_config.current_cycle)}.sfc_data.tile{{tilenum}}.nc'
+ template = f'snowinc.{to_fv3time(self.task_config.current_cycle)}.sfc_data.tile{{tilenum}}.nc'
inclist = []
for itile in range(1, self.task_config.ntiles + 1):
filename = template.format(tilenum=itile)
src = os.path.join(self.task_config.DATA, 'anl', filename)
- dest = os.path.join(self.task_config.COM_LAND_ANALYSIS, filename)
+ dest = os.path.join(self.task_config.COM_SNOW_ANALYSIS, filename)
inclist.append([src, dest])
FileHandler({'copy': inclist}).sync()
@@ -375,7 +375,7 @@ def get_bkg_dict(config: Dict) -> Dict[str, List[str]]:
"""Compile a dictionary of model background files to copy
This method constructs a dictionary of FV3 RESTART files (coupler, sfc_data)
- that are needed for global land DA and returns said dictionary for use by the FileHandler class.
+ that are needed for global snow DA and returns said dictionary for use by the FileHandler class.
Parameters
----------
@@ -401,11 +401,11 @@ def get_bkg_dict(config: Dict) -> Dict[str, List[str]]:
# Start accumulating list of background files to copy
bkglist = []
- # land DA needs coupler
+ # snow DA needs coupler
basename = f'{to_fv3time(config.current_cycle)}.coupler.res'
bkglist.append([os.path.join(rst_dir, basename), os.path.join(run_dir, basename)])
- # land DA only needs sfc_data
+ # snow DA only needs sfc_data
for ftype in ['sfc_data']:
template = f'{to_fv3time(config.current_cycle)}.{ftype}.tile{{tilenum}}.nc'
for itile in range(1, config.ntiles + 1):
@@ -447,17 +447,17 @@ def get_ens_bkg_dict(config: Dict) -> Dict:
# get FV3 sfc_data RESTART files; Note an ensemble is being created
rst_dir = os.path.join(config.COM_ATMOS_RESTART_PREV)
- for imem in range(1, LandAnalysis.NMEM_LANDENS + 1):
+ for imem in range(1, SnowAnalysis.NMEM_SNOWENS + 1):
memchar = f"mem{imem:03d}"
run_dir = os.path.join(config.DATA, 'bkg', memchar, 'RESTART')
dirlist.append(run_dir)
- # Land DA needs coupler
+ # Snow DA needs coupler
basename = f'{to_fv3time(config.current_cycle)}.coupler.res'
bkglist.append([os.path.join(rst_dir, basename), os.path.join(run_dir, basename)])
- # Land DA only needs sfc_data
+ # Snow DA only needs sfc_data
for ftype in ['sfc_data']:
template = f'{to_fv3time(config.current_cycle)}.{ftype}.tile{{tilenum}}.nc'
for itile in range(1, config.ntiles + 1):
@@ -491,7 +491,7 @@ def create_ensemble(vname: str, bestddev: float, config: Dict) -> None:
"""
# 2 ens members
- offset = bestddev / np.sqrt(LandAnalysis.NMEM_LANDENS)
+ offset = bestddev / np.sqrt(SnowAnalysis.NMEM_SNOWENS)
logger.info(f"Creating ensemble for LETKFOI by offsetting with {offset}")
diff --git a/ush/radmon_verf_angle.sh b/ush/radmon_verf_angle.sh
index f68d7c88cc..1066627787 100755
--- a/ush/radmon_verf_angle.sh
+++ b/ush/radmon_verf_angle.sh
@@ -83,7 +83,6 @@ which prep_step
which startmsg
# File names
-export pgmout=${pgmout:-${jlogfile}}
touch "${pgmout}"
# Other variables
diff --git a/ush/radmon_verf_bcoef.sh b/ush/radmon_verf_bcoef.sh
index ab1058711e..b6fd82dff2 100755
--- a/ush/radmon_verf_bcoef.sh
+++ b/ush/radmon_verf_bcoef.sh
@@ -69,7 +69,6 @@ fi
echo " RADMON_NETCDF, netcdf_boolean = ${RADMON_NETCDF}, ${netcdf_boolean}"
# File names
-pgmout=${pgmout:-${jlogfile}}
touch "${pgmout}"
# Other variables
diff --git a/ush/radmon_verf_bcor.sh b/ush/radmon_verf_bcor.sh
index f1f97c247e..7aec48e2b3 100755
--- a/ush/radmon_verf_bcor.sh
+++ b/ush/radmon_verf_bcor.sh
@@ -65,7 +65,6 @@ source "${HOMEgfs}/ush/preamble.sh"
####################################################################
# File names
-pgmout=${pgmout:-${jlogfile}}
touch "${pgmout}"
# Other variables
diff --git a/ush/radmon_verf_time.sh b/ush/radmon_verf_time.sh
index 7f98407ec5..0df8029166 100755
--- a/ush/radmon_verf_time.sh
+++ b/ush/radmon_verf_time.sh
@@ -75,8 +75,6 @@ source "${HOMEgfs}/ush/preamble.sh"
####################################################################
# File names
-#pgmout=${pgmout:-${jlogfile}}
-#touch $pgmout
radmon_err_rpt=${radmon_err_rpt:-${USHgfs}/radmon_err_rpt.sh}
base_file=${base_file:-${PARMmonitor}/gdas_radmon_base.tar}
diff --git a/ush/syndat_getjtbul.sh b/ush/syndat_getjtbul.sh
index a68187868a..3ea56db72a 100755
--- a/ush/syndat_getjtbul.sh
+++ b/ush/syndat_getjtbul.sh
@@ -22,10 +22,6 @@
# TANK_TROPCY - path to home directory containing tropical cyclone record
# data base
-# Imported variables that can be passed in:
-# jlogfile - path to job log file (skipped over by this script if not
-# passed in)
-
source "$HOMEgfs/ush/preamble.sh"
EXECSYND=${EXECSYND:-${HOMESYND}/exec}
diff --git a/ush/syndat_qctropcy.sh b/ush/syndat_qctropcy.sh
index cda9030577..9d9b2ad69b 100755
--- a/ush/syndat_qctropcy.sh
+++ b/ush/syndat_qctropcy.sh
@@ -46,7 +46,6 @@
# subsequent program SYNDAT_SYNDATA)
# PARMSYND - path to syndat parm field directory
# EXECSYND - path to syndat executable directory
-# FIXam - path to syndat fix field directory
# USHSYND - path to syndat ush directory
# Imported variables that can be passed in:
@@ -59,7 +58,7 @@
# data base
# (Default: /dcom/us007003)
# slmask - path to t126 32-bit gaussian land/sea mask file
-# (Default: $FIXam/syndat_slmask.t126.gaussian)
+# (Default: ${FIXgfs}/am/syndat_slmask.t126.gaussian)
# copy_back - switch to copy updated files back to archive directory and
# to tcvitals directory
# (Default: YES)
@@ -74,12 +73,11 @@ HOMENHCp1=${HOMENHCp1:-/gpfs/?p1/nhc/save/guidance/storm-data/ncep}
HOMENHC=${HOMENHC:-/gpfs/dell2/nhc/save/guidance/storm-data/ncep}
TANK_TROPCY=${TANK_TROPCY:-${DCOMROOT}/us007003}
-FIXam=${FIXam:-$HOMEgfs/fix/am}
USHSYND=${USHSYND:-$HOMEgfs/ush}
EXECSYND=${EXECSYND:-$HOMEgfs/exec}
PARMSYND=${PARMSYND:-$HOMEgfs/parm/relo}
-slmask=${slmask:-$FIXam/syndat_slmask.t126.gaussian}
+slmask=${slmask:-${FIXgfs}/am/syndat_slmask.t126.gaussian}
copy_back=${copy_back:-YES}
files_override=${files_override:-""}
@@ -190,10 +188,10 @@ fi
echo " &INPUT RUNID = '${net}_${tmmark}_${cyc}', FILES = $files " > vitchk.inp
cat $PARMSYND/syndat_qctropcy.${RUN}.parm >> vitchk.inp
-# Copy the fixed fields from FIXam
+# Copy the fixed fields
-cp $FIXam/syndat_fildef.vit fildef.vit
-cp $FIXam/syndat_stmnames stmnames
+cp ${FIXgfs}/am/syndat_fildef.vit fildef.vit
+cp ${FIXgfs}/am/syndat_stmnames stmnames
rm -f nhc fnoc lthistry
diff --git a/ush/tropcy_relocate.sh b/ush/tropcy_relocate.sh
index 01a21bd12c..cdcc777c47 100755
--- a/ush/tropcy_relocate.sh
+++ b/ush/tropcy_relocate.sh
@@ -128,9 +128,6 @@
# Default is "${HOMERELO}/ush"
# EXECRELO String indicating directory path for RELOCATE executables
# Default is "${HOMERELO}/exec"
-# FIXRELO String indicating directory path for RELOCATE data fix-
-# field files
-# Default is "${HOMERELO}/fix"
# EXECUTIL String indicating directory path for utility program
# executables
# If the imported variable MACHINE!=sgi, then the default is
@@ -188,7 +185,7 @@
# programs :
# RELOCATE_MV_NVORTEX - executable $RELOX
# T126 GRIB global land/sea mask:
-# $FIXRELO/global_slmask.t126.grb
+# ${FIXgfs}/am/global_slmask.t126.grb
# SUPVIT - executable $SUPVX
# GETTRK - executable $GETTX
#
@@ -302,8 +299,6 @@ USHGETGES=${USHGETGES:-${USHRELO}}
EXECRELO=${EXECRELO:-${HOMERELO}/exec}
-FIXRELO=${FIXRELO:-${HOMERELO}/fix}
-
RELOX=${RELOX:-$EXECRELO/relocate_mv_nvortex}
export BKGFREQ=${BKGFREQ:-1}
diff --git a/ush/tropcy_relocate_extrkr.sh b/ush/tropcy_relocate_extrkr.sh
index ede2318c4a..c4efad1d73 100755
--- a/ush/tropcy_relocate_extrkr.sh
+++ b/ush/tropcy_relocate_extrkr.sh
@@ -1538,9 +1538,9 @@ ln -s -f ${vdir}/trak.${cmodel}.radii.${symdh} fort.63
ln -s -f ${vdir}/trak.${cmodel}.atcfunix.${symdh} fort.64
if [ $BKGFREQ -eq 1 ]; then
- ln -s -f ${FIXRELO}/${cmodel}.tracker_leadtimes_hrly fort.15
+ ln -s -f ${FIXgfs}/am/${cmodel}.tracker_leadtimes_hrly fort.15
elif [ $BKGFREQ -eq 3 ]; then
- ln -s -f ${FIXRELO}/${cmodel}.tracker_leadtimes fort.15
+ ln -s -f ${FIXgfs}/am/${cmodel}.tracker_leadtimes fort.15
fi
##$XLF_LINKSSH
diff --git a/ush/wave_grid_interp_sbs.sh b/ush/wave_grid_interp_sbs.sh
index c11a75f89d..e690cbc4ad 100755
--- a/ush/wave_grid_interp_sbs.sh
+++ b/ush/wave_grid_interp_sbs.sh
@@ -113,18 +113,18 @@ source "$HOMEgfs/ush/preamble.sh"
wht_OK='no'
if [ ! -f ${DATA}/ww3_gint.WHTGRIDINT.bin.${grdID} ]; then
- if [ -f $FIXwave/ww3_gint.WHTGRIDINT.bin.${grdID} ]
+ if [ -f ${FIXgfs}/wave/ww3_gint.WHTGRIDINT.bin.${grdID} ]
then
set +x
echo ' '
- echo " Copying $FIXwave/ww3_gint.WHTGRIDINT.bin.${grdID} "
+ echo " Copying ${FIXgfs}/wave/ww3_gint.WHTGRIDINT.bin.${grdID} "
set_trace
- cp $FIXwave/ww3_gint.WHTGRIDINT.bin.${grdID} ${DATA}
+ cp ${FIXgfs}/wave/ww3_gint.WHTGRIDINT.bin.${grdID} ${DATA}
wht_OK='yes'
else
set +x
echo ' '
- echo " Not found: $FIXwave/ww3_gint.WHTGRIDINT.bin.${grdID} "
+ echo " Not found: ${FIXgfs}/wave/ww3_gint.WHTGRIDINT.bin.${grdID} "
fi
fi
# Check and link weights file
@@ -148,7 +148,7 @@ source "$HOMEgfs/ush/preamble.sh"
if [ "wht_OK" = 'no' ]
then
cp -f ./WHTGRIDINT.bin ${DATA}/ww3_gint.WHTGRIDINT.bin.${grdID}
- cp -f ./WHTGRIDINT.bin ${FIXwave}/ww3_gint.WHTGRIDINT.bin.${grdID}
+ cp -f ./WHTGRIDINT.bin ${FIXgfs}/wave/ww3_gint.WHTGRIDINT.bin.${grdID}
fi
diff --git a/ush/wave_grid_moddef.sh b/ush/wave_grid_moddef.sh
index f704c74af4..390860c960 100755
--- a/ush/wave_grid_moddef.sh
+++ b/ush/wave_grid_moddef.sh
@@ -59,7 +59,7 @@ source "$HOMEgfs/ush/preamble.sh"
# 0.c Define directories and the search path.
# The tested variables should be exported by the postprocessor script.
- if [ -z "$grdID" ] || [ -z "$EXECwave" ] || [ -z "$wave_sys_ver" ]
+ if [ -z "$grdID" ] || [ -z "$EXECwave" ]
then
set +x
echo ' '
diff --git a/ush/wave_prnc_cur.sh b/ush/wave_prnc_cur.sh
index 6b1ab19db2..a8f9f67d62 100755
--- a/ush/wave_prnc_cur.sh
+++ b/ush/wave_prnc_cur.sh
@@ -46,7 +46,7 @@ mv -f "cur_temp3.nc" "cur_uv_${PDY}_${fext}${fh3}_flat.nc"
# Convert to regular lat lon file
# If weights need to be regenerated due to CDO ver change, use:
# $CDO genbil,r4320x2160 rtofs_glo_2ds_f000_3hrly_prog.nc weights.nc
-cp ${FIXwave}/weights_rtofs_to_r4320x2160.nc ./weights.nc
+cp ${FIXgfs}/wave/weights_rtofs_to_r4320x2160.nc ./weights.nc
# Interpolate to regular 5 min grid
${CDO} remap,r4320x2160,weights.nc "cur_uv_${PDY}_${fext}${fh3}_flat.nc" "cur_5min_01.nc"
diff --git a/ush/wave_prnc_ice.sh b/ush/wave_prnc_ice.sh
index 5ec1d7fc2e..d0a6371d5b 100755
--- a/ush/wave_prnc_ice.sh
+++ b/ush/wave_prnc_ice.sh
@@ -55,7 +55,7 @@ source "$HOMEgfs/ush/preamble.sh"
echo "Making ice fields."
if [[ -z "${YMDH}" ]] || [[ -z "${cycle}" ]] || \
- [[ -z "${COM_WAVE_PREP}" ]] || [[ -z "${FIXwave}" ]] || [[ -z "${EXECwave}" ]] || \
+ [[ -z "${COM_WAVE_PREP}" ]] || [[ -z "${FIXgfs}" ]] || [[ -z "${EXECwave}" ]] || \
[[ -z "${WAV_MOD_TAG}" ]] || [[ -z "${WAVEICE_FID}" ]] || [[ -z "${COM_OBS}" ]]; then
set +x
diff --git a/versions/build.hera.ver b/versions/build.hera.ver
index ff85b1a801..263e967a97 100644
--- a/versions/build.hera.ver
+++ b/versions/build.hera.ver
@@ -1,3 +1,5 @@
export stack_intel_ver=2021.5.0
export stack_impi_ver=2021.5.1
+export spack_env=gsi-addon-dev
source "${HOMEgfs:-}/versions/build.spack.ver"
+export spack_mod_path="/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-${spack_stack_ver}/envs/${spack_env}/install/modulefiles/Core"
diff --git a/versions/build.hercules.ver b/versions/build.hercules.ver
index 5513466631..cab0c92111 100644
--- a/versions/build.hercules.ver
+++ b/versions/build.hercules.ver
@@ -1,3 +1,6 @@
export stack_intel_ver=2021.9.0
export stack_impi_ver=2021.9.0
+export intel_mkl_ver=2023.1.0
+export spack_env=gsi-addon-env
source "${HOMEgfs:-}/versions/build.spack.ver"
+export spack_mod_path="/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-${spack_stack_ver}/envs/${spack_env}/install/modulefiles/Core"
diff --git a/versions/build.jet.ver b/versions/build.jet.ver
index ff85b1a801..55c0ea0bd1 100644
--- a/versions/build.jet.ver
+++ b/versions/build.jet.ver
@@ -1,3 +1,5 @@
export stack_intel_ver=2021.5.0
export stack_impi_ver=2021.5.1
+export spack_env=gsi-addon-dev
source "${HOMEgfs:-}/versions/build.spack.ver"
+export spack_mod_path="/lfs4/HFIP/hfv3gfs/role.epic/spack-stack/spack-stack-${spack_stack_ver}/envs/${spack_env}/install/modulefiles/Core"
diff --git a/versions/build.orion.ver b/versions/build.orion.ver
index ff85b1a801..df7856110d 100644
--- a/versions/build.orion.ver
+++ b/versions/build.orion.ver
@@ -1,3 +1,5 @@
-export stack_intel_ver=2021.5.0
+export stack_intel_ver=2022.0.2
export stack_impi_ver=2021.5.1
+export spack_env=gsi-addon-env
source "${HOMEgfs:-}/versions/build.spack.ver"
+export spack_mod_path="/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-${spack_stack_ver}/envs/${spack_env}/install/modulefiles/Core"
diff --git a/versions/build.s4.ver b/versions/build.s4.ver
index a0aae51d87..e2731ccfb3 100644
--- a/versions/build.s4.ver
+++ b/versions/build.s4.ver
@@ -1,3 +1,5 @@
export stack_intel_ver=2021.5.0
export stack_impi_ver=2021.5.0
+export spack_env=gsi-addon-env
source "${HOMEgfs:-}/versions/build.spack.ver"
+export spack_mod_path="/data/prod/jedi/spack-stack/spack-stack-${spack_stack_ver}/envs/${spack_env}/install/modulefiles/Core"
diff --git a/versions/build.spack.ver b/versions/build.spack.ver
index fb5b244bf5..808f85dd16 100644
--- a/versions/build.spack.ver
+++ b/versions/build.spack.ver
@@ -1,5 +1,4 @@
-export spack_stack_ver=1.5.1
-export spack_env=gsi-addon
+export spack_stack_ver=1.6.0
export cmake_ver=3.23.1
@@ -11,7 +10,7 @@ export fms_ver=2023.02.01
export hdf5_ver=1.14.0
export netcdf_c_ver=4.9.2
-export netcdf_fortran_ver=4.6.0
+export netcdf_fortran_ver=4.6.1
export bacio_ver=2.4.1
export nemsio_ver=2.5.4
@@ -19,10 +18,10 @@ export sigio_ver=2.3.2
export w3emc_ver=2.10.0
export bufr_ver=11.7.0
export g2_ver=3.4.5
-export sp_ver=2.3.3
+export sp_ver=2.5.0
export ip_ver=4.3.0
export gsi_ncdiag_ver=1.1.2
export g2tmpl_ver=1.10.2
-export crtm_ver=2.4.0
+export crtm_ver=2.4.0.1
export wgrib2_ver=2.0.8
export grib_util_ver=1.3.0
diff --git a/versions/run.hera.ver b/versions/run.hera.ver
index 43443ba715..4529d34821 100644
--- a/versions/run.hera.ver
+++ b/versions/run.hera.ver
@@ -1,13 +1,11 @@
export stack_intel_ver=2021.5.0
export stack_impi_ver=2021.5.1
+export spack_env=gsi-addon-dev
export hpss_ver=hpss
export ncl_ver=6.6.2
export R_ver=3.5.0
export gempak_ver=7.4.2
-#For metplus jobs, not currently working with spack-stack
-#export met_ver=9.1.3
-#export metplus_ver=3.1.1
-
source "${HOMEgfs:-}/versions/run.spack.ver"
+export spack_mod_path="/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-${spack_stack_ver}/envs/${spack_env}/install/modulefiles/Core"
diff --git a/versions/run.hercules.ver b/versions/run.hercules.ver
index 43f1b2181d..549bb47df0 100644
--- a/versions/run.hercules.ver
+++ b/versions/run.hercules.ver
@@ -1,12 +1,9 @@
export stack_intel_ver=2021.9.0
export stack_impi_ver=2021.9.0
export intel_mkl_ver=2023.1.0
+export spack_env=gsi-addon-env
-export ncl_ver=6.6.2
export perl_ver=5.36.0
source "${HOMEgfs:-}/versions/run.spack.ver"
-
-# wgrib2 and cdo are different on Hercules from all the other systems
-export wgrib2_ver=3.1.1
-export cdo_ver=2.2.0
+export spack_mod_path="/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-${spack_stack_ver}/envs/${spack_env}/install/modulefiles/Core"
diff --git a/versions/run.jet.ver b/versions/run.jet.ver
index 18a82cab4f..d5b98bf514 100644
--- a/versions/run.jet.ver
+++ b/versions/run.jet.ver
@@ -1,5 +1,6 @@
export stack_intel_ver=2021.5.0
export stack_impi_ver=2021.5.1
+export spack_env=gsi-addon-dev
export hpss_ver=
export ncl_ver=6.6.2
@@ -7,3 +8,4 @@ export R_ver=4.0.2
export gempak_ver=7.4.2
source "${HOMEgfs:-}/versions/run.spack.ver"
+export spack_mod_path="/lfs4/HFIP/hfv3gfs/role.epic/spack-stack/spack-stack-${spack_stack_ver}/envs/${spack_env}/install/modulefiles/Core"
diff --git a/versions/run.orion.ver b/versions/run.orion.ver
index 7671bc028d..2fdeae8888 100644
--- a/versions/run.orion.ver
+++ b/versions/run.orion.ver
@@ -1,11 +1,12 @@
export stack_intel_ver=2022.0.2
export stack_impi_ver=2021.5.1
+export spack_env=gsi-addon-env
export ncl_ver=6.6.2
export gempak_ver=7.5.1
-#For metplus jobs, not currently working with spack-stack
-#export met_ver=9.1.3
-#export metplus_ver=3.1.1
-
source "${HOMEgfs:-}/versions/run.spack.ver"
+export spack_mod_path="/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-${spack_stack_ver}/envs/${spack_env}/install/modulefiles/Core"
+
+#cdo is older on Orion
+export cdo_ver=2.0.5
diff --git a/versions/run.s4.ver b/versions/run.s4.ver
index 56817ef439..6d0f4cbaca 100644
--- a/versions/run.s4.ver
+++ b/versions/run.s4.ver
@@ -1,6 +1,8 @@
export stack_intel_ver=2021.5.0
export stack_impi_ver=2021.5.0
+export spack_env=gsi-addon-env
export ncl_ver=6.4.0-precompiled
source "${HOMEgfs:-}/versions/run.spack.ver"
+export spack_mod_path="/data/prod/jedi/spack-stack/spack-stack-${spack_stack_ver}/envs/${spack_env}/install/modulefiles/Core"
diff --git a/versions/run.spack.ver b/versions/run.spack.ver
index 0812d3389e..c00b7483cd 100644
--- a/versions/run.spack.ver
+++ b/versions/run.spack.ver
@@ -1,27 +1,31 @@
-export spack_stack_ver=1.5.1
-export spack_env=gsi-addon
-export python_ver=3.10.8
+export spack_stack_ver=1.6.0
+export python_ver=3.11.6
export jasper_ver=2.0.32
export libpng_ver=1.6.37
-export cdo_ver=2.0.5
+export cdo_ver=2.2.0
export nco_ver=5.0.6
export hdf5_ver=1.14.0
export netcdf_c_ver=4.9.2
-export netcdf_fortran_ver=4.6.0
+export netcdf_fortran_ver=4.6.1
export bufr_ver=11.7.0
export gsi_ncdiag_ver=1.1.2
export g2tmpl_ver=1.10.2
-export crtm_ver=2.4.0
+export crtm_ver=2.4.0.1
export wgrib2_ver=2.0.8
export grib_util_ver=1.3.0
-export prod_util_ver=1.2.2
+export prod_util_ver=2.1.1
export py_netcdf4_ver=1.5.8
-export py_pyyaml_ver=5.4.1
+export py_pyyaml_ver=6.0
export py_jinja2_ver=3.1.2
-export py_xarray_ver=2022.3.0
+export py_pandas_ver=1.5.3
+export py_python_dateutil_ver=2.8.2
+
+export met_ver=9.1.3
+export metplus_ver=3.1.1
+export py_xarray_ver=2023.7.0
export obsproc_run_ver=1.1.2
export prepobs_run_ver=1.0.1
diff --git a/versions/run.wcoss2.ver b/versions/run.wcoss2.ver
index a188cdea74..0aaad3ec3d 100644
--- a/versions/run.wcoss2.ver
+++ b/versions/run.wcoss2.ver
@@ -39,6 +39,8 @@ export g2tmpl_ver=1.10.2
export ncdiag_ver=1.0.0
export crtm_ver=2.4.0
export wgrib2_ver=2.0.8
+export met_ver=9.1.3
+export metplus_ver=3.1.1
# Development-only below
diff --git a/workflow/applications/gfs_cycled.py b/workflow/applications/gfs_cycled.py
index 040fc090cb..51b430a996 100644
--- a/workflow/applications/gfs_cycled.py
+++ b/workflow/applications/gfs_cycled.py
@@ -16,7 +16,7 @@ def __init__(self, conf: Configuration):
self.do_jediatmvar = self._base.get('DO_JEDIATMVAR', False)
self.do_jediatmens = self._base.get('DO_JEDIATMENS', False)
self.do_jediocnvar = self._base.get('DO_JEDIOCNVAR', False)
- self.do_jedilandda = self._base.get('DO_JEDILANDDA', False)
+ self.do_jedisnowda = self._base.get('DO_JEDISNOWDA', False)
self.do_mergensst = self._base.get('DO_MERGENSST', False)
self.do_vrfy_oceanda = self._base.get('DO_VRFY_OCEANDA', False)
@@ -105,8 +105,8 @@ def _get_app_configs(self):
if self.do_aero:
configs += ['aeroanlinit', 'aeroanlrun', 'aeroanlfinal']
- if self.do_jedilandda:
- configs += ['preplandobs', 'landanl']
+ if self.do_jedisnowda:
+ configs += ['prepsnowobs', 'snowanl']
if self.do_mos:
configs += ['mos_stn_prep', 'mos_grd_prep', 'mos_ext_stn_prep', 'mos_ext_grd_prep',
@@ -148,8 +148,8 @@ def get_task_names(self):
if self.do_aero:
gdas_gfs_common_tasks_before_fcst += ['aeroanlinit', 'aeroanlrun', 'aeroanlfinal']
- if self.do_jedilandda:
- gdas_gfs_common_tasks_before_fcst += ['preplandobs', 'landanl']
+ if self.do_jedisnowda:
+ gdas_gfs_common_tasks_before_fcst += ['prepsnowobs', 'snowanl']
wave_prep_tasks = ['waveinit', 'waveprep']
wave_bndpnt_tasks = ['wavepostbndpnt', 'wavepostbndpntbll']
diff --git a/workflow/rocoto/gfs_tasks.py b/workflow/rocoto/gfs_tasks.py
index 83623f42d2..b91e974c74 100644
--- a/workflow/rocoto/gfs_tasks.py
+++ b/workflow/rocoto/gfs_tasks.py
@@ -271,8 +271,8 @@ def sfcanl(self):
else:
dep_dict = {'type': 'task', 'name': f'{self.cdump}anal'}
deps.append(rocoto.add_dependency(dep_dict))
- if self.app_config.do_jedilandda:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}landanl'}
+ if self.app_config.do_jedisnowda:
+ dep_dict = {'type': 'task', 'name': f'{self.cdump}snowanl'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
else:
@@ -531,21 +531,21 @@ def aeroanlfinal(self):
return task
- def preplandobs(self):
+ def prepsnowobs(self):
deps = []
dep_dict = {'type': 'task', 'name': f'{self.cdump}prep'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
- resources = self.get_resource('preplandobs')
- task_name = f'{self.cdump}preplandobs'
+ resources = self.get_resource('prepsnowobs')
+ task_name = f'{self.cdump}prepsnowobs'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
'cycledef': self.cdump.replace('enkf', ''),
- 'command': f'{self.HOMEgfs}/jobs/rocoto/preplandobs.sh',
+ 'command': f'{self.HOMEgfs}/jobs/rocoto/prepsnowobs.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
'maxtries': '&MAXTRIES;'
@@ -555,21 +555,21 @@ def preplandobs(self):
return task
- def landanl(self):
+ def snowanl(self):
deps = []
- dep_dict = {'type': 'task', 'name': f'{self.cdump}preplandobs'}
+ dep_dict = {'type': 'task', 'name': f'{self.cdump}prepsnowobs'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)
- resources = self.get_resource('landanl')
- task_name = f'{self.cdump}landanl'
+ resources = self.get_resource('snowanl')
+ task_name = f'{self.cdump}snowanl'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
'envars': self.envars,
'cycledef': self.cdump.replace('enkf', ''),
- 'command': f'{self.HOMEgfs}/jobs/rocoto/landanl.sh',
+ 'command': f'{self.HOMEgfs}/jobs/rocoto/snowanl.sh',
'job_name': f'{self.pslot}_{task_name}_@H',
'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log',
'maxtries': '&MAXTRIES;'
@@ -826,8 +826,8 @@ def _fcst_cycled(self):
dep_dict = {'type': 'task', 'name': f'{self.cdump}aeroanlfinal'}
dependencies.append(rocoto.add_dependency(dep_dict))
- if self.app_config.do_jedilandda:
- dep_dict = {'type': 'task', 'name': f'{self.cdump}landanl'}
+ if self.app_config.do_jedisnowda:
+ dep_dict = {'type': 'task', 'name': f'{self.cdump}snowanl'}
dependencies.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=dependencies)
@@ -929,19 +929,7 @@ def atmanlprod(self):
@staticmethod
def _get_ufs_postproc_grps(cdump, config, component='atmos'):
- # Make a local copy of the config to avoid modifying the original
- local_config = config.copy()
-
- # Ocean/Ice components do not have a HF output option like the atmosphere
- if component in ['ocean', 'ice']:
- local_config['FHMAX_HF_GFS'] = config['FHMAX_GFS']
- local_config['FHOUT_HF_GFS'] = config['FHOUT_GFS']
-
- fhrs = Tasks._get_forecast_hours(cdump, local_config)
-
- # ocean/ice components do not have fhr 0 as they are averaged output
- if component in ['ocean', 'ice']:
- fhrs.remove(0)
+ fhrs = Tasks._get_forecast_hours(cdump, config, component=component)
nfhrs_per_grp = config.get('NFHRS_PER_GROUP', 1)
ngrps = len(fhrs) // nfhrs_per_grp if len(fhrs) % nfhrs_per_grp == 0 else len(fhrs) // nfhrs_per_grp + 1
diff --git a/workflow/rocoto/tasks.py b/workflow/rocoto/tasks.py
index 540f6ebe47..ac70c6e4fc 100644
--- a/workflow/rocoto/tasks.py
+++ b/workflow/rocoto/tasks.py
@@ -20,7 +20,7 @@ class Tasks:
'eobs', 'eomg', 'epos', 'esfc', 'eupd',
'atmensanlinit', 'atmensanlrun', 'atmensanlfinal',
'aeroanlinit', 'aeroanlrun', 'aeroanlfinal',
- 'preplandobs', 'landanl',
+ 'prepsnowobs', 'snowanl',
'fcst',
'atmanlupp', 'atmanlprod', 'atmupp', 'goesupp',
'atmosprod', 'oceanprod', 'iceprod',
@@ -120,23 +120,37 @@ def _template_to_rocoto_cycstring(self, template: str, subs_dict: dict = {}) ->
rocoto_conversion_dict.get)
@staticmethod
- def _get_forecast_hours(cdump, config) -> List[str]:
- fhmin = config['FHMIN']
- fhmax = config['FHMAX']
- fhout = config['FHOUT']
+ def _get_forecast_hours(cdump, config, component='atmos') -> List[str]:
+ # Make a local copy of the config to avoid modifying the original
+ local_config = config.copy()
+
+ # Ocean/Ice components do not have a HF output option like the atmosphere
+ if component in ['ocean', 'ice']:
+ local_config['FHMAX_HF_GFS'] = config['FHMAX_GFS']
+ local_config['FHOUT_HF_GFS'] = config['FHOUT_OCNICE_GFS']
+ local_config['FHOUT_GFS'] = config['FHOUT_OCNICE_GFS']
+ local_config['FHOUT'] = config['FHOUT_OCNICE']
+
+ fhmin = local_config['FHMIN']
# Get a list of all forecast hours
fhrs = []
if cdump in ['gdas']:
+ fhmax = local_config['FHMAX']
+ fhout = local_config['FHOUT']
fhrs = list(range(fhmin, fhmax + fhout, fhout))
elif cdump in ['gfs', 'gefs']:
- fhmax = config['FHMAX_GFS']
- fhout = config['FHOUT_GFS']
- fhmax_hf = config['FHMAX_HF_GFS']
- fhout_hf = config['FHOUT_HF_GFS']
+ fhmax = local_config['FHMAX_GFS']
+ fhout = local_config['FHOUT_GFS']
+ fhmax_hf = local_config['FHMAX_HF_GFS']
+ fhout_hf = local_config['FHOUT_HF_GFS']
fhrs_hf = range(fhmin, fhmax_hf + fhout_hf, fhout_hf)
fhrs = list(fhrs_hf) + list(range(fhrs_hf[-1] + fhout, fhmax + fhout, fhout))
+ # ocean/ice components do not have fhr 0 as they are averaged output
+ if component in ['ocean', 'ice']:
+ fhrs.remove(0)
+
return fhrs
def get_resource(self, task_name):