From fa2db5270b93e83330336c5349a10aa63e10d934 Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Wed, 23 Aug 2023 18:52:44 +0000 Subject: [PATCH 1/8] initial commit of bufr2ioda job (#1820) --- jobs/JGLOBAL_PREP_IODA_OBS | 36 +++++++++++++++++++++++++++++ jobs/rocoto/prepiodaobs.sh | 25 ++++++++++++++++++++ parm/config/gfs/config.prepiodaobs | 14 +++++++++++ parm/config/gfs/config.resources | 10 +++++++- workflow/applications/gfs_cycled.py | 4 ++-- workflow/rocoto/gfs_tasks.py | 16 +++++++++++-- workflow/rocoto/tasks.py | 2 +- 7 files changed, 101 insertions(+), 6 deletions(-) create mode 100755 jobs/JGLOBAL_PREP_IODA_OBS create mode 100755 jobs/rocoto/prepiodaobs.sh create mode 100644 parm/config/gfs/config.prepiodaobs diff --git a/jobs/JGLOBAL_PREP_IODA_OBS b/jobs/JGLOBAL_PREP_IODA_OBS new file mode 100755 index 0000000000..ff22289f44 --- /dev/null +++ b/jobs/JGLOBAL_PREP_IODA_OBS @@ -0,0 +1,36 @@ +#! /usr/bin/env bash + +source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/ush/jjob_header.sh" -e "prepiodaobs" -c "base prepiodaobs" + +############################################## +# Set variables used in the script +############################################## + + +############################################## +# Begin JOB SPECIFIC work +############################################## +# Generate COM variables from templates +YMD=${PDY} HH=${cyc} generate_com -rx COM_OBS + + +############################################################### +# Run relevant script +EXSCRIPT=${BUFR2IODASH:-${HOMEgfs}/${HOMEgfs}/ush/ioda/bufr2ioda/run_bufr2ioda.sh} +${EXSCRIPT} "${PDY}${cyc}" "${CDUMP}" "${DMPDIR}" "${IODAPARM}" "${COM_OBS}/" +status=$? +[[ ${status} -ne 0 ]] && (echo "FATAL ERROR: Error executing ${EXSCRIPT}, ABORT!"; exit "${status}") + +############################################## +# End JOB SPECIFIC work +############################################## + +############################################## +# Final processing +############################################## +if [[ -e "${pgmout}" ]] ; then + cat "${pgmout}" +fi + +exit 0 diff --git a/jobs/rocoto/prepiodaobs.sh b/jobs/rocoto/prepiodaobs.sh new file mode 100755 index 0000000000..aa523ee26d --- /dev/null +++ b/jobs/rocoto/prepiodaobs.sh @@ -0,0 +1,25 @@ +#! /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="prepatmobs" +export jobid="${job}.$$" + +############################################################### +# setup python path for workflow utilities and tasks +##wxflowPATH="${HOMEgfs}/ush/python:${HOMEgfs}/ush/python/wxflow/src" +##gdasappPATH="${HOMEgfs}/sorc/gdas.cd/iodaconv/src:${HOMEgfs}/sorc/gdas.cd/build/lib/python3.7" +##PYTHONPATH="${PYTHONPATH:+${PYTHONPATH}:}${wxflowPATH}:${gdasappPATH}" +##export PYTHONPATH + +############################################################### +# Execute the JJOB +"${HOMEgfs}/jobs/JGLOBAL_PREP_IODA_OBS" +status=$? +exit "${status}" diff --git a/parm/config/gfs/config.prepiodaobs b/parm/config/gfs/config.prepiodaobs new file mode 100644 index 0000000000..c95fcf08b7 --- /dev/null +++ b/parm/config/gfs/config.prepiodaobs @@ -0,0 +1,14 @@ +#! /usr/bin/env bash + +########## config.prepiodaobs ########## +# Atm Obs Prep specific + +echo "BEGIN: config.prepiodaobs" + +# Get task specific resources +. "${EXPDIR}/config.resources" prepiodaobs + +export BUFR2IODASH="${HOMEgfs}/sorc/gdas.cd/ush/ioda/bufr2ioda/run_bufr2ioda.sh" +export IODAPARM="${HOMEgfs}/sorc/gdas.cd/parm/ioda/bufr2ioda" + +echo "END: config.prepiodaobs" diff --git a/parm/config/gfs/config.resources b/parm/config/gfs/config.resources index 6844802a0b..c9bba96839 100644 --- a/parm/config/gfs/config.resources +++ b/parm/config/gfs/config.resources @@ -9,7 +9,7 @@ if [[ $# -ne 1 ]]; then echo "Must specify an input task argument to set resource variables!" echo "argument can be any one of the following:" echo "coupled_ic aerosol_init" - echo "prep preplandobs" + echo "prep preplandobs prepiodaobs" echo "atmanlinit atmanlrun atmanlfinal" echo "atmensanlinit atmensanlrun atmensanlfinal" echo "landanl" @@ -73,6 +73,14 @@ elif [[ "${step}" = "preplandobs" ]]; then npe_node_preplandobs=1 export npe_node_preplandobs +elif [[ "${step}" = "prepiodaobs" ]]; then + export wtime_prepiodaobs="00:05:00" + npe_prepiodaobs=1 + export npe_prepiodaobs + export nth_prepiodaobs=1 + npe_node_prepiodaobs=1 + export npe_node_prepiodaobs + elif [[ "${step}" = "aerosol_init" ]]; then export wtime_aerosol_init="00:05:00" export npe_aerosol_init=1 diff --git a/workflow/applications/gfs_cycled.py b/workflow/applications/gfs_cycled.py index 3478d563a3..08324d91ac 100644 --- a/workflow/applications/gfs_cycled.py +++ b/workflow/applications/gfs_cycled.py @@ -37,7 +37,7 @@ def _get_app_configs(self): configs = ['prep'] if self.do_jediatmvar: - configs += ['atmanlinit', 'atmanlrun', 'atmanlfinal'] + configs += ['prepiodaobs', 'atmanlinit', 'atmanlrun', 'atmanlfinal'] else: configs += ['anal', 'analdiag'] @@ -109,7 +109,7 @@ def get_task_names(self): gdas_gfs_common_cleanup_tasks = ['arch'] if self.do_jediatmvar: - gdas_gfs_common_tasks_before_fcst += ['atmanlinit', 'atmanlrun', 'atmanlfinal'] + gdas_gfs_common_tasks_before_fcst += ['prepiodaobs', 'atmanlinit', 'atmanlrun', 'atmanlfinal'] else: gdas_gfs_common_tasks_before_fcst += ['anal'] diff --git a/workflow/rocoto/gfs_tasks.py b/workflow/rocoto/gfs_tasks.py index 726f7e67fb..6b43f6859b 100644 --- a/workflow/rocoto/gfs_tasks.py +++ b/workflow/rocoto/gfs_tasks.py @@ -245,11 +245,23 @@ def analdiag(self): return task - def atmanlinit(self): + def prepiodaobs(self): deps = [] dep_dict = {'type': 'task', 'name': f'{self.cdump}prep'} deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + + resources = self.get_resource('prepiodaobs') + task = create_wf_task('prepiodaobs', resources, cdump=self.cdump, envar=self.envars, dependency=dependencies) + + return task + + def atmanlinit(self): + + deps = [] + dep_dict = {'type': 'task', 'name': f'{self.cdump}prepiodaobs'} + deps.append(rocoto.add_dependency(dep_dict)) if self.app_config.do_hybvar: dep_dict = {'type': 'metatask', 'name': 'enkfgdasepmn', 'offset': '-06:00:00'} deps.append(rocoto.add_dependency(dep_dict)) @@ -993,7 +1005,7 @@ def eupd(self): def atmensanlinit(self): deps = [] - dep_dict = {'type': 'task', 'name': f'{self.cdump.replace("enkf","")}prep'} + dep_dict = {'type': 'task', 'name': f'{self.cdump.replace("enkf","")}prepiodaobs'} deps.append(rocoto.add_dependency(dep_dict)) dep_dict = {'type': 'metatask', 'name': 'enkfgdasepmn', 'offset': '-06:00:00'} deps.append(rocoto.add_dependency(dep_dict)) diff --git a/workflow/rocoto/tasks.py b/workflow/rocoto/tasks.py index 2a1ac1842b..46f468efca 100644 --- a/workflow/rocoto/tasks.py +++ b/workflow/rocoto/tasks.py @@ -12,7 +12,7 @@ class Tasks: SERVICE_TASKS = ['arch', 'earc'] VALID_TASKS = ['aerosol_init', 'coupled_ic', 'prep', 'anal', 'sfcanl', 'analcalc', 'analdiag', 'arch', - 'atmanlinit', 'atmanlrun', 'atmanlfinal', + 'prepiodaobs', 'atmanlinit', 'atmanlrun', 'atmanlfinal', 'ocnanalprep', 'ocnanalbmat', 'ocnanalrun', 'ocnanalchkpt', 'ocnanalpost', 'ocnanalvrfy', 'earc', 'ecen', 'echgres', 'ediag', 'efcs', 'eobs', 'eomg', 'epos', 'esfc', 'eupd', From 3d614c2365b397d68db537b78a7fa204da0adbe4 Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Thu, 31 Aug 2023 10:07:35 +0000 Subject: [PATCH 2/8] clean up prepiodaobs scripting (#1820) --- jobs/JGLOBAL_PREP_IODA_OBS | 2 +- jobs/rocoto/prepiodaobs.sh | 7 ------- parm/config/gfs/config.resources | 7 +++---- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/jobs/JGLOBAL_PREP_IODA_OBS b/jobs/JGLOBAL_PREP_IODA_OBS index ff22289f44..08d828b95c 100755 --- a/jobs/JGLOBAL_PREP_IODA_OBS +++ b/jobs/JGLOBAL_PREP_IODA_OBS @@ -17,7 +17,7 @@ YMD=${PDY} HH=${cyc} generate_com -rx COM_OBS ############################################################### # Run relevant script -EXSCRIPT=${BUFR2IODASH:-${HOMEgfs}/${HOMEgfs}/ush/ioda/bufr2ioda/run_bufr2ioda.sh} +EXSCRIPT=${BUFR2IODASH:-${HOMEgfs}/ush/ioda/bufr2ioda/run_bufr2ioda.sh} ${EXSCRIPT} "${PDY}${cyc}" "${CDUMP}" "${DMPDIR}" "${IODAPARM}" "${COM_OBS}/" status=$? [[ ${status} -ne 0 ]] && (echo "FATAL ERROR: Error executing ${EXSCRIPT}, ABORT!"; exit "${status}") diff --git a/jobs/rocoto/prepiodaobs.sh b/jobs/rocoto/prepiodaobs.sh index aa523ee26d..22e502cf57 100755 --- a/jobs/rocoto/prepiodaobs.sh +++ b/jobs/rocoto/prepiodaobs.sh @@ -11,13 +11,6 @@ status=$? export job="prepatmobs" export jobid="${job}.$$" -############################################################### -# setup python path for workflow utilities and tasks -##wxflowPATH="${HOMEgfs}/ush/python:${HOMEgfs}/ush/python/wxflow/src" -##gdasappPATH="${HOMEgfs}/sorc/gdas.cd/iodaconv/src:${HOMEgfs}/sorc/gdas.cd/build/lib/python3.7" -##PYTHONPATH="${PYTHONPATH:+${PYTHONPATH}:}${wxflowPATH}:${gdasappPATH}" -##export PYTHONPATH - ############################################################### # Execute the JJOB "${HOMEgfs}/jobs/JGLOBAL_PREP_IODA_OBS" diff --git a/parm/config/gfs/config.resources b/parm/config/gfs/config.resources index c9bba96839..d79d341aa1 100644 --- a/parm/config/gfs/config.resources +++ b/parm/config/gfs/config.resources @@ -74,11 +74,10 @@ elif [[ "${step}" = "preplandobs" ]]; then export npe_node_preplandobs elif [[ "${step}" = "prepiodaobs" ]]; then - export wtime_prepiodaobs="00:05:00" - npe_prepiodaobs=1 - export npe_prepiodaobs + export wtime_prepiodaobs="00:10:00" + export npe_prepiodaobs=1 export nth_prepiodaobs=1 - npe_node_prepiodaobs=1 + npe_node_prepiodaobs=$(echo "${npe_node_max} / ${nth_prepiodaobs}" | bc) export npe_node_prepiodaobs elif [[ "${step}" = "aerosol_init" ]]; then From 7af58ee3b083e66e55eccfff5e4bea6f6dc57849 Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Thu, 31 Aug 2023 15:50:36 +0000 Subject: [PATCH 3/8] replace prepiodaobs with prepatmiodaobs, add soft link for bufr2ioda run script (#1820) --- jobs/JGLOBAL_PREP_IODA_OBS | 4 ++-- parm/config/gfs/config.prepatmiodaobs | 14 ++++++++++++++ parm/config/gfs/config.prepiodaobs | 14 -------------- parm/config/gfs/config.resources | 14 +++++++------- sorc/link_workflow.sh | 1 + workflow/applications/gfs_cycled.py | 4 ++-- workflow/rocoto/gfs_tasks.py | 10 +++++----- workflow/rocoto/tasks.py | 2 +- 8 files changed, 32 insertions(+), 31 deletions(-) create mode 100644 parm/config/gfs/config.prepatmiodaobs delete mode 100644 parm/config/gfs/config.prepiodaobs diff --git a/jobs/JGLOBAL_PREP_IODA_OBS b/jobs/JGLOBAL_PREP_IODA_OBS index 08d828b95c..ef2fc8a7cc 100755 --- a/jobs/JGLOBAL_PREP_IODA_OBS +++ b/jobs/JGLOBAL_PREP_IODA_OBS @@ -1,7 +1,7 @@ #! /usr/bin/env bash source "${HOMEgfs}/ush/preamble.sh" -source "${HOMEgfs}/ush/jjob_header.sh" -e "prepiodaobs" -c "base prepiodaobs" +source "${HOMEgfs}/ush/jjob_header.sh" -e "prepatmiodaobs" -c "base prepatmiodaobs" ############################################## # Set variables used in the script @@ -17,7 +17,7 @@ YMD=${PDY} HH=${cyc} generate_com -rx COM_OBS ############################################################### # Run relevant script -EXSCRIPT=${BUFR2IODASH:-${HOMEgfs}/ush/ioda/bufr2ioda/run_bufr2ioda.sh} +EXSCRIPT=${BUFR2IODASH:-${HOMEgfs}/ush/run_bufr2ioda.sh} ${EXSCRIPT} "${PDY}${cyc}" "${CDUMP}" "${DMPDIR}" "${IODAPARM}" "${COM_OBS}/" status=$? [[ ${status} -ne 0 ]] && (echo "FATAL ERROR: Error executing ${EXSCRIPT}, ABORT!"; exit "${status}") diff --git a/parm/config/gfs/config.prepatmiodaobs b/parm/config/gfs/config.prepatmiodaobs new file mode 100644 index 0000000000..63c979d377 --- /dev/null +++ b/parm/config/gfs/config.prepatmiodaobs @@ -0,0 +1,14 @@ +#! /usr/bin/env bash + +########## config.prepatmiodaobs ########## +# Atm Obs Prep specific + +echo "BEGIN: config.prepatmiodaobs" + +# Get task specific resources +. "${EXPDIR}/config.resources" prepatmiodaobs + +export BUFR2IODASH="${HOMEgfs}/ush/run_bufr2ioda.sh" +export IODAPARM="${HOMEgfs}/sorc/gdas.cd/parm/ioda/bufr2ioda" + +echo "END: config.prepatmiodaobs" diff --git a/parm/config/gfs/config.prepiodaobs b/parm/config/gfs/config.prepiodaobs deleted file mode 100644 index c95fcf08b7..0000000000 --- a/parm/config/gfs/config.prepiodaobs +++ /dev/null @@ -1,14 +0,0 @@ -#! /usr/bin/env bash - -########## config.prepiodaobs ########## -# Atm Obs Prep specific - -echo "BEGIN: config.prepiodaobs" - -# Get task specific resources -. "${EXPDIR}/config.resources" prepiodaobs - -export BUFR2IODASH="${HOMEgfs}/sorc/gdas.cd/ush/ioda/bufr2ioda/run_bufr2ioda.sh" -export IODAPARM="${HOMEgfs}/sorc/gdas.cd/parm/ioda/bufr2ioda" - -echo "END: config.prepiodaobs" diff --git a/parm/config/gfs/config.resources b/parm/config/gfs/config.resources index d79d341aa1..76ebdf0cdb 100644 --- a/parm/config/gfs/config.resources +++ b/parm/config/gfs/config.resources @@ -9,7 +9,7 @@ if [[ $# -ne 1 ]]; then echo "Must specify an input task argument to set resource variables!" echo "argument can be any one of the following:" echo "coupled_ic aerosol_init" - echo "prep preplandobs prepiodaobs" + echo "prep preplandobs prepatmiodaobs" echo "atmanlinit atmanlrun atmanlfinal" echo "atmensanlinit atmensanlrun atmensanlfinal" echo "landanl" @@ -73,12 +73,12 @@ elif [[ "${step}" = "preplandobs" ]]; then npe_node_preplandobs=1 export npe_node_preplandobs -elif [[ "${step}" = "prepiodaobs" ]]; then - export wtime_prepiodaobs="00:10:00" - export npe_prepiodaobs=1 - export nth_prepiodaobs=1 - npe_node_prepiodaobs=$(echo "${npe_node_max} / ${nth_prepiodaobs}" | bc) - export npe_node_prepiodaobs +elif [[ "${step}" = "prepatmiodaobs" ]]; then + export wtime_prepatmiodaobs="00:10:00" + export npe_prepatmiodaobs=1 + export nth_prepatmiodaobs=1 + npe_node_prepatmiodaobs=$(echo "${npe_node_max} / ${nth_prepatmiodaobs}" | bc) + export npe_node_prepatmiodaobs elif [[ "${step}" = "aerosol_init" ]]; then export wtime_aerosol_init="00:05:00" diff --git a/sorc/link_workflow.sh b/sorc/link_workflow.sh index 3c1d19f740..05be37183b 100755 --- a/sorc/link_workflow.sh +++ b/sorc/link_workflow.sh @@ -203,6 +203,7 @@ if [[ -d "${HOMEgfs}/sorc/gdas.cd" ]]; then cd "${HOMEgfs}/ush" || exit 1 ${LINK_OR_COPY} "${HOMEgfs}/sorc/gdas.cd/ush/ufsda" . ${LINK_OR_COPY} "${HOMEgfs}/sorc/gdas.cd/ush/jediinc2fv3.py" . + ${LINK_OR_COPY} "${HOMEgfs}/sorc/gdas.cd/ush/ioda/bufr2ioda/run_bufr2ioda.sh" . ${LINK_OR_COPY} "${HOMEgfs}/sorc/gdas.cd/build/bin/imsfv3_scf2ioda.py" . fi diff --git a/workflow/applications/gfs_cycled.py b/workflow/applications/gfs_cycled.py index 08324d91ac..633e93bac0 100644 --- a/workflow/applications/gfs_cycled.py +++ b/workflow/applications/gfs_cycled.py @@ -37,7 +37,7 @@ def _get_app_configs(self): configs = ['prep'] if self.do_jediatmvar: - configs += ['prepiodaobs', 'atmanlinit', 'atmanlrun', 'atmanlfinal'] + configs += ['prepatmiodaobs', 'atmanlinit', 'atmanlrun', 'atmanlfinal'] else: configs += ['anal', 'analdiag'] @@ -109,7 +109,7 @@ def get_task_names(self): gdas_gfs_common_cleanup_tasks = ['arch'] if self.do_jediatmvar: - gdas_gfs_common_tasks_before_fcst += ['prepiodaobs', 'atmanlinit', 'atmanlrun', 'atmanlfinal'] + gdas_gfs_common_tasks_before_fcst += ['prepatmiodaobs', 'atmanlinit', 'atmanlrun', 'atmanlfinal'] else: gdas_gfs_common_tasks_before_fcst += ['anal'] diff --git a/workflow/rocoto/gfs_tasks.py b/workflow/rocoto/gfs_tasks.py index 6b43f6859b..8f91abae75 100644 --- a/workflow/rocoto/gfs_tasks.py +++ b/workflow/rocoto/gfs_tasks.py @@ -245,22 +245,22 @@ def analdiag(self): return task - def prepiodaobs(self): + def prepatmiodaobs(self): deps = [] dep_dict = {'type': 'task', 'name': f'{self.cdump}prep'} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep=deps) - resources = self.get_resource('prepiodaobs') - task = create_wf_task('prepiodaobs', resources, cdump=self.cdump, envar=self.envars, dependency=dependencies) + resources = self.get_resource('prepatmiodaobs') + task = create_wf_task('prepatmiodaobs', resources, cdump=self.cdump, envar=self.envars, dependency=dependencies) return task def atmanlinit(self): deps = [] - dep_dict = {'type': 'task', 'name': f'{self.cdump}prepiodaobs'} + dep_dict = {'type': 'task', 'name': f'{self.cdump}prepatmiodaobs'} deps.append(rocoto.add_dependency(dep_dict)) if self.app_config.do_hybvar: dep_dict = {'type': 'metatask', 'name': 'enkfgdasepmn', 'offset': '-06:00:00'} @@ -1005,7 +1005,7 @@ def eupd(self): def atmensanlinit(self): deps = [] - dep_dict = {'type': 'task', 'name': f'{self.cdump.replace("enkf","")}prepiodaobs'} + dep_dict = {'type': 'task', 'name': f'{self.cdump.replace("enkf","")}prepatmiodaobs'} deps.append(rocoto.add_dependency(dep_dict)) dep_dict = {'type': 'metatask', 'name': 'enkfgdasepmn', 'offset': '-06:00:00'} deps.append(rocoto.add_dependency(dep_dict)) diff --git a/workflow/rocoto/tasks.py b/workflow/rocoto/tasks.py index 46f468efca..1eba5a2652 100644 --- a/workflow/rocoto/tasks.py +++ b/workflow/rocoto/tasks.py @@ -12,7 +12,7 @@ class Tasks: SERVICE_TASKS = ['arch', 'earc'] VALID_TASKS = ['aerosol_init', 'coupled_ic', 'prep', 'anal', 'sfcanl', 'analcalc', 'analdiag', 'arch', - 'prepiodaobs', 'atmanlinit', 'atmanlrun', 'atmanlfinal', + 'prepatmiodaobs', 'atmanlinit', 'atmanlrun', 'atmanlfinal', 'ocnanalprep', 'ocnanalbmat', 'ocnanalrun', 'ocnanalchkpt', 'ocnanalpost', 'ocnanalvrfy', 'earc', 'ecen', 'echgres', 'ediag', 'efcs', 'eobs', 'eomg', 'epos', 'esfc', 'eupd', From cd6972d42fed85c96bae1acde5b2d6ea060d9c0f Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Thu, 31 Aug 2023 16:33:20 +0000 Subject: [PATCH 4/8] rename rotoco job prepiodaobs.sh as prepatmiodaobs.sh (#1820) --- jobs/rocoto/{prepiodaobs.sh => prepatmiodaobs.sh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename jobs/rocoto/{prepiodaobs.sh => prepatmiodaobs.sh} (100%) diff --git a/jobs/rocoto/prepiodaobs.sh b/jobs/rocoto/prepatmiodaobs.sh similarity index 100% rename from jobs/rocoto/prepiodaobs.sh rename to jobs/rocoto/prepatmiodaobs.sh From f6d63e11dd5ff21820905689a12acc6189411033 Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Thu, 31 Aug 2023 18:05:11 +0000 Subject: [PATCH 5/8] rename prep_ioda_obs j-job to be consistent with other prepatmiodaobs files (#1820) --- jobs/{JGLOBAL_PREP_IODA_OBS => JGLOBAL_ATM_PREP_IODA_OBS} | 0 jobs/rocoto/prepatmiodaobs.sh | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename jobs/{JGLOBAL_PREP_IODA_OBS => JGLOBAL_ATM_PREP_IODA_OBS} (100%) diff --git a/jobs/JGLOBAL_PREP_IODA_OBS b/jobs/JGLOBAL_ATM_PREP_IODA_OBS similarity index 100% rename from jobs/JGLOBAL_PREP_IODA_OBS rename to jobs/JGLOBAL_ATM_PREP_IODA_OBS diff --git a/jobs/rocoto/prepatmiodaobs.sh b/jobs/rocoto/prepatmiodaobs.sh index 22e502cf57..477c040805 100755 --- a/jobs/rocoto/prepatmiodaobs.sh +++ b/jobs/rocoto/prepatmiodaobs.sh @@ -13,6 +13,6 @@ export jobid="${job}.$$" ############################################################### # Execute the JJOB -"${HOMEgfs}/jobs/JGLOBAL_PREP_IODA_OBS" +"${HOMEgfs}/jobs/JGLOBAL_ATM_PREP_IODA_OBS" status=$? exit "${status}" From 92bdd9a49c30c9303df95feb5c11dac6b2f3d8ba Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Tue, 5 Sep 2023 13:20:14 +0000 Subject: [PATCH 6/8] replace run_bufr2ioda.sh with run_bufr2ioda.py, add run_bufr2ioda.py to .gitignore (#1820) --- .gitignore | 1 + jobs/JGLOBAL_ATM_PREP_IODA_OBS | 2 +- parm/config/gfs/config.prepatmiodaobs | 2 +- sorc/link_workflow.sh | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index c2e98c210d..9ac9ece1dd 100644 --- a/.gitignore +++ b/.gitignore @@ -144,6 +144,7 @@ ush/make_tif.sh ush/month_name.sh ush/imsfv3_scf2ioda.py ush/atparse.bash +ush/run_bufr2ioda.py # version files versions/build.ver diff --git a/jobs/JGLOBAL_ATM_PREP_IODA_OBS b/jobs/JGLOBAL_ATM_PREP_IODA_OBS index ef2fc8a7cc..a38945da4d 100755 --- a/jobs/JGLOBAL_ATM_PREP_IODA_OBS +++ b/jobs/JGLOBAL_ATM_PREP_IODA_OBS @@ -17,7 +17,7 @@ YMD=${PDY} HH=${cyc} generate_com -rx COM_OBS ############################################################### # Run relevant script -EXSCRIPT=${BUFR2IODASH:-${HOMEgfs}/ush/run_bufr2ioda.sh} +EXSCRIPT=${BUFR2IODASH:-${HOMEgfs}/ush/run_bufr2ioda.py} ${EXSCRIPT} "${PDY}${cyc}" "${CDUMP}" "${DMPDIR}" "${IODAPARM}" "${COM_OBS}/" status=$? [[ ${status} -ne 0 ]] && (echo "FATAL ERROR: Error executing ${EXSCRIPT}, ABORT!"; exit "${status}") diff --git a/parm/config/gfs/config.prepatmiodaobs b/parm/config/gfs/config.prepatmiodaobs index 63c979d377..ed9b246120 100644 --- a/parm/config/gfs/config.prepatmiodaobs +++ b/parm/config/gfs/config.prepatmiodaobs @@ -8,7 +8,7 @@ echo "BEGIN: config.prepatmiodaobs" # Get task specific resources . "${EXPDIR}/config.resources" prepatmiodaobs -export BUFR2IODASH="${HOMEgfs}/ush/run_bufr2ioda.sh" +export BUFR2IODASH="${HOMEgfs}/ush/run_bufr2ioda.py" export IODAPARM="${HOMEgfs}/sorc/gdas.cd/parm/ioda/bufr2ioda" echo "END: config.prepatmiodaobs" diff --git a/sorc/link_workflow.sh b/sorc/link_workflow.sh index 05be37183b..0e2cdf5edd 100755 --- a/sorc/link_workflow.sh +++ b/sorc/link_workflow.sh @@ -203,7 +203,7 @@ if [[ -d "${HOMEgfs}/sorc/gdas.cd" ]]; then cd "${HOMEgfs}/ush" || exit 1 ${LINK_OR_COPY} "${HOMEgfs}/sorc/gdas.cd/ush/ufsda" . ${LINK_OR_COPY} "${HOMEgfs}/sorc/gdas.cd/ush/jediinc2fv3.py" . - ${LINK_OR_COPY} "${HOMEgfs}/sorc/gdas.cd/ush/ioda/bufr2ioda/run_bufr2ioda.sh" . + ${LINK_OR_COPY} "${HOMEgfs}/sorc/gdas.cd/ush/ioda/bufr2ioda/run_bufr2ioda.py" . ${LINK_OR_COPY} "${HOMEgfs}/sorc/gdas.cd/build/bin/imsfv3_scf2ioda.py" . fi From 13c1f478729c3d2cfe6fcd3b0531a82d89db7f64 Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Wed, 6 Sep 2023 01:19:40 +0000 Subject: [PATCH 7/8] replace CDUMP with RUN in JGLOBAL_ATM_PREP_IODA_OBS, update PYTHONPATH in prepatmiodaobs.sh (#1820) --- jobs/JGLOBAL_ATM_PREP_IODA_OBS | 2 +- jobs/rocoto/prepatmiodaobs.sh | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/jobs/JGLOBAL_ATM_PREP_IODA_OBS b/jobs/JGLOBAL_ATM_PREP_IODA_OBS index a38945da4d..ef0e682468 100755 --- a/jobs/JGLOBAL_ATM_PREP_IODA_OBS +++ b/jobs/JGLOBAL_ATM_PREP_IODA_OBS @@ -18,7 +18,7 @@ YMD=${PDY} HH=${cyc} generate_com -rx COM_OBS ############################################################### # Run relevant script EXSCRIPT=${BUFR2IODASH:-${HOMEgfs}/ush/run_bufr2ioda.py} -${EXSCRIPT} "${PDY}${cyc}" "${CDUMP}" "${DMPDIR}" "${IODAPARM}" "${COM_OBS}/" +${EXSCRIPT} "${PDY}${cyc}" "${RUN}" "${DMPDIR}" "${IODAPARM}" "${COM_OBS}/" status=$? [[ ${status} -ne 0 ]] && (echo "FATAL ERROR: Error executing ${EXSCRIPT}, ABORT!"; exit "${status}") diff --git a/jobs/rocoto/prepatmiodaobs.sh b/jobs/rocoto/prepatmiodaobs.sh index 477c040805..d424df9261 100755 --- a/jobs/rocoto/prepatmiodaobs.sh +++ b/jobs/rocoto/prepatmiodaobs.sh @@ -11,6 +11,13 @@ status=$? export job="prepatmobs" export jobid="${job}.$$" +############################################################### +# setup python path for workflow and ioda utilities +wxflowPATH="${HOMEgfs}/ush/python:${HOMEgfs}/ush/python/wxflow/src" +PYIODALIB="${HOMEgfs}/sorc/gdas.cd/build/lib/python3.7" +PYTHONPATH="${PYIODALIB}:${wxflowPATH}:${PYTHONPATH}" +export PYTHONPATH + ############################################################### # Execute the JJOB "${HOMEgfs}/jobs/JGLOBAL_ATM_PREP_IODA_OBS" From 339c6a02bb73c393b2abbbbfa61e56e90c29aaae Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA Date: Thu, 7 Sep 2023 09:47:18 +0000 Subject: [PATCH 8/8] update GDASApp hash to support prepatmiodaobs (#1820) --- Externals.cfg | 2 +- sorc/checkout.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index fee84e957a..159432fda7 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -57,7 +57,7 @@ protocol = git required = False [GDASApp] -hash = f614cc2 +hash = ac8fdb1 local_path = sorc/gdas.cd repo_url = https://github.com/NOAA-EMC/GDASApp.git protocol = git diff --git a/sorc/checkout.sh b/sorc/checkout.sh index 98873ea6f1..d69cfec208 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -160,7 +160,7 @@ if [[ ${checkout_gsi} == "YES" ]]; then fi if [[ ${checkout_gdas} == "YES" ]]; then - checkout "gdas.cd" "https://github.com/NOAA-EMC/GDASApp.git" "f614cc2"; errs=$((errs + $?)) + checkout "gdas.cd" "https://github.com/NOAA-EMC/GDASApp.git" "ac8fdb1"; errs=$((errs + $?)) fi if [[ ${checkout_gsi} == "YES" || ${checkout_gdas} == "YES" ]]; then