jgfs_atmos_gempak_meta ecf (v17) Analysis - TerrenceMcGuinness-NOAA/global-workflow GitHub Wiki

jgfs_atmos_gempak_meta.ecf (GFS v17)

Branch / tenant: dev/gfs.v17 (gw_v17) Path: ecf/scripts/gfs/product/atmos/gempak/jgfs_atmos_gempak_meta.ecf Analysis date: 2026-06-11 Method: AWS Bedrock AgentCore agentcore-mcp-rag MCP (graph traversal, GraphRAG, code-context) cross-checked against the on-disk v17 worktree.


Summary

jgfs_atmos_gempak_meta.ecf is the NCO production ecFlow task that generates GEMPAK metafiles — pre-rendered meteorological chart products (jet stream analyses, thickness charts, precipitation panels, etc.) from GFS GEMPAK grids. It is a single-instance task per cycle (not a _master template) that loops internally through forecast hours, spawning MPI-parallel GEMPAK plotting processes. It calls JGFS_ATMOS_GEMPAK_META, which drives exgfs_atmos_gempak_meta.sh.


1. The script itself

#PBS -S /bin/bash
#PBS -N gfs_atmos_gempak_meta_%CYC%
#PBS -j oe
#PBS -q %QUEUE%
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=06:00:00
#PBS -l select=1:mpiprocs=28:ompthreads=1:ncpus=28:mem=40GB
#PBS -l place=vscatter:shared
#PBS -l debug=true

model=gfs
export cyc="%CYC%"
%include <head.h>
%include <envir-p1.h>

############################################################
# Load modules
############################################################
source ${HOMEgfs}/dev/ush/load_modules.sh run

module list
############################################################
# CALL executable job script here
############################################################
export CDATE=${PDY}${cyc}
export HOMEglobal=${HOMEgfs}

#### ${HOMEgfs}/dev/job_cards/rocoto/gempakmeta.sh
${HOMEgfs}/jobs/JGFS_ATMOS_GEMPAK_META
if [ $? -ne 0 ]; then
   ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***"
   ecflow_client --abort
   exit
fi

%include <tail.h>
%manual

%end

What each part does

Section Role
#PBS directives PBS Pro: 1 node, 28 mpiprocs, 28 cpus, 40 GB, 6-hour wall — long runtime because it loops over all hours and generates many meta-chart products via parallel GEMPAK scripting.
%include <head.h> / <envir-p1.h> NCO boilerplate.
load_modules.sh run v17 centralized module loading (general run set).
No WGF/FHR3 exports Single-instance per cycle (not a _master).
${HOMEgfs}/jobs/JGFS_ATMOS_GEMPAK_META The J-Job. Non-zero exit triggers abort.

2. Single-instance pattern

Like jgfs_atmos_npoess_pgrb2_0p5.ecf, this is a single task per cycle. The ex-script loops from fhbeg to fhend (from config.gempakmeta), waiting for upstream GEMPAK grid files via wait_for_file, then spawning parallel GEMPAK plotting processes via POE scripts.

The TODO comment in the J-Job notes: "This job is not part of the rocoto suite" — NCO ecFlow only.


3. Execution chain

ecf/defs/gfs_prod.def : task jgfs_atmos_gempak_meta
  +-- jgfs_atmos_gempak_meta.ecf              (PBS submit)
       +-- ${HOMEgfs}/jobs/JGFS_ATMOS_GEMPAK_META   (J-Job)
            +-- ${SCRglobal}/exgfs_atmos_gempak_meta.sh   (ex-script)
                 +-- GEMPAK programs (gdplot2_nc, etc.) via POE parallel
                 +-- wait_for_file (polling for upstream GEMPAK grids)

Confirmed via MCP graph (tenant gw_v17): JGFS_ATMOS_GEMPAK_META is a suite leaf with 0 direct dependents.


4. What the J-Job actually produces

The ex-script generates GEMPAK metafiles — pre-rendered chart products for NWS forecasters and external distribution:

Product type Description Output location
Metafiles (.meta) Pre-rendered weather charts (jet stream, thickness, precip panels, etc.) ${COMOUT_ATMOS_GEMPAK_META}/

The script runs 23 parallel GEMPAK processes (via POE) per forecast hour block, each producing a different chart type. Input comes from the 1.00-degree GEMPAK grids (${COMIN_ATMOS_GEMPAK_1p00}/) and optionally NAM verification data (${COMINnam}).

DBN alert type: GFS_METAFILE

Error handling

Uses the EE2-correct pattern: "${SCRglobal}/exgfs_atmos_gempak_meta.sh" && true followed by err_exit on non-zero.


5. Key environment variables

Variable Origin Meaning
COMIN_ATMOS_GEMPAK_1p00 J-Job (declare -rx) Input: 1.00-degree GEMPAK grid files.
COMOUT_ATMOS_GEMPAK_META J-Job (declare -rx) Output: GEMPAK metafile products.
COMINnam J-Job NAM COM directory for verification overlay.
DBN_ALERT_TYPE J-Job (GFS_METAFILE) DBNet alert type.
numproc ex-script (23) Number of parallel GEMPAK plotting processes.
fhbeg / fhend / fhinc config.gempakmeta Forecast hour range and increment.
LAUNCH_MODE J-Job (MPI) Parallel launch mode for GEMPAK.

Configuration

The J-Job sources jjob_header.sh -e "gempak_meta" -c "base gempakmeta", loading:

  • config.base — fundamental paths and settings.
  • config.gempakmeta — meta-specific settings (forecast hour range, process count).

6. v17-specific notes

  • Single-instance, internally-looping: long walltime (6 hours) accommodates waiting for upstream GEMPAK grid completion across all forecast hours.
  • Not in Rocoto suite: NCO ecFlow only.
  • MPI-parallel GEMPAK: uses 28 cpus to run 23 parallel GEMPAK plotting processes per forecast hour block, maximizing throughput.
  • Centralized module loading via load_modules.sh run.
  • HOMEglobal shim bridges v17 naming to NCO.
  • Heavy memory (40 GB) for parallel GEMPAK chart generation.

7. Change-impact snapshot (from MCP, gw_v17)

Symbol Change type Risk Direct dependents
JGFS_ATMOS_GEMPAK_META behavior LOW (0.10) 0 (suite leaf)
exgfs_atmos_gempak_meta.sh signature LOW Single caller

Isolated suite leaf. The GEMPAK metafile scripts are self-contained; changes do not propagate to other jobs.


Sources

  • On-disk v17 worktree: ecf/scripts/gfs/product/atmos/gempak/jgfs_atmos_gempak_meta.ecf, dev/jobs/JGFS_ATMOS_GEMPAK_META, dev/scripts/exgfs_atmos_gempak_meta.sh.
  • agentcore-mcp-rag MCP (tenant gw_v17): get_change_impact.
⚠️ **GitHub.com Fallback** ⚠️