Skip to content

Commit b7266d2

Browse files
authored
Merge pull request #1545 from kuanchihwang/staging/mpas-dycore-8.4.0
cam6_4_174: Update MPAS dynamical core to version 8.4.0
2 parents 14ad2a0 + 2c2955c commit b7266d2

14 files changed

Lines changed: 475 additions & 152 deletions

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
url = https://github.com/MPAS-Dev/MPAS-Model.git
8989
fxrequired = AlwaysRequired
9090
fxsparse = ../.mpas_sparse_checkout
91-
fxtag = v8.2.1
91+
fxtag = v8.4.0
9292
fxDONOTUSEurl = https://github.com/MPAS-Dev/MPAS-Model.git
9393

9494
[submodule "cosp2"]

bld/build-namelist

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4398,7 +4398,6 @@ if ($dyn =~ /mpas/) {
43984398
add_default($nl, 'mpas_coef_3rd_order');
43994399
add_default($nl, 'mpas_smagorinsky_coef');
44004400
add_default($nl, 'mpas_mix_full');
4401-
add_default($nl, 'mpas_epssm');
44024401
add_default($nl, 'mpas_smdiv');
44034402
add_default($nl, 'mpas_apvm_upwinding');
44044403
add_default($nl, 'mpas_h_ScaleWithMesh');
@@ -4409,12 +4408,18 @@ if ($dyn =~ /mpas/) {
44094408
add_default($nl, 'mpas_rayleigh_damp_u');
44104409
add_default($nl, 'mpas_rayleigh_damp_u_timescale_days');
44114410
add_default($nl, 'mpas_number_rayleigh_damp_u_levels');
4411+
add_default($nl, 'mpas_epssm_minimum');
4412+
add_default($nl, 'mpas_epssm_maximum');
4413+
add_default($nl, 'mpas_epssm_transition_bottom_z');
4414+
add_default($nl, 'mpas_epssm_transition_top_z');
44124415
add_default($nl, 'mpas_apply_lbcs');
44134416
add_default($nl, 'mpas_jedi_da');
44144417
add_default($nl, 'mpas_do_restart');
44154418
add_default($nl, 'mpas_print_global_minmax_vel');
44164419
add_default($nl, 'mpas_print_detailed_minmax_vel');
44174420
add_default($nl, 'mpas_print_global_minmax_sca');
4421+
add_default($nl, 'mpas_halo_exch_method');
4422+
add_default($nl, 'mpas_gpu_aware_mpi');
44184423

44194424
# mpas_block_decomp_file_prefix should only be set when more than one task is used.
44204425
# Otherwise the file is not used and should not be added to the input dataset file.

bld/namelist_files/namelist_defaults_cam.xml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3457,8 +3457,6 @@
34573457
<mpas_coef_3rd_order > 1.0D0 </mpas_coef_3rd_order>
34583458
<mpas_smagorinsky_coef > 0.125D0 </mpas_smagorinsky_coef>
34593459
<mpas_mix_full > .true. </mpas_mix_full>
3460-
<mpas_epssm > 0.1D0 </mpas_epssm>
3461-
<mpas_epssm hgrid="mpasa120" waccm_phys="1"> 0.5D0 </mpas_epssm>
34623460
<mpas_smdiv > 0.1D0 </mpas_smdiv>
34633461
<mpas_apvm_upwinding > 0.5D0 </mpas_apvm_upwinding>
34643462
<mpas_apvm_upwinding hgrid="mpasa120" waccm_phys="1"> 0.0D0 </mpas_apvm_upwinding>
@@ -3472,6 +3470,11 @@
34723470
<mpas_rayleigh_damp_u > .true. </mpas_rayleigh_damp_u>
34733471
<mpas_rayleigh_damp_u_timescale_days> 5.0 </mpas_rayleigh_damp_u_timescale_days>
34743472
<mpas_number_rayleigh_damp_u_levels> 5 </mpas_number_rayleigh_damp_u_levels>
3473+
<mpas_epssm_minimum> 0.1D0 </mpas_epssm_minimum>
3474+
<mpas_epssm_maximum> 0.1D0 </mpas_epssm_maximum>
3475+
<mpas_epssm_maximum hgrid="mpasa120" waccm_phys="1"> 0.5D0 </mpas_epssm_maximum>
3476+
<mpas_epssm_transition_bottom_z> 30000.0D0 </mpas_epssm_transition_bottom_z>
3477+
<mpas_epssm_transition_top_z> 50000.0D0 </mpas_epssm_transition_top_z>
34753478
<mpas_apply_lbcs> .false. </mpas_apply_lbcs>
34763479
<mpas_jedi_da> .false. </mpas_jedi_da>
34773480
<mpas_block_decomp_file_prefix hgrid="mpasa480">atm/cam/inic/mpas/mpasa480.graph.info.part.</mpas_block_decomp_file_prefix>
@@ -3487,6 +3490,9 @@
34873490
<mpas_print_detailed_minmax_vel> .false. </mpas_print_detailed_minmax_vel>
34883491
<mpas_print_global_minmax_sca > .false. </mpas_print_global_minmax_sca>
34893492

3493+
<mpas_halo_exch_method> mpas_halo </mpas_halo_exch_method>
3494+
<mpas_gpu_aware_mpi> .false. </mpas_gpu_aware_mpi>
3495+
34903496
<!-- ================================================================== -->
34913497
<!-- Chemistry Rates Diagnostics -->
34923498
<!-- ================================================================== -->

bld/namelist_files/namelist_definition.xml

Lines changed: 40 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8810,8 +8810,8 @@ Default: 120000.0
88108810

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

@@ -8902,13 +8902,6 @@ MPAS dycore.
89028902
Default: TRUE
89038903
</entry>
89048904

8905-
<entry id="mpas_epssm" type="real" category="mpas"
8906-
group="nhyd_model" valid_values="">
8907-
Off-centering parameter for the vertically implicit acoustic integration in
8908-
MPAS dycore
8909-
Default: 0.1
8910-
</entry>
8911-
89128905
<entry id="mpas_smdiv" type="real" category="mpas"
89138906
group="nhyd_model" valid_values="">
89148907
3-d divergence damping coefficient in MPAS dycore.
@@ -8984,6 +8977,32 @@ damping linearly ramps to zero by layer number from the top
89848977
Default: 3
89858978
</entry>
89868979

8980+
<entry id="mpas_epssm_minimum" type="real" category="mpas"
8981+
group="damping" valid_values="real values between 0 and 1">
8982+
Value of epssm, the off-centering parameter for the vertically implicit acoustic integration,
8983+
below transition zone.
8984+
Default: 0.1
8985+
</entry>
8986+
8987+
<entry id="mpas_epssm_maximum" type="real" category="mpas"
8988+
group="damping" valid_values="real values between 0 and 1">
8989+
Value of epssm, the off-centering parameter for the vertically implicit acoustic integration,
8990+
above transition zone.
8991+
Default: 0.5
8992+
</entry>
8993+
8994+
<entry id="mpas_epssm_transition_bottom_z" type="real" category="mpas"
8995+
group="damping" valid_values="positive real values">
8996+
Height (in meters) above MSL for the bottom of transition zone for epssm.
8997+
Default: 30000.0
8998+
</entry>
8999+
9000+
<entry id="mpas_epssm_transition_top_z" type="real" category="mpas"
9001+
group="damping" valid_values="positive real values">
9002+
Height (in meters) above MSL for the top of transition zone for epssm.
9003+
Default: 50000.0
9004+
</entry>
9005+
89879006
<entry id="mpas_apply_lbcs" type="logical" category="mpas"
89889007
group="limited_area" valid_values="">
89899008
Whether to apply lateral boundary conditions
@@ -9034,6 +9053,18 @@ dycore.
90349053
Default: FALSE
90359054
</entry>
90369055

9056+
<entry id="mpas_halo_exch_method" type="char*512" category="mpas"
9057+
group="development" valid_values="mpas_dmpar,mpas_halo">
9058+
Method to use for exchanging halos in MPAS dycore.
9059+
Default: mpas_halo
9060+
</entry>
9061+
9062+
<entry id="mpas_gpu_aware_mpi" type="logical" category="mpas"
9063+
group="development" valid_values=".false.,.true.">
9064+
Whether to use GPU-aware MPI for halo exchanges in MPAS dycore. GPU-aware MPI
9065+
is only implemented for mpas_halo_exch_method = mpas_halo.
9066+
Default: FALSE
9067+
</entry>
90379068

90389069
<!-- Dycore testing -->
90399070

doc/ChangeLog

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,126 @@
1+
Tag name: cam6_4_174
2+
Originator(s): kuanchihwang
3+
Date: 21 May 2026
4+
One-line Summary: Update MPAS dynamical core to version 8.4.0
5+
Github PR URL: https://github.com/ESCOMP/CAM/pull/1545
6+
7+
Purpose of changes (include the issue number and title text for each relevant GitHub issue):
8+
9+
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.
10+
11+
Closes #1479
12+
13+
Describe any changes made to build system:
14+
15+
M src/dynamics/mpas/Makefile
16+
* Update Makefile to fix build errors
17+
* Remove unnecessary Makefile build target
18+
* Add patches to fix crash in MPAS 8.4.0
19+
20+
Describe any changes made to the namelist:
21+
22+
M bld/build-namelist
23+
M bld/namelist_files/namelist_defaults_cam.xml
24+
M bld/namelist_files/namelist_definition.xml
25+
* Update namelist definitions, defaults, and input to accommodate MPAS 8.4.0
26+
27+
List any changes to the defaults for the boundary datasets:
28+
29+
None
30+
31+
Describe any substantial timing or memory changes:
32+
33+
None
34+
35+
Code reviewed by: nusbaume
36+
37+
List all files eliminated:
38+
39+
None
40+
41+
List all files added and what they do:
42+
43+
A src/dynamics/mpas/driver/0001-Fix-Fortran-standard-violation.patch
44+
A src/dynamics/mpas/driver/0002-Add-missing-argument-intent.patch
45+
A src/dynamics/mpas/driver/0003-Avoid-implicit-save-attribute.patch
46+
* Add patches to fix crash in MPAS 8.4.0
47+
48+
List all existing files that have been modified, and describe the changes:
49+
50+
M .gitmodules
51+
* Update MPAS dynamical core to version 8.4.0
52+
M src/dynamics/mpas/dp_coupling.F90
53+
* Add support for new deformation coefficients introduced in MPAS 8.4.0
54+
M src/dynamics/mpas/driver/cam_mpas_subdriver.F90
55+
* Remove deprecated variables that no longer exist
56+
* Define new constituent indexes required by MPAS 8.4.0
57+
M src/dynamics/mpas/driver/README
58+
* Add patches to fix crash in MPAS 8.4.0
59+
M src/dynamics/mpas/dycore
60+
* Update MPAS dynamical core to version 8.4.0
61+
M src/dynamics/mpas/dyn_comp.F90
62+
* Update namelist definitions, defaults, and input to accommodate MPAS 8.4.0
63+
* Add support for new deformation coefficients introduced in MPAS 8.4.0
64+
65+
If there were any failures reported from running test_driver.sh on any test
66+
platform, and checkin with these failures has been OK'd by the gatekeeper,
67+
then copy the lines from the td.*.status files for the failed tests to the
68+
appropriate machine below. All failed tests must be justified.
69+
70+
derecho/intel/aux_cam:
71+
ERC_D_Ln9.mpasa120_mpasa120.F2000climo.derecho_intel.cam-outfrq9s_mpasa120 (Overall: DIFF) details:
72+
FAIL ERC_D_Ln9.mpasa120_mpasa120.F2000climo.derecho_intel.cam-outfrq9s_mpasa120 NLCOMP
73+
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
74+
ERC_D_Ln9.mpasa120_mpasa120.FHISTC_LTso.derecho_intel.cam-outfrq9s_mpasa120 (Overall: DIFF) details:
75+
FAIL ERC_D_Ln9.mpasa120_mpasa120.FHISTC_LTso.derecho_intel.cam-outfrq9s_mpasa120 NLCOMP
76+
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
77+
ERC_D_Ln9.mpasa120_mpasa120.QPC7.derecho_intel.cam-outfrq9s_mpasa120 (Overall: DIFF) details:
78+
FAIL ERC_D_Ln9.mpasa120_mpasa120.QPC7.derecho_intel.cam-outfrq9s_mpasa120 NLCOMP
79+
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
80+
81+
Expected namelist and answer changes due to MPAS version update.
82+
83+
Notes about SMS_D_Ln9_P1536x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s:
84+
This test is flaky. It may sometimes fail with a "floating invalid" error in CTSM.
85+
86+
derecho/nvhpc/aux_cam:
87+
PASS.
88+
89+
izumi/nag/aux_cam:
90+
ERC_D_Ln9.mpasa480_mpasa480_mt232.FHS94.izumi_nag.cam-outfrq9s (Overall: DIFF) details:
91+
FAIL ERC_D_Ln9.mpasa480_mpasa480_mt232.FHS94.izumi_nag.cam-outfrq9s NLCOMP
92+
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
93+
ERC_D_Ln9.mpasa480_mpasa480_mt232.QPC7.izumi_nag.cam-outfrq9s_mpasa480 (Overall: DIFF) details:
94+
FAIL ERC_D_Ln9.mpasa480_mpasa480_mt232.QPC7.izumi_nag.cam-outfrq9s_mpasa480 NLCOMP
95+
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
96+
97+
Expected namelist and answer changes due to MPAS version update.
98+
99+
ERC_D_Ln9.f10_f10_mt232.FHIST_C5.izumi_nag.cam-outfrq3s_subcol (Overall: FAIL) details:
100+
FAIL ERC_D_Ln9.f10_f10_mt232.FHIST_C5.izumi_nag.cam-outfrq3s_subcol COMPARE_base_rest
101+
102+
Pre-existing test failure. See https://github.com/ESCOMP/CAM/issues/1514.
103+
104+
izumi/gnu/aux_cam:
105+
ERC_D_Ln9.mpasa480_mpasa480_mt232.FHISTC_LTso.izumi_gnu.cam-outfrq9s_mpasa480 (Overall: DIFF) details:
106+
FAIL ERC_D_Ln9.mpasa480_mpasa480_mt232.FHISTC_LTso.izumi_gnu.cam-outfrq9s_mpasa480 NLCOMP
107+
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
108+
ERS_Ln9_P24x1.mpasa480_mpasa480.F2000climo.izumi_gnu.cam-outfrq9s_mpasa480 (Overall: DIFF) details:
109+
FAIL ERS_Ln9_P24x1.mpasa480_mpasa480.F2000climo.izumi_gnu.cam-outfrq9s_mpasa480 NLCOMP
110+
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
111+
112+
Expected namelist and answer changes due to MPAS version update.
113+
114+
CAM tag used for the baseline comparison tests if different than previous
115+
tag: cam6_4_173
116+
117+
Summarize any changes to answers:
118+
119+
In summary, this PR is answer-changing for tests that involve MPAS dynamical core.
120+
For tests that do not involve MPAS dynamical core, they are bit-for-bit.
121+
122+
===============================================================
123+
1124
Tag name: cam6_4_173
2125
Originator(s): pel, peverwhee, hplin
3126
Date: 15 May 2026

0 commit comments

Comments
 (0)