Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cam6_4_033: Add updated ncdata and bnd_topo files for MPASv8 #1029

Merged
merged 28 commits into from
Sep 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
cb28f4d
Add updated ICs and topo files for MPASv8
gdicker1 May 8, 2024
ef45d6b
Update ChangeLog after creating PR
gdicker1 May 13, 2024
e988f4f
Wrap MPAS longitude values to [0,2pi) range
gdicker1 Jul 17, 2024
7edc1db
Add initial ChangeLog after making PR
gdicker1 Jul 18, 2024
f3dfa51
Remove unused nCells from cam_mpas_read_static
gdicker1 Jul 19, 2024
288f3ed
Add kind to number literal in lonCell_arr adjustment
gdicker1 Jul 24, 2024
fabe37a
Move lonCell wrap code to dyn_grid.F90 from cam_mpas_subdriver.F90
gdicker1 Jul 26, 2024
b608af1
Rename cam_dev to cam7 for files added in this branch
gdicker1 Jul 23, 2024
005e7f4
Replace .ge. with >= in lonCell loop condition
gdicker1 Jul 26, 2024
1325911
Update comment on lonCell wrap code
gdicker1 Jul 26, 2024
a396571
Add mpasa120_32L ncdata for analytic-ic with cam6 and cam7 physics
gdicker1 Aug 15, 2024
82fbdd0
Replace mpas L32 analytic IC files with v8 files
gdicker1 Aug 15, 2024
6a75648
Add mpasa 58L and 93L files for analytic ICs
gdicker1 Aug 15, 2024
c823836
Add real-data files {mpasa480,mpasa120} x {58L,93L}
gdicker1 Aug 15, 2024
c45fd68
Update ChangeLog after adding L58 and L93 files
gdicker1 Aug 15, 2024
03b3a18
Ensure v8 mpasa ncdata matches with correct bnd_topo
gdicker1 Aug 15, 2024
df17112
Actual changes for last commit...
gdicker1 Aug 15, 2024
939a92d
Remove mpasa120_L32_topo ncdata for analytic_ic
gdicker1 Aug 19, 2024
9afb3cd
Default L32,L58,L93 mpasa real-data cases to new files
gdicker1 Aug 19, 2024
24012df
Update ChangeLog after replacing bnd_topo and L32 ncdata
gdicker1 Aug 19, 2024
773a6f6
New mpasa120_L70 ncdata for waccm, remove now unused mpas120 bnd_topo
gdicker1 Sep 5, 2024
1fcdd78
Update ChangeLog after replacing waccm ncdata
gdicker1 Sep 5, 2024
87a4b80
Merge branch 'gdicker1/mpas_loncell_wrapto2pi' into add_v8mpasfiles (…
gdicker1 Sep 10, 2024
a0db53f
Merge tag 'cam6_4_030' into add_v8mpasfiles
gdicker1 Sep 11, 2024
8306f7f
Merge tag 'cam6_4_032' into add_v8mpasfiles
gdicker1 Sep 11, 2024
b36ac16
Use the correct name for the mpasa480 notopo file
gdicker1 Sep 12, 2024
123d0fc
Remove mpasa30 L58 and L93 ncdata files
gdicker1 Sep 13, 2024
3c63318
Update ChangeLog with Derecho and Izumi tests
gdicker1 Sep 13, 2024
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
30 changes: 19 additions & 11 deletions bld/namelist_files/namelist_defaults_cam.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,16 @@
<ncdata nlev="32" analytic_ic="1" >atm/cam/inic/cam_vcoords_L32_c180105.nc</ncdata>

<!-- Vertical/Horizontal coordinates only - MPAS initial files for analytic cases-->
<ncdata hgrid="mpasa480" nlev="32" analytic_ic="1" >atm/cam/inic/mpas/mpasa480_L32_notopo_coords_c201125.nc</ncdata>
<ncdata hgrid="mpasa120" nlev="32" analytic_ic="1" >atm/cam/inic/mpas/mpasa120_L32_notopo_coords_c201216.nc</ncdata>
<ncdata hgrid="mpasa120" nlev="32" analytic_ic="1" phys="cam6" >atm/cam/inic/mpas/mpasa120_L32_topo_coords_c201022.nc</ncdata>
<ncdata hgrid="mpasa120" nlev="32" analytic_ic="1" phys="cam7" >atm/cam/inic/mpas/mpasa120_L32_topo_coords_c201022.nc</ncdata>
<ncdata hgrid="mpasa60" nlev="32" analytic_ic="1" >atm/cam/inic/mpas/mpasa60_L32_notopo_coords_c230707.nc</ncdata>
<ncdata hgrid="mpasa30" nlev="32" analytic_ic="1" >atm/cam/inic/mpas/mpasa30_L32_notopo_coords_c230707.nc</ncdata>
<ncdata hgrid="mpasa480" nlev="32" analytic_ic="1" >atm/cam/inic/mpas/mpasa480_L32_notopo_coords_c240507.nc</ncdata>
<ncdata hgrid="mpasa120" nlev="32" analytic_ic="1" >atm/cam/inic/mpas/mpasa120_L32_notopo_coords_c240507.nc</ncdata>
<ncdata hgrid="mpasa60" nlev="32" analytic_ic="1" >atm/cam/inic/mpas/mpasa60_L32_notopo_coords_c240507.nc</ncdata>
<ncdata hgrid="mpasa30" nlev="32" analytic_ic="1" >atm/cam/inic/mpas/mpasa30_L32_notopo_coords_c240507.nc</ncdata>
<ncdata hgrid="mpasa480" nlev="58" analytic_ic="1" >atm/cam/inic/mpas/mpasa480_L58_notopo_coords_c240814.nc</ncdata>
<ncdata hgrid="mpasa120" nlev="58" analytic_ic="1" >atm/cam/inic/mpas/mpasa120_L58_notopo_coords_c240814.nc</ncdata>
<ncdata hgrid="mpasa60" nlev="58" analytic_ic="1" >atm/cam/inic/mpas/mpasa60_L58_notopo_coords_c240814.nc</ncdata>
<ncdata hgrid="mpasa480" nlev="93" analytic_ic="1" >atm/cam/inic/mpas/mpasa480_L93_notopo_coords_c240814.nc</ncdata>
<ncdata hgrid="mpasa120" nlev="93" analytic_ic="1" >atm/cam/inic/mpas/mpasa120_L93_notopo_coords_c240814.nc</ncdata>
<ncdata hgrid="mpasa60" nlev="93" analytic_ic="1" >atm/cam/inic/mpas/mpasa60_L93_notopo_coords_c240814.nc</ncdata>

adamrher marked this conversation as resolved.
Show resolved Hide resolved
<!-- Files with initial conditions -->
<ncdata dyn="fv" hgrid="0.23x0.31" nlev="26" ic_ymd="101" >atm/cam/inic/fv/cami_0000-01-01_0.23x0.31_L26_c100513.nc</ncdata>
Expand Down Expand Up @@ -280,10 +284,14 @@

<ncdata dyn="se" hgrid="ne0np4CONUS.ne30x8" nlev="70" ic_ymd="101">atm/waccm/ic/FW2000_CONUS_30x8_L70_01-01-0001_c200602.nc</ncdata>

<ncdata hgrid="mpasa120" nlev="70" waccm_phys="1">atm/waccm/ic/mpasa120km.waccm_fulltopo_c220818.nc</ncdata>
<ncdata hgrid="mpasa120" nlev="70" waccm_phys="1">atm/waccm/ic/mpasa120_L70.waccm_topography_SC_c240904.nc</ncdata>

<ncdata hgrid="mpasa120" nlev="32" >atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L32_CFSR_c210426.nc</ncdata>
<ncdata hgrid="mpasa480" nlev="32" >atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L32_CFSR_c211013.nc</ncdata>
<ncdata hgrid="mpasa480" nlev="32" >atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L32_CFSR_c240508.nc</ncdata>
<ncdata hgrid="mpasa120" nlev="32" >atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L32_CFSR_c240508.nc</ncdata>
<ncdata hgrid="mpasa480" nlev="58" >atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L58_CFSR_c240814.nc</ncdata>
<ncdata hgrid="mpasa120" nlev="58" >atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L58_CFSR_c240814.nc</ncdata>
<ncdata hgrid="mpasa480" nlev="93" >atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L93_CFSR_c240814.nc</ncdata>
<ncdata hgrid="mpasa120" nlev="93" >atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L93_CFSR_c240814.nc</ncdata>

<!-- Topography -->
<bnd_topo hgrid="256x512" >atm/cam/topo/topo-from-cami_0000-01-01_256x512_L26_c030918.nc</bnd_topo>
Expand Down Expand Up @@ -335,8 +343,8 @@
<bnd_topo hgrid="ne0np4.ARCTIC.ne30x4" >atm/cam/topo/se/ne30x4_ARCTIC_nc3000_Co060_Fi001_MulG_PF_RR_Nsw042_c200428.nc</bnd_topo>
<bnd_topo hgrid="ne0np4.ARCTICGRIS.ne30x8" >atm/cam/topo/se/ne30x8_ARCTICGRIS_nc3000_Co060_Fi001_MulG_PF_RR_Nsw042_c200428.nc</bnd_topo>

<bnd_topo hgrid="mpasa120" >atm/cam/topo/mpas/mpas_120_nc3000_Co060_Fi001_MulG_PF_Nsw042_c200921.nc</bnd_topo>
<bnd_topo hgrid="mpasa480" >atm/cam/topo/mpas_480_nc3000_Co240_Fi001_MulG_PF_Nsw170.nc</bnd_topo>
<bnd_topo hgrid="mpasa480" >atm/cam/topo/mpas/mpasa480_gmted2010_modis_bedmachine_nc3000_Laplace0400_noleak_20240507.nc</bnd_topo>
<bnd_topo hgrid="mpasa120" >atm/cam/topo/mpas/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_noleak_20240507.nc</bnd_topo>

<!-- Scale Dry Air Mass: 0=> no scaling / +nnn=>scale to nnn Pressure -->
<scale_dry_air_mass > 0.0D0 </scale_dry_air_mass>
Expand Down
128 changes: 128 additions & 0 deletions doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -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:
Expand Down
14 changes: 14 additions & 0 deletions src/dynamics/mpas/dyn_grid.F90
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down
Loading