diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml
index 70fc07ab6f..f55d17a59c 100644
--- a/bld/namelist_files/namelist_defaults_cam.xml
+++ b/bld/namelist_files/namelist_defaults_cam.xml
@@ -44,12 +44,16 @@
atm/cam/inic/cam_vcoords_L32_c180105.nc
-atm/cam/inic/mpas/mpasa480_L32_notopo_coords_c201125.nc
-atm/cam/inic/mpas/mpasa120_L32_notopo_coords_c201216.nc
-atm/cam/inic/mpas/mpasa120_L32_topo_coords_c201022.nc
-atm/cam/inic/mpas/mpasa120_L32_topo_coords_c201022.nc
-atm/cam/inic/mpas/mpasa60_L32_notopo_coords_c230707.nc
-atm/cam/inic/mpas/mpasa30_L32_notopo_coords_c230707.nc
+atm/cam/inic/mpas/mpasa480_L32_notopo_coords_c240507.nc
+atm/cam/inic/mpas/mpasa120_L32_notopo_coords_c240507.nc
+atm/cam/inic/mpas/mpasa60_L32_notopo_coords_c240507.nc
+atm/cam/inic/mpas/mpasa30_L32_notopo_coords_c240507.nc
+atm/cam/inic/mpas/mpasa480_L58_notopo_coords_c240814.nc
+atm/cam/inic/mpas/mpasa120_L58_notopo_coords_c240814.nc
+atm/cam/inic/mpas/mpasa60_L58_notopo_coords_c240814.nc
+atm/cam/inic/mpas/mpasa480_L93_notopo_coords_c240814.nc
+atm/cam/inic/mpas/mpasa120_L93_notopo_coords_c240814.nc
+atm/cam/inic/mpas/mpasa60_L93_notopo_coords_c240814.nc
atm/cam/inic/fv/cami_0000-01-01_0.23x0.31_L26_c100513.nc
@@ -280,10 +284,14 @@
atm/waccm/ic/FW2000_CONUS_30x8_L70_01-01-0001_c200602.nc
-atm/waccm/ic/mpasa120km.waccm_fulltopo_c220818.nc
+atm/waccm/ic/mpasa120_L70.waccm_topography_SC_c240904.nc
-atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L32_CFSR_c210426.nc
-atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L32_CFSR_c211013.nc
+atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L32_CFSR_c240508.nc
+atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L32_CFSR_c240508.nc
+atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L58_CFSR_c240814.nc
+atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L58_CFSR_c240814.nc
+atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L93_CFSR_c240814.nc
+atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L93_CFSR_c240814.nc
atm/cam/topo/topo-from-cami_0000-01-01_256x512_L26_c030918.nc
@@ -335,8 +343,8 @@
atm/cam/topo/se/ne30x4_ARCTIC_nc3000_Co060_Fi001_MulG_PF_RR_Nsw042_c200428.nc
atm/cam/topo/se/ne30x8_ARCTICGRIS_nc3000_Co060_Fi001_MulG_PF_RR_Nsw042_c200428.nc
-atm/cam/topo/mpas/mpas_120_nc3000_Co060_Fi001_MulG_PF_Nsw042_c200921.nc
-atm/cam/topo/mpas_480_nc3000_Co240_Fi001_MulG_PF_Nsw170.nc
+atm/cam/topo/mpas/mpasa480_gmted2010_modis_bedmachine_nc3000_Laplace0400_noleak_20240507.nc
+atm/cam/topo/mpas/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_noleak_20240507.nc
0.0D0
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 933de28d36..1f35e8621b 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,5 +1,133 @@
===============================================================
+Tag name: cam6_4_033
+Originator(s): gdicker1 (gdicker@ucar.edu)
+Date: Tue 10 Sep 2024
+One-line Summary: Add updated meshes and topo for v8 MPAS-A dycore
+Github PR URL: https://github.com/ESCOMP/CAM/pull/1029
+
+Purpose of changes (include the issue number and title text for each relevant GitHub issue):
+
+Add files created by v8 MPAS init_atmosphere model for frontogenesis fields
+#995 - Runs with MPAS-A dycore and CAM7 physics fail - missing variables in inic files: https://github.com/ESCOMP/CAM/issues/995
+#1094 - Wrap MPAS-A longitudes to [0,2pi) range: https://github.com/ESCOMP/CAM/issues/1094
+
+Describe any changes made to build system: N/A
+
+Describe any changes made to the namelist: N/A
+
+List any changes to the defaults for the boundary datasets: N/A
+
+Describe any substantial timing or memory changes: N/A
+
+Code reviewed by: adamrher, jtruesdal, cacraigucar, mgduda
+
+List all files eliminated:
+
+- mpasa120_L32_topo_coords_c201022.nc
+
+Eliminated, replaced by newer versions:
+- mpasa480_L32_notopo_coords_c201125.nc
+- mpasa120_L32_notopo_coords_c201216.nc
+- mpasa60_L32_notopo_coords_c230707.nc
+- mpasa30_L32_notopo_coords_c230707.nc
+- mpasa120km.waccm_fulltopo_c220818.nc
+- cami_01_01_2000_00Z_mpasa120_L32_CFSR_c210426.nc
+- cami_01_01_2000_00Z_mpasa480_L32_CFSR_c211013.nc
+- mpas_120_nc3000_Co060_Fi001_MulG_PF_Nsw042_c200921.nc
+- mpas_480_nc3000_Co240_Fi001_MulG_PF_Nsw170.nc
+
+List all files added and what they do:
+
+New input 32, 58, and 93L without real-data (analytic-ICs only):
+- mpasa480_L32_notopo_coords_c240507.nc
+- mpasa120_L32_notopo_coords_c240507.nc
+- mpasa60_L32_notopo_coords_c240507.nc
+- mpasa30_L32_notopo_coords_c240507.nc
+- mpasa480_L58_notopo_coords_c240814.nc
+- mpasa120_L58_notopo_coords_c240814.nc
+- mpasa60_L58_notopo_coords_c240814.nc
+- mpasa480_L93_notopo_coords_c240814.nc
+- mpasa120_L93_notopo_coords_c240814.nc
+- mpasa60_L93_notopo_coords_c240814.nc
+
+New input L70 file for waccm cases:
+- mpasa120_L70.waccm_topography_SC_c240904.nc
+
+New input data with topology and real-data ICs:
+- cami_01-01-2000_00Z_mpasa480_L32_CFSR_c240508.nc
+- cami_01-01-2000_00Z_mpasa120_L32_CFSR_c240508.nc
+- cami_01-01-2000_00Z_mpasa480_L58_CFSR_c240814.nc
+- cami_01-01-2000_00Z_mpasa120_L58_CFSR_c240814.nc
+- cami_01-01-2000_00Z_mpasa480_L93_CFSR_c240814.nc
+- cami_01-01-2000_00Z_mpasa120_L93_CFSR_c240814.nc
+
+New bnd_topo files:
+- mpasa480_gmted2010_modis_bedmachine_nc3000_Laplace0400_noleak_20240507.nc
+- mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_noleak_20240507.nc
+
+List all existing files that have been modified, and describe the changes:
+M bld/namelist_files/namelist_defaults_cam.xml
+ - Add new ncdata and bnd_topo files above so they can be used
+M src/dynamics/mpas/dyn_grid.F90
+ - Modifies setup_time_invariant to ensure lonCell values are in [0,2pi) range
+
+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:
+
+ ERP_Ln9.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq9s (Overall: FAIL)
+ - pre-existing failure due to HEMCO not having reproducible results issues #1018 and #856
+
+ SMS_D_Ln9_P1280x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s (Overall: PEND)
+ - pre-existing failure -- need fix in CLM external
+
+ ERS_Ln9_P288x1.mpasa120_mpasa120.F2000climo.derecho_intel.cam-outfrq9s_mpasa120 (Overall: DIFF)
+ ERS_Ln9_P36x1.mpasa480_mpasa480.F2000climo.derecho_intel.cam-outfrq9s_mpasa480 (Overall: DIFF)
+ - expected fails of BASELINE and NLCOMP steps, new mpas input data
+
+derecho/nvhpc/aux_cam: ALL PASS
+
+izumi/nag/aux_cam:
+
+ FAIL DAE.f45_f45_mg37.FHS94.izumi_nag.cam-dae
+ - pre-existing failure - issue #670
+
+ ERC_D_Ln9.mpasa480z32_mpasa480.FHS94.izumi_nag.cam-outfrq3s_usecase (Overall: DIFF)
+ - expected fails of BASELINE and NLCOMP steps, new mpas input data
+
+izumi/gnu/aux_cam: ALL PASS
+
+CAM tag used for the baseline comparison tests if different than previous
+tag:
+
+Summarize any changes to answers, i.e.,
+- what code configurations:
+- what platforms/compilers:
+- nature of change (roundoff; larger than roundoff but same climate; new
+ climate):
+
+If bitwise differences were observed, how did you show they were no worse
+than roundoff?
+
+If this tag changes climate describe the run(s) done to evaluate the new
+climate in enough detail that it(they) could be reproduced, i.e.,
+- source tag (all code used must be in the repository):
+- platform/compilers:
+- configure commandline:
+- build-namelist command (or complete namelist):
+- MSS location of output:
+
+MSS location of control simulations used to validate new climate:
+
+URL for AMWG diagnostics output used to validate new climate:
+
+===============================================================
+===============================================================
+
Tag name: cam6_4_032
Originator(s): eaton
Date:
diff --git a/src/dynamics/mpas/dyn_grid.F90 b/src/dynamics/mpas/dyn_grid.F90
index d0b53c5fa0..7efcc866dd 100644
--- a/src/dynamics/mpas/dyn_grid.F90
+++ b/src/dynamics/mpas/dyn_grid.F90
@@ -453,6 +453,8 @@ subroutine setup_time_invariant(fh_ini)
type(mpas_pool_type), pointer :: meshPool
real(r8), pointer :: rdzw(:)
real(r8), allocatable :: dzw(:)
+ integer, pointer :: nCells
+ real(r8), dimension(:), pointer :: lonCell
integer :: k, kk
integer :: ierr
@@ -473,6 +475,7 @@ subroutine setup_time_invariant(fh_ini)
call mpas_pool_get_dimension(meshPool, 'nEdgesSolve', nEdgesSolve)
call mpas_pool_get_dimension(meshPool, 'nVerticesSolve', nVerticesSolve)
call mpas_pool_get_dimension(meshPool, 'nVertLevels', nVertLevelsSolve) ! MPAS always solves over the full column
+ call mpas_pool_get_dimension(meshPool, 'nCells', nCells)
! check that number of vertical layers matches MPAS grid data
if (plev /= nVertLevelsSolve) then
@@ -482,6 +485,17 @@ subroutine setup_time_invariant(fh_ini)
') does not match plev ('//int2str(nVertLevelsSolve)//').')
end if
+ ! Ensure longitudes are within the [0,2*pi) range, and only remap values that
+ ! are outside the range. Some non-simple physics in CAM require this
+ ! longitude range, the MPAS-A dycore does not require any specific range for
+ ! lonCell
+ call mpas_pool_get_array(meshPool, 'lonCell', lonCell)
+ do k=1,nCells
+ if (lonCell(k) < 0._r8 .or. lonCell(k) >= (2._r8 * pi)) then
+ lonCell(k) = lonCell(k) - (2._r8 * pi) * floor(lonCell(k) / (2._r8 * pi))
+ end if
+ end do
+
! Initialize fields needed for reconstruction of cell-centered winds from edge-normal winds
! Note: This same pair of calls happens a second time later in the initialization of
! the MPAS-A dycore (in atm_mpas_init_block), but the redundant calls do no harm