# MPAS-JEDI GnssroBndNBAM with modeltop 30: experience in cycling, observation errors, and extrapolation above the lid

**URL:** <https://forums.jcsda.org/t/mpas-jedi-gnssrobndnbam-with-modeltop-30-experience-in-cycling-observation-errors-and-extrapolation-above-the-lid/772>\
**Category:** JEDI\
**Created:** [October 30, 2026, 6:25pm UTC](https://forums.jcsda.org/t/mpas-jedi-gnssrobndnbam-with-modeltop-30-experience-in-cycling-observation-errors-and-extrapolation-above-the-lid/772 "2026-10-30T18:25:19Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![sylvia3320](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.jcsda.org/sylvia3320/32/304_2.png) [@sylvia3320](https://forums.jcsda.org/u/sylvia3320)\
**Post date:** [October 30, 2026, 6:25pm UTC](https://forums.jcsda.org/t/mpas-jedi-gnssrobndnbam-with-modeltop-30-experience-in-cycling-observation-errors-and-extrapolation-above-the-lid/772/1 "2026-10-30T18:25:19Z")

</div>

I am testing GnssroBndNBAM as the RO anchor for AMSU-A VarBC in MPAS-JEDI (mpas-bundle 4.0.0 with UFO 1.13.0, MPAS v8.4.1, 120 km mesh, 55 levels, 30 km top). In the MPAS-Workflow configuration I noticed the comment “gnssrobndnbam: so far unsuccessful in cycling experiments, even for HofX3D” [1], written in December 2022 [2], before UFO added the low-model-top option in November 2023 [3, 4]. A single-cycle 3DEnVar test with modeltop 30, assimilating bending angles with impact heights of 0-30 km, completed successfully, but cycling stability and analysis quality have not been established yet. I would be grateful for any information on those earlier tests: what “unsuccessful” referred to, which MPAS and UFO versions and model top were used, whether NBAM was tested again after the low-top option was added, and whether a configuration that cycled successfully is available.

For NBAM I use the built-in error model (ROobserror, errmodel NBAM) [5, 6]. NCAR’s Desroziers tables cover refractivity, bndmo and ROPP1D, but I could not find one for NBAM [7]. In a preliminary single-cycle check (2023-12-02 00Z, impact heights 0-30 km, all latitudes), the ratio of the Desroziers estimate, sqrt(mean(d\_ob d\_oa)), to the RMS of the final effective observation error was about 0.9 for COSMIC-2, 1.95 for Metop-B/C and 1.40 for Sentinel-6 (a ratio of standard deviations). This is not yet a calibrated error estimate. Has anyone derived MPAS-specific NBAM error estimates, for example by mission, impact height and latitude, or is there an established calibration procedure?

With modeltop 30 and the default nlevadd, the low-top branch sets nlevAdd to 63 and extends refractivity above the lid with a constant ratio from the top two levels [3, 8]. I could not find a validation of this for a 30 km top. For a 30 km-top MPAS configuration, has an upper impact-height cutoff been tested or recommended for assimilation, particularly when NBAM is used as a VarBC anchor?

[1] [MPAS-Workflow/config/jedi/ObsPlugs/ObsErrorAnchors.yaml at 2d68bd1a623a7173596f8b1d5aa7baa28e7df2cf · NCAR/MPAS-Workflow · GitHub](https://github.com/NCAR/MPAS-Workflow/blob/2d68bd1a623a7173596f8b1d5aa7baa28e7df2cf/config/jedi/ObsPlugs/ObsErrorAnchors.yaml#L172-L192)  
[2] NCAR/MPAS-Workflow commit d2b8375  
[3] [ufo/src/ufo/operators/gnssro/BndNBAM/ufo\_gnssro\_bndnbam\_mod.F90 at 1.13.0 · JCSDA/ufo · GitHub](https://github.com/JCSDA/ufo/blob/1.13.0/src/ufo/operators/gnssro/BndNBAM/ufo_gnssro_bndnbam_mod.F90#L247-L259)  
[4] JCSDA/ufo commit 3eca0a0  
[5] JCSDA/ufo 1.13.0, src/ufo/operators/gnssro/utils/gnssro\_mod\_obserror.F90, line 85  
[6] NCAR/MPAS-Workflow 2d68bd1, config/jedi/ObsPlugs/da/filters/gnssrobndnbam.yaml, lines 16-38  
[7] NCAR/MPAS-Workflow 2d68bd1, config/jedi/ObsPlugs/ObsErrorAnchors.yaml, lines 55-170  
[8] JCSDA/ufo 1.13.0, src/ufo/operators/gnssro/BndNBAM/ufo\_gnssro\_bndnbam\_util\_mod.F90, lines 60-64

---

<div class="post-metadata">

**Author:** ![ibanos90](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.jcsda.org/ibanos90/32/305_2.png) [@ibanos90](https://forums.jcsda.org/u/ibanos90)\
**Post date:** [November 9, 2026, 7:52pm UTC](https://forums.jcsda.org/t/mpas-jedi-gnssrobndnbam-with-modeltop-30-experience-in-cycling-observation-errors-and-extrapolation-above-the-lid/772/2 "2026-11-09T19:52:36Z")

</div>

Hello,

Thank you for your questions!

First, I would like to mention that for assimilating bending angles in MPAS-JEDI we use ROPP1D (gnssrobndropp1d), not NBAM, so our experience with NBAM is limited.

Answering your questions:

1. The comment “unsuccessful” refers to earlier NBAM tests where we had issues assimilating bending angles due to MPAS’s low model top. A fix was later added to UFO that makes the relevant parameters configurable in the YAML for low-top models. After this, ctests were added (hofx3d\_nbam and 3dvar\_bumpcov\_nbam), using modeltop: 30 with default values for the other parameters, and this part of the code is exercised with every build/ctest run. However, NBAM has not been tested in our cycling DA experiments since then, and therefore there is no cycled configuration so far.

2. Observation errors: there is no MPAS-JEDI specific NBAM table. The existing tables for ROPP1D and the other RO operators are relative Desroziers estimates in 1 km impact height bins and 5 latitude bands, with missions pooled, produced with the mpas-jedi graphics and MPAS-Workflow’s retrieveObsErrors scripts. The same procedure could be applied to NBAM.

3. Upper cutoff: none has been tested for NBAM. MPAS-Workflow has exclusion heights for refractivity and ROPP1D, but they are not used by default ([MPAS-Workflow/config/jedi/ObsPlugs/ObsErrorAnchors.yaml at develop · NCAR/MPAS-Workflow · GitHub](https://github.com/NCAR/MPAS-Workflow/blob/develop/config/jedi/ObsPlugs/ObsErrorAnchors.yaml#L176)).

Hope this helps!
