Skip to content

jgfs_wave_awips_gridded ecf (v17) Analysis

Terry McGuinness edited this page Jun 11, 2026 · 2 revisions

jgfs_wave_awips_gridded.ecf (GFS v17)

Branch / tenant: dev/gfs.v17 (gw_v17) Path: ecf/scripts/gfs/product/wave/jgfs_wave_awips_gridded.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_wave_awips_gridded.ecf is the NCO production ecFlow task that generates AWIPS-compatible gridded wave bulletins (WMO-formatted GRIB2) from GFS wave model output. It is a single-instance task per cycle that processes all configured wave grids and produces WMO bulletins for distribution to NWS forecast offices via AWIPS. It calls JGLOBAL_WAVE_PRDGEN_GRIDDED, which drives exgfs_wave_prdgen_gridded.sh.


1. The script itself

#PBS -S /bin/bash
#PBS -N gfs_wave_awips_gridded_%CYC%
#PBS -j oe
#PBS -q %QUEUE%
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=02:00:00
#PBS -l select=1:mpiprocs=1:ompthreads=1:ncpus=128:mem=2G
#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/waveawipsgridded.sh
${HOMEgfs}/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED
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, 1 mpiproc, 128 cpus, 2 GB, 2-hour wall. High CPU count for parallel processing of multiple wave grids.
%include <head.h> / <envir-p1.h> NCO boilerplate.
load_modules.sh run v17 centralized module loading.
No WGF/FHR exports Single-instance per cycle (processes all hours internally).
${HOMEgfs}/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED The J-Job.

2. Single-instance pattern

This is a single task per cycle (gfs_wave_awips_gridded_%CYC%). The ex-script processes all forecast hours for all configured wave grids internally.


3. Execution chain

ecf/defs/gfs_prod.def : task jgfs_wave_awips_gridded
  +-- jgfs_wave_awips_gridded.ecf                    (PBS submit)
       +-- ${HOMEgfs}/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED   (J-Job)
            +-- wave_domain_grid.sh                   (sourced: grid config helper)
            +-- ${SCRglobal}/exgfs_wave_prdgen_gridded.sh   (ex-script)
                 +-- wgrib2 / tocgrib2 (bulletin generation)

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


4. What the J-Job actually produces

Product Format Output location
WMO wave gridded bulletins GRIB2 (WMO format) ${COMOUT_WAVE_WMO}/

The J-Job iterates over GEMPAK_GRIDS, resolving each grid ID via wave_domain_grid.sh (same pattern as JGLOBAL_WAVE_GEMPAK), then generates WMO-compliant GRIB2 bulletins for AWIPS distribution.

Error handling

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


5. Key environment variables

Variable Origin Meaning
COMIN_WAVE_GRID J-Job (declare -rx) Input: wave gridded products directory.
COMIN_WAVE_GRID_* J-Job (dynamic declare -rx) Per-grid input COM paths.
COMOUT_WAVE_WMO J-Job (declare -rx) Output: WMO wave bulletin directory.
GEMPAK_GRIDS config.waveawipsgridded Grid IDs to process.

Configuration

The J-Job sources jjob_header.sh -e "waveawipsgridded" -c "base wave waveawipsgridded", loading:

  • config.base — fundamental paths.
  • config.wave — wave model settings.
  • config.waveawipsgridded — AWIPS gridded product settings.

6. v17-specific notes

  • Single-instance — processes all hours/grids internally.
  • Dynamic grid resolution via wave_domain_grid.sh.
  • WMO bulletin format — for AWIPS distribution to NWS field offices.
  • Centralized module loading via load_modules.sh run.
  • HOMEglobal shim bridges v17 naming to NCO.
  • 128 cpus / 2 GB — compute-heavy but memory-light.

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

Symbol Change type Risk Direct dependents
JGLOBAL_WAVE_PRDGEN_GRIDDED behavior LOW (0.10) 0 (suite leaf)
exgfs_wave_prdgen_gridded.sh signature LOW Single caller
wave_domain_grid.sh behavior MEDIUM Shared across wave jobs

Sources

  • On-disk v17 worktree: ecf/scripts/gfs/product/wave/jgfs_wave_awips_gridded.ecf, dev/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED.
  • agentcore-mcp-rag MCP (tenant gw_v17): get_change_impact.

Clone this wiki locally