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):