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

jgfs_marine_bmat.ecf (GFS v17)

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


Summary

jgfs_marine_bmat.ecf is the NCO production ecFlow task that computes the marine background error covariance matrix (B-matrix) for the ocean/ice data assimilation. This is a computationally intensive task using ensemble statistics to characterize background uncertainty. It calls JGLOBAL_MARINE_BMAT.


1. The script itself

Section Detail
PBS resources 8 nodes, 64 cpus/node = 512 MPI ranks, 500 GB/node, exclusive host, 30-min wall
Modules load_modules.sh ufsda (JEDI/SOCA stack)
J-Job JGLOBAL_MARINE_BMAT
Rocoto breadcrumb marinebmat.sh

2. Execution chain

jgfs_marine_bmat.ecf
  +-- JGLOBAL_MARINE_BMAT
       +-- exglobal_marine_bmat.py (Python/pygfs)
            +-- Computes ocean B-matrix from ensemble spread
            +-- Computes ice B-matrix
            +-- Uses SOCA/OOPS bump operators

3. Key environment variables

Variable Meaning
COMIN_OCEAN_BMATRIX Output: ocean B-matrix
COMIN_ICE_BMATRIX Output: ice B-matrix

Configuration

Sources jjob_header.sh -e "marinebmat" -c "base marineanl marinebmat" (inferred from pattern).


4. v17-specific notes

  • Heavy resources: 8 nodes x 64 cpus = 512 ranks with 500 GB per node. This is one of the most memory-intensive DA tasks.
  • Exclusive host placement — full-node allocation.
  • Python-based driver using pygfs and SOCA/OOPS B-matrix computation.
  • JEDI/SOCA: loads ufsda modules.
  • Part of marine DA chain: after anl_init / bmat_init, before anlvar.

5. Change-impact snapshot

Symbol Risk Notes
JGLOBAL_MARINE_BMAT MEDIUM Feeds B-matrix to marine variational solver

Sources

  • On-disk v17 worktree: ecf/scripts/gfs/analysis/marine/jgfs_marine_bmat.ecf.
  • MCP (tenant gw_v17): on-disk analysis.