Skip to content

Remove FMS from UFS MPAS Atmosphere#3201

Merged
gspetro-NOAA merged 151 commits into
ufs-community:developfrom
dustinswales:feature/remove_fms
May 19, 2026
Merged

Remove FMS from UFS MPAS Atmosphere#3201
gspetro-NOAA merged 151 commits into
ufs-community:developfrom
dustinswales:feature/remove_fms

Conversation

@dustinswales
Copy link
Copy Markdown
Collaborator

@dustinswales dustinswales commented Apr 21, 2026

Commit Queue Requirements:

  • This PR addresses a relevant WM issue (if not, create an issue).
  • All subcomponent pull requests (if any) have been reviewed by their code managers.
  • Run the full Intel+GNU RT suite (compared to current baselines), preferably on Ursa (Derecho or Hercules are acceptable alternatives). Exceptions: documentation-only PRs, CI-only PRs, etc.
    • Commit log file w/full results from RT suite run (if applicable).
    • Verify that test_changes.list indicates which tests, if any, are changed by this PR. Commit test_changes.list, even if it is empty.
  • Fill out all sections of this template.

Description

This PR removes all FMS dependencies in the MPAS enabled UFS.

For logging and error handling, we now use the MPAS native logging functionality.

ESMF has replaced FMS for clock management. Most of the FMS functionality is included with ESMF, so this was straightforward.

With the FMS removal, we had to create some new infrastructure to provide MPAS configurability. This was necessary since we relied on FMS for runtime configurability.
A new routine, ufs_mpas_read_stream_lists, allows for runtime control over which fields are included in the various MPAS output streams (e.g., output, restart, diag, etc...). This provides the same functionality of standalone MPAS.

Initial tracer/constituent handling. This replaces the FMS tracer_tables. This may be revamped in the future to handle constituents differently.

New, non-FMS, handling of the atmospheric namelist.

Other things (non-FMS related) included here:

Added new interval to write restart files at different interval than output files. These are controlled by the UFS model_configure file.

Adopted/modified shared UFS tool to control restart, and output, file frequency, shr_is_restart_fh_mod. This is used by other UFS components NUOPC caps. Thanks @NickSzapiro-NOAA

Output/restart file format now matches with standalone MPAS-A. Timestamp in file name was HH:MM:SS, changed to HH.MM.SS. This addresses #3209

Commit Message:

* UFSWM - Remove FMS dependency from MPAS Atmosphere
  * UFSATM - Remove FMS dependency from MPAS Atmosphere

Priority:

  • Critical Bugfix: Reason
  • High: MPAS in the UFS is a high-priority and we have a backlog of PRs we need to get in.
  • [] Normal

Git Tracking

UFSWM:

Sub component Pull Requests:

UFSWM Blocking Dependencies:

N/A

Documentation:

N/A

Changes

Regression Test Changes (Please commit test_changes.list):

  • PR Adds New Tests/Baselines.
  • PR Updates/Changes Baselines. MPAS RTs fail due to a change in file format (Now matches standalone MPAS)
  • No Baseline Changes.

Input data Changes:

  • None.
  • PR adds input data. New stream_lists and tracer file needs to be added to staged IC directories.
  • PR changes existing input data.

Library Changes/Upgrades:

  • No Updates

Testing Log:

  • RDHPCS
    • Orion
    • Hercules
    • GaeaC6
    • Derecho
    • Ursa
  • WCOSS2
    • Dogwood/Cactus
    • Acorn
  • CI
  • opnReqTest (complete task if unnecessary)

Several tests increased by 1 remark# 10448, which is the ifort deprecation remark. This will resolve with the move to spack-stack v2.1.x.

Natalie Perlin and others added 30 commits August 12, 2025 13:53
@FernandoAndrade-NOAA
Copy link
Copy Markdown
Collaborator

It looks like history.2023-03-10_15.00.00.nc is not being generated, resulting in failures for both tests during creation.

baseline dir = /scratch4/NAGAPE/epic/role-epic/UFS-WM_RT/NEMSfv3gfs/develop-20260515/control_gfs_mpas_gnu
working dir  = /scratch3/NAGAPE/epic/Fernando.Andrade-maldonado/stmp/RT_RUNDIRS/Fernando.Andrade-maldonado/FV3_RT/rt_4183664/control_gfs_mpas_gnu
Checking test control_gfs_mpas_gnu results ....
Moving baseline control_gfs_mpas_gnu files ....
 Moving history.2023-03-10_15.00.00.nc .........NOT OK. Missing /scratch3/NAGAPE/epic/Fernando.Andrade-maldonado/stmp/RT_RUNDIRS/Fernando.Andrade-maldonado/FV3_RT/rt_4183664/control_gfs_mpas_gnu/history.2023-03-10_15.00.00.nc
 Moving history.2023-03-10_18.00.00.nc .........OK
 Moving history.2023-03-10_21.00.00.nc .........OK
 Moving history.2023-03-11_00.00.00.nc .........OK
 Moving history.2023-03-11_03.00.00.nc .........OK

please refer to the following on Ursa
/scratch3/NAGAPE/epic/Fernando.Andrade-maldonado/stmp/RT_RUNDIRS/Fernando.Andrade-maldonado/FV3_RT/rt_4183664

@dustinswales
Copy link
Copy Markdown
Collaborator Author

It looks like history.2023-03-10_15.00.00.nc is not being generated, resulting in failures for both tests during creation.

baseline dir = /scratch4/NAGAPE/epic/role-epic/UFS-WM_RT/NEMSfv3gfs/develop-20260515/control_gfs_mpas_gnu
working dir  = /scratch3/NAGAPE/epic/Fernando.Andrade-maldonado/stmp/RT_RUNDIRS/Fernando.Andrade-maldonado/FV3_RT/rt_4183664/control_gfs_mpas_gnu
Checking test control_gfs_mpas_gnu results ....
Moving baseline control_gfs_mpas_gnu files ....
 Moving history.2023-03-10_15.00.00.nc .........NOT OK. Missing /scratch3/NAGAPE/epic/Fernando.Andrade-maldonado/stmp/RT_RUNDIRS/Fernando.Andrade-maldonado/FV3_RT/rt_4183664/control_gfs_mpas_gnu/history.2023-03-10_15.00.00.nc
 Moving history.2023-03-10_18.00.00.nc .........OK
 Moving history.2023-03-10_21.00.00.nc .........OK
 Moving history.2023-03-11_00.00.00.nc .........OK
 Moving history.2023-03-11_03.00.00.nc .........OK

please refer to the following on Ursa /scratch3/NAGAPE/epic/Fernando.Andrade-maldonado/stmp/RT_RUNDIRS/Fernando.Andrade-maldonado/FV3_RT/rt_4183664

@FernandoAndrade-NOAA Sorry. There is no output at the initial time step. I updated the test files.

@gspetro-NOAA gspetro-NOAA added In Testing The PR that is currently in testing stages and removed In Testing The PR that is currently in testing stages labels May 18, 2026
@gspetro-NOAA gspetro-NOAA removed the In Testing The PR that is currently in testing stages label May 18, 2026
Comment thread .gitmodules Outdated
Copy link
Copy Markdown
Collaborator

@gspetro-NOAA gspetro-NOAA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Several tests increased by 1 remark# 10448, which is the ifort deprecation remark. This will resolve with the move to spack-stack v2.1.x, so the PR can proceed despite the failing CI test.

@gspetro-NOAA gspetro-NOAA merged commit e202ff3 into ufs-community:develop May 19, 2026
9 of 10 checks passed
@github-project-automation github-project-automation Bot moved this from Schedule to Done in PRs to Process May 19, 2026
@dustinswales dustinswales deleted the feature/remove_fms branch May 20, 2026 15:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Adds Input Data New input data needs to be added (e.g., for new test). No existing input data is changed. Baseline Updates Current baselines will be updated. feature-MPAS Label to identify tasks associated with the MPAS dynamical core implementation Priority: High Ready for Commit Queue The PR is ready for the Commit Queue. All checkboxes in PR template have been checked. UFSATM There are changes to the UFSATM repository.

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Remove FMS dependency in UFSATM/mpas

10 participants