Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
url = https://github.com/MPAS-Dev/MPAS-Model.git
fxrequired = AlwaysRequired
fxsparse = ../.mpas_sparse_checkout
fxtag = v8.2.1
fxtag = v8.4.0
fxDONOTUSEurl = https://github.com/MPAS-Dev/MPAS-Model.git

[submodule "cosp2"]
Expand Down
7 changes: 6 additions & 1 deletion bld/build-namelist
Original file line number Diff line number Diff line change
Expand Up @@ -4398,7 +4398,6 @@ if ($dyn =~ /mpas/) {
add_default($nl, 'mpas_coef_3rd_order');
add_default($nl, 'mpas_smagorinsky_coef');
add_default($nl, 'mpas_mix_full');
add_default($nl, 'mpas_epssm');
add_default($nl, 'mpas_smdiv');
add_default($nl, 'mpas_apvm_upwinding');
add_default($nl, 'mpas_h_ScaleWithMesh');
Expand All @@ -4409,12 +4408,18 @@ if ($dyn =~ /mpas/) {
add_default($nl, 'mpas_rayleigh_damp_u');
add_default($nl, 'mpas_rayleigh_damp_u_timescale_days');
add_default($nl, 'mpas_number_rayleigh_damp_u_levels');
add_default($nl, 'mpas_epssm_minimum');
add_default($nl, 'mpas_epssm_maximum');
add_default($nl, 'mpas_epssm_transition_bottom_z');
add_default($nl, 'mpas_epssm_transition_top_z');
add_default($nl, 'mpas_apply_lbcs');
add_default($nl, 'mpas_jedi_da');
add_default($nl, 'mpas_do_restart');
add_default($nl, 'mpas_print_global_minmax_vel');
add_default($nl, 'mpas_print_detailed_minmax_vel');
add_default($nl, 'mpas_print_global_minmax_sca');
add_default($nl, 'mpas_halo_exch_method');
add_default($nl, 'mpas_gpu_aware_mpi');

# mpas_block_decomp_file_prefix should only be set when more than one task is used.
# Otherwise the file is not used and should not be added to the input dataset file.
Expand Down
10 changes: 8 additions & 2 deletions bld/namelist_files/namelist_defaults_cam.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3457,8 +3457,6 @@
<mpas_coef_3rd_order > 1.0D0 </mpas_coef_3rd_order>
<mpas_smagorinsky_coef > 0.125D0 </mpas_smagorinsky_coef>
<mpas_mix_full > .true. </mpas_mix_full>
<mpas_epssm > 0.1D0 </mpas_epssm>
<mpas_epssm hgrid="mpasa120" waccm_phys="1"> 0.5D0 </mpas_epssm>
<mpas_smdiv > 0.1D0 </mpas_smdiv>
<mpas_apvm_upwinding > 0.5D0 </mpas_apvm_upwinding>
<mpas_apvm_upwinding hgrid="mpasa120" waccm_phys="1"> 0.0D0 </mpas_apvm_upwinding>
Expand All @@ -3472,6 +3470,11 @@
<mpas_rayleigh_damp_u > .true. </mpas_rayleigh_damp_u>
<mpas_rayleigh_damp_u_timescale_days> 5.0 </mpas_rayleigh_damp_u_timescale_days>
<mpas_number_rayleigh_damp_u_levels> 5 </mpas_number_rayleigh_damp_u_levels>
<mpas_epssm_minimum> 0.1D0 </mpas_epssm_minimum>
<mpas_epssm_maximum> 0.1D0 </mpas_epssm_maximum>
<mpas_epssm_maximum hgrid="mpasa120" waccm_phys="1"> 0.5D0 </mpas_epssm_maximum>
<mpas_epssm_transition_bottom_z> 30000.0D0 </mpas_epssm_transition_bottom_z>
<mpas_epssm_transition_top_z> 50000.0D0 </mpas_epssm_transition_top_z>
<mpas_apply_lbcs> .false. </mpas_apply_lbcs>
<mpas_jedi_da> .false. </mpas_jedi_da>
<mpas_block_decomp_file_prefix hgrid="mpasa480">atm/cam/inic/mpas/mpasa480.graph.info.part.</mpas_block_decomp_file_prefix>
Expand All @@ -3487,6 +3490,9 @@
<mpas_print_detailed_minmax_vel> .false. </mpas_print_detailed_minmax_vel>
<mpas_print_global_minmax_sca > .false. </mpas_print_global_minmax_sca>

<mpas_halo_exch_method> mpas_halo </mpas_halo_exch_method>
<mpas_gpu_aware_mpi> .false. </mpas_gpu_aware_mpi>

<!-- ================================================================== -->
<!-- Chemistry Rates Diagnostics -->
<!-- ================================================================== -->
Expand Down
49 changes: 40 additions & 9 deletions bld/namelist_files/namelist_definition.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8810,8 +8810,8 @@ Default: 120000.0

<entry id="mpas_visc4_2dsmag" type="real" category="mpas"
group="nhyd_model" valid_values="">
Scaling coefficient of delta_x^3 to obtain Del^4 diffusion coefficient in
MPAS dycore.
Coefficient multiplied by delta x^3 to obtain Del^4 physical hyperviscosity
in MPAS dycore.
Default: 0.05
</entry>

Expand Down Expand Up @@ -8902,13 +8902,6 @@ MPAS dycore.
Default: TRUE
</entry>

<entry id="mpas_epssm" type="real" category="mpas"
group="nhyd_model" valid_values="">
Off-centering parameter for the vertically implicit acoustic integration in
MPAS dycore
Default: 0.1
</entry>

<entry id="mpas_smdiv" type="real" category="mpas"
group="nhyd_model" valid_values="">
3-d divergence damping coefficient in MPAS dycore.
Expand Down Expand Up @@ -8984,6 +8977,32 @@ damping linearly ramps to zero by layer number from the top
Default: 3
</entry>

<entry id="mpas_epssm_minimum" type="real" category="mpas"
group="damping" valid_values="real values between 0 and 1">
Value of epssm, the off-centering parameter for the vertically implicit acoustic integration,
below transition zone.
Default: 0.1
</entry>

<entry id="mpas_epssm_maximum" type="real" category="mpas"
group="damping" valid_values="real values between 0 and 1">
Value of epssm, the off-centering parameter for the vertically implicit acoustic integration,
above transition zone.
Default: 0.5
</entry>

<entry id="mpas_epssm_transition_bottom_z" type="real" category="mpas"
group="damping" valid_values="positive real values">
Height (in meters) above MSL for the bottom of transition zone for epssm.
Default: 30000.0
</entry>

<entry id="mpas_epssm_transition_top_z" type="real" category="mpas"
group="damping" valid_values="positive real values">
Height (in meters) above MSL for the top of transition zone for epssm.
Default: 50000.0
</entry>
Comment on lines +8994 to +9004
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I might make it clear that the heights listed here are (I assume) in meters:

Suggested change
<entry id="mpas_epssm_transition_bottom_z" type="real" category="mpas"
group="damping" valid_values="positive real values">
Height above MSL for the bottom of transition zone for epssm.
Default: 30000.0
</entry>
<entry id="mpas_epssm_transition_top_z" type="real" category="mpas"
group="damping" valid_values="positive real values">
Height above MSL for the top of transition zone for epssm.
Default: 50000.0
</entry>
<entry id="mpas_epssm_transition_bottom_z" type="real" category="mpas"
group="damping" valid_values="positive real values">
Height (in meters) above MSL for the bottom of transition zone for epssm.
Default: 30000.0
</entry>
<entry id="mpas_epssm_transition_top_z" type="real" category="mpas"
group="damping" valid_values="positive real values">
Height (in meters) above MSL for the top of transition zone for epssm.
Default: 50000.0
</entry>

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I added units to the description of new namelist options in 5849325.


<entry id="mpas_apply_lbcs" type="logical" category="mpas"
group="limited_area" valid_values="">
Whether to apply lateral boundary conditions
Expand Down Expand Up @@ -9034,6 +9053,18 @@ dycore.
Default: FALSE
</entry>

<entry id="mpas_halo_exch_method" type="char*512" category="mpas"
group="development" valid_values="mpas_dmpar,mpas_halo">
Method to use for exchanging halos in MPAS dycore.
Default: mpas_halo
</entry>

<entry id="mpas_gpu_aware_mpi" type="logical" category="mpas"
group="development" valid_values=".false.,.true.">
Whether to use GPU-aware MPI for halo exchanges in MPAS dycore. GPU-aware MPI
is only implemented for mpas_halo_exch_method = mpas_halo.
Default: FALSE
</entry>

<!-- Dycore testing -->

Expand Down
123 changes: 123 additions & 0 deletions doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,126 @@
Tag name: cam6_4_174
Originator(s): kuanchihwang
Date: 21 May 2026
One-line Summary: Update MPAS dynamical core to version 8.4.0
Github PR URL: https://github.com/ESCOMP/CAM/pull/1545

Purpose of changes (include the issue number and title text for each relevant GitHub issue):

This PR updates MPAS dynamical core from version 8.2.1 to 8.4.0. See the in-between release notes of MPAS for details.

Closes #1479

Describe any changes made to build system:

M src/dynamics/mpas/Makefile
* Update Makefile to fix build errors
* Remove unnecessary Makefile build target
* Add patches to fix crash in MPAS 8.4.0

Describe any changes made to the namelist:

M bld/build-namelist
M bld/namelist_files/namelist_defaults_cam.xml
M bld/namelist_files/namelist_definition.xml
* Update namelist definitions, defaults, and input to accommodate MPAS 8.4.0

List any changes to the defaults for the boundary datasets:

None

Describe any substantial timing or memory changes:

None

Code reviewed by: nusbaume

List all files eliminated:

None

List all files added and what they do:

A src/dynamics/mpas/driver/0001-Fix-Fortran-standard-violation.patch
A src/dynamics/mpas/driver/0002-Add-missing-argument-intent.patch
A src/dynamics/mpas/driver/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
* Update MPAS dynamical core to version 8.4.0
M src/dynamics/mpas/dp_coupling.F90
* Add support for new deformation coefficients introduced in MPAS 8.4.0
M src/dynamics/mpas/driver/cam_mpas_subdriver.F90
* Remove deprecated variables that no longer exist
* Define new constituent indexes required by MPAS 8.4.0
M src/dynamics/mpas/driver/README
* Add patches to fix crash in MPAS 8.4.0
M src/dynamics/mpas/dycore
* Update MPAS dynamical core to version 8.4.0
M src/dynamics/mpas/dyn_comp.F90
* Update namelist definitions, defaults, and input to accommodate MPAS 8.4.0
* Add support for new deformation coefficients introduced in MPAS 8.4.0

If there were any failures reported from running test_driver.sh on any test
platform, and checkin with these failures has been OK'd by the gatekeeper,
then copy the lines from the td.*.status files for the failed tests to the
appropriate machine below. All failed tests must be justified.

derecho/intel/aux_cam:
ERC_D_Ln9.mpasa120_mpasa120.F2000climo.derecho_intel.cam-outfrq9s_mpasa120 (Overall: DIFF) details:
FAIL ERC_D_Ln9.mpasa120_mpasa120.F2000climo.derecho_intel.cam-outfrq9s_mpasa120 NLCOMP
FAIL ERC_D_Ln9.mpasa120_mpasa120.F2000climo.derecho_intel.cam-outfrq9s_mpasa120 BASELINE /glade/campaign/cesm/community/amwg/cam_baselines/cam6_4_173_intel: DIFF
ERC_D_Ln9.mpasa120_mpasa120.FHISTC_LTso.derecho_intel.cam-outfrq9s_mpasa120 (Overall: DIFF) details:
FAIL ERC_D_Ln9.mpasa120_mpasa120.FHISTC_LTso.derecho_intel.cam-outfrq9s_mpasa120 NLCOMP
FAIL ERC_D_Ln9.mpasa120_mpasa120.FHISTC_LTso.derecho_intel.cam-outfrq9s_mpasa120 BASELINE /glade/campaign/cesm/community/amwg/cam_baselines/cam6_4_173_intel: DIFF
ERC_D_Ln9.mpasa120_mpasa120.QPC7.derecho_intel.cam-outfrq9s_mpasa120 (Overall: DIFF) details:
FAIL ERC_D_Ln9.mpasa120_mpasa120.QPC7.derecho_intel.cam-outfrq9s_mpasa120 NLCOMP
FAIL ERC_D_Ln9.mpasa120_mpasa120.QPC7.derecho_intel.cam-outfrq9s_mpasa120 BASELINE /glade/campaign/cesm/community/amwg/cam_baselines/cam6_4_173_intel: DIFF

Expected namelist and answer changes due to MPAS version update.

Notes about SMS_D_Ln9_P1536x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s:
This test is flaky. It may sometimes fail with a "floating invalid" error in CTSM.

derecho/nvhpc/aux_cam:
PASS.

izumi/nag/aux_cam:
ERC_D_Ln9.mpasa480_mpasa480_mt232.FHS94.izumi_nag.cam-outfrq9s (Overall: DIFF) details:
FAIL ERC_D_Ln9.mpasa480_mpasa480_mt232.FHS94.izumi_nag.cam-outfrq9s NLCOMP
FAIL ERC_D_Ln9.mpasa480_mpasa480_mt232.FHS94.izumi_nag.cam-outfrq9s BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_4_173_nag: DIFF
ERC_D_Ln9.mpasa480_mpasa480_mt232.QPC7.izumi_nag.cam-outfrq9s_mpasa480 (Overall: DIFF) details:
FAIL ERC_D_Ln9.mpasa480_mpasa480_mt232.QPC7.izumi_nag.cam-outfrq9s_mpasa480 NLCOMP
FAIL ERC_D_Ln9.mpasa480_mpasa480_mt232.QPC7.izumi_nag.cam-outfrq9s_mpasa480 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_4_173_nag: DIFF

Expected namelist and answer changes due to MPAS version update.

ERC_D_Ln9.f10_f10_mt232.FHIST_C5.izumi_nag.cam-outfrq3s_subcol (Overall: FAIL) details:
FAIL ERC_D_Ln9.f10_f10_mt232.FHIST_C5.izumi_nag.cam-outfrq3s_subcol COMPARE_base_rest

Pre-existing test failure. See https://github.com/ESCOMP/CAM/issues/1514.

izumi/gnu/aux_cam:
ERC_D_Ln9.mpasa480_mpasa480_mt232.FHISTC_LTso.izumi_gnu.cam-outfrq9s_mpasa480 (Overall: DIFF) details:
FAIL ERC_D_Ln9.mpasa480_mpasa480_mt232.FHISTC_LTso.izumi_gnu.cam-outfrq9s_mpasa480 NLCOMP
FAIL ERC_D_Ln9.mpasa480_mpasa480_mt232.FHISTC_LTso.izumi_gnu.cam-outfrq9s_mpasa480 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_4_173_gnu: DIFF
ERS_Ln9_P24x1.mpasa480_mpasa480.F2000climo.izumi_gnu.cam-outfrq9s_mpasa480 (Overall: DIFF) details:
FAIL ERS_Ln9_P24x1.mpasa480_mpasa480.F2000climo.izumi_gnu.cam-outfrq9s_mpasa480 NLCOMP
FAIL ERS_Ln9_P24x1.mpasa480_mpasa480.F2000climo.izumi_gnu.cam-outfrq9s_mpasa480 BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_4_173_gnu: DIFF

Expected namelist and answer changes due to MPAS version update.

CAM tag used for the baseline comparison tests if different than previous
tag: cam6_4_173

Summarize any changes to answers:

In summary, this PR is answer-changing for tests that involve MPAS dynamical core.
For tests that do not involve MPAS dynamical core, they are bit-for-bit.

===============================================================

Tag name: cam6_4_173
Originator(s): pel, peverwhee, hplin
Date: 15 May 2026
Expand Down
Loading
Loading