Skip to content

Update MPAS dynamical core to version 8.4.0#495

Open
kuanchihwang wants to merge 11 commits into
ESCOMP:developmentfrom
kuanchihwang:staging/mpas-dycore-8.4.0
Open

Update MPAS dynamical core to version 8.4.0#495
kuanchihwang wants to merge 11 commits into
ESCOMP:developmentfrom
kuanchihwang:staging/mpas-dycore-8.4.0

Conversation

@kuanchihwang
Copy link
Copy Markdown
Collaborator

Tag name (required for release branches)

TBD

Originator(s)

kuanchihwang

Description (include the issue title, and the keyword ['closes', 'fixes', 'resolves'] followed by the issue number)

This PR updates MPAS dynamical core from version 8.3.1 to 8.4.0. See the release notes for details.

Notably, the new Large Eddy Simulation (LES) capability in MPAS is experimentally supported under CAM-SIMA, at the price of increased complexity in constituent handling. However, due to the object-oriented design of MPAS subdriver, this complexity is entirely contained within the subdriver layer and does not affect other parts of CAM-SIMA. This capability is disabled by default, and can be enabled manually through namelist options.

A future PR is planned to refactor the dyn_mpas_define_scalar subroutine in MPAS subdriver to keep its complexity and scope in check.

Describe any changes made to the build system

src/dynamics/mpas/assets/Makefile.in.CESM has been modified to suppress harmless but potentially confusing errors in build logs.

Describe any changes made to the namelist

  • mpas_epssm

This namelist option has been deprecated and set to 0.0. Setting it to any values other than 0.0 triggers a compatibility warning.

  • mpas_epssm_maximum, mpas_epssm_minimum, mpas_epssm_transition_bottom_z, mpas_epssm_transition_top_z

These new namelist options provide more fine-grained control on the off-centering parameter for the vertically implicit acoustic integration.

  • mpas_gpu_aware_mpi

Whether to use GPU-aware MPI for halo exchanges.

  • mpas_les_model, mpas_les_surface, mpas_mix_scalars, mpas_surface_drag_coefficient, mpas_surface_heat_flux, mpas_surface_moisture_flux

These new namelist options control the new LES capability in MPAS.

List any changes to the defaults for the input datasets (e.g., boundary datasets)

None

List all files eliminated and why

None

List all files added and what they do

A       src/dynamics/mpas/assets/0001-Fix-Fortran-standard-violation.patch
A       src/dynamics/mpas/assets/0002-Add-missing-argument-intent.patch
A       src/dynamics/mpas/assets/0003-Avoid-implicit-save-attribute.patch
  * Add patches to fix crash in MPAS 8.4.0

List all existing files that have been modified, and describe the changes

M       .gitmodules
M       src/dynamics/mpas/dycore
  * Update MPAS dynamical core to version 8.4.0
M       src/dynamics/mpas/assets/generate_namelist_definition.py
M       src/dynamics/mpas/namelist_definition_mpas_dycore.xml
  * Update namelist definition file and script for MPAS dynamical core
M       src/dynamics/mpas/assets/Makefile.in.CESM
  * Suppress harmless errors in build logs
M       src/dynamics/mpas/driver/dyn_mpas_subdriver.F90
  * Remove deprecated variables that no longer exist
  * Rework constituent handling in MPAS subdriver to support new LES capability

Regression tests

  • derecho/aux_sima_gnu
SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
  FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
  FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
  FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
  FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho (Overall: DIFF) details:
  FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho NLCOMP
  FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF

Expected answer changes due to MPAS version update.

SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam (Overall: FAIL) details:
  FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam RUN time=15

Known failing test.

  • derecho/aux_sima_intel
SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
  FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
  FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
  FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
  FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho (Overall: DIFF) details:
  FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho NLCOMP
  FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF

Expected answer changes due to MPAS version update.

SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape (Overall: NLFAIL) details:
  FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape NLCOMP

Known failing test.

  • derecho/aux_sima_nvhpc

Pass.

@kuanchihwang kuanchihwang temporarily deployed to CI-tests-on-CIRRUS April 24, 2026 19:09 — with GitHub Actions Inactive
@kuanchihwang kuanchihwang marked this pull request as ready for review April 24, 2026 19:17
@kuanchihwang kuanchihwang requested review from mgduda and nusbaume April 24, 2026 19:19
@kuanchihwang kuanchihwang temporarily deployed to CI-tests-on-CIRRUS May 1, 2026 20:01 — with GitHub Actions Inactive
Copy link
Copy Markdown
Collaborator

@nusbaume nusbaume left a comment

Choose a reason for hiding this comment

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

Thanks for bringing in the latest version of MPAS @kuanchihwang! I have a question, an optional clean-up request, and some requests to eventually provide some unit labels for MPAS namelist entries, but nothing that is strictly required for this particular PR.

Of course if you have any questions or concerns with any of my requests then just let me know. Thanks again!

Comment thread src/dynamics/mpas/assets/0001-Fix-Fortran-standard-violation.patch
Comment thread src/dynamics/mpas/driver/dyn_mpas_subdriver.F90 Outdated
Comment thread src/dynamics/mpas/driver/dyn_mpas_subdriver.F90 Outdated
Comment thread src/dynamics/mpas/namelist_definition_mpas_dycore.xml
Comment thread src/dynamics/mpas/namelist_definition_mpas_dycore.xml
Comment thread src/dynamics/mpas/namelist_definition_mpas_dycore.xml
Comment thread src/dynamics/mpas/namelist_definition_mpas_dycore.xml
Comment thread src/dynamics/mpas/namelist_definition_mpas_dycore.xml
$ python3 generate_namelist_definition.py -r <path-to>/Registry.xml -n <path-to>/namelist_definition_mpas_dycore.xml -s <path-to>/entry_id_pg.xsd
Generated <path-to>/namelist_definition_mpas_dycore.xml
Successfully validated <path-to>/namelist_definition_mpas_dycore.xml against <path-to>/entry_id_pg.xsd
@kuanchihwang kuanchihwang temporarily deployed to CI-tests-on-CIRRUS May 19, 2026 01:42 — with GitHub Actions Inactive
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.

2 participants