Skip to content

Some more MPAS functionality #1079

Merged
DusanJovic-NOAA merged 62 commits intoNOAA-EMC:developfrom
dustinswales:feature/mpas_lbc_plus_cleanup
Apr 29, 2026
Merged

Some more MPAS functionality #1079
DusanJovic-NOAA merged 62 commits intoNOAA-EMC:developfrom
dustinswales:feature/mpas_lbc_plus_cleanup

Conversation

@dustinswales
Copy link
Copy Markdown
Collaborator

@dustinswales dustinswales commented Mar 20, 2026

Description

Contains updates to the UFS interface to the MPAS dynamical core.

New advancements include:

  • Constituent handling and scalar advection. New module, ufs_mpas_constituents, which contains interface code between MPAS constituents and the UFS.
  • MPAS native output stream. Contained within the ufs_mpas_io module. This module also includes procedures for reading in the various MPAS input streams (e.g., invariant, input, sfc_input)
  • Support for lateral boundary condition (LBC) stream. New module with code related to regional MPAS configurations, ufs_mpas_boundaries. The LBCs are updated during forecast integration, _run phase in ufs_mpas_subdriver.F90.
  • Progress on CCPP physics coupling. New MPAS input stream (sfc_input) for gridded fields needed by the physics. Additional P2D coupling procedures to handle the state evolution between physics group and dycore calls. Added diagnostics to output stream.

Issue(s) addressed

Testing

On Ursa and Derecho with GNU.
Expanded the existing (barebones) MPAS UWM RTs to a) run 12-hour forecast w/ 3-hour output in RELEASE mode and b) added a new DEBUG test that runs a 3-hour forecast with hourly output.

Dependencies

ufs-community/ccpp-physics#365

dustinswales and others added 30 commits September 30, 2025 22:21
@NickSzapiro-NOAA
Copy link
Copy Markdown
Collaborator

Is there anything else I need to address?

I haven't looked at the new baselines yet but wonder if it's worth comparing real or idealized test cases to MPAS-A standalone (if that's the reference implementation), thanks to the added transport and output.

@dustinswales
Copy link
Copy Markdown
Collaborator Author

Is there anything else I need to address?

I haven't looked at the new baselines yet but wonder if it's worth comparing real or idealized test cases to MPAS-A standalone (if that's the reference implementation), thanks to the added transport and output.

@NickSzapiro-NOAA I've looked at the baselines (e.g., T, u, v, q, tracers) and they seem realistic. For the next PR, when the physics is included and we have more diagnostics, I will include some figures from offline and inline MPAS.

Comment thread ccpp/data/GFS_typedefs.F90 Outdated
Comment thread mpas/ufs_mpas_io.F90 Outdated
Comment thread ufsatm_cap.F90 Outdated
@dustinswales
Copy link
Copy Markdown
Collaborator Author

@NickSzapiro-NOAA Thanks for the review. I addressed all of your comments.

@dustinswales
Copy link
Copy Markdown
Collaborator Author

dustinswales commented Apr 22, 2026

@NickSzapiro-NOAA @DusanJovic-NOAA Here are some simple difference plots (Standalone MPAS - Inline (UFS) MPAS) of the state variables at the lowest model level.
Screenshot 2026-04-22 at 11 09 15 AM

@DeniseWorthen
Copy link
Copy Markdown
Collaborator

@dustinswales These differences must be at least at the round-off level, surely?

@dustinswales
Copy link
Copy Markdown
Collaborator Author

@dustinswales These differences must be at least at the round-off level, surely?

@DeniseWorthen I'm sure there is, but I was shocked that they looked this close just eye-balling it.
I'm going to dive a bit deeper and create better figures. Stay tuned...

@NickSzapiro-NOAA
Copy link
Copy Markdown
Collaborator

If it's just advection and output, shouldn't MPAS-A standalone match MPAS-A dycore in UFS exactly?

@dustinswales
Copy link
Copy Markdown
Collaborator Author

If it's just advection and output, shouldn't MPAS-A standalone match MPAS-A dycore in UFS exactly?

@NickSzapiro-NOAA My expectation is for initial agreement that diverges with forecast time. There are many differences between the modeling systems, so there's that piece of it. But I will also admit that I'm also not sure how a simulation w/o physics should evolve?

Here's a joint PDFs of global mean differences as a function of forecast time and model layer. For all fields there is initial agreement with subsequent drifting apart of the forecasts, especially aloft.

Theta:
Screenshot 2026-04-23 at 11 27 25 AM

qv:
Screenshot 2026-04-23 at 11 28 31 AM

uwind:
Screenshot 2026-04-23 at 11 28 48 AM

vwind:
Screenshot 2026-04-23 at 11 29 01 AM

@NickSzapiro-NOAA
Copy link
Copy Markdown
Collaborator

NickSzapiro-NOAA commented Apr 23, 2026

Maybe I'm wrong to assume that the dynamics should match but the physics will differ ... but it looks like differences start near the model top

Is it possible for you to share (here or separately) what you're running for this comparison @dustinswales ?
Is MPAS standalone using the regression test inputs too?

@dustinswales
Copy link
Copy Markdown
Collaborator Author

@NickSzapiro-NOAA @DusanJovic-NOAA I think I've gotten to the bottom of it (Some default nml settings were not correct).

Here are the jointPDFs after correcting the configuration:
inlineMPAS - standaloneMPAS (theta)
Screenshot 2026-04-24 at 2 58 32 PM

inlineMPAS - standaloneMPAS (v_wind)
Screenshot 2026-04-24 at 2 58 43 PM

inlineMPAS - standaloneMPAS (u_wind)
Screenshot 2026-04-24 at 2 58 55 PM

For comparison, here are the joint PDFs of standaloneMPAS(gnu) - standaloneMPAS(ifx):
(theta)
Screenshot 2026-04-24 at 3 01 25 PM

(v_wind)
Screenshot 2026-04-24 at 3 01 48 PM

(u_wind)
Screenshot 2026-04-24 at 3 02 07 PM

So inlineMPAS introduces less differences wrt to standaloneMPAS than does changing the compiler!

@gspetro-NOAA
Copy link
Copy Markdown
Collaborator

@dustinswales Could you revert .gitmodules and update the CCPP hash to 6904ad4?

@gspetro-NOAA
Copy link
Copy Markdown
Collaborator

This PR can be merged :)

@DusanJovic-NOAA DusanJovic-NOAA merged commit 967cba8 into NOAA-EMC:develop Apr 29, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants