From 5dee851c9ee05c37a4e50b0d7c4bccd244567d31 Mon Sep 17 00:00:00 2001 From: Don Dazlich Date: Sat, 27 Aug 2022 15:37:19 -0600 Subject: [PATCH 01/48] modify definition.xml to permit addition of mpas-ocean; modify Externals_CAM.cfg to use the Earthworks fork of the MPAS dycore --- Externals_CAM.cfg | 2 +- bld/config_files/definition.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index 58afe6dcad..207fb65c31 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -64,7 +64,7 @@ required = True [mpas] local_path = src/dynamics/mpas/dycore protocol = git -repo_url = https://github.com/MPAS-Dev/MPAS-Model.git +repo_url = https://github.com/dazlich/MPAS-Model.git sparse = ../.mpas_sparse_checkout hash = ba25bd07 required = True diff --git a/bld/config_files/definition.xml b/bld/config_files/definition.xml index 4322d22985..34a87e39b5 100644 --- a/bld/config_files/definition.xml +++ b/bld/config_files/definition.xml @@ -119,7 +119,7 @@ Chemistry source directory generated by the chemistry preprocessor; contains F90 Chemistry source directory; contains F90 files. - + Use data ocean model (docn or dom), stub ocean (socn), or aqua planet ocean (aquaplanet) in cam build. When built from the CESM scripts the value of ocn may be set to pop. This doesn't impact how CAM is built, only how From f722217a1ab586268b109300ac06d82952ba42a7 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Wed, 7 Dec 2022 14:31:40 -0700 Subject: [PATCH 02/48] Revert MPAS-A to MPAS-Dev/MPAS-Model in Externals_CAM.cfg --- Externals_CAM.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index 207fb65c31..58afe6dcad 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -64,7 +64,7 @@ required = True [mpas] local_path = src/dynamics/mpas/dycore protocol = git -repo_url = https://github.com/dazlich/MPAS-Model.git +repo_url = https://github.com/MPAS-Dev/MPAS-Model.git sparse = ../.mpas_sparse_checkout hash = ba25bd07 required = True From 43aad56b2033a9c805dd76f7d080df1c9875a4b7 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Fri, 23 Jun 2023 11:35:06 -0600 Subject: [PATCH 03/48] Add 60 and 30km ncdata files for analytic ICs w/o topography These files have been generated using MPAS-A init-atmosphere core for CAM-MPAS grids (case 13) based on standard 60 and 30km MPAS meshes. Also add default values for mpasa60 and mpasa30 hgrids. Needed default values for mpas_dt and mpas_len_disp since they are affected by hgrids. --- bld/namelist_files/namelist_defaults_cam.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index d69b278d90..0f03497c83 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -48,6 +48,8 @@ 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/fv/cami_0000-01-01_0.23x0.31_L26_c100513.nc @@ -3076,6 +3078,8 @@ 2 1800.0D0 900.0D0 + 450.0D0 + 225.0D0 .true. 2 @@ -3090,6 +3094,8 @@ 480000.0D0 120000.0D0 + 60000.0D0 + 30000.0D0 0.05D0 10.0D0 From d6c17b1dfd359d5fd0941b7c20ac54a8f57c5ff6 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Thu, 17 Aug 2023 19:44:23 -0600 Subject: [PATCH 04/48] namelist_defaults files for mpasa120, 60, and 30 grids These modifications should let QPC6 and F2000climo test cases to run by default for these grids. Added values for: - ncdata for 32 level cases starting 01-01-2000T00:00:00Z - bnd_topo - drydep_srf_file --- bld/namelist_files/namelist_defaults_cam.xml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 0f03497c83..9f840aba4d 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -264,8 +264,10 @@ atm/waccm/ic/FW2000_CONUS_30x8_L70_01-01-0001_c200602.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_mpasa120_L32_CFSR_c210426.nc +atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa60_L32_CFSR_c210518.nc +atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa30_L32_CFSR_230302.nc atm/cam/topo/topo-from-cami_0000-01-01_256x512_L26_c030918.nc @@ -321,8 +323,10 @@ 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_120_nc3000_Co060_Fi001_MulG_PF_Nsw042_c200921.nc +atm/cam/topo/mpas_60_nc3000_Co030_Fi001_MulG_PF_Nsw021.nc +atm/cam/topo/mpas_30_nc3000_Co015_Fi001_MulG_PF_Nsw011.nc 0.0D0 @@ -1875,8 +1879,10 @@ atm/cam/chem/trop_mam/atmsrf_C192_c200625.nc atm/cam/chem/trop_mam/atmsrf_C384_c200625.nc -atm/cam/chem/trop_mam/atmsrf_mpasa120_c090720.nc atm/cam/chem/trop_mam/atmsrf_mpasa480_c090720.nc +atm/cam/chem/trop_mam/atmsrf_mpasa120_c090720.nc +atm/cam/chem/trop_mam/atmsrf_mpasa60_c210511.nc +atm/cam/chem/trop_mam/atmsrf_mpasa30_c210601.nc atm/cam/chem/trop_mozart/dvel/regrid_vegetation.nc From 7df44dcb12514188b4c9683a10a3a9903f93d958 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Wed, 23 Aug 2023 13:43:08 -0600 Subject: [PATCH 05/48] Add ic_ymd to 01-01-2000 mpas data files --- bld/namelist_files/namelist_defaults_cam.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 9f840aba4d..7150acc89f 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -264,10 +264,10 @@ atm/waccm/ic/FW2000_CONUS_30x8_L70_01-01-0001_c200602.nc -atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L32_CFSR_c211013.nc -atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L32_CFSR_c210426.nc -atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa60_L32_CFSR_c210518.nc -atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa30_L32_CFSR_230302.nc +atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L32_CFSR_c211013.nc +atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L32_CFSR_c210426.nc +atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa60_L32_CFSR_c210518.nc +atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa30_L32_CFSR_230302.nc atm/cam/topo/topo-from-cami_0000-01-01_256x512_L26_c030918.nc From c8c7cfc39c6bbf77782a7addaf30fab7bcf9eb1b Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Tue, 29 Aug 2023 17:11:16 -0600 Subject: [PATCH 06/48] Use analytic_ic for aquaplanet mpasa grids This is a simplification specific to EarthWorks. All QPC6/aquaplanet compsets on mpasa hgrids also use analytic_ic_type='us_standard_atmosphere' --- bld/namelist_files/namelist_defaults_cam.xml | 2 ++ cime_config/config_component.xml | 1 + 2 files changed, 3 insertions(+) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 7150acc89f..0a680a9949 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -362,6 +362,8 @@ held_suarez_1994 moist_baroclinic_wave_dcmip2016 moist_baroclinic_wave_dcmip2016 + + us_standard_atmosphere diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml index 78645415a8..965eef0ba9 100644 --- a/cime_config/config_component.xml +++ b/cime_config/config_component.xml @@ -179,6 +179,7 @@ -aquaplanet -aquaplanet + -analytic_ic -offline_drv rad From 5987bbc2a038b47fd58d4adef964c966b2251d08 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Tue, 29 Aug 2023 16:43:03 -0600 Subject: [PATCH 07/48] Ensure mpasa120 aquaplanet doesn't use topo ncdata Adds redundant entry to list of ncdata since QPC6 cases using mpasa120 grids mistakenly use mpasa120_L32_topo_coords_c201022.nc --- bld/namelist_files/namelist_defaults_cam.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 0a680a9949..4114a56a1a 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -46,6 +46,7 @@ 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_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 From 9319a64dc206bf5490d286d0ba4f1d7392db802a Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Fri, 8 Sep 2023 16:31:09 -0600 Subject: [PATCH 08/48] Add 120km ncdata and bnd_topo file for 58 levels Files generated by Don Dazlich for use in EarthWorks compsets --- bld/namelist_files/namelist_defaults_cam.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 4114a56a1a..5622c77b11 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -269,6 +269,8 @@ atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L32_CFSR_c210426.nc atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa60_L32_CFSR_c210518.nc atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa30_L32_CFSR_230302.nc + +atm/cam/inic/mpas/x1.40962.pel.58levels_2000010100_init.nc atm/cam/topo/topo-from-cami_0000-01-01_256x512_L26_c030918.nc @@ -324,10 +326,13 @@ 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_480_nc3000_Co240_Fi001_MulG_PF_Nsw170.nc atm/cam/topo/mpas_120_nc3000_Co060_Fi001_MulG_PF_Nsw042_c200921.nc atm/cam/topo/mpas_60_nc3000_Co030_Fi001_MulG_PF_Nsw021.nc atm/cam/topo/mpas_30_nc3000_Co015_Fi001_MulG_PF_Nsw011.nc + +atm/cam/topo/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_20220728.nc 0.0D0 From 92276e4bb0edffb6a13be9ee3deb03a9d2f59f9a Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Tue, 19 Sep 2023 11:18:48 -0600 Subject: [PATCH 09/48] Update mpasa120km 58 levels filename and fix typo --- bld/namelist_files/namelist_defaults_cam.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 5622c77b11..c7928a9737 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -270,7 +270,7 @@ atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa60_L32_CFSR_c210518.nc atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa30_L32_CFSR_230302.nc -atm/cam/inic/mpas/x1.40962.pel.58levels_2000010100_init.nc +atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L58_c230901.nc atm/cam/topo/topo-from-cami_0000-01-01_256x512_L26_c030918.nc @@ -331,7 +331,7 @@ atm/cam/topo/mpas_120_nc3000_Co060_Fi001_MulG_PF_Nsw042_c200921.nc atm/cam/topo/mpas_60_nc3000_Co030_Fi001_MulG_PF_Nsw021.nc atm/cam/topo/mpas_30_nc3000_Co015_Fi001_MulG_PF_Nsw011.nc - + atm/cam/topo/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_20220728.nc From b7fa233efcac1eaad4015f36895439b59ff4fa26 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Tue, 19 Sep 2023 11:31:26 -0600 Subject: [PATCH 10/48] Add files for mpasa15 hgrid to namelist_defaults_cam.xml Includes ncdata for 58 levels along with corresponding bnd_topo and drydep_srf_file --- bld/namelist_files/namelist_defaults_cam.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index c7928a9737..306c4e0dc3 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -271,6 +271,7 @@ atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa30_L32_CFSR_230302.nc atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L58_c230901.nc +atm/cam/inic/mpas/x1.2621442_camtopo_full_init.nc atm/cam/topo/topo-from-cami_0000-01-01_256x512_L26_c030918.nc @@ -331,6 +332,7 @@ atm/cam/topo/mpas_120_nc3000_Co060_Fi001_MulG_PF_Nsw042_c200921.nc atm/cam/topo/mpas_60_nc3000_Co030_Fi001_MulG_PF_Nsw021.nc atm/cam/topo/mpas_30_nc3000_Co015_Fi001_MulG_PF_Nsw011.nc +atm/cam/topo/mpas_15_nc3500_c20230315.nc atm/cam/topo/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_20220728.nc @@ -1891,6 +1893,7 @@ atm/cam/chem/trop_mam/atmsrf_mpasa120_c090720.nc atm/cam/chem/trop_mam/atmsrf_mpasa60_c210511.nc atm/cam/chem/trop_mam/atmsrf_mpasa30_c210601.nc +atm/cam/chem/trop_mam/atmsrf_mpasa15_c20210804.nc atm/cam/chem/trop_mozart/dvel/regrid_vegetation.nc From 069ddc61b60392bd4bc4c1cb8f87bdfcb2c4a007 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Tue, 19 Sep 2023 11:38:07 -0600 Subject: [PATCH 11/48] Update mpasa15 ncdata filename to match convention --- bld/namelist_files/namelist_defaults_cam.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 306c4e0dc3..eec0c51efa 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -271,7 +271,7 @@ atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa30_L32_CFSR_230302.nc atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L58_c230901.nc -atm/cam/inic/mpas/x1.2621442_camtopo_full_init.nc +atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa15_L58_c230316.nc atm/cam/topo/topo-from-cami_0000-01-01_256x512_L26_c030918.nc From 8a824daf19a5f88d543f548357b85a45564842c3 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Tue, 19 Sep 2023 16:11:33 -0600 Subject: [PATCH 12/48] Add mpas_dt and mpas_len_disp for 15, 7.5, and 3.75km grids --- bld/namelist_files/namelist_defaults_cam.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index eec0c51efa..ff4e3a5da0 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -3097,6 +3097,9 @@ 900.0D0 450.0D0 225.0D0 + 112.5D0 + 56.25D0 + 28.125D0 .true. 2 @@ -3113,6 +3116,9 @@ 120000.0D0 60000.0D0 30000.0D0 + 15000.0D0 + 7500.0D0 + 3750.0D0 0.05D0 10.0D0 From bb30f59e1bb4baaac1fccd2266222838ee41200c Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Thu, 28 Sep 2023 15:42:31 -0600 Subject: [PATCH 13/48] Add mpasa 15km notopo ncdata --- bld/namelist_files/namelist_defaults_cam.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index ff4e3a5da0..9bfb1f70a8 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -51,6 +51,7 @@ 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/mpasa15_L32_notopo_coords_c230928.nc atm/cam/inic/fv/cami_0000-01-01_0.23x0.31_L26_c100513.nc From 3cec9d69479cfc17bc72098b3c876e7b0940ce5a Mon Sep 17 00:00:00 2001 From: Jesse Nusbaumer Date: Tue, 14 Nov 2023 08:59:48 -0700 Subject: [PATCH 14/48] Modify COSP2 checkout to remove un-used directories/files. --- Externals_CAM.cfg | 2 +- src/physics/cosp2/.cosp_sparse_checkout | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index 476a2e11da..5b388771a7 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -13,7 +13,7 @@ tag = carma4_00 required = True [cosp2] -local_path = src/physics/cosp2/src +local_path = src/physics/cosp2 protocol = git repo_url = https://github.com/CFMIP/COSPv2.0 sparse = ../.cosp_sparse_checkout diff --git a/src/physics/cosp2/.cosp_sparse_checkout b/src/physics/cosp2/.cosp_sparse_checkout index 85de9cf933..4f00cd9a73 100644 --- a/src/physics/cosp2/.cosp_sparse_checkout +++ b/src/physics/cosp2/.cosp_sparse_checkout @@ -1 +1 @@ -src +/src/ From f41ed2f41debbc6ef116c20bfec74e46dd302469 Mon Sep 17 00:00:00 2001 From: James Edwards Date: Tue, 14 Nov 2023 06:46:14 -0700 Subject: [PATCH 15/48] removes svn sparse checkout and uses git sparse checkout for all repos, combine clubb and silhs into clubb --- Externals_CAM.cfg | 21 ++++++++------------- bld/configure | 4 ++-- src/physics/.clubb_sparse_checkout | 2 ++ src/physics/cosp2/.cosp_sparse_checkout | 1 + 4 files changed, 13 insertions(+), 15 deletions(-) create mode 100644 src/physics/.clubb_sparse_checkout create mode 100644 src/physics/cosp2/.cosp_sparse_checkout diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index cc99360e56..476a2e11da 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -14,23 +14,18 @@ required = True [cosp2] local_path = src/physics/cosp2/src -protocol = svn -repo_url = https://github.com/CFMIP/COSPv2.0/tags/ -tag = v2.1.4cesm/src +protocol = git +repo_url = https://github.com/CFMIP/COSPv2.0 +sparse = ../.cosp_sparse_checkout +tag = v2.1.4cesm required = True [clubb] local_path = src/physics/clubb -protocol = svn -repo_url = https://github.com/larson-group/clubb_release/tags/ -tag = clubb_4ncar_20221129_59cb19f_20230330_branchtag/src/CLUBB_core -required = True - -[silhs] -local_path = src/physics/silhs -protocol = svn -repo_url = https://github.com/larson-group/clubb_release/tags/ -tag = clubb_4ncar_20221129_59cb19f_20230330_branchtag/src/SILHS +protocol = git +repo_url = https://github.com/larson-group/clubb_release +sparse = ../.clubb_sparse_checkout +tag = clubb_4ncar_20221129_59cb19f_20230330_branchtag required = True [pumas] diff --git a/bld/configure b/bld/configure index 262ac38e6d..3039e015ae 100755 --- a/bld/configure +++ b/bld/configure @@ -2204,11 +2204,11 @@ sub write_filepath } if ($clubb_sgs) { - print $fh "$camsrcdir/src/physics/clubb\n"; + print $fh "$camsrcdir/src/physics/clubb/src/CLUBB_core\n"; } if ($silhs) { - print $fh "$camsrcdir/src/physics/silhs\n"; + print $fh "$camsrcdir/src/physics/clubb/src/SILHS\n"; } if ($phys_pkg eq 'cam_dev') { diff --git a/src/physics/.clubb_sparse_checkout b/src/physics/.clubb_sparse_checkout new file mode 100644 index 0000000000..9cb681b77a --- /dev/null +++ b/src/physics/.clubb_sparse_checkout @@ -0,0 +1,2 @@ +src/CLUBB_core +src/SILHS \ No newline at end of file diff --git a/src/physics/cosp2/.cosp_sparse_checkout b/src/physics/cosp2/.cosp_sparse_checkout new file mode 100644 index 0000000000..e8310385c5 --- /dev/null +++ b/src/physics/cosp2/.cosp_sparse_checkout @@ -0,0 +1 @@ +src \ No newline at end of file From c725ba74ba3ff5f1146fb91c58aca5f2901433bc Mon Sep 17 00:00:00 2001 From: Jesse Nusbaumer Date: Tue, 14 Nov 2023 09:31:52 -0700 Subject: [PATCH 16/48] Fix paths, including a mistake introduced on my end. --- Externals_CAM.cfg | 2 +- bld/configure | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index 5b388771a7..476a2e11da 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -13,7 +13,7 @@ tag = carma4_00 required = True [cosp2] -local_path = src/physics/cosp2 +local_path = src/physics/cosp2/src protocol = git repo_url = https://github.com/CFMIP/COSPv2.0 sparse = ../.cosp_sparse_checkout diff --git a/bld/configure b/bld/configure index 3039e015ae..3221827b47 100755 --- a/bld/configure +++ b/bld/configure @@ -2304,13 +2304,13 @@ sub write_cosp_makefile CAM_BLD := $cam_bld COSP_PATH := $cam_dir/src/physics/cosp2 -ISCCP_PATH := $cam_dir/src/physics/cosp2/src/simulator/icarus -RS_PATH := $cam_dir/src/physics/cosp2/src/simulator/quickbeam -RT_PATH := $cam_dir/src/physics/cosp2/src/simulator/rttov -CS_PATH := $cam_dir/src/physics/cosp2/src/simulator/actsim -MISR_PATH := $cam_dir/src/physics/cosp2/src/simulator/MISR_simulator -MODIS_PATH := $cam_dir/src/physics/cosp2/src/simulator/MODIS_simulator -PARASOL_PATH := $cam_dir/src/physics/cosp2/src/simulator/parasol +ISCCP_PATH := $cam_dir/src/physics/cosp2/src/src/simulator/icarus +RS_PATH := $cam_dir/src/physics/cosp2/src/src/simulator/quickbeam +RT_PATH := $cam_dir/src/physics/cosp2/src/src/simulator/rttov +CS_PATH := $cam_dir/src/physics/cosp2/src/src/simulator/actsim +MISR_PATH := $cam_dir/src/physics/cosp2/src/src/simulator/MISR_simulator +MODIS_PATH := $cam_dir/src/physics/cosp2/src/src/simulator/MODIS_simulator +PARASOL_PATH := $cam_dir/src/physics/cosp2/src/src/simulator/parasol EOF From 1f51eb1774eec11abf701d9168c7126b905665fc Mon Sep 17 00:00:00 2001 From: James Edwards Date: Tue, 14 Nov 2023 06:51:52 -0700 Subject: [PATCH 17/48] add final carrage returns --- src/physics/.clubb_sparse_checkout | 2 +- src/physics/cosp2/.cosp_sparse_checkout | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/physics/.clubb_sparse_checkout b/src/physics/.clubb_sparse_checkout index 9cb681b77a..1299233a5e 100644 --- a/src/physics/.clubb_sparse_checkout +++ b/src/physics/.clubb_sparse_checkout @@ -1,2 +1,2 @@ src/CLUBB_core -src/SILHS \ No newline at end of file +src/SILHS diff --git a/src/physics/cosp2/.cosp_sparse_checkout b/src/physics/cosp2/.cosp_sparse_checkout index e8310385c5..85de9cf933 100644 --- a/src/physics/cosp2/.cosp_sparse_checkout +++ b/src/physics/cosp2/.cosp_sparse_checkout @@ -1 +1 @@ -src \ No newline at end of file +src From 9bc52a0a8575eaeec94d45e2ffa3fe255847136b Mon Sep 17 00:00:00 2001 From: Jesse Nusbaumer Date: Thu, 16 Nov 2023 11:26:43 -0700 Subject: [PATCH 18/48] Fix COSP Makefile paths. --- src/physics/cosp2/Makefile.in | 36 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/physics/cosp2/Makefile.in b/src/physics/cosp2/Makefile.in index 69a37713fa..881a1a5679 100644 --- a/src/physics/cosp2/Makefile.in +++ b/src/physics/cosp2/Makefile.in @@ -65,10 +65,10 @@ cosp_grLidar532_interface.o: cosp_kinds.o cosp_atlid_interface.o : cosp_kinds.o cosp_cloudsat_interface.o : cosp_kinds.o cosp_config.o quickbeam.o cosp_isccp_interface.o : cosp_kinds.o icarus.o -cosp_misr_interface.o : cosp_kinds.o +cosp_misr_interface.o : cosp_kinds.o cosp_modis_interface.o : cosp_kinds.o cosp_config.o modis_simulator.o cosp_rttov_interfaceSTUB.o : cosp_kinds.o cosp_config.o cosp_rttovSTUB.o -cosp_parasol_interface.o : cosp_kinds.o +cosp_parasol_interface.o : cosp_kinds.o cosp_rttovSTUB.o : cosp_kinds.o cosp_config.o cosp_constants.o MISR_simulator.o : cosp_kinds.o cosp_config.o cosp_stats.o modis_simulator.o : cosp_kinds.o cosp_config.o cosp_stats.o @@ -82,7 +82,7 @@ scops.o : cosp_kinds.o mo_rng.o cosp_errorHandling.o prec_scops.o : cosp_kinds.o cosp_config.o cosp_optics.o : cosp_kinds.o cosp_constants.o modis_simulator.o quickbeam_optics.o : cosp_kinds.o cosp_config.o cosp_constants.o quickbeam.o \ - cosp_errorHandling.o array_lib.o math_lib.o optics_lib.o + cosp_errorHandling.o array_lib.o math_lib.o optics_lib.o optics_lib.o : cosp_kinds.o cosp_errorHandling.o array_lib.o : cosp_kinds.o cosp_errorHandling.o math_lib.o : cosp_kinds.o array_lib.o mrgrnk.o @@ -107,37 +107,37 @@ quickbeam.o: $(RS_PATH)/quickbeam.F90 MISR_simulator.o : $(MISR_PATH)/MISR_simulator.F90 $(F90) $(F90FLAGS) -c $< -modis_simulator.o : $(MODIS_PATH)/modis_simulator.F90 +modis_simulator.o : $(MODIS_PATH)/modis_simulator.F90 $(F90) $(F90FLAGS) -c $< -cosp_rttov_interfaceSTUB.o : $(COSP_PATH)/src/simulator/cosp_rttov_interfaceSTUB.F90 +cosp_rttov_interfaceSTUB.o : $(COSP_PATH)/src/src/simulator/cosp_rttov_interfaceSTUB.F90 $(F90) $(F90FLAGS) -c $< -cosp_misr_interface.o : $(COSP_PATH)/src/simulator/cosp_misr_interface.F90 +cosp_misr_interface.o : $(COSP_PATH)/src/src/simulator/cosp_misr_interface.F90 $(F90) $(F90FLAGS) -c $< -cosp_modis_interface.o : $(COSP_PATH)/src/simulator/cosp_modis_interface.F90 +cosp_modis_interface.o : $(COSP_PATH)/src/src/simulator/cosp_modis_interface.F90 $(F90) $(F90FLAGS) -c $< -cosp_isccp_interface.o : $(COSP_PATH)/src/simulator/cosp_isccp_interface.F90 +cosp_isccp_interface.o : $(COSP_PATH)/src/src/simulator/cosp_isccp_interface.F90 $(F90) $(F90FLAGS) -c $< -cosp_calipso_interface.o : $(COSP_PATH)/src/simulator/cosp_calipso_interface.F90 +cosp_calipso_interface.o : $(COSP_PATH)/src/src/simulator/cosp_calipso_interface.F90 $(F90) $(F90FLAGS) -c $< -cosp_grLidar532_interface.o : $(COSP_PATH)/src/simulator/cosp_grLidar532_interface.F90 +cosp_grLidar532_interface.o : $(COSP_PATH)/src/src/simulator/cosp_grLidar532_interface.F90 $(F90) $(F90FLAGS) -c $< -cosp_atlid_interface.o : $(COSP_PATH)/src/simulator/cosp_atlid_interface.F90 +cosp_atlid_interface.o : $(COSP_PATH)/src/src/simulator/cosp_atlid_interface.F90 $(F90) $(F90FLAGS) -c $< -cosp_cloudsat_interface.o : $(COSP_PATH)/src/simulator/cosp_cloudsat_interface.F90 +cosp_cloudsat_interface.o : $(COSP_PATH)/src/src/simulator/cosp_cloudsat_interface.F90 $(F90) $(F90FLAGS) -c $< -cosp_parasol_interface.o : $(COSP_PATH)/src/simulator/cosp_parasol_interface.F90 +cosp_parasol_interface.o : $(COSP_PATH)/src/src/simulator/cosp_parasol_interface.F90 $(F90) $(F90FLAGS) -c $< -cosp_rttovSTUB.o : $(RT_PATH)/cosp_rttovSTUB.F90 +cosp_rttovSTUB.o : $(RT_PATH)/cosp_rttovSTUB.F90 $(F90) $(F90FLAGS) -c $< lidar_simulator.o : $(CS_PATH)/lidar_simulator.F90 @@ -146,19 +146,19 @@ lidar_simulator.o : $(CS_PATH)/lidar_simulator.F90 parasol.o : $(PARASOL_PATH)/parasol.F90 $(F90) $(F90FLAGS) -c $< -cosp_constants.o : $(COSP_PATH)/src/cosp_constants.F90 +cosp_constants.o : $(COSP_PATH)/src/src/cosp_constants.F90 $(F90) $(F90FLAGS) -c $< cosp_kinds.o : $(COSP_PATH)/cosp_kinds.F90 $(F90) $(F90FLAGS) -c $< -cosp_config.o : $(COSP_PATH)/src/cosp_config.F90 +cosp_config.o : $(COSP_PATH)/src/src/cosp_config.F90 $(F90) $(F90FLAGS) -c $< -cosp.o : $(COSP_PATH)/src/cosp.F90 +cosp.o : $(COSP_PATH)/src/src/cosp.F90 $(F90) $(F90FLAGS) -c $< -cosp_stats.o : $(COSP_PATH)/src/cosp_stats.F90 +cosp_stats.o : $(COSP_PATH)/src/src/cosp_stats.F90 $(F90) $(F90FLAGS) -c $< # COSPv1.4 interface From 3463dd340d41ee164f704cf3d6bca67980b697d1 Mon Sep 17 00:00:00 2001 From: Jesse Nusbaumer Date: Thu, 16 Nov 2023 15:30:44 -0700 Subject: [PATCH 19/48] Update ChangeLog. --- doc/ChangeLog | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index 90c1a34aff..2448833b60 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,5 +1,80 @@ =============================================================== +Tag name: cam6_3_135 +Originator(s): jedwards, nusbaume +Date: 16 Nov 2023 +One-line Summary: removes svn sparse checkout +Github PR URL: https://github.com/ESCOMP/CAM/pull/913 + +Purpose of changes (include the issue number and title text for each relevant GitHub issue): + +Use git sparse checkout for all repos, combine clubb and silhs into clubb. +git sparse checkout has been available in manage_externals since version 1.2.1. + +Fixes #912 -> cosp2 svn access to github support is ending soon + +Describe any changes made to build system: + +Build path were modified in the "configure" Perl script, as well +as in the COSP Makefile.in file, in order to account for the +new source code paths. + +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: nusbaume, cacraigucar, gold2718 + +List all files eliminated: N/A + +List all files added and what they do: + +A src/physics/.clubb_sparse_checkout + - Provides information on how to do the git sparse checkout of CLUBB and SILHS + +A src/physics/cosp2/.cosp_sparse_checkout + - Provides information on how to do the git sparse checkout of COSP + +List all existing files that have been modified, and describe the changes: + +M Externals_CAM.cfg + - Change the Github-SVN bridge method to git sparse checkout + +M bld/configure + - Update source code paths for CLUBB, SILHS, and COSP + +M src/physics/cosp2/Makefile.in + - Update source code paths for relevant COSP files. + +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. + +cheyenne/intel/aux_cam: + + ERP_Ln9_Vnuopc.C96_C96_mg17.F2000climo.cheyenne_intel.cam-outfrq9s_mg3 (Overall: FAIL) details: + FAIL ERP_Ln9_Vnuopc.C96_C96_mg17.F2000climo.cheyenne_intel.cam-outfrq9s_mg3 MODEL_BUILD time=3 + ERP_Ln9_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq9s (Overall: FAIL) details: + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq9s COMPARE_base_rest + SMS_Lh12_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq3h (Overall: DIFF) details: + FAIL SMS_Lh12_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq3h BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_134: DIFF + - pre-existing failure + +izumi/nag/aux_cam: + + DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae (Overall: FAIL) details: + FAIL DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae RUN time=10 + - pre-existing failure + +izumi/gnu/aux_cam: ALL PASS + +Summarize any changes to answers: bit-for-bit unchanged + +=============================================================== + Tag name: cam6_3_124 Originator(s): fvitt Date: 23 Aug 2023 From 6d7361c8e35523c6e12416059b8158be3ca443a2 Mon Sep 17 00:00:00 2001 From: supreethms1809 Date: Wed, 10 Jan 2024 13:32:13 -0700 Subject: [PATCH 20/48] dyn_in % mpas_from_cam_cnst deallocation bug fix Fixing the deallocation bug in MPAS dycore for CAM runs. The execution of Earthworks compsets (FHS94 and F2000) with NVHPC compiler creates a bug in the deallocation of the MPAS pointer. This commit fixes the bug by checking if the pointer is associated and then nullify it instead. --- src/dynamics/mpas/dyn_comp.F90 | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/dynamics/mpas/dyn_comp.F90 b/src/dynamics/mpas/dyn_comp.F90 index 7b27c4521e..43f841495f 100644 --- a/src/dynamics/mpas/dyn_comp.F90 +++ b/src/dynamics/mpas/dyn_comp.F90 @@ -646,7 +646,11 @@ subroutine dyn_final(dyn_in, dyn_out) nullify(dyn_in % theta_m) nullify(dyn_in % rho_zz) nullify(dyn_in % tracers) - deallocate(dyn_in % mpas_from_cam_cnst) + !SS: This a work around for the deallocation bug + !deallocate(dyn_in % mpas_from_cam_cnst) + if (associated(dyn_in % mpas_from_cam_cnst)) then + nullify(dyn_in % mpas_from_cam_cnst) + endif nullify(dyn_in % rho_base) nullify(dyn_in % theta_base) dyn_in % index_qv = 0 @@ -682,7 +686,11 @@ subroutine dyn_final(dyn_in, dyn_out) nullify(dyn_out % theta_m) nullify(dyn_out % rho_zz) nullify(dyn_out % tracers) - deallocate(dyn_out % cam_from_mpas_cnst) + !SS: This a work around for the deallocation bug + !deallocate(dyn_out % cam_from_mpas_cnst) + if (associated(dyn_out % cam_from_mpas_cnst)) then + nullify(dyn_out % cam_from_mpas_cnst) + endif dyn_out % index_qv = 0 nullify(dyn_out % zint) nullify(dyn_out % zz) From 2976581edfcd010ab5ef0a80195a33d461eabc6a Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Mon, 29 Jan 2024 15:28:49 -0700 Subject: [PATCH 21/48] Add patches to aerosol_optics_cam.F90 for NVHPC builds Apply patches developed by Jian Sun and Richard Loft to allow NVHPC builds/runs to succeed. These patches are enabled by default, but can be removed by commenting out the respective #define statement at the top of aerosol_optics_cam.F90. --- src/physics/cam/aerosol_optics_cam.F90 | 46 ++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/src/physics/cam/aerosol_optics_cam.F90 b/src/physics/cam/aerosol_optics_cam.F90 index eb094446c8..14d9899c9e 100644 --- a/src/physics/cam/aerosol_optics_cam.F90 +++ b/src/physics/cam/aerosol_optics_cam.F90 @@ -1,3 +1,5 @@ +#define _881FIX_ +#define _945FIX_ module aerosol_optics_cam use shr_kind_mod, only: r8 => shr_kind_r8 use shr_kind_mod, only: cl => shr_kind_cl @@ -35,12 +37,21 @@ module aerosol_optics_cam public :: aerosol_optics_cam_sw public :: aerosol_optics_cam_lw +#ifdef _945FIX_ + type aero_props_t + type(modal_aerosol_properties), pointer :: obj => null() + end type aero_props_t + type aero_state_t + type(modal_aerosol_state), pointer :: obj => null() + end type aero_state_t +#else type aero_props_t class(aerosol_properties), pointer :: obj => null() end type aero_props_t type aero_state_t class(aerosol_state), pointer :: obj => null() end type aero_state_t +#endif type(aero_props_t), allocatable :: aero_props(:) ! array of aerosol properties objects to allow for ! multiple aerosol representations in the same sim @@ -851,33 +862,63 @@ subroutine update_diags case('dust') dustvol(icol) = vol(icol) burdendust(icol) = burdendust(icol) + specmmr(icol,ilev)*mass(icol,ilev) +#ifdef _881FIX_ + scatdust(icol) = vol(icol) * DBLE(specrefindex(iwav)) + absdust(icol) =-vol(icol) * DIMAG(specrefindex(iwav)) +#else scatdust(icol) = vol(icol) * specrefindex(iwav)%re absdust(icol) =-vol(icol) * specrefindex(iwav)%im +#endif hygrodust(icol)= vol(icol)*hygro_aer case('black-c') burdenbc(icol) = burdenbc(icol) + specmmr(icol,ilev)*mass(icol,ilev) +#ifdef _881FIX_ + scatbc(icol) = vol(icol) * DBLE(specrefindex(iwav)) + absbc(icol) =-vol(icol) * DIMAG(specrefindex(iwav)) +#else scatbc(icol) = vol(icol) * specrefindex(iwav)%re absbc(icol) =-vol(icol) * specrefindex(iwav)%im +#endif hygrobc(icol)= vol(icol)*hygro_aer case('sulfate') burdenso4(icol) = burdenso4(icol) + specmmr(icol,ilev)*mass(icol,ilev) +#ifdef _881FIX_ + scatsulf(icol) = vol(icol) * DBLE(specrefindex(iwav)) + abssulf(icol) =-vol(icol) * DIMAG(specrefindex(iwav)) +#else scatsulf(icol) = vol(icol) * specrefindex(iwav)%re abssulf(icol) =-vol(icol) * specrefindex(iwav)%im +#endif hygrosulf(icol)= vol(icol)*hygro_aer case('p-organic') burdenpom(icol) = burdenpom(icol) + specmmr(icol,ilev)*mass(icol,ilev) +#ifdef _881FIX_ + scatpom(icol) = vol(icol) * DBLE(specrefindex(iwav)) + abspom(icol) =-vol(icol) * DIMAG(specrefindex(iwav)) +#else scatpom(icol) = vol(icol) * specrefindex(iwav)%re abspom(icol) =-vol(icol) * specrefindex(iwav)%im +#endif hygropom(icol)= vol(icol)*hygro_aer case('s-organic') burdensoa(icol) = burdensoa(icol) + specmmr(icol,ilev)*mass(icol,ilev) +#ifdef _881FIX_ + scatsoa(icol) = vol(icol) * DBLE(specrefindex(iwav)) + abssoa(icol) =-vol(icol) * DIMAG(specrefindex(iwav)) +#else scatsoa(icol) = vol(icol) * specrefindex(iwav)%re abssoa(icol) = -vol(icol) * specrefindex(iwav)%im +#endif hygrosoa(icol)= vol(icol)*hygro_aer case('seasalt') burdenseasalt(icol) = burdenseasalt(icol) + specmmr(icol,ilev)*mass(icol,ilev) +#ifdef _881FIX_ + scatsslt(icol) = vol(icol) * DBLE(specrefindex(iwav)) + abssslt(icol) =-vol(icol) * DIMAG(specrefindex(iwav)) +#else scatsslt(icol) = vol(icol) * specrefindex(iwav)%re abssslt(icol) = -vol(icol) * specrefindex(iwav)%im +#endif hygrosslt(icol)= vol(icol)*hygro_aer end select end do @@ -889,8 +930,13 @@ subroutine update_diags ! partition optical depth into contributions from each constituent ! assume contribution is proportional to refractive index X volume +#ifdef _881FIX_ + scath2o = watervol(icol,ilev)*DBLE(crefwsw(iwav)) + absh2o = -watervol(icol,ilev)*DIMAG(crefwsw(iwav)) +#else scath2o = watervol(icol,ilev)*crefwsw(iwav)%re absh2o = -watervol(icol,ilev)*crefwsw(iwav)%im +#endif sumscat = scatsulf(icol) + scatpom(icol) + scatsoa(icol) + scatbc(icol) + & scatdust(icol) + scatsslt(icol) + scath2o sumabs = abssulf(icol) + abspom(icol) + abssoa(icol) + absbc(icol) + & From 2efdf4a10f5fae11c1370dc1c463b58a0409cb67 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Thu, 1 Feb 2024 14:04:24 -0700 Subject: [PATCH 22/48] Revert MPAS to v7.3 version, undo cam6_3_137 --- Externals_CAM.cfg | 2 +- bld/build-namelist | 1 - bld/namelist_files/namelist_definition.xml | 23 ++------ .../cam/outfrq9s_mpasa480/user_nl_cam | 2 - src/dynamics/mpas/Makefile | 32 ++++------- .../mpas/driver/cam_mpas_subdriver.F90 | 57 ++++++------------- src/dynamics/mpas/dyn_comp.F90 | 6 -- 7 files changed, 35 insertions(+), 88 deletions(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index b66e4a2d25..0cf25e1d4a 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -68,7 +68,7 @@ local_path = src/dynamics/mpas/dycore protocol = git repo_url = https://github.com/MPAS-Dev/MPAS-Model.git sparse = ../.mpas_sparse_checkout -hash = b8c33daa +hash = ff76a231 required = True [hemco] diff --git a/bld/build-namelist b/bld/build-namelist index fcf1cfca79..73a41aa4d2 100755 --- a/bld/build-namelist +++ b/bld/build-namelist @@ -4075,7 +4075,6 @@ if ($dyn =~ /mpas/) { add_default($nl, 'mpas_zd'); add_default($nl, 'mpas_xnutr'); add_default($nl, 'mpas_cam_coef'); - add_default($nl, 'mpas_cam_damping_levels'); add_default($nl, 'mpas_print_detailed_minmax_vel'); add_default($nl, 'mpas_rayleigh_damp_u'); add_default($nl, 'mpas_rayleigh_damp_u_timescale_days'); diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml index 21fa4adead..24ecd86480 100644 --- a/bld/namelist_files/namelist_definition.xml +++ b/bld/namelist_files/namelist_definition.xml @@ -8456,26 +8456,15 @@ Default: 0.2 -Coefficient for scaling the 2nd-order horizontal diffusion in the mpas_cam absorbing -layer. The absorbing layer depth is controlled with mpas_cam_damping_levels. The damping -coefficients scale linearly with mpas_cam_coef. A value of 0.0 (or -mpas_cam_damping_levels=0) disables the 2nd-order diffusion in the absorbing layer. Sponge -layer absorption can also be provided by Rayleigh damping. - -E.g. a value of 1.0 with mpas_cam_damping_levels=3 will result in damping coefficients of -2E6 m^2/s, 6E5, 2E5 in the top-most three layers on the dynamics variables u, w, and -theta. +Coefficient for scaling the 2nd-order horizontal diffusion in the mpas_cam absorbing layer. +A value of 1.0 will result in layered diffusion similar to CAM-SE and gives damping +coefficients of 0.2216E7, 0.6482E6, 0.1927E6 in the top-most three layers on the dynamics +variables u, w, and theta. The top 3 damping coefficients scale linearly with +mpas_cam_coef. 0.0 disables SE like 2nd-order diffusion in the absorbing layer and is the +current default. Sponge layer absorption can also be provided by Rayleigh damping. Default: 0.0 - -Number mpas_cam absorbing layers in which to apply 2nd-order horizontal diffusion. -Viscocity linearly ramps to zero by layer number from the top. mpas_cam_damping_levels and -mpas_cam_coef must both be greater than 0 for the diffusion to be enabled. -Default: 0 - - Whether to apply Rayleigh damping on horizontal velocity in the top-most model levels. diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq9s_mpasa480/user_nl_cam b/cime_config/testdefs/testmods_dirs/cam/outfrq9s_mpasa480/user_nl_cam index ccffd8c129..8482082dce 100644 --- a/cime_config/testdefs/testmods_dirs/cam/outfrq9s_mpasa480/user_nl_cam +++ b/cime_config/testdefs/testmods_dirs/cam/outfrq9s_mpasa480/user_nl_cam @@ -2,5 +2,3 @@ mfilt=1,1,1,1,1,1 ndens=1,1,1,1,1,1 nhtfrq=9,9,9,9,9,9 inithist='ENDOFRUN' -mpas_cam_coef=1.0D0 -mpas_cam_damping_levels=3 diff --git a/src/dynamics/mpas/Makefile b/src/dynamics/mpas/Makefile index 216be0ff1a..89c4d71931 100644 --- a/src/dynamics/mpas/Makefile +++ b/src/dynamics/mpas/Makefile @@ -1,4 +1,4 @@ -CPPFLAGS := -D_MPI -DMPAS_NATIVE_TIMERS -DMPAS_GIT_VERSION=unknown -DMPAS_NAMELIST_SUFFIX=atmosphere -DMPAS_CAM_DYCORE -DMPAS_PIO_SUPPORT -DMPAS_NO_ESMF_INIT +CPPFLAGS := -D_MPI -DMPAS_NATIVE_TIMERS -DMPAS_GIT_VERSION=unknown -DMPAS_NAMELIST_SUFFIX=atmosphere -DMPAS_CAM_DYCORE -DMPAS_NO_ESMF_INIT ifdef PIODEF CPPFLAGS += $(PIODEF) endif @@ -18,7 +18,6 @@ INTERFACE_OBJS = \ mpas_atm_core_interface.o \ mpas_atm_dimensions.o \ mpas_atm_threading.o \ - mpas_atm_halos.o \ cam_mpas_subdriver.o DYN_OBJS = \ @@ -32,11 +31,10 @@ DIAG_OBJS = \ DIAGNOSTICS = \ mpas_atm_diagnostic_template.o \ - mpas_isobaric_diagnostics.o \ - mpas_cloud_diagnostics.o \ - mpas_convective_diagnostics.o \ - mpas_pv_diagnostics.o \ - mpas_soundings.o + isobaric_diagnostics.o \ + convective_diagnostics.o \ + pv_diagnostics.o \ + soundings.o REG_OBJS = \ parse.o \ @@ -92,10 +90,7 @@ FRAME_OBJS = \ mpas_pool_routines.o \ xml_stream_parser.o \ regex_matching.o \ - mpas_log.o \ - mpas_halo.o \ - mpas_string_utils.o - + mpas_log.o UTIL_OBJS = \ ezxml.o @@ -134,8 +129,7 @@ mpas_framework.o: mpas_dmpar.o \ mpas_io_units.o \ mpas_block_decomp.o \ mpas_stream_manager.o \ - mpas_c_interfacing.o \ - mpas_halo.o + mpas_c_interfacing.o mpas_abort.o: mpas_kind_types.o mpas_io_units.o mpas_threading.o @@ -161,7 +155,7 @@ mpas_dmpar.o: mpas_sort.o mpas_kind_types.o mpas_derived_types.o mpas_hash.o mpa mpas_sort.o: mpas_kind_types.o mpas_log.o -mpas_timekeeping.o: mpas_string_utils.o mpas_kind_types.o mpas_derived_types.o mpas_dmpar.o mpas_threading.o mpas_log.o +mpas_timekeeping.o: mpas_kind_types.o mpas_derived_types.o mpas_dmpar.o mpas_threading.o mpas_log.o mpas_timer.o: mpas_kind_types.o mpas_dmpar.o mpas_threading.o mpas_log.o @@ -185,7 +179,6 @@ mpas_stream_manager.o: mpas_io_streams.o mpas_timekeeping.o mpas_derived_types.o mpas_forcing.o: mpas_derived_types.o mpas_timekeeping.o mpas_stream_manager.o mpas_log.o mpas_io_units.o -mpas_halo.o: mpas_derived_types.o mpas_pool_routines.o mpas_log.o # # Operator dependencies @@ -241,10 +234,9 @@ mpas_atm_time_integration.o: mpas_atm_iau.o mpas_atm_dimensions.o mpas_atm_bound # mpas_atm_diagnostics_manager.o: mpas_atm_diagnostics_utils.o $(DIAGNOSTICS) -mpas_cloud_diagnostics.o: mpas_atm_diagnostics_utils.o -mpas_convective_diagnostics.o: mpas_atm_diagnostics_utils.o -mpas_isobaric_diagnostics.o: mpas_atm_diagnostics_utils.o -mpas_pv_diagnostics.o: mpas_atm_diagnostics_utils.o +convective_diagnostics.o: mpas_atm_diagnostics_utils.o +isobaric_diagnostics.o: mpas_atm_diagnostics_utils.o +pv_diagnostics.o: mpas_atm_diagnostics_utils.o # @@ -252,7 +244,7 @@ mpas_pv_diagnostics.o: mpas_atm_diagnostics_utils.o # mpas_atm_core_interface.o: mpas_atm_core.o incs -mpas_atm_core.o: mpas_atm_threading.o mpas_atm_time_integration.o mpas_atm_diagnostics_manager.o mpas_atm_halos.o +mpas_atm_core.o: mpas_atm_threading.o mpas_atm_time_integration.o mpas_atm_diagnostics_manager.o cam_mpas_subdriver.o: mpas_atm_core_interface.o mpas_derived_types.o mpas_framework.o mpas_domain_routines.o mpas_pool_routines.o diff --git a/src/dynamics/mpas/driver/cam_mpas_subdriver.F90 b/src/dynamics/mpas/driver/cam_mpas_subdriver.F90 index 676bacd4af..cc6ac75114 100644 --- a/src/dynamics/mpas/driver/cam_mpas_subdriver.F90 +++ b/src/dynamics/mpas/driver/cam_mpas_subdriver.F90 @@ -278,7 +278,7 @@ subroutine cam_mpas_init_phase4(endrun) use mpas_pool_routines, only : mpas_pool_get_subpool, mpas_pool_get_dimension, mpas_pool_get_config, & mpas_pool_get_field, mpas_pool_get_array, mpas_pool_initialize_time_levels use atm_core, only : atm_mpas_init_block, core_clock => clock - use mpas_atm_halos, only : atm_build_halo_groups, exchange_halo_group + use mpas_dmpar, only : mpas_dmpar_exch_halo_field use atm_time_integration, only : mpas_atm_dynamics_init procedure(halt_model) :: endrun @@ -327,14 +327,6 @@ subroutine cam_mpas_init_phase4(endrun) clock => domain_ptr % clock core_clock => domain_ptr % clock - ! - ! Build halo exchange groups and set method for exchanging halos in a group - ! - call atm_build_halo_groups(domain_ptr, ierr) - if (ierr /= 0) then - call endrun(subname//':failed to build MPAS-A halo exchange groups.') - end if - call mpas_pool_get_config(domain_ptr % blocklist % configs, 'config_do_restart', config_do_restart) call mpas_pool_get_config(domain_ptr % blocklist % configs, 'config_dt', dt) @@ -356,7 +348,9 @@ subroutine cam_mpas_init_phase4(endrun) call mpas_get_time(startTime, dateTimeString=startTimeStamp) - call exchange_halo_group(domain_ptr, 'initialization:u') + call mpas_pool_get_subpool(domain_ptr % blocklist % structs, 'state', state) + call mpas_pool_get_field(state, 'u', u_field, 1) + call mpas_dmpar_exch_halo_field(u_field) call mpas_pool_get_subpool(domain_ptr % blocklist % structs, 'mesh', mesh) call mpas_pool_get_subpool(domain_ptr % blocklist % structs, 'state', state) @@ -373,7 +367,15 @@ subroutine cam_mpas_init_phase4(endrun) call mpas_pool_get_array(state, 'initial_time', initial_time2, 2) initial_time2 = initial_time1 - call exchange_halo_group(domain_ptr, 'initialization:pv_edge,ru,rw') + call mpas_pool_get_subpool(domain_ptr % blocklist % structs, 'diag', diag) + call mpas_pool_get_field(diag, 'pv_edge', pv_edge_field) + call mpas_dmpar_exch_halo_field(pv_edge_field) + + call mpas_pool_get_field(diag, 'ru', ru_field) + call mpas_dmpar_exch_halo_field(ru_field) + + call mpas_pool_get_field(diag, 'rw', rw_field) + call mpas_dmpar_exch_halo_field(rw_field) ! ! Prepare the dynamics for integration @@ -907,7 +909,6 @@ subroutine cam_mpas_read_static(fh_ini, endrun) integer :: ierr_total type (MPAS_pool_type), pointer :: meshPool type (MPAS_pool_type), pointer :: reindexPool - type (MPAS_pool_type), pointer :: allPackages, reindexPkgs type (field1DReal), pointer :: latCell, lonCell, xCell, yCell, zCell type (field1DReal), pointer :: latEdge, lonEdge, xEdge, yEdge, zEdge type (field1DReal), pointer :: latVertex, lonVertex, xVertex, yVertex, zVertex @@ -1254,15 +1255,9 @@ subroutine cam_mpas_read_static(fh_ini, endrun) call MPAS_pool_add_config(reindexPool, 'edgesOnVertex', 1) call MPAS_pool_add_config(reindexPool, 'cellsOnVertex', 1) - ! Use an empty package list for reindexPool - call MPAS_pool_create_pool(reindexPkgs) - - call postread_reindex(meshPool, domain_ptr % streamManager % allPackages, & - reindexPool, reindexPkgs) - + call postread_reindex(meshPool, reindexPool) call MPAS_pool_destroy_pool(reindexPool) - call MPAS_pool_destroy_pool(reindexPkgs) end subroutine cam_mpas_read_static @@ -1760,7 +1755,6 @@ subroutine cam_mpas_read_restart(restart_stream, endrun) integer :: ierr type (MPAS_pool_type), pointer :: reindexPool - type (MPAS_pool_type), pointer :: reindexPkgs call MPAS_readStream(restart_stream, 1, ierr=ierr) if (ierr /= MPAS_STREAM_NOERR) then @@ -1888,15 +1882,9 @@ subroutine cam_mpas_read_restart(restart_stream, endrun) call MPAS_pool_add_config(reindexPool, 'edgesOnVertex', 1) call MPAS_pool_add_config(reindexPool, 'cellsOnVertex', 1) - ! Use an empty package list for reindexPool - call MPAS_pool_create_pool(reindexPkgs) - - call postread_reindex(domain_ptr % blocklist % allFields, & - domain_ptr % streamManager % allPackages, & - reindexPool, reindexPkgs) + call postread_reindex(domain_ptr % blocklist % allFields, reindexPool) call MPAS_pool_destroy_pool(reindexPool) - call MPAS_pool_destroy_pool(reindexPkgs) end subroutine cam_mpas_read_restart @@ -1930,7 +1918,6 @@ subroutine cam_mpas_write_restart(restart_stream, endrun) integer :: ierr type (MPAS_pool_type), pointer :: reindexPool - type (MPAS_pool_type), pointer :: reindexPkgs ! ! Re-index from local index space to global index space @@ -1946,11 +1933,7 @@ subroutine cam_mpas_write_restart(restart_stream, endrun) call MPAS_pool_add_config(reindexPool, 'edgesOnVertex', 1) call MPAS_pool_add_config(reindexPool, 'cellsOnVertex', 1) - call MPAS_pool_create_pool(reindexPkgs) - - call prewrite_reindex(domain_ptr % blocklist % allFields, & - domain_ptr % streamManager % allPackages, & - reindexPool, reindexPkgs) + call prewrite_reindex(domain_ptr % blocklist % allFields, reindexPool) call MPAS_writeStream(restart_stream, 1, ierr=ierr) if (ierr /= MPAS_STREAM_NOERR) then @@ -1960,7 +1943,6 @@ subroutine cam_mpas_write_restart(restart_stream, endrun) call postwrite_reindex(domain_ptr % blocklist % allFields, reindexPool) call MPAS_pool_destroy_pool(reindexPool) - call MPAS_pool_destroy_pool(reindexPkgs) call MPAS_closeStream(restart_stream, ierr=ierr) if (ierr /= MPAS_STREAM_NOERR) then @@ -2322,7 +2304,6 @@ subroutine cam_mpas_finalize() use mpas_timer, only : mpas_timer_stop use mpas_framework, only : mpas_framework_finalize use atm_time_integration, only : mpas_atm_dynamics_finalize - use mpas_atm_halos, only : atm_destroy_halo_groups ! Local variables integer :: ierr @@ -2336,12 +2317,6 @@ subroutine cam_mpas_finalize() call mpas_destroy_clock(clock, ierr) call mpas_decomp_destroy_decomp_list(domain_ptr % decompositions) - - call atm_destroy_halo_groups(domain_ptr, ierr) - if (ierr /= 0) then - call endrun(subname//':failed to destroy MPAS-A halo exchange groups.') - end if - call mpas_atm_threading_finalize(domain_ptr % blocklist) call mpas_timer_stop('total time') diff --git a/src/dynamics/mpas/dyn_comp.F90 b/src/dynamics/mpas/dyn_comp.F90 index 586b09228f..300a38446d 100644 --- a/src/dynamics/mpas/dyn_comp.F90 +++ b/src/dynamics/mpas/dyn_comp.F90 @@ -295,7 +295,6 @@ subroutine dyn_readnl(NLFileName) call mpas_pool_add_config(domain_ptr % configs, 'config_restart_timestamp_name', 'restart_timestamp') call mpas_pool_add_config(domain_ptr % configs, 'config_IAU_option', 'off') call mpas_pool_add_config(domain_ptr % configs, 'config_do_DAcycling', .false.) - call mpas_pool_add_config(domain_ptr % configs, 'config_halo_exch_method', 'mpas_halo') call cam_mpas_init_phase2(pio_subsystem, endrun, timemgr_get_calendar_cf()) @@ -1365,7 +1364,6 @@ subroutine cam_mpas_namelist_read(namelistFilename, configPool) real(r8) :: mpas_zd = 22000.0_r8 real(r8) :: mpas_xnutr = 0.2_r8 real(r8) :: mpas_cam_coef = 0.0_r8 - integer :: mpas_cam_damping_levels = 0 logical :: mpas_rayleigh_damp_u = .true. real(r8) :: mpas_rayleigh_damp_u_timescale_days = 5.0_r8 integer :: mpas_number_rayleigh_damp_u_levels = 3 @@ -1416,7 +1414,6 @@ subroutine cam_mpas_namelist_read(namelistFilename, configPool) mpas_zd, & mpas_xnutr, & mpas_cam_coef, & - mpas_cam_damping_levels, & mpas_rayleigh_damp_u, & mpas_rayleigh_damp_u_timescale_days, & mpas_number_rayleigh_damp_u_levels @@ -1552,7 +1549,6 @@ subroutine cam_mpas_namelist_read(namelistFilename, configPool) call mpi_bcast(mpas_zd, 1, mpi_real8, masterprocid, mpicom, mpi_ierr) call mpi_bcast(mpas_xnutr, 1, mpi_real8, masterprocid, mpicom, mpi_ierr) call mpi_bcast(mpas_cam_coef, 1, mpi_real8, masterprocid, mpicom, mpi_ierr) - call mpi_bcast(mpas_cam_damping_levels, 1, mpi_integer, masterprocid, mpicom, mpi_ierr) call mpi_bcast(mpas_rayleigh_damp_u, 1, mpi_logical, masterprocid, mpicom, mpi_ierr) call mpi_bcast(mpas_rayleigh_damp_u_timescale_days, 1, mpi_real8, masterprocid, mpicom, mpi_ierr) call mpi_bcast(mpas_number_rayleigh_damp_u_levels, 1, mpi_integer, masterprocid, mpicom, mpi_ierr) @@ -1560,7 +1556,6 @@ subroutine cam_mpas_namelist_read(namelistFilename, configPool) call mpas_pool_add_config(configPool, 'config_zd', mpas_zd) call mpas_pool_add_config(configPool, 'config_xnutr', mpas_xnutr) call mpas_pool_add_config(configPool, 'config_mpas_cam_coef', mpas_cam_coef) - call mpas_pool_add_config(configPool, 'config_number_cam_damping_levels', mpas_cam_damping_levels) call mpas_pool_add_config(configPool, 'config_rayleigh_damp_u', mpas_rayleigh_damp_u) call mpas_pool_add_config(configPool, 'config_rayleigh_damp_u_timescale_days', mpas_rayleigh_damp_u_timescale_days) call mpas_pool_add_config(configPool, 'config_number_rayleigh_damp_u_levels', mpas_number_rayleigh_damp_u_levels) @@ -1711,7 +1706,6 @@ subroutine cam_mpas_namelist_read(namelistFilename, configPool) write(iulog,*) ' mpas_zd = ', mpas_zd write(iulog,*) ' mpas_xnutr = ', mpas_xnutr write(iulog,*) ' mpas_cam_coef = ', mpas_cam_coef - write(iulog,*) ' mpas_cam_damping_levels = ', mpas_cam_damping_levels write(iulog,*) ' mpas_rayleigh_damp_u = ', mpas_rayleigh_damp_u write(iulog,*) ' mpas_rayleigh_damp_u_timescale_days = ', mpas_rayleigh_damp_u_timescale_days write(iulog,*) ' mpas_number_rayleigh_damp_u_levels = ', mpas_number_rayleigh_damp_u_levels From 17c44ed938bbc91ff16aa3104a5444bff87db8bf Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Mon, 12 Feb 2024 17:34:09 -0700 Subject: [PATCH 23/48] Enable OpenACC builds by bringing in GPUFLAGS within mpas/Makefile --- src/dynamics/mpas/Makefile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/dynamics/mpas/Makefile b/src/dynamics/mpas/Makefile index 89c4d71931..ab597ba72a 100644 --- a/src/dynamics/mpas/Makefile +++ b/src/dynamics/mpas/Makefile @@ -1,4 +1,7 @@ CPPFLAGS := -D_MPI -DMPAS_NATIVE_TIMERS -DMPAS_GIT_VERSION=unknown -DMPAS_NAMELIST_SUFFIX=atmosphere -DMPAS_CAM_DYCORE -DMPAS_NO_ESMF_INIT +ifdef GPUFLAGS + CPPFLAGS += -DMPAS_OPENACC +endif ifdef PIODEF CPPFLAGS += $(PIODEF) endif @@ -260,8 +263,8 @@ clean: $(CC) -c $(CFLAGS) -DUNDERSCORE $(CPPFLAGS) $(CPPINCLUDES) -I$(MPAS_SRC_ROOT)/dycore/src/external/ezxml $< %.o : %.F - $(FC) -c $(CPPFLAGS) $(FFLAGS) $(CPPINCLUDES) $(FCINCLUDES) $< + $(FC) -c $(CPPFLAGS) $(FFLAGS) $(GPUFLAGS) $(CPPINCLUDES) $(FCINCLUDES) $< %.o : %.F90 - $(FC) -c $(CPPFLAGS) $(FFLAGS) $(CPPINCLUDES) $(FCINCLUDES) $< + $(FC) -c $(CPPFLAGS) $(FFLAGS) $(GPUFLAGS) $(CPPINCLUDES) $(FCINCLUDES) $< From 6e6a93852825e8566b596792e917cc604c7a3bfb Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Mon, 12 Feb 2024 15:10:47 -0700 Subject: [PATCH 24/48] Switch to OpenACC version of MPAS-A --- Externals_CAM.cfg | 4 ++-- src/dynamics/mpas/Makefile | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index 0cf25e1d4a..074e7ba0ac 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -66,9 +66,9 @@ required = True [mpas] local_path = src/dynamics/mpas/dycore protocol = git -repo_url = https://github.com/MPAS-Dev/MPAS-Model.git +repo_url = https://github.com/EarthWorksOrg/MPAS-Model.git sparse = ../.mpas_sparse_checkout -hash = ff76a231 +tag = mpasa-ew2.0.001 required = True [hemco] diff --git a/src/dynamics/mpas/Makefile b/src/dynamics/mpas/Makefile index ab597ba72a..2e31cb7ab5 100644 --- a/src/dynamics/mpas/Makefile +++ b/src/dynamics/mpas/Makefile @@ -1,4 +1,5 @@ CPPFLAGS := -D_MPI -DMPAS_NATIVE_TIMERS -DMPAS_GIT_VERSION=unknown -DMPAS_NAMELIST_SUFFIX=atmosphere -DMPAS_CAM_DYCORE -DMPAS_NO_ESMF_INIT +$(info $$GPUFLAGS=[${GPUFLAGS}]) ifdef GPUFLAGS CPPFLAGS += -DMPAS_OPENACC endif From 04bbb089b65aa452a2ae3344cf7ac7c69254e228 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Wed, 14 Feb 2024 12:45:33 -0700 Subject: [PATCH 25/48] Update MPAS-A tag for release --- Externals_CAM.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index 074e7ba0ac..08700b2596 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -68,7 +68,7 @@ local_path = src/dynamics/mpas/dycore protocol = git repo_url = https://github.com/EarthWorksOrg/MPAS-Model.git sparse = ../.mpas_sparse_checkout -tag = mpasa-ew2.0.001 +tag = release-mpasa-ew2.1 required = True [hemco] From 3e9870d90baa9ce2f428d57005f365ad284c6473 Mon Sep 17 00:00:00 2001 From: Jim Edwards Date: Fri, 8 Mar 2024 14:25:09 -0700 Subject: [PATCH 26/48] fix so that all three flavors of intel compiler are recognized on derecho --- bld/configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bld/configure b/bld/configure index 7ec8b13833..a75c775559 100755 --- a/bld/configure +++ b/bld/configure @@ -1683,7 +1683,7 @@ elsif ($fc =~ /nvfor/) { $fc_type = 'nvhpc'; } # User override for Fortran compiler type if (defined $opts{'fc_type'}) { $fc_type = $opts{'fc_type'}; } -if ($fc_type eq "oneapi") {$fc_type = 'intel'; } +if ($fc_type =~ /intel/) {$fc_type = 'intel'; } if ($fc_type) { $cfg_ref->set('fc_type', $fc_type); if ($print>=2) { print "Fortran compiler type: $fc_type$eol"; } From a617dcd2c9792a191ec191378603cebaf7387e60 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Thu, 9 May 2024 16:10:56 -0600 Subject: [PATCH 27/48] Add MPASv8 IC and new bnd_topo files for EarthWorks NOTE: the files added in this commit are only for EarthWorks and may not be desired in ESCOMP/CAM or in the CESM data servers. Search for the text "EarthWorks specific" in namelist_defaults_cam.xml for more context. --- bld/namelist_files/namelist_defaults_cam.xml | 27 ++++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index f68f01d5de..602ca0ad53 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -48,6 +48,7 @@ atm/cam/inic/mpas/mpasa480_L32_notopo_coords_c240508.nc atm/cam/inic/mpas/mpasa120_L32_notopo_coords_c201216.nc atm/cam/inic/mpas/mpasa120_L32_notopo_coords_c240507.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 @@ -55,7 +56,10 @@ atm/cam/inic/mpas/mpasa60_L32_notopo_coords_c240507.nc atm/cam/inic/mpas/mpasa30_L32_notopo_coords_c230707.nc atm/cam/inic/mpas/mpasa30_L32_notopo_coords_c240507.nc -atm/cam/inic/mpas/mpasa15_L32_notopo_coords_c230928.nc + +atm/cam/inic/mpas/mpasa15_L32_notopo_coords_c240507.nc +atm/cam/inic/mpas/mpasa120_L58_notopo_coords_c240508.nc +atm/cam/inic/mpas/mpasa15_L58_notopo_coords_c240508.nc atm/cam/inic/fv/cami_0000-01-01_0.23x0.31_L26_c100513.nc @@ -282,15 +286,14 @@ atm/waccm/ic/mpasa120km.waccm_fulltopo_c220818.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_c210426.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_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_c210426.nc +atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L32_CFSR_c240508.nc + atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa60_L32_CFSR_c210518.nc atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa30_L32_CFSR_230302.nc - + atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L58_c230901.nc atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa15_L58_c230316.nc @@ -353,14 +356,10 @@ atm/cam/topo/mpas/mpasa480_gmted2010_modis_bedmachine_nc3000_Laplace0400_noleak_20240507.nc atm/cam/topo/mpas/mpas_120_nc3000_Co060_Fi001_MulG_PF_Nsw042_c200921.nc atm/cam/topo/mpas/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_noleak_20240507.nc - -atm/cam/topo/mpas_480_nc3000_Co240_Fi001_MulG_PF_Nsw170.nc -atm/cam/topo/mpas_120_nc3000_Co060_Fi001_MulG_PF_Nsw042_c200921.nc -atm/cam/topo/mpas_60_nc3000_Co030_Fi001_MulG_PF_Nsw021.nc -atm/cam/topo/mpas_30_nc3000_Co015_Fi001_MulG_PF_Nsw011.nc -atm/cam/topo/mpas_15_nc3500_c20230315.nc - -atm/cam/topo/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_20220728.nc + +atm/cam/topo/mpas/mpasa60_gmted2010_modis_bedmachine_nc3000_Laplace0050_noleak_20240507.nc +atm/cam/topo/mpas/mpasa30_gmted2010_modis_bedmachine_nc3000_Laplace0025_noleak_20240507.nc +atm/cam/topo/mpas/mpasa15_gmted2010_modis_bedmachine_nc3000_Laplace0013_noleak_20240507.nc 0.0D0 From 58959a701d02413dc4c89babf759cb83d5dff5fe Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Thu, 16 May 2024 15:32:22 -0600 Subject: [PATCH 28/48] Fix names for 7.5 and 3.75km mpasa hgrids Since hgrid names come from the ATM_GRID value, these names should have been mpasa7p5 and mpasa3p75. See the definitions in ccs_configs files "component_grids_nuopc.xml" and "modelgrid_aliases_nuopc.xml". --- bld/namelist_files/namelist_defaults_cam.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index a745df2dfc..489bf6989c 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -3258,8 +3258,8 @@ 450.0D0 225.0D0 112.5D0 - 56.25D0 - 28.125D0 + 56.25D0 + 28.125D0 .true. 2 @@ -3278,8 +3278,8 @@ 60000.0D0 30000.0D0 15000.0D0 - 7500.0D0 - 3750.0D0 + 7500.0D0 + 3750.0D0 0.05D0 10.0D0 From b6904b7c65ff3944bec7a53270211f051ea609e7 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Thu, 16 May 2024 15:36:37 -0600 Subject: [PATCH 29/48] Update mpas_dt based on emails with Don Dazlich --- bld/namelist_files/namelist_defaults_cam.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 489bf6989c..958a9f7556 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -3253,13 +3253,13 @@ SRK3 2 1800.0D0 - 900.0D0 + 600.0D0 600.D0 - 450.0D0 + 300.0D0 225.0D0 - 112.5D0 - 56.25D0 - 28.125D0 + 80.0D0 + 40.0D0 + 20.0D0 .true. 2 From 3f71a63eef72023b13bc537a398e3dddd626d124 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Thu, 16 May 2024 15:38:30 -0600 Subject: [PATCH 30/48] Edit mpas_dt for mpasa30 to fit pattern Other mpas_dt values are set to be 1/3 of atm coupling interval in seconds. --- bld/namelist_files/namelist_defaults_cam.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 958a9f7556..b6cc13be9b 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -3256,7 +3256,7 @@ 600.0D0 600.D0 300.0D0 - 225.0D0 + 150.0D0 80.0D0 40.0D0 20.0D0 From 53d8ed7ff7fc6280607e1cd4bb55572441ee9eb4 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Thu, 16 May 2024 15:46:00 -0600 Subject: [PATCH 31/48] Set high res mpasa radiation time steps For 15km, 7.5km, and 3.75km resolutions (approaching cloud resolving scales) radiation schemes should update more frequently to keep up with the dynamics time steps. These settings update the radiation every 10 physics (CAM) time steps based on the atm coupling interval. Other mpasa resolutions will inherit the default "-1" value, which runs radiation once every simulated hour. NOTE: these are proposed values, and may not hold up to testing. --- bld/namelist_files/namelist_defaults_cam.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index b6cc13be9b..cfa9a5fd7c 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -2292,6 +2292,15 @@ 0.22 10 + + + 10 + 10 + 10 + 10 + 10 + 10 + .false. .false. From f3d877e3d668542244d9fb35688a511f4f71e109 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Wed, 22 May 2024 10:19:41 -0600 Subject: [PATCH 32/48] Use mpas external that supports cam_dev physics --- Externals_CAM.cfg | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index 95381b3080..dec441754a 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -66,9 +66,11 @@ required = True [mpas] local_path = src/dynamics/mpas/dycore protocol = git -repo_url = https://github.com/EarthWorksOrg/MPAS-Model.git +repo_url = https://github.com/gdicker1/MPAS-Model.git +# repo_url = https://github.com/EarthWorksOrg/MPAS-Model.git sparse = ../.mpas_sparse_checkout -tag = release-mpasa-ew2.1 +branch = feature/add_grad_coefs +# tag = release-mpasa-ew2.1 required = True [geoschem] From d9b4f8d2b30281ffd8a398a42b10a456746e85b4 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Wed, 22 May 2024 14:47:58 -0600 Subject: [PATCH 33/48] Incorporate PUMAS GPU fixes in external --- Externals_CAM.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index dec441754a..d9276cbb25 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -32,7 +32,7 @@ required = True local_path = src/physics/pumas protocol = git repo_url = https://github.com/ESCOMP/PUMAS -tag = pumas_cam-release_v1.35 +tag = pumas_cam-release_v1.36 required = True [pumas-frozen] From 33ad6689d3549399fcb5dac0d7b3cb226588a87e Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Wed, 22 May 2024 17:19:13 -0600 Subject: [PATCH 34/48] Use tag for merged mpas changes Since EWOrg/MPAS-Model PR #3 was merged, use the tag that was created in MPAS-Model. --- Externals_CAM.cfg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index d9276cbb25..00b46a917f 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -66,11 +66,9 @@ required = True [mpas] local_path = src/dynamics/mpas/dycore protocol = git -repo_url = https://github.com/gdicker1/MPAS-Model.git -# repo_url = https://github.com/EarthWorksOrg/MPAS-Model.git +repo_url = https://github.com/EarthWorksOrg/MPAS-Model.git sparse = ../.mpas_sparse_checkout -branch = feature/add_grad_coefs -# tag = release-mpasa-ew2.1 +tag = mpasa-ew2.1.001 required = True [geoschem] From dac6479bcfa085b5e70730d50c20d865d77fc255 Mon Sep 17 00:00:00 2001 From: supreethms1809 Date: Tue, 28 May 2024 17:24:51 -0600 Subject: [PATCH 35/48] Changing RRTMGP repo link From: https://github.com/earth-system-radiation/rte-rrtmgp.git Tag: v1.7 To: https://github.com/EarthWorksOrg/rte-rrtmgp.git Tag: v1.7_ew_release_2.2 This is a temporary measure for the functional release of Earthworks. This change fixes the GPU seg fault in RRTMGP because of the missing data directives in the CAM-RRTMGP interface. This change should be removed once we add the data directives to the CAM-RRTMGP interface. --- Externals_CAM.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index 00b46a917f..c972d24550 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -89,8 +89,8 @@ externals = Externals_HCO.cfg [rte-rrtmgp] local_path = src/physics/rrtmgp/ext protocol = git -repo_url = https://github.com/earth-system-radiation/rte-rrtmgp.git -tag = v1.7 +repo_url = https://github.com/EarthWorksOrg/rte-rrtmgp.git +tag = v1.7_ew_release_2.2 required = True [rrtmgp-data] From f87281ee75d19bfcdd139e7724cf9caf55746b5b Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Sun, 2 Jun 2024 07:16:39 -0600 Subject: [PATCH 36/48] Add missing cam_dev files for mpasa60,30,15,120z58 Add files to namelist_defaults_cam.xml that should have been added earlier. The files/resolutions affected are EarthWorks-specific. --- bld/namelist_files/namelist_defaults_cam.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index bce06ce568..9927100b62 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -290,12 +290,16 @@ 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_c210426.nc atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L32_CFSR_c240508.nc - + atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa60_L32_CFSR_c210518.nc +atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa60_L32_CFSR_c240508.nc atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa30_L32_CFSR_230302.nc - +atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa30_L32_CFSR_c240508.nc + atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L58_c230901.nc +atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L58_CFSR_c240508.nc atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa15_L58_c230316.nc +atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa15_L58_CFSR_c240508.nc atm/cam/topo/topo-from-cami_0000-01-01_256x512_L26_c030918.nc From b54af054f628cd66892037f168167348de8d3d1b Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Sun, 2 Jun 2024 08:04:11 -0600 Subject: [PATCH 37/48] Re-add old bnd_topo, key new files by cam_dev To ensure old cases grab the correct ncdata files (with z-values that match), the old bnd_topo files are added back to namelist_defaults_cam.xml. The new files are include the 'phys="cam_dev"' key to ensure they aren't grabbed by accident. --- bld/namelist_files/namelist_defaults_cam.xml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 9927100b62..cd616aad15 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -361,9 +361,15 @@ atm/cam/topo/mpas/mpas_120_nc3000_Co060_Fi001_MulG_PF_Nsw042_c200921.nc atm/cam/topo/mpas/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_noleak_20240507.nc -atm/cam/topo/mpas/mpasa60_gmted2010_modis_bedmachine_nc3000_Laplace0050_noleak_20240507.nc -atm/cam/topo/mpas/mpasa30_gmted2010_modis_bedmachine_nc3000_Laplace0025_noleak_20240507.nc -atm/cam/topo/mpas/mpasa15_gmted2010_modis_bedmachine_nc3000_Laplace0013_noleak_20240507.nc +atm/cam/topo/mpas_60_nc3000_Co030_Fi001_MulG_PF_Nsw021.nc +atm/cam/topo/mpas/mpasa60_gmted2010_modis_bedmachine_nc3000_Laplace0050_noleak_20240507.nc +atm/cam/topo/mpas_30_nc3000_Co015_Fi001_MulG_PF_Nsw011.nc +atm/cam/topo/mpas/mpasa30_gmted2010_modis_bedmachine_nc3000_Laplace0025_noleak_20240507.nc +atm/cam/topo/mpas_15_nc3500_c20230315.nc +atm/cam/topo/mpas/mpasa15_gmted2010_modis_bedmachine_nc3000_Laplace0013_noleak_20240507.nc + +atm/cam/topo/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_20220728.nc +atm/cam/topo/mpas/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_noleak_20240507.nc 0.0D0 From 824a09824648dfb749f829f761677cf3375b0f1d Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Mon, 3 Jun 2024 11:15:35 -0600 Subject: [PATCH 38/48] Use release tag for EWOrg/MPAS-Model (mpasa) external --- Externals_CAM.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index c972d24550..53fea43cf6 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -68,7 +68,7 @@ local_path = src/dynamics/mpas/dycore protocol = git repo_url = https://github.com/EarthWorksOrg/MPAS-Model.git sparse = ../.mpas_sparse_checkout -tag = mpasa-ew2.1.001 +tag = release-mpasa-ew2.2 required = True [geoschem] From 3910f9c4ed14f17fad8011c220ea0127ccc86d58 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Mon, 3 Jun 2024 11:20:39 -0600 Subject: [PATCH 39/48] Use new dev tag for EWOrg/MPAS-Model (mpasa) external --- Externals_CAM.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index 53fea43cf6..08089c7e98 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -68,7 +68,7 @@ local_path = src/dynamics/mpas/dycore protocol = git repo_url = https://github.com/EarthWorksOrg/MPAS-Model.git sparse = ../.mpas_sparse_checkout -tag = release-mpasa-ew2.2 +tag = mpasa-ew2.2.000 required = True [geoschem] From 2ccf6047eb70b11a841a561df8c1aaa1ea9475c2 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Wed, 10 Jul 2024 10:07:48 -0600 Subject: [PATCH 40/48] Workaround issues with MPASv8 ncdata files This commit comments out the real-data initial condition files and corresponding topography files that were added in EWOrg/CAM PR#16. These files cause the chemistry solvers to fail to converge, the dynamics to become unstable (NaNs in the w field), and the runs of these cases to fail. By turning off gravity wave frontogenesis the other, existing MPAS real-data files can be used with the cam_dev physics suite. This commit also modifies logic in build-namelist so that frontogenesis is only turned on with cam_dev if the MPAS-dycore isn't being used. --- bld/build-namelist | 4 ++-- bld/namelist_files/namelist_defaults_cam.xml | 24 ++++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/bld/build-namelist b/bld/build-namelist index 4b8c43929e..dcdf858f81 100755 --- a/bld/build-namelist +++ b/bld/build-namelist @@ -3747,7 +3747,7 @@ if (!$simple_phys) { } if ($waccm_phys or - (!$simple_phys and $cfg->get('nlev') >= 60)) { + (!$simple_phys and $cfg->get('nlev') >= 60) and $dyn !~ /mpas/) { # Spectral gravity waves are part of WACCM physics, and also drive the # QBO in the high vertical resolution configuration. add_default($nl, 'use_gw_front' , 'val'=>'.true.'); @@ -3770,7 +3770,7 @@ if ($waccm_phys or } add_default($nl, 'gw_qbo_hdepth_scaling', 'val'=>$hdepth_scaling); add_default($nl, 'gw_top_taper'); -} elsif ($phys =~ /cam_dev/) { +} elsif ($phys =~ /cam_dev/ and $dyn !~ /mpas/) { # cam_dev settings for nlev<60 (Other cam_dev set above) add_default($nl, 'use_gw_front' , 'val'=>'.true.'); add_default($nl, 'use_gw_convect_dp', 'val'=>'.true.'); diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index cd616aad15..93b7bb1101 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -287,19 +287,19 @@ atm/waccm/ic/mpasa120km.waccm_fulltopo_c220818.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_c210426.nc -atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L32_CFSR_c240508.nc + atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa60_L32_CFSR_c210518.nc -atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa60_L32_CFSR_c240508.nc + atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa30_L32_CFSR_230302.nc -atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa30_L32_CFSR_c240508.nc + atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L58_c230901.nc -atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L58_CFSR_c240508.nc + atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa15_L58_c230316.nc -atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa15_L58_CFSR_c240508.nc + atm/cam/topo/topo-from-cami_0000-01-01_256x512_L26_c030918.nc @@ -357,19 +357,19 @@ atm/cam/topo/se/ne30x8_ARCTICGRIS_nc3000_Co060_Fi001_MulG_PF_RR_Nsw042_c200428.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/mpas_120_nc3000_Co060_Fi001_MulG_PF_Nsw042_c200921.nc -atm/cam/topo/mpas/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_noleak_20240507.nc + atm/cam/topo/mpas_60_nc3000_Co030_Fi001_MulG_PF_Nsw021.nc -atm/cam/topo/mpas/mpasa60_gmted2010_modis_bedmachine_nc3000_Laplace0050_noleak_20240507.nc + atm/cam/topo/mpas_30_nc3000_Co015_Fi001_MulG_PF_Nsw011.nc -atm/cam/topo/mpas/mpasa30_gmted2010_modis_bedmachine_nc3000_Laplace0025_noleak_20240507.nc + atm/cam/topo/mpas_15_nc3500_c20230315.nc -atm/cam/topo/mpas/mpasa15_gmted2010_modis_bedmachine_nc3000_Laplace0013_noleak_20240507.nc + atm/cam/topo/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_20220728.nc -atm/cam/topo/mpas/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_noleak_20240507.nc + 0.0D0 From 8211d6e17060a252e7e0b8b728889e99f7361be2 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Mon, 15 Jul 2024 11:27:46 -0600 Subject: [PATCH 41/48] Revert MPAS external to no OpenACC v7.3 version Due to correctness issues that were introduced when changing to a CAM-compatible OpenACC MPAS version in cam-ew2.0.004, this commit reverts back to the version used in cam-ew2.0.003 and ESCOMP/CAM tag cam6_3_136. --- Externals_CAM.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index 08089c7e98..d57f49a265 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -66,9 +66,9 @@ required = True [mpas] local_path = src/dynamics/mpas/dycore protocol = git -repo_url = https://github.com/EarthWorksOrg/MPAS-Model.git +repo_url = https://github.com/MPAS-Dev/MPAS-Model.git sparse = ../.mpas_sparse_checkout -tag = mpasa-ew2.2.000 +hash = ff76a231 required = True [geoschem] From 603a7f74a74c907448420697a51ff818d3611a04 Mon Sep 17 00:00:00 2001 From: supreethms1809 Date: Mon, 29 Jul 2024 20:13:43 -0600 Subject: [PATCH 42/48] RRTMGP data transfer optimization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without the data directives in the RRTMGP-CAM interface, the variables on the GPUs were created and destroyed multiple times causing a performance penalty. In this commit, structured data regions were added above and below the increment, rte_sw, rte_lw calls. After adding data directives,the nsys profile indicates, only a single data transfer at the begining and the kernel executions. SW: 414.055ms → 77.66ms LW: 443.532ms → 200.637ms --- src/physics/rrtmgp/radiation.F90 | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/physics/rrtmgp/radiation.F90 b/src/physics/rrtmgp/radiation.F90 index 18488bedb7..b6a0e57f74 100644 --- a/src/physics/rrtmgp/radiation.F90 +++ b/src/physics/rrtmgp/radiation.F90 @@ -1174,6 +1174,16 @@ subroutine radiation_tend( & if (nday > 0) then + !! ADDED by SS as part of RRTMGP data optimization + !$acc data copyin(atm_optics_sw, toa_flux, & + !$acc aer_sw, cloud_sw, & + !$acc aer_sw%tau, aer_sw%ssa, aer_sw%g, & + !$acc atm_optics_sw%tau, & + !$acc atm_optics_sw%ssa, atm_optics_sw%g, & + !$acc cloud_sw%tau, cloud_sw%ssa, cloud_sw%g, & + !$acc alb_dir, alb_dif) & + !$acc copy(fswc, fsw) + ! Increment the gas optics (in atm_optics_sw) by the aerosol optics in aer_sw. errmsg = aer_sw%increment(atm_optics_sw) call stop_on_err(errmsg, sub, 'aer_sw%increment') @@ -1193,6 +1203,7 @@ subroutine radiation_tend( & atm_optics_sw, top_at_1, coszrs_day, toa_flux, & alb_dir, alb_dif, fsw) call stop_on_err(errmsg, sub, 'all-sky rte_sw') + !$acc end data end if @@ -1257,6 +1268,18 @@ subroutine radiation_tend( & ! Set LW aerosol optical properties in the aer_lw object. call rrtmgp_set_aer_lw(icall, state, pbuf, aer_lw) + !! Added by SS as part of RRTMGP data optimization + !$acc data copyin(atm_optics_lw, aer_lw, cloud_lw, & + !$acc aer_lw%tau, & + !$acc atm_optics_lw%tau, & + !$acc cloud_lw%tau, & + !$acc sources_lw, & + !$acc sources_lw%lay_source, sources_lw%sfc_source, & + !$acc sources_lw%lev_source_inc, sources_lw%lev_source_dec, & + !$acc sources_lw%sfc_source_Jac, & + !$acc emis_sfc) & + !$acc copy(flwc,flw) + ! Increment the gas optics by the aerosol optics. errmsg = aer_lw%increment(atm_optics_lw) call stop_on_err(errmsg, sub, 'aer_lw%increment') @@ -1272,6 +1295,7 @@ subroutine radiation_tend( & ! Compute all-sky LW fluxes errmsg = rte_lw(atm_optics_lw, top_at_1, sources_lw, emis_sfc, flw) call stop_on_err(errmsg, sub, 'all-sky rte_lw') + !$acc end data ! Transform RRTMGP outputs to CAM outputs and compute heating rates. call set_lw_diags() From 3b3803ec52f1b79324a2da54a67075064eb48de9 Mon Sep 17 00:00:00 2001 From: johnmauff Date: Wed, 31 Jul 2024 17:28:33 -0600 Subject: [PATCH 43/48] Eliminated additional data movement in RRTMGP --- src/physics/rrtmgp/radiation.F90 | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/physics/rrtmgp/radiation.F90 b/src/physics/rrtmgp/radiation.F90 index b6a0e57f74..ed330240ce 100644 --- a/src/physics/rrtmgp/radiation.F90 +++ b/src/physics/rrtmgp/radiation.F90 @@ -1155,9 +1155,13 @@ subroutine radiation_tend( & ! Compute the gas optics (stored in atm_optics_sw). ! toa_flux is the reference solar source from RRTMGP data. + !$acc data copyin(kdist_sw,pmid_day,pint_day,t_day,gas_concs_sw) & + !$acc copy(atm_optics_sw) & + !$acc copyout(toa_flux) errmsg = kdist_sw%gas_optics( & pmid_day, pint_day, t_day, gas_concs_sw, atm_optics_sw, & toa_flux) + !$acc end data call stop_on_err(errmsg, sub, 'kdist_sw%gas_optics') ! Scale the solar source @@ -1181,8 +1185,9 @@ subroutine radiation_tend( & !$acc atm_optics_sw%tau, & !$acc atm_optics_sw%ssa, atm_optics_sw%g, & !$acc cloud_sw%tau, cloud_sw%ssa, cloud_sw%g, & - !$acc alb_dir, alb_dif) & - !$acc copy(fswc, fsw) + !$acc alb_dir, alb_dif,coszrs_day) & + !$acc copy(fswc, fswc%flux_net,fswc%flux_up,fswc%flux_dn, & + !$acc fsw, fsw%flux_net, fsw%flux_up, fsw%flux_dn) ! Increment the gas optics (in atm_optics_sw) by the aerosol optics in aer_sw. errmsg = aer_sw%increment(atm_optics_sw) @@ -1260,10 +1265,18 @@ subroutine radiation_tend( & call rrtmgp_set_gases_lw(icall, state, pbuf, nlay, gas_concs_lw) ! Compute the gas optics and Planck sources. + !$acc data copyin(kdist_lw,pmid_rad,pint_rad,t_rad,t_sfc, & + !$acc gas_concs_lw) & + !$acc copy(atm_optics_lw, & + !$acc atm_optics_lw%tau, sources_lw, & + !$acc sources_lw%lay_source, sources_lw%sfc_source, & + !$acc sources_lw%lev_source_inc, sources_lw%lev_source_dec, & + !$acc sources_lw%sfc_source_jac) errmsg = kdist_lw%gas_optics( & pmid_rad, pint_rad, t_rad, t_sfc, gas_concs_lw, & atm_optics_lw, sources_lw) call stop_on_err(errmsg, sub, 'kdist_lw%gas_optics') + !$acc end data ! Set LW aerosol optical properties in the aer_lw object. call rrtmgp_set_aer_lw(icall, state, pbuf, aer_lw) @@ -1278,7 +1291,9 @@ subroutine radiation_tend( & !$acc sources_lw%lev_source_inc, sources_lw%lev_source_dec, & !$acc sources_lw%sfc_source_Jac, & !$acc emis_sfc) & - !$acc copy(flwc,flw) + !$acc copy(flwc, flwc%flux_net,flwc%flux_up,flwc%flux_dn, & + !$acc flw, flw%flux_net, flw%flux_up, flw%flux_dn) + ! Increment the gas optics by the aerosol optics. errmsg = aer_lw%increment(atm_optics_lw) From 044002fb8fb843f16d8195c067491fea7e840cef Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Thu, 1 Aug 2024 13:30:35 -0600 Subject: [PATCH 44/48] Bring in changes from EarthWorksOrg/rte-rrtmgp PR#1 These changes include removing a (now unneeded) temp variable and some unnecessary OpenACC copyout directives. --- Externals_CAM.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg index d57f49a265..736dcee274 100644 --- a/Externals_CAM.cfg +++ b/Externals_CAM.cfg @@ -90,7 +90,7 @@ externals = Externals_HCO.cfg local_path = src/physics/rrtmgp/ext protocol = git repo_url = https://github.com/EarthWorksOrg/rte-rrtmgp.git -tag = v1.7_ew_release_2.2 +tag = v1.7_ew_release_2.3 required = True [rrtmgp-data] From d1e19d4ef7d72b34cdf20c834147abc7690d6ff4 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Tue, 20 Aug 2024 17:14:12 -0600 Subject: [PATCH 45/48] Keep v7.3 MPAS-A for EarthWorks This is to ensure there's no conflicts with other MPAS components (esp. in the framework) and to allow for easier integration when MPAS-A OpenACC is added again. --- .gitmodules | 2 +- src/dynamics/mpas/dycore | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 77e9c2fc56..a0cb5ea697 100644 --- a/.gitmodules +++ b/.gitmodules @@ -80,7 +80,7 @@ url = https://github.com/MPAS-Dev/MPAS-Model.git fxrequired = AlwaysRequired fxsparse = ../.mpas_sparse_checkout - fxtag = b8c33daa + fxtag = ff76a231 fxDONOTUSEurl = https://github.com/MPAS-Dev/MPAS-Model.git [submodule "cosp2"] diff --git a/src/dynamics/mpas/dycore b/src/dynamics/mpas/dycore index b8c33daa4b..ff76a231dd 160000 --- a/src/dynamics/mpas/dycore +++ b/src/dynamics/mpas/dycore @@ -1 +1 @@ -Subproject commit b8c33daa4b124f116b0ba1b1386968c4c15b42e4 +Subproject commit ff76a231ddf6bfd3bdb878afb02821c70ba1a856 From a79d38f87b399515a6a560f6682a98b2c99a83b2 Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Tue, 27 Aug 2024 15:38:42 -0600 Subject: [PATCH 46/48] Switch MPAS submodule to EarthWorksOrg non-OpenACC version Allows for MPAS development that isn't intended to be shared with upstream. --- .gitmodules | 4 ++-- src/dynamics/mpas/dycore | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 968901e796..4e12ce26dc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -77,10 +77,10 @@ [submodule "mpas"] path = src/dynamics/mpas/dycore - url = https://github.com/MPAS-Dev/MPAS-Model.git + url = https://github.com/EarthWorksOrg/MPAS-Model.git fxrequired = AlwaysRequired fxsparse = ../.mpas_sparse_checkout - fxtag = ff76a231 + fxtag = mpas-ew2.3.001 fxDONOTUSEurl = https://github.com/MPAS-Dev/MPAS-Model.git [submodule "cosp2"] diff --git a/src/dynamics/mpas/dycore b/src/dynamics/mpas/dycore index ff76a231dd..4319419595 160000 --- a/src/dynamics/mpas/dycore +++ b/src/dynamics/mpas/dycore @@ -1 +1 @@ -Subproject commit ff76a231ddf6bfd3bdb878afb02821c70ba1a856 +Subproject commit 4319419595f7891b57f37275535282d935f41f05 From a14ab8837c13493bd90accbe81f91fc38e47d26c Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Wed, 4 Sep 2024 14:09:10 -0600 Subject: [PATCH 47/48] Add a usermod namelist for performance CLUBB options These options can be enabled by adding: --user-mods-dirs {path_to_cam}/cime_config/usermods_dirs/eworg_opt_clubb when using the create_newcase and create_test scripts. This could be applied to certain compsets or configurations by editing the CAM_USER_MODS logic in cime_config/config_component.xml --- cime_config/usermods_dirs/eworg_opt_clubb/user_nl_cam | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 cime_config/usermods_dirs/eworg_opt_clubb/user_nl_cam diff --git a/cime_config/usermods_dirs/eworg_opt_clubb/user_nl_cam b/cime_config/usermods_dirs/eworg_opt_clubb/user_nl_cam new file mode 100644 index 0000000000..96bd29255e --- /dev/null +++ b/cime_config/usermods_dirs/eworg_opt_clubb/user_nl_cam @@ -0,0 +1,3 @@ +clubb_l_diag_lscale_from_tau = .true. +clubb_penta_solve_method = 2 +clubb_tridiag_solve_method = 2 From 536f4f917c30c584838f71b083b9fd86132695fd Mon Sep 17 00:00:00 2001 From: "G. Dylan Dickerson" Date: Thu, 5 Sep 2024 09:53:14 -0600 Subject: [PATCH 48/48] Remove fleximod_test.yaml GitHub workflow from EarthWorksOrg/CAM This test is useful for upstream, but not so much for EarthWorks right now. This commit partially reverts commit '376de0ed4' which is part of ESCOMP/CAM #1107 --- .github/workflows/fleximod_test.yaml | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 .github/workflows/fleximod_test.yaml diff --git a/.github/workflows/fleximod_test.yaml b/.github/workflows/fleximod_test.yaml deleted file mode 100644 index 8d4203e1d3..0000000000 --- a/.github/workflows/fleximod_test.yaml +++ /dev/null @@ -1,21 +0,0 @@ -on: pull_request - -jobs: - fleximod-test: - runs-on: ubuntu-latest - strategy: - matrix: - # oldest supported and latest supported - python-version: ["3.7", "3.x"] - steps: - - id: checkout-CESM - uses: actions/checkout@v4 - - id: run-fleximod - run: | - $GITHUB_WORKSPACE/bin/git-fleximod update - $GITHUB_WORKSPACE/bin/git-fleximod test -# - name: Setup tmate session -# if: ${{ failure() }} -# uses: mxschmitt/action-tmate@v3 - -