diff --git a/jobs/JGLOBAL_SNOWENS_ANALYSIS b/jobs/JGLOBAL_SNOWENS_ANALYSIS index ca23347bcab..9e532052a82 100755 --- a/jobs/JGLOBAL_SNOWENS_ANALYSIS +++ b/jobs/JGLOBAL_SNOWENS_ANALYSIS @@ -13,6 +13,13 @@ export GDUMP CDUMP=${RUN/enkf} export CDUMP +export NMEM_ENS_MAX=${NMEM_ENS} +if [[ "${RUN}" == "enkfgfs" ]]; then + NMEM_ENS=${NMEM_ENS_GFS} + export mem_offset=$((NMEM_ENS_GFS_OFFSET * cyc/6)) +else + export mem_offset=0 +fi ############################################## # Begin JOB SPECIFIC work ############################################## diff --git a/parm/gdas/snow_stage_ens_update.yaml.j2 b/parm/gdas/snow_stage_ens_update.yaml.j2 index d8b1d42d001..cae119ee744 100644 --- a/parm/gdas/snow_stage_ens_update.yaml.j2 +++ b/parm/gdas/snow_stage_ens_update.yaml.j2 @@ -22,13 +22,17 @@ copy: # copy ensemble background files ###################################### {% for mem in range(1, NMEM_ENS + 1) %} + {% set gmem = mem+mem_offset %} + {% if gmem > NMEM_ENS_MAX %} + {% set gmem = gmem-NMEM_ENS_MAX %} + {% endif %} # define variables # Declare a dict of search and replace terms to run on each template {% set tmpl_dict = {'${ROTDIR}':ROTDIR, - '${RUN}':RUN, + '${RUN}':"enkfgdas", '${YMD}':previous_cycle | to_YMD, '${HH}':previous_cycle | strftime("%H"), - '${MEMDIR}':"mem" + '%03d' % mem} %} + '${MEMDIR}':"mem" + '%03d' % gmem} %} # copy coupler file - ["{{ COM_ATMOS_RESTART_TMPL | replace_tmpl(tmpl_dict) }}/{{ current_cycle | to_fv3time }}.coupler.res", "{{ DATA }}/bkg/mem{{ '%03d' % mem }}/{{ current_cycle | to_fv3time }}.coupler.res"] diff --git a/workflow/applications/gfs_cycled.py b/workflow/applications/gfs_cycled.py index 7a2c812a0d8..2bf793eafa9 100644 --- a/workflow/applications/gfs_cycled.py +++ b/workflow/applications/gfs_cycled.py @@ -313,8 +313,8 @@ def get_task_names(self): task_names[run] += ['eobs', 'eupd'] task_names[run].append('echgres') if 'gdas' in run else 0 task_names[run] += ['ediag'] if options['lobsdiag_forenkf'] else ['eomg'] - task_names[run].append('esnowanl') if options['do_jedisnowda'] and 'gdas' in run else 0 + task_names[run].append('esnowanl') if options['do_jedisnowda'] else 0 task_names[run].append('efcs') if 'gdas' in run else 0 task_names[run].append('epos') if 'gdas' in run else 0 task_names[run] += ['stage_ic', 'ecen', 'esfc', 'earc', 'cleanup'] diff --git a/workflow/rocoto/gfs_tasks.py b/workflow/rocoto/gfs_tasks.py index 389d157df25..bce3036be71 100644 --- a/workflow/rocoto/gfs_tasks.py +++ b/workflow/rocoto/gfs_tasks.py @@ -619,7 +619,7 @@ def snowanl(self): def esnowanl(self): deps = [] - dep_dict = {'type': 'metatask', 'name': f'{self.run}_epmn', 'offset': f"-{timedelta_to_HMS(self._base['interval_gdas'])}"} + dep_dict = {'type': 'metatask', 'name': 'enkfgdas_epmn', 'offset': f"-{timedelta_to_HMS(self._base['interval_gdas'])}"} deps.append(rocoto.add_dependency(dep_dict)) dep_dict = {'type': 'task', 'name': f"{self.run.replace('enkf', '')}_prep"} deps.append(rocoto.add_dependency(dep_dict))