diff --git a/.gitignore b/.gitignore index 2935804ac4..d8acb1db70 100644 --- a/.gitignore +++ b/.gitignore @@ -30,7 +30,6 @@ fix/chem fix/cice fix/cpl fix/datm -fix/gldas fix/gdas fix/gsi fix/lut @@ -43,8 +42,12 @@ fix/wave # Ignore parm file symlinks #-------------------------- -parm/config/config.base -parm/gldas +parm/gdas/aero +parm/gdas/atm +parm/gdas/io +parm/gdas/ioda +parm/gdas/snow +parm/gdas/soca parm/monitor parm/post/AEROSOL_LUTS.dat parm/post/nam_micro_lookup.dat diff --git a/.gitmodules b/.gitmodules index 3eb26fb0fe..5c9e569243 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,28 +1,28 @@ [submodule "sorc/ufs_model.fd"] - path = sorc/ufs_model.fd - url = https://github.com/ufs-community/ufs-weather-model - ignore = dirty + path = sorc/ufs_model.fd + url = https://github.com/ufs-community/ufs-weather-model + ignore = dirty [submodule "sorc/wxflow"] - path = sorc/wxflow - url = https://github.com/NOAA-EMC/wxflow + path = sorc/wxflow + url = https://github.com/NOAA-EMC/wxflow [submodule "sorc/gfs_utils.fd"] - path = sorc/gfs_utils.fd - url = https://github.com/NOAA-EMC/gfs-utils + path = sorc/gfs_utils.fd + url = https://github.com/NOAA-EMC/gfs-utils [submodule "sorc/ufs_utils.fd"] - path = sorc/ufs_utils.fd - url = https://github.com/ufs-community/UFS_UTILS.git + path = sorc/ufs_utils.fd + url = https://github.com/ufs-community/UFS_UTILS.git [submodule "sorc/verif-global.fd"] - path = sorc/verif-global.fd - url = https://github.com/NOAA-EMC/EMC_verif-global.git + path = sorc/verif-global.fd + url = https://github.com/NOAA-EMC/EMC_verif-global.git [submodule "sorc/gsi_enkf.fd"] - path = sorc/gsi_enkf.fd - url = https://github.com/NOAA-EMC/GSI.git + path = sorc/gsi_enkf.fd + url = https://github.com/NOAA-EMC/GSI.git [submodule "sorc/gdas.cd"] - path = sorc/gdas.cd - url = https://github.com/NOAA-EMC/GDASApp.git + path = sorc/gdas.cd + url = https://github.com/NOAA-EMC/GDASApp.git [submodule "sorc/gsi_utils.fd"] - path = sorc/gsi_utils.fd - url = https://github.com/NOAA-EMC/GSI-Utils.git + path = sorc/gsi_utils.fd + url = https://github.com/NOAA-EMC/GSI-Utils.git [submodule "sorc/gsi_monitor.fd"] - path = sorc/gsi_monitor.fd - url = https://github.com/NOAA-EMC/GSI-Monitor.git + path = sorc/gsi_monitor.fd + url = https://github.com/NOAA-EMC/GSI-Monitor.git diff --git a/Jenkinsfile b/ci/Jenkinsfile similarity index 81% rename from Jenkinsfile rename to ci/Jenkinsfile index 52175c2b50..34535ed608 100644 --- a/Jenkinsfile +++ b/ci/Jenkinsfile @@ -50,7 +50,7 @@ pipeline { pullRequest.removeLabel("CI-${Machine}-Ready") } } - pullRequest.comment("Building and running on ${Machine} in directory ${HOME}") + echo "Building and running on ${Machine} in directory ${HOME}" } } } @@ -76,7 +76,6 @@ pipeline { ws(HOMEgfs) { 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") checkout scm dir('sorc') { sh(script: './link_workflow.sh') @@ -93,10 +92,14 @@ pipeline { } } if (env.CHANGE_ID && system == 'gfs') { - if (pullRequest.labels.any { value -> value.matches("CI-${Machine}-Building") }) { - pullRequest.removeLabel("CI-${Machine}-Building") - } - pullRequest.addLabel("CI-${Machine}-Running") + try { + if (pullRequest.labels.any { value -> value.matches("CI-${Machine}-Building") }) { + pullRequest.removeLabel("CI-${Machine}-Building") + } + pullRequest.addLabel("CI-${Machine}-Running") + } catch (Exception e) { + echo "Failed to update label from Buildng to Running: ${e.getMessage()}" + } } if (system == 'gfs') { caseList = sh(script: "${HOMEgfs}/ci/scripts/utils/get_host_case_list.py ${machine}", returnStdout: true).trim().split() @@ -146,11 +149,9 @@ pipeline { 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}`") 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) { if (fileExists('RUNTESTS/error.logs')) { @@ -165,7 +166,6 @@ pipeline { error("Failed to run experiments ${Case} on ${Machine}") } } - pullRequest.comment("**SUCCESS** running experiment: ${Case} on ${Machine}") } } } @@ -179,10 +179,14 @@ pipeline { always { script { if(env.CHANGE_ID) { - for (label in pullRequest.labels) { - if (label.contains("${Machine}")) { - pullRequest.removeLabel(label) + try { + for (label in pullRequest.labels) { + if (label.contains("${Machine}")) { + pullRequest.removeLabel(label) + } } + } catch (Exception e) { + echo "Failed to remove labels: ${e.getMessage()}" } } } @@ -190,18 +194,26 @@ pipeline { success { script { if(env.CHANGE_ID) { - pullRequest.addLabel("CI-${Machine}-Passed") - def timestamp = new Date().format('MM dd HH:mm:ss', TimeZone.getTimeZone('America/New_York')) - pullRequest.comment("**CI SUCCESS** ${Machine} at ${timestamp}\n\nBuilt and ran in directory `${HOME}`") + try { + pullRequest.addLabel("CI-${Machine}-Passed") + def timestamp = new Date().format('MM dd HH:mm:ss', TimeZone.getTimeZone('America/New_York')) + pullRequest.comment("**CI SUCCESS** ${Machine} at ${timestamp}\n\nBuilt and ran in directory `${HOME}`") + } catch (Exception e) { + echo "Failed to add success label or comment: ${e.getMessage()}" + } } } } failure { script { if(env.CHANGE_ID) { - pullRequest.addLabel("CI-${Machine}-Failed") - def timestamp = new Date().format('MM dd HH:mm:ss', TimeZone.getTimeZone('America/New_York')) - pullRequest.comment("**CI FAILED** ${Machine} at ${timestamp}
Built and ran in directory `${HOME}`") + try { + pullRequest.addLabel("CI-${Machine}-Failed") + def timestamp = new Date().format('MM dd HH:mm:ss', TimeZone.getTimeZone('America/New_York')) + pullRequest.comment("**CI FAILED** ${Machine} at ${timestamp}
Built and ran in directory `${HOME}`") + } catch (Exception e) { + echo "Failed to add failure label or comment: ${e.getMessage()}" + } } } } diff --git a/env/HERA.env b/env/HERA.env index 2029a69328..f55434e8d9 100755 --- a/env/HERA.env +++ b/env/HERA.env @@ -107,6 +107,14 @@ elif [[ "${step}" = "ocnanalchkpt" ]]; then export APRUN_OCNANAL="${launcher} -n ${npe_ocnanalchkpt}" +elif [[ "${step}" = "ocnanalecen" ]]; then + + nth_max=$((npe_node_max / npe_node_ocnanalecen)) + + export NTHREADS_OCNANALECEN=${nth_ocnanalecen:-${nth_max}} + [[ ${NTHREADS_OCNANALECEN} -gt ${nth_max} ]] && export NTHREADS_OCNANALECEN=${nth_max} + export APRUN_OCNANALECEN="${launcher} -n ${npe_ocnanalecen} --cpus-per-task=${NTHREADS_OCNANALECEN}" + elif [[ "${step}" = "anal" ]] || [[ "${step}" = "analcalc" ]]; then export MKL_NUM_THREADS=4 diff --git a/env/ORION.env b/env/ORION.env index 692fa8ab66..17d0d24d97 100755 --- a/env/ORION.env +++ b/env/ORION.env @@ -118,6 +118,14 @@ elif [[ "${step}" = "ocnanalchkpt" ]]; then [[ ${NTHREADS_OCNANAL} -gt ${nth_max} ]] && export NTHREADS_OCNANAL=${nth_max} export APRUN_OCNANAL="${launcher} -n ${npe_ocnanalchkpt} --cpus-per-task=${NTHREADS_OCNANAL}" +elif [[ "${step}" = "ocnanalecen" ]]; then + + nth_max=$((npe_node_max / npe_node_ocnanalecen)) + + export NTHREADS_OCNANALECEN=${nth_ocnanalecen:-${nth_max}} + [[ ${NTHREADS_OCNANALECEN} -gt ${nth_max} ]] && export NTHREADS_OCNANALECEN=${nth_max} + export APRUN_OCNANALECEN="${launcher} -n ${npe_ocnanalecen} --cpus-per-task=${NTHREADS_OCNANALECEN}" + elif [[ "${step}" = "anal" ]] || [[ "${step}" = "analcalc" ]]; then export MKL_NUM_THREADS=4 diff --git a/gempak/fix/gfs_meta b/gempak/fix/gfs_meta index 5ca99b4dc6..c86233214b 100755 --- a/gempak/fix/gfs_meta +++ b/gempak/fix/gfs_meta @@ -1,23 +1,23 @@ -$USHgempak/gfs_meta_us.sh 36 84 126 216 -$USHgempak/gfs_meta_bwx.sh 36 84 126 180 -$USHgempak/gfs_meta_comp.sh 36 84 126 -$USHgempak/gfs_meta_ak.sh 36 84 132 216 -$USHgempak/gfs_meta_crb.sh 126 -$USHgempak/gfs_meta_hur.sh 36 84 126 -$USHgempak/gfs_meta_qpf.sh 36 84 132 216 -$USHgempak/gfs_meta_precip.sh 36 84 132 216 384 -$USHgempak/gfs_meta_sa.sh 126 -$USHgempak/gfs_meta_ver.sh 126 -$USHgempak/gfs_meta_hi.sh 384 -$USHgempak/gfs_meta_nhsh.sh 384 -$USHgempak/gfs_meta_trop.sh 384 -$USHgempak/gfs_meta_usext.sh 384 -$USHgempak/gfs_meta_mar_ql.sh 24 48 96 180 -$USHgempak/gfs_meta_mar_comp.sh 126 -$USHgempak/gfs_meta_opc_na_ver 126 -$USHgempak/gfs_meta_opc_np_ver 126 -$USHgempak/gfs_meta_mar_atl.sh 180 -$USHgempak/gfs_meta_mar_pac.sh 180 -$USHgempak/gfs_meta_mar_ver.sh 48 -$USHgempak/gfs_meta_mar_skewt.sh 72 -$USHgempak/gfs_meta_sa2.sh 144 +${HOMEgfs}/gempak/ush/gfs_meta_us.sh 36 84 126 216 +${HOMEgfs}/gempak/ush/gfs_meta_bwx.sh 36 84 126 180 +${HOMEgfs}/gempak/ush/gfs_meta_comp.sh 36 84 126 +${HOMEgfs}/gempak/ush/gfs_meta_ak.sh 36 84 132 216 +${HOMEgfs}/gempak/ush/gfs_meta_crb.sh 126 +${HOMEgfs}/gempak/ush/gfs_meta_hur.sh 36 84 126 +${HOMEgfs}/gempak/ush/gfs_meta_qpf.sh 36 84 132 216 +${HOMEgfs}/gempak/ush/gfs_meta_precip.sh 36 84 132 216 384 +${HOMEgfs}/gempak/ush/gfs_meta_sa.sh 126 +${HOMEgfs}/gempak/ush/gfs_meta_ver.sh 126 +${HOMEgfs}/gempak/ush/gfs_meta_hi.sh 384 +${HOMEgfs}/gempak/ush/gfs_meta_nhsh.sh 384 +${HOMEgfs}/gempak/ush/gfs_meta_trop.sh 384 +${HOMEgfs}/gempak/ush/gfs_meta_usext.sh 384 +${HOMEgfs}/gempak/ush/gfs_meta_mar_ql.sh 24 48 96 180 +${HOMEgfs}/gempak/ush/gfs_meta_mar_comp.sh 126 +${HOMEgfs}/gempak/ush/gfs_meta_opc_na_ver 126 +${HOMEgfs}/gempak/ush/gfs_meta_opc_np_ver 126 +${HOMEgfs}/gempak/ush/gfs_meta_mar_atl.sh 180 +${HOMEgfs}/gempak/ush/gfs_meta_mar_pac.sh 180 +${HOMEgfs}/gempak/ush/gfs_meta_mar_ver.sh 48 +${HOMEgfs}/gempak/ush/gfs_meta_mar_skewt.sh 72 +${HOMEgfs}/gempak/ush/gfs_meta_sa2.sh 144 diff --git a/gempak/ush/gdas_meta_na.sh b/gempak/ush/gdas_meta_na.sh index 6c4768cfb7..fb1c328140 100755 --- a/gempak/ush/gdas_meta_na.sh +++ b/gempak/ush/gdas_meta_na.sh @@ -51,7 +51,7 @@ PROJ = str/90;-105;0 LATLON = 1 -restore $USHgempak/restore/pmsl_thkn.2.nts +restore ${HOMEgfs}/gempak/ush/restore/pmsl_thkn.2.nts CLRBAR = 1 HLSYM = 2;1.5//21//hw TEXT = 1/21//hw @@ -60,7 +60,7 @@ l ru -restore $USHgempak/restore/850mb_hght_tmpc.2.nts +restore ${HOMEgfs}/gempak/ush/restore/850mb_hght_tmpc.2.nts CLRBAR = 1 TEXT = 1/21//hw SKIP = 0 !0 !0 !0 !/3 @@ -70,7 +70,7 @@ l ru -restore $USHgempak/restore/700mb_hght_relh_omeg.2.nts +restore ${HOMEgfs}/gempak/ush/restore/700mb_hght_relh_omeg.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 5/-2/~ ? $m_title @ HGT, REL HUMIDITY AND OMEGA|~@ HGT, RH AND OMEGA!0 @@ -78,7 +78,7 @@ l ru -restore $USHgempak/restore/500mb_hght_absv.2.nts +restore ${HOMEgfs}/gempak/ush/restore/500mb_hght_absv.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 5/-2/~ ? $m_title @ HGT AND VORTICITY|~@ HGT AND VORTICITY!0 @@ -86,7 +86,7 @@ l ru -restore $USHgempak/restore/250mb_hght_wnd.2.nts +restore ${HOMEgfs}/gempak/ush/restore/250mb_hght_wnd.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 5/-2/~ ? $m_title @ HGT, ISOTACHS AND WIND (KTS)|~@ HGT AND WIND!0 diff --git a/gempak/ush/gfs_meta_hi.sh b/gempak/ush/gfs_meta_hi.sh index 6167855ae2..5272204b7a 100755 --- a/gempak/ush/gfs_meta_hi.sh +++ b/gempak/ush/gfs_meta_hi.sh @@ -45,9 +45,9 @@ MAP = 1 CLEAR = yes CLRBAR = 1 -restore ${USHgempak}/restore/garea_hi.nts +restore ${HOMEgfs}/gempak/ush/restore/garea_hi.nts -restore ${USHgempak}/restore/pmsl_thkn.2.nts +restore ${HOMEgfs}/gempak/ush/restore/pmsl_thkn.2.nts CLRBAR = 1 HLSYM = 2;1.5//21//hw TEXT = 1/21//hw @@ -56,7 +56,7 @@ l ru -restore ${USHgempak}/restore/850mb_hght_tmpc.2.nts +restore ${HOMEgfs}/gempak/ush/restore/850mb_hght_tmpc.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 5/-2/~ ? $m_title @ HGHTS, TEMPERATURE AND WIND (KTS)|~@ HGHT, TMP, WIND!0!0!0 @@ -64,7 +64,7 @@ l ru -restore ${USHgempak}/restore/700mb_hght_relh_omeg.2.nts +restore ${HOMEgfs}/gempak/ush/restore/700mb_hght_relh_omeg.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 5/-2/~ ? $m_title @ HGHTS, REL HUMIDITY AND OMEGA|~@ HGHT, RH AND OMEGA!0 @@ -72,7 +72,7 @@ l ru -restore ${USHgempak}/restore/500mb_hght_absv.2.nts +restore ${HOMEgfs}/gempak/ush/restore/500mb_hght_absv.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 5/-2/~ ? $m_title @ HEIGHTS AND VORTICITY|~@ HGHT AND VORTICITY!0 @@ -80,7 +80,7 @@ l ru -restore ${USHgempak}/restore/200mb_hght_wnd.2.nts +restore ${HOMEgfs}/gempak/ush/restore/200mb_hght_wnd.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 5/-2/~ ? $m_title @ HEIGHTS, ISOTACHS AND WIND (KTS)|~@ HGHT AND WIND!0 @@ -88,7 +88,7 @@ l ru -restore ${USHgempak}/restore/250mb_hght_wnd.2.nts +restore ${HOMEgfs}/gempak/ush/restore/250mb_hght_wnd.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 5/-2/~ ? $m_title @ HEIGHTS, ISOTACHS AND WIND (KTS)|~@ HGHT AND WIND!0 @@ -96,7 +96,7 @@ l ru -restore ${USHgempak}/restore/300mb_hght_wnd.2.nts +restore ${HOMEgfs}/gempak/ush/restore/300mb_hght_wnd.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 5/-2/~ ? $m_title @ HEIGHTS, ISOTACHS AND WIND (KTS)|~@ HGHT AND WIND!0 @@ -149,7 +149,7 @@ CLRBAR = 1 r -restore ${USHgempak}/restore/precip.2.nts +restore ${HOMEgfs}/gempak/ush/restore/precip.2.nts CLRBAR = 1 TEXT = 1/21//hw GDATTIM = F12-F192-06; F214-F384-12 diff --git a/gempak/ush/gfs_meta_nhsh.sh b/gempak/ush/gfs_meta_nhsh.sh index 6e6981c2df..47ac4b1331 100755 --- a/gempak/ush/gfs_meta_nhsh.sh +++ b/gempak/ush/gfs_meta_nhsh.sh @@ -43,9 +43,9 @@ MAP = 1 CLEAR = yes CLRBAR = 1 -restore ${USHgempak}/restore/garea_nh.nts +restore ${HOMEgfs}/gempak/ush/restore/garea_nh.nts -restore ${USHgempak}/restore/500mb_hght_absv.2.nts +restore ${HOMEgfs}/gempak/ush/restore/500mb_hght_absv.2.nts CLRBAR = 1 TEXT = 1/21//hw SKIP = 0 !0 !1 @@ -65,7 +65,7 @@ l ru -restore ${USHgempak}/restore/garea_sh.nts +restore ${HOMEgfs}/gempak/ush/restore/garea_sh.nts DEVICE = nc | Nmeta_sh TITLE = 5//~ ? $m_title @ HEIGHTS AND VORTICITY|~ @ HGHT AND VORTICITY!0 @@ -73,10 +73,10 @@ l ru -restore ${USHgempak}/restore/garea_nh.nts +restore ${HOMEgfs}/gempak/ush/restore/garea_nh.nts DEVICE = nc | Nmeta_nh -restore ${USHgempak}/restore/250mb_hght_wnd.2.nts +restore ${HOMEgfs}/gempak/ush/restore/250mb_hght_wnd.2.nts CLRBAR = 1 TEXT = 1/21//hw GDPFUN = knts((mag(wnd))) !sm9s(hght) @@ -85,11 +85,11 @@ l ru -restore ${USHgempak}/restore/garea_sh.nts +restore ${HOMEgfs}/gempak/ush/restore/garea_sh.nts DEVICE = nc | Nmeta_sh ru -restore ${USHgempak}/restore/precip.2.nts +restore ${HOMEgfs}/gempak/ush/restore/precip.2.nts CLRBAR = 1 TEXT = 1/21//hw GDATTIM = F12-F240-12 @@ -99,7 +99,7 @@ TITLE = 5//~ ? $m_title 12-HOUR TOTAL PRECIPITATION (IN)|~ 12-HOURLY TOTAL PCP l r -restore ${USHgempak}/restore/garea_sh.nts +restore ${HOMEgfs}/gempak/ush/restore/garea_sh.nts DEVICE = nc | Nmeta_sh ru diff --git a/gempak/ush/gfs_meta_us.sh b/gempak/ush/gfs_meta_us.sh index 495cbc5839..f3c6cd0692 100755 --- a/gempak/ush/gfs_meta_us.sh +++ b/gempak/ush/gfs_meta_us.sh @@ -53,7 +53,7 @@ GAREA = 17.529;-129.296;53.771;-22.374 PROJ = str/90;-105;0 LATLON = 0 -restore $USHgempak/restore/pmsl_thkn.2.nts +restore ${HOMEgfs}/gempak/ush/restore/pmsl_thkn.2.nts CLRBAR = 1 HLSYM = 2;1.5//21//hw TEXT = 1/21//hw @@ -62,7 +62,7 @@ l run -restore $USHgempak/restore/850mb_hght_tmpc.2.nts +restore ${HOMEgfs}/gempak/ush/restore/850mb_hght_tmpc.2.nts CLRBAR = 1 HLSYM = 2;1.5//21//hw TEXT = 1/21//hw @@ -71,7 +71,7 @@ l run -restore $USHgempak/restore/700mb_hght_relh_omeg.2.nts +restore ${HOMEgfs}/gempak/ush/restore/700mb_hght_relh_omeg.2.nts CLRBAR = 1 HLSYM = 2;1.5//21//hw TEXT = 1/21//hw @@ -80,7 +80,7 @@ l run -restore $USHgempak/restore/500mb_hght_absv.2.nts +restore ${HOMEgfs}/gempak/ush/restore/500mb_hght_absv.2.nts CLRBAR = 1 HLSYM = 2;1.5//21//hw TEXT = 1/21//hw @@ -89,7 +89,7 @@ l run -restore $USHgempak/restore/250mb_hght_wnd.2.nts +restore ${HOMEgfs}/gempak/ush/restore/250mb_hght_wnd.2.nts CLRBAR = 1 HLSYM = 2;1.5//21//hw TEXT = 1/21//hw @@ -98,7 +98,7 @@ l run -restore $USHgempak/restore/p06m_pmsl.2.nts +restore ${HOMEgfs}/gempak/ush/restore/p06m_pmsl.2.nts CLRBAR = 1 HLSYM = 2;1.5//21//hw HLSYM = 2;1.5//21//hw diff --git a/gempak/ush/gfs_meta_usext.sh b/gempak/ush/gfs_meta_usext.sh index 3db7c27be4..59b1ce5bab 100755 --- a/gempak/ush/gfs_meta_usext.sh +++ b/gempak/ush/gfs_meta_usext.sh @@ -71,7 +71,7 @@ GAREA = 17.529;-129.296;53.771;-22.374 PROJ = str/90;-105;0 LATLON = 18/2 -restore ${USHgempak}/restore/pmsl_thkn.2.nts +restore ${HOMEgfs}/gempak/ush/restore/pmsl_thkn.2.nts CLRBAR = 1 HLSYM = 2;1.5//21//hw TEXT = 1/21//hw @@ -79,35 +79,35 @@ TITLE = 1/-2/~ ? $m_title PMSL, 1000-500 MB THICKNESS|~MSLP, 1000-500 THKN!0 l run -restore ${USHgempak}/restore/850mb_hght_tmpc.2.nts +restore ${HOMEgfs}/gempak/ush/restore/850mb_hght_tmpc.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 1/-2/~ ? $m_title @ HGT, TEMPERATURE AND WIND (KTS)|~@ HGT, TMP, WIND!0 l run -restore ${USHgempak}/restore/700mb_hght_relh_omeg.2.nts +restore ${HOMEgfs}/gempak/ush/restore/700mb_hght_relh_omeg.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 1/-2/~ ? $m_title @ HGT, REL HUMIDITY AND OMEGA|~@ HGT, RH AND OMEGA!0 l run -restore ${USHgempak}/restore/500mb_hght_absv.2.nts +restore ${HOMEgfs}/gempak/ush/restore/500mb_hght_absv.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 1/-2/~ ? $m_title @ HGT AND VORTICITY|~@ HGT AND VORTICITY!0 l run -restore ${USHgempak}/restore/500mb_hght_gabsv.2.nts +restore ${HOMEgfs}/gempak/ush/restore/500mb_hght_gabsv.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 1/-2/~ ? $m_title @ HGT AND GEO ABS VORT|~@ HGT, GEO ABS VORT!0 l run -restore ${USHgempak}/restore/250mb_hght_wnd.2.nts +restore ${HOMEgfs}/gempak/ush/restore/250mb_hght_wnd.2.nts CLRBAR = 1 TEXT = 1/21//hw TITLE = 1/-2/~ ? $m_title @ HGT, ISOTACHS AND WIND (KTS)|~@ HGT AND WIND!0 @@ -137,7 +137,7 @@ CLEAR = YES l run -restore ${USHgempak}/restore/precip.2.nts +restore ${HOMEgfs}/gempak/ush/restore/precip.2.nts CLRBAR = 1 TEXT = 1/21//hw HILO = 31;0/x#2/.25-10///y diff --git a/jobs/JGDAS_ATMOS_GEMPAK b/jobs/JGDAS_ATMOS_GEMPAK index 55aca00cee..d0d1f16f81 100755 --- a/jobs/JGDAS_ATMOS_GEMPAK +++ b/jobs/JGDAS_ATMOS_GEMPAK @@ -5,16 +5,6 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak" -c "base gempak" # TODO (#1219) This j-job is not part of the rocoto suite -################################ -# Set up the HOME directory -export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} -export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} -export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo} -export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product} -export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush} -export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts} -export UTILgfs=${UTILgfs:-${HOMEgfs}/util} - ############################################ # Set up model and cycle specific variables ############################################ @@ -58,12 +48,12 @@ fi ######################################################## # Execute the script. -echo "${SRCgfs}/exgdas_atmos_nawips.sh gdas 009 GDAS_GEMPAK ${COM_ATMOS_GEMPAK_1p00}" >> poescript +echo "${SCRgfs}/exgdas_atmos_nawips.sh gdas 009 GDAS_GEMPAK ${COM_ATMOS_GEMPAK_1p00}" >> poescript ######################################################## ######################################################## # Execute the script for quater-degree grib -echo "${SRCgfs}/exgdas_atmos_nawips.sh gdas_0p25 009 GDAS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}" >> poescript +echo "${SCRgfs}/exgdas_atmos_nawips.sh gdas_0p25 009 GDAS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}" >> poescript ######################################################## cat poescript diff --git a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC index 92b56f10b8..a6c54b8337 100755 --- a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC +++ b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC @@ -9,21 +9,7 @@ source "${HOMEgfs}/ush/preamble.sh" source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak_meta" -c "base gempak" -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} -export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} -export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo} -export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product} -export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush} -export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts} -export UTILgfs=${UTILgfs:-${HOMEgfs}/util} - -# # Now set up GEMPAK/NTRANS environment -# cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl @@ -67,10 +53,10 @@ export pgmout=OUTPUT.$$ ######################################################## # Execute the script. -${USHgempak}/gdas_meta_na.sh -${USHgempak}/gdas_ecmwf_meta_ver.sh -${USHgempak}/gdas_meta_loop.sh -${USHgempak}/gdas_ukmet_meta_ver.sh +${HOMEgfs}/gempak/ush/gdas_meta_na.sh +${HOMEgfs}/gempak/ush/gdas_ecmwf_meta_ver.sh +${HOMEgfs}/gempak/ush/gdas_meta_loop.sh +${HOMEgfs}/gempak/ush/gdas_ukmet_meta_ver.sh export err=$?; err_chk ######################################################## @@ -80,7 +66,7 @@ export err=$?; err_chk ######################################################## # Execute the script. -${SRCgfs}/exgdas_atmos_gempak_gif_ncdc.sh +${SCRgfs}/exgdas_atmos_gempak_gif_ncdc.sh export err=$?; err_chk ######################################################## diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_ECEN b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_ECEN new file mode 100755 index 0000000000..c4ad80c9e3 --- /dev/null +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_ECEN @@ -0,0 +1,38 @@ +#!/bin/bash +source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" -e "ocnanalecen" -c "base ocnanal ocnanalecen" + +############################################## +# Set variables used in the script +############################################## + +############################################## +# Begin JOB SPECIFIC work +############################################## + +############################################################### +# Run relevant script + +EXSCRIPT=${GDASOCNCENPY:-${HOMEgfs}/scripts/exgdas_global_marine_analysis_ecen.py} +${EXSCRIPT} +status=$? +[[ ${status} -ne 0 ]] && exit "${status}" + +############################################## +# End JOB SPECIFIC work +############################################## + +############################################## +# Final processing +############################################## +if [[ -e "${pgmout}" ]] ; then + cat "${pgmout}" +fi + +########################################## +# Remove the Temporary working directory +########################################## +cd "${DATAROOT}" || exit 1 +[[ "${KEEPDATA}" = "NO" ]] && rm -rf "${DATA}" + +exit 0 diff --git a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG index d2277bb0da..60f21c469b 100755 --- a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG +++ b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG @@ -5,16 +5,6 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "awips" -c "base awips" export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-${HOMEgfs}/ush} -export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} -export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} -export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo} -export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product} - ################################### # Specify NET and RUN Name and model #################################### @@ -46,7 +36,7 @@ export pgmout=OUTPUT.$$ ######################################################## # Execute the script. -"${HOMEgfs}/scripts/exgfs_atmos_awips_20km_1p0deg.sh" "${fcsthrs}" +"${SCRgfs}/exgfs_atmos_awips_20km_1p0deg.sh" "${fcsthrs}" export err=$?; err_chk ######################################################## diff --git a/jobs/JGFS_ATMOS_AWIPS_G2 b/jobs/JGFS_ATMOS_AWIPS_G2 index 3503a92b08..27e37d7214 100755 --- a/jobs/JGFS_ATMOS_AWIPS_G2 +++ b/jobs/JGFS_ATMOS_AWIPS_G2 @@ -9,16 +9,6 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "awips" -c "base awips" export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} -################################ -# Set up the HOME directory -################################ -export USHgfs=${USHgfs:-${HOMEgfs}/ush} -export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} -export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} -export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo} -export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product} -export UTILgfs=${UTILgfs:-${HOMEgfs}/util} - ################################### # Specify NET and RUN Name and model #################################### @@ -45,7 +35,7 @@ export pgmout=OUTPUT.$$ ######################################################### mkdir -m 775 awips_g1 cd ${DATA}/awips_g1 -${HOMEgfs}/scripts/exgfs_atmos_grib_awips.sh ${fcsthrs} +"${SCRgfs}/exgfs_atmos_grib_awips.sh" "${fcsthrs}" export err=$?; err_chk ############################################ diff --git a/jobs/JGFS_ATMOS_FBWIND b/jobs/JGFS_ATMOS_FBWIND index d640907c5c..dbfca49610 100755 --- a/jobs/JGFS_ATMOS_FBWIND +++ b/jobs/JGFS_ATMOS_FBWIND @@ -8,16 +8,6 @@ source "${HOMEgfs}/ush/preamble.sh" source "${HOMEgfs}/ush/jjob_header.sh" -e "fbwind" -c "base" -################################ -# Set up the HOME directory -################################ -export USHgfs=${USHgfs:-${HOMEgfs}/ush} -export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} -export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} -export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo} -export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product} -export UTILgfs=${UTILgfs:-${HOMEgfs}/util} - ################################### # Specify NET and RUN Name and model #################################### @@ -39,7 +29,7 @@ mkdir -m 775 -p ${COMOUT} ${COMOUTwmo} ######################################################## # Execute the script. -${HOMEgfs}/scripts/exgfs_atmos_fbwind.sh +${SCRgfs}/exgfs_atmos_fbwind.sh export err=$?;err_chk ######################################################## diff --git a/jobs/JGFS_ATMOS_GEMPAK b/jobs/JGFS_ATMOS_GEMPAK index ff7479daf2..e71338b6de 100755 --- a/jobs/JGFS_ATMOS_GEMPAK +++ b/jobs/JGFS_ATMOS_GEMPAK @@ -3,19 +3,6 @@ source "${HOMEgfs}/ush/preamble.sh" source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak" -c "base gempak" - -################################ -# Set up the HOME directory -################################ -export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} -export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush} -export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts} - -# For half-degree P Grib files -export DO_HD_PGRB=${DO_HD_PGRB:-YES} - ############################################ # Set up model and cycle specific variables ############################################ @@ -26,6 +13,9 @@ export GRIB=${GRIB:-pgrb2f} export EXT="" export DBN_ALERT_TYPE=${DBN_ALERT_TYPE:-GFS_GEMPAK} +# For half-degree P Grib files +export DO_HD_PGRB=${DO_HD_PGRB:-YES} + ################################### # Specify NET and RUN Name and model #################################### @@ -63,54 +53,54 @@ fi ################################################################# # Execute the script for the 384 hour 1 degree grib ################################################################## -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00} &> ${DATA}/gfs_1p0.$$.1 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00} &> ${DATA}/gfs_1p0.$$.2 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00} &> ${DATA}/gfs_1p0.$$.3 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00} &> ${DATA}/gfs_1p0.$$.4 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00} &> ${DATA}/gfs_1p0.$$.5 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00} &> ${DATA}/gfs_1p0.$$.6 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00} &> ${DATA}/gfs_1p0.$$.1 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00} &> ${DATA}/gfs_1p0.$$.2 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00} &> ${DATA}/gfs_1p0.$$.3 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00} &> ${DATA}/gfs_1p0.$$.4 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00} &> ${DATA}/gfs_1p0.$$.5 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00} &> ${DATA}/gfs_1p0.$$.6 " >> poescript ################################################################# # Execute the script for the half-degree grib ################################################################## -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50} &> ${DATA}/gfs_0p5.$$.1 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50} &> ${DATA}/gfs_0p5.$$.2 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50} &> ${DATA}/gfs_0p5.$$.3 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50} &> ${DATA}/gfs_0p5.$$.4 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50} &> ${DATA}/gfs_0p5.$$.5 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50} &> ${DATA}/gfs_0p5.$$.6 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50} &> ${DATA}/gfs_0p5.$$.1 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50} &> ${DATA}/gfs_0p5.$$.2 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50} &> ${DATA}/gfs_0p5.$$.3 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50} &> ${DATA}/gfs_0p5.$$.4 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50} &> ${DATA}/gfs_0p5.$$.5 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50} &> ${DATA}/gfs_0p5.$$.6 " >> poescript ################################################################# # Execute the script for the quater-degree grib #################################################################### -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.1 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.2 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.3 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.4 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.5 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.6 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.7 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.8 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.9 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.10 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.1 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.2 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.3 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.4 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.5 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.6 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.7 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.8 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.9 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs_0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}&> ${DATA}/gfs_0p25.$$.10 " >> poescript #################################################################### # Execute the script to create the 35km Pacific grids for OPC ##################################################################### -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs35_pac ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_35km_pac} &> ${DATA}/gfs35_pac.$$.1 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs35_pac ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_35km_pac} &> ${DATA}/gfs35_pac.$$.2 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs35_pac ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_35km_pac} &> ${DATA}/gfs35_pac.$$.1 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs35_pac ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_35km_pac} &> ${DATA}/gfs35_pac.$$.2 " >> poescript #################################################################### # Execute the script to create the 35km Atlantic grids for OPC ##################################################################### -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs35_atl ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_35km_atl} &> ${DATA}/gfs35_atl.$$.1 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs35_atl ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_35km_atl} &> ${DATA}/gfs35_atl.$$.2 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs35_atl ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_35km_atl} &> ${DATA}/gfs35_atl.$$.1 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs35_atl ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_35km_atl} &> ${DATA}/gfs35_atl.$$.2 " >> poescript ##################################################################### # Execute the script to create the 40km grids for HPC ###################################################################### -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs40 ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_40km} &> ${DATA}/gfs40.$$.1 " >> poescript -echo "time ${SRCgfs}/exgfs_atmos_nawips.sh gfs40 ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_40km} &> ${DATA}/gfs40.$$.2 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs40 ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_40km} &> ${DATA}/gfs40.$$.1 " >> poescript +echo "time ${SCRgfs}/exgfs_atmos_nawips.sh gfs40 ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_40km} &> ${DATA}/gfs40.$$.2 " >> poescript if [[ ${CFP_MP:-"NO"} == "YES" ]]; then # Add task number to the MPMD script diff --git a/jobs/JGFS_ATMOS_GEMPAK_META b/jobs/JGFS_ATMOS_GEMPAK_META index f3573419c5..eebc137f30 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_META +++ b/jobs/JGFS_ATMOS_GEMPAK_META @@ -18,16 +18,7 @@ export MP_LABELIO=yes export MP_PULSE=0 export MP_DEBUG_NOTIMEOUT=yes -################################ -# Set up the HOME directory -################################ -export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} -export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush} -export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts} - -cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl +cp ${HOMEgfs}/gempak/fix/datatype.tbl datatype.tbl ############################################# #set the fcst hrs for all the cycles @@ -66,7 +57,7 @@ mkdir -m 775 -p ${COMOUT} ######################################################## # Execute the script. -${SRCgfs}/exgfs_atmos_gempak_meta.sh +${SCRgfs}/exgfs_atmos_gempak_meta.sh export err=$?; err_chk ######################################################## diff --git a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF index aa0acf445e..0f83594e72 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF +++ b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF @@ -8,30 +8,10 @@ source "${HOMEgfs}/ush/preamble.sh" source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak_gif" -c "base" - -################################ -# Set up the HOME directory -################################ -export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} -export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -export USHgempak=${USHgempak:-${HOMEgfs}/gempak/ush} -export SRCgfs=${SRCgfs:-${HOMEgfs}/scripts} -export UTILgfs=${UTILgfs:-${HOMEgfs}/util} - -###################################### -# Set up the GEMPAK directory -####################################### -export HOMEgempak=${HOMEgempak:-${HOMEgfs}/gempak} -export USHgempak=${USHgempak:-${HOMEgempak}/ush} - export MP_PULSE=0 export MP_TIMEOUT=2000 - -# # Set up model and cycle specific variables -# export MODEL=GFS export fend=384 @@ -64,7 +44,7 @@ export pgmout=OUTPUT.$$ ######################################################## # Execute the script. -${SRCgfs}/exgfs_atmos_gempak_gif_ncdc_skew_t.sh +${SCRgfs}/exgfs_atmos_gempak_gif_ncdc_skew_t.sh export err=$?; err_chk ######################################################## diff --git a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC index 8b17f96a22..d2d4d81f93 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC +++ b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC @@ -6,19 +6,6 @@ source "${HOMEgfs}/ush/preamble.sh" source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak_spec" -c "base" - -################################ -# Set up the HOME directory -################################ -export EXECgfs="${EXECgfs:-${HOMEgfs}/exec}" -export PARMgfs="${PARMgfs:-${HOMEgfs}/parm}" -export EXPDIR="${EXPDIR:-${HOMEgfs}/parm/config}" -export USHgempak="${USHgempak:-${HOMEgfs}/gempak/ush}" -export SRCgfs="${SRCgfs:-${HOMEgfs}/scripts}" - -# For half-degree P Grib files -#export DO_HD_PGRB=YES - ################################### # Specify NET and RUN Name and model #################################### @@ -27,6 +14,9 @@ export finc=3 export model=gfs export EXT="" +# For half-degree P Grib files +#export DO_HD_PGRB=YES + ############################################## # Define COM directories ############################################## @@ -57,7 +47,7 @@ echo "RUNS the Program" ######################################################## # Execute the script. -"${SRCgfs}/exgfs_atmos_goes_nawips.sh" +"${SCRgfs}/exgfs_atmos_goes_nawips.sh" ################################################################# # Execute the script for the 221 grib @@ -78,7 +68,7 @@ echo "RUNS the Program" ######################################################## # Execute the script. -"${SRCgfs}/exgfs_atmos_goes_nawips.sh" +"${SCRgfs}/exgfs_atmos_goes_nawips.sh" export err=$?; err_chk ######################################################## diff --git a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS index ecebdffa3e..1c69eecbf1 100755 --- a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS +++ b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS @@ -10,16 +10,6 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "npoess" -c "base" export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} -################################ -# Set up the HOME directory -################################ -export USHgfs=${USHgfs:-${HOMEgfs}/ush} -export EXECgfs=${EXECgfs:-${HOMEgfs}/exec} -export PARMgfs=${PARMgfs:-${HOMEgfs}/parm} -export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config} -export PARMwmo=${PARMwmo:-${HOMEgfs}/parm/wmo} -export PARMproduct=${PARMproduct:-${HOMEgfs}/parm/product} - ################################### # Specify NET and RUN Name and model #################################### @@ -38,7 +28,7 @@ mkdir -m 775 -p "${COM_ATMOS_GOES}" ############################################################# # Execute the script -"${HOMEgfs}/scripts/exgfs_atmos_grib2_special_npoess.sh" +"${SCRgfs}/exgfs_atmos_grib2_special_npoess.sh" export err=$?;err_chk ############################################################# diff --git a/jobs/JGFS_ATMOS_POSTSND b/jobs/JGFS_ATMOS_POSTSND index 4e99ef7a46..e6411709fa 100755 --- a/jobs/JGFS_ATMOS_POSTSND +++ b/jobs/JGFS_ATMOS_POSTSND @@ -9,7 +9,6 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "postsnd" -c "base postsnd" ############################################## export CDUMP=${RUN/enkf} - ######################################## # Runs GFS BUFR SOUNDINGS ######################################## @@ -18,16 +17,6 @@ export model=${model:-gfs} export SENDDBN=${SENDDBN:-YES} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -################################### -# Set up the source directories -################################### - -export HOMEbufrsnd=${HOMEbufrsnd:-${HOMEgfs}} -export EXECbufrsnd=${EXECbufrsnd:-${HOMEbufrsnd}/exec} -export PARMbufrsnd=${PARMbufrsnd:-${HOMEbufrsnd}/parm/product} -export USHbufrsnd=${USHbufrsnd:-${HOMEbufrsnd}/ush} -export SCRbufrsnd=${SCRbufrsnd:-${HOMEbufrsnd}/scripts} - ############################## # Define COM Directories ############################## @@ -43,7 +32,7 @@ YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_HISTORY COM_ATMOS_BUFR \ ######################################################## # Execute the script. -${SCRbufrsnd}/exgfs_atmos_postsnd.sh +${SCRgfs}/exgfs_atmos_postsnd.sh status=$? [[ ${status} -ne 0 ]] && exit ${status} diff --git a/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE b/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE index ff8e2e9569..aaf5792bc2 100755 --- a/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE +++ b/jobs/JGLOBAL_AERO_ANALYSIS_FINALIZE @@ -31,7 +31,7 @@ mkdir -m 775 -p "${COM_CHEM_ANALYSIS}" ############################################################### # Run relevant script -EXSCRIPT=${GDASAEROFINALPY:-${HOMEgfs}/scripts/exglobal_aero_analysis_finalize.py} +EXSCRIPT=${GDASAEROFINALPY:-${SCRgfs}/exglobal_aero_analysis_finalize.py} ${EXSCRIPT} status=$? [[ ${status} -ne 0 ]] && exit "${status}" diff --git a/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE b/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE index 79320b77ee..61a99e3137 100755 --- a/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE +++ b/jobs/JGLOBAL_AERO_ANALYSIS_INITIALIZE @@ -30,7 +30,7 @@ mkdir -m 775 -p "${COM_CHEM_ANALYSIS}" ############################################################### # Run relevant script -EXSCRIPT=${GDASAEROINITPY:-${HOMEgfs}/scripts/exglobal_aero_analysis_initialize.py} +EXSCRIPT=${GDASAEROINITPY:-${SCRgfs}/exglobal_aero_analysis_initialize.py} ${EXSCRIPT} status=$? [[ ${status} -ne 0 ]] && exit "${status}" diff --git a/jobs/JGLOBAL_AERO_ANALYSIS_RUN b/jobs/JGLOBAL_AERO_ANALYSIS_RUN index 853909dc03..43749b78c5 100755 --- a/jobs/JGLOBAL_AERO_ANALYSIS_RUN +++ b/jobs/JGLOBAL_AERO_ANALYSIS_RUN @@ -16,7 +16,7 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "aeroanlrun" -c "base aeroanl aeroanlr ############################################################### # Run relevant script -EXSCRIPT=${GDASAERORUNSH:-${HOMEgfs}/scripts/exglobal_aero_analysis_run.py} +EXSCRIPT=${GDASAERORUNSH:-${SCRgfs}/exglobal_aero_analysis_run.py} ${EXSCRIPT} status=$? [[ ${status} -ne 0 ]] && exit "${status}" diff --git a/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE b/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE index 37a49e0ae0..5411b2dd8b 100755 --- a/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE +++ b/jobs/JGLOBAL_ATMENS_ANALYSIS_FINALIZE @@ -23,7 +23,7 @@ mkdir -m 755 -p "${COM_ATMOS_ANALYSIS_ENS}" ############################################################### # Run relevant script -EXSCRIPT=${GDASATMENSFINALPY:-${HOMEgfs}/scripts/exglobal_atmens_analysis_finalize.py} +EXSCRIPT=${GDASATMENSFINALPY:-${SCRgfs}/exglobal_atmens_analysis_finalize.py} ${EXSCRIPT} status=$? [[ ${status} -ne 0 ]] && exit "${status}" diff --git a/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE b/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE index c50214aad1..69a1239e61 100755 --- a/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE +++ b/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE @@ -25,7 +25,7 @@ RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} generate_com -rx \ ############################################################### # Run relevant script -EXSCRIPT=${GDASATMENSINITPY:-${HOMEgfs}/scripts/exglobal_atmens_analysis_initialize.py} +EXSCRIPT=${GDASATMENSINITPY:-${SCRgfs}/exglobal_atmens_analysis_initialize.py} ${EXSCRIPT} status=$? [[ ${status} -ne 0 ]] && exit "${status}" diff --git a/jobs/JGLOBAL_ATMENS_ANALYSIS_RUN b/jobs/JGLOBAL_ATMENS_ANALYSIS_RUN index 0d10c76b05..65eeb5e0d8 100755 --- a/jobs/JGLOBAL_ATMENS_ANALYSIS_RUN +++ b/jobs/JGLOBAL_ATMENS_ANALYSIS_RUN @@ -16,7 +16,7 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "atmensanlrun" -c "base atmensanl atme ############################################################### # Run relevant script -EXSCRIPT=${GDASATMENSRUNSH:-${HOMEgfs}/scripts/exglobal_atmens_analysis_run.py} +EXSCRIPT=${GDASATMENSRUNSH:-${SCRgfs}/exglobal_atmens_analysis_run.py} ${EXSCRIPT} status=$? [[ ${status} -ne 0 ]] && exit "${status}" diff --git a/jobs/JGLOBAL_ATMOS_POST_MANAGER b/jobs/JGLOBAL_ATMOS_POST_MANAGER index 797d26953b..d836de5d05 100755 --- a/jobs/JGLOBAL_ATMOS_POST_MANAGER +++ b/jobs/JGLOBAL_ATMOS_POST_MANAGER @@ -12,14 +12,6 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "post" -c "base post" export NET=${NET:-gfs} export RUN=${RUN:-gfs} -#################################### -# Specify Execution Areas -#################################### -export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} -export EXECgfs=${HOMEgfs:-${HOMEgfs}/exec} -export PARMgfs=${HOMEgfs:-${HOMEgfs}/parm} -export USHgfs=${HOMEgfs:-${HOMEgfs}/ush} - ########################### # Set up EXT variable ########################### @@ -29,6 +21,6 @@ YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_HISTORY ######################################################## # Execute the script. -${HOMEgfs}/scripts/exglobal_atmos_pmgr.sh +${SCRgfs}/exglobal_atmos_pmgr.sh ######################################################## diff --git a/jobs/JGLOBAL_ATMOS_PRODUCTS b/jobs/JGLOBAL_ATMOS_PRODUCTS index 24e7edacdd..6fa00618d6 100755 --- a/jobs/JGLOBAL_ATMOS_PRODUCTS +++ b/jobs/JGLOBAL_ATMOS_PRODUCTS @@ -22,7 +22,7 @@ export PREFIX="${RUN}.t${cyc}z." ############################################################### # Run exglobal script -"${HOMEgfs}/scripts/exglobal_atmos_products.sh" +"${SCRgfs}/exglobal_atmos_products.sh" status=$? (( status != 0 )) && exit "${status}" diff --git a/jobs/JGLOBAL_ATMOS_UPP b/jobs/JGLOBAL_ATMOS_UPP index 9364f33225..1a1ecbc2a1 100755 --- a/jobs/JGLOBAL_ATMOS_UPP +++ b/jobs/JGLOBAL_ATMOS_UPP @@ -19,7 +19,7 @@ if [[ ! -d ${COM_ATMOS_MASTER} ]]; then mkdir -m 775 -p "${COM_ATMOS_MASTER}"; f ############################################################### # Run relevant exglobal script -"${HOMEgfs}/scripts/exglobal_atmos_upp.py" +"${SCRgfs}/exglobal_atmos_upp.py" status=$? (( status != 0 )) && exit "${status}" diff --git a/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE b/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE index 52a782d7c4..087eab604a 100755 --- a/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE +++ b/jobs/JGLOBAL_ATM_ANALYSIS_FINALIZE @@ -33,7 +33,7 @@ mkdir -m 775 -p "${COM_ATMOS_ANALYSIS}" ############################################################### # Run relevant script -EXSCRIPT=${GDASATMFINALPY:-${HOMEgfs}/scripts/exglobal_atm_analysis_finalize.py} +EXSCRIPT=${GDASATMFINALPY:-${SCRgfs}/exglobal_atm_analysis_finalize.py} ${EXSCRIPT} status=$? [[ ${status} -ne 0 ]] && exit "${status}" diff --git a/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE b/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE index 4ef5e6392d..b7e2eeacc6 100755 --- a/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE +++ b/jobs/JGLOBAL_ATM_ANALYSIS_INITIALIZE @@ -36,7 +36,7 @@ mkdir -m 775 -p "${COM_ATMOS_ANALYSIS}" ############################################################### # Run relevant script -EXSCRIPT=${GDASATMINITPY:-${HOMEgfs}/scripts/exglobal_atm_analysis_initialize.py} +EXSCRIPT=${GDASATMINITPY:-${SCRgfs}/exglobal_atm_analysis_initialize.py} ${EXSCRIPT} status=$? [[ ${status} -ne 0 ]] && exit "${status}" diff --git a/jobs/JGLOBAL_ATM_ANALYSIS_RUN b/jobs/JGLOBAL_ATM_ANALYSIS_RUN index bbfdbe4a1f..2105d719de 100755 --- a/jobs/JGLOBAL_ATM_ANALYSIS_RUN +++ b/jobs/JGLOBAL_ATM_ANALYSIS_RUN @@ -18,7 +18,7 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "atmanlrun" -c "base atmanl atmanlrun" ############################################################### # Run relevant script -EXSCRIPT=${GDASATMRUNSH:-${HOMEgfs}/scripts/exglobal_atm_analysis_run.py} +EXSCRIPT=${GDASATMRUNSH:-${SCRgfs}/exglobal_atm_analysis_run.py} ${EXSCRIPT} status=$? [[ ${status} -ne 0 ]] && exit "${status}" diff --git a/jobs/JGLOBAL_ATM_PREP_IODA_OBS b/jobs/JGLOBAL_ATM_PREP_IODA_OBS index ef0e682468..a3b23e859f 100755 --- a/jobs/JGLOBAL_ATM_PREP_IODA_OBS +++ b/jobs/JGLOBAL_ATM_PREP_IODA_OBS @@ -17,8 +17,8 @@ YMD=${PDY} HH=${cyc} generate_com -rx COM_OBS ############################################################### # Run relevant script -EXSCRIPT=${BUFR2IODASH:-${HOMEgfs}/ush/run_bufr2ioda.py} -${EXSCRIPT} "${PDY}${cyc}" "${RUN}" "${DMPDIR}" "${IODAPARM}" "${COM_OBS}/" +EXSCRIPT=${BUFR2IODASH:-${USHgfs}/run_bufr2ioda.py} +${EXSCRIPT} "${PDY}${cyc}" "${RUN}" "${DMPDIR}" "${PARMgfs}/gdas/ioda/bufr2ioda" "${COM_OBS}/" status=$? [[ ${status} -ne 0 ]] && (echo "FATAL ERROR: Error executing ${EXSCRIPT}, ABORT!"; exit "${status}") diff --git a/jobs/JGLOBAL_CLEANUP b/jobs/JGLOBAL_CLEANUP index ad938ccf60..2f81003989 100755 --- a/jobs/JGLOBAL_CLEANUP +++ b/jobs/JGLOBAL_CLEANUP @@ -3,7 +3,7 @@ source "${HOMEgfs}/ush/preamble.sh" source "${HOMEgfs}/ush/jjob_header.sh" -e "cleanup" -c "base cleanup" -"${HOMEgfs}/scripts/exglobal_cleanup.sh" +"${SCRgfs}/exglobal_cleanup.sh" status=$? [[ ${status} -ne 0 ]] && exit "${status}" diff --git a/jobs/JGLOBAL_OCEANICE_PRODUCTS b/jobs/JGLOBAL_OCEANICE_PRODUCTS index 1d8c6b42c6..69e5f69448 100755 --- a/jobs/JGLOBAL_OCEANICE_PRODUCTS +++ b/jobs/JGLOBAL_OCEANICE_PRODUCTS @@ -15,7 +15,7 @@ YMD="${PDY}" HH="${cyc}" generate_com -rx "COM_${COMPONENT^^}_NETCDF" ############################################################### # Run exglobal script -"${HOMEgfs}/scripts/exglobal_oceanice_products.py" +"${SCRgfs}/exglobal_oceanice_products.py" status=$? (( status != 0 )) && exit "${status}" diff --git a/jobs/JGLOBAL_PREP_OCEAN_OBS b/jobs/JGLOBAL_PREP_OCEAN_OBS index a6fcf9c9b3..52f202d72a 100755 --- a/jobs/JGLOBAL_PREP_OCEAN_OBS +++ b/jobs/JGLOBAL_PREP_OCEAN_OBS @@ -20,7 +20,7 @@ export PYTHONPATH=${HOMEgfs}/sorc/gdas.cd/ush:${PYTHONPATH} ############################################################### # Run relevant script -EXSCRIPT=${GDASPREPOCNOBSPY:-${HOMEgfs}/ush/exglobal_prep_ocean_obs.py} +EXSCRIPT=${GDASPREPOCNOBSPY:-${USHgfs}/exglobal_prep_ocean_obs.py} ${EXSCRIPT} status=$? [[ ${status} -ne 0 ]] && exit "${status}" diff --git a/jobs/JGLOBAL_PREP_SNOW_OBS b/jobs/JGLOBAL_PREP_SNOW_OBS index 22ed977a5e..1fc7e3e5c3 100755 --- a/jobs/JGLOBAL_PREP_SNOW_OBS +++ b/jobs/JGLOBAL_PREP_SNOW_OBS @@ -25,7 +25,7 @@ RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} generate_com -rx \ ############################################################### # Run relevant script -EXSCRIPT=${GDASSNOWPREPPY:-${HOMEgfs}/scripts/exglobal_prep_snow_obs.py} +EXSCRIPT=${GDASSNOWPREPPY:-${SCRgfs}/exglobal_prep_snow_obs.py} ${EXSCRIPT} status=$? [[ ${status} -ne 0 ]] && (echo "FATAL ERROR: Error executing ${EXSCRIPT}, ABORT!"; exit "${status}") diff --git a/jobs/JGLOBAL_SNOW_ANALYSIS b/jobs/JGLOBAL_SNOW_ANALYSIS index db1a8a8ba3..50372d1342 100755 --- a/jobs/JGLOBAL_SNOW_ANALYSIS +++ b/jobs/JGLOBAL_SNOW_ANALYSIS @@ -28,7 +28,7 @@ mkdir -m 775 -p "${COM_SNOW_ANALYSIS}" "${COM_CONF}" ############################################################### # Run relevant script -EXSCRIPT=${SNOWANLPY:-${HOMEgfs}/scripts/exglobal_snow_analysis.py} +EXSCRIPT=${SNOWANLPY:-${SCRgfs}/exglobal_snow_analysis.py} ${EXSCRIPT} status=$? [[ ${status} -ne 0 ]] && exit "${status}" diff --git a/jobs/JGLOBAL_STAGE_IC b/jobs/JGLOBAL_STAGE_IC index 4c94990fde..c460e91c9e 100755 --- a/jobs/JGLOBAL_STAGE_IC +++ b/jobs/JGLOBAL_STAGE_IC @@ -10,7 +10,7 @@ rCDUMP=${CDUMP} export rCDUMP # Execute the Script -"${HOMEgfs}/scripts/exglobal_stage_ic.sh" +"${SCRgfs}/exglobal_stage_ic.sh" ########################################## # Remove the Temporary working directory diff --git a/jobs/JGLOBAL_WAVE_GEMPAK b/jobs/JGLOBAL_WAVE_GEMPAK index 89c389fa11..f02bf3fce9 100755 --- a/jobs/JGLOBAL_WAVE_GEMPAK +++ b/jobs/JGLOBAL_WAVE_GEMPAK @@ -19,7 +19,7 @@ if [[ ! -d ${COM_WAVE_GEMPAK} ]]; then mkdir -p "${COM_WAVE_GEMPAK}"; fi ######################################################## # Execute the script. -${HOMEgfs}/scripts/exgfs_wave_nawips.sh +${SCRgfs}/exgfs_wave_nawips.sh status=$? [[ ${status} -ne 0 ]] && exit ${status} ################################### diff --git a/jobs/JGLOBAL_WAVE_INIT b/jobs/JGLOBAL_WAVE_INIT index 7825c33496..02d4009c65 100755 --- a/jobs/JGLOBAL_WAVE_INIT +++ b/jobs/JGLOBAL_WAVE_INIT @@ -9,11 +9,6 @@ export errchk=${errchk:-err_chk} export MP_PULSE=0 -# Path to HOME Directory -export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave} -export USHwave=${USHwave:-${HOMEgfs}/ush} -export EXECwave=${EXECwave:-${HOMEgfs}/exec} - # Set COM Paths YMD=${PDY} HH=${cyc} generate_com -rx COM_WAVE_PREP @@ -24,7 +19,7 @@ export wavempexec=${wavempexec:-"mpirun -n"} export wave_mpmd=${wave_mpmd:-"cfp"} # Execute the Script -${HOMEgfs}/scripts/exgfs_wave_init.sh +${SCRgfs}/exgfs_wave_init.sh ########################################## # Remove the Temporary working directory diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNT b/jobs/JGLOBAL_WAVE_POST_BNDPNT index 69200fba0b..cdf2ad3728 100755 --- a/jobs/JGLOBAL_WAVE_POST_BNDPNT +++ b/jobs/JGLOBAL_WAVE_POST_BNDPNT @@ -8,11 +8,6 @@ export errchk=${errchk:-err_chk} export MP_PULSE=0 -# Path to HOME Directory -export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave} -export USHwave=${USHwave:-${HOMEgfs}/ush} -export EXECwave=${EXECwave:-${HOMEgfs}/exec} - # Set COM Paths and GETGES environment YMD=${PDY} HH=${cyc} generate_com -rx COM_WAVE_PREP COM_WAVE_HISTORY COM_WAVE_STATION @@ -33,7 +28,7 @@ export DOBLL_WAV='NO' # Bulletin post export DOBNDPNT_WAV='YES' # Do boundary points # Execute the Script -${HOMEgfs}/scripts/exgfs_wave_post_pnt.sh +${SCRgfs}/exgfs_wave_post_pnt.sh err=$? if [ ${err} -ne 0 ]; then echo "FATAL ERROR: ex-script of GWES_POST failed!" diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL index 536cadd165..c091d67aca 100755 --- a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL +++ b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL @@ -12,11 +12,6 @@ export CDATE=${PDY}${cyc} export MP_PULSE=0 -# Path to HOME Directory -export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave} -export USHwave=${USHwave:-${HOMEgfs}/ush} -export EXECwave=${EXECwave:-${HOMEgfs}/exec} - # Set COM Paths and GETGES environment YMD=${PDY} HH=${cyc} generate_com -rx COM_WAVE_PREP COM_WAVE_HISTORY COM_WAVE_STATION @@ -37,7 +32,7 @@ export DOBLL_WAV='YES' # Bulletin post export DOBNDPNT_WAV='YES' #boundary points # Execute the Script -${HOMEgfs}/scripts/exgfs_wave_post_pnt.sh +${SCRgfs}/exgfs_wave_post_pnt.sh err=$? if [ ${err} -ne 0 ]; then echo "FATAL ERROR: ex-script of GFS_WAVE_POST_PNT failed!" diff --git a/jobs/JGLOBAL_WAVE_POST_PNT b/jobs/JGLOBAL_WAVE_POST_PNT index 9ff2f78f63..800a58fbd8 100755 --- a/jobs/JGLOBAL_WAVE_POST_PNT +++ b/jobs/JGLOBAL_WAVE_POST_PNT @@ -8,11 +8,6 @@ export errchk=${errchk:-err_chk} export MP_PULSE=0 -# Path to HOME Directory -export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave} -export USHwave=${USHwave:-${HOMEgfs}/ush} -export EXECwave=${EXECwave:-${HOMEgfs}/exec} - # Set COM Paths and GETGES environment YMD=${PDY} HH=${cyc} generate_com -rx COM_WAVE_PREP COM_WAVE_HISTORY COM_WAVE_STATION @@ -34,7 +29,7 @@ export DOBNDPNT_WAV='NO' #not boundary points # Execute the Script -${HOMEgfs}/scripts/exgfs_wave_post_pnt.sh +${SCRgfs}/exgfs_wave_post_pnt.sh err=$? if [ ${err} -ne 0 ]; then echo "FATAL ERROR: ex-script of GWES_POST failed!" diff --git a/jobs/JGLOBAL_WAVE_POST_SBS b/jobs/JGLOBAL_WAVE_POST_SBS index 2a7e5657dc..662b6e4395 100755 --- a/jobs/JGLOBAL_WAVE_POST_SBS +++ b/jobs/JGLOBAL_WAVE_POST_SBS @@ -8,11 +8,6 @@ export errchk=${errchk:-err_chk} export MP_PULSE=0 -# Path to HOME Directory -export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave} -export USHwave=${USHwave:-${HOMEgfs}/ush} -export EXECwave=${EXECwave:-${HOMEgfs}/exec} - # Set COM Paths and GETGES environment YMD=${PDY} HH=${cyc} generate_com -rx COM_WAVE_PREP COM_WAVE_HISTORY COM_WAVE_GRID @@ -31,7 +26,7 @@ export WAV_MOD_TAG=${RUN}wave${waveMEMB} export CFP_VERBOSE=1 # Execute the Script -${HOMEgfs}/scripts/exgfs_wave_post_gridded_sbs.sh +${SCRgfs}/exgfs_wave_post_gridded_sbs.sh err=$? if [ ${err} -ne 0 ]; then echo "FATAL ERROR: ex-script of GWES_POST failed!" diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_BULLS b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS index 3a2947af56..5e3756e276 100755 --- a/jobs/JGLOBAL_WAVE_PRDGEN_BULLS +++ b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS @@ -20,7 +20,7 @@ if [[ ! -d ${COM_WAVE_WMO} ]]; then mkdir -p "${COM_WAVE_WMO}"; fi ################################### # Execute the Script -${HOMEgfs}/scripts/exgfs_wave_prdgen_bulls.sh +${SCRgfs}/exgfs_wave_prdgen_bulls.sh status=$? [[ ${status} -ne 0 ]] && exit ${status} diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED index 4b32c709bf..d2cfd363d2 100755 --- a/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED +++ b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED @@ -22,7 +22,7 @@ mkdir -p "${COM_WAVE_WMO}" ################################### # Execute the Script ################################### -${HOMEgfs}/scripts/exgfs_wave_prdgen_gridded.sh +${SCRgfs}/exgfs_wave_prdgen_gridded.sh status=$? [[ ${status} -ne 0 ]] && exit ${status} diff --git a/jobs/JGLOBAL_WAVE_PREP b/jobs/JGLOBAL_WAVE_PREP index 479f9b8641..9fbc4b601b 100755 --- a/jobs/JGLOBAL_WAVE_PREP +++ b/jobs/JGLOBAL_WAVE_PREP @@ -16,18 +16,13 @@ export MP_PULSE=0 # CDO required for processing RTOFS currents export CDO=${CDO_ROOT}/bin/cdo -# Path to HOME Directory -export PARMwave=${PARMwave:-${HOMEgfs}/parm/wave} -export USHwave=${USHwave:-${HOMEgfs}/ush} -export EXECwave=${EXECwave:-${HOMEgfs}/exec} - # Set COM Paths and GETGES environment YMD=${PDY} HH=${cyc} generate_com -rx COM_OBS COM_WAVE_PREP generate_com -rx COM_RTOFS [[ ! -d ${COM_WAVE_PREP} ]] && mkdir -m 775 -p "${COM_WAVE_PREP}" # Execute the Script -${HOMEgfs}/scripts/exgfs_wave_prep.sh +${SCRgfs}/exgfs_wave_prep.sh ########################################## # Remove the Temporary working directory diff --git a/jobs/rocoto/awips_20km_1p0deg.sh b/jobs/rocoto/awips_20km_1p0deg.sh index e1bf623883..b2a291e37e 100755 --- a/jobs/rocoto/awips_20km_1p0deg.sh +++ b/jobs/rocoto/awips_20km_1p0deg.sh @@ -45,7 +45,7 @@ for fhr3 in ${fhrlst}; do if (( fhr >= fhmin && fhr <= fhmax )); then if ((fhr % 3 == 0)); then export fcsthrs="${fhr3}" - "${AWIPS20KM1P0DEGSH}" + "${HOMEgfs}/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG" fi fi @@ -54,7 +54,7 @@ for fhr3 in ${fhrlst}; do if (( fhr >= fhmin && fhr <= fhmax )); then if ((fhr % 6 == 0)); then export fcsthrs="${fhr3}" - "${AWIPS20KM1P0DEGSH}" + "${HOMEgfs}/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG" fi fi done diff --git a/jobs/rocoto/awips_g2.sh b/jobs/rocoto/awips_g2.sh index ed5a10c164..6bb004048d 100755 --- a/jobs/rocoto/awips_g2.sh +++ b/jobs/rocoto/awips_g2.sh @@ -45,7 +45,7 @@ for fhr3 in ${fhrlst}; do if (( fhr >= fhmin && fhr <= fhmax )); then if ((fhr % 6 == 0)); then export fcsthrs="${fhr3}" - "${AWIPSG2SH}" + "${HOMEgfs}/jobs/JGFS_ATMOS_AWIPS_G2" fi fi done diff --git a/jobs/rocoto/ocnanalecen.sh b/jobs/rocoto/ocnanalecen.sh new file mode 100755 index 0000000000..c5fdbbbf32 --- /dev/null +++ b/jobs/rocoto/ocnanalecen.sh @@ -0,0 +1,23 @@ +#! /usr/bin/env bash + +source "${HOMEgfs}/ush/preamble.sh" + +############################################################### +# Source UFSDA workflow modules +. "${HOMEgfs}/ush/load_ufsda_modules.sh" +status=$? +[[ ${status} -ne 0 ]] && exit "${status}" + +export job="ocnanalecen" +export jobid="${job}.$$" + +############################################################### +# Setup Python path for GDASApp ush +PYTHONPATH="${PYTHONPATH:+${PYTHONPATH}:}${HOMEgfs}/sorc/gdas.cd/ush" +export PYTHONPATH + +############################################################### +# Execute the JJOB +"${HOMEgfs}"/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_ECEN +status=$? +exit "${status}" diff --git a/modulefiles/module_base.hercules.lua b/modulefiles/module_base.hercules.lua index 5534437392..77a77f5505 100644 --- a/modulefiles/module_base.hercules.lua +++ b/modulefiles/module_base.hercules.lua @@ -9,7 +9,6 @@ load(pathJoin("stack-intel", (os.getenv("stack_intel_ver") or "None"))) load(pathJoin("stack-intel-oneapi-mpi", (os.getenv("stack_impi_ver") or "None"))) 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"))) load(pathJoin("jasper", (os.getenv("jasper_ver") or "None"))) load(pathJoin("libpng", (os.getenv("libpng_ver") or "None"))) diff --git a/parm/config/gefs/config.atmos_products b/parm/config/gefs/config.atmos_products index 6ba38318c7..4a0fb8b49f 100644 --- a/parm/config/gefs/config.atmos_products +++ b/parm/config/gefs/config.atmos_products @@ -12,17 +12,17 @@ echo "BEGIN: config.atmos_products" export NFHRS_PER_GROUP=3 # Scripts used by this job -export INTERP_ATMOS_MASTERSH="${HOMEgfs}/ush/interp_atmos_master.sh" -export INTERP_ATMOS_SFLUXSH="${HOMEgfs}/ush/interp_atmos_sflux.sh" +export INTERP_ATMOS_MASTERSH="${USHgfs}/interp_atmos_master.sh" +export INTERP_ATMOS_SFLUXSH="${USHgfs}/interp_atmos_sflux.sh" export downset=2 export FHOUT_PGBS=${FHOUT_GFS:-3} # Output frequency of supplemental gfs pgb file at 1.0 and 0.5 deg export FLXGF="NO" # Create interpolated sflux.1p00 file # paramlist files for the different forecast hours and downsets -export paramlista="${HOMEgfs}/parm/product/gefs.0p25.fFFF.paramlist.a.txt" -export paramlista_anl="${HOMEgfs}/parm/product/gefs.0p25.anl.paramlist.a.txt" -export paramlista_f000="${HOMEgfs}/parm/product/gefs.0p25.f000.paramlist.a.txt" -export paramlistb="${HOMEgfs}/parm/product/gefs.0p25.fFFF.paramlist.b.txt" +export paramlista="${PARMgfs}/product/gefs.0p25.fFFF.paramlist.a.txt" +export paramlista_anl="${PARMgfs}/product/gefs.0p25.anl.paramlist.a.txt" +export paramlista_f000="${PARMgfs}/product/gefs.0p25.f000.paramlist.a.txt" +export paramlistb="${PARMgfs}/product/gefs.0p25.fFFF.paramlist.b.txt" echo "END: config.atmos_products" diff --git a/parm/config/gefs/config.base.emc.dyn b/parm/config/gefs/config.base similarity index 97% rename from parm/config/gefs/config.base.emc.dyn rename to parm/config/gefs/config.base index 11b8a45a9f..483366b7b4 100644 --- a/parm/config/gefs/config.base.emc.dyn +++ b/parm/config/gefs/config.base @@ -23,12 +23,11 @@ export HPSS_PROJECT="@HPSS_PROJECT@" # Directories relative to installation areas: export HOMEgfs=@HOMEgfs@ -export PARMgfs=${HOMEgfs}/parm -export FIXgfs=${HOMEgfs}/fix -export USHgfs=${HOMEgfs}/ush -export UTILgfs=${HOMEgfs}/util export EXECgfs=${HOMEgfs}/exec +export FIXgfs=${HOMEgfs}/fix +export PARMgfs=${HOMEgfs}/parm export SCRgfs=${HOMEgfs}/scripts +export USHgfs=${HOMEgfs}/ush ######################################################################## @@ -111,6 +110,7 @@ export RUN="gefs" # RUN is defined in the job-card (ecf); CDUMP is used at EMC # Get all the COM path templates source "${EXPDIR}/config.com" +# shellcheck disable=SC2016 export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} export LOGSCRIPT=${LOGSCRIPT:-""} #export ERRSCRIPT=${ERRSCRIPT:-"err_chk"} @@ -211,7 +211,7 @@ 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 +export FHOUT_GFS=6 export FHMAX_HF_GFS=0 export FHOUT_HF_GFS=1 export FHOUT_OCNICE_GFS=6 @@ -260,6 +260,10 @@ export NMEM_ENS=@NMEM_ENS@ export ENSMEM=${ENSMEM:-"000"} export MEMDIR="mem${ENSMEM}" +# initialize ocean ensemble members with perturbations +# if true, only occurs for members greater than zero +export OCN_ENS_PERTURB_FILES=false + export DOIAU="NO" # While we are not doing IAU, we may want to warm start w/ IAU in the future # Check if cycle is cold starting if [[ "${EXP_WARM_START}" = ".false." ]]; then diff --git a/parm/config/gefs/config.fcst b/parm/config/gefs/config.fcst index 74a84e1173..8c3de84357 100644 --- a/parm/config/gefs/config.fcst +++ b/parm/config/gefs/config.fcst @@ -44,9 +44,8 @@ export esmf_logkind="ESMF_LOGKIND_MULTI_ON_ERROR" #Options: ESMF_LOGKIND_MULTI_O ####################################################################### -export FORECASTSH="${HOMEgfs}/scripts/exglobal_forecast.sh" -#export FORECASTSH="${HOMEgfs}/scripts/exglobal_forecast.py" # Temp. while this is worked on -export FCSTEXECDIR="${HOMEgfs}/exec" +export FORECASTSH="${SCRgfs}/exglobal_forecast.sh" +#export FORECASTSH="${SCRgfs}/exglobal_forecast.py" # Temp. while this is worked on export FCSTEXEC="ufs_model.x" ####################################################################### @@ -163,17 +162,17 @@ export random_clds=".true." case ${imp_physics} in 99) # ZhaoCarr export ncld=1 - export FIELD_TABLE="${HOMEgfs}/parm/ufs/fv3/field_table_zhaocarr${tbf}${tbp}" + export FIELD_TABLE="${PARMgfs}/ufs/fv3/field_table_zhaocarr${tbf}${tbp}" export nwat=2 ;; 6) # WSM6 export ncld=2 - export FIELD_TABLE="${HOMEgfs}/parm/ufs/fv3/field_table_wsm6${tbf}${tbp}" + export FIELD_TABLE="${PARMgfs}/ufs/fv3/field_table_wsm6${tbf}${tbp}" export nwat=6 ;; 8) # Thompson export ncld=2 - export FIELD_TABLE="${HOMEgfs}/parm/ufs/fv3/field_table_thompson_noaero_tke${tbp}" + export FIELD_TABLE="${PARMgfs}/ufs/fv3/field_table_thompson_noaero_tke${tbp}" export nwat=6 export cal_pre=".false." @@ -196,7 +195,7 @@ case ${imp_physics} in ;; 11) # GFDL export ncld=5 - export FIELD_TABLE="${HOMEgfs}/parm/ufs/fv3/field_table_gfdl${tbf}${tbp}" + export FIELD_TABLE="${PARMgfs}/ufs/fv3/field_table_gfdl${tbf}${tbp}" export nwat=6 export dnats=1 export cal_pre=".false." @@ -239,7 +238,7 @@ export FSICS="0" #--------------------------------------------------------------------- # Write more variables to output -export DIAG_TABLE="${HOMEgfs}/parm/ufs/fv3/diag_table" +export DIAG_TABLE="${PARMgfs}/ufs/fv3/diag_table" # Write gfs restart files to rerun fcst from any break point export restart_interval=${restart_interval_gfs:-12} diff --git a/parm/config/gefs/config.stage_ic b/parm/config/gefs/config.stage_ic index e2bb0af2b8..b332ee1826 100644 --- a/parm/config/gefs/config.stage_ic +++ b/parm/config/gefs/config.stage_ic @@ -8,6 +8,12 @@ echo "BEGIN: config.stage_ic" source "${EXPDIR}/config.resources" stage_ic case "${CASE}" in + "C384") + export CPL_ATMIC="" + export CPL_ICEIC="" + export CPL_OCNIC="" + export CPL_WAVIC="" + ;; "C48") export CPL_ATMIC="gefs_test" export CPL_ICEIC="gefs_test" diff --git a/parm/config/gefs/config.ufs b/parm/config/gefs/config.ufs index 866de52964..17d21573e4 100644 --- a/parm/config/gefs/config.ufs +++ b/parm/config/gefs/config.ufs @@ -435,25 +435,25 @@ fi # Default ufs.configure templates for supported model configurations case "${model_list}" in atm) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.atm.IN" + default_template="${PARMgfs}/ufs/ufs.configure.atm.IN" ;; atm.aero) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.atmaero.IN" + default_template="${PARMgfs}/ufs/ufs.configure.atmaero.IN" ;; atm.wave) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.leapfrog_atm_wav.IN" + default_template="${PARMgfs}/ufs/ufs.configure.leapfrog_atm_wav.IN" ;; atm.ocean.ice) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.s2s_esmf.IN" + default_template="${PARMgfs}/ufs/ufs.configure.s2s_esmf.IN" ;; atm.ocean.ice.aero) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.s2sa_esmf.IN" + default_template="${PARMgfs}/ufs/ufs.configure.s2sa_esmf.IN" ;; atm.ocean.ice.wave) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.s2sw_esmf.IN" + default_template="${PARMgfs}/ufs/ufs.configure.s2sw_esmf.IN" ;; atm.ocean.ice.wave.aero) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.s2swa_esmf.IN" + default_template="${PARMgfs}/ufs/ufs.configure.s2swa_esmf.IN" ;; *) echo "FATAL ERROR: Unsupported UFSWM configuration for ${model_list}" diff --git a/parm/config/gefs/config.wave b/parm/config/gefs/config.wave index 5f4448985c..7298b12aec 100644 --- a/parm/config/gefs/config.wave +++ b/parm/config/gefs/config.wave @@ -6,11 +6,6 @@ echo "BEGIN: config.wave" # Parameters that are common to all wave model steps - -export EXECwave="${HOMEgfs}/exec" -export PARMwave="${HOMEgfs}/parm/wave" -export USHwave="${HOMEgfs}/ush" - # This config contains variables/parameters used in the fcst step # Some others are also used across the workflow in wave component scripts diff --git a/parm/config/gfs/config.aero b/parm/config/gfs/config.aero index 32993554b4..c152fafd12 100644 --- a/parm/config/gfs/config.aero +++ b/parm/config/gfs/config.aero @@ -30,12 +30,12 @@ case ${machine} in esac export AERO_INPUTS_DIR -export AERO_DIAG_TABLE="${HOMEgfs}/parm/ufs/fv3/diag_table.aero" -export AERO_FIELD_TABLE="${HOMEgfs}/parm/ufs/fv3/field_table.aero" +export AERO_DIAG_TABLE="${PARMgfs}/ufs/fv3/diag_table.aero" +export AERO_FIELD_TABLE="${PARMgfs}/ufs/fv3/field_table.aero" # Biomass burning emission dataset. Choose from: gbbepx, qfed, none export AERO_EMIS_FIRE="qfed" # Directory containing GOCART configuration files -export AERO_CONFIG_DIR="${HOMEgfs}/parm/ufs/gocart" +export AERO_CONFIG_DIR="${PARMgfs}/ufs/gocart" # Aerosol convective scavenging factors (list of string array elements) # Element syntax: ':'. Use = * to set default factor for all aerosol tracers diff --git a/parm/config/gfs/config.aeroanl b/parm/config/gfs/config.aeroanl index 8d8aa92c16..cf7981f807 100644 --- a/parm/config/gfs/config.aeroanl +++ b/parm/config/gfs/config.aeroanl @@ -16,7 +16,7 @@ export BERROR_DATE="20160630.000000" export io_layout_x=@IO_LAYOUT_X@ export io_layout_y=@IO_LAYOUT_Y@ -export JEDIEXE=${HOMEgfs}/exec/fv3jedi_var.x +export JEDIEXE=${EXECgfs}/fv3jedi_var.x if [[ "${DOIAU}" == "YES" ]]; then export aero_bkg_times="3,6,9" diff --git a/parm/config/gfs/config.atmanl b/parm/config/gfs/config.atmanl index e344b0a662..fd4bdc23d7 100644 --- a/parm/config/gfs/config.atmanl +++ b/parm/config/gfs/config.atmanl @@ -19,6 +19,6 @@ export layout_y_atmanl=@LAYOUT_Y_ATMANL@ export io_layout_x=@IO_LAYOUT_X@ export io_layout_y=@IO_LAYOUT_Y@ -export JEDIEXE=${HOMEgfs}/exec/fv3jedi_var.x +export JEDIEXE=${EXECgfs}/fv3jedi_var.x echo "END: config.atmanl" diff --git a/parm/config/gfs/config.atmensanl b/parm/config/gfs/config.atmensanl index 7a3a632bf8..8058ffeda8 100644 --- a/parm/config/gfs/config.atmensanl +++ b/parm/config/gfs/config.atmensanl @@ -16,6 +16,6 @@ export layout_y_atmensanl=@LAYOUT_Y_ATMENSANL@ export io_layout_x=@IO_LAYOUT_X@ export io_layout_y=@IO_LAYOUT_Y@ -export JEDIEXE=${HOMEgfs}/exec/fv3jedi_letkf.x +export JEDIEXE=${EXECgfs}/fv3jedi_letkf.x echo "END: config.atmensanl" diff --git a/parm/config/gfs/config.atmos_products b/parm/config/gfs/config.atmos_products index aefb1e7014..451f5eff86 100644 --- a/parm/config/gfs/config.atmos_products +++ b/parm/config/gfs/config.atmos_products @@ -12,8 +12,8 @@ echo "BEGIN: config.atmos_products" export NFHRS_PER_GROUP=3 # Scripts used by this job -export INTERP_ATMOS_MASTERSH="${HOMEgfs}/ush/interp_atmos_master.sh" -export INTERP_ATMOS_SFLUXSH="${HOMEgfs}/ush/interp_atmos_sflux.sh" +export INTERP_ATMOS_MASTERSH="${USHgfs}/interp_atmos_master.sh" +export INTERP_ATMOS_SFLUXSH="${USHgfs}/interp_atmos_sflux.sh" if [[ "${RUN:-}" == "gdas" ]]; then export downset=1 @@ -32,9 +32,9 @@ fi export APCP_MSG="597" # Message number for APCP in GFSv16. Look for TODO in exglobal_atmos_products.sh # paramlist files for the different forecast hours and downsets -export paramlista="${HOMEgfs}/parm/product/gfs.fFFF.paramlist.a.txt" -export paramlista_anl="${HOMEgfs}/parm/product/gfs.anl.paramlist.a.txt" -export paramlista_f000="${HOMEgfs}/parm/product/gfs.f000.paramlist.a.txt" -export paramlistb="${HOMEgfs}/parm/product/gfs.fFFF.paramlist.b.txt" +export paramlista="${PARMgfs}/product/gfs.fFFF.paramlist.a.txt" +export paramlista_anl="${PARMgfs}/product/gfs.anl.paramlist.a.txt" +export paramlista_f000="${PARMgfs}/product/gfs.f000.paramlist.a.txt" +export paramlistb="${PARMgfs}/product/gfs.fFFF.paramlist.b.txt" echo "END: config.atmos_products" diff --git a/parm/config/gfs/config.awips b/parm/config/gfs/config.awips index 3b78d4bb4b..61f0dc5652 100644 --- a/parm/config/gfs/config.awips +++ b/parm/config/gfs/config.awips @@ -8,9 +8,6 @@ echo "BEGIN: config.awips" # Get task specific resources . "${EXPDIR}/config.resources" awips -export AWIPS20KM1P0DEGSH="${HOMEgfs}/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG" -export AWIPSG2SH="${HOMEgfs}/jobs/JGFS_ATMOS_AWIPS_G2" - # No. of concurrent awips jobs export NAWIPSGRP=42 diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base similarity index 95% rename from parm/config/gfs/config.base.emc.dyn rename to parm/config/gfs/config.base index 991bbbecde..62f50ef724 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base @@ -23,12 +23,11 @@ export HPSS_PROJECT="@HPSS_PROJECT@" # Directories relative to installation areas: export HOMEgfs=@HOMEgfs@ -export PARMgfs="${HOMEgfs}/parm" -export FIXgfs="${HOMEgfs}/fix" -export USHgfs="${HOMEgfs}/ush" -export UTILgfs="${HOMEgfs}/util" export EXECgfs="${HOMEgfs}/exec" +export FIXgfs="${HOMEgfs}/fix" +export PARMgfs="${HOMEgfs}/parm" export SCRgfs="${HOMEgfs}/scripts" +export USHgfs="${HOMEgfs}/ush" ######################################################################## @@ -57,16 +56,9 @@ export DO_NPOESS="NO" # NPOESS products export DO_TRACKER="YES" # Hurricane track verification export DO_GENESIS="YES" # Cyclone genesis verification export DO_GENESIS_FSU="NO" # Cyclone genesis verification (FSU) -# The monitor is not yet supported on Hercules -if [[ "${machine}" == "HERCULES" ]]; then - export DO_VERFOZN="NO" # Ozone data assimilation monitoring - export DO_VERFRAD="NO" # Radiance data assimilation monitoring - export DO_VMINMON="NO" # GSI minimization monitoring -else - export DO_VERFOZN="YES" # Ozone data assimilation monitoring - export DO_VERFRAD="YES" # Radiance data assimilation monitoring - export DO_VMINMON="YES" # GSI minimization monitoring -fi +export DO_VERFOZN="YES" # Ozone data assimilation monitoring +export DO_VERFRAD="YES" # Radiance data assimilation monitoring +export DO_VMINMON="YES" # GSI minimization monitoring export DO_MOS="NO" # GFS Model Output Statistics - Only supported on WCOSS2 # NO for retrospective parallel; YES for real-time parallel @@ -133,6 +125,7 @@ export RUN=${RUN:-${CDUMP:-"gfs"}} # RUN is defined in the job-card (ecf); CDUM # Get all the COM path templates source "${EXPDIR}/config.com" +# shellcheck disable=SC2016 export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} export LOGSCRIPT=${LOGSCRIPT:-""} #export ERRSCRIPT=${ERRSCRIPT:-"err_chk"} @@ -248,7 +241,7 @@ 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=3 +export FHOUT_GFS=3 export FHMAX_HF_GFS=0 export FHOUT_HF_GFS=1 export FHOUT_OCNICE_GFS=6 @@ -370,7 +363,7 @@ export binary_diag=".false." # Verification options 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 +export DO_VRFY_OCEANDA="@DO_VRFY_OCEANDA@" # Run SOCA Ocean and Seaice DA verification tasks # Archiving options export HPSSARCH="@HPSSARCH@" # save data to HPSS archive diff --git a/parm/config/gfs/config.efcs b/parm/config/gfs/config.efcs index 7a48feb4ce..effd443730 100644 --- a/parm/config/gfs/config.efcs +++ b/parm/config/gfs/config.efcs @@ -67,9 +67,9 @@ export SPPT_LOGIT=".true." export SPPT_SFCLIMIT=".true." if [[ "${QUILTING}" == ".true." ]] && [[ "${OUTPUT_GRID}" == "gaussian_grid" ]]; then - export DIAG_TABLE="${HOMEgfs}/parm/ufs/fv3/diag_table_da" + export DIAG_TABLE="${PARMgfs}/ufs/fv3/diag_table_da" else - export DIAG_TABLE="${HOMEgfs}/parm/ufs/fv3/diag_table_da_orig" + export DIAG_TABLE="${PARMgfs}/ufs/fv3/diag_table_da_orig" fi # Model config option for Ensemble diff --git a/parm/config/gfs/config.fcst b/parm/config/gfs/config.fcst index c03c97e56f..461f1c5b18 100644 --- a/parm/config/gfs/config.fcst +++ b/parm/config/gfs/config.fcst @@ -56,9 +56,8 @@ export esmf_logkind="ESMF_LOGKIND_MULTI_ON_ERROR" #Options: ESMF_LOGKIND_MULTI_O ####################################################################### -export FORECASTSH="${HOMEgfs}/scripts/exglobal_forecast.sh" -#export FORECASTSH="${HOMEgfs}/scripts/exglobal_forecast.py" # Temp. while this is worked on -export FCSTEXECDIR="${HOMEgfs}/exec" +export FORECASTSH="${SCRgfs}/exglobal_forecast.sh" +#export FORECASTSH="${SCRgfs}/exglobal_forecast.py" # Temp. while this is worked on export FCSTEXEC="ufs_model.x" ####################################################################### @@ -175,17 +174,17 @@ export random_clds=".true." case ${imp_physics} in 99) # ZhaoCarr export ncld=1 - export FIELD_TABLE="${HOMEgfs}/parm/ufs/fv3/field_table_zhaocarr${tbf}${tbp}" + export FIELD_TABLE="${PARMgfs}/ufs/fv3/field_table_zhaocarr${tbf}${tbp}" export nwat=2 ;; 6) # WSM6 export ncld=2 - export FIELD_TABLE="${HOMEgfs}/parm/ufs/fv3/field_table_wsm6${tbf}${tbp}" + export FIELD_TABLE="${PARMgfs}/ufs/fv3/field_table_wsm6${tbf}${tbp}" export nwat=6 ;; 8) # Thompson export ncld=2 - export FIELD_TABLE="${HOMEgfs}/parm/ufs/fv3/field_table_thompson_noaero_tke${tbp}" + export FIELD_TABLE="${PARMgfs}/ufs/fv3/field_table_thompson_noaero_tke${tbp}" export nwat=6 export cal_pre=".false." @@ -208,7 +207,7 @@ case ${imp_physics} in ;; 11) # GFDL export ncld=5 - export FIELD_TABLE="${HOMEgfs}/parm/ufs/fv3/field_table_gfdl${tbf}${tbp}" + export FIELD_TABLE="${PARMgfs}/ufs/fv3/field_table_gfdl${tbf}${tbp}" export nwat=6 export dnats=1 export cal_pre=".false." @@ -253,7 +252,7 @@ export FSICS="0" if [[ "${CDUMP}" =~ "gdas" ]] ; then # GDAS cycle specific parameters # Variables used in DA cycling - export DIAG_TABLE="${HOMEgfs}/parm/ufs/fv3/diag_table_da" + export DIAG_TABLE="${PARMgfs}/ufs/fv3/diag_table_da" if [[ "${DOIAU}" == "YES" ]]; then export restart_interval="3" @@ -267,7 +266,7 @@ if [[ "${CDUMP}" =~ "gdas" ]] ; then # GDAS cycle specific parameters elif [[ "${CDUMP}" =~ "gfs" ]] ; then # GFS cycle specific parameters # Write more variables to output - export DIAG_TABLE="${HOMEgfs}/parm/ufs/fv3/diag_table" + export DIAG_TABLE="${PARMgfs}/ufs/fv3/diag_table" # Write gfs restart files to rerun fcst from any break point export restart_interval=${restart_interval_gfs:-12} diff --git a/parm/config/gfs/config.fit2obs b/parm/config/gfs/config.fit2obs index 46baaa9e45..9b3fb87ead 100644 --- a/parm/config/gfs/config.fit2obs +++ b/parm/config/gfs/config.fit2obs @@ -8,8 +8,8 @@ echo "BEGIN: config.fit2obs" # Get task specific resources . "${EXPDIR}/config.resources" fit2obs -export PRVT=${HOMEgfs}/fix/gsi/prepobs_errtable.global -export HYBLEVS=${HOMEgfs}/fix/am/global_hyblev.l${LEVS}.txt +export PRVT=${FIXgfs}/gsi/prepobs_errtable.global +export HYBLEVS=${FIXgfs}/am/global_hyblev.l${LEVS}.txt export VBACKUP_FITS=24 export OUTPUT_FILETYPE="netcdf" diff --git a/parm/config/gfs/config.oceanice_products b/parm/config/gfs/config.oceanice_products index bea70c21cc..9e5c5b1c68 100644 --- a/parm/config/gfs/config.oceanice_products +++ b/parm/config/gfs/config.oceanice_products @@ -7,7 +7,7 @@ echo "BEGIN: config.oceanice_products" # Get task specific resources source "${EXPDIR}/config.resources" oceanice_products -export OCEANICEPRODUCTS_CONFIG="${HOMEgfs}/parm/post/oceanice_products.yaml" +export OCEANICEPRODUCTS_CONFIG="${PARMgfs}/post/oceanice_products.yaml" # No. of forecast hours to process in a single job export NFHRS_PER_GROUP=3 diff --git a/parm/config/gfs/config.ocnanalecen b/parm/config/gfs/config.ocnanalecen new file mode 100644 index 0000000000..b64c2bcf62 --- /dev/null +++ b/parm/config/gfs/config.ocnanalecen @@ -0,0 +1,11 @@ +#!/bin/bash + +########## config.ocnanalecen ########## +# Ocn Analysis specific + +echo "BEGIN: config.ocnanalecen" + +# Get task specific resources +. "${EXPDIR}/config.resources" ocnanalecen + +echo "END: config.ocnanalecen" diff --git a/parm/config/gfs/config.postsnd b/parm/config/gfs/config.postsnd index 53d66bf4f6..7ec0ad6321 100644 --- a/parm/config/gfs/config.postsnd +++ b/parm/config/gfs/config.postsnd @@ -8,7 +8,6 @@ echo "BEGIN: config.postsnd" # Get task specific resources . $EXPDIR/config.resources postsnd -export POSTSNDSH=$HOMEgfs/jobs/JGFS_ATMOS_POSTSND export ENDHOUR=180 if [[ "$FHMAX_GFS" -lt "$ENDHOUR" ]] ; then export ENDHOUR=$FHMAX_GFS ; fi diff --git a/parm/config/gfs/config.prep b/parm/config/gfs/config.prep index 9733eabc19..6009280db0 100644 --- a/parm/config/gfs/config.prep +++ b/parm/config/gfs/config.prep @@ -13,15 +13,11 @@ export cdate10=${PDY}${cyc} # Relocation and syndata QC export PROCESS_TROPCY=${PROCESS_TROPCY:-NO} -export TROPCYQCRELOSH="$HOMEgfs/scripts/exglobal_atmos_tropcy_qc_reloc.sh" +export TROPCYQCRELOSH="${SCRgfs}/exglobal_atmos_tropcy_qc_reloc.sh" export COMINtcvital=${COMINtcvital:-${DMPDIR}/${CDUMP}.${PDY}/${cyc}/atmos} export COMINsyn=${COMINsyn:-$(compath.py ${envir}/com/gfs/${gfs_ver})/syndat} -export HOMERELO=$HOMEgfs -export EXECRELO=${HOMERELO}/exec -export USHRELO=${HOMERELO}/ush - # Adjust observation error for GFS v16 parallels # # NOTE: Remember to set OBERROR in config.anal as PRVT is set below diff --git a/parm/config/gfs/config.prepatmiodaobs b/parm/config/gfs/config.prepatmiodaobs index ed9b246120..e29cf67b07 100644 --- a/parm/config/gfs/config.prepatmiodaobs +++ b/parm/config/gfs/config.prepatmiodaobs @@ -8,7 +8,4 @@ echo "BEGIN: config.prepatmiodaobs" # Get task specific resources . "${EXPDIR}/config.resources" prepatmiodaobs -export BUFR2IODASH="${HOMEgfs}/ush/run_bufr2ioda.py" -export IODAPARM="${HOMEgfs}/sorc/gdas.cd/parm/ioda/bufr2ioda" - echo "END: config.prepatmiodaobs" diff --git a/parm/config/gfs/config.prepsnowobs b/parm/config/gfs/config.prepsnowobs index 64eb8ba896..60ca16ce9e 100644 --- a/parm/config/gfs/config.prepsnowobs +++ b/parm/config/gfs/config.prepsnowobs @@ -8,11 +8,14 @@ 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" +export GTS_OBS_LIST="${PARMgfs}/gdas/snow/prep/prep_gts.yaml.j2" +export IMS_OBS_LIST="${PARMgfs}/gdas/snow/prep/prep_ims.yaml.j2" + +export BUFR2IODAX="${EXECgfs}/bufr2ioda.x" + +export CALCFIMSEXE="${EXECgfs}/calcfIMS.exe" +export FIMS_NML_TMPL="${PARMgfs}/gdas/snow/prep/fims.nml.j2" + +export IMS2IODACONV="${USHgfs}/imsfv3_scf2ioda.py" echo "END: config.prepsnowobs" diff --git a/parm/config/gfs/config.resources b/parm/config/gfs/config.resources index 7e1f66cb04..21f0a111ef 100644 --- a/parm/config/gfs/config.resources +++ b/parm/config/gfs/config.resources @@ -23,7 +23,7 @@ if (( $# != 1 )); then echo "waveinit waveprep wavepostsbs wavepostbndpnt wavepostbndpntbll wavepostpnt" echo "wavegempak waveawipsbulls waveawipsgridded" echo "postsnd awips gempak npoess" - echo "ocnanalprep prepoceanobs ocnanalbmat ocnanalrun ocnanalchkpt ocnanalpost ocnanalvrfy" + echo "ocnanalprep prepoceanobs ocnanalbmat ocnanalrun ocnanalecen ocnanalchkpt ocnanalpost ocnanalvrfy" exit 1 fi @@ -356,12 +356,12 @@ case ${step} in "ocnanalbmat") npes=16 - case ${CASE} in - "C384") npes=480;; - "C96") npes=16;; - "C48") npes=16;; + case ${OCNRES} in + "025") npes=480;; + "050") npes=16;; + "500") npes=16;; *) - echo "FATAL ERROR: Resources not defined for job ${job} at resolution ${CASE}" + echo "FATAL ERROR: Resources not defined for job ${job} at resolution ${OCNRES}" exit 4 esac @@ -374,20 +374,21 @@ case ${step} in "ocnanalrun") npes=16 - case ${CASE} in - "C384") + case ${OCNRES} in + "025") npes=480 - memory_ocnanalrun="128GB" + memory_ocnanalrun="96GB" ;; - "C96") + "050") npes=16 + memory_ocnanalrun="96GB" ;; - "C48") + "500") npes=16 - memory_ocnanalrun="64GB" + memory_ocnanalrun="24GB" ;; *) - echo "FATAL ERROR: Resources not defined for job ${job} at resolution ${CASE}" + echo "FATAL ERROR: Resources not defined for job ${job} at resolution ${OCNRES}" exit 4 esac @@ -399,23 +400,51 @@ case ${step} in export memory_ocnanalrun ;; + "ocnanalecen") + npes=16 + case ${OCNRES} in + "025") + npes=40 + memory_ocnanalecen="96GB" + ;; + "050") + npes=16 + memory_ocnanalecen="96GB" + ;; + "500") + npes=16 + memory_ocnanalecen="24GB" + ;; + *) + echo "FATAL ERROR: Resources not defined for job ${job} at resolution ${OCNRES}" + exit 4 + esac + + export wtime_ocnanalecen="00:10:00" + export npe_ocnanalecen=${npes} + export nth_ocnanalecen=1 + export is_exclusive=True + export npe_node_ocnanalecen=$(( npe_node_max / nth_ocnanalecen )) + export memory_ocnanalecen + ;; + "ocnanalchkpt") export wtime_ocnanalchkpt="00:10:00" export npe_ocnanalchkpt=1 export nth_ocnanalchkpt=1 export npe_node_ocnanalchkpt=$(( npe_node_max / nth_ocnanalchkpt )) - case ${CASE} in - "C384") + case ${OCNRES} in + "025") memory_ocnanalchkpt="128GB" npes=40;; - "C96") + "050") memory_ocnanalchkpt="32GB" npes=16;; - "C48") + "500") memory_ocnanalchkpt="32GB" npes=8;; *) - echo "FATAL ERROR: Resources not defined for job ${job} at resolution ${CASE}" + echo "FATAL ERROR: Resources not defined for job ${job} at resolution ${OCNRES}" exit 4 esac export npe_ocnanalchkpt=${npes} diff --git a/parm/config/gfs/config.snowanl b/parm/config/gfs/config.snowanl index 3303ce402b..30e6d9c07b 100644 --- a/parm/config/gfs/config.snowanl +++ b/parm/config/gfs/config.snowanl @@ -6,27 +6,21 @@ echo "BEGIN: config.snowanl" # Get task specific resources -. "${EXPDIR}/config.resources" snowanl +source "${EXPDIR}/config.resources" snowanl -obs_list_name=gdas_snow_gts_only.yaml -if [[ "${cyc}" = "18" ]]; then - obs_list_name=gdas_snow_prototype.yaml -fi - -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} +export OBS_LIST="${PARMgfs}/gdas/snow/obs/lists/gdas_snow.yaml.j2" # Name of the JEDI executable and its yaml template -export JEDIEXE="${HOMEgfs}/exec/fv3jedi_letkf.x" -export JEDIYAML="${HOMEgfs}/sorc/gdas.cd/parm/snow/letkfoi/letkfoi.yaml" +export JEDIEXE="${EXECgfs}/fv3jedi_letkf.x" +export JEDIYAML="${PARMgfs}/gdas/snow/letkfoi/letkfoi.yaml.j2" # Ensemble member properties export SNOWDEPTHVAR="snodl" 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/snow/letkfoi/apply_incr_nml.j2" +export APPLY_INCR_EXE="${EXECgfs}/apply_incr.exe" +export APPLY_INCR_NML_TMPL="${PARMgfs}/gdas/snow/letkfoi/apply_incr_nml.j2" export io_layout_x=@IO_LAYOUT_X@ export io_layout_y=@IO_LAYOUT_Y@ diff --git a/parm/config/gfs/config.ufs b/parm/config/gfs/config.ufs index 2e299fddf7..68a8941122 100644 --- a/parm/config/gfs/config.ufs +++ b/parm/config/gfs/config.ufs @@ -443,25 +443,25 @@ fi # Default ufs.configure templates for supported model configurations case "${model_list}" in atm) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.atm.IN" + default_template="${PARMgfs}/ufs/ufs.configure.atm.IN" ;; atm.aero) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.atmaero.IN" + default_template="${PARMgfs}/ufs/ufs.configure.atmaero.IN" ;; atm.wave) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.leapfrog_atm_wav.IN" + default_template="${PARMgfs}/ufs/ufs.configure.leapfrog_atm_wav.IN" ;; atm.ocean.ice) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.s2s_esmf.IN" + default_template="${PARMgfs}/ufs/ufs.configure.s2s_esmf.IN" ;; atm.ocean.ice.aero) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.s2sa_esmf.IN" + default_template="${PARMgfs}/ufs/ufs.configure.s2sa_esmf.IN" ;; atm.ocean.ice.wave) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.s2sw_esmf.IN" + default_template="${PARMgfs}/ufs/ufs.configure.s2sw_esmf.IN" ;; atm.ocean.ice.wave.aero) - default_template="${HOMEgfs}/parm/ufs/ufs.configure.s2swa_esmf.IN" + default_template="${PARMgfs}/ufs/ufs.configure.s2swa_esmf.IN" ;; *) echo "FATAL ERROR: Unsupported UFSWM configuration for ${model_list}" diff --git a/parm/config/gfs/config.upp b/parm/config/gfs/config.upp index a1bd0a7d34..41015c2fee 100644 --- a/parm/config/gfs/config.upp +++ b/parm/config/gfs/config.upp @@ -8,7 +8,7 @@ echo "BEGIN: config.upp" # Get task specific resources . "${EXPDIR}/config.resources" upp -export UPP_CONFIG="${HOMEgfs}/parm/post/upp.yaml" +export UPP_CONFIG="${PARMgfs}/post/upp.yaml" # No. of forecast hours to process in a single job export NFHRS_PER_GROUP=3 diff --git a/parm/config/gfs/config.verfozn b/parm/config/gfs/config.verfozn index 9eea0f25a3..df7d18012d 100644 --- a/parm/config/gfs/config.verfozn +++ b/parm/config/gfs/config.verfozn @@ -9,15 +9,14 @@ echo "BEGIN: config.verfozn" export DO_DATA_RPT=1 export OZN_AREA="glb" export OZNMON_SUFFIX=${NET} -export PARMmonitor=${PARMgfs}/monitor -export SATYPE_FILE=${PARMmonitor}/gdas_oznmon_satype.txt +export SATYPE_FILE=${PARMgfs}/monitor/gdas_oznmon_satype.txt # Source the parm file -. "${PARMmonitor}/gdas_oznmon.parm" +. "${PARMgfs}/monitor/gdas_oznmon.parm" # Set up validation file if [[ ${VALIDATE_DATA} -eq 1 ]]; then - export ozn_val_file=${PARMmonitor}/gdas_oznmon_base.tar + export ozn_val_file=${PARMgfs}/monitor/gdas_oznmon_base.tar fi echo "END: config.verfozn" diff --git a/parm/config/gfs/config.verfrad b/parm/config/gfs/config.verfrad index dd65020180..506ce50b4f 100644 --- a/parm/config/gfs/config.verfrad +++ b/parm/config/gfs/config.verfrad @@ -6,11 +6,10 @@ echo "BEGIN: config.verfrad" # Get task specific resources . "${EXPDIR}/config.resources" verfrad -export PARMmonitor=${PARMgfs}/monitor -export satype_file=${PARMmonitor}/gdas_radmon_satype.txt +export satype_file=${PARMgfs}/monitor/gdas_radmon_satype.txt # Source the parm file -. "${PARMmonitor}/da_mon.parm" +. "${PARMgfs}/monitor/da_mon.parm" # Other variables export RAD_AREA="glb" diff --git a/parm/config/gfs/config.vminmon b/parm/config/gfs/config.vminmon index 8929c36e0e..7c7d362161 100644 --- a/parm/config/gfs/config.vminmon +++ b/parm/config/gfs/config.vminmon @@ -9,8 +9,7 @@ echo "BEGIN: config.vminmon" export MINMON_SUFFIX=${MINMON_SUFFIX:-${NET}} export CYCLE_INTERVAL=${assim_freq:-6} -export PARMmonitor=${PARMgfs}/monitor -export mm_gnormfile=${PARMmonitor}/${RUN}_minmon_gnorm.txt -export mm_costfile=${PARMmonitor}/${RUN}_minmon_cost.txt +export mm_gnormfile=${PARMgfs}/monitor/${RUN}_minmon_gnorm.txt +export mm_costfile=${PARMgfs}/monitor/${RUN}_minmon_cost.txt echo "END: config.vminmon" diff --git a/parm/config/gfs/config.wave b/parm/config/gfs/config.wave index 8068ffcda6..6fbce69996 100644 --- a/parm/config/gfs/config.wave +++ b/parm/config/gfs/config.wave @@ -6,11 +6,6 @@ echo "BEGIN: config.wave" # Parameters that are common to all wave model steps - -export EXECwave="${HOMEgfs}/exec" -export PARMwave="${HOMEgfs}/parm/wave" -export USHwave="${HOMEgfs}/ush" - # This config contains variables/parameters used in the fcst step # Some others are also used across the workflow in wave component scripts diff --git a/parm/config/gfs/yaml/defaults.yaml b/parm/config/gfs/yaml/defaults.yaml index e6108fff29..9c90255cdd 100644 --- a/parm/config/gfs/yaml/defaults.yaml +++ b/parm/config/gfs/yaml/defaults.yaml @@ -7,6 +7,7 @@ base: DO_MERGENSST: "NO" DO_GOES: "NO" FHMAX_GFS: 120 + DO_VRFY_OCEANDA: "NO" atmanl: LAYOUT_X_ATMANL: 8 diff --git a/parm/config/gfs/yaml/test_ci.yaml b/parm/config/gfs/yaml/test_ci.yaml index bb9602be59..7425d4d029 100644 --- a/parm/config/gfs/yaml/test_ci.yaml +++ b/parm/config/gfs/yaml/test_ci.yaml @@ -1,4 +1,4 @@ defaults: - !INC {{ HOMEgfs }}/parm/config/gfs/yaml/defaults.yaml + !INC {{ PARMgfs }}/config/gfs/yaml/defaults.yaml base: ACCOUNT: "nems" diff --git a/parm/gdas/atm_jedi_fix.yaml b/parm/gdas/atm_jedi_fix.yaml index 3d1ca79f33..527d16e6bd 100644 --- a/parm/gdas/atm_jedi_fix.yaml +++ b/parm/gdas/atm_jedi_fix.yaml @@ -1,7 +1,7 @@ mkdir: - $(DATA)/fv3jedi copy: -- [$(HOMEgfs)/fix/gdas/fv3jedi/fv3files/akbk$(npz).nc4, $(DATA)/fv3jedi/akbk.nc4] -- [$(HOMEgfs)/fix/gdas/fv3jedi/fv3files/fmsmpp.nml, $(DATA)/fv3jedi/fmsmpp.nml] -- [$(HOMEgfs)/fix/gdas/fv3jedi/fv3files/field_table_gfdl, $(DATA)/fv3jedi/field_table] +- [$(FIXgfs)/gdas/fv3jedi/fv3files/akbk$(npz).nc4, $(DATA)/fv3jedi/akbk.nc4] +- [$(FIXgfs)/gdas/fv3jedi/fv3files/fmsmpp.nml, $(DATA)/fv3jedi/fmsmpp.nml] +- [$(FIXgfs)/gdas/fv3jedi/fv3files/field_table_gfdl, $(DATA)/fv3jedi/field_table] - [$(HOMEgfs)/sorc/gdas.cd/parm/io/fv3jedi_fieldmetadata_restart.yaml, $(DATA)/fv3jedi/fv3jedi_fieldmetadata_restart.yaml] diff --git a/parm/gdas/snow_jedi_fix.yaml b/parm/gdas/snow_jedi_fix.yaml deleted file mode 100644 index 3d1ca79f33..0000000000 --- a/parm/gdas/snow_jedi_fix.yaml +++ /dev/null @@ -1,7 +0,0 @@ -mkdir: -- $(DATA)/fv3jedi -copy: -- [$(HOMEgfs)/fix/gdas/fv3jedi/fv3files/akbk$(npz).nc4, $(DATA)/fv3jedi/akbk.nc4] -- [$(HOMEgfs)/fix/gdas/fv3jedi/fv3files/fmsmpp.nml, $(DATA)/fv3jedi/fmsmpp.nml] -- [$(HOMEgfs)/fix/gdas/fv3jedi/fv3files/field_table_gfdl, $(DATA)/fv3jedi/field_table] -- [$(HOMEgfs)/sorc/gdas.cd/parm/io/fv3jedi_fieldmetadata_restart.yaml, $(DATA)/fv3jedi/fv3jedi_fieldmetadata_restart.yaml] diff --git a/parm/gdas/snow_jedi_fix.yaml.j2 b/parm/gdas/snow_jedi_fix.yaml.j2 new file mode 100644 index 0000000000..4d820a82ba --- /dev/null +++ b/parm/gdas/snow_jedi_fix.yaml.j2 @@ -0,0 +1,7 @@ +mkdir: +- '{{ DATA }}/fv3jedi' +copy: +- ['{{ HOMEgfs }}/fix/gdas/fv3jedi/fv3files/akbk{{ npz }}.nc4', '{{ DATA }}/fv3jedi/akbk.nc4'] +- ['{{ HOMEgfs }}/fix/gdas/fv3jedi/fv3files/fmsmpp.nml', '{{ DATA }}/fv3jedi/fmsmpp.nml'] +- ['{{ HOMEgfs }}/fix/gdas/fv3jedi/fv3files/field_table_gfdl', '{{ DATA }}/fv3jedi/field_table'] +- ['{{ HOMEgfs }}/sorc/gdas.cd/parm/io/fv3jedi_fieldmetadata_restart.yaml', '{{ DATA }}/fv3jedi/fv3jedi_fieldmetadata_restart.yaml'] diff --git a/parm/post/oceanice_products.yaml b/parm/post/oceanice_products.yaml index 44b4094c56..8d8bcd4b51 100644 --- a/parm/post/oceanice_products.yaml +++ b/parm/post/oceanice_products.yaml @@ -6,20 +6,20 @@ ocnicepost: mkdir: - "{{ DATA }}" copy: - - ["{{ HOMEgfs }}/exec/ocnicepost.x", "{{ DATA }}/"] - - ["{{ HOMEgfs }}/parm/post/ocnicepost.nml.jinja2", "{{ DATA }}/"] - - ["{{ HOMEgfs }}/parm/post/{{ component }}.csv", "{{ DATA }}/"] - - ["{{ HOMEgfs }}/fix/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Bu.to.Ct.bilinear.nc", "{{ DATA }}/"] - - ["{{ HOMEgfs }}/fix/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Cu.to.Ct.bilinear.nc", "{{ DATA }}/"] - - ["{{ HOMEgfs }}/fix/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Cv.to.Ct.bilinear.nc", "{{ DATA }}/"] + - ["{{ EXECgfs }}/ocnicepost.x", "{{ DATA }}/"] + - ["{{ PARMgfs }}/post/ocnicepost.nml.jinja2", "{{ DATA }}/"] + - ["{{ PARMgfs }}/post/{{ component }}.csv", "{{ DATA }}/"] + - ["{{ FIXgfs }}/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Bu.to.Ct.bilinear.nc", "{{ DATA }}/"] + - ["{{ FIXgfs }}/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Cu.to.Ct.bilinear.nc", "{{ DATA }}/"] + - ["{{ FIXgfs }}/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Cv.to.Ct.bilinear.nc", "{{ DATA }}/"] {% for grid in product_grids %} - - ["{{ HOMEgfs }}/fix/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Ct.to.rect.{{ grid }}.bilinear.nc", "{{ DATA }}/"] - - ["{{ HOMEgfs }}/fix/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Ct.to.rect.{{ grid }}.conserve.nc", "{{ DATA }}/"] - - ["{{ HOMEgfs }}/fix/mom6/post/template.global.{{ grid }}.gb2", "{{ DATA }}/"] + - ["{{ FIXgfs }}/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Ct.to.rect.{{ grid }}.bilinear.nc", "{{ DATA }}/"] + - ["{{ FIXgfs }}/mom6/post/{{ model_grid }}/tripole.{{ model_grid }}.Ct.to.rect.{{ grid }}.conserve.nc", "{{ DATA }}/"] + - ["{{ FIXgfs }}/mom6/post/template.global.{{ grid }}.gb2", "{{ DATA }}/"] {% endfor %} nc2grib2: - script: "{{ HOMEgfs }}/ush/oceanice_nc2grib2.sh" + script: "{{ USHgfs }}/oceanice_nc2grib2.sh" ocean: namelist: diff --git a/parm/post/upp.yaml b/parm/post/upp.yaml index ea7237dc83..c2f0315d86 100644 --- a/parm/post/upp.yaml +++ b/parm/post/upp.yaml @@ -9,16 +9,16 @@ upp: - "{{ DATA }}" copy: - ["{{ 'g2tmpl_ROOT' | getenv }}/share/params_grib2_tbl_new", "{{ DATA }}/params_grib2_tbl_new"] - - ["{{ HOMEgfs }}/parm/post/nam_micro_lookup.dat", "{{ DATA }}/eta_micro_lookup.dat"] - - ["{{ HOMEgfs }}/exec/upp.x", "{{ DATA }}/"] - - ["{{ HOMEgfs }}/parm/post/itag.jinja", "{{ DATA }}/"] + - ["{{ PARMgfs }}/post/nam_micro_lookup.dat", "{{ DATA }}/eta_micro_lookup.dat"] + - ["{{ EXECgfs }}/upp.x", "{{ DATA }}/"] + - ["{{ PARMgfs }}/post/itag.jinja", "{{ DATA }}/"] analysis: config: rdaod: True data_in: copy: - - ["{{ HOMEgfs }}/parm/post/postxconfig-NT-GFS-ANL.txt", "{{ DATA }}/postxconfig-NT.txt"] + - ["{{ PARMgfs }}/post/postxconfig-NT-GFS-ANL.txt", "{{ DATA }}/postxconfig-NT.txt"] - ["{{ COM_ATMOS_ANALYSIS }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.atmanl.nc", "{{ DATA }}/{{ atmos_filename }}"] - ["{{ COM_ATMOS_ANALYSIS }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sfcanl.nc", "{{ DATA }}/{{ flux_filename }}"] data_out: @@ -32,9 +32,9 @@ forecast: data_in: copy: {% if forecast_hour == 0 %} - - ["{{ HOMEgfs }}/parm/post/postxconfig-NT-GFS-F00-TWO.txt", "{{ DATA }}/postxconfig-NT.txt"] + - ["{{ PARMgfs }}/post/postxconfig-NT-GFS-F00-TWO.txt", "{{ DATA }}/postxconfig-NT.txt"] {% else %} - - ["{{ HOMEgfs }}/parm/post/postxconfig-NT-GFS-TWO.txt", "{{ DATA }}/postxconfig-NT.txt"] + - ["{{ PARMgfs }}/post/postxconfig-NT-GFS-TWO.txt", "{{ DATA }}/postxconfig-NT.txt"] {% endif %} - ["{{ COM_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.atmf{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ atmos_filename }}"] - ["{{ COM_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sfcf{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ flux_filename }}"] @@ -81,7 +81,7 @@ goes: {% endfor %} - ["{{ 'CRTM_FIX' | getenv }}/AerosolCoeff.bin", "{{ DATA }}/"] - ["{{ 'CRTM_FIX' | getenv }}/CloudCoeff.bin", "{{ DATA }}/"] - - ["{{ HOMEgfs }}/parm/post/postxconfig-NT-GFS-GOES.txt", "{{ DATA }}/postxconfig-NT.txt"] + - ["{{ PARMgfs }}/post/postxconfig-NT-GFS-GOES.txt", "{{ DATA }}/postxconfig-NT.txt"] - ["{{ COM_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.atmf{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ atmos_filename }}"] - ["{{ COM_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sfcf{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ flux_filename }}"] data_out: diff --git a/parm/product/bufr_ij9km.txt b/parm/product/bufr_ij9km.txt new file mode 100644 index 0000000000..321026f3d1 --- /dev/null +++ b/parm/product/bufr_ij9km.txt @@ -0,0 +1,2115 @@ + 1 2814 261 69.58 -140.18 + 2 2958 257 69.90 -128.97 + 3 3063 261 69.58 -120.75 + 4 2919 320 65.00 -132.00 + 5 3072 320 65.00 -120.00 + 6 3297 319 65.10 -102.43 + 7 2816 384 60.00 -140.00 + 8 3072 384 60.00 -120.00 + 9 3328 384 60.00 -100.00 + 10 2983 422 57.00 -127.00 + 11 2708 253 70.20 -148.47 + 12 3249 465 53.63 -106.20 + 13 2588 293 67.10 -157.85 + 14 3263 461 53.99 -105.12 + 15 3097 475 52.88 -118.07 + 16 3239 352 62.50 -107.00 + 17 3200 590 43.90 -110.00 + 18 3361 566 45.80 -97.45 + 19 3385 595 43.50 -95.60 + 20 3421 727 33.22 -92.80 + 21 3395 614 42.04 -94.79 + 22 3419 613 42.11 -92.92 + 23 3506 715 34.10 -86.10 + 24 3523 701 35.20 -84.80 + 25 3533 706 34.80 -84.05 + 26 3572 682 36.72 -80.97 + 27 3158 533 48.32 -113.35 + 28 3236 612 42.20 -107.20 + 29 3272 605 42.76 -104.45 + 30 3298 610 42.30 -102.40 + 31 3330 607 42.60 -99.90 + 32 3249 651 39.10 -106.20 + 33 3471 674 37.30 -88.90 + 34 3423 637 40.20 -92.60 + 35 3353 705 34.90 -98.10 + 36 3263 533 48.31 -105.10 + 37 3458 714 34.25 -89.87 + 38 3261 638 40.13 -105.24 + 39 3368 672 37.48 -96.93 + 40 3530 692 35.96 -84.29 + 41 3323 603 42.86 -100.41 + 42 3401 627 41.02 -94.36 + 43 3613 614 42.04 -77.76 + 44 3591 651 39.17 -79.52 + 45 3464 746 31.71 -89.41 + 46 3579 577 44.92 -80.42 + 47 3283 572 45.27 -103.54 + 48 3268 579 44.79 -104.73 + 49 3279 583 44.46 -103.85 + 50 3268 597 43.35 -104.69 + 51 3282 595 43.53 -103.65 + 52 3381 569 45.50 -95.90 + 53 3412 587 44.10 -93.50 + 54 3112 700 35.34 -116.88 + 55 3487 712 34.40 -87.60 + 56 3058 544 47.50 -121.10 + 57 3038 582 44.50 -122.70 + 58 3136 589 44.00 -115.00 + 59 3056 552 46.90 -121.30 + 60 3066 587 44.10 -120.50 + 61 3055 605 42.70 -121.40 + 62 3191 737 32.42 -110.73 + 63 3361 683 36.61 -97.49 + 64 3056 567 45.68 -121.27 + 65 3053 567 45.72 -121.56 + 66 3062 567 45.68 -120.82 + 67 3070 567 45.72 -120.21 + 68 3050 665 38.06 -121.77 + 69 3043 677 37.10 -122.28 + 70 3041 668 37.82 -122.47 + 71 3040 666 37.94 -122.50 + 72 3058 677 37.07 -121.12 + 73 3158 637 40.20 -113.30 + 74 3662 635 40.42 -73.98 + 75 3651 676 37.20 -74.80 + 76 3658 690 36.05 -74.25 + 77 3620 732 32.80 -77.20 + 78 3664 658 38.60 -73.75 + 79 3492 778 29.20 -87.25 + 80 3515 559 46.31 -85.46 + 81 3494 549 47.18 -87.22 + 82 3475 602 42.97 -88.55 + 83 3680 577 44.94 -72.51 + 84 3558 675 37.27 -82.10 + 85 3558 675 90.00 0.00 + 86 2604 201 74.30 -156.60 + 87 2816 192 75.00 -140.00 + 88 2390 376 60.60 -173.30 + 89 2538 385 59.90 -161.75 + 90 2691 347 62.88 -149.83 + 91 2703 374 60.79 -148.83 + 92 2691 378 60.49 -149.79 + 93 2700 372 60.95 -149.14 + 94 2705 374 60.78 -148.72 + 95 3146 778 29.22 -114.28 + 96 3563 689 36.20 -81.65 + 97 3483 607 42.59 -87.94 + 98 3100 607 42.59 -117.87 + 99 3042 549 47.08 -122.36 + 100 3020 551 46.91 -124.11 + 101 3445 542 47.66 -90.91 + 102 3440 553 46.77 -91.25 + 103 2554 444 55.31 -160.52 + 104 3615 700 35.33 -77.60 + 105 3679 582 44.53 -72.61 + 106 3582 619 41.63 -80.21 + 107 3576 657 38.69 -80.65 + 108 3102 709 34.57 -117.67 + 109 3103 709 34.63 -117.61 + 110 3506 563 45.97 -86.17 + 111 3499 558 46.42 -86.65 + 112 3461 651 39.16 -89.67 + 113 3308 588 44.05 -101.60 + 114 3505 594 43.58 -86.24 + 115 3517 596 43.43 -85.30 + 116 3528 597 43.37 -84.44 + 117 3274 712 34.38 -104.23 + 118 3994 554 46.70 -48.00 + 119 3903 548 47.20 -55.10 + 120 3506 605 42.75 -86.10 + 121 3504 609 42.41 -86.28 + 122 3108 571 45.35 -117.23 + 123 3388 620 41.59 -95.34 + 124 3484 591 43.78 -87.85 + 125 3292 756 30.90 -102.85 + 126 3434 721 33.64 -91.75 + 127 3427 688 36.22 -92.28 + 128 3284 750 31.38 -103.51 + 129 3566 814 26.42 -81.44 + 130 3572 810 26.75 -80.94 + 131 3337 753 31.18 -99.32 + 132 3320 760 30.59 -100.65 + 133 3060 652 39.08 -120.94 + 134 3072 672 37.51 -120.04 + 135 3069 671 37.58 -120.27 + 136 3081 680 36.83 -119.33 + 137 3056 693 35.85 -121.31 + 138 3049 546 47.31 -121.85 + 139 3057 659 38.49 -121.22 + 140 3062 651 39.13 -120.80 + 141 3041 631 40.72 -122.43 + 142 3656 633 40.50 -74.45 + 143 3705 602 42.99 -70.62 + 144 3667 569 45.50 -73.57 + 145 3676 626 41.10 -72.89 + 146 3048 644 39.69 -121.91 + 147 3058 651 39.17 -121.11 + 148 3076 696 35.62 -119.69 + 149 3056 695 35.66 -121.28 + 150 3031 658 38.61 -123.21 + 151 3031 659 38.51 -123.22 + 152 3034 656 38.78 -122.99 + 153 3069 677 37.11 -120.24 + 154 3046 640 39.99 -122.06 + 155 3033 653 39.00 -123.12 + 156 3035 659 38.51 -122.96 + 157 3249 723 33.50 -106.18 + 158 3243 719 33.82 -106.65 + 159 3180 632 40.58 -111.63 + 160 3546 591 43.78 -82.99 + 161 2791 409 58.00 -142.00 + 162 2778 461 54.00 -143.00 + 163 2855 435 56.00 -137.00 + 164 2624 448 55.00 -155.00 + 165 2829 473 53.00 -139.00 + 166 2722 498 51.10 -147.40 + 167 2535 486 52.00 -162.00 + 168 2641 518 49.50 -153.70 + 169 2448 522 49.20 -168.80 + 170 2880 512 50.00 -135.00 + 171 2957 659 38.50 -129.00 + 172 2996 717 34.00 -126.00 + 173 3034 774 29.50 -123.00 + 174 3072 832 25.00 -120.00 + 175 3136 832 25.00 -115.00 + 176 2806 585 44.30 -140.80 + 177 2764 541 47.70 -144.10 + 178 2855 673 37.40 -137.00 + 179 2842 550 47.00 -138.00 + 180 2874 594 43.60 -135.50 + 181 2902 644 39.70 -133.30 + 182 2951 531 48.50 -129.50 + 183 2976 581 44.60 -127.50 + 184 2799 505 50.50 -141.38 + 185 2983 633 40.50 -126.98 + 186 2176 448 55.00 170.00 + 187 2304 448 55.00 180.00 + 188 2240 384 60.00 175.00 + 189 3203 604 42.80 -109.81 + 190 3045 651 39.15 -122.15 + 191 3051 629 40.88 -121.66 + 192 3068 666 37.99 -120.38 + 193 3091 669 37.74 -118.59 + 194 3084 689 36.20 -119.10 + 195 3091 691 35.97 -118.54 + 196 3086 706 34.83 -118.95 + 197 3068 689 36.14 -120.35 + 198 3092 683 36.65 -118.48 + 199 3670 608 42.47 -73.29 + 200 3556 650 39.21 -82.23 + 201 3182 634 40.48 -111.43 + 202 3146 729 33.02 -114.24 + 203 3197 749 31.49 -110.30 + 204 3228 742 32.02 -107.87 + 205 3273 762 30.43 -104.33 + 206 3325 789 28.39 -100.29 + 207 3344 812 26.57 -98.82 + 208 3380 784 28.71 -95.96 + 209 3435 770 29.81 -91.66 + 210 3565 836 24.70 -81.51 + 211 3750 922 17.98 -67.08 + 212 3051 561 46.19 -121.70 + 213 3043 559 46.28 -122.28 + 214 3048 571 45.35 -121.94 + 215 3046 587 44.17 -122.06 + 216 3340 575 45.03 -99.11 + 217 3367 570 45.46 -96.99 + 218 3390 662 38.28 -95.22 + 219 3372 642 39.86 -96.63 + 220 3242 584 44.38 -106.72 + 221 3225 582 44.52 -108.08 + 222 3453 575 45.10 -90.30 + 223 3427 583 44.46 -92.29 + 224 3238 675 37.29 -107.06 + 225 3219 663 38.23 -108.56 + 226 3228 639 40.05 -107.89 + 227 3437 619 41.64 -91.54 + 228 3258 652 39.05 -105.51 + 229 3247 639 40.05 -106.36 + 230 3487 656 38.76 -87.61 + 231 3475 652 39.07 -88.53 + 232 3451 628 40.94 -90.43 + 233 3453 643 39.77 -90.24 + 234 3479 647 39.48 -88.28 + 235 3331 596 43.39 -99.84 + 236 3296 601 43.02 -102.52 + 237 3273 590 43.89 -104.32 + 238 3294 582 44.56 -102.66 + 239 3255 592 43.74 -105.74 + 240 3467 561 46.15 -89.21 + 241 3490 556 46.54 -87.39 + 242 3508 554 46.68 -85.97 + 243 3470 555 46.61 -88.91 + 244 3495 794 28.00 -87.00 + 245 3409 791 28.20 -93.70 + 246 3427 787 28.50 -92.30 + 247 3444 795 27.90 -91.00 + 248 3469 794 28.00 -89.00 + 249 3520 794 28.00 -85.00 + 250 3597 755 31.00 -79.00 + 251 3776 537 48.00 -65.00 + 252 3182 649 39.30 -111.46 + 253 3269 682 36.74 -104.65 + 254 3623 678 36.99 -77.00 + 255 3624 667 37.86 -76.89 + 256 3635 659 38.54 -76.03 + 257 3613 681 36.77 -77.79 + 258 3727 591 43.78 -68.86 + 259 3584 660 38.40 -80.00 + 260 3104 703 35.10 -117.56 + 261 3285 597 43.37 -103.39 + 262 3284 583 44.41 -103.48 + 263 3478 612 42.21 -88.32 + 264 3481 634 40.46 -88.10 + 265 3586 732 32.78 -79.92 + 266 3585 734 32.66 -79.93 + 267 3573 742 32.03 -80.89 + 268 3105 538 47.97 -117.43 + 269 3570 688 36.22 -81.10 + 270 3549 608 42.47 -82.76 + 271 3537 591 43.80 -83.72 + 272 3549 588 44.02 -82.79 + 273 3493 618 41.69 -87.15 + 274 3481 619 41.61 -88.10 + 275 3577 685 36.46 -80.55 + 276 3162 676 37.20 -112.99 + 277 3184 662 38.29 -111.26 + 278 3174 656 38.74 -112.10 + 279 3088 676 37.20 -118.80 + 280 3287 542 47.61 -103.26 + 281 3367 668 37.80 -97.01 + 282 3401 709 34.60 -94.30 + 283 3390 667 37.90 -95.20 + 284 3309 659 38.50 -101.50 + 285 3262 673 37.40 -105.20 + 286 3261 691 36.00 -105.30 + 287 3307 714 34.20 -101.70 + 288 3337 722 33.60 -99.30 + 289 3362 721 33.70 -97.40 + 290 3427 677 37.10 -92.30 + 291 3239 627 41.00 -107.00 + 292 3147 560 46.25 -114.15 + 293 3168 550 47.00 -112.50 + 294 3149 525 49.00 -114.00 + 295 3226 518 49.50 -108.00 + 296 3277 525 49.00 -104.00 + 297 3341 544 47.50 -99.00 + 298 3360 561 46.20 -97.50 + 299 3392 563 46.00 -95.00 + 300 3531 630 40.80 -84.20 + 301 3584 665 38.00 -80.00 + 302 3552 710 34.50 -82.50 + 303 3354 618 41.73 -98.01 + 304 3388 620 41.58 -95.34 + 305 3367 611 42.24 -96.98 + 306 3344 669 37.70 -98.75 + 307 3349 528 48.75 -98.39 + 308 3368 528 48.75 -96.94 + 309 3376 583 44.46 -96.25 + 310 3390 599 43.17 -95.21 + 311 3336 599 43.22 -99.40 + 312 3344 598 43.26 -98.76 + 313 3359 628 40.90 -97.62 + 314 3331 630 40.79 -99.78 + 315 3359 638 40.15 -97.58 + 316 3337 643 39.73 -99.32 + 317 3452 681 36.77 -90.32 + 318 3490 674 37.36 -87.40 + 319 3513 652 39.05 -85.61 + 320 3551 669 37.75 -82.64 + 321 3537 683 36.61 -83.74 + 322 3522 680 36.86 -84.86 + 323 3534 665 38.06 -83.98 + 324 3306 626 41.12 -101.77 + 325 3321 615 41.96 -100.57 + 326 3204 594 43.55 -109.69 + 327 3188 605 42.71 -110.94 + 328 3193 617 41.82 -110.56 + 329 3216 578 44.87 -108.79 + 330 3220 577 44.91 -108.45 + 331 3244 592 43.71 -106.63 + 332 3459 595 43.52 -89.77 + 333 3476 592 43.77 -88.49 + 334 3453 603 42.89 -90.24 + 335 3479 601 43.04 -88.24 + 336 3465 588 44.04 -89.31 + 337 3467 623 41.35 -89.15 + 338 3497 618 41.70 -86.82 + 339 3484 626 41.07 -87.85 + 340 3468 616 41.89 -89.08 + 341 3434 570 45.42 -91.77 + 342 3399 575 45.10 -94.51 + 343 3376 579 44.73 -96.27 + 344 3300 639 40.10 -102.24 + 345 3293 656 38.76 -102.79 + 346 3495 572 45.29 -86.98 + 347 3459 584 44.36 -89.84 + 348 3659 640 39.99 -74.17 + 349 3509 669 37.70 -85.87 + 350 3353 670 37.67 -98.12 + 351 3354 675 37.28 -98.04 + 352 3383 662 38.30 -95.72 + 353 3376 667 37.85 -96.29 + 354 3351 656 38.75 -98.23 + 355 3663 646 39.55 -73.90 + 356 3692 644 39.70 -71.60 + 357 3385 677 37.09 -95.57 + 358 3358 661 38.35 -97.69 + 359 3337 674 37.35 -99.35 + 360 3343 700 35.30 -98.90 + 361 3367 698 35.50 -97.00 + 362 3396 704 34.98 -94.69 + 363 3308 683 36.60 -101.60 + 364 3601 608 42.50 -78.68 + 365 3640 592 43.76 -75.68 + 366 3443 738 32.35 -91.03 + 367 3567 821 25.86 -81.38 + 368 3555 783 28.84 -82.33 + 369 3547 741 32.07 -82.90 + 370 3485 746 31.71 -87.78 + 371 3472 724 33.45 -88.82 + 372 3441 705 34.89 -91.20 + 373 3507 698 35.48 -86.09 + 374 3484 696 35.62 -87.84 + 375 3517 679 36.95 -85.26 + 376 3290 722 33.62 -103.02 + 377 3325 701 35.21 -100.25 + 378 3317 651 39.13 -100.87 + 379 3439 678 37.01 -91.36 + 380 3408 661 38.37 -93.79 + 381 3425 647 39.42 -92.44 + 382 3597 709 34.61 -79.06 + 383 3706 619 41.65 -70.52 + 384 3574 724 33.46 -80.85 + 385 3444 569 45.50 -91.00 + 386 3415 564 45.89 -93.27 + 387 3424 574 45.15 -92.54 + 388 3380 573 45.23 -96.00 + 389 3455 588 44.03 -90.08 + 390 3043 623 41.32 -122.32 + 391 3077 607 42.55 -119.66 + 392 3062 597 43.33 -120.84 + 393 3028 622 41.39 -123.49 + 394 3054 622 41.43 -121.46 + 395 3108 571 45.36 -117.25 + 396 3086 584 44.40 -118.96 + 397 3615 687 36.33 -77.64 + 398 3588 705 34.89 -79.76 + 399 3566 634 40.47 -81.42 + 400 3591 629 40.82 -79.53 + 401 3596 632 40.63 -79.11 + 402 3593 645 39.58 -79.34 + 403 3581 638 40.14 -80.29 + 404 3648 608 42.46 -75.06 + 405 3309 682 36.68 -101.50 + 406 3498 727 33.17 -86.77 + 407 3466 752 31.27 -89.26 + 408 3566 790 28.29 -81.44 + 409 3561 783 28.82 -81.81 + 410 3387 763 30.36 -95.41 + 411 3386 759 30.73 -95.47 + 412 3303 576 45.02 -102.02 + 413 3332 778 29.21 -99.74 + 414 3349 693 35.87 -98.42 + 415 3474 628 40.92 -88.62 + 416 3673 620 41.56 -73.05 + 417 3120 529 48.69 -116.32 + 418 3089 529 48.65 -118.73 + 419 3064 541 47.76 -120.65 + 420 3069 531 48.49 -120.24 + 421 3122 543 47.54 -116.14 + 422 3035 631 40.73 -122.94 + 423 3026 628 40.94 -123.63 + 424 3033 636 40.34 -123.07 + 425 3031 643 39.75 -123.21 + 426 3416 684 36.54 -93.20 + 427 2426 337 63.68 -170.50 + 428 2666 280 68.13 -151.73 + 429 2410 336 63.77 -171.73 + 430 2480 379 60.37 -166.27 + 431 2543 427 56.65 -161.37 + 432 2041 460 54.05 159.43 + 433 3684 577 44.89 -72.23 + 434 3309 596 43.46 -101.50 + 435 3280 589 43.99 -103.79 + 436 3533 777 29.30 -84.04 + 437 3372 795 27.90 -96.64 + 438 3528 713 34.31 -84.42 + 439 3535 713 34.27 -83.83 + 440 3528 623 41.34 -84.43 + 441 3510 624 41.28 -85.84 + 442 3515 617 41.81 -85.44 + 443 3498 620 41.57 -86.73 + 444 3286 526 48.93 -103.30 + 445 3333 526 48.88 -99.62 + 446 3285 561 46.19 -103.43 + 447 3337 563 46.02 -99.35 + 448 3353 561 46.17 -98.07 + 449 3537 563 46.01 -83.74 + 450 3465 552 46.88 -89.32 + 451 3495 568 45.58 -87.00 + 452 3103 712 34.36 -117.63 + 453 3076 705 34.94 -119.69 + 454 3070 711 34.48 -120.23 + 455 3071 709 34.61 -120.08 + 456 3186 592 43.74 -111.10 + 457 3533 706 34.85 -84.00 + 458 3280 584 44.35 -103.77 + 459 3273 583 44.41 -104.36 + 460 3395 668 37.80 -94.77 + 461 3423 670 37.64 -92.65 + 462 3414 661 38.35 -93.34 + 463 3052 646 39.49 -121.61 + 464 3478 718 33.90 -88.33 + 465 3282 709 34.64 -103.63 + 466 3643 655 38.83 -75.43 + 467 3338 735 32.54 -99.25 + 468 3402 655 38.81 -94.26 + 469 3355 687 36.34 -97.92 + 470 3342 712 34.36 -98.98 + 471 3509 631 40.72 -85.93 + 472 3362 759 30.72 -97.38 + 473 3348 636 40.32 -98.44 + 474 3515 749 31.46 -85.46 + 475 3510 735 32.54 -85.79 + 476 3311 531 48.50 -101.40 + 477 3541 689 36.17 -83.40 + 478 3643 595 43.47 -75.46 + 479 3542 734 32.68 -83.35 + 480 3491 682 36.74 -87.29 + 481 3143 750 31.40 -114.49 + 482 3164 738 32.37 -112.87 + 483 3205 732 32.82 -109.68 + 484 3129 532 48.39 -115.55 + 485 3271 528 48.76 -104.52 + 486 3034 669 37.70 -123.00 + 487 3033 661 38.32 -123.07 + 488 3274 558 46.37 -104.28 + 489 3183 583 44.42 -111.37 + 490 3171 612 42.17 -112.28 + 491 3124 646 39.50 -115.95 + 492 3083 662 38.30 -119.16 + 493 3668 580 44.65 -73.49 + 494 3644 625 41.14 -75.38 + 495 3638 640 39.98 -75.82 + 496 3295 675 37.28 -102.61 + 497 3709 568 45.64 -70.26 + 498 3722 544 47.46 -69.22 + 499 3745 569 45.56 -67.43 + 500 3672 614 42.05 -73.20 + 501 3208 613 42.11 -109.45 + 502 3228 608 42.49 -107.83 + 503 3215 608 42.48 -108.84 + 504 3195 599 43.20 -110.40 + 505 3381 632 40.61 -95.87 + 506 3372 624 41.24 -96.59 + 507 3495 621 41.45 -87.01 + 508 3477 622 41.42 -88.41 + 509 3344 643 39.76 -98.79 + 510 3241 633 40.51 -106.87 + 511 3234 647 39.43 -107.38 + 512 3250 647 39.48 -106.15 + 513 3232 633 40.50 -107.52 + 514 3464 627 41.02 -89.39 + 515 3480 656 38.72 -88.18 + 516 3352 652 39.06 -98.17 + 517 3377 677 37.13 -96.19 + 518 3373 661 38.37 -96.54 + 519 3622 606 42.64 -77.05 + 520 3630 617 41.77 -76.45 + 521 3248 631 40.73 -106.28 + 522 3629 596 43.45 -76.51 + 523 3402 600 43.08 -94.27 + 524 3396 596 43.40 -94.75 + 525 3394 635 40.35 -94.92 + 526 3539 663 38.22 -83.59 + 527 3416 656 38.71 -93.18 + 528 3416 647 39.42 -93.13 + 529 3221 592 43.71 -108.39 + 530 3187 599 43.18 -111.04 + 531 3283 568 45.59 -103.55 + 532 2654 373 60.82 -152.72 + 533 2560 269 69.00 -160.00 + 534 2273 486 52.00 177.55 + 535 2484 422 57.00 -166.00 + 536 2649 355 62.22 -153.08 + 537 2596 387 59.73 -157.26 + 538 2723 360 61.89 -147.32 + 539 2483 304 66.27 -166.05 + 540 3108 715 34.10 -117.23 + 541 3407 632 40.63 -93.90 + 542 3191 724 33.40 -110.77 + 543 3165 717 33.97 -112.74 + 544 3635 655 38.80 -76.07 + 545 3653 626 41.05 -74.63 + 546 2766 349 62.72 -143.97 + 547 2764 285 67.75 -144.11 + 548 2761 312 65.59 -144.36 + 549 2676 359 61.95 -151.00 + 550 2630 419 57.27 -154.56 + 551 2714 305 66.15 -148.03 + 552 2774 294 67.03 -143.29 + 553 2546 317 65.20 -161.15 + 554 2671 387 59.75 -151.37 + 555 2575 340 63.39 -158.83 + 556 2893 423 56.97 -134.00 + 557 2531 282 67.95 -162.31 + 558 2684 376 60.59 -150.32 + 559 2696 379 60.37 -149.41 + 560 2783 367 61.32 -142.59 + 561 2667 383 60.03 -151.66 + 562 2577 281 68.07 -158.71 + 563 2566 364 61.58 -159.54 + 564 2746 345 63.03 -145.49 + 565 2501 315 65.41 -164.66 + 566 2645 340 63.44 -153.36 + 567 2874 393 59.25 -135.52 + 568 2905 440 55.58 -133.10 + 569 2677 339 63.49 -150.88 + 570 2774 346 62.97 -143.34 + 571 2792 332 64.05 -141.93 + 572 2633 296 66.85 -154.34 + 573 2661 306 66.08 -152.17 + 574 2606 363 61.64 -156.44 + 575 2605 262 69.50 -156.50 + 576 2701 269 69.00 -149.00 + 577 2701 285 67.75 -149.00 + 578 2612 315 65.34 -155.95 + 579 2617 331 64.10 -155.56 + 580 2675 329 64.31 -151.08 + 581 2558 380 60.32 -160.20 + 582 2512 357 62.10 -163.80 + 583 2536 251 70.40 -161.90 + 584 2604 239 71.32 -156.62 + 585 3742 610 42.35 -67.70 + 586 3687 649 39.30 -72.00 + 587 3768 649 39.30 -65.70 + 588 3711 674 37.30 -70.10 + 589 3654 687 36.30 -74.60 + 590 3664 696 35.60 -73.80 + 591 3702 705 34.90 -70.80 + 592 3636 719 33.80 -76.00 + 593 3683 732 32.80 -72.30 + 594 2938 536 48.10 -130.50 + 595 2988 536 48.10 -126.60 + 596 2948 572 45.30 -129.70 + 597 3001 572 45.30 -125.60 + 598 2946 617 41.75 -129.90 + 599 2998 616 41.90 -125.80 + 600 3002 650 39.20 -125.50 + 601 3003 686 36.40 -125.40 + 602 3008 726 33.30 -125.00 + 603 3043 709 34.60 -122.30 + 604 3053 756 30.90 -121.50 + 605 3111 773 29.60 -117.00 + 606 3635 671 37.54 -76.01 + 607 3239 730 32.99 -106.97 + 608 3203 740 32.15 -109.84 + 609 3534 606 42.63 -83.98 + 610 3532 602 42.99 -84.14 + 611 3544 613 42.10 -83.16 + 612 3532 616 41.87 -84.07 + 613 3539 588 44.02 -83.54 + 614 3540 596 43.46 -83.45 + 615 3541 615 41.94 -83.43 + 616 3287 632 40.61 -103.26 + 617 3280 636 40.34 -103.80 + 618 3411 639 40.08 -93.59 + 619 3418 634 40.48 -93.01 + 620 3401 637 40.25 -94.33 + 621 3419 631 40.68 -92.90 + 622 3422 618 41.71 -92.73 + 623 3415 608 42.47 -93.27 + 624 3476 657 38.66 -88.45 + 625 3487 652 39.02 -87.65 + 626 3465 646 39.53 -89.33 + 627 3211 598 43.31 -109.19 + 628 3226 619 41.67 -107.98 + 629 3188 595 43.50 -110.96 + 630 3352 647 39.47 -98.13 + 631 3401 667 37.85 -94.31 + 632 3473 615 41.93 -88.71 + 633 3193 673 37.44 -110.56 + 634 3242 634 40.45 -106.75 + 635 3362 674 37.32 -97.39 + 636 3241 673 37.45 -106.80 + 637 3233 588 44.03 -107.45 + 638 3188 613 42.08 -110.96 + 639 3225 655 38.79 -108.06 + 640 3243 635 40.35 -106.70 + 641 3471 777 29.30 -88.84 + 642 4508 741 32.13 -7.88 + 643 3678 616 41.89 -72.71 + 644 143 381 60.20 11.10 + 645 230 388 59.67 17.93 + 646 230 392 59.35 17.95 + 647 320 380 60.32 24.97 + 648 4593 382 60.13 -1.18 + 649 4550 429 56.50 -4.58 + 650 3879 1574 -33.00 -57.00 + 651 4586 490 51.68 -1.78 + 652 4588 489 51.75 -1.58 + 653 4605 495 51.29 -0.27 + 654 4527 483 52.25 -6.33 + 655 4319 333 63.97 -22.60 + 656 4522 358 62.02 -6.76 + 657 161 438 55.77 12.53 + 658 56 486 52.03 4.35 + 659 58 500 50.90 4.47 + 660 89 553 46.82 6.95 + 661 31 528 48.73 2.40 + 662 4501 597 43.37 -8.42 + 663 4595 619 41.67 -1.02 + 664 4537 676 37.17 -5.62 + 665 4315 938 16.75 -22.95 + 666 184 291 67.27 14.37 + 667 2323 243 70.97 -178.53 + 668 2311 270 68.92 -179.48 + 669 2435 305 66.17 -169.83 + 670 2182 324 64.68 170.42 + 671 2272 323 64.73 177.50 + 672 2296 345 63.05 179.32 + 673 814 471 53.21 63.55 + 674 4528 407 58.22 -6.32 + 675 17 478 52.63 1.32 + 676 856 509 50.22 66.83 + 677 937 514 49.80 73.15 + 678 4541 511 50.08 -5.25 + 679 4529 452 54.65 -6.22 + 680 3674 705 34.90 -73.00 + 681 3646 738 32.30 -75.20 + 682 3596 736 32.50 -79.07 + 683 3618 777 29.30 -77.40 + 684 3573 750 31.40 -80.87 + 685 3604 782 28.90 -78.50 + 686 3589 732 32.80 -79.62 + 687 3579 739 32.28 -80.41 + 688 3460 820 25.90 -89.70 + 689 3410 820 25.90 -93.60 + 690 3509 820 25.90 -85.90 + 691 3392 795 27.90 -95.00 + 692 3373 806 27.00 -96.50 + 693 3704 659 38.50 -70.70 + 694 3730 607 42.60 -68.60 + 695 3712 595 43.53 -70.14 + 696 3720 633 40.50 -69.40 + 697 3652 659 38.50 -74.70 + 698 3756 626 41.10 -66.60 + 699 3651 683 36.60 -74.80 + 700 3686 631 40.70 -72.10 + 701 3672 636 40.30 -73.20 + 702 3747 585 44.30 -67.30 + 703 3665 635 40.37 -73.70 + 704 3644 669 37.76 -75.33 + 705 3485 537 48.06 -87.78 + 706 3503 572 45.33 -86.42 + 707 3549 571 45.35 -82.84 + 708 3501 543 47.56 -86.55 + 709 3554 618 41.68 -82.40 + 710 3458 546 47.32 -89.87 + 711 3495 606 42.67 -87.02 + 712 3555 584 44.28 -82.42 + 713 3618 594 43.62 -77.41 + 714 3569 608 42.47 -81.22 + 715 3592 596 43.40 -79.45 + 716 3593 605 42.74 -79.35 + 717 3486 612 42.14 -87.66 + 718 2712 431 56.30 -148.20 + 719 2938 608 42.50 -130.50 + 720 2613 488 51.90 -155.90 + 721 2932 562 46.10 -131.00 + 722 2848 628 40.90 -137.50 + 723 3021 650 39.20 -124.00 + 724 3011 605 42.75 -124.82 + 725 3019 561 46.20 -124.20 + 726 3015 635 40.40 -124.50 + 727 2334 422 57.00 -177.70 + 728 3079 737 32.40 -119.50 + 729 3098 736 32.49 -118.03 + 730 1267 912 18.77 98.96 + 731 1316 941 16.47 102.78 + 732 1282 950 15.77 100.14 + 733 1343 957 15.25 104.87 + 734 1288 977 13.67 100.61 + 735 1288 1060 7.19 100.61 + 736 2531 852 23.40 -162.30 + 737 2589 932 17.20 -157.80 + 738 2550 905 19.30 -160.80 + 739 2656 929 17.40 -152.50 + 740 110 441 55.52 8.55 + 741 61 482 52.31 4.76 + 742 89 483 52.28 6.89 + 743 2674 387 59.77 -151.17 + 744 80 525 48.98 6.25 + 745 3354 772 29.70 -98.01 + 746 3500 688 36.25 -86.57 + 747 3385 689 36.18 -95.56 + 748 3085 701 35.24 -119.03 + 749 3454 658 38.62 -90.18 + 750 3275 660 38.46 -104.18 + 751 3564 621 41.50 -81.60 + 752 3166 600 43.11 -112.68 + 753 3126 544 47.47 -115.80 + 754 27 624 41.28 2.07 + 755 4554 635 40.42 -4.25 + 756 4602 646 39.50 -0.47 + 757 3318 685 36.50 -100.80 + 758 3307 764 30.30 -101.70 + 759 3296 797 27.70 -102.50 + 760 3340 762 30.50 -99.10 + 761 3345 788 28.40 -98.70 + 762 3344 815 26.30 -98.80 + 763 3362 840 24.40 -97.40 + 764 3389 820 25.90 -95.30 + 765 3400 838 24.50 -94.40 + 766 3385 854 23.30 -95.60 + 767 3403 918 18.30 -94.20 + 768 3417 878 21.40 -93.10 + 769 3436 854 23.30 -91.60 + 770 3473 849 23.70 -88.70 + 771 3520 858 23.00 -85.00 + 772 3354 851 23.50 -98.00 + 773 3438 563 46.02 -91.45 + 774 3549 655 38.83 -82.80 + 775 3603 654 38.88 -78.52 + 776 3600 645 39.62 -78.76 + 777 3623 645 39.61 -77.01 + 778 113 473 53.05 8.79 + 779 172 480 52.47 13.40 + 780 92 501 50.87 7.15 + 781 110 511 50.05 8.58 + 782 119 529 48.68 9.22 + 783 151 533 48.35 11.78 + 784 182 535 48.23 14.19 + 785 213 536 48.12 16.57 + 786 183 511 50.10 14.26 + 787 237 456 54.38 18.47 + 788 269 484 52.17 20.97 + 789 217 498 51.10 16.89 + 790 246 545 47.43 19.18 + 791 263 579 44.78 20.53 + 792 300 605 42.69 23.41 + 793 353 607 42.57 27.52 + 794 357 599 43.23 27.83 + 795 319 613 42.07 24.86 + 796 334 581 44.57 26.09 + 797 158 569 45.50 12.33 + 798 162 617 41.80 12.60 + 799 157 617 41.80 12.23 + 800 310 697 35.53 24.15 + 801 373 627 40.97 29.08 + 802 423 638 40.13 33.00 + 803 515 669 37.75 40.20 + 804 426 702 35.15 33.28 + 805 2391 327 64.43 -173.23 + 806 387 389 59.58 30.18 + 807 481 438 55.75 37.57 + 808 1062 447 55.03 82.90 + 809 1689 600 43.12 131.90 + 810 985 599 43.23 76.93 + 811 576 618 41.68 44.95 + 812 954 601 43.07 74.47 + 813 887 624 41.27 69.27 + 814 461 743 31.98 35.98 + 815 451 744 31.87 35.22 + 816 599 833 24.88 46.77 + 817 599 836 24.72 46.72 + 818 615 778 29.22 47.98 + 819 553 687 36.32 43.15 + 820 567 727 33.22 44.23 + 821 612 761 30.57 47.78 + 822 628 794 28.00 49.00 + 823 640 806 27.00 50.00 + 824 657 695 35.68 51.32 + 825 787 754 31.05 61.47 + 826 903 711 34.42 70.47 + 827 843 751 31.31 65.85 + 828 661 829 25.25 51.57 + 829 709 829 25.25 55.33 + 830 700 839 24.42 54.65 + 831 3728 172 76.53 -68.75 + 832 989 786 28.58 77.20 + 833 1067 925 17.72 83.30 + 834 1372 599 43.20 107.17 + 835 1093 797 27.70 85.37 + 836 1462 866 22.32 114.17 + 837 1556 832 25.03 121.52 + 838 1483 1015 10.72 115.83 + 839 1624 671 37.55 126.80 + 840 1651 702 35.18 128.93 + 841 1810 631 40.70 141.37 + 842 1753 701 35.25 136.93 + 843 1790 697 35.55 139.78 + 844 1797 694 35.76 140.38 + 845 1735 708 34.68 135.53 + 846 1284 1084 5.30 100.27 + 847 1303 1117 2.75 101.72 + 848 1328 1134 1.38 103.72 + 849 1344 860 22.82 104.97 + 850 1355 883 21.02 105.80 + 851 1366 1013 10.82 106.67 + 852 1622 490 51.72 126.65 + 853 1491 642 39.80 116.47 + 854 1541 690 36.07 120.33 + 855 1332 759 30.67 104.02 + 856 1395 713 34.30 108.93 + 857 1458 710 34.52 113.83 + 858 1555 753 31.17 121.43 + 859 4412 794 27.93 -15.38 + 860 4510 722 33.57 -7.67 + 861 4506 747 31.62 -8.03 + 862 71 860 22.82 5.47 + 863 28 979 13.48 2.17 + 864 4570 938 16.72 -3.00 + 865 4384 963 14.73 -17.50 + 866 4393 981 13.35 -16.80 + 867 927 1245 -7.30 72.42 + 868 299 842 24.22 23.30 + 869 349 751 31.33 27.22 + 870 472 1168 -1.28 36.83 + 871 475 1196 -3.42 37.07 + 872 490 1215 -4.92 38.23 + 873 198 1208 -4.38 15.45 + 874 43 1068 6.58 3.33 + 875 4606 1080 5.60 -0.17 + 876 4512 1058 7.38 -7.53 + 877 4558 1085 5.25 -3.93 + 878 4476 1072 6.23 -10.37 + 879 170 1265 -8.85 13.23 + 880 398 1464 -24.37 31.05 + 881 239 1587 -33.97 18.60 + 882 2602 239 71.30 -156.78 + 883 2770 254 70.13 -143.63 + 884 2482 270 68.88 -166.13 + 885 2527 296 66.87 -162.63 + 886 2661 264 69.37 -152.13 + 887 2669 295 66.92 -151.52 + 888 2662 318 65.17 -152.10 + 889 2749 300 66.57 -145.27 + 890 2491 326 64.50 -165.43 + 891 2550 334 63.88 -160.80 + 892 2483 361 61.78 -166.03 + 893 2537 374 60.78 -161.80 + 894 2600 323 64.73 -156.93 + 895 2617 346 62.97 -155.62 + 896 2612 347 62.90 -155.98 + 897 2617 370 61.10 -155.58 + 898 2687 354 62.30 -150.10 + 899 2673 359 61.97 -151.18 + 900 2672 377 60.57 -151.25 + 901 2716 322 64.82 -147.87 + 902 2726 324 64.67 -147.10 + 903 2744 333 63.97 -145.70 + 904 2743 333 64.00 -145.73 + 905 2747 356 62.15 -145.45 + 906 2691 368 61.25 -149.80 + 907 2688 369 61.17 -150.02 + 908 2700 363 61.60 -149.08 + 909 2735 369 61.13 -146.35 + 910 2696 382 60.12 -149.45 + 911 2802 323 64.78 -141.15 + 912 2792 346 62.97 -141.93 + 913 2746 377 60.50 -145.50 + 914 2534 401 58.65 -162.07 + 915 2430 420 57.15 -170.22 + 916 2526 445 55.20 -162.73 + 917 2579 396 59.05 -158.52 + 918 2603 401 58.68 -156.65 + 919 2626 387 59.75 -154.92 + 920 2669 389 59.63 -151.50 + 921 2735 391 59.43 -146.33 + 922 2656 413 57.75 -152.50 + 923 2821 390 59.52 -139.67 + 924 2877 391 59.47 -135.30 + 925 2871 404 58.42 -135.73 + 926 2876 421 57.07 -135.35 + 927 2886 405 58.37 -134.58 + 928 2906 425 56.82 -132.97 + 929 2914 429 56.48 -132.37 + 930 2923 443 55.35 -131.70 + 931 2924 447 55.03 -131.57 + 932 2229 477 52.72 174.12 + 933 2347 488 51.88 -176.65 + 934 2447 474 52.95 -168.85 + 935 2477 462 53.90 -166.55 + 936 2931 487 51.93 -131.02 + 937 2986 316 65.28 -126.75 + 938 3005 230 72.00 -125.28 + 939 3105 432 56.23 -117.43 + 940 3081 176 76.23 -119.33 + 941 3315 424 56.87 -101.08 + 942 3356 438 55.75 -97.87 + 943 3568 271 68.78 -81.25 + 944 3811 96 82.50 -62.33 + 945 3042 524 49.03 -122.37 + 946 2978 503 50.68 -127.37 + 947 3148 466 53.55 -114.10 + 948 3155 470 53.30 -113.58 + 949 3219 459 54.13 -108.52 + 950 3185 508 50.27 -111.18 + 951 3277 469 53.33 -104.00 + 952 3693 552 46.90 -71.50 + 953 3851 543 47.57 -59.17 + 954 3080 513 49.95 -119.40 + 955 2944 404 58.42 -130.00 + 956 3585 599 43.17 -79.93 + 957 3580 595 43.47 -80.38 + 958 3796 577 44.88 -63.50 + 959 3778 576 44.98 -64.92 + 960 3773 592 43.72 -65.25 + 961 3184 310 65.77 -111.25 + 962 3546 611 42.27 -82.97 + 963 3840 590 43.93 -60.02 + 964 3796 581 44.63 -63.50 + 965 3762 590 43.87 -66.10 + 966 3765 572 45.32 -65.88 + 967 3570 601 43.03 -81.15 + 968 3589 593 43.67 -79.63 + 969 3619 564 45.95 -77.32 + 970 3664 570 45.47 -73.75 + 971 3661 567 45.68 -74.03 + 972 3640 572 45.32 -75.67 + 973 3605 586 44.23 -78.37 + 974 3593 576 44.97 -79.30 + 975 3570 579 44.75 -81.10 + 976 3758 565 45.83 -66.43 + 977 3781 562 46.12 -64.68 + 978 3800 559 46.28 -63.13 + 979 3840 561 46.17 -60.05 + 980 3695 553 46.80 -71.40 + 981 3636 558 46.38 -75.97 + 982 3613 537 48.05 -77.78 + 983 3592 558 46.37 -79.42 + 984 3523 538 47.97 -84.78 + 985 3567 530 48.57 -81.37 + 986 3484 483 52.23 -87.88 + 987 3465 533 48.37 -89.32 + 988 3029 529 48.65 -123.43 + 989 3934 542 47.62 -52.73 + 990 3910 525 48.95 -54.57 + 991 3874 522 49.22 -57.40 + 992 3760 509 50.22 -66.27 + 993 3859 531 48.53 -58.55 + 994 3835 469 53.32 -60.42 + 995 3655 515 49.77 -74.53 + 996 3666 464 53.75 -73.67 + 997 3496 515 49.78 -86.93 + 998 3576 496 51.27 -80.65 + 999 3577 495 51.28 -80.60 + 1000 3454 493 51.45 -90.20 + 1001 3458 463 53.83 -89.87 + 1002 3401 515 49.78 -94.37 + 1003 3364 513 49.90 -97.23 + 1004 3333 515 49.78 -99.65 + 1005 3307 452 54.68 -101.68 + 1006 3269 506 50.43 -104.67 + 1007 3243 484 52.17 -106.68 + 1008 3314 461 53.97 -101.10 + 1009 3256 471 53.22 -105.68 + 1010 3191 512 50.02 -110.72 + 1011 3165 517 49.63 -112.80 + 1012 3149 498 51.12 -114.02 + 1013 3127 517 49.62 -115.78 + 1014 3103 521 49.30 -117.63 + 1015 3032 522 49.18 -123.17 + 1016 3010 515 49.72 -124.90 + 1017 3038 462 53.88 -122.68 + 1018 3733 408 58.10 -68.42 + 1019 3609 404 58.45 -78.12 + 1020 3731 336 63.75 -68.53 + 1021 3404 400 58.75 -94.07 + 1022 3541 330 64.20 -83.37 + 1023 3509 128 79.98 -85.93 + 1024 3237 418 57.35 -107.13 + 1025 3393 195 74.72 -94.95 + 1026 3263 267 69.10 -105.12 + 1027 3380 329 64.30 -96.00 + 1028 3175 451 54.77 -112.02 + 1029 3176 384 60.02 -111.95 + 1030 3144 352 62.50 -114.40 + 1031 3039 399 58.83 -122.58 + 1032 3057 361 61.80 -121.20 + 1033 2960 382 60.12 -128.82 + 1034 2899 277 68.32 -133.53 + 1035 2880 375 60.72 -135.07 + 1036 2828 332 64.05 -139.13 + 1037 2819 287 67.57 -139.82 + 1038 3562 838 24.55 -81.75 + 1039 3571 835 24.73 -81.05 + 1040 3581 821 25.82 -80.28 + 1041 3581 820 25.90 -80.28 + 1042 3583 818 26.07 -80.15 + 1043 3579 824 25.65 -80.43 + 1044 3583 810 26.68 -80.12 + 1045 3582 817 26.20 -80.17 + 1046 3576 792 28.10 -80.65 + 1047 3579 798 27.65 -80.42 + 1048 3568 788 28.43 -81.32 + 1049 3571 778 29.18 -81.05 + 1050 3563 762 30.50 -81.69 + 1051 3560 765 30.22 -81.88 + 1052 3569 741 32.13 -81.19 + 1053 3576 739 32.22 -80.70 + 1054 3584 731 32.90 -80.03 + 1055 3554 797 27.70 -82.38 + 1056 3580 800 27.50 -80.37 + 1057 3561 812 26.58 -81.87 + 1058 3562 812 26.53 -81.75 + 1059 3552 794 27.97 -82.53 + 1060 3552 801 27.40 -82.55 + 1061 3550 795 27.92 -82.68 + 1062 3559 794 27.99 -82.02 + 1063 3545 773 29.62 -83.10 + 1064 3554 752 31.25 -82.40 + 1065 3566 752 31.25 -81.47 + 1066 3567 753 31.15 -81.37 + 1067 3529 763 30.38 -84.37 + 1068 3555 772 29.68 -82.27 + 1069 3526 725 33.36 -84.57 + 1070 3531 748 31.53 -84.18 + 1071 3543 758 30.78 -83.28 + 1072 3538 733 32.70 -83.65 + 1073 3559 725 33.37 -81.97 + 1074 3528 721 33.65 -84.42 + 1075 3527 720 33.78 -84.52 + 1076 3529 718 33.88 -84.30 + 1077 3521 771 29.73 -84.98 + 1078 3509 761 30.56 -85.92 + 1079 3493 762 30.47 -87.18 + 1080 3479 759 30.68 -88.25 + 1081 3481 760 30.63 -88.07 + 1082 3512 765 30.22 -85.68 + 1083 3523 738 32.33 -84.83 + 1084 3521 736 32.52 -84.93 + 1085 3503 738 32.30 -86.40 + 1086 3515 751 31.32 -85.45 + 1087 3498 722 33.57 -86.75 + 1088 3487 727 33.22 -87.62 + 1089 3510 722 33.58 -85.85 + 1090 3492 731 32.90 -87.25 + 1091 3414 771 29.78 -93.30 + 1092 3498 727 33.17 -86.77 + 1093 3454 779 29.10 -90.20 + 1094 3453 768 29.98 -90.25 + 1095 3432 768 30.03 -91.88 + 1096 3456 767 30.05 -90.03 + 1097 3442 761 30.53 -91.15 + 1098 3464 776 29.33 -89.40 + 1099 3459 764 30.33 -89.82 + 1100 3472 738 32.33 -88.75 + 1101 3465 749 31.47 -89.33 + 1102 3455 738 32.32 -90.08 + 1103 3444 723 33.48 -90.98 + 1104 3450 753 31.18 -90.47 + 1105 3455 723 33.50 -90.08 + 1106 3416 754 31.05 -93.20 + 1107 3415 766 30.12 -93.22 + 1108 3431 765 30.20 -91.98 + 1109 3405 769 29.95 -94.02 + 1110 3395 777 29.30 -94.80 + 1111 3388 768 29.97 -95.35 + 1112 3389 772 29.65 -95.28 + 1113 3375 760 30.58 -96.37 + 1114 3396 752 31.23 -94.75 + 1115 3387 738 32.34 -95.40 + 1116 3397 738 32.34 -94.65 + 1117 3408 736 32.47 -93.82 + 1118 3431 736 32.52 -92.03 + 1119 3427 750 31.40 -92.30 + 1120 3363 732 32.83 -97.30 + 1121 3361 820 25.90 -97.43 + 1122 3359 816 26.23 -97.65 + 1123 3351 817 26.18 -98.23 + 1124 3360 796 27.77 -97.50 + 1125 3354 797 27.73 -98.03 + 1126 3335 799 27.55 -99.47 + 1127 3386 779 29.12 -95.47 + 1128 3348 774 29.53 -98.47 + 1129 3358 764 30.30 -97.70 + 1130 3368 783 28.85 -96.92 + 1131 3364 747 31.62 -97.22 + 1132 3356 754 31.07 -97.83 + 1133 3369 732 32.84 -96.85 + 1134 3387 721 33.63 -95.45 + 1135 3367 731 32.90 -97.03 + 1136 3096 703 35.07 -118.15 + 1137 3362 732 32.82 -97.37 + 1138 3352 739 32.22 -98.18 + 1139 3317 776 29.37 -100.92 + 1140 3267 744 31.83 -104.80 + 1141 3322 750 31.37 -100.50 + 1142 3296 691 36.02 -102.55 + 1143 3277 763 30.37 -104.02 + 1144 3301 743 31.95 -102.18 + 1145 3288 745 31.78 -103.20 + 1146 3333 737 32.41 -99.68 + 1147 3305 721 33.65 -101.82 + 1148 3271 726 33.30 -104.53 + 1149 3274 738 32.33 -104.27 + 1150 3287 734 32.68 -103.22 + 1151 3249 739 32.24 -106.22 + 1152 3240 739 32.28 -106.92 + 1153 3247 745 31.80 -106.40 + 1154 3235 727 33.23 -107.27 + 1155 3230 739 32.27 -107.72 + 1156 3196 748 31.57 -110.33 + 1157 3206 749 31.47 -109.60 + 1158 3189 741 32.12 -110.93 + 1159 3175 724 33.43 -112.02 + 1160 3142 734 32.65 -114.60 + 1161 3103 716 34.05 -117.60 + 1162 3117 719 33.83 -116.50 + 1163 3094 714 34.20 -118.35 + 1164 3092 714 34.22 -118.48 + 1165 3064 701 35.23 -120.63 + 1166 3109 733 32.73 -117.17 + 1167 3111 735 32.57 -116.98 + 1168 3080 726 33.25 -119.45 + 1169 3093 724 33.40 -118.42 + 1170 3107 728 33.13 -117.28 + 1171 3109 731 32.85 -117.12 + 1172 3093 719 33.93 -118.40 + 1173 3096 719 33.82 -118.15 + 1174 3100 721 33.68 -117.87 + 1175 3611 713 34.27 -77.90 + 1176 3597 702 35.17 -79.02 + 1177 3599 704 34.98 -78.87 + 1178 3641 700 35.27 -75.55 + 1179 3625 707 34.78 -76.87 + 1180 3600 693 35.87 -78.78 + 1181 3618 696 35.64 -77.39 + 1182 3610 700 35.33 -77.97 + 1183 3611 693 35.84 -77.90 + 1184 3615 706 34.82 -77.61 + 1185 3686 681 36.82 -72.10 + 1186 3633 680 36.90 -76.19 + 1187 3629 677 37.13 -76.50 + 1188 3624 705 34.90 -76.88 + 1189 3622 703 35.07 -77.05 + 1190 3570 717 33.95 -81.12 + 1191 3588 714 34.18 -79.72 + 1192 3542 717 33.95 -83.32 + 1193 3554 706 34.84 -82.35 + 1194 3556 705 34.90 -82.22 + 1195 3550 710 34.50 -82.72 + 1196 3573 701 35.22 -80.93 + 1197 3567 695 35.73 -81.37 + 1198 3552 698 35.43 -82.55 + 1199 3585 690 36.08 -79.94 + 1200 3579 676 37.21 -80.41 + 1201 3554 685 36.48 -82.40 + 1202 3582 689 36.13 -80.22 + 1203 3518 712 34.35 -85.16 + 1204 3498 708 34.65 -86.77 + 1205 3487 707 34.75 -87.62 + 1206 3518 704 35.03 -85.20 + 1207 3534 693 35.82 -83.98 + 1208 3519 692 35.95 -85.08 + 1209 3499 689 36.13 -86.68 + 1210 3472 713 34.27 -88.77 + 1211 3456 703 35.05 -90.00 + 1212 3470 696 35.59 -88.92 + 1213 3428 706 34.83 -92.25 + 1214 3428 707 34.73 -92.23 + 1215 3448 693 35.83 -90.65 + 1216 3417 711 34.48 -93.10 + 1217 3432 714 34.18 -91.93 + 1218 3406 724 33.45 -93.98 + 1219 3421 727 33.22 -92.80 + 1220 3401 700 35.33 -94.37 + 1221 3403 691 36.00 -94.17 + 1222 3416 688 36.27 -93.15 + 1223 3425 689 36.20 -92.47 + 1224 3435 695 35.73 -91.65 + 1225 3432 680 36.88 -91.90 + 1226 3462 675 37.23 -89.57 + 1227 3405 679 36.91 -94.02 + 1228 3399 676 37.15 -94.50 + 1229 3348 717 33.98 -98.50 + 1230 3341 704 34.98 -99.05 + 1231 3339 700 35.33 -99.20 + 1232 3331 687 36.30 -99.77 + 1233 3359 699 35.40 -97.60 + 1234 3366 682 36.73 -97.10 + 1235 3349 709 34.60 -98.40 + 1236 3367 713 34.30 -97.02 + 1237 3381 689 36.20 -95.90 + 1238 3380 681 36.76 -96.01 + 1239 3383 705 34.88 -95.78 + 1240 3361 701 35.23 -97.47 + 1241 3288 685 36.45 -103.15 + 1242 3325 711 34.43 -100.28 + 1243 3216 697 35.52 -108.78 + 1244 3307 701 35.23 -101.70 + 1245 3243 744 31.87 -106.70 + 1246 3244 703 35.05 -106.62 + 1247 3251 696 35.62 -106.08 + 1248 3223 681 36.75 -108.23 + 1249 3282 702 35.18 -103.60 + 1250 3263 696 35.65 -105.15 + 1251 3150 700 35.27 -113.95 + 1252 3182 679 36.93 -111.45 + 1253 3169 710 34.53 -112.47 + 1254 3170 708 34.65 -112.42 + 1255 3191 704 35.02 -110.73 + 1256 3200 713 34.27 -110.00 + 1257 3208 710 34.51 -109.38 + 1258 3179 702 35.13 -111.67 + 1259 3177 701 35.23 -111.82 + 1260 3173 692 35.95 -112.15 + 1261 3141 707 34.77 -114.62 + 1262 3099 705 34.92 -117.90 + 1263 3114 706 34.84 -116.78 + 1264 3095 707 34.73 -118.22 + 1265 3097 709 34.63 -118.08 + 1266 3085 698 35.43 -119.05 + 1267 3134 690 36.08 -115.17 + 1268 3123 683 36.62 -116.02 + 1269 3076 681 36.77 -119.72 + 1270 3084 715 34.12 -119.12 + 1271 3075 711 34.43 -119.83 + 1272 3083 714 34.21 -119.20 + 1273 3065 707 34.75 -120.57 + 1274 3067 705 34.90 -120.45 + 1275 3064 695 35.66 -120.63 + 1276 3619 672 37.50 -77.33 + 1277 3604 664 38.13 -78.44 + 1278 3605 674 37.35 -78.43 + 1279 3642 666 37.93 -75.48 + 1280 3617 653 38.95 -77.44 + 1281 3617 662 38.27 -77.45 + 1282 3631 662 38.28 -76.40 + 1283 3642 661 38.33 -75.51 + 1284 3623 655 38.84 -77.03 + 1285 3627 650 39.18 -76.67 + 1286 3614 644 39.70 -77.73 + 1287 3630 648 39.33 -76.42 + 1288 3654 647 39.45 -74.57 + 1289 3648 648 39.37 -75.07 + 1290 3645 641 39.88 -75.25 + 1291 3648 639 40.08 -75.01 + 1292 3641 644 39.68 -75.60 + 1293 3651 636 40.28 -74.82 + 1294 3654 640 40.02 -74.60 + 1295 3656 630 40.80 -74.42 + 1296 3595 674 37.33 -79.19 + 1297 3593 684 36.57 -79.33 + 1298 3585 674 37.32 -79.97 + 1299 3587 666 37.95 -79.83 + 1300 3570 668 37.78 -81.12 + 1301 3569 674 37.30 -81.19 + 1302 3579 667 37.87 -80.40 + 1303 3564 661 38.37 -81.60 + 1304 3586 654 38.88 -79.85 + 1305 3582 649 39.30 -80.23 + 1306 3586 644 39.65 -79.92 + 1307 3610 648 39.40 -77.98 + 1308 3525 652 39.05 -84.67 + 1309 3526 665 38.03 -84.60 + 1310 3511 663 38.18 -85.73 + 1311 3542 671 37.59 -83.32 + 1312 3493 669 37.75 -87.16 + 1313 3508 667 37.91 -85.97 + 1314 3532 677 37.08 -84.08 + 1315 3552 661 38.37 -82.55 + 1316 3535 647 39.42 -83.83 + 1317 3496 662 38.25 -86.95 + 1318 3566 648 39.34 -81.43 + 1319 3576 638 40.18 -80.65 + 1320 3548 640 40.00 -82.88 + 1321 3547 642 39.82 -82.93 + 1322 3560 641 39.95 -81.90 + 1323 3531 641 39.90 -84.20 + 1324 3528 652 39.09 -84.42 + 1325 3488 665 38.05 -87.53 + 1326 3470 657 38.65 -88.97 + 1327 3466 668 37.78 -89.25 + 1328 3452 656 38.75 -90.37 + 1329 3448 657 38.66 -90.65 + 1330 3472 677 37.07 -88.77 + 1331 3525 678 37.05 -84.61 + 1332 3491 647 39.45 -87.32 + 1333 3500 651 39.15 -86.62 + 1334 3504 643 39.73 -86.27 + 1335 3496 635 40.41 -86.93 + 1336 3461 642 39.84 -89.67 + 1337 3441 641 39.95 -91.20 + 1338 3470 634 40.48 -88.92 + 1339 3487 638 40.12 -87.60 + 1340 3413 675 37.23 -93.38 + 1341 3428 655 38.82 -92.22 + 1342 3451 668 37.77 -90.43 + 1343 3434 664 38.13 -91.77 + 1344 3424 664 38.10 -92.55 + 1345 3396 649 39.32 -94.72 + 1346 3398 651 39.12 -94.60 + 1347 3394 655 38.83 -94.89 + 1348 3394 643 39.77 -94.92 + 1349 3361 670 37.65 -97.43 + 1350 3356 665 38.07 -97.87 + 1351 3386 670 37.66 -95.48 + 1352 3363 665 38.06 -97.28 + 1353 3329 668 37.77 -99.97 + 1354 3319 666 37.93 -100.72 + 1355 3316 678 37.04 -100.97 + 1356 3343 661 38.34 -98.86 + 1357 3338 655 38.85 -99.27 + 1358 3347 675 37.27 -98.55 + 1359 3371 651 39.13 -96.67 + 1360 3377 661 38.33 -96.19 + 1361 3385 652 39.07 -95.62 + 1362 3384 653 38.95 -95.67 + 1363 3359 646 39.55 -97.65 + 1364 3344 654 38.87 -98.82 + 1365 3359 655 38.80 -97.65 + 1366 3304 678 37.01 -101.88 + 1367 3253 673 37.45 -105.87 + 1368 3229 676 37.15 -107.75 + 1369 3227 666 37.95 -107.90 + 1370 3283 665 38.05 -103.52 + 1371 3294 665 38.07 -102.68 + 1372 3271 662 38.28 -104.52 + 1373 3307 648 39.37 -101.70 + 1374 3331 648 39.38 -99.83 + 1375 3268 655 38.82 -104.72 + 1376 3266 645 39.57 -104.85 + 1377 3240 644 39.65 -106.92 + 1378 3241 650 39.22 -106.87 + 1379 3240 659 38.53 -106.93 + 1380 3267 657 38.70 -104.77 + 1381 3266 643 39.75 -104.87 + 1382 3287 638 40.17 -103.22 + 1383 3263 641 39.91 -105.12 + 1384 3191 645 39.62 -110.75 + 1385 3207 670 37.62 -109.47 + 1386 3191 661 38.37 -110.72 + 1387 3156 678 37.04 -113.50 + 1388 3161 669 37.70 -113.10 + 1389 3173 669 37.70 -112.15 + 1390 3219 651 39.12 -108.53 + 1391 3227 659 38.50 -107.90 + 1392 3218 674 37.30 -108.67 + 1393 3269 634 40.43 -104.63 + 1394 3264 634 40.45 -105.01 + 1395 3198 653 39.00 -110.17 + 1396 3204 656 38.76 -109.75 + 1397 3167 648 39.33 -112.58 + 1398 3177 617 41.78 -111.85 + 1399 3093 674 37.37 -118.37 + 1400 3066 675 37.28 -120.52 + 1401 3053 659 38.52 -121.50 + 1402 3056 658 38.55 -121.30 + 1403 3052 657 38.70 -121.58 + 1404 3110 665 38.05 -117.08 + 1405 3090 658 38.55 -118.63 + 1406 3138 649 39.28 -114.85 + 1407 3143 670 37.62 -114.52 + 1408 3075 646 39.50 -119.78 + 1409 3075 645 39.57 -119.79 + 1410 3049 684 36.58 -121.85 + 1411 3052 683 36.66 -121.60 + 1412 3056 667 37.90 -121.25 + 1413 3049 669 37.70 -121.82 + 1414 3044 669 37.73 -122.22 + 1415 3042 670 37.62 -122.38 + 1416 3048 674 37.37 -121.93 + 1417 3036 659 38.52 -122.82 + 1418 3676 629 40.87 -72.86 + 1419 3659 631 40.70 -74.17 + 1420 3660 629 40.84 -74.07 + 1421 3663 630 40.77 -73.90 + 1422 3673 630 40.80 -73.10 + 1423 3663 619 41.63 -73.87 + 1424 3665 626 41.07 -73.69 + 1425 3660 621 41.50 -74.10 + 1426 3673 625 41.17 -73.12 + 1427 3676 624 41.27 -72.87 + 1428 3686 623 41.33 -72.05 + 1429 3692 625 41.17 -71.58 + 1430 3706 619 41.65 -70.52 + 1431 3712 625 41.25 -70.07 + 1432 3703 615 41.92 -70.73 + 1433 3700 618 41.68 -70.97 + 1434 3709 619 41.67 -70.28 + 1435 3694 618 41.73 -71.43 + 1436 3694 619 41.60 -71.42 + 1437 3678 615 41.93 -72.68 + 1438 3685 618 41.73 -72.18 + 1439 3683 607 42.57 -72.27 + 1440 3679 618 41.73 -72.65 + 1441 3701 607 42.58 -70.92 + 1442 3699 610 42.37 -71.03 + 1443 3689 611 42.27 -71.87 + 1444 3636 635 40.38 -75.97 + 1445 3626 637 40.20 -76.76 + 1446 3632 638 40.12 -76.29 + 1447 3599 625 41.18 -78.90 + 1448 3606 636 40.30 -78.32 + 1449 3599 636 40.32 -78.83 + 1450 3612 629 40.84 -77.85 + 1451 3639 623 41.33 -75.73 + 1452 3624 624 41.25 -76.92 + 1453 3651 618 41.70 -74.80 + 1454 3636 611 42.22 -75.98 + 1455 3630 608 42.48 -76.44 + 1456 3624 612 42.17 -76.90 + 1457 3675 595 43.53 -72.95 + 1458 3643 632 40.65 -75.43 + 1459 3664 605 42.75 -73.80 + 1460 3666 597 43.33 -73.62 + 1461 3642 580 44.68 -75.47 + 1462 3634 600 43.12 -76.12 + 1463 3644 600 43.15 -75.37 + 1464 3582 633 40.50 -80.22 + 1465 3579 630 40.77 -80.40 + 1466 3585 636 40.34 -79.93 + 1467 3592 636 40.28 -79.40 + 1468 3566 628 40.91 -81.43 + 1469 3594 612 42.15 -79.26 + 1470 3561 622 41.42 -81.87 + 1471 3552 629 40.82 -82.52 + 1472 3576 624 41.27 -80.67 + 1473 3582 613 42.08 -80.18 + 1474 3602 617 41.80 -78.62 + 1475 3586 622 41.38 -79.87 + 1476 3601 602 42.93 -78.73 + 1477 3598 600 43.10 -78.94 + 1478 3614 600 43.12 -77.67 + 1479 3483 615 41.98 -87.90 + 1480 3479 615 41.92 -88.25 + 1481 3479 640 40.03 -88.28 + 1482 3471 642 39.83 -88.87 + 1483 3461 631 40.66 -89.68 + 1484 3461 618 41.74 -89.68 + 1485 3518 627 41.00 -85.20 + 1486 3515 637 40.25 -85.40 + 1487 3490 619 41.62 -87.42 + 1488 3485 617 41.78 -87.75 + 1489 3487 616 41.87 -87.60 + 1490 3484 609 42.42 -87.87 + 1491 3504 618 41.70 -86.32 + 1492 3536 619 41.60 -83.80 + 1493 3538 627 41.02 -83.67 + 1494 3542 611 42.23 -83.33 + 1495 3546 609 42.42 -83.02 + 1496 3552 603 42.92 -82.53 + 1497 3483 545 47.45 -87.90 + 1498 3526 604 42.77 -84.60 + 1499 3527 611 42.27 -84.47 + 1500 3517 610 42.30 -85.25 + 1501 3468 612 42.20 -89.10 + 1502 3450 621 41.45 -90.52 + 1503 3435 616 41.88 -91.70 + 1504 3442 630 40.78 -91.13 + 1505 3410 620 41.53 -93.65 + 1506 3425 626 41.10 -92.45 + 1507 3387 630 40.75 -95.41 + 1508 3448 609 42.40 -90.70 + 1509 3434 598 43.28 -91.74 + 1510 3426 607 42.55 -92.40 + 1511 3414 600 43.15 -93.33 + 1512 3403 607 42.55 -94.20 + 1513 3390 607 42.60 -95.23 + 1514 3381 623 41.30 -95.90 + 1515 3370 629 40.84 -96.75 + 1516 3370 636 40.30 -96.75 + 1517 3350 627 40.97 -98.32 + 1518 3342 619 41.62 -98.95 + 1519 3341 631 40.73 -99.00 + 1520 3377 617 41.76 -96.18 + 1521 3385 639 40.08 -95.60 + 1522 3333 621 41.44 -99.64 + 1523 3361 615 41.98 -97.43 + 1524 3363 621 41.45 -97.34 + 1525 3345 608 42.47 -98.69 + 1526 3375 609 42.40 -96.38 + 1527 3375 623 41.32 -96.37 + 1528 3290 626 41.10 -102.98 + 1529 3320 625 41.13 -100.68 + 1530 3308 633 40.51 -101.62 + 1531 3337 634 40.45 -99.33 + 1532 3293 614 42.05 -102.80 + 1533 3289 604 42.83 -103.10 + 1534 3267 625 41.15 -104.82 + 1535 3256 623 41.32 -105.67 + 1536 3269 642 39.87 -104.67 + 1537 3282 616 41.87 -103.60 + 1538 3246 603 42.92 -106.47 + 1539 3207 634 40.43 -109.52 + 1540 3236 634 40.48 -107.22 + 1541 3230 646 39.53 -107.73 + 1542 3175 630 40.78 -111.97 + 1543 3178 637 40.22 -111.72 + 1544 3212 619 41.60 -109.07 + 1545 3236 617 41.80 -107.20 + 1546 3175 625 41.20 -112.02 + 1547 3217 604 42.82 -108.73 + 1548 3220 601 43.07 -108.47 + 1549 3187 624 41.28 -111.03 + 1550 3191 594 43.60 -110.73 + 1551 3167 603 42.92 -112.60 + 1552 3174 595 43.52 -112.07 + 1553 3122 577 44.88 -116.10 + 1554 3091 639 40.07 -118.57 + 1555 3149 631 40.73 -114.03 + 1556 3127 629 40.87 -115.73 + 1557 3127 629 40.83 -115.78 + 1558 3127 619 41.67 -115.78 + 1559 3101 628 40.90 -117.80 + 1560 3065 635 40.38 -120.57 + 1561 3064 649 39.28 -120.70 + 1562 3071 649 39.32 -120.13 + 1563 3072 654 38.90 -120.00 + 1564 3145 595 43.50 -114.30 + 1565 3143 608 42.48 -114.48 + 1566 3152 607 42.55 -113.77 + 1567 3050 612 42.15 -121.73 + 1568 3032 651 39.13 -123.20 + 1569 3044 638 40.15 -122.25 + 1570 3043 633 40.50 -122.30 + 1571 3020 627 40.98 -124.10 + 1572 3018 617 41.78 -124.23 + 1573 3066 621 41.50 -120.53 + 1574 3036 610 42.37 -122.87 + 1575 3693 599 43.20 -71.50 + 1576 3702 600 43.08 -70.82 + 1577 3708 593 43.65 -70.32 + 1578 3703 596 43.40 -70.72 + 1579 3733 583 44.45 -68.37 + 1580 3724 588 44.07 -69.10 + 1581 3751 577 44.92 -67.00 + 1582 3734 547 47.28 -68.32 + 1583 3727 578 44.80 -68.83 + 1584 3680 597 43.35 -72.52 + 1585 3683 593 43.63 -72.30 + 1586 3693 584 44.36 -71.55 + 1587 3687 583 44.42 -72.02 + 1588 3680 586 44.20 -72.57 + 1589 3694 594 43.57 -71.42 + 1590 3697 581 44.58 -71.18 + 1591 3683 603 42.90 -72.27 + 1592 3672 583 44.47 -73.15 + 1593 3706 582 44.53 -70.53 + 1594 3709 588 44.05 -70.28 + 1595 3715 585 44.32 -69.80 + 1596 3718 570 45.47 -69.58 + 1597 3729 568 45.65 -68.68 + 1598 3668 580 44.65 -73.47 + 1599 3650 577 44.93 -74.85 + 1600 3636 589 44.00 -76.01 + 1601 3659 584 44.38 -74.19 + 1602 3540 605 42.70 -83.47 + 1603 3524 577 44.90 -84.72 + 1604 3514 603 42.88 -85.52 + 1605 3502 612 42.14 -86.44 + 1606 3513 611 42.23 -85.55 + 1607 3504 599 43.17 -86.25 + 1608 3536 602 42.97 -83.75 + 1609 3541 606 42.67 -83.42 + 1610 3532 595 43.53 -84.08 + 1611 3525 584 44.36 -84.67 + 1612 3515 585 44.28 -85.42 + 1613 3504 585 44.28 -86.25 + 1614 3513 579 44.73 -85.58 + 1615 3539 575 45.07 -83.57 + 1616 3541 583 44.45 -83.40 + 1617 3483 602 42.95 -87.90 + 1618 3465 600 43.13 -89.33 + 1619 3469 606 42.62 -89.04 + 1620 3454 599 43.21 -90.18 + 1621 3440 590 43.87 -91.25 + 1622 3438 578 44.87 -91.48 + 1623 3424 590 43.92 -92.50 + 1624 3480 583 44.48 -88.13 + 1625 3486 587 44.13 -87.68 + 1626 3475 589 43.98 -88.55 + 1627 3461 577 44.93 -89.63 + 1628 3461 579 44.78 -89.67 + 1629 3494 567 45.73 -87.08 + 1630 3487 574 45.12 -87.63 + 1631 3411 578 44.85 -93.57 + 1632 3370 594 43.58 -96.73 + 1633 3369 585 44.31 -96.82 + 1634 3362 603 42.92 -97.38 + 1635 3337 591 43.80 -99.32 + 1636 3351 584 44.38 -98.22 + 1637 3354 592 43.77 -98.03 + 1638 3365 577 44.92 -97.15 + 1639 3404 569 45.55 -94.07 + 1640 3404 558 46.40 -94.13 + 1641 3391 582 44.55 -95.08 + 1642 3387 565 45.87 -95.40 + 1643 3382 583 44.45 -95.82 + 1644 3399 585 44.32 -94.50 + 1645 3401 564 45.95 -94.35 + 1646 3415 577 44.88 -93.22 + 1647 3417 577 44.95 -93.07 + 1648 3406 586 44.22 -93.91 + 1649 3400 593 43.65 -94.42 + 1650 3413 593 43.68 -93.37 + 1651 3349 570 45.45 -98.43 + 1652 3289 588 44.06 -103.05 + 1653 3258 584 44.35 -105.53 + 1654 3239 579 44.77 -106.97 + 1655 3195 582 44.54 -110.42 + 1656 3227 589 43.97 -107.95 + 1657 3259 570 45.45 -105.40 + 1658 3267 549 47.13 -104.80 + 1659 3323 569 45.55 -100.41 + 1660 3325 584 44.38 -100.28 + 1661 3301 564 45.93 -102.17 + 1662 3213 582 44.52 -109.02 + 1663 3199 607 42.58 -110.11 + 1664 3186 580 44.68 -111.12 + 1665 3219 566 45.80 -108.53 + 1666 3207 550 47.05 -109.47 + 1667 3168 564 45.95 -112.50 + 1668 3168 573 45.25 -112.55 + 1669 3186 566 45.78 -111.15 + 1670 3195 567 45.70 -110.45 + 1671 3121 594 43.57 -116.22 + 1672 3086 594 43.58 -118.95 + 1673 3058 585 44.25 -121.15 + 1674 3151 574 45.12 -113.88 + 1675 3122 564 45.95 -116.13 + 1676 3087 567 45.68 -118.85 + 1677 3100 578 44.83 -117.82 + 1678 3030 599 43.23 -123.35 + 1679 3018 596 43.42 -124.25 + 1680 3031 587 44.12 -123.22 + 1681 3034 577 44.92 -123.00 + 1682 3021 581 44.58 -124.06 + 1683 3039 568 45.60 -122.60 + 1684 3042 569 45.55 -122.40 + 1685 3035 569 45.53 -122.95 + 1686 3058 568 45.62 -121.17 + 1687 3741 562 46.12 -67.80 + 1688 3719 555 46.62 -69.53 + 1689 3738 552 46.87 -68.01 + 1690 3737 554 46.68 -68.05 + 1691 3529 557 46.47 -84.37 + 1692 3527 560 46.25 -84.47 + 1693 3523 569 45.57 -84.80 + 1694 3463 568 45.63 -89.47 + 1695 3488 556 46.53 -87.55 + 1696 3490 559 46.35 -87.40 + 1697 3481 565 45.82 -88.12 + 1698 3476 548 47.17 -88.50 + 1699 3455 556 46.53 -90.13 + 1700 3429 552 46.83 -92.18 + 1701 3420 545 47.38 -92.83 + 1702 3381 552 46.83 -95.89 + 1703 3433 540 47.82 -91.83 + 1704 3413 530 48.57 -93.38 + 1705 3397 528 48.73 -94.62 + 1706 3369 552 46.90 -96.80 + 1707 3345 551 46.93 -98.68 + 1708 3393 544 47.50 -94.93 + 1709 3388 526 48.93 -95.33 + 1710 3365 538 47.95 -97.18 + 1711 3343 536 48.10 -98.87 + 1712 3319 553 46.77 -100.75 + 1713 3293 553 46.80 -102.80 + 1714 3282 535 48.18 -103.63 + 1715 3312 534 48.27 -101.28 + 1716 3310 542 47.65 -101.43 + 1717 3244 535 48.22 -106.62 + 1718 3240 546 47.33 -106.93 + 1719 3257 536 48.10 -105.58 + 1720 3275 541 47.70 -104.20 + 1721 3175 555 46.60 -112.00 + 1722 3148 551 46.92 -114.08 + 1723 3183 544 47.48 -111.37 + 1724 3203 530 48.55 -109.77 + 1725 3146 534 48.30 -114.27 + 1726 3170 530 48.60 -112.37 + 1727 3066 556 46.57 -120.53 + 1728 3055 547 47.28 -121.33 + 1729 3072 545 47.40 -120.02 + 1730 3070 545 47.40 -120.20 + 1731 3079 546 47.30 -119.52 + 1732 3081 548 47.20 -119.32 + 1733 3111 558 46.38 -117.02 + 1734 3113 540 47.77 -116.82 + 1735 3082 559 46.32 -119.27 + 1736 3084 560 46.27 -119.12 + 1737 3095 562 46.10 -118.28 + 1738 3104 542 47.63 -117.53 + 1739 3107 542 47.68 -117.32 + 1740 3109 553 46.75 -117.12 + 1741 3103 541 47.70 -117.60 + 1742 3100 530 48.55 -117.88 + 1743 3066 550 47.03 -120.53 + 1744 3028 536 48.12 -123.50 + 1745 3079 532 48.42 -119.53 + 1746 3023 561 46.15 -123.88 + 1747 3035 551 46.97 -122.90 + 1748 3022 551 46.97 -123.93 + 1749 3035 562 46.12 -122.94 + 1750 3043 545 47.45 -122.30 + 1751 3044 544 47.50 -122.22 + 1752 3043 543 47.53 -122.30 + 1753 3043 539 47.90 -122.28 + 1754 3039 547 47.27 -122.58 + 1755 3567 798 27.65 -81.33 + 1756 3014 538 47.95 -124.55 + 1757 3040 527 48.80 -122.53 + 1758 3163 638 40.17 -112.93 + 1759 3253 558 46.43 -105.87 + 1760 3387 580 44.67 -95.45 + 1761 3450 599 43.22 -90.53 + 1762 3639 588 44.05 -75.73 + 1763 3709 590 43.90 -70.25 + 1764 3694 602 42.93 -71.43 + 1765 3249 616 41.90 -106.19 + 1766 3320 639 40.09 -100.65 + 1767 3307 603 42.91 -101.69 + 1768 3363 639 40.10 -97.34 + 1769 3357 612 42.21 -97.79 + 1770 3409 616 41.90 -93.70 + 1771 3449 619 41.61 -90.57 + 1772 3533 642 39.82 -84.03 + 1773 3476 617 41.77 -88.48 + 1774 3494 630 40.81 -87.05 + 1775 3515 655 38.83 -85.42 + 1776 3664 632 40.65 -73.78 + 1777 3696 608 42.47 -71.28 + 1778 3698 605 42.72 -71.12 + 1779 3680 612 42.20 -72.53 + 1780 3678 612 42.15 -72.72 + 1781 3714 619 41.67 -69.97 + 1782 3662 603 42.85 -73.93 + 1783 3301 668 37.77 -102.18 + 1784 3267 653 38.97 -104.82 + 1785 3281 649 39.26 -103.70 + 1786 3268 638 40.18 -104.72 + 1787 3340 670 37.65 -99.09 + 1788 3384 673 37.38 -95.63 + 1789 3363 662 38.31 -97.30 + 1790 3422 672 37.52 -92.70 + 1791 3403 645 39.58 -94.19 + 1792 3450 644 39.66 -90.48 + 1793 3465 638 40.15 -89.33 + 1794 3650 652 39.02 -74.92 + 1795 3102 695 35.68 -117.68 + 1796 3247 737 32.41 -106.35 + 1797 3227 680 36.84 -107.91 + 1798 3338 690 36.07 -99.22 + 1799 3335 686 36.43 -99.53 + 1800 3361 682 36.69 -97.48 + 1801 3381 695 35.68 -95.86 + 1802 3360 704 34.98 -97.52 + 1803 3457 680 36.88 -89.97 + 1804 3502 679 36.97 -86.42 + 1805 3633 688 36.27 -76.18 + 1806 3129 732 32.83 -115.58 + 1807 3122 721 33.63 -116.17 + 1808 3140 722 33.62 -114.72 + 1809 3282 703 35.08 -103.61 + 1810 3250 728 33.08 -106.12 + 1811 3247 731 32.90 -106.40 + 1812 3316 729 33.02 -100.98 + 1813 3331 762 30.50 -99.77 + 1814 3383 745 31.78 -95.71 + 1815 3402 715 34.11 -94.29 + 1816 3421 744 31.90 -92.78 + 1817 3468 763 30.40 -89.07 + 1818 3471 716 34.09 -88.86 + 1819 3564 744 31.90 -81.63 + 1820 3546 757 30.89 -83.01 + 1821 3578 717 33.97 -80.47 + 1822 3598 721 33.68 -78.93 + 1823 3601 719 33.82 -78.72 + 1824 3577 788 28.47 -80.55 + 1825 3111 735 32.55 -116.97 + 1826 3133 734 32.63 -115.24 + 1827 3246 747 31.63 -106.43 + 1828 3094 782 28.88 -118.30 + 1829 3188 780 29.07 -110.97 + 1830 3252 785 28.70 -105.97 + 1831 3171 802 27.32 -112.30 + 1832 3189 794 27.97 -110.93 + 1833 3190 794 27.95 -110.80 + 1834 3334 801 27.43 -99.57 + 1835 3351 819 26.02 -98.23 + 1836 3284 825 25.53 -103.45 + 1837 3326 821 25.87 -100.20 + 1838 3327 822 25.78 -100.10 + 1839 3360 822 25.77 -97.53 + 1840 3195 843 24.17 -110.42 + 1841 3196 844 24.07 -110.37 + 1842 3204 856 23.15 -109.70 + 1843 3234 834 24.82 -107.40 + 1844 3271 843 24.13 -104.53 + 1845 3246 855 23.20 -106.42 + 1846 3248 855 23.17 -106.27 + 1847 3340 848 23.73 -99.13 + 1848 3342 848 23.72 -98.97 + 1849 3294 859 22.90 -102.68 + 1850 3316 868 22.15 -100.98 + 1851 3356 867 22.28 -97.87 + 1852 3299 872 21.88 -102.30 + 1853 3497 883 21.03 -86.87 + 1854 3261 887 20.68 -105.25 + 1855 3286 889 20.52 -103.32 + 1856 3461 883 20.98 -89.65 + 1857 3496 889 20.53 -86.93 + 1858 3270 907 19.15 -104.57 + 1859 3315 898 19.85 -101.03 + 1860 3334 904 19.35 -99.57 + 1861 3340 903 19.43 -99.10 + 1862 3377 907 19.15 -96.18 + 1863 3398 920 18.10 -94.58 + 1864 3433 913 18.65 -91.80 + 1865 3310 927 17.60 -101.47 + 1866 3330 937 16.83 -99.92 + 1867 3332 937 16.77 -99.75 + 1868 3376 950 15.78 -96.27 + 1869 3426 963 14.78 -92.38 + 1870 3781 738 32.37 -64.68 + 1871 3598 810 26.70 -78.97 + 1872 3601 812 26.55 -78.69 + 1873 3593 823 25.73 -79.30 + 1874 3617 831 25.05 -77.47 + 1875 3639 851 23.50 -75.76 + 1876 3549 873 21.83 -82.78 + 1877 3554 858 22.98 -82.40 + 1878 3568 856 23.13 -81.28 + 1879 3612 878 21.42 -77.85 + 1880 3621 892 20.33 -77.12 + 1881 3628 891 20.40 -76.62 + 1882 3638 896 19.96 -75.85 + 1883 3647 895 20.08 -75.15 + 1884 3655 891 20.35 -74.50 + 1885 3650 888 20.65 -74.92 + 1886 3565 875 21.62 -81.55 + 1887 3600 873 21.78 -78.78 + 1888 3624 884 20.95 -76.94 + 1889 3647 897 19.90 -75.12 + 1890 3567 905 19.28 -81.35 + 1891 3611 915 18.50 -77.92 + 1892 3626 922 17.93 -76.78 + 1893 3685 899 19.75 -72.18 + 1894 3683 914 18.57 -72.30 + 1895 3705 899 19.75 -70.55 + 1896 3704 903 19.46 -70.69 + 1897 3733 914 18.57 -68.37 + 1898 3717 916 18.43 -69.67 + 1899 3714 916 18.47 -69.88 + 1900 3749 915 18.50 -67.12 + 1901 3749 918 18.27 -67.15 + 1902 3756 921 18.02 -66.57 + 1903 3764 916 18.43 -66.00 + 1904 3777 917 18.33 -64.97 + 1905 3779 925 17.70 -64.80 + 1906 3783 916 18.45 -64.53 + 1907 3478 928 17.53 -88.30 + 1908 3458 935 16.92 -89.88 + 1909 3438 956 15.32 -91.47 + 1910 3474 951 15.72 -88.60 + 1911 3450 965 14.58 -90.52 + 1912 3446 974 13.92 -90.82 + 1913 3459 978 13.57 -89.83 + 1914 3468 977 13.70 -89.12 + 1915 3469 980 13.43 -89.05 + 1916 3486 982 13.28 -87.67 + 1917 3509 941 16.46 -85.92 + 1918 3501 943 16.32 -86.53 + 1919 3497 951 15.73 -86.87 + 1920 3489 951 15.72 -87.48 + 1921 3493 958 15.17 -87.12 + 1922 3483 954 15.45 -87.93 + 1923 3536 957 15.22 -83.80 + 1924 3509 961 14.90 -85.93 + 1925 3472 963 14.78 -88.78 + 1926 3480 969 14.33 -88.17 + 1927 3492 972 14.05 -87.22 + 1928 3493 982 13.30 -87.18 + 1929 3541 972 14.05 -83.37 + 1930 3506 996 12.15 -86.17 + 1931 3523 1024 9.97 -84.78 + 1932 3530 1024 10.00 -84.22 + 1933 3531 1025 9.95 -84.15 + 1934 3545 1024 10.00 -83.05 + 1935 3513 1016 10.60 -85.55 + 1936 3552 1031 9.43 -82.52 + 1937 3593 1036 9.05 -79.37 + 1938 3554 1045 8.39 -82.42 + 1939 3556 1032 9.35 -82.25 + 1940 3572 1049 8.08 -80.94 + 1941 3591 1037 8.97 -79.51 + 1942 3801 919 18.20 -63.05 + 1943 3813 938 16.75 -62.17 + 1944 3806 931 17.29 -62.68 + 1945 3807 932 17.20 -62.58 + 1946 3818 933 17.12 -61.78 + 1947 3801 921 18.04 -63.12 + 1948 3802 928 17.48 -62.98 + 1949 3804 923 17.90 -62.85 + 1950 3821 944 16.27 -61.52 + 1951 3824 953 15.53 -61.30 + 1952 3823 953 15.53 -61.40 + 1953 3823 956 15.30 -61.40 + 1954 3847 985 13.07 -59.48 + 1955 3712 992 12.50 -70.01 + 1956 3726 996 12.20 -68.97 + 1957 3735 996 12.15 -68.28 + 1958 3562 991 12.58 -81.72 + 1959 3658 1010 11.13 -74.23 + 1960 3642 1018 10.45 -75.52 + 1961 3651 1012 10.90 -74.77 + 1962 3672 1061 7.10 -73.20 + 1963 3641 1072 6.22 -75.60 + 1964 3643 1073 6.18 -75.43 + 1965 3638 1090 4.82 -75.80 + 1966 3660 1092 4.70 -74.13 + 1967 3690 1017 10.57 -71.73 + 1968 3751 1016 10.60 -66.98 + 1969 3832 1188 -2.83 -60.70 + 1970 3988 1170 -1.43 -48.48 + 1971 3841 1192 -3.15 -59.98 + 1972 4115 1200 -3.78 -38.53 + 1973 3979 1223 -5.53 -49.15 + 1974 4060 1217 -5.05 -42.82 + 1975 4157 1228 -5.92 -35.25 + 1976 4095 1253 -7.88 -40.08 + 1977 3791 1263 -8.70 -63.90 + 1978 3978 1258 -8.27 -49.28 + 1979 4041 1268 -9.07 -44.37 + 1980 3989 1289 -10.70 -48.40 + 1981 4115 1318 -13.00 -38.52 + 1982 3890 1352 -15.65 -56.10 + 1983 4005 1446 -23.00 -47.13 + 1984 3980 1438 -22.32 -49.07 + 1985 4056 1445 -22.90 -43.17 + 1986 4011 1454 -23.62 -46.65 + 1987 3953 1537 -30.08 -51.18 + 1988 3461 1164 -0.90 -89.62 + 1989 3606 1154 -0.12 -78.35 + 1990 3586 1180 -2.15 -79.88 + 1991 3596 1255 -8.08 -79.12 + 1992 3623 1306 -12.02 -77.03 + 1993 3779 1341 -14.75 -64.80 + 1994 3736 1363 -16.50 -68.17 + 1995 3703 1579 -33.38 -70.78 + 1996 3697 1600 -34.97 -71.22 + 1997 3874 1474 -25.16 -57.38 + 1998 3853 1503 -27.45 -59.05 + 1999 3831 1573 -32.92 -60.78 + 2000 3859 1598 -34.82 -58.53 + 2001 3745 1738 -45.78 -67.45 + 2002 2569 871 21.98 -159.35 + 2003 2585 879 21.32 -158.07 + 2004 2587 879 21.35 -157.93 + 2005 2598 881 21.15 -157.10 + 2006 2606 884 20.90 -156.43 + 2007 1854 981 13.35 144.80 + 2008 1866 958 15.12 145.73 + 2009 2134 905 19.28 166.65 + 2010 2624 900 19.72 -155.07 + 2011 1944 1056 7.47 151.85 + 2012 2026 1063 6.97 158.22 + 2013 2087 1084 5.33 163.03 + 2014 2147 1040 8.73 167.73 + 2015 2194 1061 7.08 171.38 + 2016 1722 1058 7.33 134.48 + 2017 1768 1031 9.48 138.08 + 2018 1859 970 14.20 145.20 + 2019 1864 960 15.00 145.60 + 2020 1865 911 18.80 145.70 + 2021 1725 1048 8.10 134.70 + 2022 1693 1084 5.30 132.20 + 2023 1760 1046 8.30 137.50 + 2024 1790 1024 10.00 139.80 + 2025 1799 1027 9.80 140.50 + 2026 1727 1057 7.40 134.90 + 2027 1851 1042 8.60 144.60 + 2028 1883 1057 7.40 147.10 + 2029 1910 1057 7.40 149.20 + 2030 1917 1042 8.60 149.70 + 2031 1945 1042 8.60 151.90 + 2032 1955 1064 6.90 152.70 + 2033 1969 1082 5.50 153.80 + 2034 1984 1103 3.80 155.00 + 2035 2014 1078 5.80 157.30 + 2036 2022 1062 7.00 157.90 + 2037 2046 1065 6.80 159.80 + 2038 2057 1073 6.20 160.70 + 2039 2080 1001 11.80 162.50 + 2040 2121 1038 8.90 165.70 + 2041 2161 1059 7.30 168.80 + 2042 2171 1076 5.90 169.60 + 2043 2174 1009 11.20 169.80 + 2044 2179 1030 9.50 170.20 + 2045 2200 1074 6.10 171.80 + 2046 2804 1383 -18.07 -140.95 + 2047 2238 1626 -37.02 174.80 + 2048 1676 1311 -12.42 130.87 + 2049 1955 1506 -27.63 152.72 + 2050 1485 1561 -31.92 115.97 + 2051 1936 1587 -33.95 151.18 + 2052 1854 1634 -37.67 144.83 + 2053 1907 1605 -35.40 148.98 + 2054 1888 1700 -42.83 147.50 + 2055 1368 1231 -6.15 106.85 + 2056 3494 750 31.42 -87.05 + 2057 1544 958 15.18 120.57 + 2058 1549 966 14.52 121.00 + 2059 1563 1064 6.90 122.07 + 2060 3615 723 33.49 -77.59 + 2061 3143 776 29.37 -114.47 + 2062 3156 636 40.33 -113.50 + 2063 3591 702 35.17 -79.50 + 2064 3307 527 48.83 -101.67 + 2065 4600 586 44.22 -0.67 + 2066 276 1510 -28.00 21.50 + 2067 3738 1671 -40.50 -68.00 + 2068 3847 1502 -27.33 -59.50 + 2069 1728 1513 -28.23 134.98 + 2070 4262 657 38.70 -27.10 + 2071 2691 368 61.20 -149.80 + 2072 4424 1253 -7.90 -14.40 + 2073 1784 695 35.70 139.30 + 2074 3911 526 48.90 -54.50 + 2075 63 595 43.50 4.90 + 2076 4495 477 52.70 -8.90 + 2077 1694 1338 -14.50 132.30 + 2078 4507 664 38.10 -7.90 + 2079 1544 842 24.20 120.60 + 2080 1293 989 12.70 101.00 + 2081 533 892 20.30 41.60 + 2082 2424 1335 -14.30 -170.70 + 2083 3721 1813 -51.60 -69.30 + 2084 3208 1500 -27.20 -109.40 + 2085 1133 863 22.60 88.50 + 2086 4162 1256 -8.10 -34.90 + 2087 4013 1452 -23.40 -46.50 + 2088 1023 1060 7.20 79.90 + 2089 3751 1016 10.60 -67.00 + 2090 3938 1091 4.80 -52.40 + 2091 932 907 19.10 72.80 + 2092 608 1393 -18.80 47.50 + 2093 3189 740 32.20 -110.90 + 2094 3289 587 44.10 -103.10 + 2095 2727 325 64.60 -147.00 + 2096 3065 706 34.80 -120.60 + 2097 3097 709 34.60 -118.10 + 2098 3156 637 40.19 -113.47 + 2099 887 705 34.95 69.27 + 2100 4592 476 52.83 -1.32 + 2101 93 1037 9.01 7.26 + 2102 3118 850 23.61 -116.48 + 2103 814 563 46.00 63.56 + 2104 867 542 47.67 67.73 + 2105 2611 899 19.73 -156.05 + 2106 2875 394 59.23 -135.43 + 2107 2736 369 61.13 -146.25 + 2108 2600 886 20.78 -156.95 + 2109 2604 883 21.02 -156.63 + 2110 3757 923 17.85 -66.52 + 2111 3749 919 18.17 -67.15 + 2112 3417 701 35.25 -93.09 + 2113 1641 1351 -15.51 128.15 + 2114 4514 416 57.48 -7.36 + 2115 130 456 54.38 10.13 diff --git a/scripts/exgdas_atmos_chgres_forenkf.sh b/scripts/exgdas_atmos_chgres_forenkf.sh index 40f702beb2..45c6be973d 100755 --- a/scripts/exgdas_atmos_chgres_forenkf.sh +++ b/scripts/exgdas_atmos_chgres_forenkf.sh @@ -17,7 +17,7 @@ # ################################################################################ -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Directories. pwd=$(pwd) @@ -40,7 +40,7 @@ export NCP=${NCP:-"/bin/cp"} export NMV=${NMV:-"/bin/mv"} export NLN=${NLN:-"/bin/ln -sf"} export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} -export NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} +export NCLEN=${NCLEN:-${USHgfs}/getncdimlen} # IAU DOIAU=${DOIAU:-"NO"} @@ -48,7 +48,7 @@ export IAUFHRS=${IAUFHRS:-"6"} # Dependent Scripts and Executables export APRUN_CHGRES=${APRUN_CHGRES:-${APRUN:-""}} -export CHGRESNCEXEC=${CHGRESNCEXEC:-$HOMEgfs/exec/enkf_chgres_recenter_nc.x} +export CHGRESNCEXEC=${CHGRESNCEXEC:-${EXECgfs}/enkf_chgres_recenter_nc.x} export NTHREADS_CHGRES=${NTHREADS_CHGRES:-1} APRUNCFP=${APRUNCFP:-""} diff --git a/scripts/exgdas_atmos_gempak_gif_ncdc.sh b/scripts/exgdas_atmos_gempak_gif_ncdc.sh index 63a7475a0e..1fb9c94ccf 100755 --- a/scripts/exgdas_atmos_gempak_gif_ncdc.sh +++ b/scripts/exgdas_atmos_gempak_gif_ncdc.sh @@ -10,7 +10,7 @@ source "$HOMEgfs/ush/preamble.sh" cd $DATA -export NTS=$USHgempak/restore +export NTS=${HOMEgfs}/gempak/ush/restore if [ $MODEL = GDAS ] then @@ -47,9 +47,9 @@ then if [ $cyc -eq 00 -o $cyc -eq 12 ] then - $USHgempak/gempak_${RUN}_f${fhr}_gif.sh - if [ ! -f $USHgempak/gempak_${RUN}_f${fhr}_gif.sh ] ; then - echo "WARNING: $USHgempak/gempak_${RUN}_f${fhr}_gif.sh FILE is missing" + ${HOMEgfs}/gempak/ush/gempak_${RUN}_f${fhr}_gif.sh + if [ ! -f ${HOMEgfs}/gempak/ush/gempak_${RUN}_f${fhr}_gif.sh ] ; then + echo "WARNING: ${HOMEgfs}/gempak/ush/gempak_${RUN}_f${fhr}_gif.sh FILE is missing" fi fi diff --git a/scripts/exgdas_atmos_nawips.sh b/scripts/exgdas_atmos_nawips.sh index 83781bac5b..64a2b21e39 100755 --- a/scripts/exgdas_atmos_nawips.sh +++ b/scripts/exgdas_atmos_nawips.sh @@ -10,7 +10,7 @@ # echo " data on the CCS is properly protected." ##################################################################### -source "$HOMEgfs/ush/preamble.sh" "${2}" +source "${USHgfs}/preamble.sh" "${2}" cd $DATA RUN2=$1 diff --git a/scripts/exgdas_atmos_verfozn.sh b/scripts/exgdas_atmos_verfozn.sh index 1810fdef5d..e681fc55c5 100755 --- a/scripts/exgdas_atmos_verfozn.sh +++ b/scripts/exgdas_atmos_verfozn.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ################################################################################ # exgdas_atmos_verfozn.sh diff --git a/scripts/exgdas_atmos_verfrad.sh b/scripts/exgdas_atmos_verfrad.sh index 1ff01ccfa9..bad8715acd 100755 --- a/scripts/exgdas_atmos_verfrad.sh +++ b/scripts/exgdas_atmos_verfrad.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ################################################################################ #### UNIX Script Documentation Block @@ -131,15 +131,6 @@ if [[ -s ${radstat} && -s ${biascr} ]]; then "${USHgfs}/radmon_verf_time.sh" rc_time=$? - #-------------------------------------- - # optionally run clean_tankdir script - # - if [[ ${CLEAN_TANKVERF:-0} -eq 1 ]]; then - "${USHradmon}/clean_tankdir.sh" glb 60 - rc_clean_tankdir=$? - echo "rc_clean_tankdir = ${rc_clean_tankdir}" - fi - fi diff --git a/scripts/exgdas_enkf_earc.sh b/scripts/exgdas_enkf_earc.sh index 199b5609a2..3e54c658e9 100755 --- a/scripts/exgdas_enkf_earc.sh +++ b/scripts/exgdas_enkf_earc.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ############################################## # Begin JOB SPECIFIC work @@ -15,16 +15,16 @@ if [ "${EARCICS_CYC}" -lt 0 ]; then EARCICS_CYC=$((EARCICS_CYC+24)) fi -"${HOMEgfs}/ush/hpssarch_gen.sh" "${RUN}" +"${USHgfs}/hpssarch_gen.sh" "${RUN}" status=$? if [ "${status}" -ne 0 ]; then - echo "${HOMEgfs}/ush/hpssarch_gen.sh ${RUN} failed, ABORT!" + echo "${USHgfs}/hpssarch_gen.sh ${RUN} failed, ABORT!" exit "${status}" fi cd "${ROTDIR}" || exit 2 -source "${HOMEgfs}/ush/file_utils.sh" +source "${USHgfs}/file_utils.sh" ################################################################### # ENSGRP > 0 archives a group of ensemble members diff --git a/scripts/exgdas_enkf_ecen.sh b/scripts/exgdas_enkf_ecen.sh index 59021debaa..ff25c78b7c 100755 --- a/scripts/exgdas_enkf_ecen.sh +++ b/scripts/exgdas_enkf_ecen.sh @@ -17,7 +17,7 @@ # ################################################################################ -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Directories. pwd=$(pwd) @@ -31,16 +31,16 @@ ntiles=${ntiles:-6} # Utilities NCP=${NCP:-"/bin/cp -p"} NLN=${NLN:-"/bin/ln -sf"} -NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} +NCLEN=${NCLEN:-${USHgfs}/getncdimlen} # Scripts # Executables. -GETATMENSMEANEXEC=${GETATMENSMEANEXEC:-$HOMEgfs/exec/getsigensmeanp_smooth.x} -GETSFCENSMEANEXEC=${GETSFCENSMEANEXEC:-$HOMEgfs/exec/getsfcensmeanp.x} -RECENATMEXEC=${RECENATMEXEC:-$HOMEgfs/exec/recentersigp.x} -CALCINCNEMSEXEC=${CALCINCNEMSEXEC:-$HOMEgfs/exec/calc_increment_ens.x} -CALCINCNCEXEC=${CALCINCEXEC:-$HOMEgfs/exec/calc_increment_ens_ncio.x} +GETATMENSMEANEXEC=${GETATMENSMEANEXEC:-${EXECgfs}/getsigensmeanp_smooth.x} +GETSFCENSMEANEXEC=${GETSFCENSMEANEXEC:-${EXECgfs}/getsfcensmeanp.x} +RECENATMEXEC=${RECENATMEXEC:-${EXECgfs}/recentersigp.x} +CALCINCNEMSEXEC=${CALCINCNEMSEXEC:-${EXECgfs}/calc_increment_ens.x} +CALCINCNCEXEC=${CALCINCEXEC:-${EXECgfs}/calc_increment_ens_ncio.x} # Files. OPREFIX=${OPREFIX:-""} @@ -66,14 +66,14 @@ else fi # global_chgres stuff -CHGRESNEMS=${CHGRESNEMS:-$HOMEgfs/exec/enkf_chgres_recenter.x} -CHGRESNC=${CHGRESNC:-$HOMEgfs/exec/enkf_chgres_recenter_nc.x} +CHGRESNEMS=${CHGRESNEMS:-${EXECgfs}/enkf_chgres_recenter.x} +CHGRESNC=${CHGRESNC:-${EXECgfs}/enkf_chgres_recenter_nc.x} NTHREADS_CHGRES=${NTHREADS_CHGRES:-24} APRUN_CHGRES=${APRUN_CHGRES:-""} # global_cycle stuff -CYCLESH=${CYCLESH:-$HOMEgfs/ush/global_cycle.sh} -export CYCLEXEC=${CYCLEXEC:-$HOMEgfs/exec/global_cycle} +CYCLESH=${CYCLESH:-${USHgfs}/global_cycle.sh} +export CYCLEXEC=${CYCLEXEC:-${EXECgfs}/global_cycle} APRUN_CYCLE=${APRUN_CYCLE:-${APRUN:-""}} NTHREADS_CYCLE=${NTHREADS_CYCLE:-${NTHREADS:-1}} export CYCLVARS=${CYCLVARS:-"FSNOL=-2.,FSNOS=99999.,"} diff --git a/scripts/exgdas_enkf_post.sh b/scripts/exgdas_enkf_post.sh index f240ae561d..1819502c45 100755 --- a/scripts/exgdas_enkf_post.sh +++ b/scripts/exgdas_enkf_post.sh @@ -17,7 +17,7 @@ # ################################################################################ -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Directories. pwd=$(pwd) @@ -37,8 +37,8 @@ LEVS=${LEVS:-64} HYBENSMOOTH=${HYBENSMOOTH:-${FIXgfs}/gsi/global_hybens_smoothinfo.l${LEVS}.txt} # Executables. -GETATMENSMEANEXEC=${GETATMENSMEANEXEC:-$HOMEgfs/exec/getsigensmeanp_smooth.x} -GETSFCENSMEANEXEC=${GETSFCENSMEANEXEC:-$HOMEgfs/exec/getsfcensmeanp.x} +GETATMENSMEANEXEC=${GETATMENSMEANEXEC:-${EXECgfs}/getsigensmeanp_smooth.x} +GETSFCENSMEANEXEC=${GETSFCENSMEANEXEC:-${EXECgfs}/getsfcensmeanp.x} # Other variables. PREFIX=${PREFIX:-""} diff --git a/scripts/exgdas_enkf_select_obs.sh b/scripts/exgdas_enkf_select_obs.sh index 2ad624bcdb..782838df6d 100755 --- a/scripts/exgdas_enkf_select_obs.sh +++ b/scripts/exgdas_enkf_select_obs.sh @@ -17,7 +17,7 @@ # ################################################################################ -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Directories. pwd=$(pwd) @@ -26,7 +26,7 @@ pwd=$(pwd) export NLN=${NLN:-"/bin/ln -sf"} # Scripts. -ANALYSISSH=${ANALYSISSH:-$HOMEgfs/scripts/exglobal_atmos_analysis.sh} +ANALYSISSH=${ANALYSISSH:-${SCRgfs}/exglobal_atmos_analysis.sh} # Select obs export RUN_SELECT=${RUN_SELECT:-"YES"} diff --git a/scripts/exgdas_enkf_sfc.sh b/scripts/exgdas_enkf_sfc.sh index 085ab35351..85d0b2187d 100755 --- a/scripts/exgdas_enkf_sfc.sh +++ b/scripts/exgdas_enkf_sfc.sh @@ -17,7 +17,7 @@ # ################################################################################ -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Directories. pwd=$(pwd) @@ -31,7 +31,7 @@ ntiles=${ntiles:-6} # Utilities NCP=${NCP:-"/bin/cp -p"} NLN=${NLN:-"/bin/ln -sf"} -NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} +NCLEN=${NCLEN:-${USHgfs}/getncdimlen} # Scripts @@ -50,8 +50,8 @@ NMEM_ENS=${NMEM_ENS:-80} DOIAU=${DOIAU_ENKF:-"NO"} # Global_cycle stuff -CYCLESH=${CYCLESH:-$HOMEgfs/ush/global_cycle.sh} -export CYCLEXEC=${CYCLEXEC:-$HOMEgfs/exec/global_cycle} +CYCLESH=${CYCLESH:-${USHgfs}/global_cycle.sh} +export CYCLEXEC=${CYCLEXEC:-${EXECgfs}/global_cycle} APRUN_CYCLE=${APRUN_CYCLE:-${APRUN:-""}} NTHREADS_CYCLE=${NTHREADS_CYCLE:-${NTHREADS:-1}} export CYCLVARS=${CYCLVARS:-"FSNOL=-2.,FSNOS=99999.,"} diff --git a/scripts/exgdas_enkf_update.sh b/scripts/exgdas_enkf_update.sh index 60d2592e4d..a23a892914 100755 --- a/scripts/exgdas_enkf_update.sh +++ b/scripts/exgdas_enkf_update.sh @@ -17,7 +17,7 @@ # ################################################################################ -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Directories. pwd=$(pwd) @@ -25,7 +25,7 @@ pwd=$(pwd) # Utilities NCP=${NCP:-"/bin/cp -p"} NLN=${NLN:-"/bin/ln -sf"} -NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} +NCLEN=${NCLEN:-${USHgfs}/getncdimlen} USE_CFP=${USE_CFP:-"NO"} CFP_MP=${CFP_MP:-"NO"} nm="" @@ -37,7 +37,7 @@ APRUN_ENKF=${APRUN_ENKF:-${APRUN:-""}} NTHREADS_ENKF=${NTHREADS_ENKF:-${NTHREADS:-1}} # Executables -ENKFEXEC=${ENKFEXEC:-$HOMEgfs/exec/enkf.x} +ENKFEXEC=${ENKFEXEC:-${EXECgfs}/enkf.x} # Cycling and forecast hour specific parameters CDATE=${CDATE:-"2001010100"} diff --git a/scripts/exgfs_atmos_awips_20km_1p0deg.sh b/scripts/exgfs_atmos_awips_20km_1p0deg.sh index 7546f3cabe..490875b2c4 100755 --- a/scripts/exgfs_atmos_awips_20km_1p0deg.sh +++ b/scripts/exgfs_atmos_awips_20km_1p0deg.sh @@ -19,7 +19,7 @@ # echo " " ############################################################################### -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" fcsthrs="$1" num=$# @@ -38,7 +38,7 @@ fi cd "${DATA}" || exit 2 # "Import" functions used in this script -source "${HOMEgfs}/ush/product_functions.sh" +source "${USHgfs}/product_functions.sh" ############################################### # Wait for the availability of the pgrb file @@ -91,7 +91,7 @@ export opt28=' -new_grid_interpolation budget -fi ' cp "${COM_ATMOS_GRIB_0p25}/gfs.t${cyc}z.pgrb2.0p25.f${fcsthrs}" "tmpfile2${fcsthrs}" cp "${COM_ATMOS_GRIB_0p25}/gfs.t${cyc}z.pgrb2b.0p25.f${fcsthrs}" "tmpfile2b${fcsthrs}" cat "tmpfile2${fcsthrs}" "tmpfile2b${fcsthrs}" > "tmpfile${fcsthrs}" -${WGRIB2} "tmpfile${fcsthrs}" | grep -F -f "${PARMproduct}/gfs_awips_parmlist_g2" | \ +${WGRIB2} "tmpfile${fcsthrs}" | grep -F -f "${PARMgfs}/product/gfs_awips_parmlist_g2" | \ ${WGRIB2} -i -grib masterfile "tmpfile${fcsthrs}" export err=$? if [[ $err -ne 0 ]]; then @@ -179,7 +179,7 @@ for GRID in conus ak prico pac 003; do export FORT31="awps_file_fi${fcsthrs}_${GRID}" export FORT51="grib2.awpgfs${fcsthrs}.${GRID}" - cp "${PARMwmo}/grib2_awpgfs${fcsthrs}.${GRID}" "parm_list" + cp "${PARMgfs}/wmo/grib2_awpgfs${fcsthrs}.${GRID}" "parm_list" if [[ ${DO_WAVE} != "YES" ]]; then # Remove wave field it not running wave model grep -vw "5WAVH" "parm_list" > "parm_list_temp" @@ -213,7 +213,7 @@ for GRID in conus ak prico pac 003; do export FORT31="awps_file_fi${fcsthrs}_${GRID}" export FORT51="grib2.awpgfs_20km_${GRID}_f${fcsthrs}" - cp "${PARMwmo}/grib2_awpgfs_20km_${GRID}f${fcsthrs}" "parm_list" + cp "${PARMgfs}/wmo/grib2_awpgfs_20km_${GRID}f${fcsthrs}" "parm_list" if [[ ${DO_WAVE} != "YES" ]]; then # Remove wave field it not running wave model grep -vw "5WAVH" "parm_list" > "parm_list_temp" diff --git a/scripts/exgfs_atmos_fbwind.sh b/scripts/exgfs_atmos_fbwind.sh index 735a906bff..de8e448a01 100755 --- a/scripts/exgfs_atmos_fbwind.sh +++ b/scripts/exgfs_atmos_fbwind.sh @@ -14,7 +14,7 @@ # echo " Nov 2019 - B Vuong Removed WINTEMV bulletin (retired)" ##################################################################### -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" cd $DATA @@ -42,7 +42,7 @@ do cp $COMIN/gfs.${cycle}.pgrb2.0p25.f${fhr} tmp_pgrb2_0p25${fhr} cp $COMIN/gfs.${cycle}.pgrb2b.0p25.f${fhr} tmp_pgrb2b_0p25${fhr} cat tmp_pgrb2_0p25${fhr} tmp_pgrb2b_0p25${fhr} > tmp0p25filef${fhr} - $WGRIB2 tmp0p25filef${fhr} | grep -F -f $PARMproduct/gfs_fbwnd_parmlist_g2 | $WGRIB2 -i -grib tmpfilef${fhr} tmp0p25filef${fhr} + $WGRIB2 tmp0p25filef${fhr} | grep -F -f ${PARMgfs}/product/gfs_fbwnd_parmlist_g2 | $WGRIB2 -i -grib tmpfilef${fhr} tmp0p25filef${fhr} $CNVGRIB -g21 tmpfilef${fhr} tmpfilef${fhr}.grib1 $GRBINDEX tmpfilef${fhr}.grib1 tmpfilef${fhr}.grib1i mv tmpfilef${fhr}.grib1 gfs.t${cyc}z.grbf${fhr}_grb1 @@ -68,7 +68,7 @@ export FORT51="tran.fbwnd_pacific" startmsg -$EXECgfs/fbwndgfs < $PARMproduct/fbwnd_pacific.stnlist >> $pgmout 2> errfile +$EXECgfs/fbwndgfs < ${PARMgfs}/product/fbwnd_pacific.stnlist >> $pgmout 2> errfile export err=$?; err_chk diff --git a/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh b/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh index 2dd7fa886a..89de036fcb 100755 --- a/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh +++ b/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh @@ -11,7 +11,7 @@ source "$HOMEgfs/ush/preamble.sh" cd $DATA -export NTS=$USHgempak/restore +export NTS=${HOMEgfs}/gempak/ush/restore if [ $MODEL = GDAS -o $MODEL = GFS ] then @@ -48,7 +48,7 @@ then # if [ $cyc -eq 00 -o $cyc -eq 12 ] #then - $USHgempak/gempak_${RUN}_f${fhr}_gif.sh + ${HOMEgfs}/gempak/ush/gempak_${RUN}_f${fhr}_gif.sh #fi done diff --git a/scripts/exgfs_atmos_goes_nawips.sh b/scripts/exgfs_atmos_goes_nawips.sh index 137feec7c2..ed82082e8a 100755 --- a/scripts/exgfs_atmos_goes_nawips.sh +++ b/scripts/exgfs_atmos_goes_nawips.sh @@ -11,7 +11,7 @@ # echo "C. Magee: 10/2013 - swap X and Y for rtgssthr Atl and Pac." ##################################################################### -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" cd $DATA diff --git a/scripts/exgfs_atmos_grib2_special_npoess.sh b/scripts/exgfs_atmos_grib2_special_npoess.sh index a43c279ae6..1b01aed24d 100755 --- a/scripts/exgfs_atmos_grib2_special_npoess.sh +++ b/scripts/exgfs_atmos_grib2_special_npoess.sh @@ -7,7 +7,7 @@ # echo "-----------------------------------------------------" ##################################################################### -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" cd $DATA @@ -122,7 +122,7 @@ for (( fhr=$((10#${SHOUR})); fhr <= $((10#${FHOUR})); fhr = fhr + FHINC )); do ###################################################################### # Process Global NPOESS 0.50 GFS GRID PRODUCTS IN GRIB2 F000 - F024 # ###################################################################### - paramlist=${PARMproduct}/global_npoess_paramlist_g2 + paramlist=${PARMgfs}/product/global_npoess_paramlist_g2 cp "${COM_ATMOS_GRIB_0p50}/gfs.t${cyc}z.pgrb2.0p50.f${fhr3}" tmpfile2 cp "${COM_ATMOS_GRIB_0p50}/gfs.t${cyc}z.pgrb2b.0p50.f${fhr3}" tmpfile2b cat tmpfile2 tmpfile2b > tmpfile diff --git a/scripts/exgfs_atmos_grib_awips.sh b/scripts/exgfs_atmos_grib_awips.sh index 037b4ce191..bdfc625dce 100755 --- a/scripts/exgfs_atmos_grib_awips.sh +++ b/scripts/exgfs_atmos_grib_awips.sh @@ -21,7 +21,7 @@ # echo " FEB 2019 - Removed grid 225" ##################################################################### -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" fcsthrs="$1" num=$# @@ -40,7 +40,7 @@ fi cd "${DATA}/awips_g1" || exit 2 # "Import" functions used in this script -source "${HOMEgfs}/ush/product_functions.sh" +source "${USHgfs}/product_functions.sh" ############################################### # Wait for the availability of the pgrb file @@ -75,14 +75,14 @@ set_trace cp "${COM_ATMOS_GRIB_0p25}/gfs.t${cyc}z.pgrb2.0p25.f${fcsthrs}" "tmpfile2" cp "${COM_ATMOS_GRIB_0p25}/gfs.t${cyc}z.pgrb2b.0p25.f${fcsthrs}" "tmpfile2b" cat tmpfile2 tmpfile2b > tmpfile -${WGRIB2} tmpfile | grep -F -f "${PARMproduct}/gfs_awips_parmlist_g2" | \ +${WGRIB2} tmpfile | grep -F -f "${PARMgfs}/product/gfs_awips_parmlist_g2" | \ ${WGRIB2} -i -grib masterfile tmpfile scale_dec masterfile ${CNVGRIB} -g21 masterfile masterfile.grib1 ln -s masterfile.grib1 fort.11 -"${HOMEgfs}/exec/overgridid.x" << EOF +"${EXECgfs}/overgridid.x" << EOF 255 EOF @@ -105,8 +105,8 @@ export GRID=211 export FORT11="master.grbf${fcsthrs}" export FORT31="master.grbif${fcsthrs}" export FORT51="xtrn.awpgfs${fcsthrs}.${GRID}" -# $MKGFSAWPS < $PARMwmo/grib_awpgfs${fcsthrs}.${GRID} parm=KWBC >> $pgmout 2>errfile -"${HOMEgfs}/exec/mkgfsawps.x" < "${PARMwmo}/grib_awpgfs${fcsthrs}.${GRID}" parm=KWBC >> "${pgmout}" 2>errfile +# $MKGFSAWPS < ${PARMgfs}/wmo/grib_awpgfs${fcsthrs}.${GRID} parm=KWBC >> $pgmout 2>errfile +"${EXECgfs}/mkgfsawps.x" < "${PARMgfs}/wmo/grib_awpgfs${fcsthrs}.${GRID}" parm=KWBC >> "${pgmout}" 2>errfile export err=$?; err_chk ############################## # Post Files to ${COM_ATMOS_WMO} diff --git a/scripts/exgfs_atmos_nawips.sh b/scripts/exgfs_atmos_nawips.sh index d03ec9cef6..36c3c8e74a 100755 --- a/scripts/exgfs_atmos_nawips.sh +++ b/scripts/exgfs_atmos_nawips.sh @@ -10,7 +10,7 @@ # echo " data on the CCS is properly protected." ##################################################################### -source "${HOMEgfs}/ush/preamble.sh" "${2}" +source "${USHgfs}/preamble.sh" "${2}" #### If EMC GFS PARA runs hourly file are not available, The ILPOST #### will set to 3 hour in EMC GFS PARA. @@ -28,7 +28,7 @@ mkdir -p "${DATA_RUN}" cd "${DATA_RUN}" || exit 1 # "Import" functions used in this script -source "${HOMEgfs}/ush/product_functions.sh" +source "${USHgfs}/product_functions.sh" # NAGRIB="${GEMEXE}/nagrib2" diff --git a/scripts/exgfs_atmos_postsnd.sh b/scripts/exgfs_atmos_postsnd.sh index 368f001ed0..7aa97f3644 100755 --- a/scripts/exgfs_atmos_postsnd.sh +++ b/scripts/exgfs_atmos_postsnd.sh @@ -20,7 +20,7 @@ # 9) 2019-12-18 Guang Ping Lou generalizing to reading in NetCDF or nemsio ################################################################ -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" cd $DATA @@ -44,7 +44,7 @@ export NINT3=${FHOUT_GFS:-3} rm -f -r "${COM_ATMOS_BUFR}" mkdir -p "${COM_ATMOS_BUFR}" -GETDIM="${HOMEgfs}/ush/getncdimlen" +GETDIM="${USHgfs}/getncdimlen" LEVS=$(${GETDIM} "${COM_ATMOS_HISTORY}/${RUN}.${cycle}.atmf000.${atmfm}" pfull) declare -x LEVS @@ -88,8 +88,7 @@ export FINT=$NINT1 if [ $FEND -gt $NEND1 ]; then export FINT=$NINT3 fi -## $USHbufrsnd/gfs_bufr.sh - $USHbufrsnd/gfs_bufr.sh + ${USHgfs}/gfs_bufr.sh export FSTART=$FEND done @@ -115,7 +114,7 @@ fi ######################################## rm -rf poe_col for (( m = 1; m <10 ; m++ )); do - echo "sh ${USHbufrsnd}/gfs_sndp.sh ${m} " >> poe_col + echo "sh ${USHgfs}/gfs_sndp.sh ${m} " >> poe_col done if [[ ${CFP_MP:-"NO"} == "YES" ]]; then @@ -129,7 +128,7 @@ chmod +x cmdfile ${APRUN_POSTSNDCFP} cmdfile -sh "${USHbufrsnd}/gfs_bfr2gpk.sh" +sh "${USHgfs}/gfs_bfr2gpk.sh" ############## END OF SCRIPT ####################### diff --git a/scripts/exgfs_pmgr.sh b/scripts/exgfs_pmgr.sh index a417bbed55..c3b9a5befa 100755 --- a/scripts/exgfs_pmgr.sh +++ b/scripts/exgfs_pmgr.sh @@ -6,7 +6,7 @@ # This script monitors the progress of the gfs_fcst job # -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" hour=00 TEND=384 diff --git a/scripts/exgfs_prdgen_manager.sh b/scripts/exgfs_prdgen_manager.sh index 7d0a95696b..01e8c58c87 100755 --- a/scripts/exgfs_prdgen_manager.sh +++ b/scripts/exgfs_prdgen_manager.sh @@ -6,7 +6,7 @@ # This script monitors the progress of the gfs_fcst job # -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" hour=00 TEND=384 diff --git a/scripts/exgfs_wave_init.sh b/scripts/exgfs_wave_init.sh index 22da372a2a..79c2931889 100755 --- a/scripts/exgfs_wave_init.sh +++ b/scripts/exgfs_wave_init.sh @@ -26,7 +26,7 @@ # --------------------------------------------------------------------------- # # 0. Preparations -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # 0.a Basic modes of operation @@ -127,9 +127,9 @@ source "${HOMEgfs}/ush/preamble.sh" [[ ! -d "${COM_WAVE_PREP}" ]] && mkdir -m 775 -p "${COM_WAVE_PREP}" if [ ${CFP_MP:-"NO"} = "YES" ]; then - echo "$nmoddef $USHwave/wave_grid_moddef.sh $grdID > $grdID.out 2>&1" >> cmdfile + echo "$nmoddef ${USHgfs}/wave_grid_moddef.sh $grdID > $grdID.out 2>&1" >> cmdfile else - echo "$USHwave/wave_grid_moddef.sh $grdID > $grdID.out 2>&1" >> cmdfile + echo "${USHgfs}/wave_grid_moddef.sh $grdID > $grdID.out 2>&1" >> cmdfile fi nmoddef=$(expr $nmoddef + 1) diff --git a/scripts/exgfs_wave_nawips.sh b/scripts/exgfs_wave_nawips.sh index 9145a30a2f..69c4e54ebb 100755 --- a/scripts/exgfs_wave_nawips.sh +++ b/scripts/exgfs_wave_nawips.sh @@ -11,7 +11,7 @@ # March-2020 Roberto.Padilla@noaa.gov ##################################################################### -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" #export grids=${grids:-'glo_30m at_10m ep_10m wc_10m ao_9km'} #Interpolated grids export grids=${grids:-'glo_30m'} #Native grids diff --git a/scripts/exgfs_wave_post_gridded_sbs.sh b/scripts/exgfs_wave_post_gridded_sbs.sh index af362b1c45..be17967865 100755 --- a/scripts/exgfs_wave_post_gridded_sbs.sh +++ b/scripts/exgfs_wave_post_gridded_sbs.sh @@ -30,7 +30,7 @@ # --------------------------------------------------------------------------- # # 0. Preparations -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # 0.a Basic modes of operation @@ -139,9 +139,9 @@ source "$HOMEgfs/ush/preamble.sh" then for intGRD in $waveinterpGRD do - if [ -f $PARMwave/${intGRD}_interp.inp.tmpl ] + if [ -f ${PARMgfs}/wave/${intGRD}_interp.inp.tmpl ] then - cp -f $PARMwave/${intGRD}_interp.inp.tmpl ${intGRD}_interp.inp.tmpl + cp -f ${PARMgfs}/wave/${intGRD}_interp.inp.tmpl ${intGRD}_interp.inp.tmpl fi if [ -f ${intGRD}_interp.inp.tmpl ] @@ -168,9 +168,9 @@ source "$HOMEgfs/ush/preamble.sh" then for grbGRD in $waveinterpGRD $wavepostGRD do - if [ -f $PARMwave/ww3_grib2.${grbGRD}.inp.tmpl ] + if [ -f ${PARMgfs}/wave/ww3_grib2.${grbGRD}.inp.tmpl ] then - cp -f $PARMwave/ww3_grib2.${grbGRD}.inp.tmpl ww3_grib2.${grbGRD}.inp.tmpl + cp -f ${PARMgfs}/wave/ww3_grib2.${grbGRD}.inp.tmpl ww3_grib2.${grbGRD}.inp.tmpl fi if [ -f ww3_grib2.${grbGRD}.inp.tmpl ] @@ -279,7 +279,7 @@ source "$HOMEgfs/ush/preamble.sh" for grdID in $waveinterpGRD do ymdh_int=$($NDATE -${WAVHINDH} $ymdh); dt_int=3600.; n_int=9999 ; - echo "$USHwave/wave_grid_interp_sbs.sh $grdID $ymdh_int $dt_int $n_int > grint_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} + echo "${USHgfs}/wave_grid_interp_sbs.sh $grdID $ymdh_int $dt_int $n_int > grint_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} if [ "$DOGRB_WAV" = 'YES' ] then gribFL=\'$(echo ${OUTPARS_WAV})\' @@ -296,7 +296,7 @@ source "$HOMEgfs/ush/preamble.sh" wc_10m) GRDNAME='wcoast' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;; ak_10m) GRDNAME='alaska' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;; esac - echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} + echo "${USHgfs}/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} fi echo "${GRIBDATA}/${fcmdigrd}.${nigrd}" >> ${fcmdnow} chmod 744 ${fcmdigrd}.${nigrd} @@ -325,7 +325,7 @@ source "$HOMEgfs/ush/preamble.sh" glo_500) GRDNAME='global' ; GRDRES=5p00 ; GRIDNR=255 ; MODNR=11 ;; gwes_30m) GRDNAME='global' ; GRDRES=0p50 ; GRIDNR=255 ; MODNR=10 ;; esac - echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdnow} + echo "${USHgfs}/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdnow} done fi diff --git a/scripts/exgfs_wave_post_pnt.sh b/scripts/exgfs_wave_post_pnt.sh index c085c48f30..bc4c85ec74 100755 --- a/scripts/exgfs_wave_post_pnt.sh +++ b/scripts/exgfs_wave_post_pnt.sh @@ -32,7 +32,7 @@ # --------------------------------------------------------------------------- # # 0. Preparations -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # 0.a Basic modes of operation @@ -151,13 +151,13 @@ source "$HOMEgfs/ush/preamble.sh" rm -f buoy.loc - if [ -f $PARMwave/wave_${NET}.buoys ] + if [ -f ${PARMgfs}/wave/wave_${NET}.buoys ] then - cp -f $PARMwave/wave_${NET}.buoys buoy.loc.temp + cp -f ${PARMgfs}/wave/wave_${NET}.buoys buoy.loc.temp if [ "$DOBNDPNT_WAV" = YES ]; then #only do boundary points sed -n '/^\$.*/!p' buoy.loc.temp | grep IBP > buoy.loc || { - echo "WARNING: No boundary points found in buoy file ${PARMwave}/wave_${NET}.buoys" + echo "WARNING: No boundary points found in buoy file ${PARMgfs}/wave/wave_${NET}.buoys" echo " Ending job without doing anything." exit 0 } @@ -170,7 +170,7 @@ source "$HOMEgfs/ush/preamble.sh" if [ -s buoy.loc ] then set +x - echo " buoy.loc and buoy.ibp copied and processed ($PARMwave/wave_${NET}.buoys)." + echo " buoy.loc and buoy.ibp copied and processed (${PARMgfs}/wave/wave_${NET}.buoys)." set_trace else set +x @@ -188,9 +188,9 @@ source "$HOMEgfs/ush/preamble.sh" # 1.d Input template files - if [ -f $PARMwave/ww3_outp_spec.inp.tmpl ] + if [ -f ${PARMgfs}/wave/ww3_outp_spec.inp.tmpl ] then - cp -f $PARMwave/ww3_outp_spec.inp.tmpl ww3_outp_spec.inp.tmpl + cp -f ${PARMgfs}/wave/ww3_outp_spec.inp.tmpl ww3_outp_spec.inp.tmpl fi if [ -f ww3_outp_spec.inp.tmpl ] @@ -211,9 +211,9 @@ source "$HOMEgfs/ush/preamble.sh" DOBLL_WAV='NO' fi - if [ -f $PARMwave/ww3_outp_bull.inp.tmpl ] + if [ -f ${PARMgfs}/wave/ww3_outp_bull.inp.tmpl ] then - cp -f $PARMwave/ww3_outp_bull.inp.tmpl ww3_outp_bull.inp.tmpl + cp -f ${PARMgfs}/wave/ww3_outp_bull.inp.tmpl ww3_outp_bull.inp.tmpl fi if [ -f ww3_outp_bull.inp.tmpl ] @@ -266,7 +266,7 @@ source "$HOMEgfs/ush/preamble.sh" ln -fs ./out_pnt.${waveuoutpGRD} ./out_pnt.ww3 ln -fs ./mod_def.${waveuoutpGRD} ./mod_def.ww3 export pgm=ww3_outp;. prep_step - $EXECwave/ww3_outp > buoy_lst.loc 2>&1 + ${EXECgfs}/ww3_outp > buoy_lst.loc 2>&1 export err=$?;err_chk @@ -387,7 +387,7 @@ source "$HOMEgfs/ush/preamble.sh" export dtspec=3600. for buoy in $buoys do - echo "$USHwave/wave_outp_spec.sh $buoy $ymdh spec $SPECDATA > $SPECDATA/spec_$buoy.out 2>&1" >> tmpcmdfile.$FH3 + echo "${USHgfs}/wave_outp_spec.sh $buoy $ymdh spec $SPECDATA > $SPECDATA/spec_$buoy.out 2>&1" >> tmpcmdfile.$FH3 done fi @@ -396,7 +396,7 @@ source "$HOMEgfs/ush/preamble.sh" export dtspec=3600. for buoy in $buoys do - echo "$USHwave/wave_outp_spec.sh $buoy $ymdh bull $SPECDATA > $SPECDATA/bull_$buoy.out 2>&1" >> tmpcmdfile.$FH3 + echo "${USHgfs}/wave_outp_spec.sh $buoy $ymdh bull $SPECDATA > $SPECDATA/bull_$buoy.out 2>&1" >> tmpcmdfile.$FH3 done fi @@ -514,7 +514,7 @@ source "$HOMEgfs/ush/preamble.sh" then for buoy in $buoys do - echo "$USHwave/wave_outp_cat.sh $buoy $FHMAX_WAV_PNT spec > ${CATOUTDIR}/spec_cat_$buoy.out 2>&1" >> cmdfile.bouy + echo "${USHgfs}/wave_outp_cat.sh $buoy $FHMAX_WAV_PNT spec > ${CATOUTDIR}/spec_cat_$buoy.out 2>&1" >> cmdfile.bouy done fi @@ -522,7 +522,7 @@ source "$HOMEgfs/ush/preamble.sh" then for buoy in $buoys do - echo "$USHwave/wave_outp_cat.sh $buoy $FHMAX_WAV_PNT bull > ${CATOUTDIR}/bull_cat_$buoy.out 2>&1" >> cmdfile.bouy + echo "${USHgfs}/wave_outp_cat.sh $buoy $FHMAX_WAV_PNT bull > ${CATOUTDIR}/bull_cat_$buoy.out 2>&1" >> cmdfile.bouy done fi @@ -614,43 +614,43 @@ source "$HOMEgfs/ush/preamble.sh" if [ ${CFP_MP:-"NO"} = "YES" ] && [ "$DOBLL_WAV" = "YES" ]; then if [ "$DOBNDPNT_WAV" = YES ]; then if [ "$DOSPC_WAV" = YES ]; then - echo "$nm $USHwave/wave_tar.sh $WAV_MOD_TAG ibp $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "$nm ${USHgfs}/wave_tar.sh $WAV_MOD_TAG ibp $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile nm=$(( nm + 1 )) fi if [ "$DOBLL_WAV" = YES ]; then - echo "$nm $USHwave/wave_tar.sh $WAV_MOD_TAG ibpbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "$nm ${USHgfs}/wave_tar.sh $WAV_MOD_TAG ibpbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile nm=$(( nm + 1 )) - echo "$nm $USHwave/wave_tar.sh $WAV_MOD_TAG ibpcbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "$nm ${USHgfs}/wave_tar.sh $WAV_MOD_TAG ibpcbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile nm=$(( nm + 1 )) fi else if [ "$DOSPC_WAV" = YES ]; then - echo "$nm $USHwave/wave_tar.sh $WAV_MOD_TAG spec $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "$nm ${USHgfs}/wave_tar.sh $WAV_MOD_TAG spec $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile nm=$(( nm + 1 )) fi if [ "$DOBLL_WAV" = YES ]; then - echo "$nm $USHwave/wave_tar.sh $WAV_MOD_TAG bull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "$nm ${USHgfs}/wave_tar.sh $WAV_MOD_TAG bull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile nm=$(( nm + 1 )) - echo "$nm $USHwave/wave_tar.sh $WAV_MOD_TAG cbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "$nm ${USHgfs}/wave_tar.sh $WAV_MOD_TAG cbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile nm=$(( nm + 1 )) fi fi else if [ "$DOBNDPNT_WAV" = YES ]; then if [ "$DOSPC_WAV" = YES ]; then - echo "$USHwave/wave_tar.sh $WAV_MOD_TAG ibp $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "${USHgfs}/wave_tar.sh $WAV_MOD_TAG ibp $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile fi if [ "$DOBLL_WAV" = YES ]; then - echo "$USHwave/wave_tar.sh $WAV_MOD_TAG ibpbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile - echo "$USHwave/wave_tar.sh $WAV_MOD_TAG ibpcbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "${USHgfs}/wave_tar.sh $WAV_MOD_TAG ibpbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "${USHgfs}/wave_tar.sh $WAV_MOD_TAG ibpcbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile fi else if [ "$DOSPC_WAV" = YES ]; then - echo "$USHwave/wave_tar.sh $WAV_MOD_TAG spec $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "${USHgfs}/wave_tar.sh $WAV_MOD_TAG spec $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile fi if [ "$DOBLL_WAV" = YES ]; then - echo "$USHwave/wave_tar.sh $WAV_MOD_TAG bull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile - echo "$USHwave/wave_tar.sh $WAV_MOD_TAG cbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "${USHgfs}/wave_tar.sh $WAV_MOD_TAG bull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "${USHgfs}/wave_tar.sh $WAV_MOD_TAG cbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile fi fi fi diff --git a/scripts/exgfs_wave_prdgen_bulls.sh b/scripts/exgfs_wave_prdgen_bulls.sh index bcad75a660..2bf90cdf2b 100755 --- a/scripts/exgfs_wave_prdgen_bulls.sh +++ b/scripts/exgfs_wave_prdgen_bulls.sh @@ -18,7 +18,7 @@ # --------------------------------------------------------------------------- # # 0. Preparations -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # 0.a Basic modes of operation @@ -29,11 +29,6 @@ source "$HOMEgfs/ush/preamble.sh" export cycle=${cycle:-t${cyc}z} export pgmout=OUTPUT.$$ export DATA=${DATA:-${DATAROOT:?}/${job}.$$} - #export CODEwave=${CODEwave:-${PACKAGEROOT}/${NET}_code.${wave_code_ver}/${code_pkg}} - export EXECwave=${EXECwave:-$HOMEgfs/exec} - export PARMwave=${PARMwave:-$HOMEgfs/parm/parm_wave} - export USHwave=${USHwave:-$HOMEgfs/ush} - #export EXECcode=${EXECcode:-CODEwave/exec} mkdir -p $DATA cd $DATA @@ -116,8 +111,8 @@ source "$HOMEgfs/ush/preamble.sh" echo ' --------------------------' echo ' ' # 1.c Get the datat cards - if [ -f $PARMwave/bull_awips_gfswave ]; then - cp $PARMwave/bull_awips_gfswave awipsbull.data + if [ -f ${PARMgfs}/wave/bull_awips_gfswave ]; then + cp ${PARMgfs}/wave/bull_awips_gfswave awipsbull.data else msg="ABNORMAL EXIT: NO AWIPS BULLETIN HEADER DATA FILE" set +x diff --git a/scripts/exgfs_wave_prdgen_gridded.sh b/scripts/exgfs_wave_prdgen_gridded.sh index 54efb639d6..55c5b36827 100755 --- a/scripts/exgfs_wave_prdgen_gridded.sh +++ b/scripts/exgfs_wave_prdgen_gridded.sh @@ -19,7 +19,7 @@ # --------------------------------------------------------------------------- # # 0. Preparations -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # 0.a Basic modes of operation @@ -31,8 +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 PARMwave=${PARMwave:-$HOMEgfs/parm/parm_wave} - export USHwave=${USHwave:-$HOMEgfs/ush} export cyc=${cyc:-00} export cycle=${cycle:-t${cyc}z} export pgmout=OUTPUT.$$ @@ -157,7 +155,7 @@ grids=${grids:-ak_10m at_10m ep_10m wc_10m glo_30m} # # 1.d Input template files - parmfile=$PARMwave/grib2_${RUNwave}.$grdOut.f${fhr} + parmfile=${PARMgfs}/wave/grib2_${RUNwave}.$grdOut.f${fhr} if [ -f $parmfile ]; then ln -s $parmfile awipsgrb.$grdID.f${fhr} else diff --git a/scripts/exgfs_wave_prep.sh b/scripts/exgfs_wave_prep.sh index f6cb610559..1fbe7dd767 100755 --- a/scripts/exgfs_wave_prep.sh +++ b/scripts/exgfs_wave_prep.sh @@ -40,7 +40,7 @@ # --------------------------------------------------------------------------- # # 0. Preparations -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # 0.a Basic modes of operation @@ -207,16 +207,16 @@ source "$HOMEgfs/ush/preamble.sh" ;; esac - if [ -f $PARMwave/ww3_prnc.${type}.$grdID.inp.tmpl ] + if [ -f ${PARMgfs}/wave/ww3_prnc.${type}.$grdID.inp.tmpl ] then - cp $PARMwave/ww3_prnc.${type}.$grdID.inp.tmpl . + cp ${PARMgfs}/wave/ww3_prnc.${type}.$grdID.inp.tmpl . fi if [ -f ww3_prnc.${type}.$grdID.inp.tmpl ] then set +x echo ' ' - echo " ww3_prnc.${type}.$grdID.inp.tmpl copied ($PARMwave)." + echo " ww3_prnc.${type}.$grdID.inp.tmpl copied (${PARMgfs}/wave)." echo ' ' set_trace else @@ -247,7 +247,7 @@ source "$HOMEgfs/ush/preamble.sh" if [ "${RUNMEM}" = "-1" ] || [ "${WW3ICEIENS}" = "T" ] || [ "$waveMEMB" = "00" ] then - $USHwave/wave_prnc_ice.sh > wave_prnc_ice.out + ${USHgfs}/wave_prnc_ice.sh > wave_prnc_ice.out ERR=$? if [ -d ice ] @@ -389,10 +389,10 @@ source "$HOMEgfs/ush/preamble.sh" fi if [ ${CFP_MP:-"NO"} = "YES" ]; then - echo "$nm $USHwave/wave_prnc_cur.sh $ymdh_rtofs $curfile $fhr_rtofs $FLGFIRST > cur_$ymdh_rtofs.out 2>&1" >> cmdfile + echo "$nm ${USHgfs}/wave_prnc_cur.sh $ymdh_rtofs $curfile $fhr_rtofs $FLGFIRST > cur_$ymdh_rtofs.out 2>&1" >> cmdfile nm=$(expr $nm + 1) else - echo "$USHwave/wave_prnc_cur.sh $ymdh_rtofs $curfile $fhr_rtofs $FLGFIRST > cur_$ymdh_rtofs.out 2>&1" >> cmdfile + echo "${USHgfs}/wave_prnc_cur.sh $ymdh_rtofs $curfile $fhr_rtofs $FLGFIRST > cur_$ymdh_rtofs.out 2>&1" >> cmdfile fi if [ "${FLGFIRST}" = "T" ] ; then diff --git a/scripts/exglobal_archive.sh b/scripts/exglobal_archive.sh index 833b06bd98..4cc123111c 100755 --- a/scripts/exglobal_archive.sh +++ b/scripts/exglobal_archive.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ############################################## # Begin JOB SPECIFIC work @@ -29,7 +29,7 @@ PDY_MOS="${CDATE_MOS:0:8}" ############################################################### # Archive online for verification and diagnostics ############################################################### -source "${HOMEgfs}/ush/file_utils.sh" +source "${USHgfs}/file_utils.sh" [[ ! -d ${ARCDIR} ]] && mkdir -p "${ARCDIR}" nb_copy "${COM_ATMOS_ANALYSIS}/${APREFIX}gsistat" "${ARCDIR}/gsistat.${RUN}.${PDY}${cyc}" @@ -158,10 +158,10 @@ if [[ ${HPSSARCH} = "YES" || ${LOCALARCH} = "YES" ]]; then cd "${DATA}" || exit 2 - "${HOMEgfs}/ush/hpssarch_gen.sh" "${RUN}" + "${USHgfs}/hpssarch_gen.sh" "${RUN}" status=$? if [ "${status}" -ne 0 ]; then - echo "${HOMEgfs}/ush/hpssarch_gen.sh ${RUN} failed, ABORT!" + echo "${USHgfs}/hpssarch_gen.sh ${RUN} failed, ABORT!" exit "${status}" fi diff --git a/scripts/exglobal_atmos_analysis.sh b/scripts/exglobal_atmos_analysis.sh index b12046f9e2..6da862eb54 100755 --- a/scripts/exglobal_atmos_analysis.sh +++ b/scripts/exglobal_atmos_analysis.sh @@ -19,7 +19,7 @@ # Set environment. -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Directories. pwd=$(pwd) @@ -42,7 +42,7 @@ export NCP=${NCP:-"/bin/cp"} export NMV=${NMV:-"/bin/mv"} export NLN=${NLN:-"/bin/ln -sf"} export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} -export NCLEN=${NCLEN:-${HOMEgfs}/ush/getncdimlen} +export NCLEN=${NCLEN:-${USHgfs}/getncdimlen} COMPRESS=${COMPRESS:-gzip} UNCOMPRESS=${UNCOMPRESS:-gunzip} APRUNCFP=${APRUNCFP:-""} @@ -68,19 +68,19 @@ DOIAU=${DOIAU:-"NO"} export IAUFHRS=${IAUFHRS:-"6"} # Dependent Scripts and Executables -GSIEXEC=${GSIEXEC:-${HOMEgfs}/exec/gsi.x} +GSIEXEC=${GSIEXEC:-${EXECgfs}/gsi.x} export NTHREADS_CALCINC=${NTHREADS_CALCINC:-1} export APRUN_CALCINC=${APRUN_CALCINC:-${APRUN:-""}} export APRUN_CALCANL=${APRUN_CALCANL:-${APRUN:-""}} export APRUN_CHGRES=${APRUN_CALCANL:-${APRUN:-""}} -export CALCINCEXEC=${CALCINCEXEC:-${HOMEgfs}/exec/calc_increment_ens.x} -export CALCINCNCEXEC=${CALCINCNCEXEC:-${HOMEgfs}/exec/calc_increment_ens_ncio.x} -export CALCANLEXEC=${CALCANLEXEC:-${HOMEgfs}/exec/calc_analysis.x} -export CHGRESNCEXEC=${CHGRESNCEXEC:-${HOMEgfs}/exec/enkf_chgres_recenter_nc.x} -export CHGRESINCEXEC=${CHGRESINCEXEC:-${HOMEgfs}/exec/interp_inc.x} -CHGRESEXEC=${CHGRESEXEC:-${HOMEgfs}/exec/enkf_chgres_recenter.x} +export CALCINCEXEC=${CALCINCEXEC:-${EXECgfs}/calc_increment_ens.x} +export CALCINCNCEXEC=${CALCINCNCEXEC:-${EXECgfs}/calc_increment_ens_ncio.x} +export CALCANLEXEC=${CALCANLEXEC:-${EXECgfs}/calc_analysis.x} +export CHGRESNCEXEC=${CHGRESNCEXEC:-${EXECgfs}/enkf_chgres_recenter_nc.x} +export CHGRESINCEXEC=${CHGRESINCEXEC:-${EXECgfs}/interp_inc.x} +CHGRESEXEC=${CHGRESEXEC:-${EXECgfs}/enkf_chgres_recenter.x} export NTHREADS_CHGRES=${NTHREADS_CHGRES:-24} -CALCINCPY=${CALCINCPY:-${HOMEgfs}/ush/calcinc_gfs.py} +CALCINCPY=${CALCINCPY:-${USHgfs}/calcinc_gfs.py} # OPS flags RUN=${RUN:-""} diff --git a/scripts/exglobal_atmos_analysis_calc.sh b/scripts/exglobal_atmos_analysis_calc.sh index a2228f0425..771221ce1d 100755 --- a/scripts/exglobal_atmos_analysis_calc.sh +++ b/scripts/exglobal_atmos_analysis_calc.sh @@ -19,7 +19,7 @@ # Set environment. -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Directories. pwd=$(pwd) @@ -33,7 +33,7 @@ export NCP=${NCP:-"/bin/cp"} export NMV=${NMV:-"/bin/mv"} export NLN=${NLN:-"/bin/ln -sf"} export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} -export NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} +export NCLEN=${NCLEN:-${USHgfs}/getncdimlen} COMPRESS=${COMPRESS:-gzip} UNCOMPRESS=${UNCOMPRESS:-gunzip} APRUNCFP=${APRUNCFP:-""} @@ -52,16 +52,16 @@ export APRUN_CALCINC=${APRUN_CALCINC:-${APRUN:-""}} export APRUN_CALCANL=${APRUN_CALCANL:-${APRUN:-""}} export APRUN_CHGRES=${APRUN_CALCANL:-${APRUN:-""}} -export CALCANLEXEC=${CALCANLEXEC:-$HOMEgfs/exec/calc_analysis.x} -export CHGRESNCEXEC=${CHGRESNCEXEC:-$HOMEgfs/exec/enkf_chgres_recenter_nc.x} -export CHGRESINCEXEC=${CHGRESINCEXEC:-$HOMEgfs/exec/interp_inc.x} +export CALCANLEXEC=${CALCANLEXEC:-${EXECgfs}/calc_analysis.x} +export CHGRESNCEXEC=${CHGRESNCEXEC:-${EXECgfs}/enkf_chgres_recenter_nc.x} +export CHGRESINCEXEC=${CHGRESINCEXEC:-${EXECgfs}/interp_inc.x} export NTHREADS_CHGRES=${NTHREADS_CHGRES:-1} -CALCINCPY=${CALCINCPY:-$HOMEgfs/ush/calcinc_gfs.py} -CALCANLPY=${CALCANLPY:-$HOMEgfs/ush/calcanl_gfs.py} +CALCINCPY=${CALCINCPY:-${USHgfs}/calcinc_gfs.py} +CALCANLPY=${CALCANLPY:-${USHgfs}/calcanl_gfs.py} DOGAUSFCANL=${DOGAUSFCANL-"NO"} -GAUSFCANLSH=${GAUSFCANLSH:-$HOMEgfs/ush/gaussian_sfcanl.sh} -export GAUSFCANLEXE=${GAUSFCANLEXE:-$HOMEgfs/exec/gaussian_sfcanl.x} +GAUSFCANLSH=${GAUSFCANLSH:-${USHgfs}/gaussian_sfcanl.sh} +export GAUSFCANLEXE=${GAUSFCANLEXE:-${EXECgfs}/gaussian_sfcanl.x} NTHREADS_GAUSFCANL=${NTHREADS_GAUSFCANL:-1} APRUN_GAUSFCANL=${APRUN_GAUSFCANL:-${APRUN:-""}} diff --git a/scripts/exglobal_atmos_pmgr.sh b/scripts/exglobal_atmos_pmgr.sh index 86afed962e..7f348474b6 100755 --- a/scripts/exglobal_atmos_pmgr.sh +++ b/scripts/exglobal_atmos_pmgr.sh @@ -6,7 +6,7 @@ # This script monitors the progress of the gfs_fcst job # -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" hour=00 diff --git a/scripts/exglobal_atmos_products.sh b/scripts/exglobal_atmos_products.sh index 5ebc7432f0..9067819380 100755 --- a/scripts/exglobal_atmos_products.sh +++ b/scripts/exglobal_atmos_products.sh @@ -1,13 +1,13 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Programs used export WGRIB2=${WGRIB2:-${wgrib2_ROOT}/bin/wgrib2} # Scripts used -INTERP_ATMOS_MASTERSH=${INTERP_ATMOS_MASTERSH:-"${HOMEgfs}/ush/interp_atmos_master.sh"} -INTERP_ATMOS_SFLUXSH=${INTERP_ATMOS_SFLUXSH:-"${HOMEgfs}/ush/interp_atmos_sflux.sh"} +INTERP_ATMOS_MASTERSH=${INTERP_ATMOS_MASTERSH:-"${USHgfs}/interp_atmos_master.sh"} +INTERP_ATMOS_SFLUXSH=${INTERP_ATMOS_SFLUXSH:-"${USHgfs}/interp_atmos_sflux.sh"} # Variables used in this job downset=${downset:-1} # No. of groups of pressure grib2 products to create @@ -133,7 +133,7 @@ for (( nset=1 ; nset <= downset ; nset++ )); do # Run with MPMD or serial if [[ "${USE_CFP:-}" = "YES" ]]; then - OMP_NUM_THREADS=1 "${HOMEgfs}/ush/run_mpmd.sh" "${DATA}/poescript" + OMP_NUM_THREADS=1 "${USHgfs}/run_mpmd.sh" "${DATA}/poescript" export err=$? else chmod 755 "${DATA}/poescript" diff --git a/scripts/exglobal_atmos_sfcanl.sh b/scripts/exglobal_atmos_sfcanl.sh index 60869181f3..fd358f4508 100755 --- a/scripts/exglobal_atmos_sfcanl.sh +++ b/scripts/exglobal_atmos_sfcanl.sh @@ -19,7 +19,7 @@ # Set environment. -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Directories. pwd=$(pwd) @@ -37,7 +37,7 @@ export NCP=${NCP:-"/bin/cp"} export NMV=${NMV:-"/bin/mv"} export NLN=${NLN:-"/bin/ln -sf"} export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} -export NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} +export NCLEN=${NCLEN:-${USHgfs}/getncdimlen} COMPRESS=${COMPRESS:-gzip} UNCOMPRESS=${UNCOMPRESS:-gunzip} APRUNCFP=${APRUNCFP:-""} @@ -47,8 +47,8 @@ DOIAU=${DOIAU:-"NO"} export IAUFHRS=${IAUFHRS:-"6"} # Surface cycle related parameters -CYCLESH=${CYCLESH:-${HOMEgfs}/ush/global_cycle.sh} -export CYCLEXEC=${CYCLEXEC:-${HOMEgfs}/exec/global_cycle} +CYCLESH=${CYCLESH:-${USHgfs}/global_cycle.sh} +export CYCLEXEC=${CYCLEXEC:-${EXECgfs}/global_cycle} NTHREADS_CYCLE=${NTHREADS_CYCLE:-24} APRUN_CYCLE=${APRUN_CYCLE:-${APRUN:-""}} export SNOW_NUDGE_COEFF=${SNOW_NUDGE_COEFF:-'-2.'} @@ -70,15 +70,15 @@ export APRUN_CALCINC=${APRUN_CALCINC:-${APRUN:-""}} export APRUN_CALCANL=${APRUN_CALCANL:-${APRUN:-""}} export APRUN_CHGRES=${APRUN_CALCANL:-${APRUN:-""}} -export CALCANLEXEC=${CALCANLEXEC:-${HOMEgfs}/exec/calc_analysis.x} -export CHGRESNCEXEC=${CHGRESNCEXEC:-${HOMEgfs}/exec/enkf_chgres_recenter_nc.x} -export CHGRESINCEXEC=${CHGRESINCEXEC:-${HOMEgfs}/exec/interp_inc.x} +export CALCANLEXEC=${CALCANLEXEC:-${EXECgfs}/calc_analysis.x} +export CHGRESNCEXEC=${CHGRESNCEXEC:-${EXECgfs}/enkf_chgres_recenter_nc.x} +export CHGRESINCEXEC=${CHGRESINCEXEC:-${EXECgfs}/interp_inc.x} export NTHREADS_CHGRES=${NTHREADS_CHGRES:-1} -CALCINCPY=${CALCINCPY:-${HOMEgfs}/ush/calcinc_gfs.py} -CALCANLPY=${CALCANLPY:-${HOMEgfs}/ush/calcanl_gfs.py} +CALCINCPY=${CALCINCPY:-${USHgfs}/calcinc_gfs.py} +CALCANLPY=${CALCANLPY:-${USHgfs}/calcanl_gfs.py} export APRUN_CHGRES=${APRUN_CALCANL:-${APRUN:-""}} -CHGRESEXEC=${CHGRESEXEC:-${HOMEgfs}/exec/enkf_chgres_recenter.x} +CHGRESEXEC=${CHGRESEXEC:-${EXECgfs}/enkf_chgres_recenter.x} # OPS flags RUN=${RUN:-""} diff --git a/scripts/exglobal_atmos_tropcy_qc_reloc.sh b/scripts/exglobal_atmos_tropcy_qc_reloc.sh index 380441a6c9..f1272b1844 100755 --- a/scripts/exglobal_atmos_tropcy_qc_reloc.sh +++ b/scripts/exglobal_atmos_tropcy_qc_reloc.sh @@ -10,7 +10,7 @@ # echo " Oct 2013 - Use main USH vars as part of minor pkg cleanup" ############################################################################ -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Make sure we are in the $DATA directory cd $DATA @@ -50,7 +50,7 @@ if [ "$PROCESS_TROPCY" = 'YES' ]; then #echo $PDY - ${USHSYND:-$HOMEgfs/ush}/syndat_qctropcy.sh $cdate10 + ${USHgfs}/syndat_qctropcy.sh $cdate10 errsc=$? if [ "$errsc" -ne '0' ]; then echo "syndat_qctropcy.sh failed. exit" @@ -95,7 +95,7 @@ if [ "$DO_RELOCATE" = 'YES' ]; then ################################################### export MP_LABELIO=${MP_LABELIO:-yes} - $USHRELO/tropcy_relocate.sh $cdate10 + ${USHgfs}/tropcy_relocate.sh $cdate10 errsc=$? [ "$errsc" -ne '0' ] && exit $errsc diff --git a/scripts/exglobal_atmos_vminmon.sh b/scripts/exglobal_atmos_vminmon.sh index aac63f3fb3..b4307c8af9 100755 --- a/scripts/exglobal_atmos_vminmon.sh +++ b/scripts/exglobal_atmos_vminmon.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ################################################################################ #### UNIX Script Documentation Block diff --git a/scripts/exglobal_cleanup.sh b/scripts/exglobal_cleanup.sh index 5d7c0a9788..8141de771a 100755 --- a/scripts/exglobal_cleanup.sh +++ b/scripts/exglobal_cleanup.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ############################################################### # Clean up previous cycles; various depths diff --git a/scripts/exglobal_diag.sh b/scripts/exglobal_diag.sh index 3836643afc..ad4c4be4a8 100755 --- a/scripts/exglobal_diag.sh +++ b/scripts/exglobal_diag.sh @@ -19,7 +19,7 @@ # Set environment. -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Directories. pwd=$(pwd) @@ -34,7 +34,7 @@ export NCP=${NCP:-"/bin/cp"} export NMV=${NMV:-"/bin/mv"} export NLN=${NLN:-"/bin/ln -sf"} export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} -export NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} +export NCLEN=${NCLEN:-${USHgfs}/getncdimlen} export CATEXEC=${CATEXEC:-${ncdiag_ROOT:-${gsi_ncdiag_ROOT}}/bin/ncdiag_cat_serial.x} COMPRESS=${COMPRESS:-gzip} UNCOMPRESS=${UNCOMPRESS:-gunzip} diff --git a/scripts/exglobal_forecast.sh b/scripts/exglobal_forecast.sh index c548b827e5..0a6329910e 100755 --- a/scripts/exglobal_forecast.sh +++ b/scripts/exglobal_forecast.sh @@ -77,14 +77,14 @@ # Main body starts here ####################### -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # include all subroutines. Executions later. -source "${HOMEgfs}/ush/forecast_predet.sh" # include functions for variable definition -source "${HOMEgfs}/ush/forecast_det.sh" # include functions for run type determination -source "${HOMEgfs}/ush/forecast_postdet.sh" # include functions for variables after run type determination -source "${HOMEgfs}/ush/parsing_ufs_configure.sh" # include functions for ufs_configure processing -source "${HOMEgfs}/ush/parsing_model_configure_FV3.sh" +source "${USHgfs}/forecast_predet.sh" # include functions for variable definition +source "${USHgfs}/forecast_det.sh" # include functions for run type determination +source "${USHgfs}/forecast_postdet.sh" # include functions for variables after run type determination +source "${USHgfs}/parsing_ufs_configure.sh" # include functions for ufs_configure processing +source "${USHgfs}/parsing_model_configure_FV3.sh" # Coupling control switches, for coupling purpose, off by default cpl=${cpl:-.false.} @@ -149,7 +149,7 @@ if [[ "${esmf_profile:-}" = ".true." ]]; then export ESMF_RUNTIME_PROFILE_OUTPUT=SUMMARY fi -${NCP} "${FCSTEXECDIR}/${FCSTEXEC}" "${DATA}/" +${NCP} "${EXECgfs}/${FCSTEXEC}" "${DATA}/" ${APRUN_UFS} "${DATA}/${FCSTEXEC}" 1>&1 2>&2 export ERR=$? export err=${ERR} diff --git a/scripts/exglobal_stage_ic.sh b/scripts/exglobal_stage_ic.sh index 58b37f3114..6a1be22e71 100755 --- a/scripts/exglobal_stage_ic.sh +++ b/scripts/exglobal_stage_ic.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Locally scoped variables and functions # shellcheck disable=SC2153 @@ -104,6 +104,17 @@ for MEMDIR in "${MEMDIR_ARRAY[@]}"; do ;; esac + # Ocean Perturbation Files + # Extra zero on MEMDIR ensure we have a number even if the string is empty + if (( 0${MEMDIR:3} > 0 )) && [[ "${OCN_ENS_PERTURB_FILES:-false}" == "true" ]]; then + src="${BASE_CPLIC}/${CPL_OCNIC:-}/${PDY}${cyc}/${MEMDIR}/ocean/${PDY}.${cyc}0000.mom6_increment.nc" + tgt="${COM_OCEAN_RESTART_PREV}/${PDY}.${cyc}0000.mom6_increment.nc" + ${NCP} "${src}" "${tgt}" + rc=${?} + ((rc != 0)) && error_message "${src}" "${tgt}" "${rc}" + err=$((err + rc)) + fi + # TODO: Do mediator restarts exists in a ATMW configuration? # TODO: No mediator is presumably involved in an ATMA configuration if [[ ${EXP_WARM_START:-".false."} = ".true." ]]; then diff --git a/sorc/build_all.sh b/sorc/build_all.sh index 261c245142..3de13b7b60 100755 --- a/sorc/build_all.sh +++ b/sorc/build_all.sh @@ -16,9 +16,11 @@ function _usage() { Builds all of the global-workflow components by calling the individual build scripts in sequence. -Usage: ${BASH_SOURCE[0]} [-a UFS_app][-c build_config][-h][-j n][-v][-w] +Usage: ${BASH_SOURCE[0]} [-a UFS_app][-c build_config][-d][-h][-j n][-v][-w] -a UFS_app: Build a specific UFS app instead of the default + -d: + Build in debug mode -g: Build GSI -h: @@ -29,26 +31,29 @@ Usage: ${BASH_SOURCE[0]} [-a UFS_app][-c build_config][-h][-j n][-v][-w] Build UFS-DA -v: Execute all build scripts with -v option to turn on verbose where supported - -w: - Use unstructured wave grid + -w: + Use unstructured wave grid EOF exit 1 } -script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd) -cd "${script_dir}" || exit 1 +# shellcheck disable=SC2155 +readonly HOMEgfs=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )/.." && pwd -P) +cd "${HOMEgfs}/sorc" || exit 1 _build_ufs_opt="" _build_ufsda="NO" _build_gsi="NO" +_build_debug="" _verbose_opt="" _wave_unst="" _build_job_max=20 # Reset option counter in case this script is sourced OPTIND=1 -while getopts ":a:ghj:uvw" option; do +while getopts ":a:dghj:uvw" option; do case "${option}" in a) _build_ufs_opt+="-a ${OPTARG} ";; + d) _build_debug="-d" ;; g) _build_gsi="YES" ;; h) _usage;; j) _build_job_max="${OPTARG} ";; @@ -68,24 +73,24 @@ done shift $((OPTIND-1)) -logs_dir="${script_dir}/logs" +logs_dir="${HOMEgfs}/sorc/logs" if [[ ! -d "${logs_dir}" ]]; then echo "Creating logs folder" - mkdir "${logs_dir}" || exit 1 + mkdir -p "${logs_dir}" || exit 1 fi # Check final exec folder exists -if [[ ! -d "../exec" ]]; then - echo "Creating ../exec folder" - mkdir ../exec +if [[ ! -d "${HOMEgfs}/exec" ]]; then + echo "Creating ${HOMEgfs}/exec folder" + mkdir -p "${HOMEgfs}/exec" fi #------------------------------------ # GET MACHINE #------------------------------------ export COMPILER="intel" -source gfs_utils.fd/ush/detect_machine.sh -source gfs_utils.fd/ush/module-setup.sh +source "${HOMEgfs}/ush/detect_machine.sh" +source "${HOMEgfs}/ush/module-setup.sh" if [[ -z "${MACHINE_ID}" ]]; then echo "FATAL: Unable to determine target machine" exit 1 @@ -117,19 +122,19 @@ declare -A build_opts big_jobs=0 build_jobs["ufs"]=8 big_jobs=$((big_jobs+1)) -build_opts["ufs"]="${_wave_unst} ${_verbose_opt} ${_build_ufs_opt}" +build_opts["ufs"]="${_wave_unst} ${_verbose_opt} ${_build_ufs_opt} ${_build_debug}" build_jobs["upp"]=2 -build_opts["upp"]="" +build_opts["upp"]="${_build_debug}" build_jobs["ufs_utils"]=2 -build_opts["ufs_utils"]="${_verbose_opt}" +build_opts["ufs_utils"]="${_verbose_opt} ${_build_debug}" build_jobs["gfs_utils"]=1 -build_opts["gfs_utils"]="${_verbose_opt}" +build_opts["gfs_utils"]="${_verbose_opt} ${_build_debug}" build_jobs["ww3prepost"]=2 -build_opts["ww3prepost"]="${_wave_unst} ${_verbose_opt} ${_build_ufs_opt}" +build_opts["ww3prepost"]="${_wave_unst} ${_verbose_opt} ${_build_ufs_opt} ${_build_debug}" # Optional DA builds if [[ "${_build_ufsda}" == "YES" ]]; then @@ -138,21 +143,21 @@ if [[ "${_build_ufsda}" == "YES" ]]; then else build_jobs["gdas"]=8 big_jobs=$((big_jobs+1)) - build_opts["gdas"]="${_verbose_opt}" + build_opts["gdas"]="${_verbose_opt} ${_build_debug}" fi fi if [[ "${_build_gsi}" == "YES" ]]; then build_jobs["gsi_enkf"]=8 - build_opts["gsi_enkf"]="${_verbose_opt}" + build_opts["gsi_enkf"]="${_verbose_opt} ${_build_debug}" fi if [[ "${_build_gsi}" == "YES" || "${_build_ufsda}" == "YES" ]] ; then build_jobs["gsi_utils"]=1 - build_opts["gsi_utils"]="${_verbose_opt}" + build_opts["gsi_utils"]="${_verbose_opt} ${_build_debug}" if [[ "${MACHINE_ID}" == "hercules" ]]; then echo "NOTE: The GSI Monitor is not supported on Hercules. Disabling build." else build_jobs["gsi_monitor"]=1 - build_opts["gsi_monitor"]="${_verbose_opt}" + build_opts["gsi_monitor"]="${_verbose_opt} ${_build_debug}" fi fi @@ -196,13 +201,10 @@ while [[ ${builds_started} -lt ${#build_jobs[@]} ]]; do if [[ -n "${build_jobs[${build}]+0}" && -z "${build_ids[${build}]+0}" ]]; then # Do we have enough processors to run it? if [[ ${_build_job_max} -ge $(( build_jobs[build] + procs_in_use )) ]]; then - if [[ "${build}" != "upp" ]]; then - "./build_${build}.sh" -j "${build_jobs[${build}]}" "${build_opts[${build}]:-}" > \ - "${logs_dir}/build_${build}.log" 2>&1 & - else - "./build_${build}.sh" "${build_opts[${build}]}" > \ - "${logs_dir}/build_${build}.log" 2>&1 & - fi + # double-quoting build_opts here will not work since it is a string of options + #shellcheck disable=SC2086 + "./build_${build}.sh" ${build_opts[${build}]:-} -j "${build_jobs[${build}]}" > \ + "${logs_dir}/build_${build}.log" 2>&1 & build_ids["${build}"]=$! echo "Starting build_${build}.sh" procs_in_use=$(( procs_in_use + build_jobs[${build}] )) diff --git a/sorc/build_gdas.sh b/sorc/build_gdas.sh index b1a17c33dd..43c503ab4d 100755 --- a/sorc/build_gdas.sh +++ b/sorc/build_gdas.sh @@ -2,11 +2,12 @@ set -eux OPTIND=1 +_opts="-f " # forces a clean build while getopts ":j:dv" option; do case "${option}" in - d) export BUILD_TYPE="DEBUG";; - j) export BUILD_JOBS=${OPTARG};; - v) export BUILD_VERBOSE="YES";; + d) _opts+="-c -DCMAKE_BUILD_TYPE=Debug " ;; + j) BUILD_JOBS=${OPTARG};; + v) _opts+="-v ";; :) echo "[${BASH_SOURCE[0]}]: ${option} requires an argument" usage @@ -19,12 +20,10 @@ while getopts ":j:dv" option; do done shift $((OPTIND-1)) -# TODO: GDASApp does not presently handle BUILD_TYPE - -BUILD_TYPE=${BUILD_TYPE:-"Release"} \ -BUILD_VERBOSE=${BUILD_VERBOSE:-"NO"} \ +# double quoting opts will not work since it is a string of options +# shellcheck disable=SC2086 BUILD_JOBS="${BUILD_JOBS:-8}" \ WORKFLOW_BUILD="ON" \ -./gdas.cd/build.sh +./gdas.cd/build.sh ${_opts} -f exit diff --git a/sorc/build_gfs_utils.sh b/sorc/build_gfs_utils.sh index 09bd4a9656..e53f71ddcd 100755 --- a/sorc/build_gfs_utils.sh +++ b/sorc/build_gfs_utils.sh @@ -18,14 +18,12 @@ EOF exit 1 } -cwd=$(pwd) - OPTIND=1 while getopts ":j:dvh" option; do case "${option}" in - d) export BUILD_TYPE="DEBUG";; - v) export BUILD_VERBOSE="YES";; - j) export BUILD_JOBS="${OPTARG}";; + d) BUILD_TYPE="Debug";; + v) BUILD_VERBOSE="YES";; + j) BUILD_JOBS="${OPTARG}";; h) usage ;; @@ -44,6 +42,6 @@ shift $((OPTIND-1)) BUILD_TYPE=${BUILD_TYPE:-"Release"} \ BUILD_VERBOSE=${BUILD_VERBOSE:-"NO"} \ BUILD_JOBS=${BUILD_JOBS:-8} \ -"${cwd}/gfs_utils.fd/ush/build.sh" +"./gfs_utils.fd/ush/build.sh" exit diff --git a/sorc/build_gsi_enkf.sh b/sorc/build_gsi_enkf.sh index 9ba278e3ec..ba24cefa81 100755 --- a/sorc/build_gsi_enkf.sh +++ b/sorc/build_gsi_enkf.sh @@ -4,9 +4,9 @@ set -eux OPTIND=1 while getopts ":j:dv" option; do case "${option}" in - d) export BUILD_TYPE="DEBUG";; - j) export BUILD_JOBS="${OPTARG}";; - v) export BUILD_VERBOSE="YES";; + d) BUILD_TYPE="Debug";; + j) BUILD_JOBS="${OPTARG}";; + v) BUILD_VERBOSE="YES";; :) echo "[${BASH_SOURCE[0]}]: ${option} requires an argument" usage diff --git a/sorc/build_gsi_monitor.sh b/sorc/build_gsi_monitor.sh index 3de1262aac..31add1882a 100755 --- a/sorc/build_gsi_monitor.sh +++ b/sorc/build_gsi_monitor.sh @@ -1,14 +1,12 @@ #! /usr/bin/env bash set -eux -cwd=$(pwd) - OPTIND=1 while getopts ":j:dv" option; do case "${option}" in - d) export BUILD_TYPE="DEBUG";; - j) export BUILD_JOBS="${OPTARG}";; - v) export BUILD_VERBOSE="YES";; + d) BUILD_TYPE="Debug";; + j) BUILD_JOBS="${OPTARG}";; + v) BUILD_VERBOSE="YES";; :) echo "[${BASH_SOURCE[0]}]: ${option} requires an argument" usage @@ -24,6 +22,6 @@ shift $((OPTIND-1)) BUILD_TYPE=${BUILD_TYPE:-"Release"} \ BUILD_VERBOSE=${BUILD_VERBOSE:-"NO"} \ BUILD_JOBS=${BUILD_JOBS:-8} \ -"${cwd}/gsi_monitor.fd/ush/build.sh" +"./gsi_monitor.fd/ush/build.sh" exit diff --git a/sorc/build_gsi_utils.sh b/sorc/build_gsi_utils.sh index 81eab0f628..58c64e6e4a 100755 --- a/sorc/build_gsi_utils.sh +++ b/sorc/build_gsi_utils.sh @@ -1,14 +1,12 @@ #! /usr/bin/env bash set -eux -cwd=$(pwd) - OPTIND=1 while getopts ":j:dv" option; do case "${option}" in - d) export BUILD_TYPE="DEBUG";; - j) export BUILD_JOBS="${OPTARG}";; - v) export BUILD_VERBOSE="YES";; + d) BUILD_TYPE="Debug";; + j) BUILD_JOBS="${OPTARG}";; + v) BUILD_VERBOSE="YES";; :) echo "[${BASH_SOURCE[0]}]: ${option} requires an argument" usage @@ -25,6 +23,6 @@ BUILD_TYPE=${BUILD_TYPE:-"Release"} \ BUILD_VERBOSE=${BUILD_VERBOSE:-"NO"} \ BUILD_JOBS=${BUILD_JOBS:-8} \ UTIL_OPTS="-DBUILD_UTIL_ENKF_GFS=ON -DBUILD_UTIL_NCIO=ON" \ -"${cwd}/gsi_utils.fd/ush/build.sh" +"./gsi_utils.fd/ush/build.sh" exit diff --git a/sorc/build_ufs.sh b/sorc/build_ufs.sh index 24ee8c5f13..d18dbef9fa 100755 --- a/sorc/build_ufs.sh +++ b/sorc/build_ufs.sh @@ -9,7 +9,7 @@ CCPP_SUITES="FV3_GFS_v17_p8_ugwpv1,FV3_GFS_v17_coupled_p8_ugwpv1" # TODO: does while getopts ":da:j:vw" option; do case "${option}" in - d) BUILD_TYPE="DEBUG";; + d) BUILD_TYPE="Debug";; a) APP="${OPTARG}";; j) BUILD_JOBS="${OPTARG}";; v) export BUILD_VERBOSE="YES";; @@ -30,7 +30,7 @@ source "./tests/module-setup.sh" MAKE_OPT="-DAPP=${APP} -D32BIT=ON -DCCPP_SUITES=${CCPP_SUITES}" [[ ${PDLIB:-"OFF"} = "ON" ]] && MAKE_OPT+=" -DPDLIB=ON" -[[ ${BUILD_TYPE:-"Release"} = "DEBUG" ]] && MAKE_OPT+=" -DDEBUG=ON" +[[ ${BUILD_TYPE:-"Release"} = "Debug" ]] && MAKE_OPT+=" -DDEBUG=ON" COMPILE_NR=0 CLEAN_BEFORE=YES CLEAN_AFTER=NO diff --git a/sorc/build_ufs_utils.sh b/sorc/build_ufs_utils.sh index e78ca3c180..63ec56cb41 100755 --- a/sorc/build_ufs_utils.sh +++ b/sorc/build_ufs_utils.sh @@ -4,8 +4,9 @@ set -eux OPTIND=1 while getopts ":j:dv" option; do case "${option}" in - j) export BUILD_JOBS="${OPTARG}";; - v) export BUILD_VERBOSE="YES";; + d) BUILD_TYPE="Debug" ;; + j) BUILD_JOBS="${OPTARG}";; + v) BUILD_VERBOSE="YES";; :) echo "[${BASH_SOURCE[0]}]: ${option} requires an argument" usage @@ -18,13 +19,11 @@ while getopts ":j:dv" option; do done shift $((OPTIND-1)) -script_dir=$(dirname "${BASH_SOURCE[0]}") -cd "${script_dir}/ufs_utils.fd" || exit 1 - CMAKE_OPTS="-DGFS=ON" \ +BUILD_TYPE=${BUILD_TYPE:-"Release"} \ BUILD_JOBS=${BUILD_JOBS:-8} \ BUILD_VERBOSE=${BUILD_VERBOSE:-} \ -./build_all.sh +./ufs_utils.fd/build_all.sh exit diff --git a/sorc/build_upp.sh b/sorc/build_upp.sh index 8a2e1f6fcd..e217e171db 100755 --- a/sorc/build_upp.sh +++ b/sorc/build_upp.sh @@ -7,23 +7,23 @@ cd "${script_dir}" || exit 1 OPTIND=1 _opts="" 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" - ;; - *) - echo "[${BASH_SOURCE[0]}]: Unrecognized option: ${option}" - ;; - esac + case "${option}" in + d) _opts+="-d " ;; + j) BUILD_JOBS="${OPTARG}" ;; + v) _opts+="-v ";; + :) + echo "[${BASH_SOURCE[0]}]: ${option} requires an argument" + ;; + *) + echo "[${BASH_SOURCE[0]}]: Unrecognized option: ${option}" + ;; + esac done shift $((OPTIND-1)) # Check final exec folder exists if [[ ! -d "../exec" ]]; then - mkdir ../exec + mkdir -p ../exec fi cd ufs_model.fd/FV3/upp/tests diff --git a/sorc/build_ww3prepost.sh b/sorc/build_ww3prepost.sh index 19cdba98da..5b527a1641 100755 --- a/sorc/build_ww3prepost.sh +++ b/sorc/build_ww3prepost.sh @@ -6,12 +6,12 @@ cd "${script_dir}" || exit 1 # Default settings APP="S2SWA" -PDLIB="OFF" +PDLIB="OFF" while getopts ":j:a:dvw" option; do case "${option}" in a) APP="${OPTARG}";; - d) BUILD_TYPE="DEBUG";; + d) BUILD_TYPE="Debug";; j) BUILD_JOBS="${OPTARG}";; v) export BUILD_VERBOSE="YES";; w) PDLIB="ON";; @@ -27,15 +27,15 @@ while getopts ":j:a:dvw" option; do done # Determine which switch to use -if [[ "${APP}" == "ATMW" ]]; then +if [[ "${APP}" == "ATMW" ]]; then ww3switch="model/esmf/switch" -else - if [[ "${PDLIB}" == "ON" ]]; then +else + if [[ "${PDLIB}" == "ON" ]]; then ww3switch="model/bin/switch_meshcap_pdlib" - else + else ww3switch="model/bin/switch_meshcap" - fi -fi + fi +fi # Check final exec folder exists if [[ ! -d "../exec" ]]; then @@ -86,15 +86,16 @@ sed -e "s/DIST/SHRD/g"\ "${path_build}/tempswitch" > "${path_build}/switch" rm "${path_build}/tempswitch" -echo "Switch file is ${buildswitch} with switches:" +echo "Switch file is ${buildswitch} with switches:" cat "${buildswitch}" #define cmake build options MAKE_OPT="-DCMAKE_INSTALL_PREFIX=install" -[[ ${BUILD_TYPE:-"Release"} = "DEBUG" ]] && MAKE_OPT+=" -DDEBUG=ON" +[[ ${BUILD_TYPE:-"Release"} = "Debug" ]] && MAKE_OPT+=" -DCMAKE_BUILD_TYPE=Debug" #Build executables: -cmake "${WW3_DIR}" -DSWITCH="${buildswitch}" "${MAKE_OPT}" +# shellcheck disable=SC2086 +cmake "${WW3_DIR}" -DSWITCH="${buildswitch}" ${MAKE_OPT} rc=$? if (( rc != 0 )); then echo "Fatal error in cmake." diff --git a/sorc/gdas.cd b/sorc/gdas.cd index 10614c9855..37a28d114c 160000 --- a/sorc/gdas.cd +++ b/sorc/gdas.cd @@ -1 +1 @@ -Subproject commit 10614c9855042b436bb8c37c7e2faeead01259cb +Subproject commit 37a28d114c9be6dccff890b33d742b03c22f07c1 diff --git a/sorc/gsi_monitor.fd b/sorc/gsi_monitor.fd index fb39e83880..149cd811f2 160000 --- a/sorc/gsi_monitor.fd +++ b/sorc/gsi_monitor.fd @@ -1 +1 @@ -Subproject commit fb39e83880d44d433bed9af856bc5178bf63d64c +Subproject commit 149cd811f273883e7d6400eded7b980acd65ca2b diff --git a/sorc/link_workflow.sh b/sorc/link_workflow.sh index 3e0ff4db64..2b54f3ea10 100755 --- a/sorc/link_workflow.sh +++ b/sorc/link_workflow.sh @@ -199,6 +199,18 @@ if [[ -d "${HOMEgfs}/sorc/gdas.cd" ]]; then done fi +#------------------------------ +#--add GDASApp parm directory +#------------------------------ +if [[ -d "${HOMEgfs}/sorc/gdas.cd" ]]; then + cd "${HOMEgfs}/parm/gdas" || exit 1 + declare -a gdasapp_comps=("aero" "atm" "io" "ioda" "snow" "soca") + for comp in "${gdasapp_comps[@]}"; do + [[ -d "${comp}" ]] && rm -rf "${comp}" + ${LINK_OR_COPY} "${HOMEgfs}/sorc/gdas.cd/parm/${comp}" . + done +fi + #------------------------------ #--add GDASApp files #------------------------------ @@ -311,6 +323,10 @@ if [[ -d "${HOMEgfs}/sorc/gdas.cd/build" ]]; then "fv3jedi_enshofx.x" \ "fv3jedi_hofx_nomodel.x" \ "fv3jedi_testdata_downloader.py" \ + "gdas_ens_handler.x" \ + "gdas_incr_handler.x" \ + "gdas_obsprovider2ioda.x" \ + "gdas_socahybridweights.x" \ "soca_convertincrement.x" \ "soca_error_covariance_training.x" \ "soca_setcorscales.x" \ diff --git a/sorc/wxflow b/sorc/wxflow index 528f5abb49..dd9ca24a5b 160000 --- a/sorc/wxflow +++ b/sorc/wxflow @@ -1 +1 @@ -Subproject commit 528f5abb49e80751f83ebd6eb0a87bc70012bb24 +Subproject commit dd9ca24a5bb14b75acde685e5fa23b300fd47770 diff --git a/ush/forecast_det.sh b/ush/forecast_det.sh index 198df6505f..a1c153776b 100755 --- a/ush/forecast_det.sh +++ b/ush/forecast_det.sh @@ -45,7 +45,8 @@ FV3_det(){ RERUN=${RERUN:-"NO"} # Get a list of all YYYYMMDD.HH0000.coupler.res files from the atmos restart directory - mapfile -t file_array < <(find "${COM_ATMOS_RESTART:-/dev/null}" -name "????????.??0000.coupler.res") + # shellcheck disable=SC2312 + mapfile -t file_array < <(find "${COM_ATMOS_RESTART:-/dev/null}" -name "????????.??0000.coupler.res" | sort) if [[ ( "${RUN}" = "gfs" || "${RUN}" = "gefs" ) \ && "${#file_array[@]}" -gt 0 ]]; then diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 644a2180da..a5fee9a7fd 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -11,6 +11,8 @@ ## for execution. ##### +# Disable variable not used warnings +# shellcheck disable=SC2034 FV3_postdet(){ echo "SUB ${FUNCNAME[0]}: Entering for RUN = ${RUN}" @@ -190,7 +192,7 @@ EOF fi # NoahMP table - local noahmptablefile="${HOMEgfs}/parm/ufs/noahmptable.tbl" + local noahmptablefile="${PARMgfs}/ufs/noahmptable.tbl" if [[ ! -f ${noahmptablefile} ]]; then echo "FATAL ERROR: missing noahmp table file ${noahmptablefile}" exit 1 @@ -488,7 +490,7 @@ FV3_nml(){ # namelist output for a certain component echo "SUB ${FUNCNAME[0]}: Creating name lists and model configure file for FV3" # Call child scripts in current script directory - source "${HOMEgfs}/ush/parsing_namelists_FV3.sh" + source "${USHgfs}/parsing_namelists_FV3.sh" FV3_namelists echo "SUB ${FUNCNAME[0]}: FV3 name lists and model configure file created" } @@ -652,7 +654,7 @@ WW3_nml() { exit 4 fi fi - source "${HOMEgfs}/ush/parsing_namelists_WW3.sh" + source "${USHgfs}/parsing_namelists_WW3.sh" WW3_namelists } @@ -803,7 +805,7 @@ MOM6_postdet() { MOM6_nml() { echo "SUB ${FUNCNAME[0]}: Creating name list for MOM6" - source "${HOMEgfs}/ush/parsing_namelists_MOM6.sh" + source "${USHgfs}/parsing_namelists_MOM6.sh" MOM6_namelists } @@ -884,7 +886,7 @@ CICE_postdet() { CICE_nml() { echo "SUB ${FUNCNAME[0]}: Creating name list for CICE" - source "${HOMEgfs}/ush/parsing_namelists_CICE.sh" + source "${USHgfs}/parsing_namelists_CICE.sh" CICE_namelists } diff --git a/ush/fv3gfs_remap.sh b/ush/fv3gfs_remap.sh deleted file mode 100755 index eaf2c64a01..0000000000 --- a/ush/fv3gfs_remap.sh +++ /dev/null @@ -1,116 +0,0 @@ -#! /usr/bin/env bash - -#-------------------------------------- -#-- remap FV3 6 tiles to global array -#-- Fanglin Yang, October 2016 -#-------------------------------------- - -source "$HOMEgfs/ush/preamble.sh" - -export CDATE=${CDATE:-"2016100300"} -export CASE=${CASE:-"C192"} # C48 C96 C192 C384 C768 C1152 C3072 -export GG=${master_grid:-"0p25deg"} # 1deg 0p5deg 0p25deg 0p125deg - -pwd=$(pwd) -export DATA=${DATA:-$pwd} -export HOMEgfs=${HOMEgfs:-$PACKAGEROOT} -export REMAPEXE=${REMAPEXE:-$HOMEgfs/exec/fregrid_parallel} -export IPD4=${IPD4:-"YES"} - -cycn=$(echo $CDATE | cut -c 9-10) -export TCYC=${TCYC:-".t${cycn}z."} -export CDUMP=${CDUMP:-gfs} -export PREFIX=${PREFIX:-${CDUMP}${TCYC}} - -#-------------------------------------------------- -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}} - -#-------------------------------------------------- -if [ $GG = 1deg ]; then export nlon=360 ; export nlat=180 ; fi -if [ $GG = 0p5deg ]; then export nlon=720 ; export nlat=360 ; fi -if [ $GG = 0p25deg ]; then export nlon=1440 ; export nlat=720 ; fi -if [ $GG = 0p125deg ]; then export nlon=2880 ; export nlat=1440 ; fi - -#-------------------------------------------------- -hgt=h; if [ $IPD4 = YES ]; then hgt=z; fi - -#--for non-hydrostatic case -export atmos_4xdaily_nh="slp, vort850, vort200,\ - us, u1000, u850, u700, u500, u200, u100, u50, u10,\ - vs, v1000, v850, v700, v500, v200, v100, v50, v10,\ - tm, t1000, t850, t700, t500, t200, t100, t50, t10,\ - ${hgt}1000, ${hgt}850, ${hgt}700, ${hgt}500, ${hgt}200, ${hgt}100, ${hgt}50, ${hgt}10,\ - q1000, q850, q700, q500, q200, q100, q50, q10,\ - rh1000, rh850, rh700, rh500, rh200,\ - omg1000, omg850, omg700, omg500, omg200, omg100, omg50, omg10,\ - w700,w850,w500, w200" - -#--for hydrostatic case -export atmos_4xdaily_hy="slp, vort850, vort200,\ - us, u1000, u850, u700, u500, u200, u100, u50, u10,\ - vs, v1000, v850, v700, v500, v200, v100, v50, v10,\ - tm, t1000, t850, t700, t500, t200, t100, t50, t10,\ - ${hgt}1000, ${hgt}850, ${hgt}700, ${hgt}500, ${hgt}200, ${hgt}100, ${hgt}50, ${hgt}10,\ - q1000, q850, q700, q500, q200, q100, q50, q10,\ - rh1000, rh850, rh700, rh500, rh200,\ - omg1000, omg850, omg700, omg500, omg200, omg100, omg50, omg10,\ - w700" - -export nggps2d_nh="ALBDOsfc, CPRATsfc, PRATEsfc, DLWRFsfc, ULWRFsfc,\ - DSWRFsfc, USWRFsfc, DSWRFtoa, USWRFtoa, ULWRFtoa,\ - GFLUXsfc, HGTsfc, HPBLsfc, ICECsfc, SLMSKsfc,\ - LHTFLsfc, SHTFLsfc, PRESsfc, PWATclm, SOILM,\ - SOILW1, SOILW2, SOILW3, SOILW4, SPFH2m,\ - TCDCclm, TCDChcl, TCDClcl, TCDCmcl,\ - SOILT1, SOILT2, SOILT3, SOILT4,\ - TMP2m, TMPsfc, UGWDsfc, VGWDsfc, UFLXsfc,\ - VFLXsfc, UGRD10m, VGRD10m, WEASDsfc, SNODsfc,\ - ZORLsfc, VFRACsfc, F10Msfc, VTYPEsfc, STYPEsfc" -export nggps2d_hy="$nggps2d_nh" - -export nggps3d_nh="ucomp, vcomp, temp, delp, sphum, o3mr, clwmr, nhpres, w, delz" #for non-hydrostatic case -export nggps3d_hy="ucomp, vcomp, temp, delp, sphum, o3mr, clwmr, hypres" #for hydrostatic case - -#-------------------------------------------------- -cd $DATA || exit 8 - -testfile=nggps3d.tile4.nc -nhrun=$(ncdump -c $testfile | grep nhpres) -nhrun=$? - -export OMP_NUM_THREADS=$NTHREADS_REMAP - -#-------------------------------------------------- -err=0 -for type in atmos_4xdaily nggps2d nggps3d ; do - - export in_file="$type" - export out_file=${PREFIX}${type}.${GG}.nc - [[ -s $DATA/$out_file ]] && rm -f $DATA/$out_file - if [ $nhrun -eq 0 ]; then - export fld=$(eval echo \${${type}_nh}) - else - export fld=$(eval echo \${${type}_hy}) - fi - - $APRUN_REMAP $REMAPEXE --input_dir $DATA \ - --input_file $in_file \ - --output_dir $DATA \ - --output_file $out_file \ - --input_mosaic $grid_loc \ - --scalar_field "$fld" \ - --interp_method conserve_order1 \ - --remap_file $weight_file \ - --nlon $nlon \ - --nlat $nlat - rc=$? - ((err+=$rc)) - -done - -exit $err - diff --git a/ush/gaussian_sfcanl.sh b/ush/gaussian_sfcanl.sh index 79b2cb5b7d..5c6c842845 100755 --- a/ush/gaussian_sfcanl.sh +++ b/ush/gaussian_sfcanl.sh @@ -23,13 +23,7 @@ # OUTPUT_FILE Output gaussian analysis file format. Default is "nemsio" # Set to "netcdf" for netcdf output file # Otherwise, output in nemsio. -# BASEDIR Root directory where all scripts and fixed files reside. -# Default is /nwprod2. -# HOMEgfs Directory for gfs version. Default is -# $BASEDIR/gfs_ver.v15.0.0} # FIXWGTS Weight file to use for interpolation -# EXECgfs Directory of the program executable. Defaults to -# $HOMEgfs/exec # DATA Working directory # (if nonexistent will be made, used and deleted) # Defaults to current working directory @@ -106,7 +100,7 @@ # ################################################################################ -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" CASE=${CASE:-C768} res=$(echo $CASE | cut -c2-) @@ -117,11 +111,6 @@ LATB_SFC=${LATB_SFC:-$LATB_CASE} DONST=${DONST:-"NO"} LEVS=${LEVS:-64} LEVSP1=$(($LEVS+1)) -# Directories. -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} FIXWGTS=${FIXWGTS:-${FIXgfs}/orog/${CASE}/fv3_SCRIP_${CASE}_GRIDSPEC_lon${LONB_SFC}_lat${LATB_SFC}.gaussian.neareststod.nc} DATA=${DATA:-$(pwd)} diff --git a/ush/getdump.sh b/ush/getdump.sh index 462ca5e755..7ab241ca1a 100755 --- a/ush/getdump.sh +++ b/ush/getdump.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" COMPONENT=${COMPONENT:-atmos} diff --git a/ush/getges.sh b/ush/getges.sh index 2fb54fccc7..d960354bf4 100755 --- a/ush/getges.sh +++ b/ush/getges.sh @@ -76,7 +76,7 @@ ################################################################################ #------------------------------------------------------------------------------- -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Set some default parameters. fhbeg=03 # hour to begin searching backward for guess diff --git a/ush/gfs_bfr2gpk.sh b/ush/gfs_bfr2gpk.sh index add68536ec..dbd8defb0e 100755 --- a/ush/gfs_bfr2gpk.sh +++ b/ush/gfs_bfr2gpk.sh @@ -10,7 +10,7 @@ # Log: # # K. Brill/HPC 04/12/05 # ######################################################################### -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Set GEMPAK paths. diff --git a/ush/gfs_bufr.sh b/ush/gfs_bufr.sh index 5ed05f9beb..54e8ec52b5 100755 --- a/ush/gfs_bufr.sh +++ b/ush/gfs_bufr.sh @@ -17,9 +17,10 @@ # 2018-05-22 Guang Ping Lou: Making it work for both GFS and FV3GFS # 2018-05-30 Guang Ping Lou: Make sure all files are available. # 2019-10-10 Guang Ping Lou: Read in NetCDF files +# 2024-03-03 Bo Cui: Add options to use different bufr table for different resolution NetCDF files # echo "History: February 2003 - First implementation of this utility script" # -source "${HOMEgfs:?}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" if [[ "${F00FLAG}" == "YES" ]]; then f00flag=".true." @@ -76,11 +77,23 @@ for (( hr = 10#${FSTART}; hr <= 10#${FEND}; hr = hr + 10#${FINT} )); do done # define input BUFR table file. -ln -sf "${PARMbufrsnd}/bufr_gfs_${CLASS}.tbl" fort.1 -ln -sf "${STNLIST:-${PARMbufrsnd}/bufr_stalist.meteo.gfs}" fort.8 -ln -sf "${PARMbufrsnd}/bufr_ij13km.txt" fort.7 +ln -sf "${PARMgfs}/product/bufr_gfs_${CLASS}.tbl" fort.1 +ln -sf "${STNLIST:-${PARMgfs}/product/bufr_stalist.meteo.gfs}" fort.8 -${APRUN_POSTSND} "${EXECbufrsnd}/${pgm}" < gfsparm > "out_gfs_bufr_${FEND}" +case "${CASE}" in + "C768") + ln -sf "${PARMbufrsnd}/bufr_ij13km.txt" fort.7 + ;; + "C1152") + ln -sf "${PARMbufrsnd}/bufr_ij9km.txt" fort.7 + ;; + *) + echo "FATAL ERROR: Unrecognized bufr_ij*km.txt For CASE ${CASE}, ABORT!" + exit 1 + ;; +esac + +${APRUN_POSTSND} "${EXECgfs}/${pgm}" < gfsparm > "out_gfs_bufr_${FEND}" export err=$? if [ $err -ne 0 ]; then diff --git a/ush/gfs_bufr_netcdf.sh b/ush/gfs_bufr_netcdf.sh index b358c6b69a..843922e53b 100755 --- a/ush/gfs_bufr_netcdf.sh +++ b/ush/gfs_bufr_netcdf.sh @@ -19,7 +19,7 @@ # 2019-10-10 Guang Ping Lou: Read in NetCDF files # echo "History: February 2003 - First implementation of this utility script" # -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" if test "$F00FLAG" = "YES" then @@ -105,11 +105,11 @@ do done # define input BUFR table file. -ln -sf $PARMbufrsnd/bufr_gfs_${CLASS}.tbl fort.1 -ln -sf ${STNLIST:-$PARMbufrsnd/bufr_stalist.meteo.gfs} fort.8 -ln -sf $PARMbufrsnd/bufr_ij13km.txt fort.7 +ln -sf ${PARMgfs}/product/bufr_gfs_${CLASS}.tbl fort.1 +ln -sf ${STNLIST:-${PARMgfs}/product/bufr_stalist.meteo.gfs} fort.8 +ln -sf ${PARMgfs}/product/bufr_ij13km.txt fort.7 -${APRUN_POSTSND} "${EXECbufrsnd}/${pgm}" < gfsparm > "out_gfs_bufr_${FEND}" +${APRUN_POSTSND} "${EXECgfs}/${pgm}" < gfsparm > "out_gfs_bufr_${FEND}" export err=$? exit ${err} diff --git a/ush/gfs_sndp.sh b/ush/gfs_sndp.sh index e07b3eb42c..ade49eec36 100755 --- a/ush/gfs_sndp.sh +++ b/ush/gfs_sndp.sh @@ -7,7 +7,7 @@ # 1) 2004-09-10 Steve Gilbert First Implementation ################################################################ -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Create "collectives" consisting of groupings of the soundings # into files designated by geographical region. Each input @@ -16,7 +16,7 @@ source "$HOMEgfs/ush/preamble.sh" export m=$1 mkdir $DATA/$m cd $DATA/$m - cp ${HOMEgfs}/fix/product/gfs_collective${m}.list $DATA/$m/. + cp ${FIXgfs}/product/gfs_collective${m}.list $DATA/$m/. CCCC=KWBC file_list=gfs_collective${m}.list @@ -37,7 +37,7 @@ cd $DATA/$m #. prep_step export FORT11=$DATA/${m}/bufrin export FORT51=./bufrout - ${EXECbufrsnd}/${pgm} << EOF + ${EXECgfs}/${pgm} << EOF &INPUT BULHED="$WMOHEAD",KWBX="$CCCC", NCEP2STD=.TRUE., diff --git a/ush/gfs_truncate_enkf.sh b/ush/gfs_truncate_enkf.sh index 8aa47e26e2..6102ada75d 100755 --- a/ush/gfs_truncate_enkf.sh +++ b/ush/gfs_truncate_enkf.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" member=$1 export SIGINP=$2 diff --git a/ush/global_savefits.sh b/ush/global_savefits.sh index f26132dd8a..973d27a358 100755 --- a/ush/global_savefits.sh +++ b/ush/global_savefits.sh @@ -3,7 +3,7 @@ ######################################################## # save fit and horiz files for all analysis cycles ######################################################## -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" export FIT_DIR=${FIT_DIR:-$COMOUT/fits} export HORZ_DIR=${HORZ_DIR:-$COMOUT/horiz} diff --git a/ush/hpssarch_gen.sh b/ush/hpssarch_gen.sh index 903c2d63fb..eadd465421 100755 --- a/ush/hpssarch_gen.sh +++ b/ush/hpssarch_gen.sh @@ -4,7 +4,7 @@ # Fanglin Yang, 20180318 # --create bunches of files to be archived to HPSS ################################################### -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" type=${1:-gfs} ##gfs, gdas, enkfgdas or enkfggfs diff --git a/ush/interp_atmos_master.sh b/ush/interp_atmos_master.sh index 0abc6ad185..4c4ee4b03c 100755 --- a/ush/interp_atmos_master.sh +++ b/ush/interp_atmos_master.sh @@ -4,7 +4,7 @@ # Generate 0.25 / 0.5 / 1 degree interpolated grib2 files for each input grib2 file # trim's RH and tweaks sea-ice cover -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" input_file=${1:-"pgb2file_in"} # Input pressure grib2 file output_file_prefix=${2:-"pgb2file_out"} # Prefix for output grib2 file; the prefix is appended by resolution e.g. _0p25 @@ -29,7 +29,7 @@ grid0p50="latlon 0:720:0.5 90:361:-0.5" grid1p00="latlon 0:360:1.0 90:181:-1.0" # "Import" functions used in this script -source "${HOMEgfs}/ush/product_functions.sh" +source "${USHgfs}/product_functions.sh" # Transform the input ${grid_string} into an array for processing IFS=':' read -ra grids <<< "${grid_string}" diff --git a/ush/interp_atmos_sflux.sh b/ush/interp_atmos_sflux.sh index 516a2f5e4a..cdf748f666 100755 --- a/ush/interp_atmos_sflux.sh +++ b/ush/interp_atmos_sflux.sh @@ -3,7 +3,7 @@ # This script takes in a master flux file and creates interpolated flux files at various interpolated resolutions # Generate 0.25 / 0.5 / 1 degree interpolated grib2 flux files for each input sflux grib2 file -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" input_file=${1:-"sfluxfile_in"} # Input sflux grib2 file output_file_prefix=${2:-"sfluxfile_out"} # Prefix for output sflux grib2 file; the prefix is appended by resolution e.g. _0p25 @@ -46,4 +46,4 @@ ${WGRIB2} "${input_file}" ${defaults} \ ${output_grids} export err=$?; err_chk -exit 0 \ No newline at end of file +exit 0 diff --git a/ush/link_crtm_fix.sh b/ush/link_crtm_fix.sh index 61ac3f7870..5204c3e3da 100755 --- a/ush/link_crtm_fix.sh +++ b/ush/link_crtm_fix.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # Get CRTM fix directory from (in this order): # 1. First argument to script, or diff --git a/ush/module-setup.sh b/ush/module-setup.sh index e204bae8a2..008ef7ee97 100755 --- a/ush/module-setup.sh +++ b/ush/module-setup.sh @@ -1,7 +1,7 @@ #!/bin/bash set -u -source "${HOMEgfs}/ush/detect_machine.sh" +source "${HOMEgfs}/ush/detect_machine.sh" if [[ ${MACHINE_ID} = jet* ]] ; then # We are on NOAA Jet @@ -125,7 +125,7 @@ elif [[ ${MACHINE_ID} = "noaacloud" ]]; then export SPACK_ROOT=/contrib/global-workflow/spack-stack/spack export PATH=${PATH}:${SPACK_ROOT}/bin . "${SPACK_ROOT}"/share/spack/setup-env.sh - + else echo WARNING: UNKNOWN PLATFORM 1>&2 fi diff --git a/ush/oceanice_nc2grib2.sh b/ush/oceanice_nc2grib2.sh index 1d0e5ae274..2afd0e07f2 100755 --- a/ush/oceanice_nc2grib2.sh +++ b/ush/oceanice_nc2grib2.sh @@ -3,7 +3,7 @@ # This script contains functions to convert ocean/ice rectilinear netCDF files to grib2 format # This script uses the wgrib2 utility to convert the netCDF files to grib2 format and then indexes it -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ################################################################################ function _ice_nc2grib2 { diff --git a/ush/ozn_xtrct.sh b/ush/ozn_xtrct.sh index 57ff87be5f..0c623bf03c 100755 --- a/ush/ozn_xtrct.sh +++ b/ush/ozn_xtrct.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" #------------------------------------------------------------------ # ozn_xtrct.sh @@ -132,12 +132,12 @@ else #-------------------------------------------------------------------- # Copy extraction programs to working directory # - ${NCP} "${HOMEgfs}/exec/oznmon_time.x" ./oznmon_time.x + ${NCP} "${EXECgfs}/oznmon_time.x" ./oznmon_time.x if [[ ! -e oznmon_time.x ]]; then iret=2 exit ${iret} fi - ${NCP} "${HOMEgfs}/exec/oznmon_horiz.x" ./oznmon_horiz.x + ${NCP} "${EXECgfs}/oznmon_horiz.x" ./oznmon_horiz.x if [[ ! -e oznmon_horiz.x ]]; then iret=3 exit ${iret} diff --git a/ush/parsing_model_configure_FV3.sh b/ush/parsing_model_configure_FV3.sh index cd4f68df8b..0ec3517099 100755 --- a/ush/parsing_model_configure_FV3.sh +++ b/ush/parsing_model_configure_FV3.sh @@ -44,12 +44,12 @@ local OUTPUT_FH=${FV3_OUTPUT_FH} local IAU_OFFSET=${IAU_OFFSET:-0} # Ensure the template exists -template="${HOMEgfs}/parm/ufs/model_configure.IN" +template="${PARMgfs}/ufs/model_configure.IN" if [[ ! -f ${template} ]]; then echo "FATAL ERROR: template '${template}' does not exist, ABORT!" exit 1 fi -source "${HOMEgfs}/ush/atparse.bash" +source "${USHgfs}/atparse.bash" rm -f "${DATA}/model_configure" atparse < "${template}" >> "${DATA}/model_configure" echo "Rendered model_configure" diff --git a/ush/parsing_namelists_CICE.sh b/ush/parsing_namelists_CICE.sh index d749e6d890..ec44c7cdca 100755 --- a/ush/parsing_namelists_CICE.sh +++ b/ush/parsing_namelists_CICE.sh @@ -104,12 +104,12 @@ local CICE_BLCKY=${block_size_y} local CICE_DECOMP=${processor_shape} # Ensure the template exists -local template=${CICE_TEMPLATE:-"${HOMEgfs}/parm/ufs/ice_in.IN"} +local template=${CICE_TEMPLATE:-"${PARMgfs}/ufs/ice_in.IN"} if [[ ! -f "${template}" ]]; then echo "FATAL ERROR: template '${template}' does not exist, ABORT!" exit 1 fi -source "${HOMEgfs}/ush/atparse.bash" +source "${USHgfs}/atparse.bash" rm -f "${DATA}/ice_in" atparse < "${template}" >> "${DATA}/ice_in" echo "Rendered ice_in:" diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh index 88a0065076..14610f1201 100755 --- a/ush/parsing_namelists_FV3.sh +++ b/ush/parsing_namelists_FV3.sh @@ -14,10 +14,10 @@ FV3_namelists(){ # setup the tables -DIAG_TABLE=${DIAG_TABLE:-${HOMEgfs}/parm/ufs/fv3/diag_table} -DIAG_TABLE_APPEND=${DIAG_TABLE_APPEND:-${HOMEgfs}/parm/ufs/fv3/diag_table_aod} -DATA_TABLE=${DATA_TABLE:-${HOMEgfs}/parm/ufs/MOM6_data_table.IN} -FIELD_TABLE=${FIELD_TABLE:-${HOMEgfs}/parm/ufs/fv3/field_table} +DIAG_TABLE=${DIAG_TABLE:-${PARMgfs}/ufs/fv3/diag_table} +DIAG_TABLE_APPEND=${DIAG_TABLE_APPEND:-${PARMgfs}/ufs/fv3/diag_table_aod} +DATA_TABLE=${DATA_TABLE:-${PARMgfs}/ufs/MOM6_data_table.IN} +FIELD_TABLE=${FIELD_TABLE:-${PARMgfs}/ufs/fv3/field_table} # ensure non-prognostic tracers are set dnats=${dnats:-0} @@ -42,7 +42,7 @@ 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" +source "${USHgfs}/atparse.bash" atparse < "${template}" >> "diag_table" diff --git a/ush/parsing_namelists_MOM6.sh b/ush/parsing_namelists_MOM6.sh index ca93edb526..9c1378fec4 100755 --- a/ush/parsing_namelists_MOM6.sh +++ b/ush/parsing_namelists_MOM6.sh @@ -55,7 +55,7 @@ echo "Rendered input.nml:" cat input.nml # Source functions from this file for filling in templates -source "${HOMEgfs}/ush/atparse.bash" +source "${USHgfs}/atparse.bash" # ================================================================ # MOM_input @@ -107,7 +107,7 @@ else local PERT_EPBL="False" fi # Ensure the template exists -local template=${MOM6_INPUT_TEMPLATE:-"${HOMEgfs}/parm/ufs/MOM_input_${OCNRES}.IN"} +local template=${MOM6_INPUT_TEMPLATE:-"${PARMgfs}/ufs/MOM_input_${OCNRES}.IN"} if [[ ! -f "${template}" ]]; then echo "FATAL ERROR: template '${template}' does not exist, ABORT!" exit 1 @@ -124,7 +124,7 @@ cat "${DATA}/INPUT/MOM_input" local MOM6_FRUNOFF=${FRUNOFF} # Ensure the template exists -local template=${MOM6_DATA_TABLE_TEMPLATE:-"${HOMEgfs}/parm/ufs/MOM6_data_table.IN"} +local template=${MOM6_DATA_TABLE_TEMPLATE:-"${PARMgfs}/ufs/MOM6_data_table.IN"} if [[ ! -f "${template}" ]]; then echo "FATAL ERROR: template '${template}' does not exist, ABORT!" exit 1 diff --git a/ush/parsing_namelists_WW3.sh b/ush/parsing_namelists_WW3.sh index 9b0a94695c..a01d694710 100755 --- a/ush/parsing_namelists_WW3.sh +++ b/ush/parsing_namelists_WW3.sh @@ -79,8 +79,8 @@ WW3_namelists(){ if [ $waveMULTIGRID = ".true." ]; then # ww3_multi template - if [ -f $PARMwave/ww3_multi.inp.tmpl ]; then - cp $PARMwave/ww3_multi.inp.tmpl ww3_multi.inp.tmpl + if [ -f ${PARMgfs}/wave/ww3_multi.inp.tmpl ]; then + cp ${PARMgfs}/wave/ww3_multi.inp.tmpl ww3_multi.inp.tmpl fi if [ ! -f ww3_multi.inp.tmpl ]; then echo "ABNORMAL EXIT: NO TEMPLATE FOR WW3 MULTI INPUT FILE" @@ -88,8 +88,8 @@ WW3_namelists(){ fi else # ww3_multi template - if [ -f $PARMwave/ww3_shel.inp.tmpl ]; then - cp $PARMwave/ww3_shel.inp.tmpl ww3_shel.inp.tmpl + if [ -f ${PARMgfs}/wave/ww3_shel.inp.tmpl ]; then + cp ${PARMgfs}/wave/ww3_shel.inp.tmpl ww3_shel.inp.tmpl fi if [ ! -f ww3_shel.inp.tmpl ]; then echo "ABNORMAL EXIT: NO TEMPLATE FOR WW3 SHEL INPUT FILE" @@ -99,18 +99,18 @@ WW3_namelists(){ # Buoy location file - if [ -f $PARMwave/wave_${NET}.buoys ] + if [ -f ${PARMgfs}/wave/wave_${NET}.buoys ] then - cp $PARMwave/wave_${NET}.buoys buoy.loc + cp ${PARMgfs}/wave/wave_${NET}.buoys buoy.loc fi if [ -f buoy.loc ] then set +x - echo " buoy.loc copied ($PARMwave/wave_${NET}.buoys)." + echo " buoy.loc copied (${PARMgfs}/wave/wave_${NET}.buoys)." set_trace else - echo " FATAL ERROR : buoy.loc ($PARMwave/wave_${NET}.buoys) NOT FOUND" + echo " FATAL ERROR : buoy.loc (${PARMgfs}/wave/wave_${NET}.buoys) NOT FOUND" exit 12 fi diff --git a/ush/parsing_ufs_configure.sh b/ush/parsing_ufs_configure.sh index bec5c8f0f6..ade07c52bf 100755 --- a/ush/parsing_ufs_configure.sh +++ b/ush/parsing_ufs_configure.sh @@ -93,7 +93,7 @@ else echo "INFO: using ufs.configure template: '${ufs_configure_template}'" fi -source "${HOMEgfs}/ush/atparse.bash" +source "${USHgfs}/atparse.bash" rm -f "${DATA}/ufs.configure" atparse < "${ufs_configure_template}" >> "${DATA}/ufs.configure" echo "Rendered ufs.configure:" diff --git a/ush/python/pygfs/task/analysis.py b/ush/python/pygfs/task/analysis.py index b562eeee4e..5709bc130e 100644 --- a/ush/python/pygfs/task/analysis.py +++ b/ush/python/pygfs/task/analysis.py @@ -25,6 +25,8 @@ class Analysis(Task): def __init__(self, config: Dict[str, Any]) -> None: super().__init__(config) self.config.ntiles = 6 + # Store location of GDASApp jinja2 templates + self.gdasapp_j2tmpl_dir = os.path.join(self.config.HOMEgfs, 'parm/gdas') def initialize(self) -> None: super().initialize() @@ -56,7 +58,7 @@ def get_obs_dict(self) -> Dict[str, Any]: a dictionary containing the list of observation files to copy for FileHandler """ logger.debug(f"OBS_LIST: {self.task_config['OBS_LIST']}") - obs_list_config = parse_j2yaml(self.task_config["OBS_LIST"], self.task_config) + obs_list_config = parse_j2yaml(self.task_config["OBS_LIST"], self.task_config, searchpath=self.gdasapp_j2tmpl_dir) logger.debug(f"obs_list_config: {obs_list_config}") # get observers from master dictionary observers = obs_list_config['observers'] @@ -88,7 +90,7 @@ def get_bias_dict(self) -> Dict[str, Any]: a dictionary containing the list of observation bias files to copy for FileHandler """ logger.debug(f"OBS_LIST: {self.task_config['OBS_LIST']}") - obs_list_config = parse_j2yaml(self.task_config["OBS_LIST"], self.task_config) + obs_list_config = parse_j2yaml(self.task_config["OBS_LIST"], self.task_config, searchpath=self.gdasapp_j2tmpl_dir) logger.debug(f"obs_list_config: {obs_list_config}") # get observers from master dictionary observers = obs_list_config['observers'] diff --git a/ush/python/pygfs/task/snow_analysis.py b/ush/python/pygfs/task/snow_analysis.py index 01c69dbc7b..9eee8314c3 100644 --- a/ush/python/pygfs/task/snow_analysis.py +++ b/ush/python/pygfs/task/snow_analysis.py @@ -11,7 +11,7 @@ FileHandler, to_fv3time, to_YMD, to_YMDH, to_timedelta, add_to_datetime, rm_p, - parse_j2yaml, parse_yamltmpl, save_as_yaml, + parse_j2yaml, save_as_yaml, Jinja, logit, Executable, @@ -99,7 +99,7 @@ def prepare_GTS(self) -> None: def _gtsbufr2iodax(exe, yaml_file): if not os.path.isfile(yaml_file): - logger.exception(f"{yaml_file} not found") + logger.exception(f"FATAL ERROR: {yaml_file} not found") raise FileNotFoundError(yaml_file) logger.info(f"Executing {exe}") @@ -260,9 +260,9 @@ def initialize(self) -> None: FileHandler({'mkdir': dirlist}).sync() # stage fix files - jedi_fix_list_path = os.path.join(self.task_config.HOMEgfs, 'parm', 'gdas', 'snow_jedi_fix.yaml') + jedi_fix_list_path = os.path.join(self.task_config.HOMEgfs, 'parm', 'gdas', 'snow_jedi_fix.yaml.j2') logger.info(f"Staging JEDI fix files from {jedi_fix_list_path}") - jedi_fix_list = parse_yamltmpl(jedi_fix_list_path, self.task_config) + jedi_fix_list = parse_j2yaml(jedi_fix_list_path, self.task_config) FileHandler(jedi_fix_list).sync() # stage backgrounds @@ -271,10 +271,9 @@ def initialize(self) -> None: # generate letkfoi YAML file logger.info(f"Generate JEDI LETKF YAML file: {self.task_config.jedi_yaml}") - letkfoi_yaml = parse_j2yaml(self.task_config.JEDIYAML, self.task_config) + letkfoi_yaml = parse_j2yaml(self.task_config.JEDIYAML, self.task_config, searchpath=self.gdasapp_j2tmpl_dir) save_as_yaml(letkfoi_yaml, self.task_config.jedi_yaml) logger.info(f"Wrote letkfoi YAML to: {self.task_config.jedi_yaml}") - # need output dir for diags and anl logger.info("Create empty output [anl, diags] directories to receive output from executable") newdirs = [ diff --git a/ush/radmon_err_rpt.sh b/ush/radmon_err_rpt.sh index 6ae6505624..c3d251d5cd 100755 --- a/ush/radmon_err_rpt.sh +++ b/ush/radmon_err_rpt.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ################################################################################ #### UNIX Script Documentation Block @@ -55,9 +55,6 @@ cycle2=${5:-${cycle2:?}} diag_rpt=${6:-${diag_rpt:?}} outfile=${7:-${outfile:?}} -# Directories -HOMEradmon=${HOMEradmon:-$(pwd)} - # Other variables err=0 RADMON_SUFFIX=${RADMON_SUFFIX} diff --git a/ush/radmon_verf_angle.sh b/ush/radmon_verf_angle.sh index 1066627787..3dff2a6f98 100755 --- a/ush/radmon_verf_angle.sh +++ b/ush/radmon_verf_angle.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ################################################################################ #### UNIX Script Documentation Block @@ -29,8 +29,6 @@ source "${HOMEgfs}/ush/preamble.sh" # Imported Shell Variables: # RADMON_SUFFIX data source suffix # defauls to opr -# EXECgfs executable directory -# PARMmonitor parm directory # RAD_AREA global or regional flag # defaults to global # TANKverf_rad data repository @@ -100,7 +98,7 @@ fi err=0 angle_exec=radmon_angle.x -shared_scaninfo="${shared_scaninfo:-${PARMmonitor}/gdas_radmon_scaninfo.txt}" +shared_scaninfo="${shared_scaninfo:-${PARMgfs}/monitor/gdas_radmon_scaninfo.txt}" scaninfo=scaninfo.txt #-------------------------------------------------------------------- diff --git a/ush/radmon_verf_bcoef.sh b/ush/radmon_verf_bcoef.sh index b6fd82dff2..4274436154 100755 --- a/ush/radmon_verf_bcoef.sh +++ b/ush/radmon_verf_bcoef.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ################################################################################ #### UNIX Script Documentation Block diff --git a/ush/radmon_verf_bcor.sh b/ush/radmon_verf_bcor.sh index 7aec48e2b3..ea0a7842e6 100755 --- a/ush/radmon_verf_bcor.sh +++ b/ush/radmon_verf_bcor.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ################################################################################ #### UNIX Script Documentation Block diff --git a/ush/radmon_verf_time.sh b/ush/radmon_verf_time.sh index 0df8029166..0e935826dd 100755 --- a/ush/radmon_verf_time.sh +++ b/ush/radmon_verf_time.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ################################################################################ #### UNIX Script Documentation Block @@ -33,8 +33,6 @@ source "${HOMEgfs}/ush/preamble.sh" # defaults to 1 (on) # RADMON_SUFFIX data source suffix # defauls to opr -# EXECgfs executable directory -# PARMmonitor parm data directory # RAD_AREA global or regional flag # defaults to global # TANKverf_rad data repository @@ -77,7 +75,7 @@ source "${HOMEgfs}/ush/preamble.sh" # File names radmon_err_rpt=${radmon_err_rpt:-${USHgfs}/radmon_err_rpt.sh} -base_file=${base_file:-${PARMmonitor}/gdas_radmon_base.tar} +base_file=${base_file:-${PARMgfs}/monitor/gdas_radmon_base.tar} report=report.txt disclaimer=disclaimer.txt diff --git a/ush/rstprod.sh b/ush/rstprod.sh index acac0340bb..b48a6817e0 100755 --- a/ush/rstprod.sh +++ b/ush/rstprod.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" #--------------------------------------------------------- # rstprod.sh diff --git a/ush/run_mpmd.sh b/ush/run_mpmd.sh index 24cb3f2656..e3fc2b7512 100755 --- a/ush/run_mpmd.sh +++ b/ush/run_mpmd.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" cmdfile=${1:?"run_mpmd requires an input file containing commands to execute in MPMD mode"} diff --git a/ush/syndat_getjtbul.sh b/ush/syndat_getjtbul.sh index 3ea56db72a..6596c6ef96 100755 --- a/ush/syndat_getjtbul.sh +++ b/ush/syndat_getjtbul.sh @@ -18,13 +18,10 @@ # Imported variables that must be passed in: # DATA - path to working directory # pgmout - string indicating path to for standard output file -# EXECSYND - path to syndat executable directory # TANK_TROPCY - path to home directory containing tropical cyclone record # data base -source "$HOMEgfs/ush/preamble.sh" - -EXECSYND=${EXECSYND:-${HOMESYND}/exec} +source "${USHgfs}/preamble.sh" cd $DATA @@ -117,7 +114,7 @@ fi [ -s jtwcbul ] && echo "Processing JTWC bulletin halfs into tcvitals records" >> $pgmout -pgm=$(basename $EXECSYND/syndat_getjtbul.x) +pgm=$(basename ${EXECgfs}/syndat_getjtbul.x) export pgm if [ -s prep_step ]; then set +u @@ -132,7 +129,7 @@ rm -f fnoc export FORT11=jtwcbul export FORT51=fnoc -time -p ${EXECSYND}/${pgm} >> $pgmout 2> errfile +time -p ${EXECgfs}/${pgm} >> $pgmout 2> errfile errget=$? ###cat errfile cat errfile >> $pgmout diff --git a/ush/syndat_qctropcy.sh b/ush/syndat_qctropcy.sh index 9d9b2ad69b..8ec8f70b14 100755 --- a/ush/syndat_qctropcy.sh +++ b/ush/syndat_qctropcy.sh @@ -44,9 +44,6 @@ # COMSP - path to both output jtwc-fnoc file and output tcvitals file (this # tcvitals file is read by subsequent relocation processing and/or # subsequent program SYNDAT_SYNDATA) -# PARMSYND - path to syndat parm field directory -# EXECSYND - path to syndat executable directory -# USHSYND - path to syndat ush directory # Imported variables that can be passed in: # ARCHSYND - path to syndat archive directory @@ -66,17 +63,12 @@ # (Default: not set) # TIMEIT - optional time and resource reporting (Default: not set) -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ARCHSYND=${ARCHSYND:-$COMROOTp3/gfs/prod/syndat} -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} -USHSYND=${USHSYND:-$HOMEgfs/ush} -EXECSYND=${EXECSYND:-$HOMEgfs/exec} -PARMSYND=${PARMSYND:-$HOMEgfs/parm/relo} - slmask=${slmask:-${FIXgfs}/am/syndat_slmask.t126.gaussian} copy_back=${copy_back:-YES} files_override=${files_override:-""} @@ -186,7 +178,7 @@ if [ -n "$files_override" ]; then # for testing, typically want FILES=F fi echo " &INPUT RUNID = '${net}_${tmmark}_${cyc}', FILES = $files " > vitchk.inp -cat $PARMSYND/syndat_qctropcy.${RUN}.parm >> vitchk.inp +cat ${PARMgfs}/relo/syndat_qctropcy.${RUN}.parm >> vitchk.inp # Copy the fixed fields @@ -203,12 +195,9 @@ rm -f nhc fnoc lthistry # All are input to program syndat_qctropcy # ------------------------------------------------------------------ -if [ -s $HOMENHC/tcvitals ]; then - echo "tcvitals found" >> $pgmout - cp $HOMENHC/tcvitals nhc -elif [ -s $HOMENHCp1/tcvitals ]; then +if [ -s ${HOMENHC}/tcvitals ]; then echo "tcvitals found" >> $pgmout - cp $HOMENHCp1/tcvitals nhc + cp ${HOMENHC}/tcvitals nhc else echo "WARNING: tcvitals not found, create empty tcvitals" >> $pgmout > nhc @@ -219,17 +208,17 @@ touch nhc [ "$copy_back" = 'YES' ] && cat nhc >> $ARCHSYND/syndat_tcvitals.$year mv -f nhc nhc1 -$USHSYND/parse-storm-type.pl nhc1 > nhc +${USHgfs}/parse-storm-type.pl nhc1 > nhc cp -p nhc nhc.ORIG # JTWC/FNOC ... execute syndat_getjtbul script to write into working directory # as fnoc; copy to archive -$USHSYND/syndat_getjtbul.sh $CDATE10 +${USHgfs}/syndat_getjtbul.sh $CDATE10 touch fnoc [ "$copy_back" = 'YES' ] && cat fnoc >> $ARCHSYND/syndat_tcvitals.$year mv -f fnoc fnoc1 -$USHSYND/parse-storm-type.pl fnoc1 > fnoc +${USHgfs}/parse-storm-type.pl fnoc1 > fnoc if [ $SENDDBN = YES ]; then $DBNROOT/bin/dbn_alert MODEL SYNDAT_TCVITALS $job $ARCHSYND/syndat_tcvitals.$year @@ -243,7 +232,7 @@ cp $slmask slmask.126 # Execute program syndat_qctropcy -pgm=$(basename $EXECSYND/syndat_qctropcy.x) +pgm=$(basename ${EXECgfs}/syndat_qctropcy.x) export pgm if [ -s prep_step ]; then set +u @@ -257,7 +246,7 @@ fi echo "$CDATE10" > cdate10.dat export FORT11=slmask.126 export FORT12=cdate10.dat -${EXECSYND}/${pgm} >> $pgmout 2> errfile +${EXECgfs}/${pgm} >> $pgmout 2> errfile errqct=$? ###cat errfile cat errfile >> $pgmout @@ -321,28 +310,25 @@ diff nhc nhc.ORIG > /dev/null errdiff=$? ################################### -# Update NHC file in $HOMENHC +# Update NHC file in ${HOMENHC} ################################### if test "$errdiff" -ne '0' then if [ "$copy_back" = 'YES' -a ${envir} = 'prod' ]; then - if [ -s $HOMENHC/tcvitals ]; then - cp nhc $HOMENHC/tcvitals - fi - if [ -s $HOMENHCp1/tcvitals ]; then - cp nhc $HOMENHCp1/tcvitals + if [ -s ${HOMENHC}/tcvitals ]; then + cp nhc ${HOMENHC}/tcvitals fi err=$? if [ "$err" -ne '0' ]; then msg="###ERROR: Previous NHC Synthetic Data Record File \ -$HOMENHC/tcvitals not updated by syndat_qctropcy" +${HOMENHC}/tcvitals not updated by syndat_qctropcy" else msg="Previous NHC Synthetic Data Record File \ -$HOMENHC/tcvitals successfully updated by syndat_qctropcy" +${HOMENHC}/tcvitals successfully updated by syndat_qctropcy" fi set +x @@ -355,7 +341,7 @@ $HOMENHC/tcvitals successfully updated by syndat_qctropcy" else - msg="Previous NHC Synthetic Data Record File $HOMENHC/tcvitals \ + msg="Previous NHC Synthetic Data Record File ${HOMENHC}/tcvitals \ not changed by syndat_qctropcy" set +x echo diff --git a/ush/tropcy_relocate.sh b/ush/tropcy_relocate.sh index cdcc777c47..29ffc32797 100755 --- a/ush/tropcy_relocate.sh +++ b/ush/tropcy_relocate.sh @@ -84,20 +84,13 @@ # envir String indicating environment under which job runs ('prod' # or 'test') # Default is "prod" -# HOMEALL String indicating parent directory path for some or -# all files under which job runs. -# If the imported variable MACHINE!=sgi, then the default is -# "/nw${envir}"; otherwise the default is -# "/disk1/users/snake/prepobs" -# HOMERELO String indicating parent directory path for relocation -# specific files. (May be under HOMEALL) # envir_getges String indicating environment under which GETGES utility -# ush runs (see documentation in $USHGETGES/getges.sh for +# ush runs (see documentation in ${USHgfs}/getges.sh for # more information) # Default is "$envir" # network_getges # String indicating job network under which GETGES utility -# ush runs (see documentation in $USHGETGES/getges.sh for +# ush runs (see documentation in ${USHgfs}/getges.sh for # more information) # Default is "global" unless the center relocation processing # date/time is not a multiple of 3-hrs, then the default is @@ -122,31 +115,20 @@ # POE_OPTS String indicating options to use with poe command # Default is "-pgmmodel mpmd -ilevel 2 -labelio yes \ # -stdoutmode ordered" -# USHGETGES String indicating directory path for GETGES utility ush -# file -# USHRELO String indicating directory path for RELOCATE ush files -# Default is "${HOMERELO}/ush" -# EXECRELO String indicating directory path for RELOCATE executables -# Default is "${HOMERELO}/exec" -# EXECUTIL String indicating directory path for utility program -# executables -# If the imported variable MACHINE!=sgi, then the default is -# "/nwprod/util/exec"; otherwise the default is -# "${HOMEALL}/util/exec" # RELOX String indicating executable path for RELOCATE_MV_NVORTEX # program -# Default is "$EXECRELO/relocate_mv_nvortex" +# Default is "${EXECgfs}/relocate_mv_nvortex" # SUPVX String indicating executable path for SUPVIT utility # program -# Default is "$EXECUTIL/supvit.x" +# Default is "${EXECgfs}/supvit.x" # GETTX String indicating executable path for GETTRK utility # program -# Default is "$EXECUTIL/gettrk" +# Default is "${EXECgfs}/gettrk" # BKGFREQ Frequency of background files for relocation # Default is "3" # SENDDBN String when set to "YES" alerts output files to $COMSP # NDATE String indicating executable path for NDATE utility program -# Default is "$EXECUTIL/ndate" +# Default is "${EXECgfs}/ndate" # # These do not have to be exported to this script. If they are, they will # be used by the script. If they are not, they will be skipped @@ -163,18 +145,18 @@ # # Modules and files referenced: # Herefile: RELOCATE_GES -# $USHRELO/tropcy_relocate_extrkr.sh -# $USHGETGES/getges.sh +# ${USHgfs}/tropcy_relocate_extrkr.sh +# ${USHgfs}/getges.sh # $NDATE (here and in child script -# $USHRELO/tropcy_relocate_extrkr.sh) +# ${USHgfs}/tropcy_relocate_extrkr.sh) # /usr/bin/poe # postmsg # $DATA/prep_step (here and in child script -# $USHRELO/tropcy_relocate_extrkr.sh) +# ${USHgfs}/tropcy_relocate_extrkr.sh) # $DATA/err_exit (here and in child script -# $USHRELO/tropcy_relocate_extrkr.sh) +# ${USHgfs}/tropcy_relocate_extrkr.sh) # $DATA/err_chk (here and in child script -# $USHRELO/tropcy_relocate_extrkr.sh) +# ${USHgfs}/tropcy_relocate_extrkr.sh) # NOTE: The last three scripts above are NOT REQUIRED utilities. # If $DATA/prep_step not found, a scaled down version of it is # executed in-line. If $DATA/err_exit or $DATA/err_chk are not @@ -201,7 +183,7 @@ # #### -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" MACHINE=${MACHINE:-$(hostname -s | cut -c 1-3)} @@ -272,14 +254,6 @@ set_trace envir=${envir:-prod} -if [ $MACHINE != sgi ]; then - HOMEALL=${HOMEALL:-$OPSROOT} -else - HOMEALL=${HOMEALL:-/disk1/users/snake/prepobs} -fi - -HOMERELO=${HOMERELO:-${shared_global_home}} - envir_getges=${envir_getges:-$envir} if [ $modhr -eq 0 ]; then network_getges=${network_getges:-global} @@ -292,19 +266,12 @@ pgmout=${pgmout:-/dev/null} tstsp=${tstsp:-/tmp/null/} tmmark=${tmmark:-tm00} -USHRELO=${USHRELO:-${HOMERELO}/ush} -##USHGETGES=${USHGETGES:-/nwprod/util/ush} -##USHGETGES=${USHGETGES:-${HOMERELO}/ush} -USHGETGES=${USHGETGES:-${USHRELO}} - -EXECRELO=${EXECRELO:-${HOMERELO}/exec} - -RELOX=${RELOX:-$EXECRELO/relocate_mv_nvortex} +RELOX=${RELOX:-${EXECgfs}/relocate_mv_nvortex} export BKGFREQ=${BKGFREQ:-1} -SUPVX=${SUPVX:-$EXECRELO/supvit.x} -GETTX=${GETTX:-$EXECRELO/gettrk} +SUPVX=${SUPVX:-${EXECgfs}/supvit.x} +GETTX=${GETTX:-${EXECgfs}/gettrk} ################################################ # EXECUTE TROPICAL CYCLONE RELOCATION PROCESSING @@ -350,7 +317,7 @@ echo " relocation processing date/time" echo "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" echo set_trace - $USHGETGES/getges.sh -e $envir_getges -n $network_getges \ + ${USHgfs}/getges.sh -e $envir_getges -n $network_getges \ -v $CDATE10 -f $fhr -t tcvges tcvitals.m${fhr} set +x echo @@ -400,7 +367,7 @@ echo " relocation processing date/time" echo "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" echo set_trace - $USHGETGES/getges.sh -e $envir_getges -n $network_getges \ + ${USHgfs}/getges.sh -e $envir_getges -n $network_getges \ -v $CDATE10 -t $stype $sges errges=$? if test $errges -ne 0; then @@ -434,7 +401,7 @@ to center relocation date/time;" # ---------------------------------------------------------------------------- if [ $fhr = "0" ]; then - "${USHGETGES}/getges.sh" -e "${envir_getges}" -n "${network_getges}" -v "${CDATE10}" \ + "${USHgfs}/getges.sh" -e "${envir_getges}" -n "${network_getges}" -v "${CDATE10}" \ -t "${stype}" > "${COM_OBS}/${RUN}.${cycle}.sgesprep_pre-relocate_pathname.${tmmark}" cp "${COM_OBS}/${RUN}.${cycle}.sgesprep_pre-relocate_pathname.${tmmark}" \ "${COM_OBS}/${RUN}.${cycle}.sgesprep_pathname.${tmmark}" @@ -454,7 +421,7 @@ echo " relocation processing date/time" echo "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" echo set_trace - $USHGETGES/getges.sh -e $envir_getges -n $network_getges \ + ${USHgfs}/getges.sh -e $envir_getges -n $network_getges \ -v $CDATE10 -t $ptype $pges errges=$? if test $errges -ne 0; then @@ -536,7 +503,7 @@ else # $DATA/$RUN.$cycle.relocate.model_track.tm00 # -------------------------------------------- - $USHRELO/tropcy_relocate_extrkr.sh + ${USHgfs}/tropcy_relocate_extrkr.sh err=$? if [ $err -ne 0 ]; then @@ -545,12 +512,12 @@ else set +x echo - echo "$USHRELO/tropcy_relocate_extrkr.sh failed" + echo "${USHgfs}/tropcy_relocate_extrkr.sh failed" echo "ABNORMAL EXIT!!!!!!!!!!!" echo set_trace if [ -s $DATA/err_exit ]; then - $DATA/err_exit "Script $USHRELO/tropcy_relocate_extrkr.sh failed" + $DATA/err_exit "Script ${USHgfs}/tropcy_relocate_extrkr.sh failed" else exit 555 fi diff --git a/ush/tropcy_relocate_extrkr.sh b/ush/tropcy_relocate_extrkr.sh index c4efad1d73..8e6bc5283a 100755 --- a/ush/tropcy_relocate_extrkr.sh +++ b/ush/tropcy_relocate_extrkr.sh @@ -3,7 +3,7 @@ # This script is executed by the script tropcy_relocate.sh # -------------------------------------------------------- -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" export machine=${machine:-ZEUS} export machine=$(echo $machine|tr '[a-z]' '[A-Z]') diff --git a/ush/wave_grib2_sbs.sh b/ush/wave_grib2_sbs.sh index af28760269..6b459cb1b0 100755 --- a/ush/wave_grib2_sbs.sh +++ b/ush/wave_grib2_sbs.sh @@ -25,7 +25,7 @@ # --------------------------------------------------------------------------- # # 0. Preparations -source "${HOMEgfs}/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # 0.a Basic modes of operation @@ -82,7 +82,7 @@ if [[ ! -s "${COM_WAVE_GRID}/${outfile}.idx" ]]; then echo " Model ID : $WAV_MOD_TAG" set_trace - if [[ -z "${PDY}" ]] || [[ -z ${cyc} ]] || [[ -z "${cycle}" ]] || [[ -z "${EXECwave}" ]] || \ + if [[ -z "${PDY}" ]] || [[ -z ${cyc} ]] || [[ -z "${cycle}" ]] || [[ -z "${EXECgfs}" ]] || \ [[ -z "${COM_WAVE_GRID}" ]] || [[ -z "${WAV_MOD_TAG}" ]] || [[ -z "${gribflags}" ]] || \ [[ -z "${GRIDNR}" ]] || [[ -z "${MODNR}" ]] || \ [[ -z "${SENDDBN}" ]]; then @@ -138,11 +138,11 @@ if [[ ! -s "${COM_WAVE_GRID}/${outfile}.idx" ]]; then set +x echo " Run ww3_grib2" - echo " Executing ${EXECwave}/ww3_grib" + echo " Executing ${EXECgfs}/ww3_grib" set_trace export pgm=ww3_grib;. prep_step - "${EXECwave}/ww3_grib" > "grib2_${grdnam}_${FH3}.out" 2>&1 + "${EXECgfs}/ww3_grib" > "grib2_${grdnam}_${FH3}.out" 2>&1 export err=$?;err_chk if [ ! -s gribfile ]; then diff --git a/ush/wave_grid_interp_sbs.sh b/ush/wave_grid_interp_sbs.sh index e690cbc4ad..db2918f924 100755 --- a/ush/wave_grid_interp_sbs.sh +++ b/ush/wave_grid_interp_sbs.sh @@ -25,7 +25,7 @@ # --------------------------------------------------------------------------- # # 0. Preparations -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # 0.a Basic modes of operation @@ -65,7 +65,7 @@ source "$HOMEgfs/ush/preamble.sh" echo " Model ID : $WAV_MOD_TAG" set_trace - if [[ -z "${PDY}" ]] || [[ -z "${cyc}" ]] || [[ -z "${cycle}" ]] || [[ -z "${EXECwave}" ]] || \ + if [[ -z "${PDY}" ]] || [[ -z "${cyc}" ]] || [[ -z "${cycle}" ]] || [[ -z "${EXECgfs}" ]] || \ [[ -z "${COM_WAVE_PREP}" ]] || [[ -z "${WAV_MOD_TAG}" ]] || [[ -z "${SENDDBN}" ]] || \ [ -z "${waveGRD}" ] then @@ -75,7 +75,7 @@ source "$HOMEgfs/ush/preamble.sh" echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' echo '***************************************************' echo ' ' - echo "${PDY}${cyc} ${cycle} ${EXECwave} ${COM_WAVE_PREP} ${WAV_MOD_TAG} ${SENDDBN} ${waveGRD}" + echo "${PDY}${cyc} ${cycle} ${EXECgfs} ${COM_WAVE_PREP} ${WAV_MOD_TAG} ${SENDDBN} ${waveGRD}" set_trace exit 1 fi @@ -85,7 +85,7 @@ source "$HOMEgfs/ush/preamble.sh" rm -f ${DATA}/output_${ymdh}0000/out_grd.$grdID if [ ! -f ${DATA}/${grdID}_interp.inp.tmpl ]; then - cp $PARMwave/${grdID}_interp.inp.tmpl ${DATA} + cp ${PARMgfs}/wave/${grdID}_interp.inp.tmpl ${DATA} fi ln -sf ${DATA}/${grdID}_interp.inp.tmpl . @@ -137,11 +137,11 @@ source "$HOMEgfs/ush/preamble.sh" set +x echo " Run ww3_gint - echo " Executing $EXECwave/ww3_gint + echo " Executing ${EXECgfs}/ww3_gint set_trace export pgm=ww3_gint;. prep_step - $EXECwave/ww3_gint 1> gint.${grdID}.out 2>&1 + ${EXECgfs}/ww3_gint 1> gint.${grdID}.out 2>&1 export err=$?;err_chk # Write interpolation file to main TEMP dir area if not there yet diff --git a/ush/wave_grid_moddef.sh b/ush/wave_grid_moddef.sh index 390860c960..e895666d66 100755 --- a/ush/wave_grid_moddef.sh +++ b/ush/wave_grid_moddef.sh @@ -20,7 +20,7 @@ # --------------------------------------------------------------------------- # # 0. Preparations -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # 0.a Basic modes of operation @@ -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" ] + if [ -z "$grdID" ] || [ -z "${EXECgfs}" ] then set +x echo ' ' @@ -77,7 +77,7 @@ source "$HOMEgfs/ush/preamble.sh" set +x echo ' ' echo ' Creating mod_def file ...' - echo " Executing $EXECwave/ww3_grid" + echo " Executing ${EXECgfs}/ww3_grid" echo ' ' set_trace @@ -92,7 +92,7 @@ source "$HOMEgfs/ush/preamble.sh" - "${EXECwave}/ww3_grid" 1> "grid_${grdID}.out" 2>&1 + "${EXECgfs}/ww3_grid" 1> "grid_${grdID}.out" 2>&1 err=$? if [ "$err" != '0' ] diff --git a/ush/wave_outp_cat.sh b/ush/wave_outp_cat.sh index f4bf6b2294..6ce3ce06cf 100755 --- a/ush/wave_outp_cat.sh +++ b/ush/wave_outp_cat.sh @@ -21,7 +21,7 @@ # --------------------------------------------------------------------------- # # 0. Preparations -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # 0.a Basic modes of operation bloc=$1 diff --git a/ush/wave_outp_spec.sh b/ush/wave_outp_spec.sh index 5acc0f95ab..91cd722c10 100755 --- a/ush/wave_outp_spec.sh +++ b/ush/wave_outp_spec.sh @@ -22,7 +22,7 @@ # --------------------------------------------------------------------------- # # 0. Preparations -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # 0.a Basic modes of operation bloc=$1 @@ -104,7 +104,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 "$CDATE" ] || [ -z "$dtspec" ] || [ -z "$EXECwave" ] || \ + if [ -z "$CDATE" ] || [ -z "$dtspec" ] || [ -z "${EXECgfs}" ] || \ [ -z "$WAV_MOD_TAG" ] || [ -z "${STA_DIR}" ] then set +x @@ -170,11 +170,11 @@ source "$HOMEgfs/ush/preamble.sh" # 2.b Run the postprocessor set +x - echo " Executing $EXECwave/ww3_outp" + echo " Executing ${EXECgfs}/ww3_outp" set_trace export pgm=ww3_outp;. prep_step - $EXECwave/ww3_outp 1> outp_${specdir}_${buoy}.out 2>&1 + ${EXECgfs}/ww3_outp 1> outp_${specdir}_${buoy}.out 2>&1 export err=$?;err_chk diff --git a/ush/wave_prnc_cur.sh b/ush/wave_prnc_cur.sh index a8f9f67d62..652d1be817 100755 --- a/ush/wave_prnc_cur.sh +++ b/ush/wave_prnc_cur.sh @@ -22,7 +22,7 @@ ################################################################################ # -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" ymdh_rtofs=$1 curfile=$2 @@ -65,9 +65,9 @@ rm -f cur_temp[123].nc cur_5min_??.nc "cur_glo_uv_${PDY}_${fext}${fh3}.nc weight if [ ${flagfirst} = "T" ] then - sed -e "s/HDRFL/T/g" ${PARMwave}/ww3_prnc.cur.${WAVECUR_FID}.inp.tmpl > ww3_prnc.inp + sed -e "s/HDRFL/T/g" ${PARMgfs}/wave/ww3_prnc.cur.${WAVECUR_FID}.inp.tmpl > ww3_prnc.inp else - sed -e "s/HDRFL/F/g" ${PARMwave}/ww3_prnc.cur.${WAVECUR_FID}.inp.tmpl > ww3_prnc.inp + sed -e "s/HDRFL/F/g" ${PARMgfs}/wave/ww3_prnc.cur.${WAVECUR_FID}.inp.tmpl > ww3_prnc.inp fi rm -f cur.nc @@ -75,7 +75,7 @@ ln -s "cur_glo_uv_${PDY}_${fext}${fh3}_5min.nc" "cur.nc" ln -s "${DATA}/mod_def.${WAVECUR_FID}" ./mod_def.ww3 export pgm=ww3_prnc;. prep_step -$EXECwave/ww3_prnc 1> prnc_${WAVECUR_FID}_${ymdh_rtofs}.out 2>&1 +${EXECgfs}/ww3_prnc 1> prnc_${WAVECUR_FID}_${ymdh_rtofs}.out 2>&1 export err=$?; err_chk diff --git a/ush/wave_prnc_ice.sh b/ush/wave_prnc_ice.sh index d0a6371d5b..e5efaf3042 100755 --- a/ush/wave_prnc_ice.sh +++ b/ush/wave_prnc_ice.sh @@ -27,7 +27,7 @@ # --------------------------------------------------------------------------- # # 0. Preparations -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # 0.a Basic modes of operation @@ -55,7 +55,7 @@ source "$HOMEgfs/ush/preamble.sh" echo "Making ice fields." if [[ -z "${YMDH}" ]] || [[ -z "${cycle}" ]] || \ - [[ -z "${COM_WAVE_PREP}" ]] || [[ -z "${FIXgfs}" ]] || [[ -z "${EXECwave}" ]] || \ + [[ -z "${COM_WAVE_PREP}" ]] || [[ -z "${FIXgfs}" ]] || [[ -z "${EXECgfs}" ]] || \ [[ -z "${WAV_MOD_TAG}" ]] || [[ -z "${WAVEICE_FID}" ]] || [[ -z "${COM_OBS}" ]]; then set +x @@ -144,7 +144,7 @@ source "$HOMEgfs/ush/preamble.sh" export pgm=ww3_prnc;. prep_step - $EXECwave/ww3_prnc 1> prnc_${WAVEICE_FID}_${cycle}.out 2>&1 + ${EXECgfs}/ww3_prnc 1> prnc_${WAVEICE_FID}_${cycle}.out 2>&1 export err=$?; err_chk if [ "$err" != '0' ] diff --git a/ush/wave_tar.sh b/ush/wave_tar.sh index 1a8d6d6cc5..bb8836df2c 100755 --- a/ush/wave_tar.sh +++ b/ush/wave_tar.sh @@ -25,7 +25,7 @@ # --------------------------------------------------------------------------- # # 0. Preparations -source "$HOMEgfs/ush/preamble.sh" +source "${USHgfs}/preamble.sh" # 0.a Basic modes of operation diff --git a/versions/run.hercules.ver b/versions/run.hercules.ver index 549bb47df0..ee8e4f8aea 100644 --- a/versions/run.hercules.ver +++ b/versions/run.hercules.ver @@ -3,7 +3,5 @@ export stack_impi_ver=2021.9.0 export intel_mkl_ver=2023.1.0 export spack_env=gsi-addon-env -export perl_ver=5.36.0 - source "${HOMEgfs:-}/versions/run.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/workflow/setup_expt.py b/workflow/setup_expt.py index 3eeb584f46..90e890910f 100755 --- a/workflow/setup_expt.py +++ b/workflow/setup_expt.py @@ -252,12 +252,6 @@ def fill_EXPDIR(inputs): expdir = os.path.join(inputs.expdir, inputs.pslot) configs = glob.glob(f'{configdir}/config.*') - exclude_configs = ['base', 'base.emc.dyn', 'base.nco.static', 'fv3.nco.static'] - for exclude in exclude_configs: - try: - configs.remove(f'{configdir}/config.{exclude}') - except ValueError: - pass if len(configs) == 0: raise IOError(f'no config files found in {configdir}') for config in configs: @@ -295,7 +289,8 @@ def _update_defaults(dict_in: dict) -> dict: def edit_baseconfig(host, inputs, yaml_dict): """ - Parses and populates the templated `config.base.emc.dyn` to `config.base` + Parses and populates the templated `HOMEgfs/parm/config//config.base` + to `EXPDIR/pslot/config.base` """ tmpl_dict = { @@ -347,7 +342,7 @@ def edit_baseconfig(host, inputs, yaml_dict): except KeyError: pass - base_input = f'{inputs.configdir}/config.base.emc.dyn' + base_input = f'{inputs.configdir}/config.base' base_output = f'{inputs.expdir}/{inputs.pslot}/config.base' edit_config(base_input, base_output, tmpl_dict)