From bb419bcc432b2350dbb24a901a6462f380065e86 Mon Sep 17 00:00:00 2001 From: ckoven Date: Wed, 5 May 2021 14:37:35 -0600 Subject: [PATCH 01/54] fixed metadata problem with cohort age history metadata --- src/main/histFileMod.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/histFileMod.F90 b/src/main/histFileMod.F90 index 5c43e1540d..3610a7b35d 100644 --- a/src/main/histFileMod.F90 +++ b/src/main/histFileMod.F90 @@ -2785,7 +2785,7 @@ subroutine htape_timeconst(t, mode) call ncd_defvar(varname='fates_scmap_levscpf',xtype=ncd_int, dim1name='fates_levscpf', & long_name='FATES size index of the combined pft-size class dimension', units='-', ncid=nfid(t)) call ncd_defvar(varname='fates_levcacls', xtype=tape(t)%ncprec, dim1name='fates_levcacls', & - long_name='FATES cohort age class lower bound', units='years', ncid=nfid(t)) + long_name='FATES cohort age class lower bound', units='-', ncid=nfid(t)) call ncd_defvar(varname='fates_pftmap_levcapf',xtype=ncd_int, dim1name='fates_levcapf', & long_name='FATES pft index of the combined pft-cohort age class dimension', units='-', ncid=nfid(t)) call ncd_defvar(varname='fates_camap_levcapf',xtype=ncd_int, dim1name='fates_levcapf', & From aea36ab36397aa54407a791bd172f2b51c54a480 Mon Sep 17 00:00:00 2001 From: ckoven Date: Wed, 2 Jun 2021 17:41:33 -0600 Subject: [PATCH 02/54] changes to allow specification of variable bin widths --- src/main/histFileMod.F90 | 9 ++++++++- src/utils/clmfates_interfaceMod.F90 | 1 - 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/histFileMod.F90 b/src/main/histFileMod.F90 index d30a0aec65..c9552f69de 100644 --- a/src/main/histFileMod.F90 +++ b/src/main/histFileMod.F90 @@ -2262,6 +2262,7 @@ subroutine htape_create (t, histrest) call ncd_defdim(lnfid, 'fates_levscpf', nlevsclass*numpft_fates, dimid) call ncd_defdim(lnfid, 'fates_levcapf', nlevcoage*numpft_fates, dimid) call ncd_defdim(lnfid, 'fates_levcan', nclmax, dimid) + call ncd_defdim(lnfid, 'fates_levleaf', nlevleaf, dimid) call ncd_defdim(lnfid, 'fates_levcnlf', nlevleaf * nclmax, dimid) call ncd_defdim(lnfid, 'fates_levcnlfpf', nlevleaf * nclmax * numpft_fates, dimid) call ncd_defdim(lnfid, 'fates_levelem', num_elements_fates, dimid) @@ -2708,6 +2709,7 @@ subroutine htape_timeconst(t, mode) use FatesInterfaceTypesMod, only : fates_hdim_levfuel use FatesInterfaceTypesMod, only : fates_hdim_levcwdsc use FatesInterfaceTypesMod, only : fates_hdim_levcan + use FatesInterfaceTypesMod, only : fates_hdim_levleaf use FatesInterfaceTypesMod, only : fates_hdim_canmap_levcnlf use FatesInterfaceTypesMod, only : fates_hdim_lfmap_levcnlf use FatesInterfaceTypesMod, only : fates_hdim_canmap_levcnlfpf @@ -2792,7 +2794,7 @@ subroutine htape_timeconst(t, mode) call ncd_defvar(varname='fates_scmap_levscpf',xtype=ncd_int, dim1name='fates_levscpf', & long_name='FATES size index of the combined pft-size class dimension', units='-', ncid=nfid(t)) call ncd_defvar(varname='fates_levcacls', xtype=tape(t)%ncprec, dim1name='fates_levcacls', & - long_name='FATES cohort age class lower bound', units='-', ncid=nfid(t)) + long_name='FATES cohort age class lower bound (yr)', units='-', ncid=nfid(t)) call ncd_defvar(varname='fates_pftmap_levcapf',xtype=ncd_int, dim1name='fates_levcapf', & long_name='FATES pft index of the combined pft-cohort age class dimension', units='-', ncid=nfid(t)) call ncd_defvar(varname='fates_camap_levcapf',xtype=ncd_int, dim1name='fates_levcapf', & @@ -2809,6 +2811,8 @@ subroutine htape_timeconst(t, mode) long_name='FATES cwd size class', ncid=nfid(t)) call ncd_defvar(varname='fates_levcan',xtype=ncd_int, dim1name='fates_levcan', & long_name='FATES canopy level', ncid=nfid(t)) + call ncd_defvar(varname='fates_levleaf',xtype=ncd_int, dim1name='fates_levleaf', & + long_name='FATES leaf+stem level', units='VAI', ncid=nfid(t)) call ncd_defvar(varname='fates_canmap_levcnlf',xtype=ncd_int, dim1name='fates_levcnlf', & long_name='FATES canopy level of combined canopy-leaf dimension', ncid=nfid(t)) call ncd_defvar(varname='fates_lfmap_levcnlf',xtype=ncd_int, dim1name='fates_levcnlf', & @@ -2865,6 +2869,7 @@ subroutine htape_timeconst(t, mode) call ncd_io(varname='fates_levfuel',data=fates_hdim_levfuel, ncid=nfid(t), flag='write') call ncd_io(varname='fates_levcwdsc',data=fates_hdim_levcwdsc, ncid=nfid(t), flag='write') call ncd_io(varname='fates_levcan',data=fates_hdim_levcan, ncid=nfid(t), flag='write') + call ncd_io(varname='fates_levleaf',data=fates_hdim_levleaf, ncid=nfid(t), flag='write') call ncd_io(varname='fates_canmap_levcnlf',data=fates_hdim_canmap_levcnlf, ncid=nfid(t), flag='write') call ncd_io(varname='fates_lfmap_levcnlf',data=fates_hdim_lfmap_levcnlf, ncid=nfid(t), flag='write') call ncd_io(varname='fates_canmap_levcnlfpf',data=fates_hdim_canmap_levcnlfpf, ncid=nfid(t), flag='write') @@ -5139,6 +5144,8 @@ subroutine hist_addfld2d (fname, type2d, units, avgflag, long_name, type1d_out, num2d = nlevage*numpft_fates case ('fates_levcan') num2d = nclmax + case ('fates_levleaf') + num2d = nlevleaf case ('fates_levcnlf') num2d = nlevleaf * nclmax case ('fates_levcnlfpf') diff --git a/src/utils/clmfates_interfaceMod.F90 b/src/utils/clmfates_interfaceMod.F90 index eeadd41f49..6c1edfbcf6 100644 --- a/src/utils/clmfates_interfaceMod.F90 +++ b/src/utils/clmfates_interfaceMod.F90 @@ -1913,7 +1913,6 @@ subroutine wrap_photosynthesis(this, nc, bounds, fn, filterp, & use pftconMod , only : pftcon use PatchType , only : patch use quadraticMod , only : quadratic - use EDTypesMod , only : dinc_ed use EDtypesMod , only : ed_patch_type, ed_cohort_type, ed_site_type ! From 54071c5d15843d7c695bfd68614bd5f2ff6ddd08 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 28 Sep 2021 12:10:25 -0600 Subject: [PATCH 03/54] Update externals to those in cesm2_3_alpha06a --- Externals.cfg | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index 0c149001f1..3723b65072 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -8,7 +8,7 @@ required = True local_path = components/cism protocol = git repo_url = https://github.com/ESCOMP/CISM-wrapper -tag = cismwrap_2_1_87 +tag = cismwrap_2_1_89 externals = Externals_CISM.cfg required = True @@ -37,18 +37,18 @@ required = True local_path = cime protocol = git repo_url = https://github.com/ESMCI/cime -tag = cime6.0.4 +tag = cime6.0.9 required = True [cmeps] -tag = cmeps0.13.23 +tag = cmeps0.13.30 protocol = git repo_url = https://github.com/ESCOMP/CMEPS.git local_path = components/cmeps required = True [cdeps] -tag = cdeps0.12.19 +tag = cdeps0.12.26 protocol = git repo_url = https://github.com/ESCOMP/CDEPS.git local_path = components/cdeps @@ -56,14 +56,14 @@ externals = Externals_CDEPS.cfg required = True [cpl7] -tag = cpl7.0.3 +tag = cpl7.0.5 protocol = git repo_url = https://github.com/ESCOMP/CESM_CPL7andDataComps local_path = components/cpl7 required = True [share] -tag = share1.0.2 +tag = share1.0.7 protocol = git repo_url = https://github.com/ESCOMP/CESM_share local_path = share From cc16efa4db4bc670c62759a8e94a1c5104ae1070 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 28 Sep 2021 12:13:46 -0600 Subject: [PATCH 04/54] Change nuopc tests in test list to mct, other tests will all be default nuopc now --- cime_config/testdefs/testlist_clm.xml | 58 +++++++++++++-------------- 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 3630c098a1..d927c00e46 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -130,14 +130,14 @@ - + - + @@ -165,13 +165,13 @@ - + - + @@ -200,17 +200,13 @@ - - + - + @@ -494,13 +490,13 @@ - + - + @@ -608,14 +604,14 @@ - + - + @@ -1005,12 +1001,12 @@ - + - + @@ -1247,13 +1243,13 @@ - + - + @@ -1508,14 +1504,14 @@ - + - + @@ -1544,13 +1540,13 @@ - + - + @@ -1591,14 +1587,14 @@ - + - + @@ -1620,7 +1616,7 @@ - + @@ -1630,7 +1626,7 @@ - + @@ -1641,14 +1637,14 @@ - + - + @@ -1988,13 +1984,13 @@ - + - + @@ -2504,7 +2500,7 @@ - + From 0091a9ca5bbe73777cf520c35330b9a0af5d12ab Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 28 Sep 2021 12:20:06 -0600 Subject: [PATCH 05/54] Change default driver to nuopc now for build-namelist --- bld/CLMBuildNamelist.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index 3b169159b8..308fef04c8 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -253,7 +253,7 @@ sub process_commandline { co2_type => undef, co2_ppmv => undef, clm_demand => "null", - driver => "mct", + driver => "nuopc", help => 0, glc_nec => "default", glc_use_antarctica => 0, From 3b675b0c4ad628fff32a9cf43464318802cfbdac Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 28 Sep 2021 12:22:14 -0600 Subject: [PATCH 06/54] Change -N2 to -C2 since nuopc is the default now --- cime_config/testdefs/testlist_clm.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index d927c00e46..f5f76995a1 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -250,7 +250,7 @@ - + @@ -1570,7 +1570,7 @@ - + @@ -1578,7 +1578,7 @@ - + From e4fa19141ee620ac8fa3056a5ee8d7a832f6c0b3 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 28 Sep 2021 12:32:58 -0600 Subject: [PATCH 07/54] Only set lnd_frac for MCT specific tests --- bld/unit_testers/build-namelist_test.pl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bld/unit_testers/build-namelist_test.pl b/bld/unit_testers/build-namelist_test.pl index 21b7ccf4af..2bc5bd080f 100755 --- a/bld/unit_testers/build-namelist_test.pl +++ b/bld/unit_testers/build-namelist_test.pl @@ -190,7 +190,7 @@ sub cat_and_create_namelistinfile { my $DOMFILE = "$inputdata_rootdir/atm/datm7/domain.lnd.T31_gx3v7.090928.nc"; my $real_par_file = "user_nl_ctsm_real_parameters"; -my $bldnml = "../build-namelist -verbose -csmdata $inputdata_rootdir -lnd_frac $DOMFILE -configuration clm -structure standard -glc_nec 10 -no-note -output_reals $real_par_file"; +my $bldnml = "../build-namelist -verbose -csmdata $inputdata_rootdir -configuration clm -structure standard -glc_nec 10 -no-note -output_reals $real_par_file"; if ( $opts{'test'} ) { $bldnml .= " -test"; } @@ -335,8 +335,8 @@ sub cat_and_create_namelistinfile { my $file = $startfile; &make_env_run(); my $base_options = "-res 0.9x1.25 -envxml_dir . -driver $driver"; - if ( $driver eq "nuopc" ) { - $base_options = "$base_options -lnd_frac UNSET"; + if ( $driver eq "mct" ) { + $base_options = "$base_options -lnd_frac $DOMFILE"; } eval{ system( "$bldnml $base_options $options > $tempfile 2>&1 " ); }; is( $@, '', "options: $base_options $options" ); From d7c120d5da2cbe2fb7fe2872dad974425cd3bce4 Mon Sep 17 00:00:00 2001 From: Bill Sacks Date: Tue, 5 Oct 2021 11:31:36 -0600 Subject: [PATCH 08/54] Add a compset alias for running Antarctica & Greenland together --- cime_config/config_compsets.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index cf16061eff..1b55fb6edc 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -523,6 +523,11 @@ 1850_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_CISM2%AIS-EVOLVE_SWAV + + I1850Clm50SpGag + 1850_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_CISM2%AIS-EVOLVE%GRIS-EVOLVE_SWAV + + IHistClm50SpG HIST_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_CISM2%GRIS-EVOLVE_SWAV From e6d715b84cffaaf48962e38783664c2d6b3fc680 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 6 Oct 2021 16:07:13 -0600 Subject: [PATCH 09/54] Update cism to version where nuopc is the default --- Externals.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals.cfg b/Externals.cfg index 3723b65072..68afbbc9c2 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -8,7 +8,7 @@ required = True local_path = components/cism protocol = git repo_url = https://github.com/ESCOMP/CISM-wrapper -tag = cismwrap_2_1_89 +tag = cismwrap_2_1_92 externals = Externals_CISM.cfg required = True From 18c75175ada1881705c9d45e6f5b6e9028dfdc94 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 6 Oct 2021 16:38:46 -0600 Subject: [PATCH 10/54] Remove PTCLM because it doesn't work with the NUOPC driver --- Externals_CLM.cfg | 7 ------- 1 file changed, 7 deletions(-) diff --git a/Externals_CLM.cfg b/Externals_CLM.cfg index 0c6bcb17b3..1fa038e303 100644 --- a/Externals_CLM.cfg +++ b/Externals_CLM.cfg @@ -5,13 +5,6 @@ repo_url = https://github.com/NGEET/fates tag = sci.1.47.0_api.17.0.0 required = True -[PTCLM] -local_path = tools/site_and_regional/PTCLM -protocol = git -repo_url = https://github.com/ESCOMP/PTCLM -tag = PTCLM2_20210810 -required = True - [externals_description] schema_version = 1.0.0 From 3c2796757d0a4dcec7fb39497961a9cae73a7428 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 6 Oct 2021 16:44:53 -0600 Subject: [PATCH 11/54] Some updates to the README documentation in responce to the split of cime out as well as the update to NUOPC as the default --- README | 30 +++++++++++++----------------- README.CHECKLIST.new_case | 2 +- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/README b/README index 49ea1aa1ed..4517759940 100644 --- a/README +++ b/README @@ -2,12 +2,12 @@ $CTSMROOT/README 06/08/2018 Community Terrestrial Systems Model (CTSM) science version 5.1 series -- source code, tools, offline-build and test scripts. This gives you everything you need -to run CTSM with CESM with datm8 to provide CRU NCEP or GSWP3 forcing data in +to run CTSM with CESM with the CMEPS driver and CDEPS data models to provide CRU NCEP or GSWP3 forcing data in place of a modeled atmosphere. For lists of current bugs (issues) and current development see the CTSM GitHub page: -https://github.com/ESCOMP/ctsm +https://github.com/ESCOMP/CTSM IMPORTANT NOTE ON CESM CHECKOUT VERSUS A CTSM CHECKOUT: @@ -28,29 +28,25 @@ General directory structure ($CTSMROOT): doc --------------- Documentation of CTSM. bld --------------- Template, configure and build-namelist scripts for clm. src --------------- CTSM Source code. +lilac ------------- Lightweight Infrastructure for Land-Atmosphere Coupling (for coupling to a host atmosphere model) test -------------- CTSM Testing scripts for CTSM offline tools. tools ------------- CTSM Offline tools to prepare input datasets and process output. cime_config ------- Configuration files of cime for compsets and CTSM settings manage_externals -- Script to manage the external source directories -python ------------ Some python modules mostly for use by run_sys_tests (but could be used elsewhere) +python ------------ Some python modules mostly for use by run_sys_tests (but could be used elsewhere l Directory structure only for a CTSM checkout: components -------- Other active sub-components needed for CTSM to run (river routing and land-ice models) +libraries --------- CESM libraries: MCT and PIO +share ------------- CESM shared code cime/scripts --------------- cesm/cime driver scripts -cime/src/drivers/mct/main ----------- CESM top level driver source code. -cime/src/drivers/mct/shr ------------ CESM top level driver shared code. -cime/src/components/data_comps/datm - CESM Data model version 8 source code. -cime/src/components/stub_comps/sice - CESM stub sea-ice model source code. -cime/src/components/stub_comps/socn - CESM stub ocean model source code. -cime/src/components/stub_comps/sglc - CESM stub glacier model source code. -cime/src/externals ------------------ CESM external utility codes - (Model Coupling Toolkit (MCT) - (Earth System Model Framework) - (timing -- code timing utility) - (pio -- Parallel Input/Output) +components/cmeps -------------------- CESM top level driver (for NUOPC driver) source code. +components/cdeps -------------------- CESM top level data model shared code (for NUOPC driver). +components/cpl7 --------------------- CESM top level driver for the MCT driver +cime/src/externals ------------------ CESM external utility codes (genf90) components/cism --------------------- CESM Community land Ice Sheet Model. components/mosart ------------------- Model for Scale Adaptive River Transport components/rtm ---------------------- CESM River Transport Model. @@ -92,7 +88,7 @@ run_sys_tests --------------- Python script to send the standard CTSM testing of parse_cime.cs.status -------- Script to parse test status files cs.status.* created by create_test (can be used along with run_sys_tests) -doc/Quickstart.GUIDE -------- Quick guide to using cpl7 scripts. +doc/Quickstart.GUIDE -------- Quick guide to using NUOPC scripts. doc/IMPORTANT_NOTES --------- Some important notes about this version of clm, configuration modes and namelist items that are not validated or functional. @@ -149,7 +145,7 @@ Source code directory structure: src/biogeochem ---- Biogeochemisty src/main ---------- Main control and high level code -src/cpl ----------- Land model high level MCT and ESMF drivers +src/cpl ----------- Land model high level caps for NUOPC driver (and MCT and LILAC) src/biogeophys ---- Biogeophysics (Hydrology) src/dyn_subgrid --- Dynamic land unit change src/init_interp --- Online interpolation @@ -161,7 +157,7 @@ src/unit_test_shr - Unit test shared modules for unit testing src/unit_test_stubs Unit test stubs that replicate CTSM code simpler ============================================================================================= - QUICKSTART: using the CPL7 scripts + QUICKSTART: using the NUOPC driver scripts ============================================================================================= cd $CIMEROOT/scripts diff --git a/README.CHECKLIST.new_case b/README.CHECKLIST.new_case index f3538c6fc9..d3b37bc7c3 100644 --- a/README.CHECKLIST.new_case +++ b/README.CHECKLIST.new_case @@ -21,7 +21,7 @@ General Checklist to always do: - Make sure the LND_TUNING_MODE is correct (./xmlquery LND_TUNING_MODE) - For an "I compset" make sure you are running over the right forcing years - (usually ./xmlquery -p DATM_CLMNCEP_YR) + (usually ./xmlquery -p DATM_YR) - First and align year for streams should be the start year of a historical simulation (./xmlquery RUN_STARTDATE) (grep stream_year_first CaseDocs/lnd_in; grep model_year_align CaseDocs/lnd_in) From 74226e12cdcfe18724073f3eb89f9b8a634a0b94 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 6 Oct 2021 17:01:15 -0600 Subject: [PATCH 12/54] Add some more notes about the NUOPC driver --- README | 12 +++++++++--- doc/Quickstart.GUIDE | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/README b/README index 4517759940..59c27df985 100644 --- a/README +++ b/README @@ -5,6 +5,12 @@ offline-build and test scripts. This gives you everything you need to run CTSM with CESM with the CMEPS driver and CDEPS data models to provide CRU NCEP or GSWP3 forcing data in place of a modeled atmosphere. +CMEPS is the Community Mediator for Earth Prediction Systems. And CDEPS is the +Community Data Models for Earth Prediction System. They are both NUOPC based models +used to drive the CESM (Community Earth System Model) of which CTSM is a component of. +NUOPC is the National Unified Operational Prediction Capability a standard way of building +coupled model systems. The NUOPC layer is based on the Earth System Modeling Framework (ESMF). + For lists of current bugs (issues) and current development see the CTSM GitHub page: https://github.com/ESCOMP/CTSM @@ -38,18 +44,18 @@ python ------------ Some python modules mostly for use by run_sys_tests (but cou Directory structure only for a CTSM checkout: components -------- Other active sub-components needed for CTSM to run (river routing and land-ice models) -libraries --------- CESM libraries: MCT and PIO +libraries --------- CESM libraries: MCT (Model Coupling Toolkit) and PIO share ------------- CESM shared code cime/scripts --------------- cesm/cime driver scripts -components/cmeps -------------------- CESM top level driver (for NUOPC driver) source code. +components/cmeps -------------------- CESM top level driver (for NUOPC driver [which is the default]) source code. components/cdeps -------------------- CESM top level data model shared code (for NUOPC driver). -components/cpl7 --------------------- CESM top level driver for the MCT driver cime/src/externals ------------------ CESM external utility codes (genf90) components/cism --------------------- CESM Community land Ice Sheet Model. components/mosart ------------------- Model for Scale Adaptive River Transport components/rtm ---------------------- CESM River Transport Model. +components/cpl7 --------------------- CESM top level driver for MCT driver (being deprecated) Top level documentation ($CTSMROOT): diff --git a/doc/Quickstart.GUIDE b/doc/Quickstart.GUIDE index 86550653fd..f574d1184f 100644 --- a/doc/Quickstart.GUIDE +++ b/doc/Quickstart.GUIDE @@ -1,6 +1,6 @@ $CTSMROOT/doc/Quickstart.GUIDE Jun/08/2018 - Quick-Start to Using cpl7 Scripts for clm5_0 + Quick-Start to Using NUOPC Scripts for clm5_0 ============================================ Assumptions: You want to use cheyenne with clm5_0 BGC @@ -39,7 +39,7 @@ Process: Information on Compsets: - "I" compsets are the ones with clm and datm7 without ice and ocean. + "I" compsets are the ones with clm and NUOPC driver and CDEPS data models without ice and ocean. Most of the "I" compsets for CLM5.0 use the GSWP3v1 data with solar following the cosine of solar zenith angle, precipitation constant, and other variables linear interpolated in time (and with appropriate time-stamps on From 067dc88b511adbd86bb4acc53e4a7641080075e7 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 6 Oct 2021 17:06:00 -0600 Subject: [PATCH 13/54] Point to some web-sites about the CMEPS driver --- README | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README b/README index 59c27df985..7e81aecd9a 100644 --- a/README +++ b/README @@ -15,6 +15,12 @@ For lists of current bugs (issues) and current development see the CTSM GitHub p https://github.com/ESCOMP/CTSM +INFORMATION ON THE CMEPS DRIVER: + +https://escomp.github.io/CMEPS + +https://earthsystemmodeling.org/nuopc/ + IMPORTANT NOTE ON CESM CHECKOUT VERSUS A CTSM CHECKOUT: If this is the top level directory from making a clone of CTSM the From 91ae97c743dc1a04fca3cdcea0dc31341548edb9 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 6 Oct 2021 17:56:26 -0600 Subject: [PATCH 14/54] Add a new README file to give a few hints about using the new NUOPC driver --- README.NUOPC_driver | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 README.NUOPC_driver diff --git a/README.NUOPC_driver b/README.NUOPC_driver new file mode 100644 index 0000000000..13c66c1a1e --- /dev/null +++ b/README.NUOPC_driver @@ -0,0 +1,48 @@ +$CTSMROOT/README.NUOPC_driver + +CTSM now by default uses the NUOPC based CMEPS driver! + + +What's new? + +MESH Files: +Mesh files to describe grids are new in both the driver namelist and for example in any +streams files. +Full ESMF Library is used: +The full ESMF Library is used and required to be built in order to run the model. +Single Point cases: +Single point cases can now set their location using PTS_LAT and PTS_LON. + +What's removed? + +Domain files are no longer used. And mapping for regriding is created on the fly +rather than using fixed mapping files. + +What files change? + +rpointer.drv becomes rpointer.cpl +cpl.log.* files get's split into med.log.* and drv.log.* +user_datm.streams.txt.* file changes goes into the user_nl_datm_streams files +datm.streams.txt.* files are all in datm.streams.xml + +What XML variables change in your case? + +DATM_CLMNCEP_YR_* variables change to DATM_YR_* + +New obscure options: + +ESMF_AWARE_THREADING --- ESMF is aware of threading +CREATE_ESMF_PET_FILES -- Create output log files from ESMF for each Processor (PET) +ESMF_VERBOSITY_LEVEL --- Verbosity level for ESMF logging +ESMF_PROFILING_LEVEL --- Verbosity level for ESMF profiling + +nuopc.runseq is a text file that determines how the driver operates. + + +What if I want to use the previous MCT driver? + +The MCT driver will be available for sometime going forward, but +new development won't go into it, and it will eventually be removed. +But, if you have to... +Use the "--driver mct" command line option to create_newcase +Or set ./xmlchange COMP_INTERFACE=mct From 90fca988e6c9cbe7f983060f7815c606eb606ffa Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 8 Oct 2021 14:33:00 -0600 Subject: [PATCH 15/54] Fix so can work with grids with a underscore in them like 1x1_brazil --- bld/namelist_files/createMapEntry.pl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bld/namelist_files/createMapEntry.pl b/bld/namelist_files/createMapEntry.pl index 5ba9a2030a..561683bb05 100755 --- a/bld/namelist_files/createMapEntry.pl +++ b/bld/namelist_files/createMapEntry.pl @@ -55,12 +55,13 @@ foreach my $foo ( @list ) { next if ($foo =~ m/^\./); #~# skip anything in the directory with a leading or stand alone 'dot' + $foo =~ s/$grid/RES/; # Replace grid trying to match with RES (so underscores in the grid name don't mess up the matching) my @tokens = split(/_/, $foo); #~# split foo name by the underscore #~# write out lines for namelist_defaults_ctsm.xml nomask" files my $from_mask = $tokens[2]; if ( $from_mask =~ /nomask/ ) { - if ( $tokens[5] eq "nomask" && $tokens[4] eq $grid ) { - print "$partialPath/$foo\n"; } } From 98e74a6d3037f98e98207507992c078aec755b89 Mon Sep 17 00:00:00 2001 From: Bill Sacks Date: Mon, 11 Oct 2021 14:25:41 -0600 Subject: [PATCH 16/54] For testing: add a compset with Greenland & Antarctica but SROF --- cime_config/config_compsets.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index 1b55fb6edc..a8470d3785 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -528,6 +528,12 @@ 1850_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_CISM2%AIS-EVOLVE%GRIS-EVOLVE_SWAV + + + I1850Clm50SpRsGag + 1850_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_SROF_CISM2%AIS-EVOLVE%GRIS-EVOLVE_SWAV + + IHistClm50SpG HIST_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_CISM2%GRIS-EVOLVE_SWAV From fc4965ebce2767ad31be57088cd3a3ec9e8cadd7 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 18 Oct 2021 12:45:05 -0600 Subject: [PATCH 17/54] Some adjustments --- README.NUOPC_driver | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.NUOPC_driver b/README.NUOPC_driver index 13c66c1a1e..9a48631239 100644 --- a/README.NUOPC_driver +++ b/README.NUOPC_driver @@ -23,7 +23,7 @@ What files change? rpointer.drv becomes rpointer.cpl cpl.log.* files get's split into med.log.* and drv.log.* user_datm.streams.txt.* file changes goes into the user_nl_datm_streams files -datm.streams.txt.* files are all in datm.streams.xml +datm.streams.txt.* files are all in one file called datm.streams.xml What XML variables change in your case? @@ -36,7 +36,8 @@ CREATE_ESMF_PET_FILES -- Create output log files from ESMF for each Processor (P ESMF_VERBOSITY_LEVEL --- Verbosity level for ESMF logging ESMF_PROFILING_LEVEL --- Verbosity level for ESMF profiling -nuopc.runseq is a text file that determines how the driver operates. +nuopc.runseq is a text file that determines how the driver operates. You can change the operation +by having an updated copy in your case directory. What if I want to use the previous MCT driver? From 43dcafdd01a294d739803e4cfa82983e7c068919 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 18 Oct 2021 12:47:26 -0600 Subject: [PATCH 18/54] Make README file in markdown --- README.NUOPC_driver => README.NUOPC_driver.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) rename README.NUOPC_driver => README.NUOPC_driver.md (87%) diff --git a/README.NUOPC_driver b/README.NUOPC_driver.md similarity index 87% rename from README.NUOPC_driver rename to README.NUOPC_driver.md index 9a48631239..3e0c0ec187 100644 --- a/README.NUOPC_driver +++ b/README.NUOPC_driver.md @@ -1,9 +1,9 @@ -$CTSMROOT/README.NUOPC_driver +# $CTSMROOT/README.NUOPC_driver CTSM now by default uses the NUOPC based CMEPS driver! -What's new? +## What's new? MESH Files: Mesh files to describe grids are new in both the driver namelist and for example in any @@ -13,23 +13,23 @@ The full ESMF Library is used and required to be built in order to run the model Single Point cases: Single point cases can now set their location using PTS_LAT and PTS_LON. -What's removed? +## What's removed? Domain files are no longer used. And mapping for regriding is created on the fly rather than using fixed mapping files. -What files change? +## What files change? rpointer.drv becomes rpointer.cpl cpl.log.* files get's split into med.log.* and drv.log.* user_datm.streams.txt.* file changes goes into the user_nl_datm_streams files datm.streams.txt.* files are all in one file called datm.streams.xml -What XML variables change in your case? +## What XML variables change in your case? DATM_CLMNCEP_YR_* variables change to DATM_YR_* -New obscure options: +## New obscure options: ESMF_AWARE_THREADING --- ESMF is aware of threading CREATE_ESMF_PET_FILES -- Create output log files from ESMF for each Processor (PET) @@ -40,7 +40,7 @@ nuopc.runseq is a text file that determines how the driver operates. You can cha by having an updated copy in your case directory. -What if I want to use the previous MCT driver? +## What if I want to use the previous MCT driver? The MCT driver will be available for sometime going forward, but new development won't go into it, and it will eventually be removed. From 8dab46ccd5b61b12b142074f84fe87e19fdc0a31 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 28 Oct 2021 00:14:34 -0600 Subject: [PATCH 19/54] Update to rtm tag with nuopc update --- Externals.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals.cfg b/Externals.cfg index 68afbbc9c2..1a7db4f023 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -16,7 +16,7 @@ required = True local_path = components/rtm protocol = git repo_url = https://github.com/ESCOMP/RTM -tag = rtm1_0_77 +tag = rtm1_0_78 required = True [mosart] From 6b6d4e47dc4262d086cf4258f93303b764ef8b4b Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 2 Nov 2021 15:56:23 -0600 Subject: [PATCH 20/54] Update mosart tag --- Externals.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals.cfg b/Externals.cfg index 1a7db4f023..6ab40825ea 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -23,7 +23,7 @@ required = True local_path = components/mosart protocol = git repo_url = https://github.com/ESCOMP/MOSART -tag = mosart1_0_43 +tag = mosart1_0_44 required = True [mizuRoute] From 3b248ea9523c6d4deb0f25a0d84472f4cb18bcf1 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 3 Nov 2021 16:26:39 -0600 Subject: [PATCH 21/54] Add a comment about adding the units to the long name --- src/main/histFileMod.F90 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/histFileMod.F90 b/src/main/histFileMod.F90 index fd3478b92c..d44f691d19 100644 --- a/src/main/histFileMod.F90 +++ b/src/main/histFileMod.F90 @@ -3077,6 +3077,9 @@ subroutine htape_timeconst(t, mode) long_name='FATES pft index of the combined pft-size class dimension', units='-', ncid=nfid(t)) call ncd_defvar(varname='fates_scmap_levscpf',xtype=ncd_int, dim1name='fates_levscpf', & long_name='FATES size index of the combined pft-size class dimension', units='-', ncid=nfid(t)) + ! Units are dash here with units of yr added to the long name so + ! that postprocessors (like ferret) won't get confused with what + ! the time coordinate is. EBK Nov/3/2021 (see #1540) call ncd_defvar(varname='fates_levcacls', xtype=tape(t)%ncprec, dim1name='fates_levcacls', & long_name='FATES cohort age class lower bound (yr)', units='-', ncid=nfid(t)) call ncd_defvar(varname='fates_pftmap_levcapf',xtype=ncd_int, dim1name='fates_levcapf', & From 85533f80d07fa46d23e4cbdccd9a5bb841da92a0 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 3 Nov 2021 22:02:44 -0600 Subject: [PATCH 22/54] Set force_send_to_atm for nuopc tests, add a test that can not set force_send_to_atm when mct driver, and send DOMFILE to mct tests as they will abort with file not found otherwise --- bld/unit_testers/build-namelist_test.pl | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/bld/unit_testers/build-namelist_test.pl b/bld/unit_testers/build-namelist_test.pl index 3def79f1be..5b2ae9c9b9 100755 --- a/bld/unit_testers/build-namelist_test.pl +++ b/bld/unit_testers/build-namelist_test.pl @@ -163,7 +163,7 @@ sub cat_and_create_namelistinfile { # # Figure out number of tests that will run # -my $ntests = 1843; +my $ntests = 1844; if ( defined($opts{'compare'}) ) { $ntests += 1254; } @@ -337,6 +337,8 @@ sub cat_and_create_namelistinfile { my $base_options = "-res 0.9x1.25 -envxml_dir . -driver $driver"; if ( $driver eq "mct" ) { $base_options = "$base_options -lnd_frac $DOMFILE"; + } else { + $base_options = "$base_options -namelist '&a force_send_to_atm = .false./'"; } eval{ system( "$bldnml $base_options $options > $tempfile 2>&1 " ); }; is( $@, '', "options: $base_options $options" ); @@ -879,7 +881,7 @@ sub cat_and_create_namelistinfile { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "both lnd_frac and on nml" =>{ options=>"-driver mct -lnd_frac domain.nc -envxml_dir .", + "both lnd_frac and on nml" =>{ options=>"-driver mct -lnd_frac $DOMFILE -envxml_dir .", namelst=>"fatmlndfrc='frac.nc'", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", @@ -889,7 +891,7 @@ sub cat_and_create_namelistinfile { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_1", }, - "lnd_frac set but nuopc" =>{ options=>"-driver nuopc -lnd_frac domain.nc -envxml_dir .", + "lnd_frac set but nuopc" =>{ options=>"-driver nuopc -lnd_frac $DOMFILE -envxml_dir .", namelst=>"", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_1", @@ -904,6 +906,11 @@ sub cat_and_create_namelistinfile { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_1", }, + "force_send but not nuopc" =>{ options=>"-driver mct -lnd_frac $DOMFILE -envxml_dir .", + namelst=>"force_send_to_atm = .false.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, "branch but NO nrevsn" =>{ options=>"-clm_start_type branch -envxml_dir .", namelst=>"", GLC_TWO_WAY_COUPLING=>"FALSE", From dad46431a8f7dfe43458c79e21a69edba0a06d95 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 3 Nov 2021 22:04:43 -0600 Subject: [PATCH 23/54] Add force_send_to_atm to new namelist group ctsm_nuopc_cap --- bld/CLMBuildNamelist.pm | 3 +++ bld/namelist_files/namelist_definition_ctsm.xml | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index 8ad2ea88bc..8ed5d85a00 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -4121,6 +4121,9 @@ sub write_output_files { if ( &value_is_true($nl_flags->{'use_lch4'}) ) { push @groups, "ch4par_in"; } + if ( $opts->{'driver'} eq "nuopc" ) { + push @groups, "ctsm_nuopc_cap"; + } push @groups, "clm_humanindex_inparm"; push @groups, "cnmresp_inparm"; push @groups, "photosyns_inparm"; diff --git a/bld/namelist_files/namelist_definition_ctsm.xml b/bld/namelist_files/namelist_definition_ctsm.xml index 67929c4bd4..6418dc7e55 100644 --- a/bld/namelist_files/namelist_definition_ctsm.xml +++ b/bld/namelist_files/namelist_definition_ctsm.xml @@ -116,6 +116,14 @@ This means that computations will be run even over these 0-weight points. THIS IS ONLY FOR TESTING PURPOSES - IT HAS NOT BEEN CHECKED FOR SCIENTIFIC VALIDITY. + +If TRUE (which is the default), send the expcrt state for the nuopc driver to the ATM even if running with a data ATM + + If TRUE, square the organic fraction when it's used (as was done in CLM4.5) From 121d27b250f1b3637ed25e359ea01da96afd8f9f Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 3 Nov 2021 22:24:00 -0600 Subject: [PATCH 24/54] Make sure force_send_to_atm only set for nuopc driver --- bld/CLMBuildNamelist.pm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index 8ed5d85a00..704d1ae609 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -4080,6 +4080,13 @@ sub setup_logic_misc { # my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; + if ( $opts->{'driver'} ne "nuopc" ) { + my $var = "force_send_to_atm"; + my $val = $nl->get_value($var); + if ( defined($val) ) { + $log->fatal_error( "$var can only be set for the nuopc driver" ); + } + } add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'for_testing_run_ncdiopio_tests'); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'hist_master_list_file'); } From 5e1adf8a909386fbef33c9eacef725a992588df4 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 4 Nov 2021 01:51:32 -0600 Subject: [PATCH 25/54] Comment out fates_hdim_levleaf so that don't need a new fates version --- src/main/histFileMod.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/histFileMod.F90 b/src/main/histFileMod.F90 index d44f691d19..512c50f44a 100644 --- a/src/main/histFileMod.F90 +++ b/src/main/histFileMod.F90 @@ -2993,7 +2993,7 @@ subroutine htape_timeconst(t, mode) use FatesInterfaceTypesMod, only : fates_hdim_levfuel use FatesInterfaceTypesMod, only : fates_hdim_levcwdsc use FatesInterfaceTypesMod, only : fates_hdim_levcan - use FatesInterfaceTypesMod, only : fates_hdim_levleaf + !use FatesInterfaceTypesMod, only : fates_hdim_levleaf use FatesInterfaceTypesMod, only : fates_hdim_canmap_levcnlf use FatesInterfaceTypesMod, only : fates_hdim_lfmap_levcnlf use FatesInterfaceTypesMod, only : fates_hdim_canmap_levcnlfpf @@ -3156,7 +3156,7 @@ subroutine htape_timeconst(t, mode) call ncd_io(varname='fates_levfuel',data=fates_hdim_levfuel, ncid=nfid(t), flag='write') call ncd_io(varname='fates_levcwdsc',data=fates_hdim_levcwdsc, ncid=nfid(t), flag='write') call ncd_io(varname='fates_levcan',data=fates_hdim_levcan, ncid=nfid(t), flag='write') - call ncd_io(varname='fates_levleaf',data=fates_hdim_levleaf, ncid=nfid(t), flag='write') + !call ncd_io(varname='fates_levleaf',data=fates_hdim_levleaf, ncid=nfid(t), flag='write') call ncd_io(varname='fates_canmap_levcnlf',data=fates_hdim_canmap_levcnlf, ncid=nfid(t), flag='write') call ncd_io(varname='fates_lfmap_levcnlf',data=fates_hdim_lfmap_levcnlf, ncid=nfid(t), flag='write') call ncd_io(varname='fates_canmap_levcnlfpf',data=fates_hdim_canmap_levcnlfpf, ncid=nfid(t), flag='write') From 7bea3108eb8388fbca9e7be03f8ed44a774b3a80 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 4 Nov 2021 01:52:30 -0600 Subject: [PATCH 26/54] Add a nuopc driver level namelist to read in force_send_to_atm --- src/cpl/nuopc/lnd_comp_nuopc.F90 | 11 +++--- src/cpl/nuopc/lnd_import_export.F90 | 54 +++++++++++++++++++++++++---- 2 files changed, 53 insertions(+), 12 deletions(-) diff --git a/src/cpl/nuopc/lnd_comp_nuopc.F90 b/src/cpl/nuopc/lnd_comp_nuopc.F90 index 18ac163aee..be8e5e45c8 100644 --- a/src/cpl/nuopc/lnd_comp_nuopc.F90 +++ b/src/cpl/nuopc/lnd_comp_nuopc.F90 @@ -303,6 +303,12 @@ subroutine InitializeAdvertise(gcomp, importState, exportState, clock, rc) write(iulog,'(a,i8)')' flds_scalar_index_nextsw_cday = ',flds_scalar_index_nextsw_cday end if + !---------------------- + ! Set the namelist filename + !---------------------- + call control_setNL("lnd_in"//trim(inst_suffix)) + + call advertise_fields(gcomp, flds_scalar_name, glc_present, cism_evolve, rof_prognostic, atm_prognostic, rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return @@ -500,11 +506,6 @@ subroutine InitializeRealize(gcomp, importState, exportState, clock, rc) !$ call omp_set_num_threads(nthrds) - !---------------------- - ! Consistency check on namelist filename - !---------------------- - call control_setNL("lnd_in"//trim(inst_suffix)) - !---------------------- ! Get properties from clock !---------------------- diff --git a/src/cpl/nuopc/lnd_import_export.F90 b/src/cpl/nuopc/lnd_import_export.F90 index b9ce18dd76..3e11b9b4a5 100644 --- a/src/cpl/nuopc/lnd_import_export.F90 +++ b/src/cpl/nuopc/lnd_import_export.F90 @@ -26,10 +26,10 @@ module lnd_import_export implicit none private ! except - public :: advertise_fields - public :: realize_fields - public :: import_fields - public :: export_fields + public :: advertise_fields ! Advertise the fields that can be sent/received + public :: realize_fields ! Realize which fields will be sent and received + public :: import_fields ! Import needed fields from mediator + public :: export_fields ! Export fields from CTSM to mediator private :: fldlist_add private :: fldlist_realize @@ -39,6 +39,7 @@ module lnd_import_export private :: state_setexport_2d private :: state_getfldptr private :: fldchk + private :: ReadCapNamelist ! Read in namelists governing import and export state type fld_list_type character(len=128) :: stdname @@ -64,6 +65,7 @@ module lnd_import_export logical :: flds_co2a ! use case logical :: flds_co2b ! use case logical :: flds_co2c ! use case + logical :: force_send_to_atm = .true. ! Force sending export data to atmosphere even if ATM is not prognostic integer :: glc_nec ! number of glc elevation classes integer, parameter :: debug = 0 ! internal debug level @@ -142,6 +144,7 @@ module lnd_import_export logical :: send_to_atm logical :: send_lnd2glc + character(*),parameter :: F01 = "('(lnd_import_export) ',a,i5,2x,i5,2x,d21.14)" character(*),parameter :: u_FILE_u = & __FILE__ @@ -156,6 +159,7 @@ subroutine advertise_fields(gcomp, flds_scalar_name, glc_present, cism_evolve, r use shr_ndep_mod , only : shr_ndep_readnl use shr_fire_emis_mod , only : shr_fire_emis_readnl use clm_varctl , only : ndep_from_cpl + use controlMod , only : NLFilename ! input/output variables type(ESMF_GridComp) :: gcomp @@ -175,9 +179,6 @@ subroutine advertise_fields(gcomp, flds_scalar_name, glc_present, cism_evolve, r logical :: send_co2_to_atm = .false. logical :: recv_co2_fr_atm = .false. - ! BUG(wjs, 2020-12-22, ESCOMP/CTSM#1237) force_send_to_atm should be read from the - ! namelist rather than being hard-coded to true. - logical, parameter :: force_send_to_atm = .true. character(len=*), parameter :: subname='(lnd_import_export:advertise_fields)' !------------------------------------------------------------------------------- @@ -199,6 +200,8 @@ subroutine advertise_fields(gcomp, flds_scalar_name, glc_present, cism_evolve, r ! Advertise export fields !-------------------------------- + call ReadCapNamelist( NLFilename ) + ! Need to determine if there is no land for single column before the advertise call is done if (atm_prognostic .or. force_send_to_atm) then @@ -1279,4 +1282,41 @@ logical function fldchk(state, fldname) endif end function fldchk + !=============================================================================== + subroutine ReadCapNamelist( NLFilename ) + + ! ---------------------------------------------------- + ! Read in tne namelist for CTSM nuopc cap level items + ! ---------------------------------------------------- + use clm_nlUtilsMod , only : find_nlgroup_name + use shr_mpi_mod , only : shr_mpi_bcast + use spmdMod , only : mpicom + use abortutils , only : endrun + use shr_log_mod , only : errMsg => shr_log_errMsg + ! !ARGUMENTS: + character(len=*), intent(IN) :: NLFilename ! Namelist filename + ! !LOCAL VARIABLES: + integer :: nu_nml ! unit for namelist file + integer :: nml_error ! namelist i/o error flag + character(*), parameter :: nml_name = "ctsm_nuopc_cap" ! MUST match with namelist name below + namelist /ctsm_nuopc_cap/ force_send_to_atm + + ! Read namelist + if (masterproc) then + open( newunit=nu_nml, file=trim(NLFilename), status='old', iostat=nml_error ) + call find_nlgroup_name(nu_nml, nml_name, status=nml_error) + if (nml_error == 0) then + read(nu_nml, nml=ctsm_nuopc_cap, iostat=nml_error) + if (nml_error /= 0) then + call endrun(msg='ERROR reading '//nml_name//' namelist'//errMsg(u_FILE_u, __LINE__)) + end if + end if + close(nu_nml) + endif + + ! Broadcast namelist to all processors + call shr_mpi_bcast(force_send_to_atm , mpicom) + + end subroutine ReadCapNamelist + end module lnd_import_export From 090dcfc6f5d7ebbf036e2afb6ab8356141953e07 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 8 Nov 2021 13:54:43 -0700 Subject: [PATCH 27/54] Update externals to those in cesm2_3_alpha07a --- Externals.cfg | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index 6ab40825ea..06e70f3b3f 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -8,7 +8,7 @@ required = True local_path = components/cism protocol = git repo_url = https://github.com/ESCOMP/CISM-wrapper -tag = cismwrap_2_1_92 +tag = cismwrap_2_1_93 externals = Externals_CISM.cfg required = True @@ -37,18 +37,18 @@ required = True local_path = cime protocol = git repo_url = https://github.com/ESMCI/cime -tag = cime6.0.9 +tag = cime6.0.11 required = True [cmeps] -tag = cmeps0.13.30 +tag = cmeps0.13.40 protocol = git repo_url = https://github.com/ESCOMP/CMEPS.git local_path = components/cmeps required = True [cdeps] -tag = cdeps0.12.26 +tag = cdeps0.12.32 protocol = git repo_url = https://github.com/ESCOMP/CDEPS.git local_path = components/cdeps @@ -63,7 +63,7 @@ local_path = components/cpl7 required = True [share] -tag = share1.0.7 +tag = share1.0.8 protocol = git repo_url = https://github.com/ESCOMP/CESM_share local_path = share From 845dbe58eb16a7fa8c74438ca29fa2a7ae986bd5 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 8 Nov 2021 14:22:54 -0700 Subject: [PATCH 28/54] Change MODEL to COMP_NAME in buildlib fixing #1523 --- cime_config/buildlib | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cime_config/buildlib b/cime_config/buildlib index 1ed64ca236..df019c0879 100755 --- a/cime_config/buildlib +++ b/cime_config/buildlib @@ -28,10 +28,10 @@ def _write_ctsm_mk(gmake, gmake_opts, makefile, exeroot, libroot): """ cime_output_file = os.path.join(exeroot, 'cime_variables.mk') - # Set MODEL=driver because some link flags are set differently when MODEL=driver, and + # Set COMP_NAME=driver because some link flags are set differently when COMP_NAME=driver, and # those are the ones we want here. cmd = ("{gmake} write_include_and_link_flags OUTPUT_FILE={cime_output_file} " - "MODEL=driver {gmake_opts} -f {makefile} ").format( + "COMP_NAME=driver {gmake_opts} -f {makefile} ").format( gmake=gmake, cime_output_file=cime_output_file, gmake_opts=gmake_opts, makefile=makefile) rc, out, err = run_cmd(cmd) logger.info("%s: \n\n output:\n %s \n\n err:\n\n%s\n"%(cmd,out,err)) @@ -146,7 +146,7 @@ def _main_func(): complib = os.path.join(libroot,"lib%s.a"%(compname)) - cmd = "{} complib -j {} MODEL={} COMPLIB={} -f {} {}" \ + cmd = "{} complib -j {} COMP_NAME={} COMPLIB={} -f {} {}" \ .format(gmake, gmake_j, compname, complib, makefile, gmake_opts) rc, out, err = run_cmd(cmd) From c321c20b9508f2f6e2c08925edfdafc230703f3c Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 8 Nov 2021 17:09:41 -0700 Subject: [PATCH 29/54] Do not allow -namelist to be part of CLM_BLDNML_OPTS in buildnml, fixes #1517 --- cime_config/buildnml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cime_config/buildnml b/cime_config/buildnml index 7ed70b5ffd..2df4d4360d 100755 --- a/cime_config/buildnml +++ b/cime_config/buildnml @@ -64,6 +64,13 @@ def buildnml(case, caseroot, compname): mask = case.get_value("MASK_GRID") driver = case.get_value("COMP_INTERFACE").lower() + # ----------------------------------------------------- + # Error checking + # ----------------------------------------------------- + if ( clm_bldnml_opts.find("-namelist") >= 0 ): + expect(False, "The -namelist option is NOT allowed to be part of CLM_BLDNML_OPTS, " + \ + "use the CLM_NAMELIST_OPTS option or add namelist items to user_nl_clm instead " ); + # ----------------------------------------------------- # Set ctsmconf # ----------------------------------------------------- From 017a7ed1ed4849ede0837951d820062e53273554 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 8 Nov 2021 17:27:14 -0700 Subject: [PATCH 30/54] Remove blank files from list in ctsm.input_data_list fixing #1476 --- bld/CLMBuildNamelist.pm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index 704d1ae609..2df66fd4b0 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -4365,8 +4365,9 @@ sub check_input_files { if ($input_pathname_type eq 'abs') { if ($inputdata_rootdir) { - #MV $pathname =~ s:$inputdata_rootdir::; - print OUTFILE "$var = $pathname\n"; + if ( $pathname !~ /^\s*$/ ) { # If pathname isn't blank or null + print OUTFILE "$var = $pathname\n"; + } } else { if (-e $pathname) { # use -e rather than -f since the absolute pathname @@ -4387,7 +4388,9 @@ sub check_input_files { if ($inputdata_rootdir) { $pathname = "$rootdir/$pathname"; #MV $pathname =~ s:$inputdata_rootdir::; - print OUTFILE "$var = $pathname\n"; + if ( $pathname !~ /^\s*$/ ) { # If pathname isn't blank or null + print OUTFILE "$var = $pathname\n"; + } } else { if (-f "$rootdir/$pathname") { From 6c4fb1ef14704e235397c7eed7ff7fb3249fc811 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 8 Nov 2021 17:55:40 -0700 Subject: [PATCH 31/54] A few more README notes on NUOPC --- README.NUOPC_driver.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.NUOPC_driver.md b/README.NUOPC_driver.md index 3e0c0ec187..f1c07b0b20 100644 --- a/README.NUOPC_driver.md +++ b/README.NUOPC_driver.md @@ -31,7 +31,7 @@ DATM_CLMNCEP_YR_* variables change to DATM_YR_* ## New obscure options: -ESMF_AWARE_THREADING --- ESMF is aware of threading +ESMF_AWARE_THREADING --- ESMF is aware of threading (can have differing number of threads in components) CREATE_ESMF_PET_FILES -- Create output log files from ESMF for each Processor (PET) ESMF_VERBOSITY_LEVEL --- Verbosity level for ESMF logging ESMF_PROFILING_LEVEL --- Verbosity level for ESMF profiling @@ -46,4 +46,10 @@ The MCT driver will be available for sometime going forward, but new development won't go into it, and it will eventually be removed. But, if you have to... Use the "--driver mct" command line option to create_newcase -Or set ./xmlchange COMP_INTERFACE=mct +You can set COMP_INTERFACE in a case as well, but it won't create it with everything needed +so we recommend setting up a case from scratch. + + +For more notes see: + +https://docs.google.com/presentation/d/1yjiKSEV53JDAJbYxhpY2T9GTxlWFzQAn From 1b0bd88bc512be87521407bc4e178b020e764ee6 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 9 Nov 2021 10:32:15 -0700 Subject: [PATCH 32/54] Switch out f10_f10_musgs tests for f10_f10_mg37 for the same, fixing #1543 --- cime_config/testdefs/testlist_clm.xml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 9cf9cacc42..2952aef83e 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -1950,17 +1950,6 @@ - - - - - - - - - - - @@ -2018,6 +2007,8 @@ + + From 9d84f7788de80227e0a613585496b11f282b189a Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 9 Nov 2021 10:37:26 -0700 Subject: [PATCH 33/54] Mark LILACSMOKE test as an expected fail --- cime_config/testdefs/ExpectedTestFails.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cime_config/testdefs/ExpectedTestFails.xml b/cime_config/testdefs/ExpectedTestFails.xml index d8ad31e7cb..8687d8ea28 100644 --- a/cime_config/testdefs/ExpectedTestFails.xml +++ b/cime_config/testdefs/ExpectedTestFails.xml @@ -51,6 +51,13 @@ + + + MODEL_BUILD + #1492 + + + From 4975a428dd4adaf1aa8b2cd1d90d1161f2393bd7 Mon Sep 17 00:00:00 2001 From: Bill Sacks Date: Tue, 9 Nov 2021 12:12:10 -0700 Subject: [PATCH 34/54] LILACSMOKE test: point to a still-existing Macros.make Now Macros.make is created in the build phase, not case.setup. This means that the container case no longer includes Macros.make, but the case inside the lilac build dir still does - so point to the Macros.make in that latter location. --- cime_config/SystemTests/lilacsmoke.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/cime_config/SystemTests/lilacsmoke.py b/cime_config/SystemTests/lilacsmoke.py index 2a566feb60..82647c0b92 100644 --- a/cime_config/SystemTests/lilacsmoke.py +++ b/cime_config/SystemTests/lilacsmoke.py @@ -38,10 +38,9 @@ def __init__(self, case): def build_phase(self, sharedlib_only=False, model_only=False): if not sharedlib_only: - caseroot = self._case.get_value('CASEROOT') lndroot = self._case.get_value('COMP_ROOT_DIR_LND') exeroot = self._case.get_value('EXEROOT') - build_dir = os.path.join(caseroot, 'lilac_build') + build_dir = self._lilac_build_dir() script_path = os.path.abspath(os.path.join(lndroot, 'lilac', 'build_ctsm')) # We only run the initial build command if the build_dir doesn't exist @@ -103,13 +102,13 @@ def _build_atm_driver(self): os.path.join(blddir, 'Makefile')) symlink_force(os.path.join(lndroot, 'lilac', 'atm_driver', 'atm_driver.F90'), os.path.join(blddir, 'atm_driver.F90')) - symlink_force(os.path.join(caseroot, 'Macros.make'), + symlink_force(os.path.join(self._lilac_build_dir(), 'case', 'Macros.make'), os.path.join(blddir, 'Macros.make')) makevars = 'COMPILER={compiler} DEBUG={debug} CTSM_MKFILE={ctsm_mkfile}'.format( compiler=self._case.get_value('COMPILER'), debug=str(self._case.get_value('DEBUG')).upper(), - ctsm_mkfile=os.path.join(caseroot, 'lilac_build', 'ctsm.mk')) + ctsm_mkfile=os.path.join(self._lilac_build_dir(), 'ctsm.mk')) makecmd = 'make {makevars} atm_driver'.format(makevars=makevars) # Normally the user will source either ctsm_build_environment.sh or @@ -323,8 +322,11 @@ def _fill_in_variable(self, line, varname, value, placeholder): replacement_done = False return (newline, replacement_done) + def _lilac_build_dir(self): + return os.path.join(self._case.get_value('CASEROOT'), 'lilac_build') + def _runtime_inputs_dir(self): - return os.path.join(self._case.get_value('CASEROOT'), 'lilac_build', 'runtime_inputs') + return os.path.join(self._lilac_build_dir(), 'runtime_inputs') def _atm_driver_rundir(self): return os.path.join(self._case.get_value('CASEROOT'), 'lilac_atm_driver', 'run') From 43cc1b1cf1fe5cb0ede0ac950c26ae9170aff13d Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 9 Nov 2021 22:53:12 -0700 Subject: [PATCH 35/54] LILACSMOKE now works with @billsacks fix --- cime_config/testdefs/ExpectedTestFails.xml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/cime_config/testdefs/ExpectedTestFails.xml b/cime_config/testdefs/ExpectedTestFails.xml index 8687d8ea28..d8ad31e7cb 100644 --- a/cime_config/testdefs/ExpectedTestFails.xml +++ b/cime_config/testdefs/ExpectedTestFails.xml @@ -51,13 +51,6 @@ - - - MODEL_BUILD - #1492 - - - From c9b5f434145acfde8f9ae6e678ddd4ec00a7905a Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 12 Nov 2021 13:54:58 -0700 Subject: [PATCH 36/54] Update FATES and MOSART externals --- Externals.cfg | 2 +- Externals_CLM.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index 06e70f3b3f..d3ee5df893 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -23,7 +23,7 @@ required = True local_path = components/mosart protocol = git repo_url = https://github.com/ESCOMP/MOSART -tag = mosart1_0_44 +tag = mosart1_0_45 required = True [mizuRoute] diff --git a/Externals_CLM.cfg b/Externals_CLM.cfg index 504a362092..83f4a0b8a3 100644 --- a/Externals_CLM.cfg +++ b/Externals_CLM.cfg @@ -2,7 +2,7 @@ local_path = src/fates protocol = git repo_url = https://github.com/NGEET/fates -tag = sci.1.48.0_api.17.0.0 +tag = sci.1.49.1_api.17.0.0 required = True [externals_description] From 2b4bc9101471661224beb49cddc71d40777bebb2 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 12 Nov 2021 14:47:26 -0700 Subject: [PATCH 37/54] Add a suggestion from @billsacks --- README.NUOPC_driver.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.NUOPC_driver.md b/README.NUOPC_driver.md index f1c07b0b20..578ba4aa8d 100644 --- a/README.NUOPC_driver.md +++ b/README.NUOPC_driver.md @@ -16,7 +16,8 @@ Single point cases can now set their location using PTS_LAT and PTS_LON. ## What's removed? Domain files are no longer used. And mapping for regriding is created on the fly -rather than using fixed mapping files. +rather than using fixed mapping files in almost all cases. Runoff mapping files +still need to be generated offline. ## What files change? From 04456d7c08535164d34d49a667ae3f8f1d841246 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Mon, 15 Nov 2021 22:02:49 -0700 Subject: [PATCH 38/54] Solution for #1545 seems to be to not initialize irrig field to spval --- src/cpl/nuopc/lnd_import_export.F90 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cpl/nuopc/lnd_import_export.F90 b/src/cpl/nuopc/lnd_import_export.F90 index 3e11b9b4a5..4dcf07cb31 100644 --- a/src/cpl/nuopc/lnd_import_export.F90 +++ b/src/cpl/nuopc/lnd_import_export.F90 @@ -875,8 +875,10 @@ subroutine export_fields( gcomp, bounds, glc_present, rof_prognostic, & if (ChkErr(rc,__LINE__,u_FILE_u)) return end if if (fldchk(exportState, Flrl_irrig)) then ! irrigation flux to be removed from main channel storage (negative) + ! NOTE: EBK 11/15/2021 -- Don't initialize to spval as otherwise RTM dies + ! with NaN's (see #1545 for the non-FATES issue) call state_setexport_1d(exportState, Flrl_irrig, waterlnd2atmbulk_inst%qirrig_grc(begg:), & - minus = .true., init_spval=.true., rc=rc) + minus = .true., init_spval=.false., rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return end if if (fldchk(exportState, Flrl_rofsub)) then From 817ff82dbfa9c87022bfc36691162c03ed307070 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 16 Nov 2021 10:18:10 -0700 Subject: [PATCH 39/54] Set MOSART_MODE to null for an accelerated spinup case --- cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands | 1 + 1 file changed, 1 insertion(+) diff --git a/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands b/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands index 771777c92a..5fbc5fd2bd 100644 --- a/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands @@ -1,4 +1,5 @@ #!/bin/bash ./xmlchange CLM_ACCELERATED_SPINUP="on" +./xmlchange MOSART_MODE="NULL" From b2ceb572414a2639fa1790a5cef52e9696c5d62a Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 16 Nov 2021 13:55:38 -0700 Subject: [PATCH 40/54] Add pgi test with MCT since the NUOPC tests aren't working --- cime_config/testdefs/testlist_clm.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 2952aef83e..70372d44d8 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -1372,6 +1372,24 @@ + + + + + + + + + + + + + + + + + + From df1872aab285b39367e25697eca9a0350238a9cd Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 16 Nov 2021 17:13:06 -0700 Subject: [PATCH 41/54] Remove tests that are now working, and add the nuopc pgi tests that are not --- cime_config/testdefs/ExpectedTestFails.xml | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/cime_config/testdefs/ExpectedTestFails.xml b/cime_config/testdefs/ExpectedTestFails.xml index d8ad31e7cb..0fc39dd546 100644 --- a/cime_config/testdefs/ExpectedTestFails.xml +++ b/cime_config/testdefs/ExpectedTestFails.xml @@ -30,24 +30,17 @@ - - + + FAIL - ESCOMP/CMEPS#175 - - - - - - PEND - ESCOMP/CMEPS#175 + PGI problems with the nuopc driver - - + + FAIL - #1317 + PGI problems with the nuopc driver From 612d57eeed80f44bf914085a648ff86a04dce5a8 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 18 Nov 2021 01:40:11 -0700 Subject: [PATCH 42/54] Switch out tests that were for hobart to izumi, which should have been done before --- cime_config/testdefs/testlist_clm.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 2952aef83e..0ba780d0f3 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -1087,8 +1087,8 @@ - - + + @@ -2064,7 +2064,7 @@ - + @@ -2246,7 +2246,7 @@ - + @@ -2376,7 +2376,7 @@ - + From b3945681338a2da1f7d075bc65ed14c47bcb07b5 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 18 Nov 2021 01:55:13 -0700 Subject: [PATCH 43/54] Increase wallclock for ctsm_sci tests because of how slow tests are on izumi --- cime_config/testdefs/testlist_clm.xml | 48 +++++++++++++-------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 70372d44d8..7f20fdc045 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -23,7 +23,7 @@ - + @@ -33,7 +33,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -106,7 +106,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -307,7 +307,7 @@ - + @@ -317,7 +317,7 @@ - + @@ -344,7 +344,7 @@ - + @@ -354,7 +354,7 @@ - + @@ -459,7 +459,7 @@ - + @@ -469,7 +469,7 @@ - + @@ -712,7 +712,7 @@ - + @@ -722,7 +722,7 @@ - + @@ -765,7 +765,7 @@ - + @@ -775,7 +775,7 @@ - + @@ -829,7 +829,7 @@ - + @@ -839,7 +839,7 @@ - + @@ -849,7 +849,7 @@ - + @@ -859,7 +859,7 @@ - + @@ -877,7 +877,7 @@ - + @@ -887,7 +887,7 @@ - + @@ -1441,7 +1441,7 @@ - + @@ -1451,7 +1451,7 @@ - + From 5d37bbd98f3ec4ae28f3015133478783d4e05904 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 18 Nov 2021 02:23:17 -0700 Subject: [PATCH 44/54] Add do_transient_pfts as one of things to be evaluated for finding finidat (with it always being false) this addresses #1192 --- bld/CLMBuildNamelist.pm | 1 + bld/namelist_files/namelist_defaults_ctsm.xml | 118 +++++++++--------- 2 files changed, 60 insertions(+), 59 deletions(-) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index 2df66fd4b0..1265581c89 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -2319,6 +2319,7 @@ sub setup_logic_initial_conditions { my $fsurdat = $nl->get_value('fsurdat'); $fsurdat =~ s!(.*)/!!; $settings{'fsurdat'} = $fsurdat; + $settings{'do_transient_pfts'} = $nl->get_value('do_transient_pfts'); # # If not transient use sim_year, otherwise use date # diff --git a/bld/namelist_files/namelist_defaults_ctsm.xml b/bld/namelist_files/namelist_defaults_ctsm.xml index 8a10a96ebf..01a06355de 100644 --- a/bld/namelist_files/namelist_defaults_ctsm.xml +++ b/bld/namelist_files/namelist_defaults_ctsm.xml @@ -675,171 +675,171 @@ attributes from the config_cache.xml file (with keys converted to upper-case). Or one specific file will be chosen over another. --> hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.true. use_crop=.false. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.true. use_crop=.false. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.true. use_crop=.false. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.true. use_crop=.false. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.false. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.false. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.false. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.false. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.false. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.false. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.false. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.false. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.false. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.false. glc_nec=10 do_transient_pfts=.false. hgrid=1.9x2.5 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=1.9x2.5 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=1.9x2.5 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=1.9x2.5 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=1.9x2.5 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=1.9x2.5 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=1.9x2.5 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=1.9x2.5 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=1.9x2.5 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=1.9x2.5 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=1.9x2.5 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=1.9x2.5 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=79 mask=gx1v7 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=ne120np4.pg3 maxpft=79 mask=tx0.1v3 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 +>hgrid=ne120np4.pg3 maxpft=79 mask=tx0.1v3 use_cn=.true. use_crop=.true. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 +>hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=1.9x2.5 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 +>hgrid=1.9x2.5 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=ne0np4.ARCTIC.ne30x4 maxpft=17 mask=tx0.1v2 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 +>hgrid=ne0np4.ARCTIC.ne30x4 maxpft=17 mask=tx0.1v2 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=ne0np4.ARCTICGRIS.ne30x8 maxpft=17 mask=tx0.1v2 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 +>hgrid=ne0np4.ARCTICGRIS.ne30x8 maxpft=17 mask=tx0.1v2 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 do_transient_pfts=.false. p hgrid=1.9x2.5 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 +>hgrid=1.9x2.5 maxpft=17 mask=gx1v7 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 do_transient_pfts=.false. hgrid=ne0np4CONUS.ne30x8 maxpft=17 mask=tx0.1v2 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 +>hgrid=ne0np4CONUS.ne30x8 maxpft=17 mask=tx0.1v2 use_cn=.false. use_crop=.false. irrigate=.true. glc_nec=10 do_transient_pfts=.false. @@ -849,21 +849,21 @@ p --> lnd/clm2/initdata_map/clmi.I1850Clm45BgcGs.0901-01-01.0.9x1.25_gx1v7_simyr1850_c200806.nc lnd/clm2/initdata_map/clmi.I1850Clm45BgcCruGs.1101-01-01.0.9x1.25_gx1v7_simyr1850_c200806.nc lnd/clm2/initdata_map/clmi.B1850Clm45BgcGs.0161-01-01.0.9x1.25_gx1v7_simyr1850_c200806.nc @@ -871,7 +871,7 @@ p lnd/clm2/initdata_map/clmi.I1850Clm50Sp.0181-01-01.0.9x1.25_gx1v7_simyr1850_c200806.nc @@ -879,7 +879,7 @@ p lnd/clm2/initdata_map/clmi.I1850Clm50BgcCrop-ciso.1366-01-01.0.9x1.25_gx1v7_simyr1850_c200428.nc @@ -887,7 +887,7 @@ p lnd/clm2/initdata_map/clmi.I1850Clm50BgcCropCru-ciso.1526-01-01.0.9x1.25_gx1v7_simyr1850_c200728.nc @@ -895,14 +895,14 @@ p lnd/clm2/initdata_map/clmi.B1850Clm50BgcCrop.0161-01-01.0.9x1.25_gx1v7_simyr1850_c200729.nc lnd/clm2/initdata_map/clmi.I1850Clm50SpCru.1706-01-01.0.9x1.25_gx1v7_simyr1850_c200806.nc @@ -910,13 +910,13 @@ p lnd/clm2/initdata_map/clmi.I1850Clm50Sp.0181-01-01.0.9x1.25_gx1v7_simyr1850_c200806.nc lnd/clm2/initdata_map/clmi.I1850Clm50BgcCrop-ciso.1366-01-01.0.9x1.25_gx1v7_simyr1850_c200428.nc @@ -929,7 +929,7 @@ p lnd/clm2/initdata_map/clmi.I2000Clm50BgcCrop.2011-01-01.1.9x2.5_gx1v7_gl4_simyr2000_c190312.nc @@ -937,7 +937,7 @@ p lnd/clm2/initdata_map/clmi.I2000Clm50BgcCrop.2011-01-01.1.9x2.5_gx1v7_gl4_simyr2000_c190312.nc @@ -945,13 +945,13 @@ p lnd/clm2/initdata_map/clmi.I2000Clm50BgcCrop.2011-01-01.1.9x2.5_gx1v7_gl4_simyr2000_c190312.nc lnd/clm2/initdata_map/clmi.I2000Clm50BgcCrop.2011-01-01.1.9x2.5_gx1v7_gl4_simyr2000_c190312.nc @@ -960,7 +960,7 @@ p lnd/clm2/initdata_map/clmi.I2000Clm50BgcCrop.2011-01-01.1.9x2.5_gx1v7_gl4_simyr2000_c190312.nc @@ -968,21 +968,21 @@ p lnd/clm2/initdata_map/clmi.BHIST.2000-01-01.0.9x1.25_gx1v7_simyr1979_c200806.nc lnd/clm2/initdata_map/clmi.BHIST.2000-01-01.0.9x1.25_gx1v7_simyr1979_c200806.nc lnd/clm2/initdata_map/clmi.BHIST.2000-01-01.1.9x2.5_gx1v7_simyr1979_c200806.nc @@ -990,7 +990,7 @@ p lnd/clm2/initdata_map/clmi.FHISTSp.1979-01-01.ARCTIC_ne30x4_mt12_simyr1979_c200806.nc @@ -998,7 +998,7 @@ p lnd/clm2/initdata_map/clmi.FHISTSp.1979-01-01.ARCTICGRIS_ne30x8_mt12_simyr1979_c200806.nc @@ -1006,7 +1006,7 @@ p lnd/clm2/initdata_map/clmi.F2000.2000-01-01.ne120pg3_mt13_simyr2000_c200728.nc @@ -1014,7 +1014,7 @@ p lnd/clm2/initdata_map/clmi.BHIST.2000-01-01.0.9x1.25_gx1v7_simyr2000_c200728.nc @@ -1022,7 +1022,7 @@ p lnd/clm2/initdata_map/clmi.BHISTSp.2000-01-01.1.9x2.5_gx1v7_simyr2003_c200807.nc @@ -1031,7 +1031,7 @@ p lnd/clm2/initdata_map/clmi.FHISTSp.2013-01-01.ne0CONUSne30x8_mt12_simyr2013_c200806.nc From 3b5a66cf013537b042ebcaa6bd0180e41fc1a10d Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 18 Nov 2021 02:37:25 -0700 Subject: [PATCH 45/54] Need to do setup_logic_dynamic_subgrid before setup_logic for initial conditions, because it now needs do_transient_pfts --- bld/CLMBuildNamelist.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index 1265581c89..d9417ca8b7 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -1528,10 +1528,10 @@ sub process_namelist_inline_logic { setup_logic_soilstate($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_demand($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_surface_dataset($opts, $nl_flags, $definition, $defaults, $nl); + setup_logic_dynamic_subgrid($opts, $nl_flags, $definition, $defaults, $nl); if ( remove_leading_and_trailing_quotes($nl_flags->{'clm_start_type'}) ne "branch" ) { setup_logic_initial_conditions($opts, $nl_flags, $definition, $defaults, $nl, $physv); } - setup_logic_dynamic_subgrid($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_spinup($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_supplemental_nitrogen($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_snowpack($opts, $nl_flags, $definition, $defaults, $nl); From 67e4e32c0bf0a9892ee6b696ebf76326a8e4dcd7 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 18 Nov 2021 02:53:39 -0700 Subject: [PATCH 46/54] Increaes PE layout for f09 and f19 on izumi --- cime_config/config_pes.xml | 74 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/cime_config/config_pes.xml b/cime_config/config_pes.xml index bf141781ec..c37942a475 100644 --- a/cime_config/config_pes.xml +++ b/cime_config/config_pes.xml @@ -224,6 +224,43 @@ + + + + none + + -1 + -11 + -11 + -11 + -11 + -11 + -11 + -11 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + -1 + -1 + -1 + -1 + -1 + -1 + -1 + + + + @@ -298,6 +335,43 @@ + + + + none + + -1 + -11 + -11 + -11 + -11 + -11 + -11 + -11 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + -1 + -1 + -1 + -1 + -1 + -1 + -1 + + + + From e4274954dfd72c7a4309aef3e5db4a946e032f02 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 18 Nov 2021 03:08:52 -0700 Subject: [PATCH 47/54] set MOSART_MODE to NULL for ColdSSP spinup case --- .../testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands diff --git a/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands b/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands new file mode 100644 index 0000000000..b8e8b792cd --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/rtmColdSSP/shell_commands @@ -0,0 +1,3 @@ +#!/bin/bash + +./xmlchange MOSART_MODE="NULL" From 0720756a1ff13105838435995975a0cccb1dc9f8 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 18 Nov 2021 11:38:05 -0700 Subject: [PATCH 48/54] Remove izumi from the ctsm_sci test list as the tests take too long, this allows the wallclock to move back to 20 minutes --- cime_config/testdefs/testlist_clm.xml | 72 +++++++++------------------ 1 file changed, 24 insertions(+), 48 deletions(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 6ae30edbef..c7ae901a92 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -20,20 +20,18 @@ - - + - - + @@ -83,40 +81,36 @@ - - + - - + - - + - - + @@ -304,20 +298,18 @@ - - + - - + @@ -341,20 +333,18 @@ - - + - - + @@ -456,20 +446,18 @@ - - + - - + @@ -709,20 +697,18 @@ - - + - - + @@ -762,20 +748,18 @@ - - + - - + @@ -826,40 +810,36 @@ - - + - - + - - + - - + @@ -874,20 +854,18 @@ - - + - - + @@ -1438,20 +1416,18 @@ - - + - - + From 45a9eb02f424282c721c7697bd766357310e077e Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 18 Nov 2021 11:42:27 -0700 Subject: [PATCH 49/54] Correct test that had an extra underscore --- cime_config/testdefs/testlist_clm.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index c7ae901a92..6eed81a551 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -1359,7 +1359,7 @@ - + From a5d29b65b6a85f54835792ed00c19f322dceedd3 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 18 Nov 2021 21:51:59 -0700 Subject: [PATCH 50/54] Remove PTCLM testing --- test/tools/README.testnames | 2 +- test/tools/TBLscript_tools.sh | 26 ------------------- test/tools/TSMscript_tools.sh | 15 +---------- test/tools/config_files/PTCLM__s | 1 - test/tools/input_tests_master | 7 ----- test/tools/nl_files/PTCLM_USUMB_Cycle_clm4_5 | 1 - test/tools/nl_files/PTCLM_USUMB_Global_clm4_5 | 1 - test/tools/nl_files/PTCLM_USUMB_clm4_5 | 1 - 8 files changed, 2 insertions(+), 52 deletions(-) delete mode 100644 test/tools/config_files/PTCLM__s delete mode 100644 test/tools/nl_files/PTCLM_USUMB_Cycle_clm4_5 delete mode 100644 test/tools/nl_files/PTCLM_USUMB_Global_clm4_5 delete mode 100644 test/tools/nl_files/PTCLM_USUMB_clm4_5 diff --git a/test/tools/README.testnames b/test/tools/README.testnames index 0ea049f662..026ea72a38 100644 --- a/test/tools/README.testnames +++ b/test/tools/README.testnames @@ -27,7 +27,7 @@ b -- subset_data c -- mkprocdata_map d -- mkmapgrids e -- gen_domain -f -- PTCLM +f -- unused g -- mksurfdata_map h -- unused i -- tools scripts diff --git a/test/tools/TBLscript_tools.sh b/test/tools/TBLscript_tools.sh index 284ac710d1..d05492c687 100755 --- a/test/tools/TBLscript_tools.sh +++ b/test/tools/TBLscript_tools.sh @@ -89,16 +89,6 @@ fi all_comparisons_good="TRUE" for compare_file in ${files_to_compare}; do - # For PTCLM, skip comparisons of mapping files, since these aren't really - # necessary, take a lot of time, and cprnc.pl can crash if there are mapping - # files with 0 overlaps - if [[ "$2" == "PTCLM" ]]; then - if [[ "$compare_file" == map* ]]; then - echo "SKIPPING: $compare_file" - continue - fi - fi - env CPRNC_OPT="-m" \ ${CLM_SCRIPTDIR}/CLM_compare.sh \ ${BL_TESTDIR}/TSMscript_tools.$1.$2.$3/${compare_file} \ @@ -112,22 +102,6 @@ for compare_file in ${files_to_compare}; do all_comparisons_good="FALSE" fi done -# Compare text files for PTCLM if they exist -files_to_compare=`cd ${CLM_TESTDIR}/TSMscript_tools.$1.$2.$3; ls README*` -for compare_file in ${files_to_compare}; do - - diff \ - ${BL_TESTDIR}/TSMscript_tools.$1.$2.$3/${compare_file} \ - ${CLM_TESTDIR}/TSMscript_tools.$1.$2.$3/${compare_file} \ - > diff.${compare_file}.out - rc=$? - if [ $rc -eq 0 ]; then - echo "TBLscript_tools.sh: comparison successful; output in ${rundir}/diff.${compare_file}.out" - else - echo "TBLscript_tools.sh: error from CLM_compare.sh= $rc; see ${rundir}/diff.${compare_file}.out for details" - all_comparisons_good="FALSE" - fi -done if [ ${all_comparisons_good} = "TRUE" ]; then echo "TBLscript_tools.sh: baseline test passed" diff --git a/test/tools/TSMscript_tools.sh b/test/tools/TSMscript_tools.sh index 34d00093fd..dbd75f4959 100755 --- a/test/tools/TSMscript_tools.sh +++ b/test/tools/TSMscript_tools.sh @@ -49,20 +49,7 @@ cp $cfgdir/sample_* $rundir optfile=${3%^*} cfgfile=${3#*^} -if [[ "$1" == "site_and_regional/PTCLM" ]]; then - echo "TSMscript_tools.sh: calling TCBscripttools.sh to prepare executables for $1" - ${CLM_SCRIPTDIR}/TCBscripttools.sh $1 $cfgfile - rc=$? - if [ $rc -ne 0 ]; then - echo "TSMscript_tools.sh: error from TCBscripttools.sh= $rc" - echo "FAIL.job${JOBID}" > TestStatus - exit 4 - fi - # Copy map files so we can use them - subdir=1x1pt_US-UMB - mkdir $rundir/$subdir - cp $CSMDATA/lnd/clm2/PTCLMmydatafiles.c171024/$subdir/map_* $rundir/$subdir -elif [ "$optfile" != "$3" ]; then +if [ "$optfile" != "$3" ]; then echo "TSMscript_tools.sh: calling TCBtools.sh to prepare $1 executable" ${CLM_SCRIPTDIR}/TCBtools.sh $1 $cfgfile rc=$? diff --git a/test/tools/config_files/PTCLM__s b/test/tools/config_files/PTCLM__s deleted file mode 100644 index 8a2155ac49..0000000000 --- a/test/tools/config_files/PTCLM__s +++ /dev/null @@ -1 +0,0 @@ -./buildtools diff --git a/test/tools/input_tests_master b/test/tools/input_tests_master index 5687d41d4a..a26d72a216 100644 --- a/test/tools/input_tests_master +++ b/test/tools/input_tests_master @@ -54,13 +54,6 @@ bli59 TBLscript_tools.sh mkmapdata mkmapdata.sh mkmapdata_if10 smi79 TSMscript_tools.sh mkmapdata mkmapdata.sh mkmapdata_i1x1_brazil bli79 TBLscript_tools.sh mkmapdata mkmapdata.sh mkmapdata_i1x1_brazil -smf84 TSMscript_tools.sh site_and_regional/PTCLM PTCLMmkdata PTCLM_USUMB_clm4_5^buildtools -blf84 TBLscript_tools.sh site_and_regional/PTCLM PTCLMmkdata PTCLM_USUMB_clm4_5^buildtools -smfc4 TSMscript_tools.sh site_and_regional/PTCLM PTCLMmkdata PTCLM_USUMB_Cycle_clm4_5^buildtools -blfc4 TBLscript_tools.sh site_and_regional/PTCLM PTCLMmkdata PTCLM_USUMB_Cycle_clm4_5^buildtools -smfg4 TSMscript_tools.sh site_and_regional/PTCLM PTCLMmkdata PTCLM_USUMB_Global_clm4_5^buildtools -blfg4 TBLscript_tools.sh site_and_regional/PTCLM PTCLMmkdata PTCLM_USUMB_Global_clm4_5^buildtools - smiS4 TSMscript_tools.sh site_and_regional getregional_datasets.pl getregional bliS4 TBLscript_tools.sh site_and_regional getregional_datasets.pl getregional smiS8 TSMscript_tools.sh site_and_regional getregional_datasets.pl getregional_ndep diff --git a/test/tools/nl_files/PTCLM_USUMB_Cycle_clm4_5 b/test/tools/nl_files/PTCLM_USUMB_Cycle_clm4_5 deleted file mode 100644 index f27830a2c4..0000000000 --- a/test/tools/nl_files/PTCLM_USUMB_Cycle_clm4_5 +++ /dev/null @@ -1 +0,0 @@ --s US-UMB -d CSMDATA --mydatadir . --map_gdate 171024 --cycle_forcing --ctsm_root CTSM_ROOT --cime_root CIME_ROOT diff --git a/test/tools/nl_files/PTCLM_USUMB_Global_clm4_5 b/test/tools/nl_files/PTCLM_USUMB_Global_clm4_5 deleted file mode 100644 index dc4c617dc3..0000000000 --- a/test/tools/nl_files/PTCLM_USUMB_Global_clm4_5 +++ /dev/null @@ -1 +0,0 @@ --s US-UMB -d CSMDATA --mydatadir . --map_gdate 171024 --donot_use_tower_yrs --clmnmlusecase 20thC_transient --pftgrid --soilgrid --ctsm_root CTSM_ROOT --cime_root CIME_ROOT diff --git a/test/tools/nl_files/PTCLM_USUMB_clm4_5 b/test/tools/nl_files/PTCLM_USUMB_clm4_5 deleted file mode 100644 index 5ed93b26bd..0000000000 --- a/test/tools/nl_files/PTCLM_USUMB_clm4_5 +++ /dev/null @@ -1 +0,0 @@ --s US-UMB -d CSMDATA --mydatadir . --map_gdate 171024 --ctsm_root CTSM_ROOT --cime_root CIME_ROOT From 3ad9eaf01184c35bb9982562a9b5f791302906fc Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 18 Nov 2021 21:54:52 -0700 Subject: [PATCH 51/54] Remove gen_domain testing --- test/tools/README.testnames | 2 +- test/tools/TCBtools.sh | 9 --------- test/tools/config_files/gen_domain | 0 test/tools/input_tests_master | 5 ----- test/tools/nl_files/gen_domain.T31.runoptions | 1 - test/tools/nl_files/gen_domain.ne30.runoptions | 1 - 6 files changed, 1 insertion(+), 17 deletions(-) delete mode 100644 test/tools/config_files/gen_domain delete mode 100644 test/tools/nl_files/gen_domain.T31.runoptions delete mode 100644 test/tools/nl_files/gen_domain.ne30.runoptions diff --git a/test/tools/README.testnames b/test/tools/README.testnames index 026ea72a38..58222d9333 100644 --- a/test/tools/README.testnames +++ b/test/tools/README.testnames @@ -26,7 +26,7 @@ a -- modify_data b -- subset_data c -- mkprocdata_map d -- mkmapgrids -e -- gen_domain +e -- unused f -- unused g -- mksurfdata_map h -- unused diff --git a/test/tools/TCBtools.sh b/test/tools/TCBtools.sh index b0ea9e4a87..205b2e9da0 100755 --- a/test/tools/TCBtools.sh +++ b/test/tools/TCBtools.sh @@ -81,15 +81,6 @@ if [ "$TOOLSLIBS" != "" ]; then fi while [ $still_compiling = "TRUE" ]; do - if [ "$2" = "gen_domain" ]; then - HOSTNAME=`uname -n | cut -c 1-2` - if [ "$HOSTNAME" = "be" ]; then - echo "TCBtools.sh: run configure for gen_domain on bluefire" - env CIMEROOT=${CLM_ROOT}/cime ${CLM_ROOT}/cime/tools/configure -mach bluefire >> test.log 2>&1 - rc=$? - fi - fi - ln -s Macros.make Macros echo "TCBtools.sh: call to make:" diff --git a/test/tools/config_files/gen_domain b/test/tools/config_files/gen_domain deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/test/tools/input_tests_master b/test/tools/input_tests_master index a26d72a216..1e7c574e63 100644 --- a/test/tools/input_tests_master +++ b/test/tools/input_tests_master @@ -3,11 +3,6 @@ smc#4 TSMscript_tools.sh mkprocdata_map mkprocdata_map_wrap mkprocdata_ne30_to_f19_I2000^tools__ds blc#4 TBLscript_tools.sh mkprocdata_map mkprocdata_map_wrap mkprocdata_ne30_to_f19_I2000^tools__ds -sme14 TSMCFGtools.sh gen_domain CFGtools__ds T31.runoptions -ble14 TBLCFGtools.sh gen_domain CFGtools__ds T31.runoptions -sme@4 TSMCFGtools.sh gen_domain CFGtools__ds ne30.runoptions -ble@4 TBLCFGtools.sh gen_domain CFGtools__ds ne30.runoptions - smg54 TSMtools.sh mksurfdata_map tools__s namelist blg54 TBLtools.sh mksurfdata_map tools__s namelist diff --git a/test/tools/nl_files/gen_domain.T31.runoptions b/test/tools/nl_files/gen_domain.T31.runoptions deleted file mode 100644 index c1fcc07df1..0000000000 --- a/test/tools/nl_files/gen_domain.T31.runoptions +++ /dev/null @@ -1 +0,0 @@ --m CSMDATA/cpl/cpl6/map_gx3v7_to_T31_aave_da_090903.nc -o domain.ocn.gx3v7_test.nc -l domain.lnd.10x15_gx3v7.test.nc diff --git a/test/tools/nl_files/gen_domain.ne30.runoptions b/test/tools/nl_files/gen_domain.ne30.runoptions deleted file mode 100644 index 790969101e..0000000000 --- a/test/tools/nl_files/gen_domain.ne30.runoptions +++ /dev/null @@ -1 +0,0 @@ --m CSMDATA/cpl/cpl6/map_gx1v6_to_ne30np4_aave_da_091227.nc -o domain.ocn.gx1v6_test.nc -l domain.lnd.ne30np4_gx1v6.test.nc From c13fa381d8985f43763d9de5861d331f3be0d3d7 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 18 Nov 2021 22:30:51 -0700 Subject: [PATCH 52/54] Remove unnneded files change run_neon test to use default OSBS site --- test/tools/TCBscripttools.sh | 80 -------------------- test/tools/TOPtools.sh | 120 ------------------------------ test/tools/TSMncl_tools.sh | 74 ------------------ test/tools/input_tests_master | 4 +- test/tools/nl_files/run_neon_OSBS | 1 + test/tools/nl_files/run_neon_YELL | 1 - 6 files changed, 3 insertions(+), 277 deletions(-) delete mode 100755 test/tools/TCBscripttools.sh delete mode 100755 test/tools/TOPtools.sh delete mode 100755 test/tools/TSMncl_tools.sh create mode 100644 test/tools/nl_files/run_neon_OSBS delete mode 100644 test/tools/nl_files/run_neon_YELL diff --git a/test/tools/TCBscripttools.sh b/test/tools/TCBscripttools.sh deleted file mode 100755 index 2605f4b5c4..0000000000 --- a/test/tools/TCBscripttools.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/sh -# - -if [ $# -ne 2 ]; then - echo "TCBscripttools.sh: incorrect number of input arguments" - exit 1 -fi - -test_name=TCBscripttools.$1.$2 - -if [ -f ${CLM_TESTDIR}/${test_name}/TestStatus ]; then - if grep -c PASS ${CLM_TESTDIR}/${test_name}/TestStatus > /dev/null; then - echo "TCBscripttools.sh: build test has already passed; results are in " - echo " ${CLM_TESTDIR}/${test_name}" - exit 0 - elif grep -c GEN ${CLM_TESTDIR}/${test_name}/TestStatus > /dev/null; then - echo "TCBscripttools.sh: test already generated" - else - read fail_msg < ${CLM_TESTDIR}/${test_name}/TestStatus - prev_jobid=${fail_msg#*job} - - if [ $JOBID = $prev_jobid ]; then - echo "TCBscripttools.sh: build test has already failed for this job - will not reattempt; " - echo " results are in: ${CLM_TESTDIR}/${test_name}" - exit 2 - else - echo "TCBscripttools.sh: this build test failed under job ${prev_jobid} - moving those results to " - echo " ${CLM_TESTDIR}/${test_name}_FAIL.job$prev_jobid and trying again" - cp -rp ${CLM_TESTDIR}/${test_name} ${CLM_TESTDIR}/${test_name}_FAIL.job$prev_jobid - fi - fi -fi - -cfgdir=`ls -1d ${CLM_ROOT}/tools/$1` -blddir=${CLM_TESTDIR}/${test_name} -if [ -d ${blddir} ]; then - rm -r ${blddir} -fi -mkdir -p ${blddir} -if [ $? -ne 0 ]; then - echo "TCBscripttools.sh: error, unable to create work subdirectory" - exit 3 -fi -cd ${blddir} - -echo "TCBscripttools.sh: building $1 executables; output in ${blddir}/test.log" -# -# Build script to exercise -# -if [ ! -x ${cfgdir}/$2 ]; then - echo "TCB.sh: build run script file ${cfgdir}/$2 not found" - echo "FAIL.job${JOBID}" > TestStatus - exit 4 -fi - -echo "TCBscripttools.sh: run the build scriptmake:" -echo " ${cfgdir}/$2" - -if [ "$debug" != "YES" ]; then - export CTSM_ROOT=${CLM_ROOT} - export CIME_ROOT=${CLM_ROOT}/cime - ${cfgdir}/$2 >> test.log 2>&1 - rc=$(( $rc + $? )) - status="PASS" -else - status="GEN" - rc=0 -fi -if [ $rc -eq 0 ]; then - echo "TCBscripttools.sh: build script was successful" - echo "TCBscripttools.sh: build script test passed" - echo "$status" > TestStatus -else - echo "TCBscripttools.sh: clm build script failed, error from build script= $rc" - echo "TCBscripttools.sh: see ${CLM_TESTDIR}/${test_name}/test.log for details" - echo "FAIL.job${JOBID}" > TestStatus - exit 6 -fi - -exit 0 diff --git a/test/tools/TOPtools.sh b/test/tools/TOPtools.sh deleted file mode 100755 index c8efb440a2..0000000000 --- a/test/tools/TOPtools.sh +++ /dev/null @@ -1,120 +0,0 @@ -#!/bin/sh -# - -if [ $# -ne 3 ]; then - echo "TOPtools.sh: incorrect number of input arguments" - exit 1 -fi - -test_name=TOPtools.$1.$2.$3 - -if [ -f ${CLM_TESTDIR}/${test_name}/TestStatus ]; then - if grep -c PASS ${CLM_TESTDIR}/${test_name}/TestStatus > /dev/null; then - echo "TOPtools.sh: smoke test has already passed; results are in " - echo " ${CLM_TESTDIR}/${test_name}" - exit 0 - elif grep -c GEN ${CLM_TESTDIR}/${test_name}/TestStatus > /dev/null; then - echo "TOPtools.sh: test already generated" - else - read fail_msg < ${CLM_TESTDIR}/${test_name}/TestStatus - prev_jobid=${fail_msg#*job} - - if [ $JOBID = $prev_jobid ]; then - echo "TOPtools.sh: smoke test has already failed for this job - will not reattempt; " - echo " results are in: ${CLM_TESTDIR}/${test_name}" - exit 2 - else - echo "TOPtools.sh: this smoke test failed under job ${prev_jobid} - moving those results to " - echo " ${CLM_TESTDIR}/${test_name}_FAIL.job$prev_jobid and trying again" - cp -rp ${CLM_TESTDIR}/${test_name} ${CLM_TESTDIR}/${test_name}_FAIL.job$prev_jobid - fi - fi -fi - -rundir=${CLM_TESTDIR}/${test_name} -if [ -d ${rundir} ]; then - rm -r ${rundir} -fi -mkdir -p ${rundir} -if [ $? -ne 0 ]; then - echo "TOPtools.sh: error, unable to create work subdirectory" - exit 3 -fi -cd ${rundir} - -if [ ${CLM_THREADS} -lt 2 ]; then - echo "TOPtools.sh: error not enough threads are being used to do the comparision" - echo "FAIL.job${JOBID}" > TestStatus - exit 5 -fi -if [ "$2" != "tools__o" ] && [ "$2" != "tools__do" ]; then - echo "TOPtools.sh: error build needs to be done Open-MP" - echo "FAIL.job${JOBID}" > TestStatus - exit 5 -fi - -echo "TOPtools.sh: calling TSMtools.sh to run $1 executable" -${CLM_SCRIPTDIR}/TSMtools.sh $1 $2 $3 -rc=$? -if [ $rc -ne 0 ]; then - echo "TOPtools.sh: error from TSMtools.sh= $rc" - echo "FAIL.job${JOBID}" > TestStatus - exit 6 -fi -mkdir $rundir/$CLM_THREADS -cp ${CLM_TESTDIR}/TSMtools.$1.$2.$3/*.nc $rundir/$CLM_THREADS - -# Get a list of different threads to run for, powers of 2 from 1 up to the thread count -threads=1 -list="1 " -until [ "$threads" -ge "$CLM_THREADS" ]; do - threads=`perl -e "$CLM_THREADS<$threads*2 ? print $CLM_THREADS : print $threads*2"` - if [ "$threads" -lt "$CLM_THREADS" ]; then list="$list $threads "; fi -done - -all_comparisons_good="TRUE" -for threads in $list -do - echo "TOPtools.sh: calling TSMtools.sh to run $1 executable for $threads threads" - env CLM_THREADS=$threads CLM_RERUN=yes ${CLM_SCRIPTDIR}/TSMtools.sh $1 $2 $3 - rc=$? - if [ $rc -ne 0 ]; then - echo "TOPtools.sh: error from TSMtools.sh= $rc" - echo "FAIL.job${JOBID}" > TestStatus - exit 6 - fi - mkdir $rundir/$threads - cp ${CLM_TESTDIR}/TSMtools.$1.$2.$3/*.nc $rundir/$threads - files_to_compare=`cd $rundir/$threads; ls *.nc` - for compare_file in ${files_to_compare}; do - - env CPRNC_OPT="-m" \ - ${CLM_SCRIPTDIR}/CLM_compare.sh \ - $rundir/$CLM_THREADS/${compare_file} \ - $rundir/$threads/${compare_file} - rc=$? - cprout="cprnc.${compare_file}.threads${threads}.out" - mv cprnc.out $cprout - if [ $rc -eq 0 ]; then - echo "TOPtools.sh: comparison successful; output in $cprout" - else - echo "TOPtools.sh: error from CLM_compare.sh= $rc; see $cprout for details" - all_comparisons_good="FALSE" - fi - done -done - -if [ ${all_comparisons_good} = "TRUE" ]; then - echo "TOPtools.sh: OpenMP comparison test passed" - echo "PASS" > TestStatus - if [ $CLM_RETAIN_FILES != "TRUE" ]; then - echo "TOPtools.sh: removing some unneeded files to save disc space" - rm */*.nc - fi -else - echo "TOPtools.sh: at least one file comparison did not pass" - echo "FAIL.job${JOBID}" > TestStatus - exit 7 -fi - -exit 0 diff --git a/test/tools/TSMncl_tools.sh b/test/tools/TSMncl_tools.sh deleted file mode 100755 index eb82142e4d..0000000000 --- a/test/tools/TSMncl_tools.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh -# - -if [ $# -ne 1 ]; then - echo "TSMncl_tools.sh: incorrect number of input arguments" - exit 1 -fi - -test_name=TSMncl_tools.$1 - -if [ -f ${CLM_TESTDIR}/${test_name}/TestStatus ]; then - if grep -c PASS ${CLM_TESTDIR}/${test_name}/TestStatus > /dev/null; then - echo "TSMncl_tools.sh: smoke test has already passed; results are in " - echo " ${CLM_TESTDIR}/${test_name}" - exit 0 - elif grep -c GEN ${CLM_TESTDIR}/${test_name}/TestStatus > /dev/null; then - echo "TSMncl_tools.sh: test already generated" - else - read fail_msg < ${CLM_TESTDIR}/${test_name}/TestStatus - prev_jobid=${fail_msg#*job} - - if [ $JOBID = $prev_jobid ]; then - echo "TSMncl_tools.sh: smoke test has already failed for this job - will not reattempt; " - echo " results are in: ${CLM_TESTDIR}/${test_name}" - exit 2 - else - echo "TSMncl_tools.sh: this smoke test failed under job ${prev_jobid} - moving those results to " - echo " ${CLM_TESTDIR}/${test_name}_FAIL.job$prev_jobid and trying again" - cp -rp ${CLM_TESTDIR}/${test_name} ${CLM_TESTDIR}/${test_name}_FAIL.job$prev_jobid - fi - fi -fi - -cfgdir=`ls -1d ${CLM_ROOT}/tools/$1/ncl_scripts` -rundir=${CLM_TESTDIR}/${test_name} -if [ -d ${rundir} ]; then - rm -r ${rundir} -fi -mkdir -p ${rundir} -if [ $? -ne 0 ]; then - echo "TSMncl_tools.sh: error, unable to create work subdirectory" - exit 3 -fi -cd ${rundir} - -echo "TSMncl_tools.sh: running $1 output in ${rundir}/test.log" - -if [ ! -f "${cfgdir}/$1.ncl" ]; then - echo "TSMncl_tools.sh: error ${cfgdir}/$1.ncl input script not found" - echo "FAIL.job${JOBID}" > TestStatus - exit 5 -fi - -if [ "$debug" != "YES" ] && [ "$compile_only" != "YES" ]; then - ncl ${cfgdir}/$1.ncl >> test.log 2>&1 - status="PASS" - rc=$? -else - echo "success" > test.log - status="GEN" - rc=0 -fi - -if [ $rc -eq 0 ] && grep -ci "success" test.log > /dev/null; then - echo "TSMncl_tools.sh: smoke test passed" - echo "$status" > TestStatus -else - echo "TSMncl_tools.sh: error running $1, error= $rc" - echo "TSMncl_tools.sh: see ${CLM_TESTDIR}/${test_name}/test.log for details" - echo "FAIL.job${JOBID}" > TestStatus - exit 6 -fi - -exit 0 diff --git a/test/tools/input_tests_master b/test/tools/input_tests_master index 1e7c574e63..51cfa3a2fc 100644 --- a/test/tools/input_tests_master +++ b/test/tools/input_tests_master @@ -33,8 +33,8 @@ bliT4 TBLscript_tools.sh mksurfdata_map mksurfdata.pl mksrfdt_1x1_numaIA_crp_200 smiT2 TSMscript_tools.sh mksurfdata_map mksurfdata.pl mksrfdt_1x1_numaIA_crp_SSP5-8.5_1850-2100^tools__s bliT2 TBLscript_tools.sh mksurfdata_map mksurfdata.pl mksrfdt_1x1_numaIA_crp_SSP5-8.5_1850-2100^tools__s -sm0a1 TSMscript_tools.sh site_and_regional run_neon.py run_neon_YELL -bl0a1 TBLscript_tools.sh site_and_regional run_neon.py run_neon_YELL +sm0a1 TSMscript_tools.sh site_and_regional run_neon.py run_neon_OSBS +bl0a1 TBLscript_tools.sh site_and_regional run_neon.py run_neon_OSBS smba1 TSMscript_tools.sh site_and_regional subset_data.py subset_data_YELL blba1 TBLscript_tools.sh site_and_regional subset_data.py subset_data_YELL diff --git a/test/tools/nl_files/run_neon_OSBS b/test/tools/nl_files/run_neon_OSBS new file mode 100644 index 0000000000..b45fc4ffe9 --- /dev/null +++ b/test/tools/nl_files/run_neon_OSBS @@ -0,0 +1 @@ +ad --case-root EXEDIR diff --git a/test/tools/nl_files/run_neon_YELL b/test/tools/nl_files/run_neon_YELL deleted file mode 100644 index 1223f1d3c9..0000000000 --- a/test/tools/nl_files/run_neon_YELL +++ /dev/null @@ -1 +0,0 @@ ---neon_sites YELL --case-root EXEDIR ad From 8cf563bda67ef0a484d835553252978515027669 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Thu, 18 Nov 2021 22:31:21 -0700 Subject: [PATCH 53/54] Start working on change files --- doc/.ChangeLog_template | 5 -- doc/ChangeLog | 161 ++++++++++++++++++++++++++++++++++++++++ doc/ChangeSum | 1 + 3 files changed, 162 insertions(+), 5 deletions(-) diff --git a/doc/.ChangeLog_template b/doc/.ChangeLog_template index 84026a6805..c197c5f9eb 100644 --- a/doc/.ChangeLog_template +++ b/doc/.ChangeLog_template @@ -105,11 +105,6 @@ infrastructure should be run when appropriate, as described below. cheyenne - - PTCLM testing (tools/shared/PTCLM/test): (if cime or cime_config are changed) - (PTCLM is being deprecated, so we only expect this to be done on occasion) - - cheyenne - - python testing (if python code has changed; see instructions in python/README.md; document testing done): (any machine) - diff --git a/doc/ChangeLog b/doc/ChangeLog index e41828d847..2fa814c7d8 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,4 +1,165 @@ =============================================================== +Tag name: ctsm5.1.dev062 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Thu Nov 18 22:31:00 MST 2021 +One-line Summary: Make NUOPC the default driver rather than MCT + +Purpose and description of changes +---------------------------------- + +Remove MODEL as a setting for the build system, use COMP_NAME instead. +Adds a container machine definition. + + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? +(Details of any changes will be given in the "Answer changes" section below.) + + [Put an [X] in the box for any configuration with significant answer changes.] + +[x] clm5_1 + +[x] clm5_0 + +[x] ctsm5_0-nwp + +[x] clm4_5 + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): + Fixes #1557 more procesors on izumi for f09/f19 + Fixes #1478 Rework some tests when we go to nuopc + Fixes #1365 NUOPC changes DATM_CLMNCEP_YR to DATM_YR + Fixes #1083 Use named constants rather than literal strings in NUOPC cap + Fixes #1237 Add namelist flag force_send_to_atm + Fixes #1502 Make NUOPC the default + Fixes #1476 Remove blank lines from ctsm.input_data_list + Fixes #1517 Don't allow -namelist as an option to CLM_BLDNML_OPTS + Fixes #1523 Change MODEL to COMP_NAME in buildlib + Fixes #1545 NUOPC tests that fail with floating point errors + Fixes #1192 Incompatible IC files for f09 + Fixes #1544 MOSART dies for SSP tests + Fixes #1543 usgs mask doesn't work with nuopc + +Known bugs found since the previous tag (include issue #): + #1528 If possible, set more lnd -> mediator coupling fields to spval over ocean + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + +Changes made to namelist defaults (e.g., changed parameter values): + +Changes to the datasets (e.g., parameter, surface or initial files): + +Substantial timing or memory changes: + The PFS test shows the following: + Model Cost: 265.58 pe-hrs/simulated_year + Model Throughput: 165.91 simulated_years/day + The previous baseline for the MCT driver showed this + Model Cost: 214.41 pe-hrs/simulated_year + Model Throughput: 205.52 simulated_years/day + The RUN length in TestStatus for dev05* and dev06* versions varied from 58 to 81 seconds + so about up to a 20% variation + + +Notes of particular relevance for developers: +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide +[Remove any lines that don't apply. Remove entire section if nothing applies.] + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + +Changes to tests or testing: + + +Testing summary: regular fates ctsm_sci +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + build-namelist tests (if CLMBuildNamelist.pm has changed): + + cheyenne - PASS (486 tests differ from baseline as expected) + + tools-tests (test/tools) (if tools have been changed): + + cheyenne - + + python testing (if python code has changed; see instructions in python/README.md; document testing done): + + cheyenne - PASS + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- PASS + izumi ------- OK + + fates tests: + cheyenne ---- OK + + ctsm_sci tests: + cheyenne ---- PASS + + any other testing (give details below): + Did run ctsm_sci tests on izumi before we decided to remove them + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes! (because NUOPC is the default driver now rather than MCT) + + Summarize any changes to answers, i.e., + - what code configurations: All where driver changes + - what platforms/compilers: All + - nature of change: similar climate + + If this tag changes climate describe the run(s) done to evaluate the new + climate (put details of the simulations in the experiment database) + /glade/work/oleson/cesm2_3_alpha03a/cime/scripts/ctsm51_cesm23a03a_1deg_GSWP3V1_mct_hist + /glade/work/oleson/cesm2_3_alpha03a/cime/scripts/ctsm51_cesm23a03a_1deg_GSWP3V1_nuopc_hist + + The history output is here (for now): + + /glade/p/cgd/tss/people/oleson/ctsm51_cesm23a03a_1deg_GSWP3V1_mct_hist + /glade/p/cgd/tss/people/oleson/ctsm51_cesm23a03a_1deg_GSWP3V1_nuopc_hist + + URL for LMWG diagnostics output used to validate new climate: + + The diagnostics comparing NUOPC to MCT are here: + + https://webext.cgd.ucar.edu/I20TR/ctsm51_cesm23a03a_1deg_GSWP3V1_nuopc_hist/lnd/ctsm51_cesm23a03a_1deg_GSWP3V1_nuopc_hist.1995_2014-ctsm51_cesm23a03a_1deg_GSWP3V1_mct_hist.1995_2014/setsIndex.html + + +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + cism to cismwrap_2_1_93 + rtm to rtm1_0_78 + mosart to mosart1_0_45 + cime to cime6.0.11 + cmeps to cmeps0.13.40 + cdeps to cmeps0.13.40 + cpl7 to cpl7.0.5 + share to share1.0.8 + fates to sci.1.49.1_api.17.0.0 + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + #1502 -- Make the NUOPC driver the default + +=============================================================== +=============================================================== Tag name: ctsm5.1.dev061 Originator(s): mvertens (Mariana Vertenstein) Date: Tue Oct 19 11:56:30 MDT 2021 diff --git a/doc/ChangeSum b/doc/ChangeSum index 095036527f..d952731ef6 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,5 +1,6 @@ Tag Who Date Summary ============================================================================================================================ + ctsm5.1.dev062 erik 11/18/2021 Make NUOPC the default driver rather than MCT ctsm5.1.dev061 mvertens 10/19/2021 Changes needed to get aux history output with cmeps ctsm5.1.dev060 glemieux 10/18/2021 Izumi aux_clm test fixes for fates testmods ctsm5.1.dev059 glemieux 10/13/2021 Update fates tests and list for diversity and coverage From 5debfe053a0c91e7cd07a2f2c550590353eef83f Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Fri, 19 Nov 2021 00:53:41 -0700 Subject: [PATCH 54/54] Update change files --- doc/ChangeLog | 31 ++++++++++++++++++------------- doc/ChangeSum | 2 +- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 2fa814c7d8..3010c7bcbc 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,15 +1,20 @@ =============================================================== Tag name: ctsm5.1.dev062 Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) -Date: Thu Nov 18 22:31:00 MST 2021 +Date: Fri Nov 19 00:53:29 MST 2021 One-line Summary: Make NUOPC the default driver rather than MCT Purpose and description of changes ---------------------------------- +Make NUOPC the default driver rather than MCT. Update externals and switch +tests so nuopc tests are explicit for mct. Fix several issues. Update the README +files and in-place documentation. + Remove MODEL as a setting for the build system, use COMP_NAME instead. -Adds a container machine definition. +Adds a container machine definition in cime. +See README.NUOPC_driver.md at the top level for a description of what changes. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -53,14 +58,15 @@ Notes of particular relevance for users --------------------------------------- Caveats for users (e.g., need to interpolate initial conditions): + domain files are normally no longer used Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + See README.NUOPC_driver.md for a description of what changes Changes made to namelist defaults (e.g., changed parameter values): + New namelist added force_send_to_atm -Changes to the datasets (e.g., parameter, surface or initial files): - -Substantial timing or memory changes: +Substantial timing or memory changes: A bit slower, but less overall memory The PFS test shows the following: Model Cost: 265.58 pe-hrs/simulated_year Model Throughput: 165.91 simulated_years/day @@ -69,19 +75,16 @@ Substantial timing or memory changes: Model Throughput: 205.52 simulated_years/day The RUN length in TestStatus for dev05* and dev06* versions varied from 58 to 81 seconds so about up to a 20% variation + Highwater memory mark is higher (67 vs 131 GB), and last usage (323 vs 165MB) lower than MCT Notes of particular relevance for developers: --------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -[Remove any lines that don't apply. Remove entire section if nothing applies.] - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): - Changes to tests or testing: + Switch nuopc tests for mct. Remove ctsm_sci tests on izumi. Set MOSART_MODE==NULL for spinup tests + PTCLM and gen_domain tools tests removed - -Testing summary: regular fates ctsm_sci +Testing summary: regular fates ctsm_sci tools ---------------- [PASS means all tests PASS; OK means tests PASS other than expected fails.] @@ -91,7 +94,7 @@ Testing summary: regular fates ctsm_sci tools-tests (test/tools) (if tools have been changed): - cheyenne - + cheyenne - OK python testing (if python code has changed; see instructions in python/README.md; document testing done): @@ -156,7 +159,9 @@ List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): Pull Requests that document the changes (include PR ids): (https://github.com/ESCOMP/ctsm/pull) + #1530 -- Add compsets for multiple ice-sheets #1502 -- Make the NUOPC driver the default + #1540 -- Implement fates_levleaf as a FATES 1D dimension variable =============================================================== =============================================================== diff --git a/doc/ChangeSum b/doc/ChangeSum index d952731ef6..9969f38e96 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,6 +1,6 @@ Tag Who Date Summary ============================================================================================================================ - ctsm5.1.dev062 erik 11/18/2021 Make NUOPC the default driver rather than MCT + ctsm5.1.dev062 erik 11/19/2021 Make NUOPC the default driver rather than MCT ctsm5.1.dev061 mvertens 10/19/2021 Changes needed to get aux history output with cmeps ctsm5.1.dev060 glemieux 10/18/2021 Izumi aux_clm test fixes for fates testmods ctsm5.1.dev059 glemieux 10/13/2021 Update fates tests and list for diversity and coverage