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
pygfsand SOCA/OOPS B-matrix computation. - JEDI/SOCA: loads
ufsdamodules. - Part of marine DA chain: after
anl_init/bmat_init, beforeanlvar.
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.