diff --git a/jobs/rocoto/ocnanalchkpt.sh b/jobs/rocoto/ocnanalchkpt.sh new file mode 100755 index 00000000000..ae98bc8e882 --- /dev/null +++ b/jobs/rocoto/ocnanalchkpt.sh @@ -0,0 +1,18 @@ +#! /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="ocnanalchkpt" +export jobid="${job}.$$" + +############################################################### +# Execute the JJOB +"${HOMEgfs}"/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_CHKPT +status=$? +exit "${status}" diff --git a/parm/config/config.ocnanalvrfy b/parm/config/config.ocnanalvrfy new file mode 100644 index 00000000000..4eda451853c --- /dev/null +++ b/parm/config/config.ocnanalvrfy @@ -0,0 +1,10 @@ +#!/bin/bash + +########## config.ocnanalvrfy ########## +# Pre Ocn Analysis specific + +echo "BEGIN: config.ocnanalvrfy" + +# Get task specific resources +. "${EXPDIR}/config.resources" ocnanalvrfy +echo "END: config.ocnanalvrfy" diff --git a/parm/config/config.resources b/parm/config/config.resources index 30eae816709..636efc11dd8 100644 --- a/parm/config/config.resources +++ b/parm/config/config.resources @@ -20,8 +20,7 @@ if [[ $# -ne 1 ]]; then echo "wavegempak waveawipsbulls waveawipsgridded" echo "postsnd awips gempak" echo "wafs wafsgrib2 wafsblending wafsgrib20p25 wafsblending0p25 wafsgcip" - echo "ocnanalprep ocnanalbmat ocnanalrun ocnanalchkpt ocnanalpost" - + echo "ocnanalprep ocnanalbmat ocnanalrun ocnanalchkpt ocnanalpost ocnanalvrfy" exit 1 fi @@ -228,7 +227,7 @@ elif [[ "${step}" = "landanlinit" || "${step}" = "landanlrun" || "${step}" = "l export layout_x export layout_y - if [[ "${step}" = "landanlinit" || "${step}" = "landanlfinal" ]]; then + if [[ "${step}" = "landanlinit" || "${step}" = "landanlfinal" ]]; then declare -x "wtime_${step}"="00:10:00" declare -x "npe_${step}"=1 declare -x "nth_${step}"=1 @@ -397,6 +396,15 @@ elif [[ "${step}" = "ocnanalpost" ]]; then npe_node_ocnanalpost=$(echo "${npe_node_max} / ${nth_ocnanalpost}" | bc) export npe_node_ocnanalpost +elif [[ "${step}" = "ocnanalvrfy" ]]; then + + export wtime_ocnanalvrfy="00:35:00" + export npe_ocnanalvrfy=1 + export nth_ocnanalvrfy=1 + npe_node_ocnanalvrfy=$(echo "${npe_node_max} / ${nth_ocnanalvrfy}" | bc) + export npe_node_ocnanalvrfy + export memory_ocnanalvrfy="24GB" + elif [[ ${step} = "anal" ]]; then export wtime_anal="00:50:00" diff --git a/workflow/applications.py b/workflow/applications.py index ff4161bdede..c481cb76ff2 100644 --- a/workflow/applications.py +++ b/workflow/applications.py @@ -184,7 +184,8 @@ def _cycled_configs(self): configs += ['anal', 'analdiag'] if self.do_jediocnvar: - configs += ['ocnanalprep', 'ocnanalbmat', 'ocnanalrun', 'ocnanalchkpt', 'ocnanalpost'] + configs += ['ocnanalprep', 'ocnanalbmat', 'ocnanalrun', 'ocnanalchkpt', 'ocnanalpost', 'ocnanalvrfy'] + if self.do_ocean: configs += ['ocnpost'] @@ -362,7 +363,7 @@ def _get_cycled_task_names(self): if self.do_jediocnvar: gdas_gfs_common_tasks_before_fcst += ['ocnanalprep', 'ocnanalbmat', 'ocnanalrun', - 'ocnanalchkpt', 'ocnanalpost'] + 'ocnanalchkpt', 'ocnanalpost', 'ocnanalvrfy'] gdas_gfs_common_tasks_before_fcst += ['sfcanl', 'analcalc'] diff --git a/workflow/rocoto/workflow_tasks.py b/workflow/rocoto/workflow_tasks.py index 6308abd9faf..6dfadc749fa 100644 --- a/workflow/rocoto/workflow_tasks.py +++ b/workflow/rocoto/workflow_tasks.py @@ -14,7 +14,7 @@ class Tasks: VALID_TASKS = ['aerosol_init', 'coupled_ic', 'getic', 'init', 'prep', 'anal', 'sfcanl', 'analcalc', 'analdiag', 'gldas', 'arch', 'atmanlinit', 'atmanlrun', 'atmanlfinal', - 'ocnanalprep', 'ocnanalbmat', 'ocnanalrun', 'ocnanalchkpt', 'ocnanalpost', + 'ocnanalprep', 'ocnanalbmat', 'ocnanalrun', 'ocnanalchkpt', 'ocnanalpost', 'ocnanalvrfy', 'earc', 'ecen', 'echgres', 'ediag', 'efcs', 'eobs', 'eomg', 'epos', 'esfc', 'eupd', 'atmensanlinit', 'atmensanlrun', 'atmensanlfinal', @@ -632,6 +632,22 @@ def ocnanalpost(self): return task + def ocnanalvrfy(self): + + deps = [] + dep_dict = {'type': 'task', 'name': f'{self.cdump}ocnanalpost'} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + + resources = self.get_resource('ocnanalvrfy') + task = create_wf_task('ocnanalvrfy', + resources, + cdump=self.cdump, + envar=self.envars, + dependency=dependencies) + + return task + def gldas(self): deps = []