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

jgfs_wave_awips_bulls.ecf (GFS v17)

Branch / tenant: dev/gfs.v17 (gw_v17) Path: ecf/scripts/gfs/product/wave/jgfs_wave_awips_bulls.ecf Analysis date: 2026-06-11 Method: AWS Bedrock AgentCore agentcore-mcp-rag MCP cross-checked against the on-disk v17 worktree.


Summary

jgfs_wave_awips_bulls.ecf is the NCO production ecFlow task that generates WMO text bulletins from GFS wave station (point) output for AWIPS distribution. These are alphanumeric wave forecast bulletins for specific ocean buoy and coastal locations. It is a single-instance task per cycle calling JGLOBAL_WAVE_PRDGEN_BULLS, which drives exgfs_wave_prdgen_bulls.sh.


1. The script itself

#PBS -S /bin/bash
#PBS -N gfs_wave_awips_bulls_%CYC%
#PBS -j oe
#PBS -q %QUEUE%
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:20:00
#PBS -l select=1:mpiprocs=1:ompthreads=1:ncpus=128
#PBS -l place=vscatter:exclhost
#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/waveawipsbulls.sh
${HOMEgfs}/jobs/JGLOBAL_WAVE_PRDGEN_BULLS
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, exclusive host, 20-min wall. High CPU for parallel bulletin generation across multiple stations.
load_modules.sh run v17 centralized module loading.
No WGF/FHR exports Single-instance per cycle.
${HOMEgfs}/jobs/JGLOBAL_WAVE_PRDGEN_BULLS The J-Job.

2. Execution chain

ecf/defs/gfs_prod.def : task jgfs_wave_awips_bulls
  +-- jgfs_wave_awips_bulls.ecf                       (PBS submit)
       +-- ${HOMEgfs}/jobs/JGLOBAL_WAVE_PRDGEN_BULLS   (J-Job)
            +-- ${SCRglobal}/exgfs_wave_prdgen_bulls.sh   (ex-script)
                 +-- WMO bulletin generation from station data

3. What the J-Job actually produces

Product Format Input Output location
WMO wave text bulletins Alphanumeric WMO bulletins Station/point output (COMIN_WAVE_STATION) ${COMOUT_WAVE_WMO}/

These are traditional WMO-format text bulletins containing wave height, period, and direction forecasts for specific buoy/coastal locations, distributed via AWIPS to NWS offices.

Error handling

Uses the EE2-correct pattern: && true + err_exit.


4. Key environment variables

Variable Origin Meaning
COMIN_WAVE_STATION J-Job (declare -rx) Input: wave station/point output directory.
COMOUT_WAVE_WMO J-Job (declare -rx) Output: WMO wave bulletin directory.

Configuration

The J-Job sources jjob_header.sh -e "waveawipsbulls" -c "base wave waveawipsbulls".


5. v17-specific notes

  • Single-instance per cycle — processes all stations/hours internally.
  • Exclusive host: requires full node for parallel bulletin generation.
  • Depends on upstream jgfs_wave_postpnt (station output must be complete).
  • Centralized module loading via load_modules.sh run.
  • HOMEglobal shim bridges v17 naming to NCO.

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

Symbol Change type Risk Direct dependents
JGLOBAL_WAVE_PRDGEN_BULLS behavior LOW (0.10) 0 (suite leaf)

Sources

  • On-disk v17 worktree: ecf/scripts/gfs/product/wave/jgfs_wave_awips_bulls.ecf, dev/jobs/JGLOBAL_WAVE_PRDGEN_BULLS.
  • agentcore-mcp-rag MCP (tenant gw_v17): get_change_impact.
⚠️ **GitHub.com Fallback** ⚠️