diff --git a/.config_files.xml b/.config_files.xml index 8e4868b94f..d1a592e5db 100644 --- a/.config_files.xml +++ b/.config_files.xml @@ -5,27 +5,31 @@ char unset - $SRCROOT - $CIMEROOT/src/components/data_comps/dlnd - $CIMEROOT/src/components/stub_comps/slnd - $CIMEROOT/src/components/xcpl_comps/xlnd + $SRCROOT + $SRCROOT/components/slim/ + $SRCROOT/components/cpl7/components/data_comps_$COMP_INTERFACE/dlnd + $SRCROOT/components/cdeps/dlnd + $SRCROOT/components/cpl7/components/stub_comps_$COMP_INTERFACE/slnd + $CIMEROOT/CIME/non_py/src/components/stub_comps_$COMP_INTERFACE/slnd + $SRCROOT/components/cpl7/components/xcpl_comps_$COMP_INTERFACE/xlnd + $CIMEROOT/CIME/non_py/src/components/xcpl_comps_$COMP_INTERFACE/xlnd case_comps env_case.xml Root directory of the case land model component - $CIMEROOT/config/xml_schemas/config_compsets.xsd + $CIMEROOT/CIME/data/config/xml_schemas/config_compsets.xsd diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000000..e14ce11599 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,21 @@ +# Ran python directory through black python formatter +d229b5c6689efc4c2a6cef077515c4ccd5c18ff6 +4cd83cb3ee6d85eb909403487abf5eeaf4d98911 +0aa2957c1f8603c63fa30b11295c06cfddff44a5 +2cdb380febb274478e84cd90945aee93f29fa2e6 +e44dc469439e02e9ee582dab274d890ebdfab104 +565e7bcacbb0bba20ff80d680d8ad769676641c6 +b88e1cd1b28e3609684c79a2ec0e88f26cfc362b +51c102c5df2e0ef971b5f8eeeb477567899af63a +7dacad70e74e2ec97f6492d4e7a3cb5dd498bcd7 +b771971e3299c4fa56534b93421f7a2b9c7282fd +9de88bb57ea9855da408cbec1dc8acb9079eda47 +8bc4688e52ea23ef688e283698f70a44388373eb +0a5a9e803b56ec1bbd6232eff1c99dbbeef25eb7 +810cb346f05ac1aabfff931ab1a2b7b584add241 +5933b0018f8e29413e30dda9b906370d147bad45 +# Ran SystemTests and python/ctsm through black python formatter +5364ad66eaceb55dde2d3d598fe4ce37ac83a93c +8056ae649c1b37f5e10aaaac79005d6e3a8b2380 +540b256d1f3382f4619d7b0877c32d54ce5c40b6 +8a168bb0895f4f2421608dd2589398e13a6663e6 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..3ab9b6ad54 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,7 @@ +*.svg filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.gif filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.nc filter=lfs diff=lfs merge=lfs -text diff --git a/.github/ISSUE_TEMPLATE/03_science_discussion.md b/.github/ISSUE_TEMPLATE/02_science_discussion.md similarity index 100% rename from .github/ISSUE_TEMPLATE/03_science_discussion.md rename to .github/ISSUE_TEMPLATE/02_science_discussion.md diff --git a/.github/ISSUE_TEMPLATE/02_support_needed.md b/.github/ISSUE_TEMPLATE/02_support_needed.md deleted file mode 100644 index d3c69aaf6a..0000000000 --- a/.github/ISSUE_TEMPLATE/02_support_needed.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -name: Support needed for model use -about: Ask for help with using CTSM - ---- - -### NOTE: Be sure to read the relevant documentation and user forums - -We have limited staff and ability to provide support. Here are some resources that might provide help: -- User's Guide: https://escomp.github.io/ctsm-docs/doc/build/html/users_guide/index.html -- CLM Forum: https://bb.cgd.ucar.edu/forums/land-modeling-clm -- README files amongst the source code -- GitHub CTSM issues: https://github.com/escomp/ctsm/issues/ -- Also make sure this issue is unique to CTSM and not really an issue with CESM or CIME - -### Details of support request - -[Fill in details here.] - -### Important details of your setup / configuration so we can better assist you - -**CTSM version you are using:** [output of `git describe`] - -**Have you made any modifications to code, xml files, etc.?** [Yes / No] - -[If Yes: Please point us to your modifications. However: In general we can NOT support problems with modified code. Try to show the problem without modifications.] - -**If you are having problems with a specific case: Is your case on a machine accessible to most CTSM developers (e.g., an NCAR machine)?** [Yes / No] - -If Yes: - -- Location of case directory: [Fill this in] - -- Location of run directory: [Fill this in] - -[If No: Please make sure you have included all important input and output needed to understand your issue, either by pasting it into the issue text, or by attaching relevant files. However: We are less likely to be able to reproduce your problem if the issue is NOT on an NCAR machine.] diff --git a/.github/ISSUE_TEMPLATE/04_other.md b/.github/ISSUE_TEMPLATE/03_other.md similarity index 100% rename from .github/ISSUE_TEMPLATE/04_other.md rename to .github/ISSUE_TEMPLATE/03_other.md diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..e76b47bf4a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: CESM forums + url: https://bb.cgd.ucar.edu/cesm/forums/ctsm-clm-mosart-rtm.134/ + about: For support with model use, troubleshooting, etc., please use the CTSM forum diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 306ee7b1f3..4c8f6ca499 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -16,5 +16,7 @@ Testing performed, if any: (Documentation on system testing is here: https://github.com/ESCOMP/ctsm/wiki/System-Testing-Guide) (aux_clm on cheyenne for intel/gnu and izumi for intel/gnu/nag/pgi is the standard for tags on master) -**NOTE: Be sure to check your Coding style against the standard:** -https://github.com/ESCOMP/ctsm/wiki/CTSM-coding-guidelines +**NOTE: Be sure to check your coding style against the standard +(https://github.com/ESCOMP/ctsm/wiki/CTSM-coding-guidelines) and review +the list of common problems to watch out for +(https://github.com/ESCOMP/CTSM/wiki/List-of-common-problems).** diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml new file mode 100644 index 0000000000..3759fa84c3 --- /dev/null +++ b/.github/workflows/black.yml @@ -0,0 +1,37 @@ +name: black check on push and PR +# +# Run the python formatting in check mode +# +on: [push, pull_request] + +jobs: + black-check: + runs-on: ubuntu-latest + steps: + # Checkout the code + - uses: actions/checkout@v2 + # Use the latest stable version of the github action + - uses: psf/black@stable + with: + # Use options and version identical to the conda environment + # Using pyproject.toml makes sure this testing is consistent with our python directory testing + options: "--check --config python/pyproject.toml" + src: "./python" + # Version should be coordinated with the ctsm_pylib conda environment under the python directory + version: "22.3.0" + # Actions identical to above for each directory and source file we need to check (arrays aren't allowed for src: field) + - uses: psf/black@stable + with: + options: "--check --config python/pyproject.toml" + src: "./cime_config/SystemTests" + version: "22.3.0" + - uses: psf/black@stable + with: + options: "--check --config python/pyproject.toml" + src: "./cime_config/buildlib" + version: "22.3.0" + - uses: psf/black@stable + with: + options: "--check --config python/pyproject.toml" + src: "./cime_config/buildnml" + version: "22.3.0" diff --git a/.gitignore b/.gitignore index bb3e31bb87..a821309ced 100644 --- a/.gitignore +++ b/.gitignore @@ -1,21 +1,44 @@ # directories checked out by manage_externals, and other files created # by manage_externals manage_externals.log +ccs_config /src/fates/ -/tools/PTCLM/ /cime/ /components/ +/libraries/ +/share/ +/doc/doc-builder/ # ignore svn directories **/.svn/** .svn/ -# binary files +# netcdf files *.nc +# but don't ignore netcdf files here: +!/python/ctsm/test/testinputs/*.nc # editor files *.swp *~ +.vscode/ + +# vim files (from https://github.com/github/gitignore/blob/master/Global/Vim.gitignore) +# Swap +[._]*.s[a-v][a-z] +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] +# Session +Session.vim +# Temporary +.netrwhist +# (removed *~ because it is listed above) +# Auto-generated tag files +tags +# Persistent undo +[._]*.un~ # mac files .DS_Store @@ -30,16 +53,6 @@ CMakeFiles/ # unit testing directories /src/unit_tests.* -# files generated by the unit test build -/src/dyn_subgrid/dynVarMod.F90 -/src/dyn_subgrid/dynVarTimeInterpMod.F90 -/src/dyn_subgrid/dynVarTimeUninterpMod.F90 -/src/utils/array_utils.F90 -/src/unit_test_stubs/utils/restUtilMod_stub.F90 -/src/unit_test_stubs/main/ncdio_pio_fake.F90 -/src/unit_test_stubs/main/ncdio_var.F90 -/src/unit_test_shr/unittestArrayMod.F90 - # cime_config buildnmlc @@ -55,6 +68,7 @@ buildnmlc /bld/unit_testers/drv_flds_in* /bld/unit_testers/temp_file.txt* /bld/unit_testers/user_nl_clm_real_parameters* +/bld/unit_testers/user_nl_ctsm_real_parameters* /bld/unit_testers/env_run.xml # tools testing output @@ -69,10 +83,13 @@ surfdata_*.namelist landuse.timeseries_*.namelist landuse.timeseries_*.log landuse_timeseries_*.txt -clm.input_data_list -clm.input_data_list.previous +ctsm.input_data_list +ctsm.input_data_list.previous *.stdout.txt.o* +# mksurfdata unit tests +unit_test_build + # Tools executables /tools/mksurfdata_map/mksurfdata_map /tools/mkprocdata_map/mkprocdata_map @@ -88,6 +105,13 @@ clm.input_data_list.previous /tools/mkmapdata/regrid.o* /tools/mkmapdata/map*.nc +# run_neon output directories +/tools/site_and_regional/listing.csv +/tools/site_and_regional/????/ +/tools/site_and_regional/????.ad/ +/tools/site_and_regional/????.postad/ +/tools/site_and_regional/????.transient/ + # build output *.o *.mod diff --git a/.lfsconfig b/.lfsconfig new file mode 100644 index 0000000000..e97d0e2c7d --- /dev/null +++ b/.lfsconfig @@ -0,0 +1,7 @@ +[lfs] + # We auto-fetch any netCDF files, because they are needed for + # running tests; however, we do NOT auto-fetch other binary + # files, in particular image files that are part of the + # documentation source (these are fetched as part of the + # documentation build process). + fetchinclude = *.nc diff --git a/.zenodo.json b/.zenodo.json new file mode 100644 index 0000000000..1982ce4917 --- /dev/null +++ b/.zenodo.json @@ -0,0 +1,7 @@ +{ + "creators": [ + { + "name": "CTSM Development Team" + } + ] +} diff --git a/Copyright b/Copyright deleted file mode 100644 index 21b9688874..0000000000 --- a/Copyright +++ /dev/null @@ -1,75 +0,0 @@ -CESM1.5: Copyright Notice and Disclaimer - -The Community Earth System Model (CESM was developed in cooperation with -the National Science Foundation, the Department of Energy, -the National Aeronautics and Space Administration, and -the University Corporation for Atmospheric Research National Center for Atmospheric Research. - -Except for the segregable components listed below, CESM is public domain software. -There may be other third party tools and libraries that are embedded, and -they may have their own copyright notices and terms. - -The following components are copyrighted and may only be used, modified, -or redistributed under the terms indicated below. - -Code Institution Copyright Terms of Use/Disclaimer ----- ----------- --------- ----------------------- -ESMF University of Copyright University of Illinois/NCSA Open Source License - Illinois/NCSA 2002-2009, - University of - Illinois/NCSA - Open Source - License - -POP,SCRIP,CICE Los Alamos National Copyright 2008 Los Alamos National Security, LLC - Laboratory Los Alamos - National - Security, LLC - -CISM NCAR/LANL/ORNL/SNL/ Copyright GNU Lesser General Public License v. 3 - LBNL/NYU/U. Bristol/ 2004-2018, CISM is free software: you can redistribute it - U. Edinburgh/ GNU Lesser and/or modify it under the terms of the GNU - U. Montana/U. Swansea General Public Lesser General Public License as published by the - License v. 3 Free Software Foundation, either version 3 of the - License, or (at your option) any later version. - -AER RRTMG Atmospheric Copyright AER RRTMG Copyright - and 2002-2010, - Environmental Atmospheric - Research, Inc. and - Environmental - Research, Inc. - -MCT Argonne Copyright 2000, MCT Copyright - National 2010, - Laboratory University of - Chicago. - -ICSSP N/A Copyright 2003, ISCCP Simulator Software - 2010, Steve - Klein and Mark - Webb - -XML/Lite Wadsack-Allen Copyright 2001, The documentation for the Perl XML-Lite - Digital Group 2010 module is no longer available on-line. - Wadsack-Allen - Digital Group - -Inf_NaN Lahey Copyright(c) Copies of this source code, or standalone compiled -_Detection Computer 2003, Lahey files derived from this source may not be sold -module Systems, Inc. Computer without permission from Lahey Computers Systems. - Systems, Inc. All or part of this module may be freely incorporated - into executable programs which are offered for sale. - Otherwise, distribution of all or part of this file is - permitted, provided this copyright notice and header - are included. - - -THIS SOFTWARE IS PROVIDED BY UCAR AND ANY CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL UCAR OR ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/Externals.cfg b/Externals.cfg index bec4d33548..e683f199ac 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -7,33 +7,95 @@ required = True [cism] local_path = components/cism protocol = git -repo_url = https://github.com/ESCOMP/cism-wrapper -tag = cism2_1_68 +repo_url = https://github.com/ESCOMP/CISM-wrapper +tag = cismwrap_2_1_95 externals = Externals_CISM.cfg required = True [rtm] local_path = components/rtm protocol = git -repo_url = https://github.com/ESCOMP/rtm -tag = rtm1_0_70 +repo_url = https://github.com/ESCOMP/RTM +tag = rtm1_0_78 required = True [mosart] local_path = components/mosart protocol = git -repo_url = https://github.com/ESCOMP/mosart -tag = mosart1_0_35 +repo_url = https://github.com/ESCOMP/MOSART +tag = mosart1_0_48 +required = True + +[mizuRoute] +local_path = components/mizuRoute +protocol = git +repo_url = https://github.com/nmizukami/mizuRoute +hash = 34723c2 +required = True + +[ccs_config] +tag = ccs_config_cesm0.0.65 +protocol = git +repo_url = https://github.com/ESMCI/ccs_config_cesm.git +local_path = ccs_config required = True [cime] local_path = cime protocol = git repo_url = https://github.com/ESMCI/cime -tag = cime5.8.15 -externals = ../Externals_cime.cfg +tag = cime6.0.125 +required = True + +[cmeps] +tag = cmeps0.14.21 +protocol = git +repo_url = https://github.com/ESCOMP/CMEPS.git +local_path = components/cmeps required = True +[cdeps] +tag = cdeps1.0.13 +protocol = git +repo_url = https://github.com/ESCOMP/CDEPS.git +local_path = components/cdeps +externals = Externals_CDEPS.cfg +required = True + +[cpl7] +tag = cpl77.0.5 +protocol = git +repo_url = https://github.com/ESCOMP/CESM_CPL7andDataComps +local_path = components/cpl7 +required = True + +[share] +tag = share1.0.17 +protocol = git +repo_url = https://github.com/ESCOMP/CESM_share +local_path = share +required = True + +[mct] +tag = MCT_2.11.0 +protocol = git +repo_url = https://github.com/MCSclimate/MCT +local_path = libraries/mct +required = True + +[parallelio] +tag = pio2_5_10 +protocol = git +repo_url = https://github.com/NCAR/ParallelIO +local_path = libraries/parallelio +required = True + +[doc-builder] +local_path = doc/doc-builder +protocol = git +repo_url = https://github.com/ESMCI/doc-builder +tag = v1.0.8 +required = False + [externals_description] schema_version = 1.0.0 - diff --git a/Externals_CLM.cfg b/Externals_CLM.cfg index 84b7d5ec33..14ba14d8b4 100644 --- a/Externals_CLM.cfg +++ b/Externals_CLM.cfg @@ -1,17 +1,9 @@ [fates] local_path = src/fates protocol = git -repo_url = https://github.com/NCAR/fates-release -tag = fates_s1.8.1_a3.0.0_rev2 -required = True - -[PTCLM] -local_path = tools/PTCLM -protocol = git -repo_url = https://github.com/ESCOMP/ptclm -tag = PTCLM2_180611 +repo_url = https://github.com/NGEET/fates +tag = sci.1.67.2_api.27.0.0 required = True [externals_description] schema_version = 1.0.0 - diff --git a/Externals_cime.cfg b/Externals_cime.cfg deleted file mode 100644 index cbede7df52..0000000000 --- a/Externals_cime.cfg +++ /dev/null @@ -1,9 +0,0 @@ -[cmeps] -hash = 181ff1ed9dfb279e619e8a2173f43baf7bf1dce3 -protocol = git -repo_url = https://github.com/ESCOMP/CMEPS.git -local_path = src/drivers/nuopc/ -required = True - -[externals_description] -schema_version = 1.0.0 diff --git a/README b/README index 76c0a04982..b2ac1eec4e 100644 --- a/README +++ b/README @@ -1,13 +1,25 @@ $CTSMROOT/README 06/08/2018 -Community Land Surface Model (CLM) science version 5.0.0 series -- source code, tools, +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 CLM 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. +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 +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: @@ -25,35 +37,32 @@ be $CTSMROOT/cime. General directory structure ($CTSMROOT): -doc --------------- Documentation of CLM. +doc --------------- Documentation of CTSM. bld --------------- Template, configure and build-namelist scripts for clm. -src --------------- CLM Source code. -test -------------- CLM Testing scripts for CLM offline tools. -tools ------------- CLM Offline tools to prepare input datasets and process output. -cime_config ------- Configuration files of cime for compsets and CLM settings +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) +py_env_create ----- Script to setup the python environment for CTSM python tools using conda +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 CLM to run (river routing and land-ice models) +components -------- Other active sub-components needed for CTSM to run (river routing and land-ice models) +libraries --------- CESM libraries: MCT (Model Coupling Toolkit) 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 [which is the default]) source code. +components/cdeps -------------------- CESM top level data model shared code (for NUOPC 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): @@ -64,8 +73,8 @@ CODE_OF_CONDUCT.md ------- Code of Conduct for how to work with each other on th Copyright ---------------- CESM Copyright file doc/UpdateChangeLog.pl --- Script to add documentation on a tag to the ChangeLog/ChangeSum files -doc/ChangeLog ------------ Documents different CLM versions -doc/ChangeSum ------------ Summary documentation of different CLM versions +doc/ChangeLog ------------ Documents different CTSM versions +doc/ChangeSum ------------ Summary documentation of different CTSM versions doc/design --------------- Software Engineering and code design document files @@ -84,7 +93,7 @@ Important files in main directories (under $CTSMROOT): ============================================================================================= Externals.cfg --------------- File for management of the main high level externals -Externals_CLM.cfg ----------- File for management of the CLM specific externals (i.e. FATES) +Externals_CLM.cfg ----------- File for management of the CTSM specific externals (i.e. FATES) run_sys_tests --------------- Python script to send the standard CTSM testing off (submits the create_test test suite for several different compilers on the @@ -92,7 +101,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. @@ -100,21 +109,21 @@ doc/ChangeLog --------------- Detailed list of changes for each model version. doc/ChangeSum --------------- Summary one-line list of changes for each model version. doc/README ------------------ Documentation similar to this file -doc/UsersGuide -------------- CLM Users Guide +doc/UsersGuide -------------- CTSM Users Guide doc/IMPORTANT_NOTES --------- Some important notes on caveats for some configurations/namelist items bld/README ------------------ Description of how to use the configure and build-namelist scripts. -bld/configure --------------- Script to prepare CLM to be built. -bld/build-namelist ---------- Script to build CLM namelists. - -cime_config/buildnml ------------- Build the CLM namelist for CIME -cime_config/buildlib ------------- Build the CLM library -cime_config/config_compsets.xml -- Define CLM compsets -cime_config/config_component.xml - Define CLM XML settings -cime_config/config_tests.xml ----- Define CLM specific tests -cime_config/config_pes.xml ------- Define Processor layouts for various CLM grids and compsets -cime_config/testdefs ------------- Directory for specification of CLM testing +bld/configure --------------- Script to prepare CTSM to be built. +bld/build-namelist ---------- Script to build CTSM namelists. + +cime_config/buildnml ------------- Build the CTSM namelist for CIME +cime_config/buildlib ------------- Build the CTSM library +cime_config/config_compsets.xml -- Define CTSM compsets +cime_config/config_component.xml - Define CTSM XML settings +cime_config/config_tests.xml ----- Define CTSM specific tests +cime_config/config_pes.xml ------- Define Processor layouts for various CTSM grids and compsets +cime_config/testdefs ------------- Directory for specification of CTSM testing cime_config/testdefs/ExpectedTestFails.xml -- List of tests that are expected to fail cime_config/usermods_dirs -------- Directories of sets of user-modification subdirs (These are directories that add specific user modifications to @@ -122,7 +131,7 @@ cime_config/usermods_dirs -------- Directories of sets of user-modification subd Current sub directories are for various CMIP6 configurations) test/tools/test_driver.sh -- Script for general software testing of - CLM's offline tools. + CTSM's offline tools. tools/mksurfdata_map ---------- Directory to build program to create surface dataset at any resolution. @@ -135,6 +144,12 @@ tools/ncl_scripts ------------ Directory of NCL and perl scripts to do various tasks. Most notably to plot perturbation error growth testing and to extract regional information from global datasets for single-point/regional simulations. +tools/site_and_regional ------- Scripts to create input datasets for single site and regional + cases, primarily by modifying existing global datasets +tools/contrib ----------------- Miscellansous useful scripts for pre and post processing + as well as case management of CTSM. These scripts are + contributed by users and may not be as well tested or + supported as other tools. ============================================================================================= @@ -143,7 +158,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 @@ -155,7 +170,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 new file mode 100644 index 0000000000..d3b37bc7c3 --- /dev/null +++ b/README.CHECKLIST.new_case @@ -0,0 +1,40 @@ +$CTSMROOT/README.CHECKLIST.new_case 03/01/2021 + +This is a check list of things to do when setting up a new case in order to help ensure everything is correct. There +are lots of tiny details that need to be right and it's easy to get something wrong. So the first screening to make +sure it's right is for you to carefully check through your case and make sure it's right. + +The following assumes you have created a new case and are in it's case directory. + +General Checklist to always do: + + - Make sure CLM_ env settings are correct + (./xmlquery -p CLM) + - Make sure you are using the correct CLM_PHYSICS_VERSION + (./xmlquery -p CLM_PHYSICS_VERSION) + - Make sure you are running the appropriate overall CLM vegetation model. + The "-bgc" option of either Satellite Phenology (sp), or + Full BioGeoChemistry (bgc), or FATES (fates) + (./xmlquery -p CLM_BLDNML_OPTS) + - Also if you are running the bgc model, check to see if you should be running the prognostic crop model + (option -crop in CLM_BLDNML_OPTS) + - 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_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) + - Last year for streams should be the last year you are going to run to (or beyond it) + (grep stream_year_last CaseDocs/lnd_in) + - Make sure you are starting from appropriate spunup initial conditions + (Check the run-type with: ./xmlquery RUN_TYPE) + (check finidat for a startup or hybrid simulation: grep finidat CaseDocs/lnd_in) + (check nrevsn for a branch simulation: grep nrevsn CaseDocs/lnd_in) + - Run for a month (or some short period) and go over the log files and especially the settings and files read in them. + (For an I case you especially want to look at the lnd.log and atm.log files) + +Some other suggestions on things that can be done: + +- Compare namelist files to an existing case if you are doing something almost the same as a previous simulation. +- Ask another collaborator to look over your case directory diff --git a/README.NUOPC_driver.md b/README.NUOPC_driver.md new file mode 100644 index 0000000000..578ba4aa8d --- /dev/null +++ b/README.NUOPC_driver.md @@ -0,0 +1,56 @@ +# $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 in almost all cases. Runoff mapping files +still need to be generated offline. + +## 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? + +DATM_CLMNCEP_YR_* variables change to DATM_YR_* + +## New obscure options: + +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 + +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? + +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 +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 diff --git a/README.md b/README.md new file mode 100644 index 0000000000..9de22e3663 --- /dev/null +++ b/README.md @@ -0,0 +1,61 @@ +# CTSM + +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3739617.svg)](https://doi.org/10.5281/zenodo.3739617) + +## Overview and resources + +The Community Terrestrial Systems Model. + +This includes the Community Land Model (CLM5.0 and CLM4.5) of the Community Earth System Model. + +For documentation, quick start, diagnostics, model output and +references, see + +http://www.cesm.ucar.edu/models/cesm2.0/land/ + +and + +https://escomp.github.io/ctsm-docs/ + +For help with how to work with CTSM in git, see + +https://github.com/ESCOMP/CTSM/wiki/Quick-start-to-CTSM-development-with-git + +and + +https://github.com/ESCOMP/ctsm/wiki/Recommended-git-setup + +For support with model use, troubleshooting, etc., please use the [CTSM +forum](https://bb.cgd.ucar.edu/cesm/forums/ctsm-clm-mosart-rtm.134/) or other appropriate forum (e.g., for +infrastructure/porting questions) through the [CESM forums](https://bb.cgd.ucar.edu/cesm/). + +To get updates on CTSM tags and important notes on CTSM developments +join our low traffic email list: + +https://groups.google.com/a/ucar.edu/forum/#!forum/ctsm-dev + +(Send email to ctsm-software@ucar.edu if you have problems with any of this) + +## CTSM code management team + +CTSM code management is provided primarily by: + +Software engineering team: +- [Erik Kluzek](https://github.com/ekluzek) +- [Bill Sacks](https://github.com/billsacks) +- [Sam Levis](https://github.com/slevisconsulting) +- [Adrianna Foster](https://github.com/adrifoster) +- [Sam Rabin](https://github.com/samsrabin) +- [Greg Lemieux](https://github.com/glemieux) +- [Ryan Knox](https://github.com/rgknox) + +Science team: +- [Dave Lawrence](https://github.com/dlawrenncar) +- [Will Wieder](https://github.com/wwieder) +- [Danica Lombardozzi](https://github.com/danicalombardozzi) +- [Keith Oleson](https://github.com/olyson) +- [Sean Swenson](https://github.com/swensosc) +- [Jackie Shuman](https://github.com/jkshuman) +- [Peter Lawrence](https://github.com/lawrencepj1) +- [Rosie Fisher](https://github.com/rosiealice) +- Gordon Bonan diff --git a/README.rst b/README.rst deleted file mode 100644 index 6569f5f809..0000000000 --- a/README.rst +++ /dev/null @@ -1,31 +0,0 @@ -==== -CTSM -==== - -The Community Terrestrial Systems Model. - -This includes the Community Land Model (CLM5.0 and CLM4.5) of the Community Earth System Model. - -For documentation, quick start, diagnostics, model output and -references, see - -http://www.cesm.ucar.edu/models/cesm2.0/land/ - -and - -https://escomp.github.io/ctsm-docs/ - -For help with how to work with CTSM in git, see - -https://github.com/ESCOMP/ctsm/wiki/Getting-started-with-CTSM-in-git - -and - -https://github.com/ESCOMP/ctsm/wiki/Recommended-git-setup - -To get updates on CTSM tags and important notes on CTSM developments -join our low traffic email list: - -https://groups.google.com/a/ucar.edu/forum/#!forum/ctsm-dev - -(Send email to ctsm-software@ucar.edu if you have problems with any of this) diff --git a/README_EXTERNALS.rst b/README_EXTERNALS.rst index 82496dca62..47632f3111 100644 --- a/README_EXTERNALS.rst +++ b/README_EXTERNALS.rst @@ -30,10 +30,9 @@ More details on checkout_externals The file **Externals.cfg** in your top-level CTSM directory tells **checkout_externals** which tag/branch of each component should be -brought in to generate your sandbox. (This file serves the same purpose -as SVN_EXTERNAL_DIRECTORIES when CLM was in a subversion repository.) +brought in to generate your sandbox. **Externals_CLM.cfg** is used similarly to point to the correct version of FATES (and possibly other CTSM-specific externals in the future); the below instructions referring to **Externals.cfg** also apply to modifying **Externals_CLM.cfg**. -NOTE: Just like svn externals, checkout_externals will always attempt +NOTE: checkout_externals will always attempt to make the working copy exactly match the externals description. If you manually modify an external without updating Externals.cfg, e.g. switch to a different tag, then rerunning checkout_externals will switch you @@ -96,7 +95,7 @@ example below):: tag = cime5.4.0-alpha.20 required = True -Each entry specifies either a tag or a branch. To point to a new tag: +Each entry specifies either a tag, a hash or a branch. To point to a new tag: #. Modify the relevant entry/entries in **Externals.cfg** (e.g., changing ``cime5.4.0-alpha.20`` to ``cime5.4.0-alpha.21`` above) @@ -105,6 +104,10 @@ Each entry specifies either a tag or a branch. To point to a new tag: ./manage_externals/checkout_externals +To point to a hash, the process is the same, except also change ``tag = ...`` to ``hash = ...``. + +To point to a branch, use ``branch = ...``. Pointing to a branch means that, each time you run ``manage_externals/checkout_externals`` you will get the current latest version of that branch. This can be convenient for in-progress development work, but should not be used when you need a stable version for scientific simulations. There are a number of gotchas with this workflow, so in general you should default to pointing to fixed hashes. (For CTSM master, we require a fixed hash or, usually, a tag.) + Keep in mind that changing individual components from a tag may result in an invalid model (won't compile, won't run, not scientifically meaningful) and is unsupported. diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index bd8095e9f7..4837bf1122 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -35,7 +35,7 @@ use File::Basename qw(dirname); use English; use Getopt::Long; use IO::File; -use File::Glob ':glob'; +use File::Glob ':bsd_glob'; #------------------------------------------------------------------------------- # @@ -71,32 +71,33 @@ REQUIRED OPTIONS (if read they allow user_nl_clm and CLM_BLDNML_OPTS to expand variables [for example to use \$DIN_LOC_ROOT]) (default current directory) - -lnd_frac "domainfile" Land fraction file (the input domain file) + -lnd_frac "domainfile" Land fraction file (the input domain file) (needed for MCT driver and LILAC) -res "resolution" Specify horizontal grid. Use nlatxnlon for spectral grids; dlatxdlon for fv grids (dlat and dlon are the grid cell size in degrees for latitude and longitude respectively) "-res list" to list valid resolutions. (default: 0.9x1.25) -sim_year "year" Year to simulate for input datasets - (i.e. 1850, 2000, 1850-2000, 1850-2100) + (i.e. PtVg, 1850, 2000, 2010, 1850-2000, 1850-2100) "-sim_year list" to list valid simulation years (default 2000) -structure "structure" The overall structure being used [ standard | fast ] OPTIONS - -bgc "value" Build CLM with BGC package [ sp | cn | bgc | fates ] + -driver "value" CESM driver type you will run with [ mct | nuopc ] + -bgc "value" Build CLM with BGC package [ sp | bgc | fates ] (default is sp). CLM Biogeochemistry mode sp = Satellite Phenology (SP) This toggles off the namelist variable: use_cn - cn = Carbon Nitrogen model (CN) - This toggles on the namelist variable: use_cn bgc = Carbon Nitrogen with methane, nitrification, vertical soil C, - CENTURY decomposition - This toggles on the namelist variables: - use_cn, use_lch4, use_nitrif_denitrif, use_vertsoilc, use_century_decomp - fates = FATES/Ecosystem Demography with below ground BGC - This toggles on the namelist variables: - use_fates, use_vertsoilc, use_century_decomp + CENTURY or MIMICS decomposition + This toggles on the namelist variables: + use_cn, use_lch4, use_nitrif_denitrif + fates = FATES/Ecosystem Demography with below ground BGC + CENTURY or MIMICS decomposition + This toggles on the namelist variables: + use_fates. use_lch4 and use_nitrif_denitrif are optional + (Only for CLM4.5/CLM5.0) -[no-]chk_res Also check [do NOT check] to make sure the resolution and land-mask is valid. @@ -159,7 +160,7 @@ OPTIONS Default: -no-drydep (Note: buildnml copies the file for use by the driver) -dynamic_vegetation Toggle for dynamic vegetation model. (default is off) - (can ONLY be turned on when BGC type is 'cn' or 'bgc') + (can ONLY be turned on when BGC type is 'bgc') This turns on the namelist variable: use_cndv (Deprecated, this will be removed) -fire_emis Produce a fire_emis_nl namelist that will go into the @@ -167,13 +168,17 @@ OPTIONS (Note: buildnml copies the file for use by the driver) -glc_nec Glacier number of elevation classes [0 | 3 | 5 | 10 | 36] (default is 0) (standard option with land-ice model is 10) + -glc_use_antarctica Set defaults appropriate for runs that include Antarctica -help [or -h] Print usage to STDOUT. - -light_res Resolution of lightning dataset to use for CN fire (360x720 or 94x192) + -light_res Resolution of lightning dataset to use for CN or FATES fire (360x720, 106x174, or 94x192) + 106x174 can only be used for NEON sites + -lilac If CTSM is being run through LILAC (normally not used) + (LILAC is the Lightweight Infrastructure for Land-Atmosphere Coupling) -ignore_ic_date Ignore the date on the initial condition files when determining what input initial condition file to use. -ignore_ic_year Ignore just the year part of the date on the initial condition files when determining what input initial condition file to use. - -ignore_warnings Allow build-namelist to continue, rather than stopping on + -ignore_warnings Allow build-namelist to continue, rather than stopping on warnings -infile "filepath" Specify a file (or list of files) containing namelists to read values from. @@ -189,7 +194,6 @@ OPTIONS form \$CASEDIR/user_nl_clm/user_nl_clm_????) -inputdata "filepath" Writes out a list containing pathnames for required input datasets in file specified. - -l_ncpl "LND_NCPL" Number of CLM coupling time-steps in a day. -lnd_tuning_mode "value" Use the parameters tuned for the given configuration (CLM version and atmospheric forcing) -mask "landmask" Type of land-mask (default, navy, gx3v5, gx1v5 etc.) "-mask list" to list valid land masks. @@ -203,9 +207,10 @@ OPTIONS -[no-]note Add note to output namelist [do NOT add note] about the arguments to build-namelist. -output_reals Output real parameters to the given output file. - -rcp "value" Representative concentration pathway (rcp) to use for + -ssp_rcp "value" Shared Socioeconomic Pathway (SSP) and + Representative Concentration Pathway (RCP) combination to use for future scenarios. - "-rcp list" to list valid rcp settings. + "-ssp_rcp list" to list valid ssp_rcp settings. -s Turns on silent mode - only fatal messages issued. -test Enable checking that input datasets exist on local filesystem. -use_case "case" Specify a use case which will provide default values. @@ -241,7 +246,7 @@ sub process_commandline { # Save the command line arguments to the script. NOTE: this must be # before GetOptions() is called because items are removed from from # the array! - $nl_flags->{'cmdline'} = "@ARGV"; + $nl_flags->{'cmdline'} = "@ARGV\n"; my %opts = ( cimeroot => undef, config => "config_cache.xml", @@ -251,20 +256,22 @@ sub process_commandline { co2_type => undef, co2_ppmv => undef, clm_demand => "null", + driver => "nuopc", help => 0, glc_nec => "default", + glc_use_antarctica => 0, light_res => "default", - l_ncpl => undef, lnd_tuning_mode => "default", lnd_frac => undef, dir => "$cwd", - rcp => "default", + ssp_rcp => "default", sim_year => "default", structure => undef, clm_accelerated_spinup=> "default", chk_res => undef, note => undef, drydep => 0, + lilac => 0, output_reals_filename => undef, fire_emis => 0, megan => "default", @@ -283,6 +290,7 @@ sub process_commandline { GetOptions( "cimeroot=s" => \$opts{'cimeroot'}, + "driver=s" => \$opts{'driver'}, "clm_demand=s" => \$opts{'clm_demand'}, "co2_ppmv=f" => \$opts{'co2_ppmv'}, "co2_type=s" => \$opts{'co2_type'}, @@ -292,12 +300,14 @@ sub process_commandline { "clm_usr_name=s" => \$opts{'clm_usr_name'}, "envxml_dir=s" => \$opts{'envxml_dir'}, "drydep!" => \$opts{'drydep'}, + "lilac!" => \$opts{'lilac'}, "fire_emis!" => \$opts{'fire_emis'}, "ignore_warnings!" => \$opts{'ignore_warnings'}, "chk_res!" => \$opts{'chk_res'}, "note!" => \$opts{'note'}, "megan!" => \$opts{'megan'}, "glc_nec=i" => \$opts{'glc_nec'}, + "glc_use_antarctica!" => \$opts{'glc_use_antarctica'}, "light_res=s" => \$opts{'light_res'}, "d:s" => \$opts{'dir'}, "h|help" => \$opts{'help'}, @@ -306,12 +316,11 @@ sub process_commandline { "infile=s" => \$opts{'infile'}, "lnd_frac=s" => \$opts{'lnd_frac'}, "lnd_tuning_mode=s" => \$opts{'lnd_tuning_mode'}, - "l_ncpl=i" => \$opts{'l_ncpl'}, "inputdata=s" => \$opts{'inputdata'}, "mask=s" => \$opts{'mask'}, "namelist=s" => \$opts{'namelist'}, "res=s" => \$opts{'res'}, - "rcp=s" => \$opts{'rcp'}, + "ssp_rcp=s" => \$opts{'ssp_rcp'}, "s|silent" => \$opts{'silent'}, "sim_year=s" => \$opts{'sim_year'}, "structure=s" => \$opts{'structure'}, @@ -476,7 +485,7 @@ sub read_envxml_case_files { my %envxml = (); if ( defined($opts->{'envxml_dir'}) ) { (-d $opts->{'envxml_dir'}) or $log->fatal_error( "envxml_dir is not a directory" ); - my @files = glob( $opts->{'envxml_dir'}."/env_*xml" ); + my @files = bsd_glob( $opts->{'envxml_dir'}."/env_*xml" ); ($#files >= 0) or $log->fatal_error( "there are no env_*xml files in the envxml_dir" ); foreach my $file (@files) { $log->verbose_message( "Open env.xml file: $file" ); @@ -623,7 +632,7 @@ sub process_namelist_commandline_options { # # First get the command-line specified overall values or their defaults # Obtain default values for the following build-namelist input arguments - # : res, mask, rcp, sim_year, sim_year_range, and clm_accelerated_spinup. + # : res, mask, ssp_rcp, sim_year, sim_year_range, and clm_accelerated_spinup. my ($opts, $nl_flags, $definition, $defaults, $nl, $physv) = @_; @@ -637,7 +646,7 @@ sub process_namelist_commandline_options { setup_cmdl_crop($opts, $nl_flags, $definition, $defaults, $nl); setup_cmdl_maxpft($opts, $nl_flags, $definition, $defaults, $nl); setup_cmdl_glc_nec($opts, $nl_flags, $definition, $defaults, $nl); - setup_cmdl_rcp($opts, $nl_flags, $definition, $defaults, $nl); + setup_cmdl_ssp_rcp($opts, $nl_flags, $definition, $defaults, $nl); setup_cmdl_simulation_year($opts, $nl_flags, $definition, $defaults, $nl); setup_cmdl_dynamic_vegetation($opts, $nl_flags, $definition, $defaults, $nl); setup_cmdl_fates_mode($opts, $nl_flags, $definition, $defaults, $nl); @@ -682,6 +691,13 @@ sub setup_cmdl_resolution { } } } + # For NEON sites + if ($nl_flags->{'res'} =~ /NEON/) { + $nl_flags->{'neon'} = ".true." + } else { + $nl_flags->{'neon'} = ".false." + } + } #------------------------------------------------------------------------------- @@ -735,40 +751,27 @@ sub setup_cmdl_fates_mode { $var = "use_fates"; if ( &value_is_true($nl_flags->{$var}) ) { - # This section is a place-holder to test for modules that are not allowed with ED + # This section is a place-holder to test for modules that are not allowed with FATES # the defaults which are set in the logic section of the namelist builder will # automatically set these correctly (well that is the assumption), but here we # want to set a catch to fail and warn users if they explicitly set incompatible user namelist # options -# my $var = "use_somevar"; -# $val = $nl_flags->{$var}; -# if ( defined($nl->get_value($var)) ) { -# if ( &value_is_true($nl->get_value($var)) ) { -# $log->fatal_error("$var was set to .true., which is incompatible when -bgc fates option is used."); -# } -# } - - - # The following variables may be set by the user and are compatible with use_fates - # no need to set defaults, covered in a different routine - my @list = ( "use_vertsoilc", "use_century_decomp", "use_lch4" ); - foreach my $var ( @list ) { - if ( defined($nl->get_value($var)) ) { - $nl_flags->{$var} = $nl->get_value($var); - $val = $nl_flags->{$var}; - my $group = $definition->get_group_name($var); - $nl->set_variable_value($group, $var, $val); - if ( ! $definition->is_valid_value( $var, $val ) ) { - my @valid_values = $definition->get_valid_values( $var ); - $log->fatal_error("$var has a value ($val) that is NOT valid. Valid values are: @valid_values"); - } - } - } + my $var = "use_crop"; + $val = $nl_flags->{$var}; + if ( defined($nl->get_value($var)) ) { + if ( &value_is_true($nl->get_value($var)) ) { + $log->fatal_error("$var was set to .true., which is incompatible when -bgc fates option is used."); + } + } + } else { # dis-allow fates specific namelist items with non-fates runs - my @list = ( "use_fates_spitfire", "use_fates_planthydro", "use_fates_ed_st3", "use_fates_ed_prescribed_phys", - "use_fates_inventory_init", "fates_inventory_ctrl_filename","use_fates_logging" ); + my @list = ( "fates_spitfire_mode", "use_fates_planthydro", "use_fates_ed_st3", "use_fates_ed_prescribed_phys", + "use_fates_cohort_age_tracking","use_fates_inventory_init","use_fates_fixed_biogeog", + "use_fates_nocomp","use_fates_sp","fates_inventory_ctrl_filename","use_fates_logging", + "fates_parteh_mode","use_fates_tree_damage" ); + # dis-allow fates specific namelist items with non-fates runs foreach my $var ( @list ) { if ( defined($nl->get_value($var)) ) { $log->fatal_error("$var is being set, but can ONLY be set when -bgc fates option is used.\n"); @@ -828,10 +831,7 @@ sub setup_cmdl_bgc { $log->verbose_message("Using $nl_flags->{$var} for bgc."); # now set the actual name list variables based on the bgc alias - if ($nl_flags->{$var} eq "cn" ) { - $nl_flags->{'use_cn'} = ".true."; - $nl_flags->{'use_fates'} = ".false."; - } elsif ($nl_flags->{$var} eq "bgc" ) { + if ($nl_flags->{$var} eq "bgc" ) { $nl_flags->{'use_cn'} = ".true."; $nl_flags->{'use_fates'} = ".false."; } elsif ($nl_flags->{$var} eq "fates" ) { @@ -848,35 +848,6 @@ sub setup_cmdl_bgc { $log->fatal_error("The namelist variable use_fates is inconsistent with the -bgc option"); } - { - # If the variable has already been set use it, if not set to the value defined by the bgc_mode - my @list = ( "use_lch4", "use_nitrif_denitrif", "use_vertsoilc", "use_century_decomp" ); - my $ndiff = 0; - my %settings = ( 'bgc_mode'=>$nl_flags->{'bgc_mode'} ); - foreach my $var ( @list ) { - my $default_setting = $defaults->get_value($var, \%settings ); - if ( ! defined($nl->get_value($var)) ) { - $nl_flags->{$var} = $default_setting; - } else { - if ( $nl->get_value($var) ne $default_setting ) { - $ndiff += 1; - } - $nl_flags->{$var} = $nl->get_value($var); - } - $val = $nl_flags->{$var}; - my $group = $definition->get_group_name($var); - $nl->set_variable_value($group, $var, $val); - if ( ! $definition->is_valid_value( $var, $val ) ) { - my @valid_values = $definition->get_valid_values( $var ); - $log->fatal_error("$var has a value ($val) that is NOT valid. Valid values are: @valid_values"); - } - } - # If all the variables are different report it as an error - if ( $ndiff == ($#list + 1) ) { - $log->fatal_error("You are contradicting the -bgc setting with the namelist variables: @list" ); - } - } - # Now set use_cn and use_fates foreach $var ( "use_cn", "use_fates" ) { $val = $nl_flags->{$var}; @@ -887,13 +858,82 @@ sub setup_cmdl_bgc { $log->fatal_error("$var has a value ($val) that is NOT valid. Valid values are: @valid_values"); } } - + # + # Set FATES-SP mode + # + if ( &value_is_true( $nl_flags->{'use_fates'} ) ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_fates_sp', 'use_fates'=>$nl_flags->{'use_fates'} ); + if ( &value_is_true($nl->get_value('use_fates_sp')) ) { + $nl_flags->{'use_fates_sp'} = ".true."; + } else { + $nl_flags->{'use_fates_sp'} = ".false."; + } + } else { + $nl_flags->{'use_fates_sp'} = ".false."; + } + # + # Determine Soil decomposition method + # + my $var = "soil_decomp_method"; + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, + 'phys'=>$nl_flags->{'phys'}, 'use_cn'=>$nl_flags->{'use_cn'}, 'use_fates'=>$nl_flags->{'use_fates'}, + 'use_fates_sp'=>$nl_flags->{'use_fates_sp'} ); + my $soil_decomp_method = remove_leading_and_trailing_quotes( $nl->get_value( $var ) ); + + if ( &value_is_true($nl_flags->{'use_cn'}) ) { + if ( $soil_decomp_method eq "None" ) { + $log->fatal_error("$var must NOT be None if use_cn is on"); + } + } elsif ( &value_is_true($nl_flags->{'use_fates'}) && (not &value_is_true($nl_flags->{'use_fates_sp'})) ) { + if ( $soil_decomp_method eq "None" ) { + $log->fatal_error("$var must NOT be None if use_fates is on and use_fates_sp is not TRUE"); + } + } elsif ( $soil_decomp_method ne "None" ) { + $log->fatal_error("$var must be None if use_cn and use_fates are off"); + } + # + # Soil decomposition control variables, methane and Nitrification-Denitrification + # + my @list = ( "use_lch4", "use_nitrif_denitrif" ); + my %settings = ( 'bgc_mode'=>$nl_flags->{'bgc_mode'} ); + foreach my $var ( @list ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, + 'phys'=>$nl_flags->{'phys'}, 'soil_decomp_method'=>$soil_decomp_method ); + $nl_flags->{$var} = $nl->get_value($var); + } + if ( $soil_decomp_method eq "None" ) { + foreach my $var ( @list ) { + if ( &value_is_true($nl_flags->{$var}) ) { + $log->fatal_error("When soil_decomp_method is None $var can NOT be TRUE"); + } + } + } else { + # nitrif_denitrif can only be .false. if fates is on + if ( (! &value_is_true($nl_flags->{'use_fates'})) && &value_is_true($nl_flags->{'use_cn'}) ) { + $var = "use_nitrif_denitrif"; + if ( ! &value_is_true($nl_flags->{$var}) ) { + $log->warning("$var normally use_nitrif_denitrif should only be FALSE if FATES is on, it has NOT been validated for being off for BGC mode" ); + } + } + # if MIMICS is on and use_fates = .true. then use_lch4 must = .true. + if ( (! &value_is_true($nl_flags->{'use_lch4'})) && &value_is_true($nl_flags->{'use_fates'}) ) { + if ( $soil_decomp_method eq "MIMICSWieder2015" ) { + $log->warning("If MIMICS is on and use_fates = .true. then use_lch4 must be .true. and currently it's not" ); + } + } + } + # + # Set FUN for BGC + # my $var = "use_fun"; if ( ! defined($nl->get_value($var)) ) { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, 'phys'=>$nl_flags->{'phys'}, 'use_cn'=>$nl_flags->{'use_cn'}, 'use_nitrif_denitrif'=>$nl_flags->{'use_nitrif_denitrif'} ); } + if ( (! &value_is_true($nl_flags->{'use_cn'}) ) && &value_is_true($nl->get_value('use_fun')) ) { + $log->fatal_error("When FUN is on, use_cn MUST also be on!"); + } if ( (! &value_is_true($nl_flags->{'use_nitrif_denitrif'}) ) && &value_is_true($nl->get_value('use_fun')) ) { $log->fatal_error("When FUN is on, use_nitrif_denitrif MUST also be on!"); } @@ -908,10 +948,19 @@ sub setup_cmdl_fire_light_res { my $var = "light_res"; my $val = $opts->{$var}; + if ( &value_is_true($nl->get_value('use_cn')) ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fire_method'); + } + my $fire_method = remove_leading_and_trailing_quotes( $nl->get_value('fire_method') ); if ( $val eq "default" ) { - $nl_flags->{$var} = remove_leading_and_trailing_quotes($defaults->get_value($var)); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, + 'phys'=>$nl_flags->{'phys'}, 'use_cn'=>$nl_flags->{'use_cn'}, + 'neon'=>$nl_flags->{'neon'}, + 'fates_spitfire_mode'=>$nl->get_value('fates_spitfire_mode'), + 'use_fates'=>$nl_flags->{'use_fates'}, fire_method=>$fire_method ); + $val = remove_leading_and_trailing_quotes( $nl->get_value($var) ); + $nl_flags->{$var} = $val; } else { - my $fire_method = remove_leading_and_trailing_quotes( $nl->get_value('fire_method') ); if ( defined($fire_method) && $val ne "none" ) { if ( $fire_method eq "nofire" ) { $log->fatal_error("-$var option used with fire_method='nofire'. -$var can ONLY be used without the nofire option"); @@ -922,34 +971,56 @@ sub setup_cmdl_fire_light_res { $log->fatal_error("-$var option used while also explicitly setting stream_fldfilename_lightng filename which is a contradiction. Use one or the other not both."); } if ( ! &value_is_true($nl->get_value('use_cn')) ) { - $log->fatal_error("-$var option used CN is NOT on. -$var can only be used when CN is on (with bgc: cn or bgc)"); - } - if ( &value_is_true($nl->get_value('use_cn')) && $val eq "none" ) { - $log->fatal_error("-$var option is set to none, but CN is on (with bgc: cn or bgc) which is a contradiction"); + if ( &value_is_true($nl_flags->{'use_fates'}) ) { + if ( $nl->get_value('fates_spitfire_mode') < 2) { + if ( $val ne "none" ) { + $log->fatal_error("-$var option used when FATES is on, but fates_spitfire_mode does NOT use lightning data"); + } + } else { + if ( $val eq "none" ) { + $log->fatal_error("-$var option is set to none, but FATES is on and fates_spitfire_mode requires lightning data"); + } + } + } else { + $log->fatal_error("-$var option used when FATES off and CN is NOT on. -$var can only be used when BGC is set to bgc or fates"); + } + } else { + if ( $val eq "none" and $fire_method ne "nofire" ) { + $log->fatal_error("-$var option is set to none, but CN is on (with bgc: cn or bgc) which is a contradiction"); + } } $nl_flags->{$var} = $val; } + # Check that NEON data is only used for NEON sites + if ( $val eq "106x174" ) { + if ( ! &value_is_true($nl_flags->{'neon'}) ) { + if ( defined($opts->{'clm_usr_name'}) ) { + $log->warning("The NEON lightning dataset does NOT cover the entire globe, make sure it covers the region for your grid"); + } else { + $log->fatal_error("The NEON lightning dataset can NOT be used for global grids or regions or points outside of its area as it does NOT cover the entire globe."); + } + } + } + # check for valid values... my $group = $definition->get_group_name($var); $nl->set_variable_value($group, $var, quote_string($nl_flags->{$var}) ); if ( ! $definition->is_valid_value( $var, $nl_flags->{$var}, 'noquotes'=>1 ) ) { - my @valid_values = $definition->get_valid_values( $var ); - $log->fatal_error("$var has a value (".$nl_flags->{$var}.") that is NOT valid. Valid values are: @valid_values"); + my @valid_values = $definition->get_valid_values( $var ); + $log->fatal_error("$var has a value (".$nl_flags->{$var}.") that is NOT valid. Valid values are: @valid_values"); } $log->verbose_message("Using $nl_flags->{$var} for $var."); # - # Set flag if cn-fires are on or not + # Set flag if cn-fires are on or not, only for BGC (not FATES) # $var = "cnfireson"; - if ( &value_is_true($nl->get_value('use_cn')) ) { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fire_method'); - } my $fire_method = remove_leading_and_trailing_quotes( $nl->get_value('fire_method') ); - if ( defined($fire_method) && ! &value_is_true($nl_flags->{'use_cn'}) ) { - $log->fatal_error("fire_method is being set even though bgc is NOT cn or bgc."); + if ( defined($fire_method) && ! &value_is_true($nl_flags->{'use_cn'}) && ! &value_is_true($nl_flags->{'use_fates'}) ) { + $log->fatal_error("fire_method is being set while use_cn and use_fates are both false."); } if ( defined($fire_method) && $fire_method eq "nofire" ) { $nl_flags->{$var} = ".false."; - } elsif ( &value_is_true($nl->get_value('use_cn')) ) { +# } elsif ( &value_is_true($nl->get_value('use_cn')) || $nl_flags->{'fates_spitfire_mode'} > 1 ) { + } elsif ( &value_is_true($nl->get_value('use_cn')) || &value_is_true($nl->get_value('use_fates')) ) { $nl_flags->{$var} = ".true."; } else { $nl_flags->{$var} = ".false."; @@ -975,8 +1046,8 @@ sub setup_cmdl_crop { if ( ($nl_flags->{'crop'} eq 1 ) && ($nl_flags->{'bgc_mode'} eq "sp") ) { $log->fatal_error("** Cannot turn crop mode on mode bgc=sp\n" . "**\n" . - "** Set the bgc mode to 'cn' or 'bgc' by the following means from highest to lowest precedence:\n" . - "** * by the command-line options -bgc cn\n" . + "** Set the bgc mode to 'bgc' by the following means from highest to lowest precedence:\n" . + "** * by the command-line options -bgc bgc\n" . "** * by a default configuration file, specified by -defaults"); } @@ -1010,37 +1081,6 @@ sub setup_cmdl_maxpft { } $nl_flags->{'maxpft'} = $val; - if ( ($nl_flags->{'bgc_mode'} ne "sp") && ($nl_flags->{'maxpft'} != $maxpatchpft{$nl_flags->{'use_crop'}}) ) { - $log->fatal_error("** For CN or BGC mode you MUST set max patch PFT's to $maxpatchpft{$nl_flags->{'use_crop'}}\n" . - "**\n" . - "** When the crop model is on then it must be set to $maxpatchpft{'crop'} otherwise to $maxpatchpft{'nocrop'}\n" . - "** Set the bgc mode, crop and maxpft by the following means from highest to lowest precedence:\n" . - "** * by the command-line options -bgc, -crop and -maxpft\n" . - "** * by a default configuration file, specified by -defaults\n" . - "**"); - } - if ( $nl_flags->{'maxpft'} > $maxpatchpft{$nl_flags->{'use_crop'}} ) { - $log->fatal_error("** Max patch PFT's can NOT exceed $maxpatchpft{$nl_flags->{'use_crop'}}\n" . - "**\n" . - "** Set maxpft by the following means from highest to lowest precedence:\n" . - "** * by the command-line options -maxpft\n" . - "** * by a default configuration file, specified by -defaults\n" . - "**"); - } - if ( $nl_flags->{'maxpft'} != $maxpatchpft{$nl_flags->{'use_crop'}} ) { - $log->warning("running with maxpft NOT equal to $maxpatchpft{$nl_flags->{'use_crop'}} is " . - "NOT validated / scientifically supported." ); - } - $log->verbose_message("Using $nl_flags->{'maxpft'} for maxpft."); - - $var = "maxpatch_pft"; - $val = $nl_flags->{'maxpft'}; - my $group = $definition->get_group_name($var); - $nl->set_variable_value($group, $var, $val); - if ( ! $definition->is_valid_value( $var, $val ) ) { - my @valid_values = $definition->get_valid_values( $var ); - $log->fatal_error("$var has a value ($val) that is NOT valid. Valid values are: @valid_values"); - } } #------------------------------------------------------------------------------- @@ -1070,26 +1110,26 @@ sub setup_cmdl_glc_nec { #------------------------------------------------------------------------------- -sub setup_cmdl_rcp { - # representative concentration pathway +sub setup_cmdl_ssp_rcp { + # shared socioeconmic pathway and representative concentration pathway combination my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; my $val; - my $var = "rcp"; + my $var = "ssp_rcp"; if ( $opts->{$var} ne "default" ) { $val = $opts->{$var}; } else { - $val = $defaults->get_value($var); + $val = remove_leading_and_trailing_quotes( $defaults->get_value($var) ); } - $nl_flags->{'rcp'} = $val; - $opts->{'rcp'} = $nl_flags->{'rcp'}; + $nl_flags->{'ssp_rcp'} = $val; + $opts->{'ssp_rcp'} = $nl_flags->{'ssp_rcp'}; my $group = $definition->get_group_name($var); - $nl->set_variable_value($group, $var, $val); - if ( ! $definition->is_valid_value( $var, $val ) ) { + $nl->set_variable_value($group, $var, quote_string($val) ); + if ( ! $definition->is_valid_value( $var, $val, 'noquotes'=>1 ) ) { my @valid_values = $definition->get_valid_values( $var ); $log->fatal_error("$var has a value ($val) that is NOT valid. Valid values are: @valid_values"); } - $log->verbose_message("CLM future scenario representative concentration is $nl_flags->{'rcp'}"); + $log->verbose_message("CLM future scenario SSP-RCP combination is $nl_flags->{'ssp_rcp'}"); } #------------------------------------------------------------------------------- @@ -1115,21 +1155,30 @@ sub setup_cmdl_spinup { $log->fatal_error("$var has an invalid value ($val). Valid values are: @valid_values"); } $log->verbose_message("CLM accelerated spinup mode is $val"); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, - $defaults, $nl, "spinup_state", clm_accelerated_spinup=>$nl_flags->{$var}, - use_cn=>$nl_flags->{'use_cn'}, use_fates=>$nl_flags->{'use_fates'} ); - if ( $nl->get_value("spinup_state") ne 0 ) { - $nl_flags->{'bgc_spinup'} = "on"; - if ( $nl_flags->{'bgc_mode'} eq "sp" ) { - $log->fatal_error("spinup_state is accelerated (=1 or 2) which is for a BGC mode of CN or BGC," . - " but the BGC mode is Satellite Phenology, change one or the other"); - } - if ( $nl_flags->{'clm_accelerated_spinup'} eq "off" ) { - $log->fatal_error("spinup_state is accelerated, but clm_accelerated_spinup is off, change one or the other"); - } + if ( &value_is_true($nl_flags->{'use_cn'}) ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, + $defaults, $nl, "spinup_state", clm_accelerated_spinup=>$nl_flags->{$var}, + use_cn=>$nl_flags->{'use_cn'}, use_fates=>$nl_flags->{'use_fates'} ); + if ( $nl->get_value("spinup_state") ne 0 ) { + $nl_flags->{'bgc_spinup'} = "on"; + if ( $nl_flags->{'clm_accelerated_spinup'} eq "off" ) { + $log->fatal_error("spinup_state is accelerated, but clm_accelerated_spinup is off, change one or the other"); + } + } else { + $nl_flags->{'bgc_spinup'} = "off"; + $val = $defaults->get_value($var); + } + # For AD spinup mode by default reseed dead plants + if ( $nl_flags->{$var} ne "off" ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, + $defaults, $nl, "reseed_dead_plants", clm_accelerated_spinup=>$nl_flags->{$var}, + use_cn=>$nl_flags->{'use_cn'} ); + } } else { - $nl_flags->{'bgc_spinup'} = "off"; - $val = $defaults->get_value($var); + if ( defined($nl->get_value("spinup_state")) ) { + $log->fatal_error("spinup_state is accelerated (=1 or 2) which is for a BGC mode of CN or BGC," . + " but the BGC mode is Satellite Phenology, change one or the other"); + } } $nl_flags->{$var} = $val; my $group = $definition->get_group_name($var); @@ -1139,7 +1188,7 @@ sub setup_cmdl_spinup { $log->fatal_error("$var has an invalid value ($val). Valid values are: @valid_values"); } if ( $nl_flags->{'bgc_spinup'} eq "on" && (not &value_is_true( $nl_flags->{'use_cn'} )) && (not &value_is_true($nl_flags->{'use_fates'})) ) { - $log->fatal_error("$var can not be '$nl_flags->{'bgc_spinup'}' if neither CN nor ED is turned on (use_cn=$nl_flags->{'use_cn'}, use_fates=$nl_flags->{'use_fates'})."); + $log->fatal_error("$var can not be '$nl_flags->{'bgc_spinup'}' if neither CN nor FATES is turned on (use_cn=$nl_flags->{'use_cn'}, use_fates=$nl_flags->{'use_fates'})."); } if ( $nl->get_value("spinup_state") eq 0 && $nl_flags->{'bgc_spinup'} eq "on" ) { $log->fatal_error("Namelist spinup_state contradicts the command line option bgc_spinup" ); @@ -1166,19 +1215,19 @@ sub setup_cmdl_simulation_year { } $nl_flags->{'sim_year_range'} = $defaults->get_value("sim_year_range"); - $nl_flags->{'sim_year'} = $val; + $nl_flags->{'sim_year'} = &remove_leading_and_trailing_quotes($val); if ( $val =~ /([0-9]+)-([0-9]+)/ ) { $nl_flags->{'sim_year'} = $1; $nl_flags->{'sim_year_range'} = $val; } $val = $nl_flags->{'sim_year'}; my $group = $definition->get_group_name($var); - $nl->set_variable_value($group, $var, $val ); + $nl->set_variable_value($group, $var, "'$val'" ); if ( ! $definition->is_valid_value( $var, $val, 'noquotes'=>1 ) ) { my @valid_values = $definition->get_valid_values( $var ); $log->fatal_error("$var of $val is NOT valid. Valid values are: @valid_values"); } - $nl->set_variable_value($group, $var, $val ); + $nl->set_variable_value($group, $var, "'$val'" ); $log->verbose_message("CLM sim_year is $nl_flags->{'sim_year'}"); $var = "sim_year_range"; @@ -1204,19 +1253,34 @@ sub setup_cmdl_run_type { my $val; my $var = "clm_start_type"; + my $ic_date = $nl->get_value('start_ymd'); + my $st_year; + if ( defined($ic_date) ) { + $st_year = int( $ic_date / 10000); + } else { + $st_year = $nl_flags->{'sim_year'}; + $ic_date = $st_year *10000 + 101; + my $date = 'start_ymd'; + my $group = $definition->get_group_name($date); + $nl->set_variable_value($group, $date, $ic_date ); + } if (defined $opts->{$var}) { if ($opts->{$var} eq "default" ) { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, - 'use_cndv'=>$nl_flags->{'use_cndv'}, 'use_fates'=>$nl_flags->{'use_fates'} ); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, + 'use_cndv'=>$nl_flags->{'use_cndv'}, 'use_fates'=>$nl_flags->{'use_fates'}, + 'sim_year'=>$st_year, 'sim_year_range'=>$nl_flags->{'sim_year_range'}, + 'bgc_spinup'=>$nl_flags->{'bgc_spinup'} ); } else { my $group = $definition->get_group_name($var); $nl->set_variable_value($group, $var, quote_string( $opts->{$var} ) ); } } else { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, - 'use_cndv'=>$nl_flags->{'use_cndv'}, 'use_fates'=>$nl_flags->{'use_fates'} ); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, + 'use_cndv'=>$nl_flags->{'use_cndv'}, 'use_fates'=>$nl_flags->{'use_fates'}, + 'sim_year'=>$st_year ); } $nl_flags->{'clm_start_type'} = $nl->get_value($var); + $nl_flags->{'st_year'} = $st_year; } #------------------------------------------------------------------------------- @@ -1231,8 +1295,8 @@ sub setup_cmdl_dynamic_vegetation { if ( ($nl_flags->{'dynamic_vegetation'} eq 1 ) && ($nl_flags->{'bgc_mode'} eq "sp") ) { $log->fatal_error("** Cannot turn dynamic_vegetation mode on with bgc=sp.\n" . "**\n" . - "** Set the bgc mode to 'cn' or 'bgc' by the following means from highest to lowest precedence:" . - "** * by the command-line options -bgc cn\n"); + "** Set the bgc mode to 'bgc' by the following means from highest to lowest precedence:" . + "** * by the command-line options -bgc bgc\n"); } $var = "use_cndv"; @@ -1251,7 +1315,7 @@ sub setup_cmdl_dynamic_vegetation { my @valid_values = $definition->get_valid_values( $var ); $log->fatal_error("$var has a value ($val) that is NOT valid. Valid values are: @valid_values"); } - $log->warning("The use_cndv=T option is deprecated. We do NOT recommend using it." . + $log->warning("The use_cndv=T option is deprecated. We do NOT recommend using it." . " It's known to have issues and it's not calibrated."); } } @@ -1284,9 +1348,10 @@ sub setup_cmdl_vichydro { $var = "use_vichydro"; $val = $nl->get_value($var); + my $set = undef; if ($nl_flags->{'vichydro'} eq 1) { my $group = $definition->get_group_name($var); - my $set = ".true."; + $set = ".true."; if ( defined($val) && $set ne $val ) { $log->fatal_error("$var contradicts the command-line -vichydro option" ); } @@ -1295,7 +1360,10 @@ sub setup_cmdl_vichydro { my @valid_values = $definition->get_valid_values( $var ); $log->fatal_error("$var has a value ($val) that is NOT valid. Valid values are: @valid_values"); } + } else { + $set = ".false."; } + $nl_flags->{$var} = $set; } @@ -1377,7 +1445,7 @@ sub process_namelist_commandline_clm_usr_name { my %settings; $settings{'mask'} = $nl_flags->{'mask'}; $settings{'sim_year'} = $nl_flags->{'sim_year'}; - $settings{'rcp'} = $nl_flags->{'rcp'}; + $settings{'ssp_rcp'} = $nl_flags->{'ssp_rcp'}; $settings{'sim_year_range'} = $nl_flags->{'sim_year_range'}; $settings{'clm_accelerated_spinup'} = $nl_flags->{'clm_accelerated_spinup'}; $settings{'clm_usr_name'} = $opts->{'clm_usr_name'}; @@ -1399,9 +1467,6 @@ sub process_namelist_commandline_clm_usr_name { $nvars++; } } - if ( $nvars == 0 ) { - $log->message("setting clm_usr_name -- but did NOT find any user datasets: $opts->{'clm_usr_name'}", $opts); - } # Go through all variables and expand any XML env settings in them expand_xml_variables_in_namelist( $nl_usrfile, $envxml_ref ); # Merge input values into namelist. Previously specified values have higher precedence @@ -1424,7 +1489,7 @@ sub process_namelist_commandline_use_case { my %settings; $settings{'res'} = $nl_flags->{'res'}; - $settings{'rcp'} = $nl_flags->{'rcp'}; + $settings{'ssp_rcp'} = $nl_flags->{'ssp_rcp'}; $settings{'mask'} = $nl_flags->{'mask'}; $settings{'sim_year'} = $nl_flags->{'sim_year'}; $settings{'sim_year_range'} = $nl_flags->{'sim_year_range'}; @@ -1443,7 +1508,7 @@ sub process_namelist_commandline_use_case { my $val = $uc_defaults->get_value($var, \%settings ); if ( defined($val) ) { - $log->message("CLM adding use_case $opts->{'use_case'} defaults for var '$var' with val '$val'"); + $log->verbose_message("CLM adding use_case $opts->{'use_case'} defaults for var '$var' with val '$val'"); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl_usecase, $var, 'val'=>$val); } @@ -1486,17 +1551,17 @@ sub process_namelist_inline_logic { ############################## # namelist group: clm_inparm # ############################## - setup_logic_site_specific($nl_flags, $definition, $nl); + setup_logic_site_specific($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_lnd_frac($opts, $nl_flags, $definition, $defaults, $nl, $envxml_ref); setup_logic_co2_type($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_irrigate($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_start_type($opts, $nl_flags, $nl); - setup_logic_delta_time($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_decomp_performance($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_snow($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_glacier($opts, $nl_flags, $definition, $defaults, $nl, $envxml_ref); setup_logic_dynamic_plant_nitrogen_alloc($opts, $nl_flags, $definition, $defaults, $nl, $physv); setup_logic_luna($opts, $nl_flags, $definition, $defaults, $nl, $physv); + setup_logic_o3_veg_stress_method($opts, $nl_flags, $definition, $defaults, $nl,$physv); setup_logic_hydrstress($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_dynamic_roots($opts, $nl_flags, $definition, $defaults, $nl, $physv); setup_logic_params_file($opts, $nl_flags, $definition, $defaults, $nl); @@ -1507,14 +1572,16 @@ 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); setup_logic_fates($opts, $nl_flags, $definition, $defaults, $nl); + setup_logic_z0param($opts, $nl_flags, $definition, $defaults, $nl); + setup_logic_misc($opts, $nl_flags, $definition, $defaults, $nl); ######################################### # namelist group: atm2lnd_inparm @@ -1547,9 +1614,9 @@ sub process_namelist_inline_logic { setup_logic_urban($opts, $nl_flags, $definition, $defaults, $nl); ############################### - # namelist group: crop # + # namelist group: crop_inparm # ############################### - setup_logic_crop($opts, $nl_flags, $definition, $defaults, $nl); + setup_logic_crop_inparm($opts, $nl_flags, $definition, $defaults, $nl); ############################### # namelist group: ch4par_in # @@ -1572,6 +1639,11 @@ sub process_namelist_inline_logic { ################################# setup_logic_nitrif_params( $nl_flags, $definition, $defaults, $nl ); + ############################################# + # namelist group: mineral_nitrogen_dynamics # + ############################################# + setup_logic_mineral_nitrogen_dynamics( $opts, $nl_flags, $definition, $defaults, $nl ); + #################################### # namelist group: photosyns_inparm # #################################### @@ -1612,11 +1684,26 @@ sub process_namelist_inline_logic { ################################## setup_logic_lai_streams($opts, $nl_flags, $definition, $defaults, $nl); + ################################## + # namelist group: cropcal_streams # + ################################## + setup_logic_cropcal_streams($opts, $nl_flags, $definition, $defaults, $nl); + + ########################################## + # namelist group: soil_moisture_streams # + ########################################## + setup_logic_soilm_streams($opts, $nl_flags, $definition, $defaults, $nl, $physv); + ################################## # namelist group: bgc_shared ################################## setup_logic_bgc_shared($opts, $nl_flags, $definition, $defaults, $nl, $physv); + ################################## + # namelist group: cnphenology + ################################## + setup_logic_cnphenology($opts, $nl_flags, $definition, $defaults, $nl, $physv); + ############################################# # namelist group: soilwater_movement_inparm # ############################################# @@ -1627,16 +1714,10 @@ sub process_namelist_inline_logic { ############################################# setup_logic_rooting_profile($opts, $nl_flags, $definition, $defaults, $nl); - ############################################# - # namelist group: friction_velocity # - ############################################# - setup_logic_friction_vel($opts, $nl_flags, $definition, $defaults, $nl); - - ################################################ - # namelist group: century_soilbgcdecompcascade # - ################################################ - setup_logic_century_soilbgcdecompcascade($opts, $nl_flags, $definition, $defaults, $nl); - + ############################# + # namelist group: cngeneral # + ############################# + setup_logic_cngeneral($opts, $nl_flags, $definition, $defaults, $nl); #################################### # namelist group: cnvegcarbonstate # #################################### @@ -1652,6 +1733,11 @@ sub process_namelist_inline_logic { ############################################# setup_logic_canopyfluxes($opts, $nl_flags, $definition, $defaults, $nl); + ########################################################## + # namelist group: friction_velocity (after canopyfluxes) # + ########################################################## + setup_logic_friction_vel($opts, $nl_flags, $definition, $defaults, $nl); + ############################################# # namelist group: canopyhydrology_inparm # ############################################# @@ -1696,13 +1782,18 @@ sub process_namelist_inline_logic { # namelist group: clm_initinterp_inparm # ######################################### setup_logic_initinterp($opts, $nl_flags, $definition, $defaults, $nl); + + ############################### + # namelist group: exice_streams # + ############################### + setup_logic_exice($opts, $nl_flags, $definition, $defaults, $nl); } #------------------------------------------------------------------------------- sub setup_logic_site_specific { # site specific requirements - my ($nl_flags, $definition, $nl) = @_; + my ($opts, $nl_flags, $definition, $defaults, $nl, $physv) = @_; # res check prevents polluting the namelist with an unnecessary # false variable for every run @@ -1733,6 +1824,9 @@ sub setup_logic_site_specific { $log->fatal_error("1x1_numaIA grids must use a compset with CN and CROP turned on."); } } + # Set compname + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'compname', + 'phys'=>$nl_flags->{'phys'} ); } #------------------------------------------------------------------------------- @@ -1769,21 +1863,41 @@ sub setup_logic_lnd_frac { my ($opts, $nl_flags, $definition, $defaults, $nl, $envxml_ref) = @_; + # + # fatmlndfrc is required for the MCT driver (or LILAC), but uneeded for NUOPC + # my $var = "lnd_frac"; - if ( defined($opts->{$var}) ) { - if ( defined($nl->get_value('fatmlndfrc')) ) { - $log->fatal_error("Can NOT set both -lnd_frac option (set via LND_DOMAIN_PATH/LND_DOMAIN_FILE " . - "env variables) AND fatmlndfrac on namelist"); - } - my $lnd_frac = SetupTools::expand_xml_var( $opts->{$var}, $envxml_ref); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fatmlndfrc','val'=>$lnd_frac ); - } + if ( ($opts->{'driver'} eq "mct") || $opts->{'lilac'} ) { + if ( defined($opts->{$var}) ) { + if ( defined($nl->get_value('fatmlndfrc')) ) { + $log->fatal_error("Can NOT set both -lnd_frac option (set via LND_DOMAIN_PATH/LND_DOMAIN_FILE " . + "env variables) AND fatmlndfrac on namelist"); + } + if ( $opts->{$var} =~ /UNSET/ ) { + $log->fatal_error("-lnd_frac was set as UNSET in the CTSM build-namelist set it with the env variables: LND_DOMAIN_PATH/LND_DOMAIN_FILE."); + } + my $lnd_frac = SetupTools::expand_xml_var( $opts->{$var}, $envxml_ref); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fatmlndfrc','val'=>$lnd_frac ); + } - # Get the fraction file - if (defined $nl->get_value('fatmlndfrc')) { - # do nothing - use value provided by config_grid.xml and clm.cpl7.template + # Get the fraction file + if (defined $nl->get_value('fatmlndfrc')) { + # do nothing - use value provided by config_grid.xml and clm.cpl7.template + } else { + $log->fatal_error("fatmlndfrc was NOT sent into CLM build-namelist."); + } + # + # For the NUOPC driver neither lnd_frac nor fatmlndfrc need to be set + # } else { - $log->fatal_error("fatmlndfrc was NOT sent into CLM build-namelist."); + if ( defined($opts->{$var}) ) { + if ( $opts->{$var} !~ /UNSET/ ) { + $log->fatal_error("$var should NOT be set for the NUOPC driver as it is unused" ); + } + } + if ( defined($nl->get_value('fatmlndfrc')) ) { + $log->fatal_error("fatmlndfrac should NOT be set in the namelist for the NUOPC driver as it is unused" ); + } } } @@ -1810,7 +1924,8 @@ sub setup_logic_co2_type { my $group = $definition->get_group_name($var); $nl->set_variable_value($group, $var, $opts->{$var}); } else { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, 'sim_year'=>$nl_flags->{'sim_year'} ); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, 'sim_year'=>$nl_flags->{'sim_year'}, + 'ssp_rcp'=>$nl_flags->{'ssp_rcp'} ); } } } @@ -1821,7 +1936,8 @@ sub setup_logic_irrigate { my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'irrigate', - 'use_crop'=>$nl_flags->{'use_crop'}, 'use_cndv'=>$nl_flags->{'use_cndv'} ); + 'use_crop'=>$nl_flags->{'use_crop'}, 'use_cndv'=>$nl_flags->{'use_cndv'}, + 'sim_year'=>$nl_flags->{'sim_year'}, 'sim_year_range'=>$nl_flags->{'sim_year_range'}, ); if ( &value_is_true($nl->get_value('irrigate') ) ) { $nl_flags->{'irrigate'} = ".true." } else { @@ -1842,6 +1958,12 @@ sub setup_logic_start_type { if (not defined $nl->get_value('nrevsn')) { $log->fatal_error("nrevsn is required for a branch type."); } + if (defined $nl->get_value('use_init_interp')) { + if ( &value_is_true($nl->get_value('use_init_interp') ) ) { + # Always print this warning, but don't stop if it happens + print "\nWARNING: use_init_interp will NOT happen for a branch case.\n\n"; + } + } } else { if (defined $nl->get_value('nrevsn')) { $log->fatal_error("nrevsn should ONLY be set for a branch type."); @@ -1851,28 +1973,6 @@ sub setup_logic_start_type { #------------------------------------------------------------------------------- -sub setup_logic_delta_time { - my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; - - if ( defined($opts->{'l_ncpl'}) ) { - my $l_ncpl = $opts->{'l_ncpl'}; - if ( $l_ncpl <= 0 ) { - $log->fatal_error("bad value for -l_ncpl option."); - } - my $val = ( 3600 * 24 ) / $l_ncpl; - my $dtime = $nl->get_value('dtime'); - if ( ! defined($dtime) ) { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'dtime', 'val'=>$val); - } elsif ( $dtime ne $val ) { - $log->fatal_error("can NOT set both -l_ncpl option (via LND_NCPL env variable) AND dtime namelist variable."); - } - } else { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'dtime', 'hgrid'=>$nl_flags->{'res'}); - } -} - -#------------------------------------------------------------------------------- - sub setup_logic_decomp_performance { my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; @@ -1910,7 +2010,7 @@ sub setup_logic_glacier { $log->fatal_error("glc_do_dynglacier can only be set via the env variable $clm_upvar: it can NOT be set in user_nl_clm"); } - my $var = "maxpatch_glcmec"; + my $var = "maxpatch_glc"; add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, 'val'=>$nl_flags->{'glc_nec'} ); my $val = $nl->get_value($var); @@ -1925,7 +2025,8 @@ sub setup_logic_glacier { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'glc_snow_persistence_max_days'); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'albice'); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'glacier_region_behavior'); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'glacier_region_behavior', + 'glc_use_antarctica'=>$opts->{'glc_use_antarctica'}); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'glacier_region_melt_behavior'); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'glacier_region_ice_runoff_behavior'); } @@ -1936,7 +2037,7 @@ sub setup_logic_params_file { # get param data my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'paramfile', + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'paramfile', 'phys'=>$nl_flags->{'phys'}, 'use_flexibleCN'=>$nl_flags->{'use_flexibleCN'} ); } @@ -1948,7 +2049,7 @@ sub setup_logic_create_crop_landunit { my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; my $var = 'create_crop_landunit'; - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, 'use_fates'=>$nl_flags->{'use_fates'} ); if ( &value_is_true($nl_flags->{'use_fates'}) && &value_is_true($nl->get_value($var)) ) { $log->fatal_error( "$var is true and yet use_fates is being set, which contradicts that (use_fates requires $var to be .false." ); @@ -1977,6 +2078,10 @@ sub setup_logic_subgrid { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'toosmall_lake'); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'toosmall_wetland'); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'toosmall_urban'); + + if ( &value_is_true($nl_flags->{'use_fates'}) && $nl->get_value('n_dom_pfts') != 0 ) { + $log->fatal_error( "FATES and n_dom_pfts can NOT be set at the same time" ); + } } #------------------------------------------------------------------------------- @@ -1985,7 +2090,8 @@ sub setup_logic_cnfire { my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; my @fire_consts = ( "rh_low", "rh_hgh", "bt_min", "bt_max", "cli_scale", "boreal_peatfire_c", "non_boreal_peatfire_c", - "pot_hmn_ign_counts_alpha", "cropfire_a1", "occur_hi_gdp_tree", "lfuel", "ufuel", "cmb_cmplt_fact" ); + "pot_hmn_ign_counts_alpha", "cropfire_a1", "occur_hi_gdp_tree", "lfuel", "ufuel", + "cmb_cmplt_fact_litter", "cmb_cmplt_fact_cwd" ); if ( &value_is_true($nl->get_value('use_cn')) ) { foreach my $item ( @fire_consts ) { if ( ! &value_is_true($nl_flags->{'cnfireson'} ) ) { @@ -1995,7 +2101,7 @@ sub setup_logic_cnfire { } else { my $fire_method = remove_leading_and_trailing_quotes( $nl->get_value('fire_method') ); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $item, - 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'}, + 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'}, 'fire_method'=>$fire_method ); } } @@ -2042,7 +2148,7 @@ sub setup_logic_urban { #------------------------------------------------------------------------------- -sub setup_logic_crop { +sub setup_logic_crop_inparm { my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; if ( &value_is_true($nl->get_value('use_crop')) ) { @@ -2077,7 +2183,6 @@ sub error_if_set { } } - #------------------------------------------------------------------------------- sub setup_logic_soilstate { @@ -2086,6 +2191,7 @@ sub setup_logic_soilstate { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'organic_frac_squared' ); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_bedrock', 'use_fates'=>$nl_flags->{'use_fates'}, 'vichydro'=>$nl_flags->{'vichydro'} ); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_excess_ice'); # excess ice flag should be read before stream vars my $var1 = "soil_layerstruct_predefined"; my $var2 = "soil_layerstruct_userdefined"; @@ -2123,9 +2229,10 @@ sub setup_logic_demand { $settings{'hgrid'} = $nl_flags->{'res'}; $settings{'sim_year'} = $nl_flags->{'sim_year'}; $settings{'sim_year_range'} = $nl_flags->{'sim_year_range'}; + $settings{'use_vichydro'} = $nl_flags->{'use_vichydro'}; $settings{'mask'} = $nl_flags->{'mask'}; $settings{'crop'} = $nl_flags->{'crop'}; - $settings{'rcp'} = $nl_flags->{'rcp'}; + $settings{'ssp_rcp'} = $nl_flags->{'ssp_rcp'}; $settings{'glc_nec'} = $nl_flags->{'glc_nec'}; # necessary for demand to be set correctly (flanduse_timeseries requires # use_crop, maybe other options require other flags?)! @@ -2134,8 +2241,6 @@ sub setup_logic_demand { $settings{'use_cndv'} = $nl_flags->{'use_cndv'}; $settings{'use_lch4'} = $nl_flags->{'use_lch4'}; $settings{'use_nitrif_denitrif'} = $nl_flags->{'use_nitrif_denitrif'}; - $settings{'use_vertsoilc'} = $nl_flags->{'use_vertsoilc'}; - $settings{'use_century_decomp'} = $nl_flags->{'use_century_decomp'}; $settings{'use_crop'} = $nl_flags->{'use_crop'}; my $demand = $nl->get_value('clm_demand'); @@ -2162,7 +2267,22 @@ sub setup_logic_demand { if ( $item eq "finidat" ) { $log->fatal_error( "Do NOT put findat in the clm_demand list, set the clm_start_type=startup so initial conditions are required"); } + # For landuse.timeseries try with crop and irrigate on first, if found use it, otherwise try with exact settings + # Logic for this is identical for fsurdat + if ( $item eq "flanduse_timeseries" ) { + $settings{'irrigate'} = ".true."; + $settings{'use_crop'} = ".true."; + $settings{'nofail'} = 1; + } add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $item, %settings ); + if ( $item eq "flanduse_timeseries" ) { + $settings{'nofail'} = 0; + $settings{'irrigate'} = $nl_flags->{'irrigate'}; + $settings{'use_crop'} = $nl_flags->{'use_crop'}; + if ( ! defined($nl->get_value( $item )) ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $item, %settings ); + } + } } } @@ -2191,13 +2311,34 @@ sub setup_logic_surface_dataset { if ($flanduse_timeseries ne "null" && &value_is_true($nl_flags->{'use_cndv'}) ) { $log->fatal_error( "dynamic PFT's (setting flanduse_timeseries) are incompatible with dynamic vegetation (use_cndv=.true)." ); } - if ($flanduse_timeseries ne "null" && &value_is_true($nl_flags->{'use_fates'}) ) { - $log->fatal_error( "dynamic PFT's (setting flanduse_timeseries) are incompatible with ecosystem dynamics (use_fates=.true)." ); + # + # Always get the crop version of the datasets now and let the code turn it into the form desired + # Provided this isn't with FATES on + # + my $var = "fsurdat"; + if ( ! &value_is_true($nl_flags->{'use_fates'}) ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, + 'hgrid'=>$nl_flags->{'res'}, 'ssp_rcp'=>$nl_flags->{'ssp_rcp'}, + 'sim_year'=>$nl_flags->{'sim_year'}, 'irrigate'=>".true.", 'use_vichydro'=>$nl_flags->{'use_vichydro'}, + 'use_crop'=>".true.", 'glc_nec'=>$nl_flags->{'glc_nec'}, 'nofail'=>1); + } + # If didn't find the crop version check for the exact match + if ( ! defined($nl->get_value($var) ) ) { + if ( ! &value_is_true($nl_flags->{'use_fates'}) ) { + $log->verbose_message( "Crop version of $var NOT found, searching for an exact match" ); + } + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, + 'hgrid'=>$nl_flags->{'res'}, 'ssp_rcp'=>$nl_flags->{'ssp_rcp'}, 'use_vichydro'=>$nl_flags->{'use_vichydro'}, + 'sim_year'=>$nl_flags->{'sim_year'}, 'irrigate'=>$nl_flags->{'irrigate'}, + 'use_crop'=>$nl_flags->{'use_crop'}, 'glc_nec'=>$nl_flags->{'glc_nec'}, 'nofail'=>1 ); + if ( ! defined($nl->get_value($var) ) ) { + $log->verbose_message( "Exact match of $var NOT found, searching for version with irrigate true" ); + } + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, + 'hgrid'=>$nl_flags->{'res'}, 'ssp_rcp'=>$nl_flags->{'ssp_rcp'}, 'use_vichydro'=>$nl_flags->{'use_vichydro'}, + 'sim_year'=>$nl_flags->{'sim_year'}, 'irrigate'=>".true.", + 'use_crop'=>$nl_flags->{'use_crop'}, 'glc_nec'=>$nl_flags->{'glc_nec'} ); } - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fsurdat', - 'hgrid'=>$nl_flags->{'res'}, - 'sim_year'=>$nl_flags->{'sim_year'}, 'irrigate'=>$nl_flags->{'irrigate'}, - 'use_crop'=>$nl_flags->{'use_crop'}, 'glc_nec'=>$nl_flags->{'glc_nec'}); } #------------------------------------------------------------------------------- @@ -2236,7 +2377,7 @@ sub setup_logic_initial_conditions { if (not defined $finidat ) { my $ic_date = $nl->get_value('start_ymd'); - my $st_year = int( $ic_date / 10000); + my $st_year = $nl_flags->{'st_year'}; my $nofail = 1; my %settings; $settings{'hgrid'} = $nl_flags->{'res'}; @@ -2245,25 +2386,26 @@ 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 # if (string_is_undef_or_empty($nl->get_value('flanduse_timeseries'))) { $settings{'sim_year'} = $nl_flags->{'sim_year'}; - $opts->{'ignore_ic_year'} = 1; + $opts->{'ignore_ic_year'} = 1; } else { - delete( $settings{'sim_year'} ); + $settings{'sim_year'} = $st_year; } - foreach my $item ( "mask", "maxpft", "irrigate", "glc_nec", "use_crop", "use_cn", "use_cndv", - "use_nitrif_denitrif", "use_vertsoilc", "use_century_decomp", "use_fates", - "lnd_tuning_mode" + foreach my $item ( "mask", "maxpft", "irrigate", "glc_nec", "use_crop", "use_cn", "use_cndv", + "use_fates", + "lnd_tuning_mode", ) { $settings{$item} = $nl_flags->{$item}; } if ($opts->{'ignore_ic_date'}) { if ( &value_is_true($nl_flags->{'use_crop'}) ) { - $log->warning("using ignore_ic_date is incompatable with crop! If you choose to ignore this error, " . - "the counters since planting for crops will be messed up. \nSo you should ignore at " . + $log->warning("using ignore_ic_date is incompatable with crop! If you choose to ignore this error, " . + "the counters since planting for crops will be messed up. \nSo you should ignore at " . "least the first season for crops. And since it will impact the 20 year means, ideally the " . "first 20 years should be ignored."); } @@ -2275,10 +2417,11 @@ sub setup_logic_initial_conditions { my $try = 0; my $done = 2; my $use_init_interp_default = $nl->get_value($useinitvar); + $settings{$useinitvar} = $use_init_interp_default; if ( string_is_undef_or_empty( $use_init_interp_default ) ) { - $use_init_interp_default = ".false."; + $use_init_interp_default = $defaults->get_value($useinitvar, \%settings); + $settings{$useinitvar} = ".false."; } - $settings{$useinitvar} = $use_init_interp_default; do { $try++; add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, %settings ); @@ -2293,39 +2436,65 @@ sub setup_logic_initial_conditions { #} add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, "init_interp_sim_years" ); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, "init_interp_how_close" ); - foreach my $sim_yr ( split( /,/, $nl->get_value("init_interp_sim_years") )) { - if ( abs($st_year - $sim_yr) < $nl->get_value("init_interp_how_close") ) { + # + # Figure out which sim_year has a usable finidat file that is closest to the desired one + # + my $close = $nl->get_value("init_interp_how_close"); + my $closest_sim_year = undef; + my @sim_years = split( /,/, $nl->get_value("init_interp_sim_years") ); +SIMYR: foreach my $sim_yr ( @sim_years ) { + my $how_close = undef; + if ( $nl_flags->{'sim_year'} eq "PtVg" ) { + $how_close = abs(1850 - $sim_yr); + } elsif ( $nl_flags->{'flanduse_timeseries'} eq "null" ) { + $how_close = abs($nl_flags->{'sim_year'} - $sim_yr); + } else { + $how_close = abs($st_year - $sim_yr); + } + if ( ($sim_yr == $sim_years[-1]) || (($how_close < $nl->get_value("init_interp_how_close")) && ($how_close < $close)) ) { + my $group = $definition->get_group_name($useinitvar); $settings{'sim_year'} = $sim_yr; + $settings{$useinitvar} = $defaults->get_value($useinitvar, \%settings); + if ( ! defined($settings{$useinitvar}) ) { + $settings{$useinitvar} = $use_init_interp_default; + } + if ( &value_is_true($settings{$useinitvar}) ) { + + if ( ($how_close < $nl->get_value("init_interp_how_close")) && ($how_close < $close) ) { + $close = $how_close; + $closest_sim_year = $sim_yr; + } + } } - } + } # SIMYR: + $settings{'sim_year'} = $closest_sim_year; add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $useinitvar, - 'use_cndv'=>$nl_flags->{'use_cndv'}, 'phys'=>$physv->as_string(), - 'sim_year'=>$settings{'sim_year'}, 'nofail'=>1, 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'}, - 'use_fates'=>$nl_flags->{'use_fates'} ); + 'use_cndv'=>$nl_flags->{'use_cndv'}, 'phys'=>$physv->as_string(), 'hgrid'=>$nl_flags->{'res'}, + 'sim_year'=>$settings{'sim_year'}, 'nofail'=>1, 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'}, + 'use_fates'=>$nl_flags->{'use_fates'} ); $settings{$useinitvar} = $nl->get_value($useinitvar); - if ( $try > 1 ) { - my $group = $definition->get_group_name($useinitvar); - $nl->set_variable_value($group, $useinitvar, $use_init_interp_default ); - } - if ( &value_is_true($nl->get_value($useinitvar) ) ) { - - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, "init_interp_attributes", - 'sim_year'=>$settings{'sim_year'}, 'use_cndv'=>$nl_flags->{'use_cndv'}, - 'glc_nec'=>$nl_flags->{'glc_nec'}, 'use_fates'=>$nl_flags->{'use_fates'}, - 'use_cn'=>$nl_flags->{'use_cn'}, 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'},'nofail'=>1 ); - my $attributes_string = remove_leading_and_trailing_quotes($nl->get_value("init_interp_attributes")); + if ( ! &value_is_true($nl->get_value($useinitvar) ) ) { + if ( $nl_flags->{'clm_start_type'} =~ /startup/ ) { + $log->fatal_error("clm_start_type is startup so an initial conditions ($var) file is required, but can't find one without $useinitvar being set to true"); + } + } else { + my $stat = add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, "init_interp_attributes", + 'sim_year'=>$settings{'sim_year'}, 'use_cndv'=>$nl_flags->{'use_cndv'}, + 'glc_nec'=>$nl_flags->{'glc_nec'}, 'use_fates'=>$nl_flags->{'use_fates'}, + 'hgrid'=>$nl_flags->{'res'}, + 'use_cn'=>$nl_flags->{'use_cn'}, 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'}, 'nofail'=>1 ); + if ( $stat ) { + $log->fatal_error("$useinitvar is NOT synchronized with init_interp_attributes"); + } + my $attributes = $nl->get_value("init_interp_attributes"); + my $attributes_string = remove_leading_and_trailing_quotes($attributes); foreach my $pair ( split( /\s/, $attributes_string) ) { - if ( $pair =~ /^([a-z_]+)=([a-z._0-9]+)$/ ) { + if ( $pair =~ /^([a-z_]+)=([a-zA-Z._0-9]+)$/ ) { $settings{$1} = $2; } else { - $log->fatal_error("Problem interpreting init_interp_attributes"); + $log->fatal_error("Problem interpreting init_interp_attributes: $pair"); } } - } else { - if ( $nl_flags->{'clm_start_type'} =~ /startup/ ) { - $log->fatal_error("clm_start_type is startup so an initial conditions ($var) file is required, but can't find one without $useinitvar being set to true"); - } - $try = $done; } } else { $try = $done @@ -2352,7 +2521,10 @@ sub setup_logic_dynamic_subgrid { setup_logic_do_transient_pfts($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_do_transient_crops($opts, $nl_flags, $definition, $defaults, $nl); + setup_logic_do_transient_lakes($opts, $nl_flags, $definition, $defaults, $nl); + setup_logic_do_transient_urban($opts, $nl_flags, $definition, $defaults, $nl); setup_logic_do_harvest($opts, $nl_flags, $definition, $defaults, $nl); + setup_logic_do_grossunrep($opts, $nl_flags, $definition, $defaults, $nl); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'reset_dynbal_baselines'); if ( &value_is_true($nl->get_value('reset_dynbal_baselines')) && @@ -2477,7 +2649,7 @@ sub setup_logic_do_transient_crops { # In principle, use_fates should be compatible with # do_transient_crops. However, this hasn't been tested, so to be safe, # we are not allowing this combination for now. - $cannot_be_true = "$var has not been tested with ED, so for now these two options cannot be combined"; + $cannot_be_true = "$var has not been tested with FATES, so for now these two options cannot be combined"; } if ($cannot_be_true) { @@ -2517,49 +2689,48 @@ sub setup_logic_do_transient_crops { } } -sub setup_logic_do_harvest { +sub setup_logic_do_transient_lakes { # - # Set do_harvest default value, and perform error checking on do_harvest + # Set do_transient_lakes default value, and perform error checking on do_transient_lakes # # Assumes the following are already set in the namelist (although it's okay # for them to be unset if that will be their final state): # - flanduse_timeseries - # - use_cn - # - use_fates # + # NOTE(wjs, 2020-08-23) I based this function on setup_logic_do_transient_crops. I'm + # not sure if all of the checks here are truly important for transient lakes (in + # particular, my guess is that collapse_urban could probably be done with transient + # lakes - as well as transient pfts and transient crops for that matter), but some of + # the checks probably are needed, and it seems best to keep transient lakes consistent + # with other transient areas in this respect. my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; - my $var = 'do_harvest'; - - # Start by assuming a default value of '.true.'. Then check a number of - # conditions under which do_harvest cannot be true. Under these - # conditions: (1) set default value to '.false.'; (2) make sure that the - # value is indeed false (e.g., that the user didn't try to set it to true). - - my $default_val = ".true."; + my $var = 'do_transient_lakes'; # cannot_be_true will be set to a non-empty string in any case where - # do_harvest should not be true; if it turns out that do_harvest IS true - # in any of these cases, a fatal error will be generated + # do_transient_lakes should not be true; if it turns out that + # do_transient_lakes IS true in any of these cases, a fatal error will be + # generated my $cannot_be_true = ""; + my $n_dom_pfts = $nl->get_value( 'n_dom_pfts' ); + my $n_dom_landunits = $nl->get_value( 'n_dom_landunits' ); + my $toosmall_soil = $nl->get_value( 'toosmall_soil' ); + my $toosmall_crop = $nl->get_value( 'toosmall_crop' ); + my $toosmall_glacier = $nl->get_value( 'toosmall_glacier' ); + my $toosmall_lake = $nl->get_value( 'toosmall_lake' ); + my $toosmall_wetland = $nl->get_value( 'toosmall_wetland' ); + my $toosmall_urban = $nl->get_value( 'toosmall_urban' ); + if (string_is_undef_or_empty($nl->get_value('flanduse_timeseries'))) { $cannot_be_true = "$var can only be set to true when running a transient case (flanduse_timeseries non-blank)"; - } elsif (!&value_is_true($nl->get_value('use_cn'))) { - $cannot_be_true = "$var can only be set to true when running with CN (use_cn = true)"; - } elsif (&value_is_true($nl->get_value('use_fates'))) { - $cannot_be_true = "$var currently doesn't work with ED"; - } - - if ($cannot_be_true) { - $default_val = ".false."; } if (!$cannot_be_true) { # Note that, if the variable cannot be true, we don't call add_default # - so that we don't clutter up the namelist with variables that don't # matter for this case - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, val=>$default_val); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var); } # Make sure the value is false when it needs to be false - i.e., that the @@ -2568,42 +2739,238 @@ sub setup_logic_do_harvest { if (&value_is_true($nl->get_value($var)) && $cannot_be_true) { $log->fatal_error($cannot_be_true); } -} - -#------------------------------------------------------------------------------- - -sub setup_logic_spinup { - my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; - if ( $nl_flags->{'bgc_mode'} eq "sp" && defined($nl->get_value('override_bgc_restart_mismatch_dump'))) { - $log->fatal_error("CN must be on if override_bgc_restart_mismatch_dump is set."); - } - if ( $nl_flags->{'clm_accelerated_spinup'} eq "on" ) { - foreach my $var ( "hist_nhtfrq", "hist_fincl1", "hist_empty_htapes", "hist_mfilt" ) { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, - $var, use_cn=>$nl_flags->{'use_cn'}, use_fates=>$nl_flags->{'use_fates'}, - use_cndv=>$nl_flags->{'use_cndv'} ); - } - } + # if do_transient_lakes is .true. and any of these (n_dom_* or toosmall_*) + # are > 0 or collapse_urban = .true., then give fatal error + if (&value_is_true($nl->get_value($var))) { + if (&value_is_true($nl->get_value('collapse_urban'))) { + $log->fatal_error("$var cannot be combined with collapse_urban"); + } + if ($n_dom_pfts > 0 || $n_dom_landunits > 0 || $toosmall_soil > 0 || $toosmall_crop > 0 || $toosmall_glacier > 0 || $toosmall_lake > 0 || $toosmall_wetland > 0 || $toosmall_urban > 0) { + $log->fatal_error("$var cannot be combined with any of the of the following > 0: n_dom_pfts > 0, n_dom_landunit > 0, toosmall_soil > 0._r8, toosmall_crop > 0._r8, toosmall_glacier > 0._r8, toosmall_lake > 0._r8, toosmall_wetland > 0._r8, toosmall_urban > 0._r8"); + } + } } -#------------------------------------------------------------------------------- - -sub setup_logic_bgc_shared { - my ($opts, $nl_flags, $definition, $defaults, $nl, $physv) = @_; +sub setup_logic_do_transient_urban { + # + # Set do_transient_urban default value, and perform error checking on do_transient_urban + # + # Assumes the following are already set in the namelist (although it's okay + # for them to be unset if that will be their final state): + # - flanduse_timeseries + # + # NOTE(kwo, 2021-08-11) I based this function on setup_logic_do_transient_lakes. + # As in NOTE(wjs, 2020-08-23) I'm not sure if all of the checks here are truly important + # for transient urban (in particular, my guess is that collapse_urban could probably be done with transient + # urban - as well as transient pfts and transient crops for that matter), but some of + # the checks probably are needed, and it seems best to keep transient urban consistent + # with other transient areas in this respect. + my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; - if ( $nl_flags->{'bgc_mode'} ne "sp" ) { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'constrain_stress_deciduous_onset', 'phys'=>$physv->as_string() ); - } - # FIXME(bja, 201606) the logic around fates / bgc_mode / - # use_century_decomp is confusing and messed up. This is a hack - # workaround. - if ( &value_is_true($nl_flags->{'use_century_decomp'}) ) { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'decomp_depth_efolding', 'phys'=>$physv->as_string() ); - } -} + my $var = 'do_transient_urban'; -#------------------------------------------------------------------------------- + # cannot_be_true will be set to a non-empty string in any case where + # do_transient_urban should not be true; if it turns out that + # do_transient_urban IS true in any of these cases, a fatal error will be + # generated + my $cannot_be_true = ""; + + my $n_dom_pfts = $nl->get_value( 'n_dom_pfts' ); + my $n_dom_landunits = $nl->get_value( 'n_dom_landunits' ); + my $toosmall_soil = $nl->get_value( 'toosmall_soil' ); + my $toosmall_crop = $nl->get_value( 'toosmall_crop' ); + my $toosmall_glacier = $nl->get_value( 'toosmall_glacier' ); + my $toosmall_lake = $nl->get_value( 'toosmall_lake' ); + my $toosmall_wetland = $nl->get_value( 'toosmall_wetland' ); + my $toosmall_urban = $nl->get_value( 'toosmall_urban' ); + + if (string_is_undef_or_empty($nl->get_value('flanduse_timeseries'))) { + $cannot_be_true = "$var can only be set to true when running a transient case (flanduse_timeseries non-blank)"; + } + + if (!$cannot_be_true) { + # Note that, if the variable cannot be true, we don't call add_default + # - so that we don't clutter up the namelist with variables that don't + # matter for this case + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var); + } + + # Make sure the value is false when it needs to be false - i.e., that the + # user hasn't tried to set a true value at an inappropriate time. + + if (&value_is_true($nl->get_value($var)) && $cannot_be_true) { + $log->fatal_error($cannot_be_true); + } + + # if do_transient_urban is .true. and any of these (n_dom_* or toosmall_*) + # are > 0 or collapse_urban = .true., then give fatal error + if (&value_is_true($nl->get_value($var))) { + if (&value_is_true($nl->get_value('collapse_urban'))) { + $log->fatal_error("$var cannot be combined with collapse_urban"); + } + if ($n_dom_pfts > 0 || $n_dom_landunits > 0 || $toosmall_soil > 0 || $toosmall_crop > 0 || $toosmall_glacier > 0 || $toosmall_lake > 0 || $toosmall_wetland > 0 || $toosmall_urban > 0) { + $log->fatal_error("$var cannot be combined with any of the of the following > 0: n_dom_pfts > 0, n_dom_landunit > 0, toosmall_soil > 0._r8, toosmall_crop > 0._r8, toosmall_glacier > 0._r8, toosmall_lake > 0._r8, toosmall_wetland > 0._r8, toosmall_urban > 0._r8"); + } + } +} + +sub setup_logic_do_harvest { + # + # Set do_harvest default value, and perform error checking on do_harvest + # + # Assumes the following are already set in the namelist (although it's okay + # for them to be unset if that will be their final state): + # - flanduse_timeseries + # - use_cn + # - use_fates + # + my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; + + my $var = 'do_harvest'; + + # Start by assuming a default value of '.true.'. Then check a number of + # conditions under which do_harvest cannot be true. Under these + # conditions: (1) set default value to '.false.'; (2) make sure that the + # value is indeed false (e.g., that the user didn't try to set it to true). + + my $default_val = ".true."; + + # cannot_be_true will be set to a non-empty string in any case where + # do_harvest should not be true; if it turns out that do_harvest IS true + # in any of these cases, a fatal error will be generated + my $cannot_be_true = ""; + + if (string_is_undef_or_empty($nl->get_value('flanduse_timeseries'))) { + $cannot_be_true = "$var can only be set to true when running a transient case (flanduse_timeseries non-blank)"; + } + + elsif (!&value_is_true($nl->get_value('use_cn')) && !&value_is_true($nl->get_value('use_fates'))) { + $cannot_be_true = "$var can only be set to true when running with either CN or FATES"; + } + + if ($cannot_be_true) { + $default_val = ".false."; + } + + if (!$cannot_be_true) { + # Note that, if the variable cannot be true, we don't call add_default + # - so that we don't clutter up the namelist with variables that don't + # matter for this case + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, val=>$default_val); + } + + # Make sure the value is false when it needs to be false - i.e., that the + # user hasn't tried to set a true value at an inappropriate time. + + if (&value_is_true($nl->get_value($var)) && $cannot_be_true) { + $log->fatal_error($cannot_be_true); + } +} + +#------------------------------------------------------------------------------- + +sub setup_logic_do_grossunrep { + # + # Set do_grossunrep default value, and perform error checking on do_grossunrep + # + # Assumes the following are already set in the namelist (although it's okay + # for them to be unset if that will be their final state): + # - flanduse_timeseries + # - use_cn + # - use_fates + # + my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; + + my $var = 'do_grossunrep'; + + # Start by assuming a default value of '.true.'. Then check a number of + # conditions under which do_grossunrep cannot be true. Under these + # conditions: (1) set default value to '.false.'; (2) make sure that the + # value is indeed false (e.g., that the user didn't try to set it to true). + + my $default_val = ".false."; + + # cannot_be_true will be set to a non-empty string in any case where + # do_grossunrep should not be true; if it turns out that do_grossunrep IS true + # in any of these cases, a fatal error will be generated + my $cannot_be_true = ""; + + if (string_is_undef_or_empty($nl->get_value('flanduse_timeseries'))) { + $cannot_be_true = "$var can only be set to true when running a transient case (flanduse_timeseries non-blank)"; + } + elsif (&value_is_true($nl->get_value('use_fates'))) { + $cannot_be_true = "$var currently doesn't work with FATES"; + } + elsif (!&value_is_true($nl->get_value('use_cn'))) { + $cannot_be_true = "$var can only be set to true when running with CN (use_cn = true)"; + } + + if ($cannot_be_true) { + $default_val = ".false."; + } + + if (!$cannot_be_true) { + # Note that, if the variable cannot be true, we don't call add_default + # - so that we don't clutter up the namelist with variables that don't + # matter for this case + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, val=>$default_val); + } + + # Make sure the value is false when it needs to be false - i.e., that the + # user hasn't tried to set a true value at an inappropriate time. + + if (&value_is_true($nl->get_value($var)) && $cannot_be_true) { + $log->fatal_error($cannot_be_true); + } + +} + +#------------------------------------------------------------------------------- +sub setup_logic_spinup { + my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; + + if ( $nl_flags->{'bgc_mode'} eq "sp" && defined($nl->get_value('override_bgc_restart_mismatch_dump'))) { + $log->fatal_error("CN must be on if override_bgc_restart_mismatch_dump is set."); + } + if ( $nl_flags->{'clm_accelerated_spinup'} eq "on" ) { + foreach my $var ( "hist_nhtfrq", "hist_fincl1", "hist_empty_htapes", "hist_mfilt" ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, + $var, use_cn=>$nl_flags->{'use_cn'}, use_fates=>$nl_flags->{'use_fates'}, + use_cndv=>$nl_flags->{'use_cndv'} ); + } + } +} + +#------------------------------------------------------------------------------- + +sub setup_logic_bgc_shared { + my ($opts, $nl_flags, $definition, $defaults, $nl, $physv) = @_; + + if ( $nl_flags->{'bgc_mode'} ne "sp" ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'constrain_stress_deciduous_onset', 'phys'=>$physv->as_string() ); + } +} + +#------------------------------------------------------------------------------- + +sub setup_logic_cnphenology { + my ($opts, $nl_flags, $definition, $defaults, $nl, $physv) = @_; + + my @list = ( "onset_thresh_depends_on_veg", "min_critical_dayl_method" ); + foreach my $var ( @list ) { + if ( &value_is_true($nl_flags->{'use_cn'}) ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, + 'phys'=>$physv->as_string(), 'use_cn'=>$nl_flags->{'use_cn'} ); + } else { + if ( defined($nl->get_value($var)) ) { + $log->fatal_error("$var should only be set if use_cn is on"); + } + } + } +} + +#------------------------------------------------------------------------------- sub setup_logic_supplemental_nitrogen { # @@ -2612,24 +2979,30 @@ sub setup_logic_supplemental_nitrogen { my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; if ( $nl_flags->{'bgc_mode'} ne "sp" && $nl_flags->{'bgc_mode'} ne "fates" && &value_is_true($nl_flags->{'use_crop'}) ) { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, - 'suplnitro', 'use_cn'=>$nl_flags->{'use_cn'}, 'use_crop'=>$nl_flags->{'use_crop'}); - } + # If this is non-fates, non-sp and crop is active + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, + 'suplnitro', 'use_cn'=>$nl_flags->{'use_cn'}, 'use_crop'=>$nl_flags->{'use_crop'}); + } elsif ( $nl_flags->{'bgc_mode'} eq "fates" && not &value_is_true( $nl_flags->{'use_fates_sp'}) ) { + # Or... if its fates but not fates-sp + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, + 'suplnitro', 'use_fates'=>$nl_flags->{'use_fates'}); + } + # # Error checking for suplnitro # my $suplnitro = $nl->get_value('suplnitro'); if ( defined($suplnitro) ) { if ( $nl_flags->{'bgc_mode'} eq "sp" ) { - $log->fatal_error("supplemental Nitrogen (suplnitro) is set, but neither CN nor CNDV is active!"); + $log->fatal_error("supplemental Nitrogen (suplnitro) is set, but neither CN nor CNDV nor FATES is active!"); } if ( ! &value_is_true($nl_flags->{'use_crop'}) && $suplnitro =~ /PROG_CROP_ONLY/i ) { $log->fatal_error("supplemental Nitrogen is set to run over prognostic crops, but prognostic crop is NOT active!"); } if ( $suplnitro =~ /ALL/i ) { - if ( $nl_flags->{'bgc_spinup'} ne "off" ) { + if ( $nl_flags->{'bgc_spinup'} eq "on" && $nl_flags->{'bgc_mode'} ne "fates" ) { $log->warning("There is no need to use a bgc_spinup mode when supplemental Nitrogen is on for all PFT's, as these modes spinup Nitrogen" ); } } @@ -2720,8 +3093,7 @@ sub setup_logic_nitrif_params { my ($nl_flags, $definition, $defaults, $nl) = @_; if ( ! &value_is_true($nl_flags->{'use_nitrif_denitrif'}) ) { - my @vars = ( "k_nitr_max", "denitrif_respiration_coefficient", "denitrif_respiration_exponent", - "denitrif_nitrateconc_coefficient", "denitrif_nitrateconc_exponent" ); + my @vars = ( "k_nitr_max", "denitrif_respiration_coefficient", "denitrif_respiration_exponent"); foreach my $var ( @vars ) { if ( defined($nl->get_value( $var ) ) ) { $log->fatal_error("$var is only used when use_nitrif_denitrif is turned on"); @@ -2730,6 +3102,30 @@ sub setup_logic_nitrif_params { } } +#------------------------------------------------------------------------------- + +sub setup_logic_mineral_nitrogen_dynamics { + # + # Logic for mineral_nitrogen_dynamics + # + my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; + + my @vars = ( "freelivfix_slope_wet", "freelivfix_intercept" ); + if ( &value_is_true($nl_flags->{'use_cn'}) && &value_is_true($nl->get_value('use_fun')) ) { + foreach my $var ( @vars ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, + 'use_cn'=>$nl_flags->{'use_cn'}, 'use_fun'=>$nl->get_value('use_fun') ); + } + } else { + foreach my $var ( @vars ) { + if ( defined($nl->get_value( $var ) ) ) { + $log->fatal_error("$var is only used when use_cn and use_fun are both turned on"); + } + } + } +} + + #------------------------------------------------------------------------------- sub setup_logic_hydrology_switches { @@ -2755,7 +3151,7 @@ sub setup_logic_hydrology_switches { } # Test bad configurations my $lower = $nl->get_value( 'lower_boundary_condition' ); - my $use_vic = $nl->get_value( 'use_vichydro' ); + my $use_vic = $nl_flags->{'use_vichydro'}; my $use_bed = $nl->get_value( 'use_bedrock' ); my $soilmtd = $nl->get_value( 'soilwater_movement_method' ); if ( defined($soilmtd) && defined($lower) && $soilmtd == 0 && $lower != 4 ) { @@ -2789,16 +3185,12 @@ sub setup_logic_methane { if ( &value_is_true($nl_flags->{'use_lch4'}) ) { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'finundation_method', 'use_cn'=>$nl_flags->{'use_cn'}, 'use_fates'=>$nl_flags->{'use_fates'} ); - # - # Get resolution to read streams file for - # my $finundation_method = remove_leading_and_trailing_quotes($nl->get_value('finundation_method' )); - if ( $finundation_method eq "TWS_inversion" ) { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'finundation_res', - 'finundation_method'=>$finundation_method ); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_fldfilename_ch4finundated', - 'finundation_method'=>$finundation_method, - 'finundation_res'=>$nl->get_value('finundation_res') ); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_fldfilename_ch4finundated', + 'finundation_method'=>$finundation_method); + if ($opts->{'driver'} eq "nuopc" ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_meshfile_ch4finundated', + 'finundation_method'=>$finundation_method); } add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_aereoxid_prog', 'use_cn'=>$nl_flags->{'use_cn'}, 'use_fates'=>$nl_flags->{'use_fates'} ); @@ -2842,6 +3234,10 @@ sub setup_logic_methane { $log->fatal_error("$var set without methane model configuration on (use_lch4)"); } } + my $var = "use_nitrif_denitrif"; + if ( (! &value_is_true( $nl_flags->{'use_fates'} ) ) && &value_is_true($nl->get_value($var)) ) { + $log->warning("methane is off (use_lch4=FALSE), but $var is TRUE, both need to be on, unless FATES is also on" ); + } } } # end methane @@ -2857,31 +3253,20 @@ sub setup_logic_dynamic_plant_nitrogen_alloc { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_flexibleCN', 'phys'=>$physv->as_string(), 'use_cn'=>$nl_flags->{'use_cn'} ); $nl_flags->{'use_flexibleCN'} = $nl->get_value('use_flexibleCN'); + if ( &value_is_true($nl->get_value('use_fun') ) && not &value_is_true( $nl_flags->{'use_flexibleCN'}) ) { + $log->warning("FUN has NOT been extensively tested without use_flexibleCN on, so could result in failures or unexpected results" ); + } if ( &value_is_true($nl_flags->{'use_flexibleCN'}) ) { # TODO(bja, 2015-04) make this depend on > clm 5.0 and bgc mode at some point. add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'MM_Nuptake_opt', 'use_flexibleCN'=>$nl_flags->{'use_flexibleCN'} ); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'downreg_opt', - 'use_flexibleCN'=>$nl_flags->{'use_flexibleCN'} ); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'plant_ndemand_opt', - 'use_flexibleCN'=>$nl_flags->{'use_flexibleCN'} ); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'substrate_term_opt', - 'use_flexibleCN'=>$nl_flags->{'use_flexibleCN'} ); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'nscalar_opt', - 'use_flexibleCN'=>$nl_flags->{'use_flexibleCN'} ); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'temp_scalar_opt', - 'use_flexibleCN'=>$nl_flags->{'use_flexibleCN'} ); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'CNratio_floating', 'use_flexibleCN'=>$nl_flags->{'use_flexibleCN'} ); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'reduce_dayl_factor', 'use_flexibleCN'=>$nl_flags->{'use_flexibleCN'} ); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'vcmax_opt', 'use_flexibleCN'=>$nl_flags->{'use_flexibleCN'} ); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'CN_residual_opt', - 'use_flexibleCN'=>$nl_flags->{'use_flexibleCN'} ); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'CN_partition_opt', - 'use_flexibleCN'=>$nl_flags->{'use_flexibleCN'} ); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'CN_evergreen_phenology_opt', 'use_flexibleCN'=>$nl_flags->{'use_flexibleCN'} ); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'carbon_resp_opt', @@ -2899,6 +3284,26 @@ sub setup_logic_dynamic_plant_nitrogen_alloc { #------------------------------------------------------------------------------- +sub setup_logic_o3_veg_stress_method { + # + # Ozone vegetation stress method + # + my ($opts, $nl_flags, $definition, $defaults, $nl, $physv) = @_; + + my $var = 'o3_veg_stress_method'; + + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var ); + + my $val = $nl->get_value($var); + + if (remove_leading_and_trailing_quotes($val) eq "stress_falk" && not (&value_is_true($nl_flags->{'use_luna'})) ) { + $log->fatal_error(" use_luna=.true. is required for $var='stress_falk'."); + } + +} + +#------------------------------------------------------------------------------- + sub setup_logic_luna { # # LUNA model to calculate photosynthetic capacities based on environmental conditions @@ -2914,6 +3319,12 @@ sub setup_logic_luna { 'use_cn'=>$nl_flags->{'use_cn'} ); } $nl_flags->{'use_luna'} = $nl->get_value('use_luna'); + + # LUNA can NOT be on with FATES + if ( &value_is_true( $nl_flags->{'use_luna'} ) && &value_is_true( $nl_flags->{'use_fates'} )) { + $log->fatal_error("Cannot turn use_luna to true when bgc=fates" ); + } + my $vcmax_opt= $nl->get_value('vcmax_opt'); # lnc_opt only applies if luna is on or for vcmax_opt=3/4 if ( &value_is_true( $nl_flags->{'use_luna'} ) || $vcmax_opt == 3 || $vcmax_opt == 4 ) { @@ -3011,7 +3422,7 @@ sub setup_logic_dynamic_roots { my $use_dynroot = $nl->get_value('use_dynroot'); if ( &value_is_true($use_dynroot) && ($nl_flags->{'bgc_mode'} eq "sp") ) { $log->fatal_error("Cannot turn dynroot mode on mode bgc=sp\n" . - "Set the bgc mode to 'cn' or 'bgc'."); + "Set the bgc mode to 'bgc'."); } if ( &value_is_true( $use_dynroot ) && &value_is_true( $nl_flags->{'use_hydrstress'} ) ) { $log->fatal_error("Cannot turn use_dynroot on when use_hydrstress is on" ); @@ -3042,7 +3453,8 @@ sub setup_logic_c_isotope { my $use_c14_bombspike = $nl->get_value('use_c14_bombspike'); if ( defined($use_c14_bombspike) && &value_is_true($use_c14_bombspike) ) { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'atm_c14_filename', - 'use_c14'=>$use_c14, 'use_cn'=>$nl_flags->{'use_cn'}, 'use_c14_bombspike'=>$nl->get_value('use_c14_bombspike') ); + 'use_c14'=>$use_c14, 'use_cn'=>$nl_flags->{'use_cn'}, 'use_c14_bombspike'=>$nl->get_value('use_c14_bombspike'), + 'ssp_rcp'=>$nl_flags->{'ssp_rcp'} ); } } else { if ( defined($nl->get_value('use_c14_bombspike')) || @@ -3061,7 +3473,8 @@ sub setup_logic_c_isotope { my $use_c13_timeseries = $nl->get_value('use_c13_timeseries'); if ( defined($use_c13_timeseries) && &value_is_true($use_c13_timeseries) ) { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'atm_c13_filename', - 'use_c13'=>$use_c13, 'use_cn'=>$nl_flags->{'use_cn'}, 'use_c13_timeseries'=>$nl->get_value('use_c13_timeseries') ); + 'use_c13'=>$use_c13, 'use_cn'=>$nl_flags->{'use_cn'}, 'use_c13_timeseries'=>$nl->get_value('use_c13_timeseries'), + 'ssp_rcp'=>$nl_flags->{'ssp_rcp'} ); } } else { if ( defined($nl->get_value('use_c13_timeseries')) || @@ -3093,23 +3506,18 @@ sub setup_logic_nitrogen_deposition { my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; # - # Nitrogen deposition for bgc=CN + # Nitrogen deposition for bgc=CN or fates # - - if ( $nl_flags->{'bgc_mode'} =~/cn|bgc/ ) { + if ( ($nl_flags->{'bgc_mode'} =~/bgc/) ) { # or ($nl_flags->{'bgc_mode'} =~/fates/) ) { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'ndepmapalgo', 'phys'=>$nl_flags->{'phys'}, 'use_cn'=>$nl_flags->{'use_cn'}, 'hgrid'=>$nl_flags->{'res'}, 'clm_accelerated_spinup'=>$nl_flags->{'clm_accelerated_spinup'} ); - if ( defined($opts->{'use_case'}) ) { - if ( ($nl_flags->{'lnd_tuning_mode'} =~ /clm5_0_cam/) && ($opts->{'use_case'} eq "1850_control") ) { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'ndep_taxmode', 'phys'=>$nl_flags->{'phys'}, - 'use_cn'=>$nl_flags->{'use_cn'}, - 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'} ); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'ndep_varlist', 'phys'=>$nl_flags->{'phys'}, - 'use_cn'=>$nl_flags->{'use_cn'}, - 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'} ); - } - } + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'ndep_taxmode', 'phys'=>$nl_flags->{'phys'}, + 'use_cn'=>$nl_flags->{'use_cn'}, + 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'} ); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'ndep_varlist', 'phys'=>$nl_flags->{'phys'}, + 'use_cn'=>$nl_flags->{'use_cn'}, + 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'} ); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_year_first_ndep', 'phys'=>$nl_flags->{'phys'}, 'use_cn'=>$nl_flags->{'use_cn'}, 'sim_year'=>$nl_flags->{'sim_year'}, 'sim_year_range'=>$nl_flags->{'sim_year_range'}); @@ -3122,9 +3530,36 @@ sub setup_logic_nitrogen_deposition { 'sim_year_range'=>$nl_flags->{'sim_year_range'}); } add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_fldfilename_ndep', 'phys'=>$nl_flags->{'phys'}, - 'use_cn'=>$nl_flags->{'use_cn'}, 'rcp'=>$nl_flags->{'rcp'}, - 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'}, - 'hgrid'=>"1.9x2.5" ); + 'use_cn'=>$nl_flags->{'use_cn'}, 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'}, + 'hgrid'=>"0.9x1.25", 'ssp_rcp'=>$nl_flags->{'ssp_rcp'}, 'nofail'=>1 ); + if ( ! defined($nl->get_value('stream_fldfilename_ndep') ) ) { + # Also check at f19 resolution + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_fldfilename_ndep', 'phys'=>$nl_flags->{'phys'}, + 'use_cn'=>$nl_flags->{'use_cn'}, 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'}, + 'hgrid'=>"1.9x2.5", 'ssp_rcp'=>$nl_flags->{'ssp_rcp'}, 'nofail'=>1 ); + # If not found report an error + if ( ! defined($nl->get_value('stream_fldfilename_ndep') ) ) { + $log->warning("Did NOT find the Nitrogen-deposition forcing file (stream_fldfilename_ndep) for this ssp_rcp\n" . + "One way to get around this is to point to a file for another existing ssp_rcp in your user_nl_clm file.\n" . + "If you are running with CAM and WACCM chemistry Nitrogen deposition will come through the coupler.\n" . + "This file won't be used, so it doesn't matter what it points to -- but it's required to point to something.\n" ) + } + } + if ($opts->{'driver'} eq "nuopc" ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_meshfile_ndep', 'phys'=>$nl_flags->{'phys'}, + 'use_cn'=>$nl_flags->{'use_cn'}, 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'}, + 'hgrid'=>"0.9x1.25", 'ssp_rcp'=>$nl_flags->{'ssp_rcp'}, 'nofail'=>1 ); + if ( ! defined($nl->get_value('stream_fldfilename_ndep') ) ) { + # Also check at f19 resolution + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_meshfile_ndep', 'phys'=>$nl_flags->{'phys'}, + 'use_cn'=>$nl_flags->{'use_cn'}, 'lnd_tuning_mode'=>$nl_flags->{'lnd_tuning_mode'}, + 'hgrid'=>"1.9x2.5", 'ssp_rcp'=>$nl_flags->{'ssp_rcp'}, 'nofail'=>1 ); + # If not found report an error + if ( ! defined($nl->get_value('stream_meshfile_ndep') ) ) { + $log->warning("Did NOT find the Nitrogen-deposition meshfile file (stream_meshfilee_ndep) for this ssp_rcp. \n") + } + } + } } else { # If bgc is NOT CN/CNDV then make sure none of the ndep settings are set! if ( defined($nl->get_value('stream_year_first_ndep')) || @@ -3185,7 +3620,7 @@ sub setup_logic_photosyns { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'modifyphoto_and_lmr_forcrop', 'phys'=>$nl_flags->{'phys'} ); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, - $nl, 'stomatalcond_method', 'phys'=>$nl_flags->{'phys'}, + $nl, 'stomatalcond_method', 'phys'=>$nl_flags->{'phys'}, 'use_hydrstress'=>$nl_flags->{'use_hydrstress'} ); # When CN on, must NOT be scaled by vcmax25top if ( &value_is_true( $nl_flags->{'use_cn'} ) ) { @@ -3233,15 +3668,39 @@ sub setup_logic_popd_streams { 'sim_year_range'=>$nl_flags->{'sim_year_range'}, 'cnfireson'=>$nl_flags->{'cnfireson'}); } add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_fldfilename_popdens', 'phys'=>$nl_flags->{'phys'}, - 'cnfireson'=>$nl_flags->{'cnfireson'}, 'hgrid'=>"0.5x0.5" ); + 'cnfireson'=>$nl_flags->{'cnfireson'}, 'hgrid'=>"0.5x0.5", 'ssp_rcp'=>$nl_flags->{'ssp_rcp'} ); + # + # TODO (mvertens, 2021-06-22) the following is needed for MCT since a use case enforces this - so for now stream_meshfile_popdens will be added to the mct + # stream namelist but simply not used + if ($opts->{'driver'} eq "nuopc" ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_meshfile_popdens', 'hgrid'=>"0.5x0.5"); + my $inputdata_rootdir = $nl_flags->{'inputdata_rootdir'}; + my $default_value = $nl->get_value('stream_meshfile_popdens'); + my $none_filename = $inputdata_rootdir . '/none'; + my $none_filename = "e_string($none_filename); + if ($default_value eq $none_filename) { + my $var = 'stream_meshfile_popdens'; + my $group = $definition->get_group_name($var); + my $val = "none"; + $val = "e_string( $val ); + $nl->set_variable_value($group, $var, $val); + } + } else { + my $var = 'stream_meshfile_popdens'; + my $group = $definition->get_group_name($var); + my $val = "none"; + $val = "e_string( $val ); + $nl->set_variable_value($group, $var, $val); + } } else { # If bgc is NOT CN/CNDV or fire_method==nofire then make sure none of the popdens settings are set if ( defined($nl->get_value('stream_year_first_popdens')) || defined($nl->get_value('stream_year_last_popdens')) || defined($nl->get_value('model_year_align_popdens')) || + defined($nl->get_value('popdens_tintalgo' )) || defined($nl->get_value('stream_fldfilename_popdens')) ) { $log->fatal_error("When bgc is SP (NOT CN or BGC) or fire_method==nofire none of: stream_year_first_popdens,\n" . - "stream_year_last_popdens, model_year_align_popdens, nor\n" . + "stream_year_last_popdens, model_year_align_popdens, popdens_tintalgo nor\n" . "stream_fldfilename_popdens can be set!"); } } @@ -3269,6 +3728,10 @@ sub setup_logic_urbantv_streams { } add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_fldfilename_urbantv', 'phys'=>$nl_flags->{'phys'}, 'hgrid'=>"0.9x1.25" ); + if ($opts->{'driver'} eq "nuopc" ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_meshfile_urbantv', 'phys'=>$nl_flags->{'phys'}, + 'hgrid'=>"0.9x1.25" ); + } } #------------------------------------------------------------------------------- @@ -3277,32 +3740,37 @@ sub setup_logic_lightning_streams { # lightning streams require CN/BGC my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; - if ( &value_is_true($nl_flags->{'cnfireson'}) ) { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'lightngmapalgo', 'use_cn'=>$nl_flags->{'use_cn'}, - 'hgrid'=>$nl_flags->{'res'}, - 'clm_accelerated_spinup'=>$nl_flags->{'clm_accelerated_spinup'} ); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_year_first_lightng', 'use_cn'=>$nl_flags->{'use_cn'}, - 'sim_year'=>$nl_flags->{'sim_year'}, - 'sim_year_range'=>$nl_flags->{'sim_year_range'}); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_year_last_lightng', 'use_cn'=>$nl_flags->{'use_cn'}, - 'sim_year'=>$nl_flags->{'sim_year'}, - 'sim_year_range'=>$nl_flags->{'sim_year_range'}); - # Set align year, if first and last years are different - if ( $nl->get_value('stream_year_first_lightng') != - $nl->get_value('stream_year_last_lightng') ) { + if ( $nl_flags->{'light_res'} ne "none" ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'lightngmapalgo', + 'hgrid'=>$nl_flags->{'res'}, + 'clm_accelerated_spinup'=>$nl_flags->{'clm_accelerated_spinup'} ); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_year_first_lightng', + 'sim_year'=>$nl_flags->{'sim_year'}, + 'sim_year_range'=>$nl_flags->{'sim_year_range'}); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_year_last_lightng', + 'sim_year'=>$nl_flags->{'sim_year'}, + 'sim_year_range'=>$nl_flags->{'sim_year_range'}); + # Set align year, if first and last years are different + if ( $nl->get_value('stream_year_first_lightng') != + $nl->get_value('stream_year_last_lightng') ) { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'model_year_align_lightng', 'sim_year'=>$nl_flags->{'sim_year'}, 'sim_year_range'=>$nl_flags->{'sim_year_range'}); } - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_fldfilename_lightng', 'use_cn'=>$nl_flags->{'use_cn'}, + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_fldfilename_lightng', 'hgrid'=>$nl_flags->{'light_res'} ); + if ($opts->{'driver'} eq "nuopc" ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_meshfile_lightng', + 'hgrid'=>$nl_flags->{'light_res'} ); + } } else { # If bgc is NOT CN/CNDV then make sure none of the Lightng settings are set if ( defined($nl->get_value('stream_year_first_lightng')) || defined($nl->get_value('stream_year_last_lightng')) || defined($nl->get_value('model_year_align_lightng')) || + defined($nl->get_value('lightng_tintalgo' )) || defined($nl->get_value('stream_fldfilename_lightng')) ) { - $log->fatal_error("When bgc is SP (NOT CN or BGC) or fire_method==nofire none of: stream_year_first_lightng,\n" . - "stream_year_last_lightng, model_year_align_lightng, nor\n" . + $log->fatal_error("When bgc is SP (NOT CN or BGC or FATES) or fire is turned off none of: stream_year_first_lightng,\n" . + "stream_year_last_lightng, model_year_align_lightng, lightng_tintalgo nor\n" . "stream_fldfilename_lightng can be set!"); } } @@ -3314,12 +3782,15 @@ sub setup_logic_dry_deposition { my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; if ($opts->{'drydep'} ) { + if ( &value_is_true( $nl_flags->{'use_fates'}) && not &value_is_true( $nl_flags->{'use_fates_sp'}) ) { + $log->warning("DryDeposition can NOT be on when FATES is also on unless FATES-SP mode is on.\n" . + " Use the '--no-drydep' option when '-bgc fates' is activated"); + } add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'drydep_list'); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'drydep_method'); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'dep_data_file'); } else { - if ( defined($nl->get_value('drydep_list')) || - defined($nl->get_value('drydep_method')) ) { - $log->fatal_error("drydep_list or drydep_method defined, but drydep option NOT set"); + if ( defined($nl->get_value('drydep_list')) ) { + $log->fatal_error("drydep_list defined, but drydep option NOT set"); } } } @@ -3330,6 +3801,10 @@ sub setup_logic_fire_emis { my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; if ($opts->{'fire_emis'} ) { + if ( &value_is_true( $nl_flags->{'use_fates'} ) ) { + $log->warning("Fire emission can NOT be on when FATES is also on.\n" . + " DON'T use the '-fire_emis' option when '-bgc fates' is activated"); + } add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fire_emis_factors_file'); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fire_emis_specifier'); } else { @@ -3359,7 +3834,7 @@ sub setup_logic_megan { if ($nl_flags->{'megan'} ) { if ( &value_is_true( $nl_flags->{'use_fates'} ) ) { - $log->fatal_error("MEGAN can NOT be on when ED is also on.\n" . + $log->warning("MEGAN can NOT be on when FATES is also on.\n" . " Use the '-no-megan' option when '-bgc fates' is activated"); } add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'megan_specifier'); @@ -3375,47 +3850,154 @@ sub setup_logic_megan { #------------------------------------------------------------------------------- +sub setup_logic_soilm_streams { + # prescribed soil moisture streams require clm4_5/clm5_0/clm5_1 + my ($opts, $nl_flags, $definition, $defaults, $nl, $physv) = @_; + + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_soil_moisture_streams'); + if ( &value_is_true( $nl->get_value('use_soil_moisture_streams') ) ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'soilm_tintalgo', + 'hgrid'=>$nl_flags->{'res'} ); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'soilm_offset', + 'hgrid'=>$nl_flags->{'res'} ); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_year_first_soilm', 'phys'=>$nl_flags->{'phys'}, + 'sim_year'=>$nl_flags->{'sim_year'}, + 'sim_year_range'=>$nl_flags->{'sim_year_range'}); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_year_last_soilm', 'phys'=>$nl_flags->{'phys'}, + 'sim_year'=>$nl_flags->{'sim_year'}, + 'sim_year_range'=>$nl_flags->{'sim_year_range'}); + # Set align year, if first and last years are different + if ( $nl->get_value('stream_year_first_soilm') != + $nl->get_value('stream_year_last_soilm') ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, + 'model_year_align_soilm', 'sim_year'=>$nl_flags->{'sim_year'}, + 'sim_year_range'=>$nl_flags->{'sim_year_range'}); + } + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_fldfilename_soilm', 'phys'=>$nl_flags->{'phys'}, + 'hgrid'=>$nl_flags->{'res'} ); + if ( ($opts->{'use_case'} =~ /_transient$/) && + (remove_leading_and_trailing_quotes($nl->get_value("soilm_tintalgo")) eq "linear") ) { + $log->warning("For a transient case, soil moisture streams, should NOT use soilm_tintalgo='linear'" . + " since vegetated areas could go from missing to not missing or vice versa" ); + } + } else { + if ( defined($nl->get_value('stream_year_first_soilm')) || + defined($nl->get_value('model_year_align_soilm')) || + defined($nl->get_value('stream_fldfilename_soilm')) || + defined($nl->get_value('soilm_tintalgo')) || + defined($nl->get_value('soilm_offset')) || + defined($nl->get_value('stream_year_last_soilm')) ) { + $log->fatal_error("One of the soilm streams namelist items (stream_year_first_soilm, " . + " model_year_align_soilm, stream_fldfilename_soilm, stream_fldfilename_soilm)" . + " soilm_tintalgo soilm_offset" . + " is defined, but use_soil_moisture_streams option NOT set to true"); + } + } +} + +#------------------------------------------------------------------------------- + sub setup_logic_lai_streams { my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; - if ( &value_is_true($nl_flags->{'use_crop'}) && &value_is_true($nl_flags->{'use_lai_streams'}) ) { - $log->fatal_error("turning use_lai_streams on is incompatable with use_crop set to true."); - } - if ( $nl_flags->{'bgc_mode'} eq "sp" ) { - - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_lai_streams'); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'lai_mapalgo', - 'hgrid'=>$nl_flags->{'res'} ); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_year_first_lai', - 'sim_year'=>$nl_flags->{'sim_year'}, - 'sim_year_range'=>$nl_flags->{'sim_year_range'}); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_year_last_lai', - 'sim_year'=>$nl_flags->{'sim_year'}, - 'sim_year_range'=>$nl_flags->{'sim_year_range'}); - # Set align year, if first and last years are different - if ( $nl->get_value('stream_year_first_lai') != - $nl->get_value('stream_year_last_lai') ) { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, - 'model_year_align_lai', 'sim_year'=>$nl_flags->{'sim_year'}, - 'sim_year_range'=>$nl_flags->{'sim_year_range'}); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_lai_streams'); + + if ( &value_is_true($nl_flags->{'use_crop'}) && &value_is_true($nl->get_value('use_lai_streams')) ) { + $log->fatal_error("turning use_lai_streams on is incompatable with use_crop set to true."); + } + if ( $nl_flags->{'bgc_mode'} eq "sp" || ($nl_flags->{'bgc_mode'} eq "fates" && &value_is_true($nl->get_value('use_fates_sp')) )) { + if ( &value_is_true($nl->get_value('use_lai_streams')) ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_lai_streams'); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'lai_mapalgo', + 'hgrid'=>$nl_flags->{'res'} ); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_year_first_lai', + 'sim_year'=>$nl_flags->{'sim_year'}, + 'sim_year_range'=>$nl_flags->{'sim_year_range'}); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_year_last_lai', + 'sim_year'=>$nl_flags->{'sim_year'}, + 'sim_year_range'=>$nl_flags->{'sim_year_range'}); + # Set align year, if first and last years are different + if ( $nl->get_value('stream_year_first_lai') != + $nl->get_value('stream_year_last_lai') ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, + 'model_year_align_lai', 'sim_year'=>$nl_flags->{'sim_year'}, + 'sim_year_range'=>$nl_flags->{'sim_year_range'}); + } + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_fldfilename_lai', + 'hgrid'=>"360x720cru" ); + if ($opts->{'driver'} eq "nuopc" ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_meshfile_lai', + 'hgrid'=>"360x720cru" ); + } } - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_fldfilename_lai', - 'hgrid'=>"360x720cru" ); } else { - # If bgc is CN/CNDV then make sure none of the LAI settings are set - if ( defined($nl->get_value('stream_year_first_lai')) || - defined($nl->get_value('stream_year_last_lai')) || - defined($nl->get_value('model_year_align_lai')) || + # If bgc is BGC/BGCDV then make sure none of the LAI settings are set + if ( &value_is_true($nl->get_value('use_lai_streams'))) { + $log->fatal_error("When not in SP mode use_lai_streams cannot be .true.\n" . + "(eg. don't use this option with BGC or non-SP FATES), \n" . + "Update compset to use SP)"); + } + if ( defined($nl->get_value('stream_year_first_lai')) || + defined($nl->get_value('stream_year_last_lai')) || + defined($nl->get_value('model_year_align_lai')) || + defined($nl->get_value('lai_tintalgo' )) || defined($nl->get_value('stream_fldfilename_lai')) ) { - $log->fatal_error("When bgc is NOT SP none of the following can be set: stream_year_first_lai,\n" . - "stream_year_last_lai, model_year_align_lai, nor\n" . - "stream_fldfilename_lai (eg. don't use this option with BGC,CN,CNDV nor BGDCV)."); + $log->fatal_error("When not in SP mode none of the following can be set: stream_year_first_lai,\n" . + "stream_year_last_lai, model_year_align_lai, lai_tintalgo nor\n" . + "stream_fldfilename_lai (eg. don't use this option with BGC or FATES-SP)."); } } } #------------------------------------------------------------------------------- +sub setup_logic_cropcal_streams { + my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; + + # Set first and last stream years + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_year_first_cropcal', + 'sim_year'=>$nl_flags->{'sim_year'}, + 'sim_year_range'=>$nl_flags->{'sim_year_range'}); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_year_last_cropcal', + 'sim_year'=>$nl_flags->{'sim_year'}, + 'sim_year_range'=>$nl_flags->{'sim_year_range'}); + + # Set align year, if first and last years are different + if ( $nl->get_value('stream_year_first_cropcal') != + $nl->get_value('stream_year_last_cropcal') ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, + 'model_year_align_cropcal', 'sim_year'=>$nl_flags->{'sim_year'}, + 'sim_year_range'=>$nl_flags->{'sim_year_range'}); + } + + # Set up other crop calendar parameters + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'generate_crop_gdds'); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_mxmat'); + + # Option checks + my $generate_crop_gdds = $nl->get_value('generate_crop_gdds') ; + my $use_mxmat = $nl->get_value('use_mxmat') ; + my $sdate_file = $nl->get_value('stream_fldFileName_sdate') ; + my $gdd_file = $nl->get_value('stream_fldFileName_cultivar_gdds') ; + my $mesh_file = $nl->get_value('stream_meshfile_cropcal') ; + if ( $generate_crop_gdds eq '.true.' ) { + if ( $use_mxmat eq '.true.' ) { + $log->fatal_error("If generate_crop_gdds is true, you must also set use_mxmat to false" ); + } + if ( $sdate_file eq '' ) { + $log->fatal_error("If generate_crop_gdds is true, you must specify stream_fldFileName_sdate") + } + if ( $gdd_file ne '' ) { + $log->fatal_error("If generate_crop_gdds is true, do not specify stream_fldFileName_cultivar_gdds") + } + } + if ( $mesh_file eq '' and ( $sdate_file ne '' or $gdd_file ne '' ) ) { + $log->fatal_error("If prescribing crop sowing dates and/or maturity requirements, you must specify stream_meshfile_cropcal") + } +} + +#------------------------------------------------------------------------------- + sub setup_logic_soilwater_movement { my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; @@ -3424,7 +4006,7 @@ sub setup_logic_soilwater_movement { my $soilmtd = $nl->get_value("soilwater_movement_method"); my $use_bed = $nl->get_value('use_bedrock' ); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'lower_boundary_condition', 'vichydro'=>$nl_flags->{'vichydro'}, 'soilwater_movement_method'=>$soilmtd, 'use_bedrock'=>$use_bed ); @@ -3438,32 +4020,41 @@ sub setup_logic_soilwater_movement { } #------------------------------------------------------------------------------- -sub setup_logic_century_soilbgcdecompcascade { - # +sub setup_logic_cnvegcarbonstate { + # MUST be AFTER: setup_logic_dynamic_plant_nitrogen_alloc as depends on mm_nuptake_opt which is set there my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; - if ( (&value_is_true($nl->get_value('use_cn')) || &value_is_true($nl->get_value('use_fates'))) && - &value_is_true($nl->get_value('use_century_decomp')) ) { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'initial_Cstocks', - 'use_cn' => $nl->get_value('use_cn'), 'use_fates' => $nl->get_value('use_fates'), - 'use_century_decomp' => $nl->get_value('use_century_decomp') ); - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'initial_Cstocks_depth', - 'use_cn' => $nl->get_value('use_cn'), 'use_fates' => $nl->get_value('use_fates'), - 'use_century_decomp' => $nl->get_value('use_century_decomp') ); + if ( &value_is_true($nl->get_value('use_cn')) ) { + my $mmnuptake = $nl->get_value('mm_nuptake_opt'); + if ( ! defined($mmnuptake) ) { $mmnuptake = ".false."; } + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'initial_vegC', + 'use_cn' => $nl->get_value('use_cn'), 'mm_nuptake_opt' => $mmnuptake ); } } #------------------------------------------------------------------------------- -sub setup_logic_cnvegcarbonstate { - # MUST be AFTER: setup_logic_dynamic_plant_nitrogen_alloc as depends on mm_nuptake_opt which is set there +sub setup_logic_cngeneral { + # Must be set after setup_logic_co2_type my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; if ( &value_is_true($nl->get_value('use_cn')) ) { - my $mmnuptake = $nl->get_value('mm_nuptake_opt'); - if ( ! defined($mmnuptake) ) { $mmnuptake = ".false."; } - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'initial_vegC', - 'use_cn' => $nl->get_value('use_cn'), 'mm_nuptake_opt' => $mmnuptake ); + if ( &value_is_true($nl->get_value('use_crop')) ) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'dribble_crophrv_xsmrpool_2atm', + 'co2_type' => remove_leading_and_trailing_quotes($nl->get_value('co2_type')), + 'use_crop' => $nl->get_value('use_crop') ); + } else { + if ( defined($nl->get_value('dribble_crophrv_xsmrpool_2atm')) ) { + $log->fatal_error("When CROP is NOT on dribble_crophrv_xsmrpool_2atm can NOT be set\n" ); + } + } + } else { + if ( defined($nl->get_value('reseed_dead_plants')) || + defined($nl->get_value('dribble_crophrv_xsmrpool_2atm')) ) { + $log->fatal_error("When CN is not on none of the following can be set: ,\n" . + "dribble_crophrv_xsmrpool_2atm nor reseed_dead_plantsr\n" . + "(eg. don't use these options with SP mode)."); + } } } @@ -3480,10 +4071,11 @@ sub setup_logic_rooting_profile { #------------------------------------------------------------------------------- sub setup_logic_friction_vel { - # + # Must be after canopyfluxes so that use_biomass_heat_storage will be set my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'zetamaxstable' ); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'zetamaxstable', + 'use_biomass_heat_storage'=>$nl_flags->{'use_biomass_heat_storage'}, 'phys'=>$nl_flags->{'phys'} ); } #------------------------------------------------------------------------------- @@ -3503,6 +4095,16 @@ sub setup_logic_canopyfluxes { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_undercanopy_stability' ); add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'itmax_canopy_fluxes', 'structure'=>$nl_flags->{'structure'}); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_biomass_heat_storage', + 'use_fates'=>$nl_flags->{'use_fates'}, 'phys'=>$nl_flags->{'phys'} ); + if ( &value_is_true($nl->get_value('use_biomass_heat_storage') ) && &value_is_true( $nl_flags->{'use_fates'}) ) { + $log->fatal_error('use_biomass_heat_storage can NOT be set to true when fates is on'); + } + if ( &value_is_true($nl->get_value('use_biomass_heat_storage')) ) { + $nl_flags->{'use_biomass_heat_storage'} = ".true."; + } else { + $nl_flags->{'use_biomass_heat_storage'} = ".false."; + } } #------------------------------------------------------------------------------- @@ -3689,25 +4291,146 @@ sub setup_logic_fates { if (&value_is_true( $nl_flags->{'use_fates'}) ) { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fates_paramfile', 'phys'=>$nl_flags->{'phys'}); - my @list = ( "use_fates_spitfire", "use_fates_planthydro", "use_fates_ed_st3", "use_fates_ed_prescribed_phys", - "use_fates_inventory_init", "use_fates_logging" ); + my @list = ( "fates_spitfire_mode", "use_fates_planthydro", "use_fates_ed_st3", "use_fates_ed_prescribed_phys", + "use_fates_inventory_init","use_fates_fixed_biogeog","use_fates_nocomp", + "use_fates_logging","fates_parteh_mode", "use_fates_cohort_age_tracking","use_fates_tree_damage" ); foreach my $var ( @list ) { - add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, 'use_fates'=>$nl_flags->{'use_fates'} ); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, 'use_fates'=>$nl_flags->{'use_fates'}, + 'use_fates_sp'=>$nl_flags->{'use_fates_sp'} ); + } + my $suplnitro = $nl->get_value('suplnitro'); + my $parteh_mode = $nl->get_value('fates_parteh_mode'); + if ( ($parteh_mode == 1) && ($suplnitro !~ /ALL/) && not &value_is_true( $nl_flags->{'use_fates_sp'}) ) { + $log->fatal_error("supplemental Nitrogen (suplnitro) is NOT set to ALL, FATES is on, " . + "but and FATES-SP is not active, but fates_parteh_mode is 1, so Nitrogen is not active" . + "Change suplnitro back to ALL"); + } + # + # For FATES SP mode make sure no-competetiion, and fixed-biogeography are also set + # And also check for other settings that can't be trigged on as well + # + my $var = "use_fates_sp"; + if ( defined($nl->get_value($var)) ) { + if ( &value_is_true($nl->get_value($var)) ) { + my @list = ( "use_fates_nocomp", "use_fates_fixed_biogeog" ); + foreach my $var ( @list ) { + if ( ! &value_is_true($nl->get_value($var)) ) { + $log->fatal_error("$var is required when FATES SP is on (use_fates_sp)" ); + } + } + # spit-fire can't be on with FATES SP mode is active + if ( $nl->get_value('fates_spitfire_mode') > 0 ) { + $log->fatal_error('fates_spitfire_mode can NOT be set to greater than 0 when use_fates_sp is true'); + } + } } my $var = "use_fates_inventory_init"; if ( defined($nl->get_value($var)) ) { if ( &value_is_true($nl->get_value($var)) ) { $var = "fates_inventory_ctrl_filename"; + my $fname = substr $nl->get_value($var), 1, -1; # ignore first and last positions of string because those are quote characters if ( ! defined($nl->get_value($var)) ) { $log->fatal_error("$var is required when use_fates_inventory_init is set" ); - } elsif ( ! -f "$nl->get_value($var)" ) { - $log->fatal_error("$var does NOT point to a valid filename" ); + } elsif ( ! -f "$fname" ) { + $log->fatal_error("$fname does NOT point to a valid filename" ); } } } } } +#------------------------------------------------------------------------------- +sub setup_logic_exice { + # + # excess ice streams + # + my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; + my $use_exice = $nl->get_value( 'use_excess_ice' ); + my $use_exice_streams = $nl->get_value( 'use_excess_ice_streams' ); + # IF excess ice streams is on + if (defined($use_exice_streams) && value_is_true($use_exice_streams)) { + # Can only be true if excess ice is also on, otherwise fail + if (defined($use_exice) && not value_is_true($use_exice)) { + $log->fatal_error("use_excess_ice_streams can NOT be TRUE when use_excess_ice is FALSE" ); + } + # Otherwise if ice streams are off + } else { + my @list = ( "stream_meshfile_exice", "stream_fldfilename_exice" ); + # fail is excess ice streams files are set + foreach my $var ( @list ) { + if ( defined($nl->get_value($var)) ) { + $log->fatal_error("$var should NOT be set when use_excess_ice_streams=FALSE" ); + } + } + # mapalgo can only be none, if excess ice streams are off + my $map_algo = $nl->get_value("stream_mapalgo_exice"); + if ( defined($map_algo) && ($map_algo ne "none") ) { + $log->fatal_error("stream_mapalgo_exice can ONLY be none when use_excess_ice_streams=FALSE" ); + } + } + # If excess ice is on + if (defined($use_exice) && value_is_true($use_exice)) { + # IF nuopc driver and excess ice streams are on get the stream defaults + if (defined($use_exice_streams) && value_is_true($use_exice_streams)) { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_fldfilename_exice'); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_mapalgo_exice'); + # If excess ice streams on, but NOT the NUOPC driver fail + if ( not $opts->{'driver'} eq "nuopc" ) { + $log->fatal_error("nuopc driver is required when use_excess_ice_streams is set to true" ); + # NUOPC driver needs a mesh file + } else { + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'stream_meshfile_exice'); + } + } + } + + +} # end exice streams + +#------------------------------------------------------------------------------- + +sub setup_logic_z0param { + # + # Set default z0 paramterization + # + my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; + + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'z0param_method'); + + my $z0param_method = remove_leading_and_trailing_quotes($nl->get_value('z0param_method' )); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'use_z0m_snowmelt', + 'z0param_method'=>$z0param_method ); + + my $use_z0m_snowmelt = $nl->get_value( 'use_z0m_snowmelt' ); + + if ( $z0param_method eq "ZengWang2007" && defined($use_z0m_snowmelt) && value_is_true($use_z0m_snowmelt)) { + $log->fatal_error("use_z0m_snowmelt must be .false. when z0param_method = $z0param_method.\n $@"); + } + +} + +#------------------------------------------------------------------------------- + +sub setup_logic_misc { + # + # Set some misc options + # + 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, 'for_testing_use_second_grain_pool'); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'for_testing_use_repr_structure_pool'); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'for_testing_no_crop_seed_replenishment'); + add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'hist_fields_list_file'); +} + #------------------------------------------------------------------------------- sub write_output_files { @@ -3728,26 +4451,27 @@ sub write_output_files { # CLM component my @groups; @groups = qw(clm_inparm ndepdyn_nml popd_streams urbantv_streams light_streams - lai_streams atm2lnd_inparm lnd2atm_inparm clm_canopyhydrology_inparm cnphenology + soil_moisture_streams lai_streams atm2lnd_inparm lnd2atm_inparm clm_canopyhydrology_inparm cnphenology + cropcal_streams clm_soilhydrology_inparm dynamic_subgrid cnvegcarbonstate - finidat_consistency_checks dynpft_consistency_checks + finidat_consistency_checks dynpft_consistency_checks clm_initinterp_inparm century_soilbgcdecompcascade soilhydrology_inparm luna friction_velocity mineral_nitrogen_dynamics soilwater_movement_inparm rooting_profile_inparm soil_resis_inparm bgc_shared canopyfluxes_inparm aerosol clmu_inparm clm_soilstate_inparm clm_nitrogen clm_snowhydrology_inparm - cnprecision_inparm clm_glacier_behavior crop irrigation_inparm + cnprecision_inparm clm_glacier_behavior crop_inparm irrigation_inparm surfacealbedo_inparm water_tracers_inparm); #@groups = qw(clm_inparm clm_canopyhydrology_inparm clm_soilhydrology_inparm # finidat_consistency_checks dynpft_consistency_checks); # Eventually only list namelists that are actually used when CN on - #if ( $nl_flags->{'bgc_mode'} eq "cn" ) { - # push @groups, qw(ndepdyn_nml popd_streams light_streams); - #} 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"; @@ -3756,6 +4480,8 @@ sub write_output_files { push @groups, "nitrif_inparm"; push @groups, "lifire_inparm"; push @groups, "ch4finundated"; + push @groups, "exice_streams"; + push @groups, "soilbgc_decomp"; push @groups, "clm_canopy_inparm"; if (remove_leading_and_trailing_quotes($nl->get_value('snow_cover_fraction_method')) eq 'SwensonLawrence2012') { push @groups, "scf_swenson_lawrence_2012_inparm"; @@ -3888,7 +4614,7 @@ sub add_default { } } else { - return; + return( 1 ); } } @@ -3904,7 +4630,7 @@ sub add_default { } else { if ($is_input_pathname eq 'abs') { $val = set_abs_filepath($val, $inputdata_rootdir); - if ( $test_files and ($val !~ /null/) and (! -f "$val") ) { + if ( $test_files and ($val !~ /null|none/) and (! -f "$val") ) { $log->fatal_error("file not found: $var = $val"); } } @@ -3923,6 +4649,7 @@ sub add_default { # set the value in the namelist $nl->set_variable_value($group, $var, $val); } + return( 0 ); } @@ -3977,11 +4704,12 @@ sub check_input_files { my $pathname = $nl->get_variable_value($group, $var); # Need to strip the quotes $pathname =~ s/['"]//g; - + next if ($pathname =~ /UNSET$/); 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 @@ -4002,7 +4730,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") { @@ -4069,10 +4799,10 @@ sub check_use_case_name { my $diestring = "bad use_case name $use_case, follow the conventions " . "in namelist_files/use_cases/README\n"; my $desc = "[a-zA-Z0-9]*"; - my $rcp = "rcp[0-9\.]+"; - if ( $use_case =~ /^[0-9]+-[0-9]+([a-zA-Z0-9_\.]*)_transient$/ ) { + my $ssp_rcp = "SSP[0-9]-[0-9\.]+"; + if ( $use_case =~ /^[0-9]+-[0-9]+([a-zA-Z0-9_\.-]*)_transient$/ ) { my $string = $1; - if ( $string =~ /^_($rcp)_*($desc)$/ ) { + if ( $string =~ /^_($ssp_rcp)_*($desc)$/ ) { # valid name } elsif ( $string =~ /^_*($desc)$/ ) { # valid name @@ -4081,13 +4811,15 @@ sub check_use_case_name { } } elsif ( $use_case =~ /^20thC([a-zA-Z0-9_\.]*)_transient$/ ) { my $string = $1; - if ( $string =~ /^_($rcp)_*($desc)$/ ) { + if ( $string =~ /^_($ssp_rcp)_*($desc)$/ ) { # valid name } elsif ( $string =~ /^_*($desc)$/ ) { # valid name } else { $log->fatal_error($diestring); } + } elsif ( $use_case =~ /^([0-9]+|PI)-PD_*($desc)_transient$/ ) { + # valid name } elsif ( $use_case =~ /^([0-9]+)_*($desc)_control$/ ) { # valid name } elsif ( $use_case =~ /^($desc)_pd$/ ) { @@ -4117,7 +4849,7 @@ sub validate_options { # create the @expect array by listing the files in $use_case_dir # and strip off the ".xml" part of the filename @expect = (); - my @files = glob("$opts->{'use_case_dir'}/*.xml"); + my @files = bsd_glob("$opts->{'use_case_dir'}/*.xml"); foreach my $file (@files) { $file =~ m{.*/(.*)\.xml}; &check_use_case_name( $1 ); @@ -4131,7 +4863,7 @@ sub validate_options { } else { print "Use cases are:...\n\n"; my @ucases; - foreach my $file( sort( glob($opts->{'use_case_dir'}."/*.xml") ) ) { + foreach my $file( sort( bsd_glob($opts->{'use_case_dir'}."/*.xml") ) ) { my $use_case; if ( $file =~ /\/([^\/]+)\.xml$/ ) { &check_use_case_name( $1 ); @@ -4157,9 +4889,9 @@ sub list_options { my ($opts_cmdl, $definition, $defaults) = @_; # options to list values that are in the defaults files - my @opts_list = ( "res", "mask", "sim_year", "rcp" ); + my @opts_list = ( "res", "mask", "sim_year", "ssp_rcp" ); my %opts_local; - foreach my $var ( "res", "mask", "sim_year", "rcp" ) { + foreach my $var ( "res", "mask", "sim_year", "ssp_rcp" ) { my $val; if ( $opts_cmdl->{$var} eq "list" ) { $val = "default"; diff --git a/bld/README b/bld/README index 0ed6779a80..71c663c268 100644 --- a/bld/README +++ b/bld/README @@ -23,7 +23,7 @@ env_run.xml --- Sample case runtime environment variables, so build-namelist can listDefaultNamelist.pl -- List the files needed, for a list of resolutions, to run CLM that are currently NOT on your machine. This file can then be used by - cime/scripts/Tools/check_input_data + cime/CIME/Tools/check_input_data to retreive them from the inputdata repository. Setting up cases with create_newcase also does this -- but only for the exact configuration diff --git a/bld/config_files/clm_phys_vers.pm b/bld/config_files/clm_phys_vers.pm index 32124491a8..3e4de9c610 100755 --- a/bld/config_files/clm_phys_vers.pm +++ b/bld/config_files/clm_phys_vers.pm @@ -28,7 +28,7 @@ use bigint; #use warnings; #use diagnostics; -my @version_strings = ("clm4_5", "clm5_0"); +my @version_strings = ("clm4_5", "clm5_0", "clm5_1"); #------------------------------------------------------------------------------- @@ -83,12 +83,12 @@ if ( ! defined(caller) && $#ARGV == -1 ) { require Test::More; Test::More->import( ); - plan( tests=>2 ); + plan( tests=>3 ); sub testit { print "unit tester\n"; my %lastv; - my @vers_list = ( "clm4_5", "clm5_0" ); + my @vers_list = ( "clm4_5", "clm5_0", "clm5_1" ); foreach my $vers ( @vers_list ) { my $phys = config_files::clm_phys_vers->new($vers); isa_ok($phys, "config_files::clm_phys_vers", "created clm_phys_vers object"); diff --git a/bld/config_files/config_definition_ctsm.xml b/bld/config_files/config_definition_ctsm.xml index b02510ed64..06263c6d19 100644 --- a/bld/config_files/config_definition_ctsm.xml +++ b/bld/config_files/config_definition_ctsm.xml @@ -5,10 +5,10 @@ -Specifies either clm4_5 or clm5_0 physics +Specifies either clm4_5, clm5_0, or clm5_1 physics new($config_cachefile, '>') or die "can't open file: $config_cachefile"; + print $fh < + + +Specifies clm physics + +EOF + $fh->close(); +} + #----------------------------------------------------------------------------------------------- sub GetListofNeededFiles { @@ -191,14 +205,12 @@ sub GetListofNeededFiles { "$cfgdir/namelist_files/namelist_definition_ctsm.xml" ); $inputopts{'nldef_files'} = \@nl_definition_files; - $inputopts{'empty_cfg_file'} = "$cfgdir/config_files/config_definition_ctsm.xml"; + $inputopts{'empty_cfg_file'} = "config_cache.xml"; my $definition = Build::NamelistDefinition->new( $nl_definition_files[0] ); foreach my $nl_defin_file ( @nl_definition_files ) { $definition->add( "$nl_defin_file" ); } - my $cfg = Build::Config->new( $inputopts{'empty_cfg_file'} ); - # Resolutions... my @resolutions; if ( $opts{'res'} eq "all" ) { @@ -208,6 +220,7 @@ sub GetListofNeededFiles { } # Input options + &make_config_cache( "clm5_0", $inputopts{'empty_cfg_file'} ); push @nl_defaults_files, "$cfgdir/namelist_files/namelist_defaults_ctsm.xml"; if ( defined($opts{'usrdat'}) ) { push @nl_defaults_files, "$cfgdir/namelist_files/namelist_defaults_usr_files.xml"; @@ -248,14 +261,14 @@ sub GetListofNeededFiles { # Loop over all possible simulation year: 1890, 2000, 2100 etc. # $settings{'sim_year_range'} = "constant"; - my @rcps = $definition->get_valid_values( "rcp", 'noquotes'=>1 ); - $settings{'rcp'} = $rcps[0]; + my @ssp_rcps = $definition->get_valid_values( "ssp_rcp", 'noquotes'=>1 ); + $settings{'ssp_rcp'} = $ssp_rcps[0]; YEAR: foreach my $sim_year ( $definition->get_valid_values( "sim_year", 'noquotes'=>1 ) ) { print "sim_year = $sim_year\n" if $printing; $settings{'sim_year'} = $sim_year; if ( $sim_year ne 1850 && $sim_year ne 2000 && $sim_year > 1800 ) { next YEAR; } - my @bgcsettings = $cfg->get_valid_values( "bgc" ); + my @bgcsettings = $definition->get_valid_values( "bgc_mode", 'noquotes'=>1 ); print "bgc=@bgcsettings\n" if $printing; # # Loop over all possible BGC settings @@ -298,11 +311,11 @@ sub GetListofNeededFiles { $settings{'sim_year'} = $1; } # - # Loop over all possible rcp's + # Loop over all possible ssp_rcp's # - print "sim_year_range=$sim_year_range rcp=@rcps\n" if $printing; - foreach my $rcp ( @rcps ) { - $settings{'rcp'} = $rcp; + print "sim_year_range=$sim_year_range ssp_rcp=@ssp_rcps\n" if $printing; + foreach my $ssp_rcp ( @ssp_rcps ) { + $settings{'ssp_rcp'} = $ssp_rcp; &GetListofNeededFiles( \%inputopts, \%settings, \%files ); if ( $printTimes >= 1 ) { $inputopts{'printing'} = 0; diff --git a/bld/namelist_files/checkmapfiles.ncl b/bld/namelist_files/checkmapfiles.ncl index c0751adcb0..e37100747a 100644 --- a/bld/namelist_files/checkmapfiles.ncl +++ b/bld/namelist_files/checkmapfiles.ncl @@ -9,7 +9,7 @@ ; print( "Check that datm mapping files are consistent" ); - resolutions = (/ "128x256", "64x128", "48x96", "32x64", "8x16", "94x192", "0.23x0.31", "0.47x0.63", "0.9x1.25", "1.9x2.5", "2.5x3.33", "4x5", "10x15", "0.125nldas2", "5x5_amazon", "1x1_camdenNJ", "1x1_vancouverCAN", "1x1_mexicocityMEX", "1x1_asphaltjungleNJ", "1x1_brazil", "1x1_urbanc_alpha", "1x1_numaIA", "1x1_smallvilleIA", "ne4np4", "ne16np4", "ne30np4", "ne60np4", "ne120np4", "ne240np4" /); + resolutions = (/ "128x256", "64x128", "48x96", "94x192", "0.23x0.31", "0.47x0.63", "0.9x1.25", "1.9x2.5", "2.5x3.33", "4x5", "10x15", "0.125nldas2", "5x5_amazon", "1x1_vancouverCAN", "1x1_mexicocityMEX", "1x1_asphaltjungleNJ", "1x1_brazil", "1x1_urbanc_alpha", "1x1_numaIA", "1x1_smallvilleIA", "ne4np4", "ne16np4", "ne30np4", "ne60np4", "ne120np4", "ne240np4" /); space = " "; badres = 0 @@ -82,7 +82,7 @@ begin print( "query string="+querynml ) - mapgrids = (/"0.5x0.5_MODIS", "0.5x0.5_AVHRR", "0.5x0.5_MODIS", "5x5min_nomask", "5x5min_IGBP-GSDP", "5x5min_ISRIC-WISE", "10x10min_nomask", "3x3min_MODIS", "3x3min_LandScan2004", "3x3min_GLOBE-Gardner", "3x3min_GLOBE-Gardner-mergeGIS", "0.9x1.25_GRDC", "360x720cru_cruncep", "1km-merge-10min_HYDRO1K-merge-nomask"/); + mapgrids = (/"0.5x0.5_nomask", "0.25x0.25_nomask", "0.125x0.125_nomask", "3x3min_nomask", "5x5min_nomask", "10x10min_nomask", "0.9x1.25_nomask", "1km-merge-10min_HYDRO1K-merge-nomask"/); do i = 0, dimsizes(resolutions)-1 res = resolutions(i); print( "Go through maps for Resolution: "+res ); diff --git a/bld/namelist_files/createMapEntry.pl b/bld/namelist_files/createMapEntry.pl index b4ea766e38..561683bb05 100755 --- a/bld/namelist_files/createMapEntry.pl +++ b/bld/namelist_files/createMapEntry.pl @@ -55,10 +55,16 @@ 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 - print "$partialPath/$foo\n"; + #~# 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 "RES" ) { + print "$partialPath/$foo\n"; + } + } } #~# print a unique end string in the XML comments diff --git a/bld/namelist_files/createMkSrfEntry.py b/bld/namelist_files/createMkSrfEntry.py index ee1175c9b1..3f12df1509 100755 --- a/bld/namelist_files/createMkSrfEntry.py +++ b/bld/namelist_files/createMkSrfEntry.py @@ -1,16 +1,16 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import os, sys class mksrfDataEntry_prog: # Class data - year_start = 2016 - year_end = 2100 - ssp_rcp = "SSP5-8.5" - subdir = "pftcftdynharv.0.25x0.25.SSP5-8.5.simyr2016-2100.c171005" - cdate = 171005 - desc = "SSP5RCP85_clm5" + year_start = 850 + year_end = 1849 + ssp_rcp = "hist" + subdir = "pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012" + cdate = 171012 + desc = "histclm50_LUH2" def parse_cmdline_args( self ): "Parse the command line arguments for create data entry list" @@ -41,9 +41,9 @@ def parse_cmdline_args( self ): def printentry( self, year ): "Print a single entry" - print 'lnd/clm2/rawdata/%s/mksrf_landuse_%s_%s.c%s.nc' % (self.subdir, self.desc, year, self.cdate) - print '\n' + print( 'lnd/clm2/rawdata/%s/mksrf_landuse_%s_%s.c%s.nc' % (self.subdir, self.desc, year, self.cdate) ) + print( '\n' ) entry = mksrfDataEntry_prog() entry.parse_cmdline_args() diff --git a/bld/namelist_files/namelist_defaults.xsl b/bld/namelist_files/namelist_defaults.xsl index 20a8c4a8ad..6960cfbef9 100644 --- a/bld/namelist_files/namelist_defaults.xsl +++ b/bld/namelist_files/namelist_defaults.xsl @@ -28,7 +28,7 @@
  • Site specific point name (sitespf_pt)
  • Crop model (crop)
  • Data model forcing source (forcing)
  • -
  • Representative concentration pathway for future scenarios (rcp)
  • +
  • Representative concentration pathway for future scenarios (SSP-rcp)
  • New good wood harvest (newwoodharv)
  • CN Spin-up mode (spinup)
  • Type of file (type)
  • diff --git a/bld/namelist_files/namelist_defaults_ctsm.xml b/bld/namelist_files/namelist_defaults_ctsm.xml index c4acd4f242..484d0cc161 100644 --- a/bld/namelist_files/namelist_defaults_ctsm.xml +++ b/bld/namelist_files/namelist_defaults_ctsm.xml @@ -19,13 +19,15 @@ attributes from the config_cache.xml file (with keys converted to upper-case). 2000 - -1800 - 379.0 +336.6 379.0 +388.8 +397.5 +408.83 284.7 +284.7 constant @@ -33,19 +35,41 @@ attributes from the config_cache.xml file (with keys converted to upper-case). sp -clm4_5_CRUv7 -clm5_0_cam6.0 +clm4_5_CRUv7 +clm5_0_cam6.0 +clm5_1_GSWP3v1 + + +clm2 +clm2 +clm2 off +2 2 1 +2 +2 +2 2 1 0 + +.true. +.false. + +.false. +.false. +.false. +.false. + + +.false. + .true. 20 -.false. -.false. - - -.true. -.false. +.false. +.false. +.false. -.true. +.true. +.true. +.false. -2 -1 -0 +2 +2 +1 +0 +.true. .true. .false. -Medlyn2011 -Ball-Berry1987 -Ball-Berry1987 +Medlyn2011 +Medlyn2011 +Ball-Berry1987 -lnd/clm2/isotopes/atm_delta_C13_CMIP6_1850-2015_yearly_v2.0_c190528.nc -lnd/clm2/isotopes/atm_delta_C14_CMIP6_3x1_global_1850-2015_yearly_v2.0_c190528.nc +lnd/clm2/isotopes/atm_delta_C13_CMIP6_1850-2015_yearly_v2.0_c190528.nc +lnd/clm2/isotopes/atm_delta_C13_CMIP6_SSP119_1850-2100_yearly_c181209.nc +lnd/clm2/isotopes/atm_delta_C13_CMIP6_SSP126_1850-2100_yearly_c181209.nc +lnd/clm2/isotopes/atm_delta_C13_CMIP6_SSP245_1850-2100_yearly_c181209.nc +lnd/clm2/isotopes/atm_delta_C13_CMIP6_SSP3B_1850-2100_yearly_c181209.nc +lnd/clm2/isotopes/atm_delta_C13_CMIP6_SSP534os_1850-2100_yearly_c181209.nc +lnd/clm2/isotopes/atm_delta_C13_CMIP6_SSP5B_1850-2100_yearly_c181209.nc + +lnd/clm2/isotopes/atm_delta_C14_CMIP6_3x1_global_1850-2015_yearly_v2.0_c190528.nc +lnd/clm2/isotopes/atm_delta_C14_CMIP6_SSP119_3x1_global_1850-2100_yearly_c181209.nc +lnd/clm2/isotopes/atm_delta_C14_CMIP6_SSP126_3x1_global_1850-2100_yearly_c181209.nc +lnd/clm2/isotopes/atm_delta_C14_CMIP6_SSP245_3x1_global_1850-2100_yearly_c181209.nc +lnd/clm2/isotopes/atm_delta_C14_CMIP6_SSP3B_3x1_global_1850-2100_yearly_c181209.nc +lnd/clm2/isotopes/atm_delta_C14_CMIP6_SSP534os_3x1_global_1850-2100_yearly_c181209.nc +lnd/clm2/isotopes/atm_delta_C14_CMIP6_SSP5B_3x1_global_1850-2100_yearly_c181209.nc -.false. -.true. +.true. +.false. +.true. +.false. +.false. + +.false. + .false. @@ -102,21 +146,25 @@ attributes from the config_cache.xml file (with keys converted to upper-case). NONE -NONE +ALL -0.50,0.30 -0.60,0.40 +0.50,0.30 +0.50,0.30 +0.60,0.40 +ON_WASTEHEAT ON_WASTEHEAT ON -1 -0 +1 +1 +0 -FAST -NONE +FAST +FAST +NONE .false. @@ -124,41 +172,54 @@ attributes from the config_cache.xml file (with keys converted to upper-case). .true. .false. +.false. 4SL_2m -20SL_8.5m -10SL_3.5m - -.false. -.false. -.true. -.false. - +20SL_8.5m +20SL_8.5m +10SL_3.5m + +.false. +.false. +.true. +.false. +.false. +.true. +.false. -1 -0 +1 +1 +0 -1 -1 +1 +1 +1 -1 -0 +1 +1 +0 -1.d-2 -0.001d00 -1.d-2 -1.d-2 +1.d-2 +0.001d00 +1.d-2 +0.001d00 +1.d-2 +1.d-2 -2.0d00 -0.5d00 +2.0d00 +2.0d00 +0.5d00 +0.5d00 +2.0d00 -.true. -.false. +.true. +.true. +.false. .true. @@ -173,24 +234,29 @@ attributes from the config_cache.xml file (with keys converted to upper-case). 0. 2. -0. -2. +0. +2. --2. -0. +-2. +0. + +-2. +0. -.false. -.true. +.false. +.true. +.true. -li2016crufrc -li2014qianfrc +li2021gswpfrc +li2016crufrc +li2014qianfrc 30.0d00 80.0d00 @@ -204,7 +270,8 @@ attributes from the config_cache.xml file (with keys converted to upper-case). 0.39d00 75.d00 1050.d00 -0.5d00, 0.25d00 +0.5d00 +0.25d00 30.0d00 @@ -228,40 +295,68 @@ attributes from the config_cache.xml file (with keys converted to upper-case). 0.33d00 105.d00 1050.d00 -0.5d00, 0.28d00 +0.5d00 +0.28d00 + +30.0d00 +80.0d00 +0.85d00 +0.98d00 +0.025d00 +0.09d-4 +0.010d00 +0.17d-3 +1.6d-4 +0.33d00 +75.d00 +1050.d00 +0.5d00 +0.28d00 -.false. -.true. +.false. +.false. +.true. + +.true. +.false. +.false. 40 3 + -.true. -1.0 -0.05 +.true. +1.0 +0.05 -.false. -0.25 -1.0 +.true. +1.0 +0.05 + +.false. +0.25 +1.0 -0 -1 +0 +1 +1 1 1 +1 4 2 2 3 -60. +60. 1.e-8 -1.e-1 -1.e-2 +1.e-1 +1.e-2 42 1 1 @@ -272,13 +367,15 @@ attributes from the config_cache.xml file (with keys converted to upper-case). 14400 -3400. 0.6 -1.0 -0.5 +1.0 +1.0 +0.5 0.1 -.false. -.false. +.false. +.false. +.false. .false. @@ -288,15 +385,19 @@ attributes from the config_cache.xml file (with keys converted to upper-case). .true. -12 -5 -5 +12 +5 +12 +5 +5 -10000.0 -5000.0 -1000.0 +10000.0 +5000.0 +10000.0 +5000.0 +1000.0 0.010d00 0.015d00 @@ -305,27 +406,34 @@ attributes from the config_cache.xml file (with keys converted to upper-case). 0.02d00 0.05d00 -2000. +2000. +2000. -1.e30 +1.e30 -10.0d00 -10.0 +10.0d00 +10.0d00 +10.0 +.true. .true. .false. -'Vionnet2012' -'Anderson1976' +'Vionnet2012' +'Vionnet2012' +'Anderson1976' -'Slater2017' -'TruncatedAnderson1976' +'Slater2017' +'Slater2017' +'TruncatedAnderson1976' -100.d00 -175.d00 +100.d00 +175.d00 +175.d00 -54.526d00 -204.526d00 +54.526d00 +204.526d00 +204.526d00 0.08d00 @@ -342,8 +450,14 @@ attributes from the config_cache.xml file (with keys converted to upper-case). Mountain glaciers: single_at_atm_topo Greenland - inside CISM grid but outside Greenland itself: virtual Greenland itself: virtual - Antarctica: multiple --> -'single_at_atm_topo','virtual','virtual','multiple' + Antarctica: multiple + + If CISM is running over Antarctica, then we change the Antarctica + behavior to virtual. Note that the Greenland behavior is always + virtual, even if Greenland isn't included in this run. +--> +'single_at_atm_topo','virtual','virtual','multiple' +'single_at_atm_topo','virtual','virtual','virtual' +0 0 7300 @@ -372,39 +487,47 @@ attributes from the config_cache.xml file (with keys converted to upper-case). -lnd/clm2/paramdata/clm5_params.c190829.nc -lnd/clm2/paramdata/clm_params.c190829.nc +lnd/clm2/paramdata/ctsm51_params.c211112.nc +lnd/clm2/paramdata/clm50_params.c211112.nc +lnd/clm2/paramdata/clm45_params.c211112.nc -lnd/clm2/paramdata/fates_params_2troppftclones.c171018.nc +lnd/clm2/paramdata/fates_params_api.25.5.0_12pft_c230628.nc + + + + + +ZengWang2007 + +.true. +.false. -.true. -.false. -.false. +.true. +.false. +.true. +.false. +.false. +.true. +.false. .true. -.false. +.false. .false. +.false. .true. -.false. -3 -.true. -.true. -.true. .true. .false. 3 -1 -1 1 1 0 @@ -418,62 +541,88 @@ attributes from the config_cache.xml file (with keys converted to upper-case). .false. .false. -.true. -.true. +.true. +.true. +.true. + +0.17 +0.17 -0.093563 + +unset .false. -.false. -.true. +.false. +.true. +.true. .false. !added use_livestemproduct MWGraham .false. .true. -constant -varytropicsbylat -12.0d00 -0.4d00 - -3.d00 -1.d00 - - - -0.5 -10.0 +constant +varytropicsbylat +12.0d00 +0.4d00 +varytropicsbylat +12.0d00 +0.4d00 + +3.d00 +3.d00 +1.d00 + + +.true. +DependsOnLat +.false. +Constant +.false. +.true. -.false. -.true. +.false. +.true. +.true. .true. -.false. -.false. -.false. -.false. -.false. +.false. +.false. +.false. +.false. +.false. +.false. -.false. -.false. -.true. - -1.d-9 -1.d-8 --6.d+1 --6.d+0 --6.d+2 --6.d+1 +.false. +.false. +.true. +.false. +.true. + +1.d-9 +1.d-9 +1.d-8 +-6.d+1 +-6.d+0 +-6.d+1 +-6.d+0 +-6.d+2 +-6.d+1 -.false. -.true. +.false. +.true. +.true. + + + +.true. + -75 +61 -1850,2000 +1850,1979,2000,2003,2013 + + -.true. -.true. -.false. + Find Initial condition files: The settings use_init_interp, init_interp_attributes and finidat MUST all + be coordinated together! + + NOTE: And they need to be coordinated with clm_start_type that's in namelist_defaults_overall.xml + +--> + + + +.true. + + +.true. +.true. +.true. +.true. + +.true. + + +.true. + +.true. +.true. + +.true. +.true. +.true. + +.false. + hgrid=0.9x1.25 maxpft=17 mask=gx1v7 use_cn=.true. use_nitrif_denitrif=.true. use_vertsoilc=.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_nitrif_denitrif=.true. use_vertsoilc=.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_nitrif_denitrif=.true. use_vertsoilc=.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_nitrif_denitrif=.false. use_vertsoilc=.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_nitrif_denitrif=.true. use_vertsoilc=.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_nitrif_denitrif=.true. use_vertsoilc=.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_nitrif_denitrif=.false. use_vertsoilc=.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_nitrif_denitrif=.true. use_vertsoilc=.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_nitrif_denitrif=.true. use_vertsoilc=.true. use_crop=.true. 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 do_transient_pfts=.false. + + + +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 do_transient_pfts=.false. + + +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 do_transient_pfts=.false. + +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 do_transient_pfts=.false. + + +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 do_transient_pfts=.false. + + +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 do_transient_pfts=.false. + + +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 do_transient_pfts=.false. + + +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 do_transient_pfts=.false. + + +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 do_transient_pfts=.false. + + +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 do_transient_pfts=.false. + + +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 do_transient_pfts=.false. + + +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 do_transient_pfts=.false. + + +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 do_transient_pfts=.false. + + +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 do_transient_pfts=.false. + + +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 do_transient_pfts=.false. + + + + +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 do_transient_pfts=.false. + + +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 do_transient_pfts=.false. + +p + +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 do_transient_pfts=.false. + + + lnd/clm2/initdata_map/clmi.I1850Clm45BgcGs.0901-01-01.0.9x1.25_gx1v7_simyr1850_c190718.nc +>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_c190718.nc +>lnd/clm2/initdata_map/clmi.I1850Clm45BgcCruGs.1101-01-01.0.9x1.25_gx1v7_simyr1850_c200806.nc lnd/clm2/initdata_map/clmi.B1850.0161-01-01.0.9x1.25_gx1v7_simyr1850_c190111.nc +>lnd/clm2/initdata_map/clmi.B1850Clm45BgcGs.0161-01-01.0.9x1.25_gx1v7_simyr1850_c200806.nc lnd/clm2/initdata_map/clmi.I1850Clm50Sp.0181-01-01.0.9x1.25_gx1v7_simyr1850_c190111.nc +>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_c190116.nc +>lnd/clm2/initdata_map/clmi.I1850Clm50BgcCrop-ciso.1366-01-01.0.9x1.25_gx1v7_simyr1850_c200428.nc lnd/clm2/initdata_map/clmi.I1850Clm50BgcCropCru-ciso.1526-01-01.0.9x1.25_gx1v7_simyr1850_c190116.nc +>lnd/clm2/initdata_map/clmi.I1850Clm50BgcCropCru-ciso.1526-01-01.0.9x1.25_gx1v7_simyr1850_c200728.nc lnd/clm2/initdata_map/clmi.B1850.0161-01-01.0.9x1.25_gx1v7_simyr1850_c190111.nc +>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_c190111.nc +>lnd/clm2/initdata_map/clmi.I1850Clm50SpCru.1706-01-01.0.9x1.25_gx1v7_simyr1850_c200806.nc + +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 + 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 + + + +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 + + + + +lnd/clm2/initdata_map/clmi.I2000Clm50BgcCrop.2011-01-01.1.9x2.5_gx1v7_gl4_simyr2000_c190312.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.0.9x1.25_gx1v7_simyr1979_c200806.nc + + +lnd/clm2/initdata_map/clmi.BHIST.2000-01-01.1.9x2.5_gx1v7_simyr1979_c200806.nc + + + +lnd/clm2/initdata_map/clmi.FHISTSp.1979-01-01.ARCTIC_ne30x4_mt12_simyr1979_c200806.nc + + + +lnd/clm2/initdata_map/clmi.FHISTSp.1979-01-01.ARCTICGRIS_ne30x8_mt12_simyr1979_c200806.nc + + + +lnd/clm2/initdata_map/clmi.I2000Clm50BgcCrop.2011-01-01.1.9x2.5_gx1v7_gl4_simyr2000_c180715.nc + lnd_tuning_mode="clm5_0_cam6.0" +>lnd/clm2/initdata_map/clmi.F2000.2000-01-01.ne120pg3_mt13_simyr2000_c200728.nc + + + +lnd/clm2/initdata_map/clmi.BHIST.2000-01-01.0.9x1.25_gx1v7_simyr2000_c200728.nc - - +lnd/clm2/initdata_map/clmi.I2000Clm45Fates.0021-01-01.4x5_mgx3v7_simyr2000_c180306.nc + lnd_tuning_mode="clm5_0_cam6.0" +>lnd/clm2/initdata_map/clmi.BHISTSp.2000-01-01.1.9x2.5_gx1v7_simyr2003_c200807.nc + +lnd/clm2/initdata_map/clmi.FHISTSp.2013-01-01.ne0CONUSne30x8_mt12_simyr2013_c200806.nc + + - -lnd/clm2/surfdata_map/surfdata_360x720cru_16pfts_Irrig_CMIP6_simyr2000_c170824.nc -lnd/clm2/surfdata_map/surfdata_48x96_16pfts_Irrig_CMIP6_simyr2000_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_48x96_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc - -lnd/clm2/surfdata_map/surfdata_0.47x0.63_16pfts_Irrig_CMIP6_simyr2000_c170919.nc + +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc -lnd/clm2/surfdata_map/surfdata_0.9x1.25_16pfts_Irrig_CMIP6_simyr2000_c170824.nc - -lnd/clm2/surfdata_map/surfdata_1.9x2.5_16pfts_Irrig_CMIP6_simyr2000_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc + +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_1.9x2.5_hist_16pfts_Irrig_CMIP6_simyr2000_c190304.nc + +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_1.9x2.5_hist_16pfts_Irrig_CMIP6_simyr2000_c190304.nc -lnd/clm2/surfdata_map/surfdata_4x5_16pfts_Irrig_CMIP6_simyr2000_c170824.nc - -lnd/clm2/surfdata_map/surfdata_10x15_16pfts_Irrig_CMIP6_simyr2000_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_4x5_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc + +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_10x15_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc + +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_10x15_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc - -lnd/clm2/surfdata_map/surfdata_ne120np4_16pfts_Irrig_CMIP6_simyr2000_c170824.nc -lnd/clm2/surfdata_map/surfdata_ne30np4_16pfts_Irrig_CMIP6_simyr2000_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_ne30np4_hist_16pfts_Irrig_CMIP6_simyr2000_c190303.nc -lnd/clm2/surfdata_map/surfdata_ne16np4_16pfts_Irrig_CMIP6_simyr2000_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_ne16np4_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc lnd/clm2/surfdata_map/surfdata_0.125nldas2_hist_16pfts_Irrig_CMIP6_simyr2005_c190412.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev116/surfdata_1x1_brazil_hist_78pfts_CMIP6_simyr2000_c230123.nc + -lnd/clm2/surfdata_map/surfdata_5x5_amazon_16pfts_Irrig_CMIP6_simyr2000_c171214.nc - -lnd/clm2/surfdata_map/surfdata_1x1_brazil_16pfts_Irrig_CMIP6_simyr2000_c171214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_5x5_amazon_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc lnd/clm2/surfdata_map/surfdata_64x128_16pfts_Irrig_CMIP6_simyr2000_c170824.nc +>lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_64x128_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc - -lnd/clm2/surfdata_map/surfdata_0.47x0.63_78pfts_CMIP6_simyr2000_c170919.nc - -lnd/clm2/surfdata_map/surfdata_0.9x1.25_78pfts_CMIP6_simyr2000_c170824.nc - -lnd/clm2/surfdata_map/surfdata_1.9x2.5_78pfts_CMIP6_simyr2000_c170824.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_C384_hist_78pfts_CMIP6_simyr2000_c200317.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_C192_hist_78pfts_CMIP6_simyr2000_c200317.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_C96_hist_78pfts_CMIP6_simyr2000_c200317.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_C48_hist_78pfts_CMIP6_simyr2000_c200317.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_C24_hist_78pfts_CMIP6_simyr2000_c200317.nc + +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr2000_c190214.nc + +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_1.9x2.5_hist_78pfts_CMIP6_simyr2000_c190304.nc + +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_360x720cru_78pfts_CMIP6_simyr2000_c170824.nc -lnd/clm2/surfdata_map/surfdata_0.125x0.125_mp24_simyr2000_c150114.nc - -lnd/clm2/surfdata_map/surfdata_10x15_78pfts_CMIP6_simyr2000_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.24/surfdata_0.125x0.125_hist_78pfts_CMIP6_simyr2005_c190624.nc + +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_10x15_hist_78pfts_CMIP6_simyr2000_c190214.nc -lnd/clm2/surfdata_map/surfdata_4x5_78pfts_CMIP6_simyr2000_c170824.nc - -lnd/clm2/surfdata_map/surfdata_1x1_numaIA_78pfts_CMIP6_simyr2000_c171214.nc - -lnd/clm2/surfdata_map/surfdata_1x1_smallvilleIA_78pfts_CMIP6_simyr2000_c171214.nc - - -lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr2000_c170824.nc - -lnd/clm2/surfdata_map/surfdata_ne30np4_78pfts_CMIP6_simyr2000_c170824.nc - -lnd/clm2/surfdata_map/surfdata_ne16np4_78pfts_CMIP6_simyr2000_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_4x5_hist_78pfts_CMIP6_simyr2000_c190214.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev116/surfdata_1x1_numaIA_hist_78pfts_CMIP6_simyr2000_c230123.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev116/surfdata_1x1_smallvilleIA_hist_78pfts_CMIP6_simyr2000_c230123.nc + + +lnd/clm2/surfdata_map/ctsm5.1.dev052/surfdata_mpasa480_hist_78pfts_CMIP6_simyr2000_c211110.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev052/surfdata_mpasa240_hist_78pfts_CMIP6_simyr2000_c211115.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev052/surfdata_mpasa120_hist_78pfts_CMIP6_simyr2000_c211108.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev052/surfdata_mpasa60_hist_78pfts_CMIP6_simyr2000_c211110.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev052/surfdata_mpasa30_hist_78pfts_CMIP6_simyr2000_c211111.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev052/surfdata_mpasa15_hist_78pfts_CMIP6_simyr2000_c211111.nc + + +lnd/clm2/surfdata_map/ctsm5.1.dev120//surfdata_ne3np4.pg3_hist_78pfts_CMIP6_simyr2000_c230405.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev120/surfdata_ne5np4.pg3_hist_78pfts_CMIP6_simyr2000_c230405.nc + +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_ne16np4_hist_78pfts_CMIP6_simyr2000_c190214.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev120/surfdata_ne16np4.pg3_hist_78pfts_CMIP6_simyr2000_c230405.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne30np4_hist_78pfts_CMIP6_simyr2000_c200426.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne30np4.pg2_hist_78pfts_CMIP6_simyr2000_c200426.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne30np4.pg3_hist_78pfts_CMIP6_simyr2000_c200426.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne120np4_hist_78pfts_CMIP6_simyr2000_c200427.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne120np4.pg2_hist_78pfts_CMIP6_simyr2000_c200426.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne120np4.pg3_hist_78pfts_CMIP6_simyr2000_c200427.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne0np4.ARCTICGRIS.ne30x8_hist_78pfts_CMIP6_simyr2000_c200426.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne0np4.ARCTIC.ne30x4_hist_78pfts_CMIP6_simyr2000_c200426.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne0np4.CONUS.ne30x8_hist_78pfts_CMIP6_simyr2000_c200426.nc - -lnd/clm2/surfdata_map/surfdata_1x1_camdenNJ_16pfts_Irrig_CMIP6_simyr2000_c171214.nc - -lnd/clm2/surfdata_map/surfdata_1x1_vancouverCAN_16pfts_Irrig_CMIP6_simyr2000_c171214.nc - -lnd/clm2/surfdata_map/surfdata_1x1_mexicocityMEX_16pfts_Irrig_CMIP6_simyr2000_c171214.nc - -lnd/clm2/surfdata_map/surfdata_1x1_urbanc_alpha_16pfts_Irrig_CMIP6_simyr2000_c171214.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev116/surfdata_1x1_vancouverCAN_hist_78pfts_CMIP6_simyr2000_c230123.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev116/surfdata_1x1_mexicocityMEX_hist_78pfts_CMIP6_simyr2000_c230123.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev116/surfdata_1x1_urbanc_alpha_hist_78pfts_CMIP6_simyr2000_c230123.nc - -lnd/clm2/surfdata_map/surfdata_360x720cru_16pfts_Irrig_CMIP6_simyr1850_c170824.nc -lnd/clm2/surfdata_map/surfdata_48x96_16pfts_Irrig_CMIP6_simyr1850_c170824.nc + lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_48x96_hist_16pfts_Irrig_CMIP6_simyr1850_c190214.nc - -lnd/clm2/surfdata_map/surfdata_0.47x0.63_16pfts_Irrig_CMIP6_simyr1850_c170919.nc -lnd/clm2/surfdata_map/surfdata_0.9x1.25_16pfts_Irrig_CMIP6_simyr1850_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr1850_c190214.nc -lnd/clm2/surfdata_map/surfdata_1.9x2.5_16pfts_Irrig_CMIP6_simyr1850_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_1.9x2.5_hist_16pfts_Irrig_CMIP6_simyr1850_c190304.nc -lnd/clm2/surfdata_map/surfdata_10x15_16pfts_Irrig_CMIP6_simyr1850_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_10x15_hist_16pfts_Irrig_CMIP6_simyr1850_c190214.nc -lnd/clm2/surfdata_map/surfdata_4x5_16pfts_Irrig_CMIP6_simyr1850_c170824.nc - - -lnd/clm2/surfdata_map/surfdata_1x1_brazil_16pfts_Irrig_CMIP6_simyr1850_c171214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_4x5_hist_16pfts_Irrig_CMIP6_simyr1850_c190214.nc + + +lnd/clm2/surfdata_map/ctsm5.1.dev052/surfdata_mpasa480_hist_78pfts_CMIP6_simyr1850_c211110.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev052/surfdata_mpasa240_hist_78pfts_CMIP6_simyr1850_c211115.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev052/surfdata_mpasa120_hist_78pfts_CMIP6_simyr1850_c211108.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev052/surfdata_mpasa60_hist_78pfts_CMIP6_simyr1850_c211110.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev052/surfdata_mpasa30_hist_78pfts_CMIP6_simyr1850_c211111.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev052/surfdata_mpasa15_hist_78pfts_CMIP6_simyr1850_c211111.nc - - -lnd/clm2/surfdata_map/surfdata_ne120np4_16pfts_Irrig_CMIP6_simyr1850_c170824.nc -lnd/clm2/surfdata_map/surfdata_ne30np4_16pfts_Irrig_CMIP6_simyr1850_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_ne30np4_hist_16pfts_Irrig_CMIP6_simyr1850_c190303.nc - -lnd/clm2/surfdata_map/surfdata_360x720cru_78pfts_CMIP6_simyr1850_c170824.nc -lnd/clm2/surfdata_map/surfdata_48x96_78pfts_CMIP6_simyr1850_c170824.nc - - -lnd/clm2/surfdata_map/surfdata_0.47x0.63_78pfts_CMIP6_simyr1850_c170919.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_48x96_hist_78pfts_CMIP6_simyr1850_c190214.nc + + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_C384_hist_78pfts_CMIP6_simyr1850_c200317.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_C192_hist_78pfts_CMIP6_simyr1850_c200317.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_C96_hist_78pfts_CMIP6_simyr1850_c200317.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_C48_hist_78pfts_CMIP6_simyr1850_c200317.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_C24_hist_78pfts_CMIP6_simyr1850_c200317.nc -lnd/clm2/surfdata_map/surfdata_0.9x1.25_78pfts_CMIP6_simyr1850_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr1850_c190214.nc -lnd/clm2/surfdata_map/surfdata_1.9x2.5_78pfts_CMIP6_simyr1850_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_1.9x2.5_hist_78pfts_CMIP6_simyr1850_c190304.nc -lnd/clm2/surfdata_map/surfdata_10x15_78pfts_CMIP6_simyr1850_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_10x15_hist_78pfts_CMIP6_simyr1850_c190214.nc -lnd/clm2/surfdata_map/surfdata_4x5_78pfts_CMIP6_simyr1850_c170824.nc - -lnd/clm2/surfdata_map/surfdata_1x1_smallvilleIA_78pfts_CMIP6_simyr1850_c171214.nc - -lnd/clm2/surfdata_map/surfdata_1x1_numaIA_78pfts_CMIP6_simyr1850_c170917.nc - - -lnd/clm2/surfdata_map/surfdata_1x1_brazil_78pfts_CMIP6_simyr1850_c171214.nc - - -lnd/clm2/surfdata_map/surfdata_ne30np4_78pfts_CMIP6_simyr1850_c170824.nc - -lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr1850_c170824.nc +lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_4x5_hist_78pfts_CMIP6_simyr1850_c190214.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev116/surfdata_1x1_smallvilleIA_hist_78pfts_CMIP6_simyr1850_c230123.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev116/surfdata_1x1_numaIA_hist_78pfts_CMIP6_simyr1850_c230123.nc + + +lnd/clm2/surfdata_map/ctsm5.1.dev116/surfdata_1x1_brazil_hist_78pfts_CMIP6_simyr1850_c230123.nc + + +lnd/clm2/surfdata_map/ctsm5.1.dev120/surfdata_ne3np4.pg3_hist_78pfts_CMIP6_simyr1850_c230405.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev120/surfdata_ne5np4.pg3_hist_78pfts_CMIP6_simyr1850_c230405.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev120/surfdata_ne16np4.pg3_hist_78pfts_CMIP6_simyr1850_c230405.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne30np4_hist_78pfts_CMIP6_simyr1850_c200426.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne30np4.pg2_hist_78pfts_CMIP6_simyr1850_c200426.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne30np4.pg3_hist_78pfts_CMIP6_simyr1850_c200426.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne120np4_hist_78pfts_CMIP6_simyr1850_c200427.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne120np4.pg2_hist_78pfts_CMIP6_simyr1850_c200426.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne120np4.pg3_hist_78pfts_CMIP6_simyr1850_c200427.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne0np4.ARCTICGRIS.ne30x8_hist_78pfts_CMIP6_simyr1850_c200426.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne0np4.ARCTIC.ne30x4_hist_78pfts_CMIP6_simyr1850_c200426.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/surfdata_ne0np4.CONUS.ne30x8_hist_78pfts_CMIP6_simyr1850_c200426.nc + + +lnd/clm2/surfdata_map/surfdata_0.9x1.25_hist_16pfts_nourb_CMIP6_simyrPtVg_c181114.nc - - -lnd/clm2/surfdata_map/landuse.timeseries_0.47x0.63_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c171025.nc -lnd/clm2/surfdata_map/landuse.timeseries_360x720cru_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc +lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc +lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc +lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc lnd/clm2/surfdata_map/landuse.timeseries_4x5_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc lnd/clm2/surfdata_map/landuse.timeseries_48x96_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc + use_crop=".false." >lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_48x96_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c190214.nc -lnd/clm2/surfdata_map/landuse.timeseries_1x1_brazil_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne120np4_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc lnd/clm2/surfdata_map/landuse.timeseries_ne30np4_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc +lnd/clm2/surfdata_map/landuse.timeseries_ne0np4.ARCTIC.ne30x4_hist_78pfts_CMIP6_simyr1850-2015_c191023.nc -lnd/clm2/surfdata_map/landuse.timeseries_0.47x0.63_hist_78pfts_CMIP6_simyr1850-2015_c180508.nc -lnd/clm2/surfdata_map/landuse.timeseries_360x720cru_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc lnd/clm2/surfdata_map/landuse.timeseries_4x5_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc @@ -794,191 +1332,230 @@ lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr1850_c170824.nclnd/clm2/surfdata_map/landuse.timeseries_48x96_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc lnd/clm2/surfdata_map/landuse.timeseries_1x1_brazil_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc +>lnd/clm2/surfdata_map/ctsm5.1.dev116/landuse.timeseries_1x1_brazil_hist_78pfts_CMIP6_simyr1850-2015_c230123.nc lnd/clm2/surfdata_map/landuse.timeseries_1x1_numaIA_hist_78pfts_CMIP6_simyr1850-2015_c170917.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne120np4_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne30np4_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc +lnd/clm2/surfdata_map/ctsm5.1.dev052/landuse.timeseries_mpasa480_hist_78pfts_CMIP6_simyr1850-2015_c211110.nc +lnd/clm2/surfdata_map/ctsm5.1.dev052/landuse.timeseries_mpasa240_hist_78pfts_CMIP6_simyr1850-2015_c211115.nc +lnd/clm2/surfdata_map/ctsm5.1.dev052/landuse.timeseries_mpasa120_hist_78pfts_CMIP6_simyr1850-2015_c211108.nc +lnd/clm2/surfdata_map/ctsm5.1.dev052/landuse.timeseries_mpasa60_hist_78pfts_CMIP6_simyr1850-2015_c211110.nc +lnd/clm2/surfdata_map/ctsm5.1.dev052/landuse.timeseries_mpasa30_hist_78pfts_CMIP6_simyr1850-2015_c211111.nc +lnd/clm2/surfdata_map/ctsm5.1.dev052/landuse.timeseries_mpasa15_hist_78pfts_CMIP6_simyr1850-2015_c211111.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev120/landuse.timeseries_ne3np4.pg3_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c230405.nc +lnd/clm2/surfdata_map/ctsm5.1.dev120/landuse.timeseries_ne5np4.pg3_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c230405.nc +lnd/clm2/surfdata_map/ctsm5.1.dev120/landuse.timeseries_ne16np4.pg3_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c230405.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_ne30np4_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200426.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_ne30np4.pg2_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200426.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_ne30np4.pg3_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200426.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_ne0np4.ARCTICGRIS.ne30x8_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200426.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_ne0np4.ARCTIC.ne30x4_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200426.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_ne0np4.CONUS.ne30x8_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200426.nc + +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_C24_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200317.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_C96_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200317.nc + lnd/clm2/surfdata_map/landuse.timeseries_1x1_smallvilleIA_hist_78pfts_simyr1850-1855_c160127.nc - - - -lnd/clm2/surfdata_map/landuse.timeseries_0.47x0.63_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c171025.nc -lnd/clm2/surfdata_map/landuse.timeseries_360x720cru_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_48x96_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne30np4_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne120np4_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc - -lnd/clm2/surfdata_map/landuse.timeseries_1x1_brazil_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc - -lnd/clm2/surfdata_map/landuse.timeseries_0.47x0.63_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c171025.nc -lnd/clm2/surfdata_map/landuse.timeseries_360x720cru_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_48x96_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne30np4_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc - -lnd/clm2/surfdata_map/landuse.timeseries_0.47x0.63_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c171025.nc -lnd/clm2/surfdata_map/landuse.timeseries_360x720cru_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_48x96_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne120np4_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne30np4_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc - -lnd/clm2/surfdata_map/landuse.timeseries_0.47x0.63_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c171025.nc -lnd/clm2/surfdata_map/landuse.timeseries_360x720cru_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_48x96_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne30np4_hist_16pfts_Irrig_CMIP6_simyr1850-2015_c170824.nc - - -lnd/clm2/surfdata_map/landuse.timeseries_0.47x0.63_hist_78pfts_CMIP6_simyr1850-2015_c180508.nc -lnd/clm2/surfdata_map/landuse.timeseries_360x720cru_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_4x5_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_48x96_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne30np4_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne120np4_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc - -lnd/clm2/surfdata_map/landuse.timeseries_1x1_brazil_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc - -lnd/clm2/surfdata_map/landuse.timeseries_0.47x0.63_hist_78pfts_CMIP6_simyr1850-2015_c180508.nc -lnd/clm2/surfdata_map/landuse.timeseries_360x720cru_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_4x5_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_48x96_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne30np4_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc - -lnd/clm2/surfdata_map/landuse.timeseries_0.47x0.63_hist_78pfts_CMIP6_simyr1850-2015_c180508.nc -lnd/clm2/surfdata_map/landuse.timeseries_360x720cru_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_4x5_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_48x96_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne120np4_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne30np4_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc - -lnd/clm2/surfdata_map/landuse.timeseries_0.47x0.63_hist_78pfts_CMIP6_simyr1850-2015_c180508.nc -lnd/clm2/surfdata_map/landuse.timeseries_360x720cru_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_0.9x1.25_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_1.9x2.5_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_10x15_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_4x5_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_48x96_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc -lnd/clm2/surfdata_map/landuse.timeseries_ne30np4_hist_78pfts_CMIP6_simyr1850-2015_c170824.nc + + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_C24_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200317.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_C96_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200317.nc + +lnd/clm2/surfdata_map/ctsm5.1.dev120/landuse.timeseries_ne3np4.pg3_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c230405.nc +lnd/clm2/surfdata_map/ctsm5.1.dev120/landuse.timeseries_ne5np4.pg3_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c230405.nc +lnd/clm2/surfdata_map/ctsm5.1.dev120/landuse.timeseries_ne16np4.pg3_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c230405.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_ne30np4_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200426.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_ne30np4.pg2_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200426.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_ne30np4.pg3_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200426.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_ne0np4.ARCTICGRIS.ne30x8_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200426.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_ne0np4.ARCTIC.ne30x4_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200426.nc +lnd/clm2/surfdata_map/release-clm5.0.30/landuse.timeseries_ne0np4.CONUS.ne30x8_SSP5-8.5_78pfts_CMIP6_simyr1850-2100_c200426.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP1-2.6_78pfts_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP1-2.6_78pfts_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP1-2.6_78pfts_CMIP6_simyr1850-2100_c190228.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP2-4.5_78pfts_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP2-4.5_78pfts_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP2-4.5_78pfts_CMIP6_simyr1850-2100_c190228.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP3-7.0_78pfts_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP3-7.0_78pfts_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP3-7.0_78pfts_CMIP6_simyr1850-2100_c190228.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP4-3.4_78pfts_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP4-3.4_78pfts_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP4-3.4_78pfts_CMIP6_simyr1850-2100_c190228.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP1-1.9_78pfts_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP1-1.9_78pfts_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP1-1.9_78pfts_CMIP6_simyr1850-2100_c190228.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP4-6.0_78pfts_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP4-6.0_78pfts_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP4-6.0_78pfts_CMIP6_simyr1850-2100_c190228.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP5-3.4_78pfts_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP5-3.4_78pfts_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP5-3.4_78pfts_CMIP6_simyr1850-2100_c190228.nc + + + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP5-8.5_16pfts_Irrig_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP5-8.5_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP5-8.5_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP1-2.6_16pfts_Irrig_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP1-2.6_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP1-2.6_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP2-4.5_16pfts_Irrig_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP2-4.5_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP2-4.5_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP3-7.0_16pfts_Irrig_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP3-7.0_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP3-7.0_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP4-3.4_16pfts_Irrig_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP4-3.4_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP4-3.4_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP1-1.9_16pfts_Irrig_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP1-1.9_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP1-1.9_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP4-6.0_16pfts_Irrig_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP4-6.0_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP4-6.0_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc + + +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP5-3.4_16pfts_Irrig_CMIP6_simyr1850-2100_c190214.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_1.9x2.5_SSP5-3.4_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc +lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_10x15_SSP5-3.4_16pfts_Irrig_CMIP6_simyr1850-2100_c190228.nc -.true. -.false. +.true. +.true. +.false. -0.83d-06 +0.0117d00 +0.0006d00 + +0.83d-06 +0.015d00 0.015d00 0.015d00 - -20.0d00, 20.0d00, 20.0d00 -200.0d00, 200.0d00, 200.0d00 -20.0d00, 20.0d00, 20.0d00 -200.0d00, 200.0d00, 200.0d00 - -1.50d00 -0.3 -1.50d00 -0.3 -100.d00 -20.d00 -1.d00 -1.d00 +100.d00 +100.d00 +20.d00 +1.d00 +1.d00 +1.d00 @@ -986,6 +1563,24 @@ lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr1850_c170824.nclnd/clm2/snicardata/snicar_drdt_bst_fit_60_c070416.nc +2015 +2101 +2015 + +2015 +2101 +2015 + +2015 +2101 +2015 + +2018 +2018 + +2010 +2010 + 2000 2000 @@ -1001,35 +1596,71 @@ lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr1850_c170824.nc2000 2000 -1850 -2015 - -1850 -2100 - -2000 -2100 - -lnd/clm2/ndepdata/fndep_clm_hist_simyr1849-2006_1.9x2.5_c100428.nc -lnd/clm2/ndepdata/fndep_clm_rcp8.5_simyr1849-2106_1.9x2.5_c100428.nc -lnd/clm2/ndepdata/fndep_clm_rcp6.0_simyr1849-2106_1.9x2.5_c100810.nc -lnd/clm2/ndepdata/fndep_clm_rcp4.5_simyr1849-2106_1.9x2.5_c100428.nc -lnd/clm2/ndepdata/fndep_clm_rcp2.6_simyr1849-2106_1.9x2.5_c100428.nc - -extend - -NDEP_year - -bilinear +lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc +lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc +lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc + +share/meshes/fv1.9x2.5_141008_ESMFmesh_c20191001.nc +share/meshes/fv0.9x1.25_141008_polemod_ESMFmesh.nc + + +lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP5-8.5-WACCM_1849-2101_monthly_c191007.nc +lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP1-2.6-WACCM_1849-2101_monthly_c191007.nc +lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP2-4.5-WACCM_1849-2101_monthly_c191007.nc +lnd/clm2/ndepdata/fndep_clm_SSP370_b.e21.BWSSP370cmip6.f09_g17.CMIP6-SSP3-7.0-WACCM.002_1849-2101_monthly_0.9x1.25_c211216.nc + +lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP5-8.5-WACCM_1849-2101_monthly_c191007.nc +lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP1-2.6-WACCM_1849-2101_monthly_c191007.nc +lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP2-4.5-WACCM_1849-2101_monthly_c191007.nc +lnd/clm2/ndepdata/fndep_clm_SSP370_b.e21.BWSSP370cmip6.f09_g17.CMIP6-SSP3-7.0-WACCM.002_1849-2101_monthly_0.9x1.25_c211216.nc + +lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP5-8.5-WACCM_1849-2101_monthly_c191007.nc +lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP1-2.6-WACCM_1849-2101_monthly_c191007.nc +lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP2-4.5-WACCM_1849-2101_monthly_c191007.nc +lnd/clm2/ndepdata/fndep_clm_SSP370_b.e21.BWSSP370cmip6.f09_g17.CMIP6-SSP3-7.0-WACCM.002_1849-2101_monthly_0.9x1.25_c211216.nc + +cycle +NDEP_month + +cycle +NDEP_month + +cycle +NDEP_month + +bilinear nn nn nn nn -nn nn nn + + +.false. +1997 +1997 +1997 + +lnd/clm2/prescribed_data/LFMIP-pdLC-SST.H2OSOI.0.9x1.25.20levsoi.natveg.climo1980-2014.MONS_c190709.nc + +linear +0 + .false. 2001 @@ -1037,6 +1668,7 @@ lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr1850_c170824.nc2001 lnd/clm2/lai_streams/MODISPFTLAI_0.5x0.5_c140711.nc +lnd/clm2/lai_streams/MODISPFTLAI_0.5x0_ESMFmesh_cdf5_090621.nc bilinear @@ -1044,41 +1676,78 @@ lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr1850_c170824.ncnn nn nn -nn nn nn nn nn nn nn -nn nn nn + +1850 +2100 +1850 + none none +106x174 94x192 94x192 +360x720 +none +none +none +360x720 +360x720 +360x720 +360x720 +106x174 +106x174 +106x174 +106x174 + +0001 +0001 + +atm/datm7/NASA_LIS/clmforc.Li_2012_climo1995-2011.T62.lnfm_Total_c140423.nc +atm/datm7/NASA_LIS/clmforc.Li_2012_climo1995-2011.T62_ESMFmesh_cdf5_110621.nc +atm/datm7/NASA_LIS/clmforc.Li_2016_climo1995-2013.360x720.lnfm_Total_NEONarea_c210625.nc +atm/datm7/NASA_LIS/ESMF_MESH.Li_2016.360x720.NEONarea_cdf5_c221104.nc +atm/datm7/NASA_LIS/clmforc.Li_2016_climo1995-2013.360x720.lnfm_Total_c160825.nc +atm/datm7/NASA_LIS/clmforc.Li_2016_climo1995-2013.360x720_ESMFmesh_cdf5_150621.nc + +bilinear + +nn +nn +nn +nn +nn +nn -0001 -0001 + +2015 +2100 +2015 -atm/datm7/NASA_LIS/clmforc.Li_2012_climo1995-2011.T62.lnfm_Total_c140423.nc -atm/datm7/NASA_LIS/clmforc.Li_2016_climo1995-2013.360x720.lnfm_Total_c160825.nc +2015 +2100 +2015 -bilinear +2015 +2100 +2015 -nn -nn -nn -nn -nn -nn -nn +2018 +2018 + +2010 +2010 - 2000 2000 @@ -1094,16 +1763,64 @@ lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr1850_c170824.nc2000 2000 -1850 -2016 +2018 +2018 + +2010 +2010 + +2000 +2000 + +1850 +1850 -1850 -2016 +2000 +2000 -1850 -2016 +2000 +2000 + +2000 +2000 lnd/clm2/firedata/clmforc.Li_2017_HYDEv3.2_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2016_c180202.nc +lnd/clm2/firedata/clmforc.Li_2018_SSP1_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP1_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP2_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP3_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP4_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP4_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP5_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP5_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + + +lnd/clm2/firedata/clmforc.Li_2017_HYDEv3.2_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2016_c180202.nc +lnd/clm2/firedata/clmforc.Li_2018_SSP1_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP1_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP2_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP3_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP4_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP4_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP5_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + +lnd/clm2/firedata/clmforc.Li_2018_SSP5_CMIP6_hdm_0.5x0.5_AVHRR_simyr1850-2100_c181205.nc + + +lnd/clm2/firedata/clmforc.Li_2017_HYDEv3.2_CMIP6_hdm_0.5x0_ESMFmesh_cdf5_100621.nc bilinear @@ -1111,11 +1828,37 @@ lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr1850_c170824.ncnn nn nn -nn nn nn +bilinear + +nn +nn +nn +nn +nn +nn + +2015 +2106 +2015 + +2015 +2106 +2015 + +2015 +2106 +2015 + +2018 +2018 + +2010 +2010 + 2000 2000 @@ -1134,17 +1877,20 @@ lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr1850_c170824.nc1850 2106 -1850 -2106 - -1850 -2106 +lnd/clm2/urbandata/CLM50_tbuildmax_Oleson_2016_0.9x1.25_simyr1849-2106_c160923.nc +lnd/clm2/urbandata/CLM50_tbuildmax_Oleson_2016_0.9x1_ESMFmesh_cdf5_100621.nc lnd/clm2/urbandata/CLM50_tbuildmax_Oleson_2016_0.9x1.25_simyr1849-2106_c160923.nc +lnd/clm2/urbandata/CLM50_tbuildmax_Oleson_2016_0.9x1_ESMFmesh_cdf5_100621.nc lnd/clm2/urbandata/CLM45_tbuildmax_Oleson_2016_0.9x1.25_simyr1849-2106_c160923.nc +lnd/clm2/urbandata/CLM50_tbuildmax_Oleson_2016_0.9x1_ESMFmesh_cdf5_100621.nc nn @@ -1152,7 +1898,6 @@ lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr1850_c170824.ncnn nn nn -nn nn nn @@ -1189,1287 +1934,719 @@ lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr1850_c170824.nc - - -lnd/clm2/mappingdata/maps/0.1x0.1/map_0.1x0.1_nomask_to_0.1x0.1_nomask_aave_da_c120406.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_0.5x0.5_AVHRR_to_0.1x0.1_nomask_aave_da_c120406.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_0.5x0.5_MODIS_to_0.1x0.1_nomask_aave_da_c120406.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_0.25x0.25_MODIS_to_0.1x0.1_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_0.5x0.5_nomask_to_0.1x0.1_nomask_aave_da_c120406.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_10x10min_nomask_to_0.1x0.1_nomask_aave_da_c120406.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_3x3min_MODIS_to_0.1x0.1_nomask_aave_da_c120406.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_3x3min_MODIS-wCsp_to_0.1x0.1_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_5x5min_IGBP-GSDP_to_0.1x0.1_nomask_aave_da_c120406.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_5x5min_ISRIC-WISE_to_0.1x0.1_nomask_aave_da_c120406.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_5x5min_ORNL-Soil_to_0.1x0.1_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_5x5min_nomask_to_0.1x0.1_nomask_aave_da_c120406.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_ne120np4_nomask_to_0.1x0.1_nomask_aave_da_c120711.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_4x5_nomask_to_0.1x0.1_nomask_aave_da_c120706.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_1.9x2.5_nomask_to_0.1x0.1_nomask_aave_da_c120709.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_ne240np4_nomask_to_0.1x0.1_nomask_aave_da_c120711.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_0.9x1.25_GRDC_to_0.1x0.1_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_360x720_cruncep_to_0.1x0.1_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/0.1x0.1/map_1km-merge-10min_HYDRO1K-merge-nomask_to_0.1x0.1_nomask_aave_da_c130405.nc - - - - - -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_0.5x0.5_AVHRR_to_1x1_asphaltjungleNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_0.5x0.5_MODIS_to_1x1_asphaltjungleNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_0.25x0.25_MODIS_to_1x1_asphaltjungleNJ_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_0.5x0.5_nomask_to_1x1_asphaltjungleNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_10x10min_nomask_to_1x1_asphaltjungleNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_3x3min_MODIS_to_1x1_asphaltjungleNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_3x3min_MODIS-wCsp_to_1x1_asphaltjungleNJ_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_3x3min_USGS_to_1x1_asphaltjungleNJ_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_3x3min_LandScan2004_to_1x1_asphaltjungleNJ_nomask_aave_da_c121114.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_5x5min_IGBP-GSDP_to_1x1_asphaltjungleNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_5x5min_ISRIC-WISE_to_1x1_asphaltjungleNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_5x5min_ORNL-Soil_to_1x1_asphaltjungleNJ_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_5x5min_nomask_to_1x1_asphaltjungleNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_3x3min_GLOBE-Gardner_to_1x1_asphaltjungleNJ_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_3x3min_GLOBE-Gardner-mergeGIS_to_1x1_asphaltjungleNJ_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_0.9x1.25_GRDC_to_1x1_asphaltjungleNJ_nomask_aave_da_c130309.nc -lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_360x720_cruncep_to_1x1_asphaltjungleNJ_nomask_aave_da_c130326.nc - +lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_0.125x0.125_nomask_to_1x1_asphaltjungleNJ_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_0.5x0.5_nomask_to_1x1_asphaltjungleNJ_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_0.25x0.25_nomask_to_1x1_asphaltjungleNJ_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_3x3min_nomask_to_1x1_asphaltjungleNJ_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_10x10min_nomask_to_1x1_asphaltjungleNJ_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_5x5min_nomask_to_1x1_asphaltjungleNJ_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_0.9x1.25_nomask_to_1x1_asphaltjungleNJ_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_asphaltjungleNJ/map_1km-merge-10min_HYDRO1K-merge-nomask_to_1x1_asphaltjungleNJ_nomask_aave_da_c130403.nc - - - - - -lnd/clm2/mappingdata/maps/1x1_brazil/map_0.5x0.5_AVHRR_to_1x1_brazil_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_0.5x0.5_MODIS_to_1x1_brazil_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_0.25x0.25_MODIS_to_1x1_brazil_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_0.5x0.5_nomask_to_1x1_brazil_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_10x10min_nomask_to_1x1_brazil_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_3x3min_MODIS_to_1x1_brazil_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_3x3min_MODIS-wCsp_to_1x1_brazil_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_3x3min_USGS_to_1x1_brazil_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_3x3min_LandScan2004_to_1x1_brazil_nomask_aave_da_c121114.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_5x5min_IGBP-GSDP_to_1x1_brazil_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_5x5min_ISRIC-WISE_to_1x1_brazil_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_5x5min_ORNL-Soil_to_1x1_brazil_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_5x5min_nomask_to_1x1_brazil_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_3x3min_GLOBE-Gardner_to_1x1_brazil_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_3x3min_GLOBE-Gardner-mergeGIS_to_1x1_brazil_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_0.9x1.25_GRDC_to_1x1_brazil_nomask_aave_da_c130309.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_360x720_cruncep_to_1x1_brazil_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/1x1_brazil/map_1km-merge-10min_HYDRO1K-merge-nomask_to_1x1_brazil_nomask_aave_da_c130403.nc - - - - - -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_0.5x0.5_AVHRR_to_1x1_camdenNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_0.5x0.5_MODIS_to_1x1_camdenNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_0.25x0.25_MODIS_to_1x1_camdenNJ_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_0.5x0.5_nomask_to_1x1_camdenNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_10x10min_nomask_to_1x1_camdenNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_3x3min_MODIS_to_1x1_camdenNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_3x3min_MODIS-wCsp_to_1x1_camdenNJ_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_3x3min_USGS_to_1x1_camdenNJ_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_3x3min_LandScan2004_to_1x1_camdenNJ_nomask_aave_da_c121114.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_5x5min_IGBP-GSDP_to_1x1_camdenNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_5x5min_ISRIC-WISE_to_1x1_camdenNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_5x5min_ORNL-Soil_to_1x1_camdenNJ_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_5x5min_nomask_to_1x1_camdenNJ_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_3x3min_GLOBE-Gardner_to_1x1_camdenNJ_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_3x3min_GLOBE-Gardner-mergeGIS_to_1x1_camdenNJ_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_0.9x1.25_GRDC_to_1x1_camdenNJ_nomask_aave_da_c130309.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_360x720_cruncep_to_1x1_camdenNJ_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/1x1_camdenNJ/map_1km-merge-10min_HYDRO1K-merge-nomask_to_1x1_camdenNJ_nomask_aave_da_c130403.nc - - - - - -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_0.5x0.5_AVHRR_to_1x1_mexicocityMEX_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_0.5x0.5_MODIS_to_1x1_mexicocityMEX_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_0.25x0.25_MODIS_to_1x1_mexicocityMEX_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_0.5x0.5_nomask_to_1x1_mexicocityMEX_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_10x10min_nomask_to_1x1_mexicocityMEX_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_3x3min_MODIS_to_1x1_mexicocityMEX_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_3x3min_MODIS-wCsp_to_1x1_mexicocityMEX_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_3x3min_USGS_to_1x1_mexicocityMEX_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_3x3min_LandScan2004_to_1x1_mexicocityMEX_nomask_aave_da_c121114.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_5x5min_IGBP-GSDP_to_1x1_mexicocityMEX_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_5x5min_ISRIC-WISE_to_1x1_mexicocityMEX_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_5x5min_ORNL-Soil_to_1x1_mexicocityMEX_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_5x5min_nomask_to_1x1_mexicocityMEX_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_3x3min_GLOBE-Gardner_to_1x1_mexicocityMEX_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_3x3min_GLOBE-Gardner-mergeGIS_to_1x1_mexicocityMEX_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_0.9x1.25_GRDC_to_1x1_mexicocityMEX_nomask_aave_da_c130309.nc -lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_360x720_cruncep_to_1x1_mexicocityMEX_nomask_aave_da_c130326.nc - + + +lnd/clm2/mappingdata/maps/1x1_brazil/map_0.125x0.125_nomask_to_1x1_brazil_nomask_aave_da_c211212.nc +lnd/clm2/mappingdata/maps/1x1_brazil/map_0.5x0.5_nomask_to_1x1_brazil_nomask_aave_da_c211212.nc +lnd/clm2/mappingdata/maps/1x1_brazil/map_0.25x0.25_nomask_to_1x1_brazil_nomask_aave_da_c211212.nc +lnd/clm2/mappingdata/maps/1x1_brazil/map_3x3min_nomask_to_1x1_brazil_nomask_aave_da_c211212.nc +lnd/clm2/mappingdata/maps/1x1_brazil/map_10x10min_nomask_to_1x1_brazil_nomask_aave_da_c211212.nc +lnd/clm2/mappingdata/maps/1x1_brazil/map_5x5min_nomask_to_1x1_brazil_nomask_aave_da_c211212.nc +lnd/clm2/mappingdata/maps/1x1_brazil/map_0.9x1.25_nomask_to_1x1_brazil_nomask_aave_da_c211212.nc +lnd/clm2/mappingdata/maps/1x1_brazil/map_1km-merge-10min_HYDRO1K-merge-nomask_to_1x1_brazil_nomask_aave_da_c211212.nc + + + +lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_0.125x0.125_nomask_to_1x1_mexicocityMEX_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_0.5x0.5_nomask_to_1x1_mexicocityMEX_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_0.25x0.25_nomask_to_1x1_mexicocityMEX_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_3x3min_nomask_to_1x1_mexicocityMEX_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_10x10min_nomask_to_1x1_mexicocityMEX_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_5x5min_nomask_to_1x1_mexicocityMEX_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_0.9x1.25_nomask_to_1x1_mexicocityMEX_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_mexicocityMEX/map_1km-merge-10min_HYDRO1K-merge-nomask_to_1x1_mexicocityMEX_nomask_aave_da_c130403.nc - - - - - -lnd/clm2/mappingdata/maps/1x1_numaIA/map_0.5x0.5_AVHRR_to_1x1_numaIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_0.5x0.5_MODIS_to_1x1_numaIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_0.25x0.25_MODIS_to_1x1_numaIA_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_0.5x0.5_nomask_to_1x1_numaIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_10x10min_nomask_to_1x1_numaIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_3x3min_MODIS_to_1x1_numaIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_3x3min_MODIS-wCsp_to_1x1_numaIA_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_3x3min_USGS_to_1x1_numaIA_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_3x3min_LandScan2004_to_1x1_numaIA_nomask_aave_da_c121114.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_5x5min_IGBP-GSDP_to_1x1_numaIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_5x5min_ISRIC-WISE_to_1x1_numaIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_5x5min_ORNL-Soil_to_1x1_numaIA_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_5x5min_nomask_to_1x1_numaIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_3x3min_GLOBE-Gardner_to_1x1_numaIA_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_3x3min_GLOBE-Gardner-mergeGIS_to_1x1_numaIA_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_0.9x1.25_GRDC_to_1x1_numaIA_nomask_aave_da_c130309.nc -lnd/clm2/mappingdata/maps/1x1_numaIA/map_360x720_cruncep_to_1x1_numaIA_nomask_aave_da_c130326.nc - + + +lnd/clm2/mappingdata/maps/1x1_numaIA/map_0.125x0.125_nomask_to_1x1_numaIA_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_numaIA/map_0.5x0.5_nomask_to_1x1_numaIA_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_numaIA/map_0.25x0.25_nomask_to_1x1_numaIA_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_numaIA/map_3x3min_nomask_to_1x1_numaIA_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_numaIA/map_10x10min_nomask_to_1x1_numaIA_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_numaIA/map_5x5min_nomask_to_1x1_numaIA_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_numaIA/map_0.9x1.25_nomask_to_1x1_numaIA_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_numaIA/map_1km-merge-10min_HYDRO1K-merge-nomask_to_1x1_numaIA_nomask_aave_da_c130403.nc - - - - - -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_0.5x0.5_AVHRR_to_1x1_smallvilleIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_0.5x0.5_MODIS_to_1x1_smallvilleIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_0.25x0.25_MODIS_to_1x1_smallvilleIA_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_0.5x0.5_nomask_to_1x1_smallvilleIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_10x10min_nomask_to_1x1_smallvilleIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_3x3min_MODIS_to_1x1_smallvilleIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_3x3min_MODIS-wCsp_to_1x1_smallvilleIA_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_3x3min_USGS_to_1x1_smallvilleIA_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_3x3min_LandScan2004_to_1x1_smallvilleIA_nomask_aave_da_c121114.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_5x5min_IGBP-GSDP_to_1x1_smallvilleIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_5x5min_ISRIC-WISE_to_1x1_smallvilleIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_5x5min_ORNL-Soil_to_1x1_smallvilleIA_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_5x5min_nomask_to_1x1_smallvilleIA_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_3x3min_GLOBE-Gardner_to_1x1_smallvilleIA_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_3x3min_GLOBE-Gardner-mergeGIS_to_1x1_smallvilleIA_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_0.9x1.25_GRDC_to_1x1_smallvilleIA_nomask_aave_da_c130309.nc -lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_360x720_cruncep_to_1x1_smallvilleIA_nomask_aave_da_c130326.nc - + + +lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_0.125x0.125_nomask_to_1x1_smallvilleIA_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_0.25x0.25_nomask_to_1x1_smallvilleIA_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_0.5x0.5_nomask_to_1x1_smallvilleIA_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_10x10min_nomask_to_1x1_smallvilleIA_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_3x3min_nomask_to_1x1_smallvilleIA_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_5x5min_nomask_to_1x1_smallvilleIA_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_0.9x1.25_nomask_to_1x1_smallvilleIA_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_smallvilleIA/map_1km-merge-10min_HYDRO1K-merge-nomask_to_1x1_smallvilleIA_nomask_aave_da_c130403.nc - - - - - -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_0.5x0.5_AVHRR_to_1x1_urbanc_alpha_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_0.5x0.5_MODIS_to_1x1_urbanc_alpha_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_0.25x0.25_MODIS_to_1x1_urbanc_alpha_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_0.5x0.5_nomask_to_1x1_urbanc_alpha_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_10x10min_nomask_to_1x1_urbanc_alpha_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_3x3min_MODIS_to_1x1_urbanc_alpha_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_3x3min_MODIS-wCsp_to_1x1_urbanc_alpha_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_3x3min_USGS_to_1x1_urbanc_alpha_nomask_aave_da_c120928.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_3x3min_LandScan2004_to_1x1_urbanc_alpha_nomask_aave_da_c121114.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_5x5min_IGBP-GSDP_to_1x1_urbanc_alpha_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_5x5min_ISRIC-WISE_to_1x1_urbanc_alpha_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_5x5min_ORNL-Soil_to_1x1_urbanc_alpha_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_5x5min_nomask_to_1x1_urbanc_alpha_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_3x3min_GLOBE-Gardner_to_1x1_urbanc_alpha_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_3x3min_GLOBE-Gardner-mergeGIS_to_1x1_urbanc_alpha_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_0.9x1.25_GRDC_to_1x1_urbanc_alpha_nomask_aave_da_c130309.nc -lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_360x720_cruncep_to_1x1_urbanc_alpha_nomask_aave_da_c130326.nc - + + +lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_0.125x0.125_nomask_to_1x1_urbanc_alpha_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_0.25x0.25_nomask_to_1x1_urbanc_alpha_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_0.5x0.5_nomask_to_1x1_urbanc_alpha_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_10x10min_nomask_to_1x1_urbanc_alpha_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_3x3min_nomask_to_1x1_urbanc_alpha_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_5x5min_nomask_to_1x1_urbanc_alpha_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_0.9x1.25_nomask_to_1x1_urbanc_alpha_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_urbanc_alpha/map_1km-merge-10min_HYDRO1K-merge-nomask_to_1x1_urbanc_alpha_nomask_aave_da_c130403.nc - - - - - -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_0.5x0.5_AVHRR_to_1x1_vancouverCAN_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_0.5x0.5_MODIS_to_1x1_vancouverCAN_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_0.25x0.25_MODIS_to_1x1_vancouverCAN_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_0.5x0.5_nomask_to_1x1_vancouverCAN_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_10x10min_nomask_to_1x1_vancouverCAN_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_3x3min_MODIS_to_1x1_vancouverCAN_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_3x3min_MODIS-wCsp_to_1x1_vancouverCAN_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_3x3min_USGS_to_1x1_vancouverCAN_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_3x3min_LandScan2004_to_1x1_vancouverCAN_nomask_aave_da_c121114.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_5x5min_IGBP-GSDP_to_1x1_vancouverCAN_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_5x5min_ISRIC-WISE_to_1x1_vancouverCAN_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_5x5min_ORNL-Soil_to_1x1_vancouverCAN_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_5x5min_nomask_to_1x1_vancouverCAN_nomask_aave_da_c120717.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_3x3min_GLOBE-Gardner_to_1x1_vancouverCAN_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_3x3min_GLOBE-Gardner-mergeGIS_to_1x1_vancouverCAN_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_0.9x1.25_GRDC_to_1x1_vancouverCAN_nomask_aave_da_c130309.nc -lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_360x720_cruncep_to_1x1_vancouverCAN_nomask_aave_da_c130326.nc - + + +lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_0.125x0.125_nomask_to_1x1_vancouverCAN_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_0.25x0.25_nomask_to_1x1_vancouverCAN_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_0.5x0.5_nomask_to_1x1_vancouverCAN_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_10x10min_nomask_to_1x1_vancouverCAN_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_3x3min_nomask_to_1x1_vancouverCAN_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_5x5min_nomask_to_1x1_vancouverCAN_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_0.9x1.25_nomask_to_1x1_vancouverCAN_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1x1_vancouverCAN/map_1km-merge-10min_HYDRO1K-merge-nomask_to_1x1_vancouverCAN_nomask_aave_da_c130403.nc - - - - - -lnd/clm2/mappingdata/maps/0.47x0.63/map_0.25x0.25_MODIS_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_0.5x0.5_AVHRR_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_0.5x0.5_MODIS_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_0.9x1.25_GRDC_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_10x10min_IGBPmergeICESatGIS_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_10x10min_nomask_to_0.47x0.63_nomask_aave_da_c170914.nc - + + +lnd/clm2/mappingdata/maps/0.47x0.63/map_0.125x0.125_nomask_to_0.47x0.63_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.47x0.63/map_0.5x0.5_nomask_to_0.47x0.63_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.47x0.63/map_0.25x0.25_nomask_to_0.47x0.63_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.47x0.63/map_10x10min_nomask_to_0.47x0.63_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.47x0.63/map_1km-merge-10min_HYDRO1K-merge-nomask_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_360x720cru_cruncep_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_3x3min_GLOBE-Gardner-mergeGIS_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_3x3min_GLOBE-Gardner_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_3x3min_LandScan2004_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_3x3min_MODIS-wCsp_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_3x3min_USGS_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_5x5min_IGBP-GSDP_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_5x5min_ISRIC-WISE_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_5x5min_nomask_to_0.47x0.63_nomask_aave_da_c170914.nc -lnd/clm2/mappingdata/maps/0.47x0.63/map_5x5min_ORNL-Soil_to_0.47x0.63_nomask_aave_da_c170914.nc - - - - -lnd/clm2/mappingdata/maps/0.9x1.25/map_0.5x0.5_landuse_to_0.9x1.25_aave_da_110307.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_0.25x0.25_MODIS_to_0.9x1.25_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_0.5x0.5_lanwat_to_0.9x1.25_aave_da_110307.nc +lnd/clm2/mappingdata/maps/0.47x0.63/map_3x3min_nomask_to_0.47x0.63_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.47x0.63/map_5x5min_nomask_to_0.47x0.63_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.47x0.63/map_0.9x1.25_nomask_to_0.47x0.63_nomask_aave_da_c200206.nc + + + +lnd/clm2/mappingdata/maps/0.9x1.25/map_0.125x0.125_nomask_to_0.9x1.25_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.9x1.25/map_0.5x0.5_nomask_to_0.9x1.25_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.9x1.25/map_0.25x0.25_nomask_to_0.9x1.25_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/0.9x1.25/map_10minx10min_topo_to_0.9x1.25_aave_da_110630.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_5minx5min_soitex_to_0.9x1.25_aave_da_110722.nc +>lnd/clm2/mappingdata/maps/0.9x1.25/map_10x10min_nomask_to_0.9x1.25_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/0.9x1.25/map_5minx5min_irrig_to_0.9x1.25_aave_da_110529.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_5x5min_ISRIC-WISE_to_0.9x1.25_nomask_aave_da_c120525.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_5x5min_ORNL-Soil_to_0.9x1.25_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_3x3min_MODIS_to_0.9x1.25_nomask_aave_da_c120523.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_3x3min_MODIS-wCsp_to_0.9x1.25_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_3x3min_USGS_to_0.9x1.25_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_3x3min_LandScan2004_to_0.9x1.25_nomask_aave_da_c120522.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_3x3min_GLOBE-Gardner_to_0.9x1.25_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_3x3min_GLOBE-Gardner-mergeGIS_to_0.9x1.25_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_0.9x1.25_GRDC_to_0.9x1.25_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_360x720_cruncep_to_0.9x1.25_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/0.9x1.25/map_5x5min_nomask_to_0.9x1.25_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.9x1.25/map_3x3min_nomask_to_0.9x1.25_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.9x1.25/map_0.9x1.25_nomask_to_0.9x1.25_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.9x1.25/map_1km-merge-10min_HYDRO1K-merge-nomask_to_0.9x1.25_nomask_aave_da_c130405.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_0.5x0.5_landuse_to_1.9x2.5_aave_da_110307.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_0.25x0.25_MODIS_to_1.9x2.5_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_0.5x0.5_lanwat_to_1.9x2.5_aave_da_110307.nc +lnd/clm2/mappingdata/maps/1.9x2.5/map_0.125x0.125_nomask_to_1.9x2.5_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1.9x2.5/map_0.5x0.5_nomask_to_1.9x2.5_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1.9x2.5/map_0.25x0.25_nomask_to_1.9x2.5_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/1.9x2.5/map_10minx10min_topo_to_1.9x2.5_aave_da_110307.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_5minx5min_soitex_to_1.9x2.5_aave_da_110307.nc +>lnd/clm2/mappingdata/maps/1.9x2.5/map_10x10min_nomask_to_1.9x2.5_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/1.9x2.5/map_5x5min_nomask_to_1.9x2.5_nomask_aave_da_c120606.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_5x5min_ISRIC-WISE_to_1.9x2.5_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_5x5min_ORNL-Soil_to_1.9x2.5_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_3x3min_MODIS_to_1.9x2.5_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_3x3min_MODIS-wCsp_to_1.9x2.5_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_3x3min_USGS_to_1.9x2.5_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_3x3min_LandScan2004_to_1.9x2.5_nomask_aave_da_c120522.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_3x3min_GLOBE-Gardner_to_1.9x2.5_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_3x3min_GLOBE-Gardner-mergeGIS_to_1.9x2.5_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_0.9x1.25_GRDC_to_1.9x2.5_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_360x720_cruncep_to_1.9x2.5_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/1.9x2.5/map_5x5min_nomask_to_1.9x2.5_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1.9x2.5/map_3x3min_nomask_to_1.9x2.5_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/1.9x2.5/map_0.9x1.25_nomask_to_1.9x2.5_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/1.9x2.5/map_1km-merge-10min_HYDRO1K-merge-nomask_to_1.9x2.5_nomask_aave_da_c130405.nc -lnd/clm2/mappingdata/maps/10x15/map_0.5x0.5_landuse_to_10x15_aave_da_110307.nc -lnd/clm2/mappingdata/maps/10x15/map_0.25x0.25_MODIS_to_10x15_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/10x15/map_0.5x0.5_lanwat_to_10x15_aave_da_110307.nc +lnd/clm2/mappingdata/maps/10x15/map_0.125x0.125_nomask_to_10x15_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/10x15/map_0.5x0.5_nomask_to_10x15_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/10x15/map_0.25x0.25_nomask_to_10x15_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/10x15/map_10minx10min_topo_to_10x15_aave_da_110307.nc -lnd/clm2/mappingdata/maps/10x15/map_5minx5min_soitex_to_10x15_aave_da_110307.nc +>lnd/clm2/mappingdata/maps/10x15/map_10x10min_nomask_to_10x15_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/10x15/map_5x5min_nomask_to_10x15_nomask_aave_da_c120327.nc -lnd/clm2/mappingdata/maps/10x15/map_5x5min_ISRIC-WISE_to_10x15_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/10x15/map_5x5min_ORNL-Soil_to_10x15_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/10x15/map_3x3min_MODIS_to_10x15_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/10x15/map_3x3min_MODIS-wCsp_to_10x15_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/10x15/map_3x3min_USGS_to_10x15_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/10x15/map_3x3min_LandScan2004_to_10x15_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/10x15/map_3x3min_GLOBE-Gardner_to_10x15_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/10x15/map_3x3min_GLOBE-Gardner-mergeGIS_to_10x15_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/10x15/map_0.9x1.25_GRDC_to_10x15_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/10x15/map_360x720_cruncep_to_10x15_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/10x15/map_5x5min_nomask_to_10x15_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/10x15/map_3x3min_nomask_to_10x15_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/10x15/map_0.9x1.25_nomask_to_10x15_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/10x15/map_1km-merge-10min_HYDRO1K-merge-nomask_to_10x15_nomask_aave_da_c130411.nc -lnd/clm2/mappingdata/maps/360x720/map_0.5x0.5_MODIS_to_360x720_nomask_aave_da_c120830.nc -lnd/clm2/mappingdata/maps/360x720/map_0.25x0.25_MODIS_to_360x720cru_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/360x720/map_0.5x0.5_AVHRR_to_360x720_nomask_aave_da_c120830.nc - + + + +lnd/clm2/mappingdata/maps/360x720/map_0.125x0.125_nomask_to_360x720cru_nomask_aave_da_c210823.nc +lnd/clm2/mappingdata/maps/360x720/map_0.5x0.5_nomask_to_360x720_nomask_aave_da_c120830.nc +lnd/clm2/mappingdata/maps/360x720/map_0.25x0.25_nomask_to_360x720cru_nomask_aave_da_c210823.nc +lnd/clm2/mappingdata/maps/360x720/map_3x3min_nomask_to_360x720cru_nomask_aave_da_c210823.nc +lnd/clm2/mappingdata/maps/360x720/map_10x10min_nomask_to_360x720_nomask_aave_da_c120830.nc -lnd/clm2/mappingdata/maps/360x720/map_5x5min_IGBP-GSDP_to_360x720_nomask_aave_da_c120830.nc -lnd/clm2/mappingdata/maps/360x720/map_5x5min_nomask_to_360x720_nomask_aave_da_c120830.nc -lnd/clm2/mappingdata/maps/360x720/map_5x5min_ISRIC-WISE_to_360x720_nomask_aave_da_c120830.nc -lnd/clm2/mappingdata/maps/360x720/map_5x5min_ORNL-Soil_to_360x720cru_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/360x720/map_3x3min_MODIS_to_360x720_nomask_aave_da_c120830.nc -lnd/clm2/mappingdata/maps/360x720/map_3x3min_MODIS-wCsp_to_360x720cru_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/360x720/map_3x3min_USGS_to_360x720_nomask_aave_da_c121128.nc -lnd/clm2/mappingdata/maps/360x720/map_3x3min_LandScan2004_to_360x720_nomask_aave_da_c121017.nc -lnd/clm2/mappingdata/maps/360x720/map_3x3min_GLOBE-Gardner_to_360x720_nomask_aave_da_c121128.nc -lnd/clm2/mappingdata/maps/360x720/map_3x3min_GLOBE-Gardner-mergeGIS_to_360x720_nomask_aave_da_c121128.nc -lnd/clm2/mappingdata/maps/360x720/map_0.9x1.25_GRDC_to_360x720_nomask_aave_da_c130309.nc -lnd/clm2/mappingdata/maps/360x720/map_360x720_cruncep_to_360x720_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/360x720/map_0.9x1.25_nomask_to_360x720cru_nomask_aave_da_c210823.nc +lnd/clm2/mappingdata/maps/360x720/map_1km-merge-10min_HYDRO1K-merge-nomask_to_360x720_nomask_aave_da_c130403.nc + -lnd/clm2/mappingdata/maps/512x1024/map_0.5x0.5_MODIS_to_512x1024_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/512x1024/map_0.25x0.25_MODIS_to_512x1024_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/512x1024/map_0.5x0.5_AVHRR_to_512x1024_nomask_aave_da_c110920.nc +lnd/clm2/mappingdata/maps/512x1024/map_0.125x0.125_nomask_to_512x1024_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/512x1024/map_0.5x0.5_nomask_to_512x1024_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/512x1024/map_0.25x0.25_nomask_to_512x1024_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/512x1024/map_10x10min_nomask_to_512x1024_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/512x1024/map_5x5min_IGBP-GSDP_to_512x1024_nomask_aave_da_c110920.nc +>lnd/clm2/mappingdata/maps/512x1024/map_10x10min_nomask_to_512x1024_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/512x1024/map_5x5min_nomask_to_512x1024_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/512x1024/map_5x5min_ISRIC-WISE_to_512x1024_nomask_aave_da_c120906.nc -lnd/clm2/mappingdata/maps/512x1024/map_5x5min_ORNL-Soil_to_512x1024_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/512x1024/map_3x3min_MODIS_to_512x1024_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/512x1024/map_3x3min_MODIS-wCsp_to_512x1024_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/512x1024/map_3x3min_USGS_to_512x1024_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/512x1024/map_3x3min_LandScan2004_to_512x1024_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/512x1024/map_3x3min_GLOBE-Gardner_to_512x1024_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/512x1024/map_3x3min_GLOBE-Gardner-mergeGIS_to_512x1024_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/512x1024/map_0.9x1.25_GRDC_to_512x1024_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/512x1024/map_360x720_cruncep_to_512x1024_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/512x1024/map_5x5min_nomask_to_512x1024_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/512x1024/map_3x3min_nomask_to_512x1024_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/512x1024/map_0.9x1.25_nomask_to_512x1024_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/512x1024/map_1km-merge-10min_HYDRO1K-merge-nomask_to_512x1024_nomask_aave_da_c130403.nc -lnd/clm2/mappingdata/maps/128x256/map_0.5x0.5_MODIS_to_128x256_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/128x256/map_0.25x0.25_MODIS_to_128x256_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/128x256/map_0.5x0.5_AVHRR_to_128x256_nomask_aave_da_c110920.nc +lnd/clm2/mappingdata/maps/128x256/map_0.125x0.125_nomask_to_128x256_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/128x256/map_0.5x0.5_nomask_to_128x256_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/128x256/map_0.25x0.25_nomask_to_128x256_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/128x256/map_10x10min_nomask_to_128x256_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/128x256/map_5x5min_IGBP-GSDP_to_128x256_nomask_aave_da_c110920.nc +>lnd/clm2/mappingdata/maps/128x256/map_10x10min_nomask_to_128x256_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/128x256/map_5x5min_nomask_to_128x256_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/128x256/map_5x5min_ISRIC-WISE_to_128x256_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/128x256/map_5x5min_ORNL-Soil_to_128x256_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/128x256/map_3x3min_MODIS_to_128x256_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/128x256/map_3x3min_MODIS-wCsp_to_128x256_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/128x256/map_3x3min_USGS_to_128x256_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/128x256/map_3x3min_LandScan2004_to_128x256_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/128x256/map_3x3min_GLOBE-Gardner_to_128x256_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/128x256/map_3x3min_GLOBE-Gardner-mergeGIS_to_128x256_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/128x256/map_0.9x1.25_GRDC_to_128x256_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/128x256/map_360x720_cruncep_to_128x256_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/128x256/map_5x5min_nomask_to_128x256_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/128x256/map_3x3min_nomask_to_128x256_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/128x256/map_0.9x1.25_nomask_to_128x256_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/128x256/map_1km-merge-10min_HYDRO1K-merge-nomask_to_128x256_nomask_aave_da_c130403.nc -lnd/clm2/mappingdata/maps/64x128/map_0.5x0.5_MODIS_to_64x128_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/64x128/map_0.25x0.25_MODIS_to_64x128_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/64x128/map_0.5x0.5_AVHRR_to_64x128_nomask_aave_da_c110920.nc +lnd/clm2/mappingdata/maps/64x128/map_0.125x0.125_nomask_to_64x128_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/64x128/map_0.5x0.5_nomask_to_64x128_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/64x128/map_0.25x0.25_nomask_to_64x128_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/64x128/map_10x10min_nomask_to_64x128_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/64x128/map_5x5min_IGBP-GSDP_to_64x128_nomask_aave_da_c110920.nc +>lnd/clm2/mappingdata/maps/64x128/map_10x10min_nomask_to_64x128_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/64x128/map_5x5min_nomask_to_64x128_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/64x128/map_5x5min_ISRIC-WISE_to_64x128_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/64x128/map_5x5min_ORNL-Soil_to_64x128_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/64x128/map_3x3min_MODIS_to_64x128_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/64x128/map_3x3min_MODIS-wCsp_to_64x128_nomask_aave_da_c160428.nc -lnd/clm2/mappingdata/maps/64x128/map_3x3min_USGS_to_64x128_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/64x128/map_3x3min_LandScan2004_to_64x128_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/64x128/map_3x3min_GLOBE-Gardner_to_64x128_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/64x128/map_3x3min_GLOBE-Gardner-mergeGIS_to_64x128_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/64x128/map_0.9x1.25_GRDC_to_64x128_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/64x128/map_360x720_cruncep_to_64x128_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/64x128/map_5x5min_nomask_to_64x128_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/64x128/map_3x3min_nomask_to_64x128_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/64x128/map_0.9x1.25_nomask_to_64x128_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/64x128/map_1km-merge-10min_HYDRO1K-merge-nomask_to_64x128_nomask_aave_da_c130403.nc -lnd/clm2/mappingdata/maps/48x96/map_0.5x0.5_MODIS_to_48x96_nomask_aave_da_c110822.nc -lnd/clm2/mappingdata/maps/48x96/map_0.25x0.25_MODIS_to_48x96_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/48x96/map_0.5x0.5_AVHRR_to_48x96_nomask_aave_da_c110822.nc +lnd/clm2/mappingdata/maps/48x96/map_0.125x0.125_nomask_to_48x96_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/48x96/map_0.5x0.5_nomask_to_48x96_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/48x96/map_0.25x0.25_nomask_to_48x96_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/48x96/map_10x10min_nomask_to_48x96_nomask_aave_da_c110822.nc -lnd/clm2/mappingdata/maps/48x96/map_5x5min_IGBP-GSDP_to_48x96_nomask_aave_da_c110822.nc +>lnd/clm2/mappingdata/maps/48x96/map_10x10min_nomask_to_48x96_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/48x96/map_5x5min_nomask_to_48x96_nomask_aave_da_c110822.nc -lnd/clm2/mappingdata/maps/48x96/map_5x5min_ISRIC-WISE_to_48x96_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/48x96/map_5x5min_ORNL-Soil_to_48x96_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/48x96/map_3x3min_MODIS_to_48x96_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/48x96/map_3x3min_MODIS-wCsp_to_48x96_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/48x96/map_3x3min_USGS_to_48x96_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/48x96/map_3x3min_LandScan2004_to_48x96_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/48x96/map_3x3min_GLOBE-Gardner_to_48x96_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/48x96/map_3x3min_GLOBE-Gardner-mergeGIS_to_48x96_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/48x96/map_0.9x1.25_GRDC_to_48x96_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/48x96/map_360x720_cruncep_to_48x96_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/48x96/map_5x5min_nomask_to_48x96_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/48x96/map_3x3min_nomask_to_48x96_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/48x96/map_0.9x1.25_nomask_to_48x96_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/48x96/map_1km-merge-10min_HYDRO1K-merge-nomask_to_48x96_nomask_aave_da_c130405.nc -lnd/clm2/mappingdata/maps/32x64/map_0.5x0.5_MODIS_to_32x64_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/32x64/map_0.25x0.25_MODIS_to_32x64_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/32x64/map_0.5x0.5_AVHRR_to_32x64_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/32x64/map_10x10min_nomask_to_32x64_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/32x64/map_5x5min_IGBP-GSDP_to_32x64_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/32x64/map_5x5min_nomask_to_32x64_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/32x64/map_5x5min_ISRIC-WISE_to_32x64_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/32x64/map_5x5min_ORNL-Soil_to_32x64_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/32x64/map_3x3min_MODIS_to_32x64_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/32x64/map_3x3min_MODIS-wCsp_to_32x64_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/32x64/map_3x3min_USGS_to_32x64_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/32x64/map_3x3min_LandScan2004_to_32x64_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/32x64/map_3x3min_GLOBE-Gardner_to_32x64_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/32x64/map_3x3min_GLOBE-Gardner-mergeGIS_to_32x64_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/32x64/map_0.9x1.25_GRDC_to_32x64_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/32x64/map_360x720_cruncep_to_32x64_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/32x64/map_1km-merge-10min_HYDRO1K-merge-nomask_to_32x64_nomask_aave_da_c130405.nc - -lnd/clm2/mappingdata/maps/8x16/map_0.5x0.5_MODIS_to_8x16_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/8x16/map_0.25x0.25_MODIS_to_8x16_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/8x16/map_0.5x0.5_AVHRR_to_8x16_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/8x16/map_10x10min_nomask_to_8x16_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/8x16/map_5x5min_IGBP-GSDP_to_8x16_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/8x16/map_5x5min_nomask_to_8x16_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/8x16/map_5x5min_ISRIC-WISE_to_8x16_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/8x16/map_5x5min_ORNL-Soil_to_8x16_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/8x16/map_3x3min_MODIS_to_8x16_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/8x16/map_3x3min_MODIS-wCsp_to_8x16_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/8x16/map_3x3min_USGS_to_8x16_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/8x16/map_3x3min_LandScan2004_to_8x16_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/8x16/map_3x3min_GLOBE-Gardner_to_8x16_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/8x16/map_3x3min_GLOBE-Gardner-mergeGIS_to_8x16_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/8x16/map_0.9x1.25_GRDC_to_8x16_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/8x16/map_360x720_cruncep_to_8x16_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/8x16/map_1km-merge-10min_HYDRO1K-merge-nomask_to_8x16_nomask_aave_da_c130411.nc - -lnd/clm2/mappingdata/maps/4x5/map_0.5x0.5_MODIS_to_4x5_nomask_aave_da_c110822.nc -lnd/clm2/mappingdata/maps/4x5/map_0.25x0.25_MODIS_to_4x5_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/4x5/map_0.5x0.5_AVHRR_to_4x5_nomask_aave_da_c110822.nc +lnd/clm2/mappingdata/maps/4x5/map_0.125x0.125_nomask_to_4x5_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/4x5/map_0.5x0.5_nomask_to_4x5_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/4x5/map_0.25x0.25_nomask_to_4x5_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/4x5/map_10x10min_nomask_to_4x5_nomask_aave_da_c110822.nc -lnd/clm2/mappingdata/maps/4x5/map_5x5min_IGBP-GSDP_to_4x5_nomask_aave_da_c110822.nc +>lnd/clm2/mappingdata/maps/4x5/map_10x10min_nomask_to_4x5_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/4x5/map_5x5min_nomask_to_4x5_nomask_aave_da_c110822.nc -lnd/clm2/mappingdata/maps/4x5/map_5x5min_ISRIC-WISE_to_4x5_nomask_aave_da_c120906.nc -lnd/clm2/mappingdata/maps/4x5/map_5x5min_ORNL-Soil_to_4x5_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/4x5/map_3x3min_MODIS_to_4x5_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/4x5/map_3x3min_MODIS-wCsp_to_4x5_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/4x5/map_3x3min_USGS_to_4x5_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/4x5/map_3x3min_LandScan2004_to_4x5_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/4x5/map_3x3min_GLOBE-Gardner_to_4x5_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/4x5/map_3x3min_GLOBE-Gardner-mergeGIS_to_4x5_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/4x5/map_0.9x1.25_GRDC_to_4x5_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/4x5/map_360x720_cruncep_to_4x5_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/4x5/map_5x5min_nomask_to_4x5_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/4x5/map_3x3min_nomask_to_4x5_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/4x5/map_0.9x1.25_nomask_to_4x5_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/4x5/map_1km-merge-10min_HYDRO1K-merge-nomask_to_4x5_nomask_aave_da_c130411.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_0.5x0.5_MODIS_to_0.23x0.31_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_0.25x0.25_MODIS_to_0.23x0.31_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_0.5x0.5_AVHRR_to_0.23x0.31_nomask_aave_da_c110920.nc +lnd/clm2/mappingdata/maps/0.23x0.31/map_0.125x0.125_nomask_to_0.23x0.31_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.23x0.31/map_0.5x0.5_nomask_to_0.23x0.31_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.23x0.31/map_0.25x0.25_nomask_to_0.23x0.31_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/0.23x0.31/map_10x10min_nomask_to_0.23x0.31_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_5x5min_IGBP-GSDP_to_0.23x0.31_nomask_aave_da_c110920.nc +>lnd/clm2/mappingdata/maps/0.23x0.31/map_10x10min_nomask_to_0.23x0.31_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/0.23x0.31/map_5x5min_nomask_to_0.23x0.31_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_5x5min_ISRIC-WISE_to_0.23x0.31_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_5x5min_ORNL-Soil_to_0.23x0.31_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_3x3min_MODIS_to_0.23x0.31_nomask_aave_da_c110930.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_3x3min_MODIS-wCsp_to_0.23x0.31_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_3x3min_USGS_to_0.23x0.31_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_3x3min_LandScan2004_to_0.23x0.31_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_3x3min_GLOBE-Gardner_to_0.23x0.31_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_3x3min_GLOBE-Gardner-mergeGIS_to_0.23x0.31_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_3x3min_LandScan2004_to_0.23x0.31_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_0.9x1.25_GRDC_to_0.23x0.31_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_360x720_cruncep_to_0.23x0.31_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/0.23x0.31/map_5x5min_nomask_to_0.23x0.31_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.23x0.31/map_3x3min_nomask_to_0.23x0.31_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.23x0.31/map_0.9x1.25_nomask_to_0.23x0.31_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.23x0.31/map_1km-merge-10min_HYDRO1K-merge-nomask_to_0.23x0.31_nomask_aave_da_c130405.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_0.5x0.5_MODIS_to_2.5x3.33_nomask_aave_da_c110823.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_0.25x0.25_MODIS_to_2.5x3.33_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_0.5x0.5_AVHRR_to_2.5x3.33_nomask_aave_da_c110823.nc +lnd/clm2/mappingdata/maps/2.5x3.33/map_0.125x0.125_nomask_to_2.5x3.33_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/2.5x3.33/map_0.5x0.5_nomask_to_2.5x3.33_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/2.5x3.33/map_0.25x0.25_nomask_to_2.5x3.33_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/2.5x3.33/map_10x10min_nomask_to_2.5x3.33_nomask_aave_da_c110823.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_5x5min_IGBP-GSDP_to_2.5x3.33_nomask_aave_da_c110823.nc +>lnd/clm2/mappingdata/maps/2.5x3.33/map_10x10min_nomask_to_2.5x3.33_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/2.5x3.33/map_5x5min_nomask_to_2.5x3.33_nomask_aave_da_c110823.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_5x5min_ISRIC-WISE_to_2.5x3.33_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_5x5min_ORNL-Soil_to_2.5x3.33_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_3x3min_MODIS_to_2.5x3.33_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_3x3min_MODIS-wCsp_to_2.5x3.33_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_3x3min_USGS_to_2.5x3.33_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_3x3min_LandScan2004_to_2.5x3.33_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_3x3min_GLOBE-Gardner_to_2.5x3.33_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_3x3min_GLOBE-Gardner-mergeGIS_to_2.5x3.33_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_0.9x1.25_GRDC_to_2.5x3.33_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_360x720_cruncep_to_2.5x3.33_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/2.5x3.33/map_5x5min_nomask_to_2.5x3.33_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/2.5x3.33/map_3x3min_nomask_to_2.5x3.33_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/2.5x3.33/map_0.9x1.25_nomask_to_2.5x3.33_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/2.5x3.33/map_1km-merge-10min_HYDRO1K-merge-nomask_to_2.5x3.33_nomask_aave_da_c130405.nc - - -lnd/clm2/mappingdata/maps/0.5x0.5/map_0.5x0.5_AVHRR_to_0.5x0.5_nomask_aave_da_c111021.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_0.25x0.25_MODIS_to_0.5x0.5_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_0.5x0.5_MODIS_to_0.5x0.5_nomask_aave_da_c111021.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_0.5x0.5_nomask_to_0.5x0.5_nomask_aave_da_c111021.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_10x10min_IGBPmergeICESatGIS_to_0.5x0.5_nomask_aave_da_c111021.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_10x10min_nomask_to_0.5x0.5_nomask_aave_da_c111021.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_5x5min_IGBP-GSDP_to_0.5x0.5_nomask_aave_da_c111021.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_5x5min_nomask_to_0.5x0.5_nomask_aave_da_c111021.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_3x3min_MODIS_to_0.5x0.5_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_3x3min_MODIS-wCsp_to_0.5x0.5_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_5x5min_ISRIC-WISE_to_0.5x0.5_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_5x5min_ORNL-Soil_to_0.5x0.5_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_3x3min_LandScan2004_to_0.5x0.5_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_3x3min_GLOBE-Gardner_to_0.5x0.5_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_3x3min_GLOBE-Gardner-mergeGIS_to_0.5x0.5_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_0.1x0.1_nomask_to_0.5x0.5_nomask_aave_da_c120706.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_ne240np4_nomask_to_0.5x0.5_nomask_aave_da_c120711.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_4x5_nomask_to_0.5x0.5_nomask_aave_da_c120706.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_1.9x2.5_nomask_to_0.5x0.5_nomask_aave_da_c120709.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_ne120np4_nomask_to_0.5x0.5_nomask_aave_da_c120711.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_3x3_USGS_nomask_to_0.5x0.5_nomask_aave_da_c120912.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_0.9x1.25_GRDC_to_0.5x0.5_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/0.5x0.5/map_360x720_cruncep_to_0.5x0.5_nomask_aave_da_c130326.nc - +lnd/clm2/mappingdata/maps/0.5x0.5/map_0.125x0.125_nomask_to_0.5x0.5_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.5x0.5/map_0.5x0.5_nomask_to_0.5x0.5_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.5x0.5/map_10x10min_nomask_to_0.5x0.5_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.5x0.5/map_0.25x0.25_nomask_to_0.5x0.5_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.5x0.5/map_3x3min_nomask_to_0.5x0.5_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.5x0.5/map_5x5min_nomask_to_0.5x0.5_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.5x0.5/map_0.9x1.25_nomask_to_0.5x0.5_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.5x0.5/map_1km-merge-10min_HYDRO1K-merge-nomask_to_0.5x0.5_nomask_aave_da_c130405.nc - -lnd/clm2/mappingdata/maps/ne4np4/map_0.5x0.5_MODIS_to_ne4np4_nomask_aave_da_c110923.nc -lnd/clm2/mappingdata/maps/ne4np4/map_0.25x0.25_MODIS_to_ne4np4_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/ne4np4/map_0.5x0.5_AVHRR_to_ne4np4_nomask_aave_da_c110923.nc +lnd/clm2/mappingdata/maps/ne4np4/map_0.125x0.125_nomask_to_ne4np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne4np4/map_0.5x0.5_nomask_to_ne4np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne4np4/map_0.25x0.25_nomask_to_ne4np4_nomask_aave_da_c200309.nc + +lnd/clm2/mappingdata/maps/C24/map_0.5x0.5_TO_C24_aave.181018.nc +lnd/clm2/mappingdata/maps/C24/map_10x10min_nomask_to_C24_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C24/map_5x5min_nomask_to_C24_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C24/map_1km-merge-10min_HYDRO1K-merge-nomask_to_C24_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C24/map_C24_nomask_to_0.5x0.5_nomask_aave_da_c181018.nc + + + +lnd/clm2/mappingdata/maps/C48/map_0.5x0.5_TO_C48_aave.181018.nc +lnd/clm2/mappingdata/maps/C48/map_10x10min_nomask_to_C48_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C48/map_5x5min_nomask_to_C48_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C48/map_1km-merge-10min_HYDRO1K-merge-nomask_to_C48_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C48/map_C48_nomask_to_0.5x0.5_nomask_aave_da_c181018.nc + + + +lnd/clm2/mappingdata/maps/C96/map_0.5x0.5_TO_C96_aave.181018.nc +lnd/clm2/mappingdata/maps/C96/map_10x10min_nomask_to_C96_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C96/map_5x5min_nomask_to_C96_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C96/map_1km-merge-10min_HYDRO1K-merge-nomask_to_C96_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C96/map_C96_nomask_to_0.5x0.5_nomask_aave_da_c181018.nc + + + +lnd/clm2/mappingdata/maps/C192/map_0.5x0.5_TO_C192_aave.181018.nc +lnd/clm2/mappingdata/maps/C192/map_10x10min_nomask_to_C192_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C192/map_5x5min_nomask_to_C192_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C192/map_1km-merge-10min_HYDRO1K-merge-nomask_to_C192_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C192/map_C192_nomask_to_0.5x0.5_nomask_aave_da_c181018.nc + + + +lnd/clm2/mappingdata/maps/C384/map_0.5x0.5_TO_C384_aave.181018.nc +lnd/clm2/mappingdata/maps/C384/map_10x10min_nomask_to_C384_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C384/map_5x5min_nomask_to_C384_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C384/map_1km-merge-10min_HYDRO1K-merge-nomask_to_C384_nomask_aave_da_c181018.nc +lnd/clm2/mappingdata/maps/C384/map_C384_nomask_to_0.5x0.5_nomask_aave_da_c181018.nc + + lnd/clm2/mappingdata/maps/ne4np4/map_10x10min_nomask_to_ne4np4_nomask_aave_da_c110923.nc -lnd/clm2/mappingdata/maps/ne4np4/map_5x5min_IGBP-GSDP_to_ne4np4_nomask_aave_da_c110923.nc +>lnd/clm2/mappingdata/maps/ne4np4/map_10x10min_nomask_to_ne4np4_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/ne4np4/map_5x5min_nomask_to_ne4np4_nomask_aave_da_c110923.nc -lnd/clm2/mappingdata/maps/ne4np4/map_5x5min_ISRIC-WISE_to_ne4np4_nomask_aave_da_c120906.nc -lnd/clm2/mappingdata/maps/ne4np4/map_5x5min_ORNL-Soil_to_ne4np4_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/ne4np4/map_3x3min_MODIS_to_ne4np4_nomask_aave_da_c120906.nc -lnd/clm2/mappingdata/maps/ne4np4/map_3x3min_MODIS-wCsp_to_ne4np4_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/ne4np4/map_3x3min_USGS_to_ne4np4_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/ne4np4/map_3x3min_LandScan2004_to_ne4np4_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/ne4np4/map_3x3min_GLOBE-Gardner_to_ne4np4_nomask_aave_da_c120924.nc -lnd/clm2/mappingdata/maps/ne4np4/map_3x3min_GLOBE-Gardner-mergeGIS_to_ne4np4_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/ne4np4/map_3x3min_LandScan2004_to_ne4np4_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/ne4np4/map_0.9x1.25_GRDC_to_ne4np4_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/ne4np4/map_360x720_cruncep_to_ne4np4_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/ne4np4/map_5x5min_nomask_to_ne4np4_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/ne4np4/map_3x3min_nomask_to_ne4np4_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/ne4np4/map_0.9x1.25_nomask_to_ne4np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne4np4/map_1km-merge-10min_HYDRO1K-merge-nomask_to_ne4np4_nomask_aave_da_c130411.nc -lnd/clm2/mappingdata/maps/ne4np4/map_ne4np4_nomask_to_0.5x0.5_nomask_aave_da_c110923.nc -lnd/clm2/mappingdata/maps/ne16np4/map_0.5x0.5_MODIS_to_ne16np4_nomask_aave_da_c110922.nc -lnd/clm2/mappingdata/maps/ne16np4/map_0.25x0.25_MODIS_to_ne16np4_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/ne16np4/map_0.5x0.5_AVHRR_to_ne16np4_nomask_aave_da_c110922.nc +lnd/clm2/mappingdata/maps/ne16np4/map_0.125x0.125_nomask_to_ne16np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne16np4/map_0.5x0.5_nomask_to_ne16np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne16np4/map_0.25x0.25_nomask_to_ne16np4_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/ne16np4/map_10x10min_nomask_to_ne16np4_nomask_aave_da_c110922.nc -lnd/clm2/mappingdata/maps/ne16np4/map_5x5min_IGBP-GSDP_to_ne16np4_nomask_aave_da_c110922.nc +>lnd/clm2/mappingdata/maps/ne16np4/map_10x10min_nomask_to_ne16np4_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/ne16np4/map_5x5min_nomask_to_ne16np4_nomask_aave_da_c110922.nc -lnd/clm2/mappingdata/maps/ne16np4/map_5x5min_ISRIC-WISE_to_ne16np4_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/ne16np4/map_5x5min_ORNL-Soil_to_ne16np4_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/ne16np4/map_3x3min_MODIS_to_ne16np4_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/ne16np4/map_3x3min_MODIS-wCsp_to_ne16np4_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/ne16np4/map_3x3min_USGS_to_ne16np4_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/ne16np4/map_3x3min_LandScan2004_to_ne16np4_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/ne16np4/map_3x3min_GLOBE-Gardner_to_ne16np4_nomask_aave_da_c120924.nc -lnd/clm2/mappingdata/maps/ne16np4/map_3x3min_GLOBE-Gardner-mergeGIS_to_ne16np4_nomask_aave_da_c120924.nc -lnd/clm2/mappingdata/maps/ne16np4/map_0.9x1.25_GRDC_to_ne16np4_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/ne16np4/map_360x720_cruncep_to_ne16np4_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/ne16np4/map_5x5min_nomask_to_ne16np4_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/ne16np4/map_3x3min_nomask_to_ne16np4_nomask_aave_da_c210506.nc +lnd/clm2/mappingdata/maps/ne16np4/map_0.9x1.25_nomask_to_ne16np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne16np4/map_1km-merge-10min_HYDRO1K-merge-nomask_to_ne16np4_nomask_aave_da_c130408.nc -lnd/clm2/mappingdata/maps/ne16np4/map_ne16np4_nomask_to_0.5x0.5_nomask_aave_da_c110922.nc -lnd/clm2/mappingdata/maps/ne30np4/map_0.5x0.5_landuse_to_ne30np4_aave_da_110320.nc -lnd/clm2/mappingdata/maps/ne30np4/map_0.25x0.25_MODIS_to_ne30np4_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/ne30np4/map_0.5x0.5_lanwat_to_ne30np4_aave_da_110320.nc +lnd/clm2/mappingdata/maps/ne30np4/map_0.125x0.125_nomask_to_ne30np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne30np4/map_0.5x0.5_nomask_to_ne30np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne30np4/map_0.25x0.25_nomask_to_ne30np4_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/ne30np4/map_10minx10min_topo_to_ne30np4_aave_da_110320.nc -lnd/clm2/mappingdata/maps/ne30np4/map_5minx5min_soitex_to_ne30np4_aave_da_110320.nc +>lnd/clm2/mappingdata/maps/ne30np4/map_10x10min_nomask_to_ne30np4_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/ne30np4/map_5minx5min_irrig_to_ne30np4_aave_da_110720.nc -lnd/clm2/mappingdata/maps/ne30np4/map_5x5min_ISRIC-WISE_to_ne30np4_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/ne30np4/map_5x5min_ORNL-Soil_to_ne30np4_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/ne30np4/map_3x3min_MODIS_to_ne30np4_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/ne30np4/map_3x3min_MODIS-wCsp_to_ne30np4_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/ne30np4/map_3x3min_USGS_to_ne30np4_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/ne30np4/map_3x3min_LandScan2004_to_ne30np4_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/ne30np4/map_3x3min_GLOBE-Gardner_to_ne30np4_nomask_aave_da_c120924.nc -lnd/clm2/mappingdata/maps/ne30np4/map_3x3min_GLOBE-Gardner-mergeGIS_to_ne30np4_nomask_aave_da_c120924.nc -lnd/clm2/mappingdata/maps/ne30np4/map_0.9x1.25_GRDC_to_ne30np4_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/ne30np4/map_360x720_cruncep_to_ne30np4_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/ne30np4/map_5x5min_nomask_to_ne30np4_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/ne30np4/map_3x3min_nomask_to_ne30np4_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/ne30np4/map_0.9x1.25_nomask_to_ne30np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne30np4/map_1km-merge-10min_HYDRO1K-merge-nomask_to_ne30np4_nomask_aave_da_c130405.nc -lnd/clm2/mappingdata/maps/ne30np4/map_ne30np4_to_0.5x0.5rtm_aave_da_110320.nc -lnd/clm2/mappingdata/maps/ne60np4/map_0.5x0.5_MODIS_to_ne60np4_nomask_aave_da_c110922.nc -lnd/clm2/mappingdata/maps/ne60np4/map_0.25x0.25_MODIS_to_ne60np4_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/ne60np4/map_0.5x0.5_AVHRR_to_ne60np4_nomask_aave_da_c110922.nc +lnd/clm2/mappingdata/maps/ne60np4/map_0.125x0.125_nomask_to_ne60np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne60np4/map_0.5x0.5_nomask_to_ne60np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne60np4/map_0.25x0.25_nomask_to_ne60np4_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/ne60np4/map_10x10min_nomask_to_ne60np4_nomask_aave_da_c110922.nc -lnd/clm2/mappingdata/maps/ne60np4/map_5x5min_IGBP-GSDP_to_ne60np4_nomask_aave_da_c110922.nc +>lnd/clm2/mappingdata/maps/ne60np4/map_10x10min_nomask_to_ne60np4_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/ne60np4/map_5x5min_nomask_to_ne60np4_nomask_aave_da_c110922.nc -lnd/clm2/mappingdata/maps/ne60np4/map_5x5min_ISRIC-WISE_to_ne60np4_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/ne60np4/map_5x5min_ORNL-Soil_to_ne60np4_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/ne60np4/map_3x3min_MODIS_to_ne60np4_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/ne60np4/map_3x3min_MODIS-wCsp_to_ne60np4_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/ne60np4/map_3x3min_USGS_to_ne60np4_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/ne60np4/map_3x3min_LandScan2004_to_ne60np4_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/ne60np4/map_3x3min_GLOBE-Gardner_to_ne60np4_nomask_aave_da_c120924.nc -lnd/clm2/mappingdata/maps/ne60np4/map_3x3min_GLOBE-Gardner-mergeGIS_to_ne60np4_nomask_aave_da_c120924.nc -lnd/clm2/mappingdata/maps/ne60np4/map_0.9x1.25_GRDC_to_ne60np4_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/ne60np4/map_360x720_cruncep_to_ne60np4_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/ne60np4/map_5x5min_nomask_to_ne60np4_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/ne60np4/map_3x3min_nomask_to_ne60np4_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/ne60np4/map_0.9x1.25_nomask_to_ne60np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne60np4/map_1km-merge-10min_HYDRO1K-merge-nomask_to_ne60np4_nomask_aave_da_c130405.nc -lnd/clm2/mappingdata/maps/ne60np4/map_ne60np4_nomask_to_0.5x0.5_nomask_aave_da_c110922.nc - -lnd/clm2/mappingdata/maps/ne120np4/map_0.5x0.5_landuse_to_ne120np4_aave_da_110320.nc -lnd/clm2/mappingdata/maps/ne120np4/map_0.25x0.25_MODIS_to_ne120np4_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/ne120np4/map_0.5x0.5_lanwat_to_ne120np4_aave_da_110320.nc + +lnd/clm2/mappingdata/maps/ne120np4/map_0.125x0.125_nomask_to_ne120np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne120np4/map_0.5x0.5_nomask_to_ne120np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne120np4/map_0.25x0.25_nomask_to_ne120np4_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/ne120np4/map_10minx10min_topo_to_ne120np4_aave_da_110320.nc -lnd/clm2/mappingdata/maps/ne120np4/map_5minx5min_soitex_to_ne120np4_aave_da_110320.nc -lnd/clm2/mappingdata/maps/ne120np4/map_5x5min_ISRIC-WISE_to_ne120np4_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/ne120np4/map_5x5min_ORNL-Soil_to_ne120np4_nomask_aave_da_c170706.nc +>lnd/clm2/mappingdata/maps/ne120np4/map_10x10min_nomask_to_ne120np4_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/ne120np4/map_5minx5min_irrig_to_ne120np4_aave_da_110817.nc -lnd/clm2/mappingdata/maps/ne120np4/map_3x3min_MODIS_to_ne120np4_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/ne120np4/map_3x3min_MODIS-wCsp_to_ne120np4_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/ne120np4/map_3x3min_USGS_to_ne120np4_nomask_aave_da_c120913.nc -lnd/clm2/mappingdata/maps/ne120np4/map_3x3min_LandScan2004_to_ne120np4_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/ne120np4/map_3x3min_GLOBE-Gardner_to_ne120np4_nomask_aave_da_c120924.nc -lnd/clm2/mappingdata/maps/ne120np4/map_3x3min_GLOBE-Gardner-mergeGIS_to_ne120np4_nomask_aave_da_c120924.nc -lnd/clm2/mappingdata/maps/ne120np4/map_3x3min_USGS_to_ne120np4_nomask_aave_da_c120913.nc -lnd/clm2/mappingdata/maps/ne120np4/map_0.9x1.25_GRDC_to_ne120np4_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/ne120np4/map_360x720_cruncep_to_ne120np4_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/ne120np4/map_5x5min_nomask_to_ne120np4_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/ne120np4/map_3x3min_nomask_to_ne120np4_nomask_aave_da_c210506.nc +lnd/clm2/mappingdata/maps/ne120np4/map_0.9x1.25_nomask_to_ne120np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne120np4/map_1km-merge-10min_HYDRO1K-merge-nomask_to_ne120np4_nomask_aave_da_c130405.nc - + -lnd/clm2/mappingdata/maps/ne120np4/map_0.1x0.1_nomask_to_ne120np4_nomask_aave_da_c120706.nc - + +lnd/clm2/mappingdata/maps/0.125x0.125/map_0.125x0.125_nomask_to_0.125nldas2_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.125x0.125/map_0.5x0.5_nomask_to_0.125nldas2_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.125x0.125/map_0.25x0.25_nomask_to_0.125nldas2_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.125x0.125/map_3x3min_nomask_to_0.125nldas2_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/0.125nldas2/map_1km-merge-10min_HYDRO1K-merge-nomask_to_0.125nldas2_nomask_aave_da_c190408.nc +>lnd/clm2/mappingdata/maps/0.125x0.125/map_1km-merge-10min_HYDRO1K-merge-nomask_to_0.125nldas2_nomask_aave_da_c140702.nc lnd/clm2/mappingdata/maps/0.125nldas2/map_5x5min_nomask_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_0.25x0.25_MODIS_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_0.9x1.25_GRDC_to_0.125nldas2_nomask_aave_da_c190408.nc +>lnd/clm2/mappingdata/maps/0.125x0.125/map_5x5min_nomask_to_0.125nldas2_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/0.125nldas2/map_10x10min_nomask_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_360x720cru_cruncep_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_3x3min_LandScan2004_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_10x10min_IGBPmergeICESatGIS_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_3x3min_MODIS_to_0.125nldas2_nomask_aave_da_c190412.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_3x3min_MODIS-wCsp_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_0.5x0.5_MODIS_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_3x3min_GLOBE-Gardner-mergeGIS_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_5x5min_ISRIC-WISE_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_3x3min_GLOBE-Gardner_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_0.5x0.5_AVHRR_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_3x3min_USGS_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_5x5min_IGBP-GSDP_to_0.125nldas2_nomask_aave_da_c190408.nc -lnd/clm2/mappingdata/maps/0.125nldas2/map_5x5min_ORNL-Soil_to_0.125nldas2_nomask_aave_da_c190408.nc +>lnd/clm2/mappingdata/maps/0.125x0.125/map_10x10min_nomask_to_0.125nldas2_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.125x0.125/map_0.9x1.25_nomask_to_0.125nldas2_nomask_aave_da_c200206.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_0.5x0.5_MODIS_to_5x5_amazon_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_0.25x0.25_MODIS_to_5x5_amazon_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_0.5x0.5_AVHRR_to_5x5_amazon_nomask_aave_da_c110920.nc +lnd/clm2/mappingdata/maps/5x5_amazon/map_0.125x0.125_nomask_to_5x5_amazon_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/5x5_amazon/map_0.5x0.5_nomask_to_5x5_amazon_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/5x5_amazon/map_0.25x0.25_nomask_to_5x5_amazon_nomask_aave_da_c200309.nc + + + +lnd/clm2/mappingdata/maps/ne0np4CONUS.ne30x8/map_5x5min_nomask_to_ne0np4CONUS.ne30x8_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ne0np4CONUS.ne30x8/map_10x10min_nomask_to_ne0np4CONUS.ne30x8_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ne0np4CONUS.ne30x8/map_1km-merge-10min_HYDRO1K-merge-nomask_to_ne0np4CONUS.ne30x8_nomask_aave_da_c200426.nc + + lnd/clm2/mappingdata/maps/5x5_amazon/map_10x10min_nomask_to_5x5_amazon_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_5x5min_IGBP-GSDP_to_5x5_amazon_nomask_aave_da_c110920.nc +>lnd/clm2/mappingdata/maps/5x5_amazon/map_10x10min_nomask_to_5x5_amazon_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/5x5_amazon/map_5x5min_nomask_to_5x5_amazon_nomask_aave_da_c110920.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_5x5min_ISRIC-WISE_to_5x5_amazon_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_5x5min_ORNL-Soil_to_5x5_amazon_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_3x3min_MODIS_to_5x5_amazon_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_3x3min_MODIS-wCsp_to_5x5_amazon_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_3x3min_USGS_to_5x5_amazon_nomask_aave_da_c120927.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_3x3min_LandScan2004_to_5x5_amazon_nomask_aave_da_c120518.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_3x3min_GLOBE-Gardner_to_5x5_amazon_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_3x3min_GLOBE-Gardner-mergeGIS_to_5x5_amazon_nomask_aave_da_c120923.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_0.9x1.25_GRDC_to_5x5_amazon_nomask_aave_da_c130309.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_360x720_cruncep_to_5x5_amazon_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/5x5_amazon/map_5x5min_nomask_to_5x5_amazon_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/5x5_amazon/map_3x3min_nomask_to_5x5_amazon_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/5x5_amazon/map_0.9x1.25_nomask_to_5x5_amazon_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/5x5_amazon/map_1km-merge-10min_HYDRO1K-merge-nomask_to_5x5_amazon_nomask_aave_da_c130403.nc -lnd/clm2/mappingdata/maps/ne240np4/map_0.5x0.5_MODIS_to_ne240np4_nomask_aave_da_c110922.nc -lnd/clm2/mappingdata/maps/ne240np4/map_0.25x0.25_MODIS_to_ne240np4_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/ne240np4/map_0.5x0.5_AVHRR_to_ne240np4_nomask_aave_da_c110922.nc +lnd/clm2/mappingdata/maps/ne240np4/map_0.125x0.125_nomask_to_ne240np4_nomask_aave_da_c200206.nc lnd/clm2/mappingdata/maps/ne240np4/map_10x10min_nomask_to_ne240np4_nomask_aave_da_c110922.nc -lnd/clm2/mappingdata/maps/ne240np4/map_5x5min_IGBP-GSDP_to_ne240np4_nomask_aave_da_c110922.nc +>lnd/clm2/mappingdata/maps/ne240np4/map_10x10min_nomask_to_ne240np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne240np4/map_0.5x0.5_nomask_to_ne240np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne240np4/map_0.25x0.25_nomask_to_ne240np4_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/ne240np4/map_3x3min_nomask_to_ne240np4_nomask_aave_da_c200309.nc lnd/clm2/mappingdata/maps/ne240np4/map_5x5min_nomask_to_ne240np4_nomask_aave_da_c110922.nc -lnd/clm2/mappingdata/maps/ne240np4/map_5x5min_ISRIC-WISE_to_ne240np4_nomask_aave_da_c111115.nc -lnd/clm2/mappingdata/maps/ne240np4/map_5x5min_ORNL-Soil_to_ne240np4_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/ne240np4/map_3x3min_MODIS_to_ne240np4_nomask_aave_da_c111111.nc -lnd/clm2/mappingdata/maps/ne240np4/map_3x3min_MODIS-wCsp_to_ne240np4_nomask_aave_da_c160425.nc -lnd/clm2/mappingdata/maps/ne240np4/map_3x3min_USGS_to_ne240np4_nomask_aave_da_c120926.nc -lnd/clm2/mappingdata/maps/ne240np4/map_3x3min_LandScan2004_to_ne240np4_nomask_aave_da_c120521.nc -lnd/clm2/mappingdata/maps/ne240np4/map_3x3min_GLOBE-Gardner_to_ne240np4_nomask_aave_da_c120925.nc -lnd/clm2/mappingdata/maps/ne240np4/map_3x3min_GLOBE-Gardner-mergeGIS_to_ne240np4_nomask_aave_da_c120925.nc -lnd/clm2/mappingdata/maps/ne240np4/map_0.9x1.25_GRDC_to_ne240np4_nomask_aave_da_c130308.nc -lnd/clm2/mappingdata/maps/ne240np4/map_360x720_cruncep_to_ne240np4_nomask_aave_da_c130326.nc -lnd/clm2/mappingdata/maps/ne240np4/map_5x5min_nomask_to_ne240np4_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/ne240np4/map_0.9x1.25_nomask_to_ne240np4_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/ne240np4/map_1km-merge-10min_HYDRO1K-merge-nomask_to_ne240np4_nomask_aave_da_c130405.nc -lnd/clm2/mappingdata/maps/ne240np4/map_ne240np4_nomask_to_0.5x0.5_nomask_aave_da_c110922.nc - - -lnd/clm2/mappingdata/maps/0.125x0.125/map_0.5x0.5_AVHRR_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_0.5x0.5_MODIS_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_0.25x0.25_MODIS_to_0.125x0.125_nomask_aave_da_c170321.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_0.9x1.25_GRDC_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_10x10min_IGBPmergeICESatGIS_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_10x10min_nomask_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_1km-merge-10min_HYDRO1K-merge-nomask_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_360x720cru_cruncep_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_3x3min_GLOBE-Gardner-mergeGIS_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_3x3min_GLOBE-Gardner_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_3x3min_LandScan2004_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_3x3min_MODIS_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_3x3min_MODIS-wCsp_to_0.125x0.125_nomask_aave_da_c160427.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_3x3min_USGS_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_5x5min_IGBP-GSDP_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_5x5min_ISRIC-WISE_to_0.125x0.125_nomask_aave_da_c140702.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_5x5min_ORNL-Soil_to_0.125x0.125_nomask_aave_da_c170706.nc -lnd/clm2/mappingdata/maps/0.125x0.125/map_5x5min_nomask_to_0.125x0.125_nomask_aave_da_c140702.nc + + +lnd/clm2/mappingdata/maps/0.125x0.125/map_0.125x0.125_nomask_to_0.125x0.125_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.125x0.125/map_10x10min_nomask_to_0.125x0.125_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.125x0.125/map_1km-merge-10min_HYDRO1K-merge-nomask_to_0.125x0.125_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.125x0.125/map_0.5x0.5_nomask_to_0.125x0.125_nomask_aave_da_c200206.nc +lnd/clm2/mappingdata/maps/0.125x0.125/map_0.25x0.25_nomask_to_0.125x0.125_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.125x0.125/map_3x3min_nomask_to_0.125x0.125_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.125x0.125/map_5x5min_nomask_to_0.125x0.125_nomask_aave_da_c200309.nc +lnd/clm2/mappingdata/maps/0.125x0.125/map_0.9x1.25_nomask_to_0.125x0.125_nomask_aave_da_c200206.nc + + +lnd/clm2/mappingdata/maps/1km/map_0.5x0.5_nomask_to_1km-merge-10min_HYDRO1K-merge-nomask_aave_da_c200206.nc + + + + + + + +lnd/clm2/mappingdata/maps/94x192/map_0.5x0.5_nomask_to_94x192_nomask_aave_da_c110823.nc +lnd/clm2/mappingdata/maps/94x192/map_94x192_nomask_to_0.5x0.5_nomask_aave_da_c110823.nc +lnd/clm2/mappingdata/maps/94x192/map_1km-merge-10min_HYDRO1K-merge-nomask_to_94x192_nomask_aave_da_c190521.nc +lnd/clm2/mappingdata/maps/94x192/map_5x5min_nomask_to_94x192_nomask_aave_da_c110823.nc +lnd/clm2/mappingdata/maps/94x192/map_10x10min_nomask_to_94x192_nomask_aave_da_c110823.nc + + + + + + +lnd/clm2/mappingdata/maps/ARCTIC/map_1km-merge-10min_HYDRO1K-merge-nomask_to_ne0np4.ARCTIC.ne30x4_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ARCTIC/map_5x5min_nomask_to_ne0np4.ARCTIC.ne30x4_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ARCTIC/map_10x10min_nomask_to_ne0np4.ARCTIC.ne30x4_nomask_aave_da_c200426.nc + + + + + + +lnd/clm2/mappingdata/maps/ARCTICGRIS/map_1km-merge-10min_HYDRO1K-merge-nomask_to_ne0np4.ARCTICGRIS.ne30x8_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ARCTICGRIS/map_5x5min_nomask_to_ne0np4.ARCTICGRIS.ne30x8_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ARCTICGRIS/map_10x10min_nomask_to_ne0np4.ARCTICGRIS.ne30x8_nomask_aave_da_c200426.nc + + + + + + +lnd/clm2/mappingdata/maps/ne30np4.pg2/map_5x5min_nomask_to_ne30np4.pg2_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ne30np4.pg2/map_1km-merge-10min_HYDRO1K-merge-nomask_to_ne30np4.pg2_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ne30np4.pg2/map_10x10min_nomask_to_ne30np4.pg2_nomask_aave_da_c200426.nc + + + + + + +lnd/clm2/mappingdata/maps/ne30pg3/map_5x5min_nomask_to_ne30np4.pg3_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ne30pg3/map_10x10min_nomask_to_ne30np4.pg3_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ne30pg3/map_1km-merge-10min_HYDRO1K-merge-nomask_to_ne30np4.pg3_nomask_aave_da_c200426.nc + + + + + + +lnd/clm2/mappingdata/maps/ne120np4.pg2/map_10x10min_nomask_to_ne120np4.pg2_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ne120np4.pg2/map_5x5min_nomask_to_ne120np4.pg2_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ne120np4.pg2/map_1km-merge-10min_HYDRO1K-merge-nomask_to_ne120np4.pg2_nomask_aave_da_c200426.nc + + + + + + +lnd/clm2/mappingdata/maps/ne120np4.pg3/map_10x10min_nomask_to_ne120np4.pg3_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ne120np4.pg3/map_1km-merge-10min_HYDRO1K-merge-nomask_to_ne120np4.pg3_nomask_aave_da_c200426.nc +lnd/clm2/mappingdata/maps/ne120np4.pg3/map_5x5min_nomask_to_ne120np4.pg3_nomask_aave_da_c200426.nc + + @@ -2481,53 +2658,63 @@ lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr1850_c170824.nc -TWS_inversion -ZWT_inversion +TWS_inversion +TWS_inversion +ZWT_inversion .true. .true. -1.9x2.5 +0.9x1.25 +0.9x1.25 -lnd/clm2/paramdata/finundated_inversiondata_0.9x1.25_c170706.nc +lnd/clm2/paramdata/finundated_inversiondata_0.9x1.25_c170706.nc +lnd/clm2/paramdata/finundated_inversiondata_0.9x1_ESMFmesh_cdf5_130621.nc +lnd/clm2/paramdata/finundated_inversiondata_0.9x1_ESMFmesh_cdf5_130621.nc + - + -.false. -.false. -.false. -.false. - -.false. -.false. -.false. -.false. - -.true. -.true. -.true. -.true. +CENTURYKoven2013 +CENTURYKoven2013 +None +None -.true. -.true. -.false. -.false. +.false. +.true. +.false. +.true. -.false. +0 .false. +.false. +.false. .false. .false. .false. .false. +.false. +1 + +.true. +.false. +.true. +.false. +.false. +.false. .false. @@ -2544,4 +2731,14 @@ lnd/clm2/surfdata_map/surfdata_ne120np4_78pfts_CMIP6_simyr1850_c170824.ncgeneral + + + + +.false. + +lnd/clm2/paramdata/exice_init_0.125x0.125_c20220516.nc +lnd/clm2/paramdata/exice_init_0.125x0.125_ESMFmesh_cdf5_c20220802.nc +bilinear + diff --git a/bld/namelist_files/namelist_defaults_ctsm_tools.xml b/bld/namelist_files/namelist_defaults_ctsm_tools.xml index 9fa7b11d33..ff309c6fc9 100644 --- a/bld/namelist_files/namelist_defaults_ctsm_tools.xml +++ b/bld/namelist_files/namelist_defaults_ctsm_tools.xml @@ -38,65 +38,52 @@ attributes from the config_cache.xml file (with keys converted to upper-case). lnd/clm2/mappingdata/grids/SCRIPgrid_32x64_nomask_c110308.nc lnd/clm2/mappingdata/grids/SCRIPgrid_8x16_nomask_c110308.nc + +atm/cam/coords/C384_SCRIP_desc.181018.nc +atm/cam/coords/C192_SCRIP_desc.181018.nc +atm/cam/coords/C96_SCRIP_desc.181018.nc +atm/cam/coords/C48_SCRIP_desc.181018.nc +atm/cam/coords/C24_SCRIP_desc.181018.nc + -lnd/clm2/mappingdata/grids/SCRIPgrid_ne240np4_nomask_c091227.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_ne120np4_nomask_c101123.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_ne60np4_nomask_c100408.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_ne30np4_nomask_c101123.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_ne16np4_nomask_c110512.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_ne4np4_nomask_c110808.nc +lnd/clm2/mappingdata/grids/SCRIPgrid_ne240np4_nomask_c091227.nc +lnd/clm2/mappingdata/grids/SCRIPgrid_ne120np4_nomask_c101123.nc +lnd/clm2/mappingdata/grids/SCRIPgrid_ne60np4_nomask_c100408.nc +lnd/clm2/mappingdata/grids/SCRIPgrid_ne30np4_nomask_c101123.nc +lnd/clm2/mappingdata/grids/SCRIPgrid_ne16np4_nomask_c110512.nc + +atm/cam/coords/ne30pg2_scrip_c170608.nc +atm/cam/coords/ne30pg3_scrip_170604.nc +atm/cam/coords/ne120pg2_scrip_c170629.nc +atm/cam/coords/ne120pg3_scrip_c170628.nc + + +atm/cam/coords/ne0CONUSne30x8_scrip_c200107.nc +atm/cam/coords/ne0ARCTICGRISne30x8_scrip_c191209.nc +atm/cam/coords/ne0ARCTICne30x4_scrip_c191212.nc lnd/clm2/mappingdata/grids/SCRIPgrid_0.125x0.125_nomask_c140702.nc lnd/clm2/mappingdata/grids/SCRIPgrid_0.33x0.33_navy_c111207.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_0.1x0.1_nomask_c110712.nc - +lnd/clm2/mappingdata/grids/SCRIPgrid_360x720_nomask_c120830.nc + +lnd/clm2/mappingdata/grids/SCRIPgrid_0.5x0.5_nomask_c110308.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_0.5x0.5_AVHRR_c110228.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_0.5x0.5_MODIS_c110228.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_0.25x0.25_MODIS_c170321.nc +lnd/clm2/mappingdata/grids/SCRIPgrid_0.25x0.25_nomask_c200309.nc lnd/clm2/mappingdata/grids/SCRIPgrid_5x5min_nomask_c110530.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_5x5min_IGBP-GSDP_c110228.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_5x5min_ISRIC-WISE_c111114.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_5x5min_ORNL-Soil_c170630.nc + >lnd/clm2/mappingdata/grids/SCRIPgrid_5x5min_nomask_c200309.nc lnd/clm2/mappingdata/grids/SCRIPgrid_10x10min_nomask_c110228.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_10x10min_IGBPmergeICESatGIS_c110818.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_3minx3min_MODIS_c110915.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_3minx3min_MODISwcspsea_c151020.nc -64bit_offset -64bit_offset -lnd/clm2/mappingdata/grids/SCRIPgrid_3x3_USGS_c120912.nc -64bit_offset -lnd/clm2/mappingdata/grids/SCRIPgrid_3minx3min_LandScan2004_c120517.nc -64bit_offset -lnd/clm2/mappingdata/grids/SCRIPgrid_3minx3min_GLOBE-Gardner_c120922.nc -64bit_offset -lnd/clm2/mappingdata/grids/SCRIPgrid_3minx3min_GLOBE-Gardner-mergeGIS_c120922.nc -64bit_offset -lnd/clm2/mappingdata/grids/SCRIPgrid_360x720_cruncep_c120830.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_360x720_nomask_c120830.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_0.9x1.25_GRDC_c130307.nc +lnd/clm2/mappingdata/grids/SCRIPgrid_3x3min_nomask_c200309.nc +64bit_offset + @@ -108,9 +95,7 @@ attributes from the config_cache.xml file (with keys converted to upper-case). lnd/clm2/mappingdata/grids/SCRIPgrid_0.125nldas2_nomask_c190328.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_1x1pt_camdenNJ_nomask_c110308.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_1x1pt_brazil_nomask_c110308.nc -lnd/clm2/mappingdata/grids/SCRIPgrid_1x1pt_camdenNJ_nomask_c110308.nc +lnd/clm2/mappingdata/grids/SCRIPgrid_1x1pt_brazil_nomask_c20211211.nc lnd/clm2/mappingdata/grids/SCRIPgrid_1x1pt_mexicocityMEX_nomask_c110308.nc lnd/clm2/mappingdata/grids/SCRIPgrid_1x1pt_numaIA_nomask_c110308.nc lnd/clm2/mappingdata/grids/SCRIPgrid_1x1pt_smallvilleIA_nomask_c110308.nc @@ -126,46 +111,72 @@ attributes from the config_cache.xml file (with keys converted to upper-case). /glade/proj3/cseg/mapping/grids/tx1v1_090122.nc /glade/proj3/cseg/mapping/grids/tx0.1v2_090127.nc + + + -MODIS-wCsp -AVHRR -AVHRR -MODIS -MODIS -MODIS -MODIS -LandScan2004 -MODIS -ISRIC-WISE -GLOBE-Gardner -GLOBE-Gardner-mergeGIS +nomask +nomask +nomask +nomask +nomask +nomask +nomask +nomask +nomask +nomask +nomask +nomask +nomask +nomask nomask -USGS +nomask nomask nomask -IGBP-GSDP -AVHRR -AVHRR -ORNL-Soil -AVHRR +nomask +nomask +nomask +nomask +nomask HYDRO1K-merge-nomask -GRDC -cruncep +nomask 3x3min 0.5x0.5 0.5x0.5 0.25x0.25 +3x3min 0.25x0.25 3x3min 0.25x0.25 3x3min 0.25x0.25 +3x3min 5x5min 3x3min 10x10min -3x3min +0.125x0.125 5x5min 10x10min 5x5min @@ -175,7 +186,6 @@ attributes from the config_cache.xml file (with keys converted to upper-case). 0.5x0.5 1km-merge-10min 0.9x1.25 -360x720cru mksrf_flakwat @@ -198,14 +208,17 @@ attributes from the config_cache.xml file (with keys converted to upper-case). mksrf_fabm mksrf_ftopostats mksrf_fvic -mksrf_fch4 lnd/clm2/rawdata/mksrf_navyoro_20min.c010129.nc -lnd/clm2/rawdata/pftcftdynharv.0.05x0.05.LUH2.histsimyr2005.c190116/mksrf_lai_histclm52deg005_earthstatmirca_2005.c190119.nc + + +lnd/clm2/rawdata/pftcftlandusedynharv.0.25x0.25.MODIS.simyr1850-2015.c170412/mksrf_lai_78pfts_simyr2005.c170413.nc @@ -213,33 +226,40 @@ attributes from the config_cache.xml file (with keys converted to upper-case). lnd/clm2/rawdata/mksrf_irrig_2160x4320_simyr2000.c110527.nc -lnd/clm2/rawdata/mksrf_soitex.10level.c010119.nc -lnd/clm2/rawdata/pftcftdynharv.0.05x0.05.LUH2.histsimyr2005.c190116/mksrf_soilcolor_histclm52deg005_earthstatmirca_2005.c190116.nc + + +lnd/clm2/rawdata/pftcftlandusedynharv.0.25x0.25.MODIS.simyr1850-2015.c170412/mksrf_soilcolor_CMIP6_simyr2005.c170623.nc -lnd/clm2/rawdata/mksrf_organic_10level_5x5min_ISRIC-WISE-NCSCD_nlev7_c120830.nc -lnd/clm2/rawdata/mksrf_fmax_3x3min_USGS_c120911.nc +lnd/clm2/rawdata/mksrf_fmax_0.125x0.125_c200220.nc -lnd/clm2/rawdata/mksrf_LakePnDepth_3x3min_simyr2004_csplk_c151015.nc -lnd/clm2/rawdata/mksrf_lanwat.050425.nc -lnd/clm2/rawdata/mksrf_vocef_0.5x0.5_simyr2000.c110531.nc -lnd/clm2/rawdata/mksrf_urban_0.05x0.05_simyr2000.c120621.nc +lnd/clm2/rawdata/mksrf_urban_0.05x0.05_zerourbanpct.c181014.nc + -lnd/clm2/rawdata/mksrf_glacier_3x3min_simyr2000.c120926.nc -lnd/clm2/rawdata/mksrf_glacier_3x3min_simyr2000_mergeGreenland.c120921.nc lnd/clm2/rawdata/mksrf_GlacierRegion_10x10min_nomask_c170616.nc +>lnd/clm2/rawdata/mksrf_GlacierRegion_10x10min_nomask_c191120.nc lnd/clm2/rawdata/mksrf_topo.10min.c080912.nc +>lnd/clm2/rawdata/mksrf_topo.10min.c191120.nc -lnd/clm2/rawdata/mksrf_gdp_0.5x0.5_AVHRR_simyr2000.c130228.nc +lnd/clm2/rawdata/mksrf_gdp_0.5x0_zerogdp.c200413.nc -lnd/clm2/rawdata/mksrf_peatf_0.5x0.5_AVHRR_simyr2000.c130228.nc -lnd/clm2/rawdata/mksf_soilthk_5x5min_ORNL-Soil_simyr1900-2015_c170630.nc -lnd/clm2/rawdata/mksrf_abm_0.5x0.5_AVHRR_simyr2000.c130201.nc +lnd/clm2/rawdata/mksrf_abm_0.5x0.5_missingabm.c200413.nc + lnd/clm2/rawdata/mksrf_topostats_1km-merge-10min_HYDRO1K-merge-nomask_simyr2000.c130402.nc -lnd/clm2/rawdata/mksrf_vic_0.9x1.25_GRDC_simyr2000.c130307.nc -lnd/clm2/rawdata/mksrf_ch4inversion_360x720_cruncep_simyr2000.c130322.nc - - -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1850.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.05x0.05.LUH2.histsimyr2005.c190116/mksrf_landuse_clm52deg005_histLUH2_1850.c190119.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1851.c170629.nc +lnd/clm2/rawdata/pftcftdynharv.0.05x0.05.LUH2.histsimyr2005.c190116/mksrf_landuse_clm52deg005_histLUH2_2005.c190119.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1852.c170629.nc + + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_850.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1853.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_851.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1854.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_852.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1855.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_853.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1856.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_854.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1857.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_855.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1858.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_856.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1859.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_857.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1860.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_858.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1861.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_859.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1862.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_860.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1863.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_861.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1864.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_862.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1865.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_863.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1866.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_864.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1867.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_865.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1868.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_866.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1869.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_867.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1870.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_868.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1871.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_869.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1872.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_870.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1873.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_871.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1874.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_872.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1875.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_873.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1876.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_874.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1877.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_875.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1878.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_876.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1879.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_877.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1880.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_878.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1881.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_879.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1882.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_880.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1883.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_881.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1884.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_882.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1885.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_883.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1886.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_884.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1887.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_885.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1888.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_886.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1889.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_887.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1890.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_888.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1891.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_889.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1892.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_890.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1893.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_891.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1894.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_892.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1895.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_893.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1896.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_894.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1897.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_895.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1898.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_896.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1899.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_897.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1900.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_898.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1901.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_899.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1902.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_900.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1903.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_901.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1904.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_902.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1905.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_903.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1906.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_904.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1907.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_905.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1908.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_906.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1909.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_907.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1910.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_908.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1911.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_909.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1912.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_910.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1913.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_911.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1914.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_912.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1915.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_913.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1916.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_914.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1917.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_915.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1918.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_916.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1919.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_917.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1920.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_918.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1921.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_919.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1922.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_920.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1923.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_921.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1924.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_922.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1925.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_923.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1926.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_924.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1927.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_925.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1928.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_926.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1929.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_927.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1930.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_928.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1931.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_929.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1932.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_930.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1933.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_931.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1934.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_932.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1935.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_933.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1936.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_934.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1937.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_935.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1938.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_936.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1939.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_937.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1940.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_938.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1941.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_939.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1942.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_940.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1943.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_941.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1944.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_942.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1945.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_943.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1946.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_944.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1947.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_945.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1948.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_946.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1949.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_947.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1950.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_948.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1951.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_949.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1952.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_950.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1953.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_951.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1954.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_952.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1955.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_953.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1956.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_954.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1957.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_955.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1958.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_956.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1959.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_957.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1960.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_958.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1961.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_959.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1962.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_960.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1963.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_961.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1964.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_962.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1965.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_963.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1966.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_964.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1967.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_965.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1968.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_966.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1969.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_967.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1970.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_968.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1971.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_969.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1972.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_970.c171012.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1973.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_971.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_972.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_973.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_974.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_975.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_976.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_977.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_978.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_979.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_980.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_981.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_982.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_983.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_984.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_985.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_986.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_987.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_988.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_989.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_990.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_991.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_992.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_993.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_994.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_995.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_996.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_997.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_998.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_999.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1000.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1001.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1002.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1003.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1004.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1005.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1006.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1007.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1008.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1009.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1010.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1011.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1012.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1013.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1014.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1015.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1016.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1017.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1018.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1019.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1020.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1021.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1022.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1023.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1024.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1025.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1026.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1027.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1028.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1029.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1030.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1031.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1032.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1033.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1034.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1035.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1036.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1037.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1038.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1039.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1040.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1041.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1042.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1043.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1044.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1045.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1046.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1047.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1048.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1049.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1050.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1051.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1052.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1053.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1054.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1055.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1056.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1057.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1058.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1059.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1060.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1061.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1062.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1063.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1064.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1065.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1066.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1067.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1068.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1069.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1070.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1071.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1072.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1073.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1074.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1075.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1076.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1077.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1078.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1079.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1080.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1081.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1082.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1083.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1084.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1085.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1086.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1087.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1088.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1089.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1090.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1091.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1092.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1093.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1094.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1095.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1096.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1097.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1098.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1099.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1100.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1101.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1102.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1103.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1104.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1105.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1106.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1107.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1108.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1109.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1110.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1111.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1112.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1113.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1114.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1115.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1116.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1117.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1118.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1119.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1120.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1121.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1122.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1123.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1124.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1125.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1126.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1127.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1128.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1129.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1130.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1131.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1132.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1133.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1134.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1135.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1136.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1137.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1138.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1139.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1140.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1141.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1142.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1143.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1144.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1145.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1146.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1147.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1148.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1149.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1150.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1151.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1152.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1153.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1154.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1155.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1156.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1157.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1158.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1159.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1160.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1161.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1162.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1163.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1164.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1165.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1166.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1167.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1168.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1169.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1170.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1171.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1172.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1173.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1174.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1175.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1176.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1177.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1178.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1179.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1180.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1181.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1182.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1183.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1184.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1185.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1186.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1187.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1188.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1189.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1190.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1191.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1192.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1193.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1194.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1195.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1196.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1197.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1198.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1199.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1200.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1201.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1202.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1203.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1204.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1205.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1206.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1207.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1208.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1209.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1210.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1211.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1212.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1213.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1214.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1215.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1216.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1217.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1218.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1219.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1220.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1221.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1222.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1223.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1224.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1225.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1226.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1227.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1228.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1229.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1230.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1231.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1232.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1233.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1234.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1235.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1236.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1237.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1238.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1239.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1240.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1241.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1242.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1243.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1244.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1245.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1246.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1247.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1248.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1249.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1250.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1251.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1252.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1253.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1254.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1255.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1256.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1257.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1258.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1259.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1260.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1261.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1262.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1263.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1264.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1265.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1266.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1267.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1268.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1269.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1270.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1271.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1272.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1273.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1274.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1275.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1276.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1277.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1278.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1279.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1280.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1281.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1282.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1283.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1284.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1285.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1286.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1287.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1288.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1289.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1290.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1291.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1292.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1293.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1294.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1295.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1296.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1297.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1298.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1299.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1300.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1301.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1302.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1303.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1304.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1305.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1306.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1307.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1308.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1309.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1310.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1311.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1312.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1313.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1314.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1315.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1316.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1317.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1318.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1319.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1320.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1321.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1322.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1323.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1324.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1325.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1326.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1327.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1328.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1329.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1330.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1331.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1332.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1333.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1334.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1335.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1336.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1337.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1338.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1339.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1340.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1341.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1342.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1343.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1344.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1345.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1346.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1347.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1348.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1349.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1350.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1351.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1352.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1353.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1354.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1355.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1356.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1357.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1358.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1359.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1360.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1361.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1362.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1363.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1364.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1365.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1366.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1367.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1368.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1369.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1370.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1371.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1372.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1373.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1374.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1375.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1376.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1377.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1378.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1379.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1380.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1381.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1382.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1383.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1384.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1385.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1386.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1387.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1388.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1389.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1390.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1391.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1392.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1393.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1394.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1395.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1396.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1397.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1398.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1399.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1400.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1401.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1402.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1403.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1404.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1405.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1406.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1407.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1408.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1409.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1410.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1411.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1412.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1413.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1414.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1415.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1416.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1417.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1418.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1419.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1420.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1421.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1422.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1423.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1424.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1425.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1426.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1427.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1428.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1429.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1430.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1431.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1432.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1433.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1434.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1435.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1436.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1437.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1438.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1439.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1440.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1441.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1442.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1443.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1444.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1445.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1446.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1447.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1448.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1449.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1450.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1451.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1452.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1453.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1454.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1455.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1456.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1457.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1458.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1459.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1460.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1461.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1462.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1463.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1464.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1465.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1466.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1467.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1468.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1469.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1470.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1471.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1472.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1473.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1474.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1475.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1476.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1477.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1478.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1479.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1480.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1481.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1482.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1483.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1484.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1485.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1486.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1487.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1488.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1489.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1490.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1491.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1492.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1493.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1494.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1495.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1496.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1497.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1498.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1499.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1500.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1501.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1502.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1503.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1504.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1505.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1506.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1507.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1508.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1509.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1510.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1511.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1512.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1513.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1514.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1515.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1516.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1517.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1518.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1519.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1520.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1521.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1522.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1523.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1524.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1525.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1526.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1527.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1528.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1529.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1530.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1531.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1532.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1533.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1534.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1535.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1536.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1537.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1538.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1539.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1540.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1541.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1542.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1543.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1544.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1545.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1546.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1547.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1548.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1549.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1550.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1551.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1552.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1553.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1554.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1555.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1556.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1557.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1558.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1559.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1560.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1561.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1562.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1563.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1564.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1565.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1566.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1567.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1568.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1569.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1570.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1571.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1572.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1573.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1574.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1575.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1576.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1577.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1578.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1579.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1580.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1581.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1582.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1583.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1584.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1585.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1586.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1587.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1588.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1589.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1590.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1591.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1592.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1593.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1594.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1595.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1596.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1597.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1598.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1599.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1600.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1601.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1602.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1603.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1604.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1605.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1606.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1607.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1608.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1609.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1610.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1611.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1612.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1613.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1614.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1615.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1616.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1617.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1618.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1619.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1620.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1621.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1622.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1623.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1624.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1625.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1626.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1627.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1628.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1629.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1630.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1631.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1632.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1633.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1634.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1635.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1636.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1637.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1638.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1639.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1640.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1641.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1642.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1643.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1644.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1645.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1646.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1647.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1648.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1649.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1650.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1651.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1652.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1653.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1654.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1655.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1656.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1657.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1658.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1659.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1660.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1661.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1662.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1663.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1664.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1665.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1666.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1667.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1668.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1669.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1670.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1671.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1672.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1673.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1674.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1675.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1676.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1677.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1678.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1679.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1680.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1681.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1682.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1683.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1684.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1685.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1686.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1687.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1688.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1689.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1690.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1691.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1692.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1693.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1694.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1695.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1696.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1697.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1698.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1699.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1700.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1701.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1702.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1703.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1704.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1705.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1706.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1707.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1708.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1709.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1710.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1711.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1712.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1713.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1714.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1715.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1716.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1717.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1718.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1719.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1720.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1721.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1722.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1723.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1724.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1725.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1726.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1727.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1728.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1729.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1730.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1731.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1732.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1733.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1734.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1735.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1736.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1737.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1738.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1739.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1740.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1741.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1742.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1743.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1744.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1745.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1746.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1747.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1748.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1749.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1750.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1751.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1752.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1753.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1754.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1755.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1756.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1757.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1758.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1759.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1760.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1761.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1762.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1763.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1764.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1765.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1766.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1767.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1768.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1769.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1770.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1771.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1772.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1773.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1774.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1775.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1776.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1777.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1778.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1779.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1780.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1781.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1782.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1783.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1784.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1785.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1786.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1787.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1788.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1789.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1790.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1791.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1792.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1793.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1794.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1795.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1796.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1797.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1798.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1799.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1800.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1801.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1802.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1803.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1804.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1805.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1806.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1807.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1808.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1809.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1810.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1811.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1812.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1813.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1814.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1815.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1816.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1817.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1818.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1819.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1820.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1821.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1822.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1823.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1824.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1825.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1826.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1827.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1828.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1829.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1830.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1831.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1832.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1833.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1834.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1835.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1836.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1837.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1838.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1839.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1840.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1841.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1842.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1843.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1844.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1845.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1846.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1847.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1848.c171012.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr0850-1849.c171012/mksrf_landuse_histclm50_LUH2_1849.c171012.nc + + + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1850.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1851.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1852.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1853.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1854.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1855.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1856.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1857.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1858.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1859.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1860.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1861.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1862.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1863.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1864.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1865.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1866.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1867.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1868.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1869.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1870.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1871.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1872.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1873.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1874.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1875.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1876.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1877.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1878.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1879.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1880.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1881.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1882.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1883.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1884.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1885.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1886.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1887.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1888.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1889.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1890.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1891.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1892.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1893.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1894.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1895.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1896.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1897.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1898.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1899.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1900.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1901.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1902.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1903.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1904.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1905.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1906.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1907.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1908.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1909.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1910.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1911.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1912.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1913.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1914.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1915.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1916.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1917.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1918.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1919.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1920.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1921.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1922.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1923.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1924.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1925.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1926.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1927.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1928.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1929.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1930.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1931.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1932.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1933.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1934.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1935.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1936.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1937.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1938.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1939.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1940.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1941.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1942.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1943.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1944.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1945.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1946.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1947.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1948.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1949.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1950.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1951.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1952.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1953.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1954.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1955.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1956.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1957.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1958.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1959.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1960.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1961.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1962.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1963.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1964.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1965.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1966.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1967.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1968.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1969.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1970.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1971.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1972.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1973.c170629.nc lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1974.c170629.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1975.c170629.nc +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1975.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1976.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1977.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1978.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1979.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1980.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1981.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1982.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1983.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1984.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1985.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1986.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1987.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1988.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1989.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1990.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1991.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1992.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1993.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1994.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1995.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1996.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1997.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1998.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1999.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2000.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2001.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2002.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2003.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2004.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2005.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2006.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2007.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2008.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2009.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2010.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2011.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2012.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2013.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2014.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2015.c170629.nc + + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.simyrPtVg.c181106/mksrf_landuse_potvegclm50_LUH2.c181106.nc + + + + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2016.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2017.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2018.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2019.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2020.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2021.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2022.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2023.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2024.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2025.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2026.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2027.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2028.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2029.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2030.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2031.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2032.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2033.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2034.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2035.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2036.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2037.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2038.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2039.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2040.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2041.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2042.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2043.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2044.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2045.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2046.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2047.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2048.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2049.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2050.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2051.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2052.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2053.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2054.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2055.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2056.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2057.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2058.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2059.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2060.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2061.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2062.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2063.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2064.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2065.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2066.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2067.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2068.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2069.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2070.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2071.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2072.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2073.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2074.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2075.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2076.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2077.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2078.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2079.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2080.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2081.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2082.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2083.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2084.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2085.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2086.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2087.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2088.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2089.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2090.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2091.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2092.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2093.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2094.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2095.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2096.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2097.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2098.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2099.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-2.6.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP26_clm5_2100.c181217.nc + + + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2016.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2017.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2018.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2019.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2020.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2021.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2022.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2023.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2024.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2025.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2026.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2027.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2028.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2029.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2030.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2031.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2032.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2033.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2034.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2035.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2036.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2037.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2038.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2039.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2040.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2041.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2042.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2043.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2044.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2045.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2046.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2047.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2048.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2049.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2050.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2051.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2052.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2053.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2054.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2055.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2056.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2057.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2058.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2059.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2060.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2061.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2062.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2063.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2064.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2065.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2066.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2067.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2068.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2069.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2070.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2071.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2072.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2073.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2074.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2075.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2076.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2077.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2078.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2079.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2080.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2081.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2082.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2083.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2084.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2085.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2086.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2087.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2088.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2089.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2090.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2091.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2092.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2093.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2094.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2095.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2096.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2097.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2098.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2099.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP3-7.0.simyr2016-2100.c181217/mksrf_landuse_SSP3RCP70_clm5_2100.c181217.nc + + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2016.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2017.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2018.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2019.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2020.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2021.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2022.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2023.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2024.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2025.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2026.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2027.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2028.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2029.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2030.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2031.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2032.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2033.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2034.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2035.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2036.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2037.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2038.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2039.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2040.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2041.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2042.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2043.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2044.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2045.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2046.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2047.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2048.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2049.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2050.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2051.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2052.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2053.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2054.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2055.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2056.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2057.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2058.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2059.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2060.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2061.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2062.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2063.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2064.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2065.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2066.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2067.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2068.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2069.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2070.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2071.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2072.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2073.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2074.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2075.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2076.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2077.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2078.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2079.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2080.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2081.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2082.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2083.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2084.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2085.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2086.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2087.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2088.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2089.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2090.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2091.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2092.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2093.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2094.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2095.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2096.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2097.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2098.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2099.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP5RCP34_clm5_2100.c181217.nc + + + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2016.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2017.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2018.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2019.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2020.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2021.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2022.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2023.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2024.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2025.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2026.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2027.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2028.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2029.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2030.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2031.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2032.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2033.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2034.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2035.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2036.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2037.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2038.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2039.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2040.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2041.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2042.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2043.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2044.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2045.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2046.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2047.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2048.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2049.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2050.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2051.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2052.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2053.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2054.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2055.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2056.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2057.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2058.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2059.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2060.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2061.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2062.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2063.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2064.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2065.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2066.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2067.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2068.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2069.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2070.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2071.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2072.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2073.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2074.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2075.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2076.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2077.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2078.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2079.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2080.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2081.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2082.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2083.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2084.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2085.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2086.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2087.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2088.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2089.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2090.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2091.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2092.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2093.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2094.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2095.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2096.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2097.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2098.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2099.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP2-4.5.simyr2016-2100.c181217/mksrf_landuse_SSP2RCP45_clm5_2100.c181217.nc + + + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2016.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2017.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2018.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2019.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2020.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2021.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2022.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2023.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2024.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2025.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2026.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2027.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2028.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2029.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2030.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2031.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2032.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2033.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2034.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2035.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2036.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2037.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2038.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2039.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2040.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2041.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2042.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2043.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2044.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2045.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2046.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2047.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2048.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2049.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2050.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2051.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2052.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2053.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2054.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2055.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2056.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2057.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2058.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2059.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2060.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2061.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2062.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2063.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2064.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2065.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2066.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2067.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2068.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2069.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2070.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2071.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2072.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2073.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2074.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2075.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2076.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2077.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2078.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2079.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2080.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2081.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2082.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2083.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2084.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2085.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2086.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2087.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2088.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2089.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2090.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2091.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2092.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2093.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2094.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2095.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2096.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2097.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2098.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2099.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP1-1.9.simyr2016-2100.c181217/mksrf_landuse_SSP1RCP19_clm5_2100.c181217.nc + + + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2016.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2017.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2018.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2019.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2020.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2021.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2022.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2023.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2024.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2025.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2026.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2027.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2028.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2029.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2030.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2031.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2032.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2033.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2034.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2035.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2036.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2037.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2038.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2039.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2040.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2041.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2042.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2043.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2044.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2045.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2046.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2047.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2048.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2049.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2050.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2051.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2052.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2053.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2054.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2055.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2056.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2057.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2058.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2059.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2060.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1976.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2061.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1977.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2062.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1978.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2063.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1979.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2064.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1980.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2065.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1981.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2066.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1982.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2067.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1983.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2068.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1984.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2069.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1985.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2070.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1986.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2071.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1987.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2072.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1988.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2073.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1989.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2074.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1990.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2075.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1991.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2076.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1992.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2077.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1993.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2078.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1994.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2079.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1995.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2080.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1996.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2081.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1997.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2082.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1998.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2083.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_1999.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2084.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2000.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2085.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2001.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2086.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2002.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2087.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2003.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2088.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2004.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2089.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2005.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2090.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2006.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2091.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2007.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2092.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2008.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2093.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2009.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2094.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2010.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2095.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2011.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2096.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2012.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2097.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2013.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2098.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2014.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2099.c181217.nc -lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.LUH2.histsimyr1850-2015.c170629/mksrf_landuse_histclm50_LUH2_2015.c170629.nc + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-3.4.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP34_clm5_2100.c181217.nc + + + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2016.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2017.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2018.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2019.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2020.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2021.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2022.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2023.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2024.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2025.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2026.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2027.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2028.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2029.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2030.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2031.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2032.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2033.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2034.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2035.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2036.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2037.c181217.nc +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2038.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2039.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2040.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2041.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2042.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2043.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2044.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2045.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2046.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2047.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2048.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2049.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2050.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2051.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2052.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2053.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2054.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2055.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2056.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2057.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2058.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2059.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2060.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2061.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2062.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2063.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2064.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2065.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2066.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2067.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2068.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2069.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2070.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2071.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2072.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2073.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2074.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2075.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2076.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2077.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2078.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2079.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2080.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2081.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2082.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2083.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2084.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2085.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2086.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2087.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2088.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2089.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2090.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2091.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2092.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2093.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2094.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2095.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2096.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2097.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2098.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2099.c181217.nc + + +lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP4-6.0.simyr2016-2100.c181217/mksrf_landuse_SSP4RCP60_clm5_2100.c181217.nc + + + + + lnd/clm2/rawdata/pftcftdynharv.0.25x0.25.SSP5-8.5.simyr2016-2100.c171005/mksrf_landuse_SSP5RCP85_clm5_2016.c171005.nc @@ -966,7 +7403,25 @@ attributes from the config_cache.xml file (with keys converted to upper-case). -atm/waccm/lb/LBC_17500116-20150116_CMIP6_0p5degLat_c180905.nc -/gpfs/fs1/p/acom/acom-climate/cesm2/inputdata/atm/waccm/lb/LBC_1750-2015_CMIP6_GlobAnnAvg_c180905.nc +atm/waccm/lb/LBC_17500116-20150116_CMIP6_0p5degLat_c180905.nc +atm/waccm/lb/LBC_1750-2015_CMIP6_GlobAnnAvg_c180926.nc + +atm/waccm/lb/LBC_20140116-25001216_CMIP6_SSP119_0p5degLat_c190514.nc +atm/waccm/lb/LBC_20140116-25001216_CMIP6_SSP126_0p5degLat_c180905.nc +atm/waccm/lb/LBC_20140116-25001216_CMIP6_SSP245_0p5degLat_c180905.nc +atm/waccm/lb/LBC_20140116-25001216_CMIP6_SSP370_0p5degLat_c180905.nc +atm/waccm/lb/LBC_20140116-25001216_CMIP6_SSP119_0p5degLat_c190514.nc +atm/waccm/lb/LBC_20140116-25001216_CMIP6_SSP460_0p5degLat_c180905.nc +atm/waccm/lb/LBC_20140116-25001216_CMIP6_SSP534os_0p5degLat_c180905.nc +atm/waccm/lb/LBC_20140116-25001216_CMIP6_SSP585_0p5degLat_c180905.nc + +atm/waccm/lb/LBC_2014-2500_CMIP6_SSP119_0p5degLat_GlobAnnAvg_c190514.nc +atm/waccm/lb/LBC_2014-2500_CMIP6_SSP126_0p5degLat_GlobAnnAvg_c190301.nc +atm/waccm/lb/LBC_2014-2500_CMIP6_SSP245_0p5degLat_GlobAnnAvg_c190301.nc +atm/waccm/lb/LBC_2014-2500_CMIP6_SSP370_0p5degLat_GlobAnnAvg_c190301.nc +atm/waccm/lb/LBC_2014-2500_CMIP6_SSP434_0p5degLat_GlobAnnAvg_c190514.nc +atm/waccm/lb/LBC_2014-2500_CMIP6_SSP460_0p5degLat_GlobAnnAvg_c190301.nc +atm/waccm/lb/LBC_2014-2500_CMIP6_SSP534os_0p5degLat_GlobAnnAvg_c190301.nc +atm/waccm/lb/LBC_2014-2500_CMIP6_SSP585_0p5degLat_GlobAnnAvg_c190301.nc diff --git a/bld/namelist_files/namelist_defaults_drydep.xml b/bld/namelist_files/namelist_defaults_drydep.xml index e73f2987c2..9933d5cee3 100644 --- a/bld/namelist_files/namelist_defaults_drydep.xml +++ b/bld/namelist_files/namelist_defaults_drydep.xml @@ -17,12 +17,15 @@ attributes from the config_cache.xml file (with keys converted to upper-case). 'O3','NO2','HNO3','NO','HO2NO2','CH3OOH','CH2O','CO','H2O2','CH3COOOH','PAN','MPAN','C2H5OOH','ONIT','POOH','C3H7OOH','ROOH','CH3COCHO','CH3COCH3','Pb','ONITR','MACROOH','XOOH','ISOPOOH','CH3OH','C2H5OH','CH3CHO','GLYALD','HYAC','HYDRALD','ALKOOH','MEKOOH','TOLOOH','TERPOOH','CH3COOH','CB1','CB2','OC1','OC2','SOA','SO2','SO4','NH3','NH4NO3' -xactive_lnd + + +atm/cam/chem/trop_mozart/dvel/dep_data_c201019.nc 'ISOP = isoprene', 'C10H16 = pinene_a + carene_3 + thujene_a', 'CH3OH = methanol', 'C2H5OH = ethanol', 'CH2O = formaldehyde', 'CH3CHO = acetaldehyde', 'CH3COOH = acetic_acid', 'CH3COCH3 = acetone' +atm/cam/chem/trop_mozart/emis/megan21_emis_factors_78pft_c20161108.nc atm/cam/chem/trop_mozart/emis/megan21_emis_factors_78pft_c20161108.nc atm/cam/chem/trop_mozart/emis/megan21_emis_factors_78pft_c20161108.nc diff --git a/bld/namelist_files/namelist_defaults_overall.xml b/bld/namelist_files/namelist_defaults_overall.xml index f7f2d041c2..c4ccac6467 100644 --- a/bld/namelist_files/namelist_defaults_overall.xml +++ b/bld/namelist_files/namelist_defaults_overall.xml @@ -12,14 +12,41 @@ in a namelist, but they are default values that will help determine default values for namelists. --> - -startup -startup -arb_ic -arb_ic -arb_ic -arb_ic -cold + + +arb_ic +arb_ic +arb_ic +arb_ic +arb_ic +arb_ic +startup +startup +startup +startup +startup +startup +arb_ic +arb_ic +arb_ic +arb_ic +cold + +arb_ic + + + +flanduse_timeseries +flanduse_timeseries + /fs/cgd/csm/inputdata @@ -28,7 +55,6 @@ determine default values for namelists. 1.9x2.5 1x1_brazil 5x5_amazon -1x1_camdenNJ 1x1_vancouverCAN 1x1_mexicocityMEX 1x1_asphaltjungleNJ @@ -42,32 +68,31 @@ determine default values for namelists. constant - -1 -0 + +0 1 0 - --999.9 + +hist gx1v6 gx1v6 -gx1v6 -gx1v6 +gx1v7 +gx1v7 gx3v7 gx3v7 -USGS +gx3v7 cruncep -USGS -USGS +gx1v7 +gx1v7 gx3v7 -USGS -USGS +gx3v7 +gx3v7 T62 @@ -77,7 +102,6 @@ determine default values for namelists. nldas2 navy -navy navy navy navy @@ -85,7 +109,7 @@ determine default values for namelists. test navy test -gx1v6 +gx1v7 diff --git a/bld/namelist_files/namelist_defaults_usr_files.xml b/bld/namelist_files/namelist_defaults_usr_files.xml index 8ef06f8014..41e6dcd47b 100644 --- a/bld/namelist_files/namelist_defaults_usr_files.xml +++ b/bld/namelist_files/namelist_defaults_usr_files.xml @@ -23,13 +23,14 @@ provided they are in the valid list expressed above. lnd/clm2/initdata/clmi.${clm_usr_name}_${mask}_simyr${sim_year}.nc +lnd/clm2/surfdata/surfdata_${clm_usr_name}_simyr${sim_year}.nc lnd/clm2/surfdata_map/surfdata_${clm_usr_name}_simyr${sim_year}.nc -null -lnd/clm2/surfdata/landuse.timeseries_${clm_usr_name}_simyr${sim_year_range}.nc -lnd/clm2/surfdata/landuse.timeseries_${clm_usr_name}_simyr1849-2006.nc -lnd/clm2/surfdata/landuse.timeseries_rcp${rcp}_${clm_usr_name}_simyr${sim_year_range}.nc -lnd/clm2/surfdata/landuse.timeseries_rcp${rcp}_${clm_usr_name}_simyr1849-2006.nc +null +lnd/clm2/surfdata/landuse.timeseries_${clm_usr_name}_simyr${sim_year_range}.nc +lnd/clm2/surfdata/landuse.timeseries_${clm_usr_name}_simyr1849-2006.nc +lnd/clm2/surfdata/landuse.timeseries_${ssp_rcp}_${clm_usr_name}_simyr${sim_year_range}.nc +lnd/clm2/surfdata/landuse.timeseries_${ssp_rcp}_${clm_usr_name}_simyr1849-2006.nc diff --git a/bld/namelist_files/namelist_definition_ctsm.xml b/bld/namelist_files/namelist_definition_ctsm.xml index 16ea3aa5ce..928a037aa0 100644 --- a/bld/namelist_files/namelist_definition_ctsm.xml +++ b/bld/namelist_files/namelist_definition_ctsm.xml @@ -8,16 +8,6 @@ - -If use_init_interp is set to .true., interpinic will be called to interpolate -the file given by finidat, creating the output file specified by finidat_interp_dest. - - + +Component name to use in history and restart files + + - Supplemental Nitrogen mode and for what type of vegetation it's turned on for. @@ -108,6 +106,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) @@ -198,12 +204,13 @@ formulation (1). + group="cnfire_inparm" valid_values="nofire,li2014qianfrc,li2016crufrc,li2021gswpfrc" > The method type to use for CNFire nofire: Turn fire effects off li2014qianfrc: Reference paper Li, et. al.(2014) tuned with QIAN atmospheric forcing li2016crufrc: Reference paper Li, et. al.(2016) tuned with CRU-NCEP atmospheric forcing +li2021gswpfrc: Reference paper Li, et. al.(2021?) tuned with GSWP3 atmospheric forcing - +Combustion completeness factor for litter (unitless) + + + -Combustion completeness factor (for litter and CWD[Course Woody Debris]) (unitless) +Combustion completeness factor for CWD[Course Woody Debris] (unitless) - -Initial stocks of Carbon to use in soil organic matter pools for CENTURY decomposition - - - -Soil depth to place initial stocks of Carbon in soil organic matter pools for CENTURY decomposition - - Slope of free living Nitrogen fixation with annual ET @@ -316,6 +318,11 @@ Intercept of free living Nitrogen fixation with zero annual ET If TRUE use the undercanopy stability term used with CLM4.5 (Sakaguchi&Zeng, 2008) + +If TRUE, include biomass heat storage in canopy energy balance. + + Max number of iterations used in subr. CanopyFluxes. For many years, 40 was the hardwired default value. @@ -482,7 +489,7 @@ If TRUE, irrigation will be active. If TRUE, fsat will be set to zero for crop columns. - Number of multiple elevation classes over glacier points. @@ -619,54 +626,96 @@ The maximum value to use for zeta under stable conditions baseline proportion of nitrogen allocated for electron transport (J) - -Time step (seconds) - - Toggle to turn on the FATES model -(use_fates= '.true.' is EXPERIMENTAL NOT SUPPORTED!) +Functionally Assembled Terrestrial Ecosystem Simulator (FATES) - -Toggle to turn on spitfire module for modeling fire (only relevant if FATES is being used). + +Switch deciding which nutrient model to use in FATES. +(Only relevant if FATES is on) + + + +Toggle to turn on the tree damage module in FATES +(Only relevant if FATES is on) + + + +Turn on spitfire module to simulate fire by setting fates_spitfire_mode > 0. +Allowed values are: + 0 : Simulations of fire are off + 1 : use a global constant lightning rate found in fates_params. + 2 : use an external lightning dataset. + 3 : use an external confirmed ignitions dataset (not available through standard CSEM dataset collection). + 4 : use external lightning and population datasets to simulate both natural and anthropogenic + 5 : use gross domestic production and population datasets to simulate anthropogenic fire supression +ignitions. +(Only relevant if FATES is on) + + + +Toggle to turn on fixed biogeography mode +(Only relevant if FATES is on) + + + +Toggle to turn on no competition mode (only relevant if FATES is being used). + + + + +Toggle to turn on FATES satellite phenology mode (only relevant if FATES is being used). -Toggle to turn on the logging module (only relevant if FATES is being used). +Toggle to turn on the logging module +(Only relevant if FATES is on) -Toggle to turn on plant hydraulics (only relevant if FATES is on). -(use_fates_planthydro=".true." is EXPERIMENTAL NOT SUPPORTED! Nor is it Tested!) + group="clm_inparm" valid_values="" value=".false."> +Toggle to turn on plant hydraulics +(Only relevant if FATES is on) + + + +Toggle to turn on cohort age tracking (by default FATES only tracks age of patches) +(Only relevant if FATES is on). Toggle to turn on Static Stand Structure Mode (only relevant if FATES is being used). -(use_fates_ed_st3=".true." is EXPERIMENTAL NOT SUPPORTED! Nor is it Tested!) +(Only relevant if FATES is on). -Toggle to turn on prescribed physiology (only relevant if FATES is being used). +Toggle to turn on prescribed physiology +(Only relevant if FATES is on). -Toggle to turn on inventory initialization to startup FATES (only relevant if FATES is being used). -(use_fates_inventory_init=".true." is EXPERIMENTAL NOT SUPPORTED! Nor is it Tested!) +Toggle to turn on inventory initialization to startup FATES +(Only relevant if FATES is on). Full pathname to the inventory initialization control file. (Required, if use_fates_inventory_init=T) +(Only relevant if FATES is on). Full pathname datafile with fates parameters +(Only relevant if FATES is on). - + +If TRUE, write list of all output fields to separate file for documentation purposes + + + Per file averaging flag. 'A' (average over history period) 'I' (instantaneous) 'X' (maximum over history period) 'M' (minimum over history period) + 'LXXXXX' (local solar time at XXXXX seconds of day) - -If TRUE, write diagnostic of global radiative temperature written to CLM log file. - - Whether to use subgrid fluxes for snow @@ -926,6 +977,42 @@ Whether to use subgrid fluxes for snow Whether snow on the vegetation canopy affects the radiation/albedo calculations + +Whether to run some tests of ncdio_pio as part of the model run. This is +typically only used in automated tests. + + + +If true, allocate memory for and use a second crop grain pool. This is +meant only for software testing of infrastructure to support the AgSys +crop model integration. This option can be dropped once AgSys is +integrated and we have tests of it. + + + +If true, allocate memory for two crop reproductive structure pools and +send all reproductive C and N to the second reproductive structure pool +instead of the grain pool. This is meant only for software testing of +infrastructure to support the AgSys crop model integration. This option +can be dropped once AgSys is integrated and we have tests of it. + + + +If true, do NOT use grain C/N to replenish the crop seed deficits. This +is needed when doing software testing to verify that we can get +bit-for-bit identical answers when using a reproductive structure pool +as when using a grain pool (in conjunction with +for_testing_use_repr_structure_pool). We do this testing to have some +tests of the infrastructure to support the AgSys crop model integration. +This option can be dropped if/when we stop doing this software testing, +e.g., because we have integrated AgSys and have tests of it that make +these software infrastructure tests obsolete. + + @@ -956,49 +1043,23 @@ Requires the CN model to work (either CN or CNDV). group="clm_inparm" valid_values="" value=".false."> Nitrification/denitrification splits the prognostic mineral N pool into two mineral N pools: NO3 and NH4, and includes the transformations between them. -Requires the CN model to work (either CN or CNDV). +Turned on for BGC +FATES currently allows it to be true or false, but will be hardwired to true later Multiplier for heterotrophic respiration for max denitrification rates -(ONLY used if use_nitrif_denitrif is enabled) Exponent power for heterotrophic respiration for max denitrification rates -(ONLY used if use_nitrif_denitrif is enabled) - - - -Multiplier for nitrate concentration for max denitrification rates -(ONLY used if use_nitrif_denitrif is enabled) - - - -Exponent power for nitrate concentrationfor max denitrification rates -(ONLY used if use_nitrif_denitrif is enabled) Maximum nitrification rate constant (1/s) -(ONLY used if use_nitrif_denitrif is enabled) - - - -Turn on vertical soil carbon. -Requires the CN or FATES model to work (either CN or CNDV). - - - -Use parameters for decomposition from the CENTURY Carbon model -Requires the CN or FATES model to work (either CN or CNDV). + group="crop_inparm" valid_values="constant,varytropicsbylat" value="constant"> Type of mapping to use for base temperature for prognostic crop model constant = Just use baset from the PFT parameter file varytropicsbylat = Vary the tropics by latitude + group="crop_inparm" valid_values="" value="0.4d00"> Only used when baset_mapping == varytropicsbylat Slope with latitude in degrees to vary tropical baset by + group="crop_inparm" valid_values="" value="12.0d00"> Only used when baset_mapping == varytropicsbylat Intercept at zero latitude to add to baset from the PFT parameter file @@ -1058,9 +1119,40 @@ Initial seed Carbon to use at planting (only used when CN is on as well as crop) - -Toggle to turn on ozone stress + + Parameter to set the type of ozone vegetation stress method + unset = (default) ozone stress vegetation method is off + stress_lombardozzi2015 = ozone stress vegetation functions from Danica Lombardozzi 2015 + stress_falk = ozone stress vegetation functions from Stefanie Falk (issue #1224) +Default: "unset" + + + +Phenology onset depends on the vegetation type +(only used when CN is on) + + + +Set to .true. in order to override crop harvesting logic and to instead harvest the day before the next sowing date. Used to generate growing-degree day outputs that can be used with an external script to generate new GDD requirement ("cultivar") files. + + + +Set to .false. in order to ignore crop PFT parameter for maximum growing season length (mxmat). Must be set to .false. when generate_crop_gdds is .true. + + + +Method for determining what the minimum critical day length for seasonal decidious leaf offset depends on +Constant ----------- constant value of crit_dayl from parameter file (value from White 2001) +DependsOnLat ------- Higher values at high latitudes down to value from parameter file for temperate and equatorial regions + (L. Birch et. al, GMD 2021) +DependsOnVeg ------- Arctic vegetation with higher value and temperate vegetation with crit_dayl from parameter file +DependsOnLatAndVeg - Arctic vegetation depends on latitude as above, but temperate vegetation fixed at crit_dayl value from parameter file +(only used when CN is on) - -Max number of plant functional types in naturally vegetated landunit. - - @@ -1110,37 +1197,37 @@ If true, this directs the model to collapse the urban landunits to the dominant Percentage threshold above which the model keeps the soil landunit. Selecting the value 0 means DO NOTHING. Default: 0 Percentage threshold above which the model keeps the crop landunit. Selecting the value 0 means DO NOTHING. Default: 0 Percentage threshold above which the model keeps the glacier landunit. Selecting the value 0 means DO NOTHING. Default: 0 Percentage threshold above which the model keeps the lake landunit. Selecting the value 0 means DO NOTHING. Default: 0 Percentage threshold above which the model keeps the wetland landunit. Selecting the value 0 means DO NOTHING. Default: 0 Percentage threshold above which the model keeps the urban landunits. Selecting the value 0 means DO NOTHING. If collapse_urban = .false., the same threshold will apply to all three urban landunits if they are present. If collapse_urban = .true., this threshold will apply to the single collapsed urban landunit if presnet. Default: 0 @@ -1194,7 +1281,7 @@ Output of "git describe" to give the tag/commit the version being used correspon + valid_values="mksrf_fsoitex,mksrf_forganic,mksrf_flakwat,mksrf_fwetlnd,mksrf_fmax,mksrf_fmax,mksrf_fglacier,mksrf_fglacierregion,mksrf_fvocef,mksrf_furbtopo,firrig,mksrf_furban,mksrf_fvegtyp,mksrf_fhrvtyp,mksrf_fsoicol,mksrf_flai,mksrf_fgdp,mksrf_fpeat,mksrf_fsoildepth,mksrf_fabm,mksrf_ftopostats,mksrf_fvic" > Filename for mksurfdata_map to remap raw data into the output surface dataset @@ -1332,11 +1419,6 @@ Topography statistics dataset for mksurfdata VIC parameters dataset for mksurfdata - -Inversion-derived CH4 parameters dataset for mksurfdata - - If TRUE, output variables in double precision for mksurfdata @@ -1504,7 +1586,7 @@ If TRUE, repartition rain/snow from atmosphere based on temperature. -If TRUE, downscale longwave radiation over glc_mec landunits. +If TRUE, downscale longwave radiation over glacier landunits. This downscaling is conservative. Default: .true. @@ -1591,6 +1673,11 @@ Simulation year that aligns with stream_year_first_ndep value Filename of input stream data for Nitrogen Deposition + +Stream meshfile for Nitrogen Deposition data + + Time interpolation mode to determine how to handle data before and after the times in the file @@ -1599,6 +1686,11 @@ Time interpolation mode to determine how to handle data before and after the tim limit = Only use the data within the times available -- abort if the model tries to go outside it + +Time interpolation method to use for Nitrogen Deposition + + Colon delimited list of variables to read from the streams file for nitrogen deposition @@ -1617,7 +1709,7 @@ Mapping method from Nitrogen deposition input file to the model resolution - + + +mesh filename of input stream data for finundated inversion of observed (from Prigent dataset) +to hydrologic variables (either TWS or ZWT) + + + + +Toggle to turn on use of input prescribed soil moisture streams rather than have CLM prognose it (EXPERIMENTAL) + + + +First year to loop over for prescribed soil moisture streams data + + + +Last year to loop over for prescribed soil moisture streams data + + + +Simulation year that aligns with stream_year_first_soilm value + + + +Filename of input stream data for prescribed soil moisture streams data + + + +Time interpolation method to use for prescribed soil moisture streams data + + + +Offset in time coordinate for soil moisture streams (sec) + + + +If false will abort if using soil moisture streams and find a point where the model shows H2OSOI_VOL +should be set because it's vegetated, but the input soilm streams dataset shows that point is missing. +If true, will ignore the prescribed soilm data for that point and let the model run for that point without +prescribed data. + + @@ -1657,6 +1799,16 @@ Simulation year that aligns with stream_year_first_lai value Filename of input stream data for LAI + +Filename of input stream data for LAI + + + +Time interpolation method to use with LAI streams + + Mapping method from LAI input file to the model resolution @@ -1668,6 +1820,41 @@ Mapping method from LAI input file to the model resolution copy = copy using the same indices + + + + + + +First year to loop over for crop calendar data + + + +Last year to loop over for crop calendar data + + + +Simulation year that aligns with stream_year_first_cropcal value + + + +Filename of input stream data for sowing dates + + + +Filename of input stream data for cultivar growing degree-day targets + + + +Filename of input stream data for crop calendar inputs + + @@ -1693,6 +1880,16 @@ Simulation year that aligns with stream_year_first_lightng value Filename of input stream data for Lightning + +Stream meshfile for Nitrogen Deposition data + + + +Time interpolation method to use with Lightning streams + + Mapping method from Lightning input file to the model resolution @@ -1730,6 +1927,16 @@ Simulation year that aligns with stream_year_first_popdens value Filename of input stream data for human population density + +mesh file for input stream data for human population density + + + +Time interpolation method to use with human population density streams + + Mapping method from human population density input file to the model resolution @@ -1767,6 +1974,16 @@ Simulation year that aligns with stream_year_first_urbantv value Filename of input stream data for urban time varying + +mesh filename of input stream data for urban time varying + + + +Time interpolation method to use with urban time varying streams + + Mapping method from urban time varying input file to the model resolution @@ -1808,7 +2025,7 @@ Land mask description for mksurfdata input files + valid_values="0.25x0.25,0.5x0.5,10x10min,5x5min,360x720cru,0.9x1.25,19basin,1km-merge-10min"> Horizontal grid resolutions for mksurfdata input files @@ -1818,16 +2035,16 @@ Horizontal grid resolutions for mksurfdata input files + group="default_settings" valid_values="none,0.9x1.25" > Resolution of finundated inversion streams dataset (stream_fldfilename_ch4finundated) to use for methane model (only applies when CN and methane model are turned on) -Resolution of Lightning dataset to use for CN fire model -(only applies when CN and the CN fire model are turned on) + group="default_settings" valid_values="none,360x720,106x174,94x192"> +Resolution of Lightning dataset to use for CN or FATES fire model +(only applies when CN or FATES and the fire model is turned on) + valid_values="512x1024,360x720cru,128x256,64x128,48x96,94x192,0.23x0.31,0.47x0.63,0.9x1.25,1.9x2.5,2.5x3.33,4x5,10x15,0.125nldas2,5x5_amazon,1x1_vancouverCAN,1x1_mexicocityMEX,1x1_asphaltjungleNJ,1x1_brazil,1x1_urbanc_alpha,1x1_numaIA,1x1_smallvilleIA,0.25x0.25,0.5x0.5,3x3min,5x5min,10x10min,0.33x0.33,0.125x0.125,ne3np4.pg3,ne4np4,ne5np4.pg3,ne16np4,ne16np4.pg3,ne30np4.pg2,ne30np4.pg3,ne30np4,ne60np4,ne120np4,ne120np4.pg2,ne120np4.pg3,ne0np4CONUS.ne30x8,ne0np4.ARCTIC.ne30x4,ne0np4.ARCTICGRIS.ne30x8,ne240np4,1km-merge-10min,C24,C48,C96,C192,C384,mpasa480,mpasa240,mpasa120,mpasa60,mpasa30,mpasa15"> Horizontal resolutions -Note: 0.1x0.1, 0.25x0.25, 0.5x0.5, 5x5min, 10x10min, 3x3min and 0.33x0.33 are only used for CLM tools - - - -Representative concentration pathway for future scenarios [radiative forcing at peak or 2100 in W/m^2] --999.9 means do NOT use a future scenario, just use historical data. +Note: 0.25x0.25, 0.5x0.5, 5x5min, 10x10min, 3x3min, 1km-merge-10min and 0.33x0.33 are only used for CLM toolsI - -Shared Socioeconomic Pathway and Representative Concentration Pathway combination for future scenarios + valid_values="hist,SSP1-2.6,SSP3-7.0,SSP5-3.4,SSP2-4.5,SSP1-1.9,SSP4-3.4,SSP4-6.0,SSP5-8.5"> +Shared Socioeconomic Pathway (SSP) and Representative Concentration Pathway (RCP) combination for future scenarios The form is SSPn-m.m Where n is the SSP number and m.m is RCP radiative forcing at peak or 2100 in W/m^2 +n is just the whole number of the specific SSP scenario. The lower numbers have higher mitigation +- the higher numbers less mitigation, more than one SSP can result in the same RCP forcing hist means do NOT use a future scenario, just use historical data. + valid_values="USGS,gx3v7,gx1v6,gx1v7,navy,test,tx0.1v2,tx0.1v3,tx1v1,T62,cruncep,nldas2"> Land mask description + valid_values="clm4_5_CRUv7,clm4_5_GSWP3v1,clm4_5_cam6.0,clm5_0_cam6.0,clm5_0_CRUv7,clm5_0_GSWP3v1,clm5_1_GSWP3v1"> General configuration of model version and atmospheric forcing to tune the model to run under. This sets the model to run with constants and initial conditions that were set to run well under the configuration of model version and atmospheric forcing. To run well constants would need to be changed @@ -1894,19 +2105,20 @@ to run with a different type of atmospheric forcing. If 1, turn on the MEGAN model for BVOC's (Biogenic Volitile Organic Compounds) - +"PtVg,1000,850,1100,1350,1600,1850,1855,1865,1875,1885,1895,1905,1915,1925,1935,1945,1955,1965,1975,1979,1980,1982,1985,1995,2000,2005,2010,2013,2015,2018,2025,2035,2045,2055,2065,2075,2085,2095,2105"> Year to simulate and to provide datasets for (such as surface datasets, initial conditions, aerosol-deposition, Nitrogen deposition rates etc.) A sim_year of 1000 corresponds to data used for testing only, NOT corresponding to any real datasets. -A sim_year greater than 2005 corresponds to rcp scenario data +A sim_year greater than 2015 corresponds to ssp_rcp scenario data +A sim_year of PtVg refers to the Potential Vegetation dataset, that doesn't include human influences Most years are only used for clm_tools and there aren't CLM datasets that correspond to them. CLM datasets exist for years: 1000 (for testing), 1850, and 2000 +"constant,1000-1002,1000-1004,850-1850,1850-1855,1850-2000,1850-2005,1850-2100,1980-2015,2000-2025,2000-2100"> Range of years to simulate transitory datasets for (such as dynamic: land-use datasets, aerosol-deposition, Nitrogen deposition rates etc.) Constant means simulation will be held at a constant year given in sim_year. A sim_year_range of 1000-1002 or 1000-1004 corresponds to data used for testing only, NOT corresponding to any real datasets. @@ -1933,8 +2145,8 @@ Attributes to use when looking for an initial condition file (finidat) if interp How close in years to use when looking for an initial condition file (finidat) if interpolation is turned on (use_init_interp is .true.) - + Simulation years you can look for in initial condition files (finidat) if interpolation is turned on (use_init_interp is .true.) @@ -1958,7 +2170,7 @@ Command line arguement for biogeochemistry mode for CLM4.5 Nitrification/De-nitrification Methane model Vertically resolved Carbon - fates = FATES/ED ecosystem demography model with below ground BGC: + fates = FATES Functionally Assembled Terrestrial Ecosystem Simulator (ecosystem demography model with below ground BGC): @@ -1991,12 +2203,6 @@ Base advective flux (downwards) for SOM. Maximum depth to mix soils to by croturbation, in permafrost soils. - - -E-folding depth over which decomposition is slowed with depth in all soils. - - If TRUE, reduce heterotrophic respiration according to available oxygen predicted by CH4 submodel. @@ -2031,12 +2237,29 @@ If true, no denitrification or nitrification in frozen soil layers. Number of days over which to use exponential relaxation of NPP in N fixation calculation + + +Soil decomposition method + None -- No soil decomposition is done + CENTURYKoven2013 -- CENTURY model in CTSM from Koven et. al. 2013 + MIMICSWieder2015 -- MIMICS model in CTSM from Wieder et. al. 2015 + +An active soil decomposition method requires the BGC or FATES model to work +And both BGC and FATES models require an active soil decomposition model + + Flag to reseed any dead plants on startup from reading the initial conditions file + +Harvest the XSMR pool at crop harvest time to the atmosphere slowly at an exponential rate + + @@ -2124,36 +2347,6 @@ Allow the CN ratio to flexibly change with the simulation, rather than being fix How much Carbon to initialize vegetation pools (leafc/frootc and storage) to when -- Michaelis Menten nitrogen uptake kinetics is on - - GPP downregulation for use_flexibleCN option -(EXPERIMENTAL and NOT tested) - - - - Plant nitrogen demand for use_flexibleCN option -(EXPERIMENTAL and NOT tested) - - - - Michaelis Menten substrate limitation for use_flexibleCN option -(EXPERIMENTAL and NOT tested) - - - - Michaelis Menten nitrogen limitation for use_flexibleCN option -(EXPERIMENTAL and NOT tested) - - - - Michaelis Menten temperature limitation for use_flexibleCN option -(EXPERIMENTAL and NOT tested) - - Flexible CN ratio used for Phenology @@ -2174,19 +2367,6 @@ Vcmax calculation for Photosynthesis vcmax_opt = 0 Based on canopy top and foilage Nitrogen limitation factor from params file (clm4.5) - -Residual option for flexible-CN -(EXPERIMENTAL and NOT tested) - - - -Partition option for flexible-CN - CN_partition_opt = 1 -(EXPERIMENTAL and NOT tested) - - Evergreen phenology option for CNPhenology @@ -2326,6 +2506,18 @@ If TRUE, apply transient crops from flanduse_timeseries file. (Only valid for transient runs, where there is a flanduse_timeseries file.) + +If TRUE, apply transient lakes from flanduse_timeseries file. +(Only valid for transient runs, where there is a flanduse_timeseries file.) + + + +If TRUE, apply transient urban from flanduse_timeseries file. +(Only valid for transient runs, where there is a flanduse_timeseries file.) + + If TRUE, apply harvest from flanduse_timeseries file. @@ -2333,6 +2525,13 @@ If TRUE, apply harvest from flanduse_timeseries file. (Also, only valid for use_cn = true.) + +If TRUE, apply gross unrepresented landuse/land-cover change from flanduse_timeseries file. +(Only valid for transient runs, where there is a flanduse_timeseries file.) +(Also, only valid for use_cn = true.) + + If TRUE, reset baseline values of total column water and energy in the @@ -2521,11 +2720,6 @@ Snow compaction overburden exponential factor (1/K) Not used for snow_overburden_compaction_method=Vionnet2012 - -Minimum wind speed tht results in compaction (m/s) - - maximum warm (at freezing) fresh snow effective radius [microns] @@ -2605,6 +2799,24 @@ the related bulk quantities. If .true., run with water isotopes + + + + + +Parameterization/parameters to use for surface roughness +ZengWang2007: Zeng and Wang 2007 +Meier2022: Meier et al. in prep. 2022 + + + +If FALSE use constant snow z0m +If TRUE use parameterization of snow z0m as a function of accumulated +snow melt of Brock et al. (2006) + + @@ -2659,4 +2871,38 @@ use case.) + + + + +If TRUE turn on the excess ice physics, (Lee et al., 2014; Cai et al., 2020) + + + +If TRUE and use_excess_ice is TRUE, use the excess ice stream to determine the initial values of the excess ice field +if FALSE and use_excess_ice is TRUE, expect excess ice to come from the initial conditions or restart file +Expect to be FALSE is use_excess_ice is FALSE + + + +Filename of input stream data for excess ice data + + + +mesh filename of input stream data for excess ice + + + +Mapping method from excess ice input stream data to the model resolution + bilinear = bilinear interpolation + nn = nearest neighbor + none = no interpolation + + + diff --git a/bld/namelist_files/namelist_definition_drv_flds.xml b/bld/namelist_files/namelist_definition_drv_flds.xml index b54082981a..088f5c5fa9 100644 --- a/bld/namelist_files/namelist_definition_drv_flds.xml +++ b/bld/namelist_files/namelist_definition_drv_flds.xml @@ -63,21 +63,7 @@ - - Where dry deposition is calculated (from land, atmosphere, or from a table) - This specifies the method used to calculate dry - deposition velocities of gas-phase chemical species. The available methods - are: - 'table' - prescribed method in CAM - 'xactive_atm' - interactive method in CAM - 'xactive_lnd' - interactive method in CLM - - - + + Full pathname of file containing gas phase deposition data including effective + Henry's law coefficients. + @@ -114,7 +109,7 @@ category="Fire_emissions" group="fire_emis_nl" valid_values="" > - If ture fire emissions are input into atmosphere as elevated forcings. + If true fire emissions are input into atmosphere as elevated forcings. Otherwise they are treated as surface emissions. Default: TRUE diff --git a/bld/namelist_files/use_cases/1850-2100_SSP1-1.9_transient.xml b/bld/namelist_files/use_cases/1850-2100_SSP1-1.9_transient.xml new file mode 100644 index 0000000000..7ce017b3fc --- /dev/null +++ b/bld/namelist_files/use_cases/1850-2100_SSP1-1.9_transient.xml @@ -0,0 +1,21 @@ + + + + +Simulate transient land-use, and aerosol deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP1-1.9 scenario +Simulate transient land-use, aerosol deposition, and Nitrogen deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP1-1.9 scenario + + + +1850 + +1850-2100 + + + +SSP1-1.9 + + diff --git a/bld/namelist_files/use_cases/1850-2100_SSP1-2.6_transient.xml b/bld/namelist_files/use_cases/1850-2100_SSP1-2.6_transient.xml new file mode 100644 index 0000000000..a622d270ad --- /dev/null +++ b/bld/namelist_files/use_cases/1850-2100_SSP1-2.6_transient.xml @@ -0,0 +1,21 @@ + + + + +Simulate transient land-use, and aerosol deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP1-2.6 scenario +Simulate transient land-use, aerosol deposition, and Nitrogen deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP1-2.6 scenario + + + +1850 + +1850-2100 + + + +SSP1-2.6 + + diff --git a/bld/namelist_files/use_cases/1850-2100_SSP2-4.5_transient.xml b/bld/namelist_files/use_cases/1850-2100_SSP2-4.5_transient.xml new file mode 100644 index 0000000000..e67af8dc85 --- /dev/null +++ b/bld/namelist_files/use_cases/1850-2100_SSP2-4.5_transient.xml @@ -0,0 +1,21 @@ + + + + +Simulate transient land-use, and aerosol deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP2-4.5 scenario +Simulate transient land-use, aerosol deposition, and Nitrogen deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP2-4.5 scenario + + + +1850 + +1850-2100 + + + +SSP2-4.5 + + diff --git a/bld/namelist_files/use_cases/1850-2100_SSP3-7.0_transient.xml b/bld/namelist_files/use_cases/1850-2100_SSP3-7.0_transient.xml new file mode 100644 index 0000000000..2a0bdbc7cf --- /dev/null +++ b/bld/namelist_files/use_cases/1850-2100_SSP3-7.0_transient.xml @@ -0,0 +1,21 @@ + + + + +Simulate transient land-use, and aerosol deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP3-7.0 scenario +Simulate transient land-use, aerosol deposition, and Nitrogen deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP3-7.0 scenario + + + +1850 + +1850-2100 + + + +SSP3-7.0 + + diff --git a/bld/namelist_files/use_cases/1850-2100_SSP4-3.4_transient.xml b/bld/namelist_files/use_cases/1850-2100_SSP4-3.4_transient.xml new file mode 100644 index 0000000000..6425fed3a5 --- /dev/null +++ b/bld/namelist_files/use_cases/1850-2100_SSP4-3.4_transient.xml @@ -0,0 +1,21 @@ + + + + +Simulate transient land-use, and aerosol deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP4-3.4 scenario +Simulate transient land-use, aerosol deposition, and Nitrogen deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP4-3.4 scenario + + + +1850 + +1850-2100 + + + +SSP4-3.4 + + diff --git a/bld/namelist_files/use_cases/1850-2100_SSP4-6.0_transient.xml b/bld/namelist_files/use_cases/1850-2100_SSP4-6.0_transient.xml new file mode 100644 index 0000000000..3b32371efc --- /dev/null +++ b/bld/namelist_files/use_cases/1850-2100_SSP4-6.0_transient.xml @@ -0,0 +1,21 @@ + + + + +Simulate transient land-use, and aerosol deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP4-6.0 scenario +Simulate transient land-use, aerosol deposition, and Nitrogen deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP4-6.0 scenario + + + +1850 + +1850-2100 + + + +SSP4-6.0 + + diff --git a/bld/namelist_files/use_cases/1850-2100_SSP5-3.4_transient.xml b/bld/namelist_files/use_cases/1850-2100_SSP5-3.4_transient.xml new file mode 100644 index 0000000000..0f7cd35eb9 --- /dev/null +++ b/bld/namelist_files/use_cases/1850-2100_SSP5-3.4_transient.xml @@ -0,0 +1,21 @@ + + + + +Simulate transient land-use, and aerosol deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP5-3.4 scenario +Simulate transient land-use, aerosol deposition, and Nitrogen deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP5-3.4 scenario + + + +1850 + +1850-2100 + + + +SSP5-3.4 + + diff --git a/bld/namelist_files/use_cases/1850-2100_SSP5-8.5_transient.xml b/bld/namelist_files/use_cases/1850-2100_SSP5-8.5_transient.xml new file mode 100644 index 0000000000..c3c0e33f20 --- /dev/null +++ b/bld/namelist_files/use_cases/1850-2100_SSP5-8.5_transient.xml @@ -0,0 +1,21 @@ + + + + +Simulate transient land-use, and aerosol deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP5-8.5 scenario +Simulate transient land-use, aerosol deposition, and Nitrogen deposition changes from 1850 to current day with historical data, and then to 2100 with the CMIP6 SSP5-8.5 scenario + + + +1850 + +1850-2100 + + + +SSP5-8.5 + + diff --git a/bld/namelist_files/use_cases/1850-2100_rcp2.6_transient.xml b/bld/namelist_files/use_cases/1850-2100_rcp2.6_transient.xml deleted file mode 100644 index 4252c1e64f..0000000000 --- a/bld/namelist_files/use_cases/1850-2100_rcp2.6_transient.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - -Simulate transient land-use, and aerosol deposition changes with historical data from 1850 to 2005 and then with the RCP2.6 scenario from IMAGE - -Simulate transient land-use, aerosol and Nitrogen deposition changes with historical data from 1850 to 2005 and then with the RCP2.6 scenario from IMAGE - - -Simulate transient land-use, aerosol and Nitrogen deposition changes with historical data from 1850 to 2005 and then with the RCP2.6 scenario from IMAGE - - -1850 - -1850-2100 - -2.6 - -flanduse_timeseries - -.true. -.false. -.false. - -arb_ic - -1850 -2100 -1850 - -1850 -2100 -1850 - -1850 -2010 -1850 - -1850 -2010 -1850 - -1850 -2100 -1850 - -1850 -2100 -1850 - - - diff --git a/bld/namelist_files/use_cases/1850-2100_rcp4.5_transient.xml b/bld/namelist_files/use_cases/1850-2100_rcp4.5_transient.xml deleted file mode 100644 index 09541a7b86..0000000000 --- a/bld/namelist_files/use_cases/1850-2100_rcp4.5_transient.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - -Simulate transient land-use, and aerosol deposition changes with historical data from 1850 to 2005 and then with the RCP4.5 scenario from MINICAM - -Simulate transient land-use, aerosol and Nitrogen deposition changes with historical data from 1850 to 2005 and then with the RCP4.5 scenario from MINICAM - - -Simulate transient land-use, aerosol and Nitrogen deposition changes with historical data from 1850 to 2005 and then with the RCP4.5 scenario from MINICAM - - -1850 - -1850-2100 - -4.5 - -flanduse_timeseries - -arb_ic - -.true. -.false. -.false. - -1850 -2100 -1850 - -1850 -2100 -1850 - -1850 -2010 -1850 - -1850 -2010 -1850 - -1850 -2100 -1850 - -1850 -2100 -1850 - - diff --git a/bld/namelist_files/use_cases/1850-2100_rcp6_transient.xml b/bld/namelist_files/use_cases/1850-2100_rcp6_transient.xml deleted file mode 100644 index 4ee8db473e..0000000000 --- a/bld/namelist_files/use_cases/1850-2100_rcp6_transient.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - -Simulate transient land-use, and aerosol deposition changes with historical data from 1850 to 2005 and then with the RCP6 scenario from AIM - - -Simulate transient land-use, aerosol and Nitrogen deposition changes with historical data from 1850 to 2005 and then with the RCP6 scenario from AIM - - -Simulate transient land-use, aerosol and Nitrogen deposition changes with historical data from 1850 to 2005 and then with the RCP6 scenario from AIM - - -1850 - -1850-2100 - -6 - -.true. -.false. -.false. - -flanduse_timeseries - -arb_ic - -1850 -2100 -1850 - -1850 -2100 -1850 - -1850 -2010 -1850 - -1850 -2010 -1850 - -1850 -2100 -1850 - -1850 -2100 -1850 - - diff --git a/bld/namelist_files/use_cases/1850-2100_rcp8.5_transient.xml b/bld/namelist_files/use_cases/1850-2100_rcp8.5_transient.xml deleted file mode 100644 index c649101306..0000000000 --- a/bld/namelist_files/use_cases/1850-2100_rcp8.5_transient.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - -Simulate transient land-use, and aerosol deposition changes with historical data from 1850 to 2005 and then with the RCP8.5 scenario from MESSAGE - -Simulate transient land-use, aerosol and Nitrogen deposition changes with historical data from 1850 to 2005 and then with the RCP8.5 scenario from MESSAGE - - -Simulate transient land-use, aerosol and Nitrogen deposition changes with historical data from 1850 to 2005 and then with the RCP8.5 scenario from MESSAGE - - -1850 - -1850-2100 - -8.5 - -.true. -.false. -.false. - -flanduse_timeseries - -arb_ic - -1850 -2100 -1850 - -1850 -2100 -1850 - -1850 -2010 -1850 - -1850 -2010 -1850 - -1850 -2100 -1850 - -1850 -2100 -1850 - - diff --git a/bld/namelist_files/use_cases/1850_control.xml b/bld/namelist_files/use_cases/1850_control.xml index bafb1e2774..94ee8c5d0d 100644 --- a/bld/namelist_files/use_cases/1850_control.xml +++ b/bld/namelist_files/use_cases/1850_control.xml @@ -8,6 +8,7 @@ constant +.false. .false. .false. @@ -17,23 +18,37 @@ 1850 1850 +1850 +1850 + 1850 1850 1850 1850 +1850 +1850 + 1850 -1850 +1850 1850 1850 +1850 +1850 + +lnd/clm2/ndepdata/fndep_clm_WACCM6_CMIP6piControl001_y21-50avg_1850monthly_0.95x1.25_c180802.nc + lnd/clm2/ndepdata/fndep_clm_WACCM6_CMIP6piControl001_y21-50avg_1850monthly_0.95x1.25_c180802.nc -cycle - -NDEP_month +lnd/clm2/ndepdata/fndep_clm_WACCM6_CMIP6piControl001_y21-50avg_1850monthly_0.95x1.25_c180802.nc + +cycle +cycle diff --git a/bld/namelist_files/use_cases/1850_noanthro_control.xml b/bld/namelist_files/use_cases/1850_noanthro_control.xml new file mode 100644 index 0000000000..636164a729 --- /dev/null +++ b/bld/namelist_files/use_cases/1850_noanthro_control.xml @@ -0,0 +1,60 @@ + + + + +Simulate current conditions without ANY anthropogenic influnces + +PtVg + +constant + +.false. + +1850 +1850 + +1850 +1850 + +1850 +1850 + +cycle +cycle + +1925 +1925 + +1925 +1925 + +1925 +1925 + + +lnd/clm2/firedata/clmforc.no_anthro_zero_hdm_1x1_simyr1925_181113.nc +none +nn + +1850 +1850 + +1850 +1850 + +1850 +1850 + + +NONE + + +OFF +.false. + + +0.0 +0.0 + + diff --git a/bld/namelist_files/use_cases/2000-2100_rcp8.5_transient.xml b/bld/namelist_files/use_cases/2000-2100_rcp8.5_transient.xml deleted file mode 100644 index bff9ef7f0f..0000000000 --- a/bld/namelist_files/use_cases/2000-2100_rcp8.5_transient.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - -Simulate transient land-use, and aerosol deposition changes with historical data from 2000 to 2005 and then with the RCP8.5 scenario from MESSAGE - -Simulate transient land-use, aerosol and Nitrogen deposition changes with historical data from 2000 to 2005 and then with the RCP8.5 scenario from MESSAGE - - -20050101 - -1850 - -2000-2100 - -8.5 - -.true. -.false. -.false. - -flanduse_timeseries - -arb_ic - -2000 -2100 -2000 - -2000 -2100 -2000 - -2000 -2010 -2000 - -2000 -2010 -2000 - -2000 -2100 -2000 - -2000 -2100 -2000 - - diff --git a/bld/namelist_files/use_cases/2000_control.xml b/bld/namelist_files/use_cases/2000_control.xml index f829e97772..f3c4980fc8 100644 --- a/bld/namelist_files/use_cases/2000_control.xml +++ b/bld/namelist_files/use_cases/2000_control.xml @@ -8,9 +8,11 @@ constant -.true. -.false. -.false. +.true. +.false. +.true. +.false. +.false. 2000 2000 @@ -18,16 +20,25 @@ 2000 2000 +2000 +2000 + 2000 2000 2000 2000 +2000 +2000 + 2000 2000 2000 2000 +2000 +2000 + diff --git a/bld/namelist_files/use_cases/2010_control.xml b/bld/namelist_files/use_cases/2010_control.xml new file mode 100644 index 0000000000..9316ecfb7f --- /dev/null +++ b/bld/namelist_files/use_cases/2010_control.xml @@ -0,0 +1,51 @@ + + + + +Conditions to simulate 2010 land-use + +2000 + +constant + +.true. +.true. +.false. +.true. +.false. +.false. + +2010 +2010 + +2010 +2010 + +2010 +2010 + +2010 +2010 + +2010 +2010 + +2010 +2010 + +2010 +2010 + +2010 +2010 + +2010 +2010 + +2010 +2010 + +2010 +2010 + + diff --git a/bld/namelist_files/use_cases/2018-PD_transient.xml b/bld/namelist_files/use_cases/2018-PD_transient.xml new file mode 100644 index 0000000000..d838efbd00 --- /dev/null +++ b/bld/namelist_files/use_cases/2018-PD_transient.xml @@ -0,0 +1,29 @@ + + + + +Simulate transient land-use, and aerosol deposition changes from 2018 to current day with a mix of historical data, and future scenario data + + + +2018 + +1850-2100 + + +SSP3-7.0 + +2018 +2022 +2018 + +2018 +2022 +2018 + +2018 +2022 +2018 + + diff --git a/bld/namelist_files/use_cases/2018_control.xml b/bld/namelist_files/use_cases/2018_control.xml new file mode 100644 index 0000000000..e5e572d749 --- /dev/null +++ b/bld/namelist_files/use_cases/2018_control.xml @@ -0,0 +1,14 @@ + + + + +Conditions to simulate 2018 land-use + +2018 + +constant + + +SSP3-7.0 + + diff --git a/bld/namelist_files/use_cases/20thC_transient.xml b/bld/namelist_files/use_cases/20thC_transient.xml index 8dfa8fc1a6..d6dd729b35 100644 --- a/bld/namelist_files/use_cases/20thC_transient.xml +++ b/bld/namelist_files/use_cases/20thC_transient.xml @@ -12,20 +12,30 @@ arb_ic + + flanduse_timeseries -.true. -.false. -.false. +.true. +.false. +.true. +.false. +.false. 1850 -2005 +2015 1850 1850 -2005 +2015 1850 +1850 +2015 +1850 + 1850 2016 1850 @@ -34,6 +44,10 @@ 2016 1850 +1850 +2016 +1850 + 1850 2106 1850 @@ -42,4 +56,8 @@ 2106 1850 +1850 +2106 +1850 + diff --git a/bld/namelist_files/use_cases/README b/bld/namelist_files/use_cases/README index 40b992332b..e55fd9285b 100644 --- a/bld/namelist_files/use_cases/README +++ b/bld/namelist_files/use_cases/README @@ -11,12 +11,16 @@ Ending suffix requires one of these endings: _transient, _control or _pd Transient cases: - yyyy-yyyy_$rcp$desc_transient (for example 1850-2100_rcp8.5_transient) + yyyy-yyyy_$ssp_rcp$desc_transient (for example 1850-2100_SSP5-8.5_transient) or 20thC$desc_transient (means nominal 1850-2000 although some datasets are 1850-2005) + or + + yyyy-PD_$desc_transient (means nominal year yyyy through present day (PD) (with the year for PD advancing) + Control cases: yyyy$desc_control @@ -30,9 +34,10 @@ Where yyyy = Simulation year (such as 1850 or 2000). yyyy-yyyy = Range of simulation years to run over (i.e.. 1850-2000). -$rcp = Representative concentration pathway (rcp) description string +yyyy-PD = Range of simulation years to run over until present day (i.e.. 2018-2024). +$ssp_rcp = Shared Socieconomic Pathway (SSP) Representative concentration pathway (RCP) description string for future scenarios: - rcp#.# (for example: rcp8.5, rcp6, rcp4.5, rcp2.6) + SSP#-#.# (for example: SSP5-8.5, SSP1-2.6, SSP4-6.0 [can be blank for historical cases]. $desc = Description of anything else -- alpha-numeric. Should start with an underscore ("_") if not by itself diff --git a/bld/namelist_files/use_cases/stdurbpt_pd.xml b/bld/namelist_files/use_cases/stdurbpt_pd.xml index 9114742e66..65786f32ae 100644 --- a/bld/namelist_files/use_cases/stdurbpt_pd.xml +++ b/bld/namelist_files/use_cases/stdurbpt_pd.xml @@ -10,7 +10,7 @@ 'TBUILD','BUILDHEAT','TRAFFICFLUX','WASTEHEAT','SWup','LWup','Rnet','Qh','Qle','Qstor','Qtau','Qanth','Wind','Qair','Tair','PSurf','Rainf','SWdown','LWdown','COSZEN' -'TG','TBOT','FIRE','FIRA','FLDS','FSDS','FSR','FSA','FGEV','FSH','FGR','TSOI','ERRSOI','BUILDHEAT','SABV','SABG','FSDSVD','FSDSND','FSDSVI','FSDSNI','FSRVD','FSRND','FSRVI','FSRNI','TSA','FCTR','FCEV','QBOT','Q2M','H2OSOI','H2OSNO','SOILLIQ','SOILICE','SWup','LWup','Rnet','Qh','Qle','Qstor','Qtau','Qanth','Wind','Qair','Tair','PSurf','Rainf','SWdown','LWdown','SoilAlpha_U','ZWT','WA' +'TG','TBOT','FIRE','FIRA','FLDS','FSDS','FSR','FSA','FGEV','FSH','FGR','TSOI','ERRSOI','BUILDHEAT','SABV','SABG','FSDSVD','FSDSND','FSDSVI','FSDSNI','FSRVD','FSRND','FSRVI','FSRNI','TSA','FCTR','FCEV','QBOT','Q2M','H2OSOI','H2OSNO','SOILLIQ','SOILICE','SWup','LWup','Rnet','Qh','Qle','Qstor','Qtau','Qanth','Wind','Qair','Tair','PSurf','Rainf','SWdown','LWdown','SoilAlpha_U','ZWT' 'SWup','LWup','Rnet','Qh','Qle','Qstor','Qtau','Qanth','Wind','Qair','Tair','PSurf','Rainf','SWdown','LWdown','FSA','FIRA','TG','COSZEN','SoilAlpha_U','TBUILD','BUILDHEAT' @@ -18,8 +18,10 @@ 'OFF' -.true. -.false. -.false. +.true. +.false. +.true. +.false. +.false. diff --git a/bld/unit_testers/build-namelist_test.pl b/bld/unit_testers/build-namelist_test.pl index 1d41ef5cda..1c5426c099 100755 --- a/bld/unit_testers/build-namelist_test.pl +++ b/bld/unit_testers/build-namelist_test.pl @@ -23,13 +23,13 @@ sub usage { SYNOPSIS build-namelist_test.pl [options] - Test the the CLM build-namelist + Test the the CLM build-namelist OPTIONS - -help [or -h] Print usage to STDOUT. + -help [or -h] Print usage to STDOUT. -compare Compare namelists for this version to namelists created by another version. -generate Leave the namelists in place to do a later compare. - -test Use the -test option to make sure datasets exist. + -no-test Do NOT Use the -test option to make sure datasets exist. -csmdata "dir" Root directory of CESM input data. EOF @@ -59,7 +59,7 @@ sub make_env_run { EOF foreach my $item ( keys(%env_vars) ) { print $fh < + EOF } print $fh < -Specifies clm physics +Specifies clm physics EOF $fh->close(); } +sub cat_and_create_namelistinfile { +# +# Concatenate the user_nl_clm files together and turn it into a namelist input file +# that can be read in by build-namelist +# + my ($file1, $file2, $outfile) = @_; + + my $fh = IO::File->new($file1, '<') or die "can't open file: $file1"; + my $outfh = IO::File->new($outfile, '>') or die "can't open file: $outfile"; + print $outfh "&clm_settings\n\n"; + while ( my $line = <$fh> ) { + print $outfh " $line"; + } + $fh->close(); + if ( defined($file2) ) { + my $fh = IO::File->new($file2, '<') or die "can't open file: $file2"; + while ( my $line = <$fh> ) { + print $outfh " $line"; + } + } + print $outfh "\n/\n"; + $fh->close(); + $outfh->close(); +} + # # Process command-line options. # my %opts = ( help => 0, generate => 0, - test => 0, + test => 1, compare => undef, csmdata => undef, ); @@ -98,7 +123,7 @@ sub make_config_cache { "h|help" => \$opts{'help'}, "compare=s" => \$opts{'compare'}, "generate" => \$opts{'generate'}, - "test" => \$opts{'test'}, + "test!" => \$opts{'test'}, "csmdata=s" => \$opts{'csmdata'}, ) or usage(); @@ -110,7 +135,7 @@ sub make_config_cache { my $inputdata_rootdir = undef; if (defined($opts{'csmdata'})) { $inputdata_rootdir = $opts{'csmdata'}; -} elsif (defined $ENV{'CSMDATA'} ) { +} elsif (defined $ENV{'CSMDATA'} ) { $inputdata_rootdir = $ENV{'CSMDATA'}; } else { # use yellowstone location as default @@ -128,7 +153,7 @@ sub make_config_cache { $compGen='compare'; } elsif ( defined($opts{'compare'} && ($opts{'generate'} eq 1 ))) { #_# if compare and generate are both given, use compare - $compGen='compare'; + $compGen='compare'; } my $ProgName; @@ -138,9 +163,10 @@ sub make_config_cache { # # Figure out number of tests that will run # -my $ntests = 927; +my $ntests = 1999; + if ( defined($opts{'compare'}) ) { - $ntests += 588; + $ntests += 1353; } plan( tests=>$ntests ); @@ -151,7 +177,7 @@ sub make_config_cache { my $captOut=""; #_# variable to capture Test::More output Test::More->builder->output(\$captOut); #_# ============================================================ -#_# +#_# #_# ============================================================ # Check for unparsed arguments @@ -164,8 +190,8 @@ sub make_config_cache { &make_config_cache($phys); my $DOMFILE = "$inputdata_rootdir/atm/datm7/domain.lnd.T31_gx3v7.090928.nc"; -my $real_par_file = "user_nl_clm_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 $real_par_file = "user_nl_ctsm_real_parameters"; +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"; } @@ -197,7 +223,7 @@ sub make_config_cache { &make_env_run(); eval{ system( "$bldnml > $tempfile 2>&1 " ); }; is( $@, '', "plain build-namelist" ); - $cfiles->checkfilesexist( "default", $mode ); + $cfiles->checkfilesexist( "default", $mode ); # Compare to baseline if ( defined($opts{'compare'}) ) { $cfiles->doNOTdodiffonfile( "$tempfile", "default", $mode ); @@ -211,7 +237,7 @@ sub make_config_cache { $cfiles->copyfiles( "default", $mode ); &cleanup(); # Simple test -- run all the list options -foreach my $options ( "clm_demand", "rcp", "res", +foreach my $options ( "clm_demand", "ssp_rcp", "res", "sim_year", "use_case" ) { &make_env_run(); eval{ system( "$bldnml -${options} list > $tempfile 2>&1 " ); }; @@ -234,7 +260,7 @@ sub make_config_cache { # Exercise a bunch of options my $options = "-co2_ppmv 250 "; - $options .= " -res 0.9x1.25 -rcp 2.6 -envxml_dir ."; + $options .= " -res 0.9x1.25 -ssp_rcp SSP1-2.6 -envxml_dir ."; &make_env_run(); eval{ system( "$bldnml $options > $tempfile 2>&1 " ); }; @@ -287,57 +313,169 @@ sub make_config_cache { &make_config_cache($phys); print "\n===============================================================================\n"; -print "Test configuration, structure, irrigate, verbose, clm_demand, rcp, test, sim_year, use_case, l_ncpl\n"; +print "Test configuration, structure, irrigate, verbose, clm_demand, ssp_rcp, test, sim_year, use_case\n"; print "=================================================================================\n"; -# configuration, structure, irrigate, verbose, clm_demand, rcp, test, sim_year, use_case, l_ncpl my $startfile = "clmrun.clm2.r.1964-05-27-00000.nc"; -foreach my $options ( "-configuration nwp", - "-structure fast", - "-namelist '&a irrigate=.true./'", "-verbose", "-rcp 2.6", "-test", "-sim_year 1850", - "-use_case 1850_control", "-l_ncpl 1", - "-clm_start_type startup", "-namelist '&a irrigate=.false./' -crop -bgc bgc", - "-envxml_dir . -infile myuser_nl_clm", - "-ignore_ic_date -clm_start_type branch -namelist '&a nrevsn=\"thing.nc\"/' -bgc bgc -crop", - "-ignore_ic_date -clm_start_type startup -namelist '&a finidat=\"thing.nc\"/' -bgc bgc -crop", - ) { - my $file = $startfile; +foreach my $driver ( "mct", "nuopc" ) { + print " For $driver driver\n\n"; + # configuration, structure, irrigate, verbose, clm_demand, ssp_rcp, test, sim_year, use_case + foreach my $options ( "-res 0.9x1.25 -configuration nwp", + "-res 0.9x1.25 -structure fast", + "-res 0.9x1.25 -namelist '&a irrigate=.true./'", "-res 0.9x1.25 -verbose", "-res 0.9x1.25 -ssp_rcp SSP1-2.6", "-res 0.9x1.25 -test", "-res 0.9x1.25 -sim_year 1850", + "-res 0.9x1.25 -namelist '&a use_lai_streams=.true.,use_soil_moisture_streams=.true./'", + "-res 0.9x1.25 -namelist '&a use_excess_ice=.true. use_excess_ice_streams=.true./'", + "-res 0.9x1.25 -namelist '&a use_excess_ice=.true. use_excess_ice_streams=.false./'", + "-res 0.9x1.25 -use_case 1850_control", + "-res 1x1pt_US-UMB -clm_usr_name 1x1pt_US-UMB -namelist '&a fsurdat=\"/dev/null\"/'", + "-res 1x1_brazil", + "-res 0.9x1.25 -clm_start_type startup", "-namelist '&a irrigate=.false./' -crop -bgc bgc", + "-res 0.9x1.25 -infile myuser_nl_clm", + "-res 0.9x1.25 -ignore_ic_date -clm_start_type branch -namelist '&a nrevsn=\"thing.nc\"/' -bgc bgc -crop", + "-res 0.9x1.25 -clm_start_type branch -namelist '&a nrevsn=\"thing.nc\",use_init_interp=T/'", + "-res 0.9x1.25 -ignore_ic_date -clm_start_type startup -namelist '&a finidat=\"thing.nc\"/' -bgc bgc -crop", + ) { + my $file = $startfile; + &make_env_run(); + my $base_options = "-envxml_dir . -driver $driver"; + if ( $driver eq "mct" ) { + $base_options = "$base_options -lnd_frac $DOMFILE"; + # Skip the MCT test for excess ice streams + if ( $options =~ /use_excess_ice_streams=.true./ ) { + next; + } + } 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" ); + $cfiles->checkfilesexist( "$base_options $options", $mode ); + $cfiles->shownmldiff( "default", $mode ); + my $finidat = `grep finidat lnd_in`; + if ( $options =~ /myuser_nl_clm/ ) { + my $fsurdat = `grep fsurdat lnd_in`; + like( $fsurdat, "/MYDINLOCROOT/lnd/clm2/PTCLMmydatafiles/1x1pt_US-UMB/surfdata_1x1pt_US-UMB_simyr2000_clm4_5_c131122.nc/", "$options" ); + } + if ( defined($opts{'compare'}) ) { + $cfiles->doNOTdodiffonfile( "$tempfile", "$base_options $options", $mode ); + $cfiles->dodiffonfile( "$real_par_file", "$base_options $options", $mode ); + $cfiles->comparefiles( "$base_options $options", $mode, $opts{'compare'} ); + } + if ( defined($opts{'generate'}) ) { + $cfiles->copyfiles( "$base_options $options", $mode ); + } + &cleanup(); + } +} +print "\n===============================================================================\n"; +print "Test the NEON sites\n"; +print "=================================================================================\n"; +my $phys = "clm5_1"; +$mode = "-phys $phys"; +&make_config_cache($phys); +my $neondir = "../../cime_config/usermods_dirs/NEON"; +foreach my $site ( "ABBY", "BLAN", "CPER", "DEJU", "GRSM", "HEAL", "KONA", "LENO", "NIWO", + "ONAQ", "PUUM", "SERC", "SRER", "TALL", "TREE", "WOOD", "BARR", "BONA", + "DCFS", "DELA", "GUAN", "JERC", "KONZ", "MLBS", "NOGP", "ORNL", "RMNP", + "SJER", "STEI", "TEAK", "UKFS", "WREF", "BART", "CLBJ", "DSNY", "HARV", + "JORN", "LAJA", "MOAB", "OAES", "OSBS", "SCBI", "SOAP", "STER", "TOOL", + "UNDE", "YELL" + ) { &make_env_run(); + # + # Concatonate default usermods and specific sitetogether expanding env variables while doing that + # + if ( ! -d "$neondir/$site" ) { + print "NEON directory is not there: $neondir/$site\n"; + die "ERROR:: NEON site does not exist: $site\n"; + } + my $neondefaultfile = "$neondir/defaults/user_nl_clm"; + my $neonsitefile = "$neondir/$site/user_nl_clm"; + if ( ! -f $neonsitefile ) { + $neonsitefile = undef; + } + $ENV{'NEONSITE'} = $site; + my $namelistfile = "temp.namelistinfile_$site"; + &cat_and_create_namelistinfile( $neondefaultfile, $neonsitefile, $namelistfile ); + # + # Now run the site + # + my $options = "-res CLM_USRDAT -clm_usr_name NEON -no-megan -bgc bgc -sim_year 2018 -infile $namelistfile"; eval{ system( "$bldnml -envxml_dir . $options > $tempfile 2>&1 " ); }; is( $@, '', "options: $options" ); $cfiles->checkfilesexist( "$options", $mode ); $cfiles->shownmldiff( "default", $mode ); - my $finidat = `grep finidat lnd_in`; - if ( $options eq "-l_ncpl 1" ) { - my $dtime = `grep dtime lnd_in`; - like( $dtime, "/ 86400\$/", "$options" ); - } elsif ( $options =~ /myuser_nl_clm/ ) { - my $fsurdat = `grep fsurdat lnd_in`; - like( $fsurdat, "/MYDINLOCROOT/lnd/clm2/PTCLMmydatafiles/1x1pt_US-UMB/surfdata_1x1pt_US-UMB_simyr2000_clm4_5_c131122.nc/", "$options" ); - } if ( defined($opts{'compare'}) ) { $cfiles->doNOTdodiffonfile( "$tempfile", "$options", $mode ); + $cfiles->dodiffonfile( "lnd_in", "$options", $mode ); $cfiles->dodiffonfile( "$real_par_file", "$options", $mode ); $cfiles->comparefiles( "$options", $mode, $opts{'compare'} ); } if ( defined($opts{'generate'}) ) { $cfiles->copyfiles( "$options", $mode ); } + system( "/bin/rm $namelistfile" ); &cleanup(); } + +print "\n===============================================================================\n"; +print "Test some CAM specific setups for special grids \n"; +print "=================================================================================\n"; +foreach my $phys ( "clm4_5", "clm5_0" ) { + $mode = "-phys $phys"; + &make_config_cache($phys); + foreach my $options ( + "-res ne0np4.ARCTIC.ne30x4 -bgc sp -use_case 20thC_transient -namelist '&a start_ymd=19790101/' -lnd_tuning_mode ${phys}_cam6.0", + "-res ne0np4.ARCTICGRIS.ne30x8 -bgc sp -use_case 20thC_transient -namelist '&a start_ymd=19790101/' -lnd_tuning_mode ${phys}_cam6.0", + "-res 1.9x2.5 -bgc sp -use_case 20thC_transient -namelist '&a start_ymd=19790101/' -lnd_tuning_mode ${phys}_cam6.0", + "-res 0.9x1.25 -bgc sp -use_case 20thC_transient -namelist '&a start_ymd=19790101/' -lnd_tuning_mode ${phys}_cam6.0", + "-res 0.9x1.25 -bgc bgc -crop -use_case 20thC_transient -namelist '&a start_ymd=19500101/' -lnd_tuning_mode ${phys}_cam6.0", + "-res ne0np4CONUS.ne30x8 -bgc sp -use_case 20thC_transient -namelist '&a start_ymd=20130101/' -lnd_tuning_mode ${phys}_cam6.0", + "-res 1.9x2.5 -bgc sp -use_case 20thC_transient -namelist '&a start_ymd=20030101/' -lnd_tuning_mode ${phys}_cam6.0", + "-res 1.9x2.5 -bgc sp -use_case 2010_control -namelist '&a start_ymd=20100101/' -lnd_tuning_mode ${phys}_cam6.0", + "-res 1x1_brazil -bgc fates -no-megan -use_case 2000_control -lnd_tuning_mode ${phys}_CRUv7", + "-res C192 -bgc sp -use_case 2010_control -namelist '&a start_ymd=20100101/' -lnd_tuning_mode ${phys}_cam6.0", + "-res ne0np4.ARCTIC.ne30x4 -bgc sp -use_case 20thC_transient -namelist '&a start_ymd=20130101/' -lnd_tuning_mode ${phys}_cam6.0", + ) { + &make_env_run(); + eval{ system( "$bldnml -envxml_dir . $options > $tempfile 2>&1 " ); }; + is( $@, '', "options: $options" ); + $cfiles->checkfilesexist( "$options", $mode ); + $cfiles->shownmldiff( "default", $mode ); + if ( defined($opts{'compare'}) ) { + $cfiles->doNOTdodiffonfile( "$tempfile", "$options", $mode ); + $cfiles->dodiffonfile( "lnd_in", "$options", $mode ); + $cfiles->dodiffonfile( "$real_par_file", "$options", $mode ); + $cfiles->comparefiles( "$options", $mode, $opts{'compare'} ); + } + if ( defined($opts{'generate'}) ) { + $cfiles->copyfiles( "$options", $mode ); + } + &cleanup(); + } +} + print "\n==============================================================\n"; print "Test several use_cases and specific configurations for clm5_0\n"; print "==============================================================\n"; $phys = "clm5_0"; $mode = "-phys $phys"; &make_config_cache($phys); -foreach my $options ( - "-bgc bgc -use_case 1850-2100_rcp2.6_transient -namelist '&a start_ymd=20100101/'", - "-bgc sp -use_case 1850-2100_rcp4.5_transient -namelist '&a start_ymd=18501223/'", - "-bgc bgc -use_case 1850-2100_rcp6_transient -namelist '&a start_ymd=20701029/'", +foreach my $options ( + "-bgc bgc -use_case 1850-2100_SSP1-2.6_transient -namelist '&a start_ymd=20100101/'", + "-bgc sp -use_case 1850-2100_SSP2-4.5_transient -namelist '&a start_ymd=18501223/'", + "-bgc bgc -use_case 1850-2100_SSP3-7.0_transient -namelist '&a start_ymd=20701029/'", "-bgc fates -use_case 2000_control -no-megan", - "-bgc cn -use_case 1850-2100_rcp8.5_transient -namelist '&a start_ymd=19201023/'", + "-bgc fates -use_case 20thC_transient -no-megan", + "-bgc fates -use_case 1850_control -no-megan -namelist \"&a use_fates_sp=T, soil_decomp_method='None'/\"", + "-bgc sp -use_case 2000_control -res 0.9x1.25 -namelist '&a use_soil_moisture_streams = T/'", + "-bgc bgc -use_case 1850-2100_SSP5-8.5_transient -namelist '&a start_ymd=19101023/'", "-bgc bgc -use_case 2000_control -namelist \"&a fire_method='nofire'/\" -crop", + "-res 0.9x1.25 -bgc sp -use_case 1850_noanthro_control -drydep -fire_emis", + "-res 0.9x1.25 -bgc bgc -use_case 1850_noanthro_control -drydep -fire_emis -light_res 360x720", + "--bgc bgc --light_res none --namelist \"&a fire_method='nofire'/\"", + "--bgc fates --light_res 360x720 --no-megan --namelist \"&a fates_spitfire_mode=2/\"", + "--bgc fates --light_res none --no-megan --namelist \"&a fates_spitfire_mode=1/\"", ) { my $file = $startfile; &make_env_run(); @@ -367,7 +505,7 @@ sub make_config_cache { my $finidat = "thing.nc"; system( "touch $finidat" ); -my %failtest = ( +my %failtest = ( "coldstart but with IC file"=>{ options=>"-clm_start_type cold -envxml_dir .", namelst=>"finidat='$finidat'", GLC_TWO_WAY_COUPLING=>"FALSE", @@ -388,42 +526,87 @@ sub make_config_cache { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "l_ncpl is zero" =>{ options=>"-l_ncpl 0 -envxml_dir .", - namelst=>"", + "use_crop without -crop" =>{ options=>" -envxml_dir .", + namelst=>"use_crop=.true.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm4_5", + }, + "soilm_stream off w file" =>{ options=>"-res 0.9x1.25 -envxml_dir .", + namelst=>"use_soil_moisture_streams = .false.,stream_fldfilename_soilm='file_provided_when_off'", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "l_ncpl not integer" =>{ options=>"-l_ncpl 1.0 -envxml_dir .", - namelst=>"", + "exice_stream off w file" =>{ options=>"-res 0.9x1.25 -envxml_dir .", + namelst=>"use_excess_ice=.true., use_excess_ice_streams = .false.,stream_fldfilename_exice='file_provided_when_off'", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "both l_ncpl and dtime" =>{ options=>"-l_ncpl 24 -envxml_dir .", - namelst=>"dtime=1800", + "exice_stream off w mesh" =>{ options=>"-res 0.9x1.25 -envxml_dir .", + namelst=>"use_excess_ice=.true., use_excess_ice_streams = .false.,stream_meshfile_exice='file_provided_when_off'", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "use_crop without -crop" =>{ options=>" -envxml_dir .", - namelst=>"use_crop=.true.", + "exice off, but stream on" =>{ options=>"-res 0.9x1.25 -envxml_dir .", + namelst=>"use_excess_ice=.false., use_excess_ice_streams = .true.,stream_fldfilename_exice='file_provided', stream_meshfile_exice='file_provided'", GLC_TWO_WAY_COUPLING=>"FALSE", - phys=>"clm4_5", + phys=>"clm5_0", + }, + "exice stream off, but setmap"=>{ options=>"-res 0.9x1.25 -envxml_dir .", + namelst=>"use_excess_ice=.true., use_excess_ice_streams = .false.,stream_mapalgo_exice='bilinear'", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, + "exice stream on, but mct" =>{ options=>"--res 0.9x1.25 --envxml_dir . --driver mct --lnd_frac $DOMFILE ", + namelst=>"use_excess_ice=.true., use_excess_ice_streams=.true.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", }, "clm50CNDVwtransient" =>{ options=>" -envxml_dir . -use_case 20thC_transient -dynamic_vegetation -res 10x15 -ignore_warnings", namelst=>"", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, + "decomp_without_cn" =>{ options=>" -envxml_dir . -bgc sp", + namelst=>"soil_decomp_method='CENTURYKoven2013'", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, + "bgc_with_no_decomp" =>{ options=>" -envxml_dir . -bgc bgc", + namelst=>"soil_decomp_method='None'", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, + "reseed without CN" =>{ options=>" -envxml_dir . -bgc sp", + namelst=>"reseed_dead_plants=.true.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, + "onset_threh w SP" =>{ options=>" -envxml_dir . -bgc sp", + namelst=>"onset_thresh_depends_on_veg=.true.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, + "dribble_crphrv w/o CN" =>{ options=>" -envxml_dir . -bgc sp", + namelst=>"dribble_crophrv_xsmrpool_2atm=.true.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, + "dribble_crphrv w/o crop" =>{ options=>" -envxml_dir . -bgc bgc -no-crop", + namelst=>"dribble_crophrv_xsmrpool_2atm=.true.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, "CNDV with flanduse_timeseries - clm4_5"=>{ options=>"-bgc bgc -dynamic_vegetation -envxml_dir . -ignore_warnings", namelst=>"flanduse_timeseries='my_flanduse_timeseries_file.nc'", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm4_5", }, - "use_cndv=T without bldnml op"=>{ options=>"-bgc cn -envxml_dir . -ignore_warnings", + "use_cndv=T without bldnml op"=>{ options=>"-bgc bgc -envxml_dir . -ignore_warnings", namelst=>"use_cndv=.true.", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm4_5", }, - "use_cndv=F with dyn_veg op"=>{ options=>"-bgc cn -dynamic_vegetation -envxml_dir . -ignore_warnings", + "use_cndv=F with dyn_veg op"=>{ options=>"-bgc bgc -dynamic_vegetation -envxml_dir . -ignore_warnings", namelst=>"use_cndv=.false.", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm4_5", @@ -459,7 +642,7 @@ sub make_config_cache { phys=>"clm5_0", }, "toosmall glc w trans" =>{ options=>"-bgc sp -envxml_dir .", - namelst=>"toosmall_glacier=10, dyn_transient_pfts=T", + namelst=>"toosmall_glacier=10, dyn_transient_pfts=T", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, @@ -493,13 +676,7 @@ sub make_config_cache { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - # This one should fail now, because we don't have non irrigated non-crop datasets - "-irrigate=F without -crop" =>{ options=>"-bgc cn -no-crop -envxml_dir .", - namelst=>"irrigate=.false.", - GLC_TWO_WAY_COUPLING=>"FALSE", - phys=>"clm4_5", - }, - "grainproductWOcrop" =>{ options=>"-bgc cn -no-crop -envxml_dir .", + "grainproductWOcrop" =>{ options=>"-bgc bgc -no-crop -envxml_dir .", namelst=>"use_grainproduct=.true.", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm4_5", @@ -549,12 +726,17 @@ sub make_config_cache { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, + "NEONlightresButGlobal" =>{ options=>"--res 4x5 --bgc bgc --envxml_dir . --light_res 106x740", + namelst=>"", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, "spno-fire" =>{ options=>"-bgc sp -envxml_dir . -use_case 2000_control", namelst=>"fire_method='nofire'", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "lightres no fire" =>{ options=>"-bgc cn -envxml_dir . -light_res 360x720", + "lightres no fire" =>{ options=>"-bgc bgc -envxml_dir . -light_res 360x720", namelst=>"fire_method='nofire'", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", @@ -579,27 +761,22 @@ sub make_config_cache { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "bgc=cn and bgc settings" =>{ options=>"-bgc cn -envxml_dir .", - namelst=>"use_lch4=.true.,use_nitrif_denitrif=.true.,use_vertsoilc=.true.,use_century_decomp=.true.", - GLC_TWO_WAY_COUPLING=>"FALSE", - phys=>"clm4_5", - }, - "finundated and not methane"=>{ options=>"-bgc cn -envxml_dir .", + "finundated and not methane"=>{ options=>"-bgc bgc -envxml_dir .", namelst=>"use_lch4=.false.,finundation_method='h2osfc'", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "bgc=bgc and cn-only set" =>{ options=>"-bgc bgc -envxml_dir .", - namelst=>"use_lch4=.false.,use_nitrif_denitrif=.false.,use_vertsoilc=.false.,use_century_decomp=.false.", + "use_cn=true bgc=sp" =>{ options=>"-bgc sp -envxml_dir .", + namelst=>"use_cn=.true.", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm4_5", }, - "use_cn=true bgc=sp" =>{ options=>"-bgc sp -envxml_dir .", - namelst=>"use_cn=.true.", + "freeliv wo fun" =>{ options=>"-bgc bgc -envxml_dir .", + namelst=>"freelivfix_intercept=9.", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm4_5", }, - "use_cn=false bgc=cn" =>{ options=>"-bgc cn -envxml_dir .", + "use_cn=false bgc=bgc" =>{ options=>"-bgc bgc -envxml_dir .", namelst=>"use_cn=.false.", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm4_5", @@ -749,18 +926,43 @@ sub make_config_cache { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "both lnd_frac and on nml" =>{ options=>"-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", }, + "lnd_frac set to UNSET" =>{ options=>"-driver mct -lnd_frac UNSET -envxml_dir .", + namelst=>"", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, + "lnd_frac set but nuopc" =>{ options=>"-driver nuopc -lnd_frac $DOMFILE -envxml_dir .", + namelst=>"", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, + "lnd_frac not set but lilac"=>{ options=>"-driver nuopc -lilac -envxml_dir . -lnd_frac UNSET", + namelst=>"fsurdat='surfdata.nc'", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, + "fatmlndfrc set but nuopc" =>{ options=>"-driver nuopc -envxml_dir .", + namelst=>"fatmlndfrc='frac.nc'", + 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", phys=>"clm5_0", }, "glc_nec inconsistent" =>{ options=>"-envxml_dir .", - namelst=>"maxpatch_glcmec=5", + namelst=>"maxpatch_glc=5", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, @@ -789,23 +991,63 @@ sub make_config_cache { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, + "useFATESWcrop" =>{ options=>"-bgc fates -envxml_dir . -no-megan -crop", + namelst=>"", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, "useFATESWcreatecrop" =>{ options=>"-bgc fates -envxml_dir . -no-megan", namelst=>"create_crop_landunit=.true.", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "createcropFalse" =>{ options=>"-bgc bgc -envxml_dir . -no-megan", - namelst=>"create_crop_landunit=.false.", + "useFATESWn_dom_pft" =>{ options=>"-bgc fates -envxml_dir . -no-megan", + namelst=>"n_dom_pfts = 1", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "useFATESWTransient" =>{ options=>"-bgc fates -use_case 20thC_transient -envxml_dir . -no-megan -res 10x15", - namelst=>"", + "useFATESWbMH" =>{ options=>"-bgc fates -envxml_dir . -no-megan", + namelst=>"use_biomass_heat_storage=.true.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, + "FireNoneButFATESfireon" =>{ options=>"-bgc fates -envxml_dir . -no-megan -light_res none", + namelst=>"fates_spitfire_mode=4", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, + "FATESwspitfireOffLigtOn" =>{ options=>"-bgc fates -envxml_dir . -no-megan -light_res 360x720", + namelst=>"fates_spitfire_mode=0", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, + "useFATESWluna" =>{ options=>"--bgc fates --envxml_dir . --no-megan", + namelst=>"use_luna=TRUE", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, + "useFATESWfun" =>{ options=>"--bgc fates --envxml_dir . --no-megan", + namelst=>"use_fun=TRUE", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, + "useFATESWOsuplnitro" =>{ options=>"--bgc fates --envxml_dir . --no-megan", + namelst=>"suplnitro='NONE'", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, + "FireNoneButBGCfireon" =>{ options=>"-bgc bgc -envxml_dir . -light_res none", + namelst=>"fire_method='li2021gswpfrc'", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, + "createcropFalse" =>{ options=>"-bgc bgc -envxml_dir . -no-megan", + namelst=>"create_crop_landunit=.false.", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, "usespitfireButNOTFATES" =>{ options=>"-envxml_dir . -no-megan", - namelst=>"use_fates_spitfire=.true.", + namelst=>"fates_spitfire_mode=1", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm4_5", }, @@ -829,6 +1071,26 @@ sub make_config_cache { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm4_5", }, + "useFIREEMISwithFATES" =>{ options=>"-bgc fates -envxml_dir . -fire_emis --no-megan", + namelst=>"", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm4_5", + }, + "useDRYDEPwithFATES" =>{ options=>"--bgc fates --envxml_dir . --no-megan --drydep", + namelst=>"", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm4_5", + }, + "useFATESSPWONOCOMP" =>{ options=>"-bgc fates -envxml_dir . -no-megan", + namelst=>"use_fates_sp=T,use_fates_nocomp=F", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, + "useFATESTRANSWdynPFT" =>{ options=>"-bgc fates -envxml_dir . -use_case 20thC_transient -no-megan", + namelst=>"do_transient_pfts=T", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, "useHYDSTwithFATES" =>{ options=>"-bgc fates -envxml_dir . -no-megan", namelst=>"use_hydrstress=.true.", GLC_TWO_WAY_COUPLING=>"FALSE", @@ -849,11 +1111,36 @@ sub make_config_cache { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, + "noanthro_w_crop" =>{ options=>"-envxml_dir . -res 0.9x1.25 -bgc bgc -crop -use_case 1850_noanthro_control", + namelst=>"", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, + "noanthro_w_irrig" =>{ options=>"-envxml_dir . -res 0.9x1.25 -bgc bgc -use_case 1850_noanthro_control", + namelst=>"irrigate=T", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, "spdotransconflict" =>{ options=>"-envxml_dir . -bgc sp -use_case 20thC_transient", namelst=>"do_transient_pfts=T,do_transient_crops=.false.", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, + "dogrossandsp" =>{ options=>"--envxml_dir . --bgc sp --use_case 20thC_transient", + namelst=>"do_grossunrep=.true.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, + "dogrossandfates" =>{ options=>"--envxml_dir . --bgc fates --use_case 20thC_transient --no-megan", + namelst=>"do_grossunrep=.true.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, + "dogrossandnottrans" =>{ options=>"--envxml_dir . --bgc bgc --use_case 2000_control", + namelst=>"do_grossunrep=.true.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, "nocropwfert" =>{ options=>"-envxml_dir . -bgc sp -no-crop", namelst=>"use_fertilizer=T", GLC_TWO_WAY_COUPLING=>"FALSE", @@ -904,6 +1191,11 @@ sub make_config_cache { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, + "SPModeWNitrifNMethane" =>{ options=>"-envxml_dir . -bgc sp", + namelst=>"use_lch4=.true., use_nitrif_denitrif=.true.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, "knitrmaxWOnitrif" =>{ options=>"-envxml_dir . -bgc bgc", namelst=>"use_nitrif_denitrif=.false., k_nitr_max=1.0", GLC_TWO_WAY_COUPLING=>"FALSE", @@ -919,16 +1211,6 @@ sub make_config_cache { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "nitrcoefWOnitrif" =>{ options=>"-envxml_dir . -bgc bgc", - namelst=>"use_nitrif_denitrif=.false., denitrif_nitrateconc_coefficient=1.0", - GLC_TWO_WAY_COUPLING=>"FALSE", - phys=>"clm5_0", - }, - "nitrexpWOnitrif" =>{ options=>"-envxml_dir . -bgc bgc", - namelst=>"use_nitrif_denitrif=.false., denitrif_nitrateconc_exponent=1.0", - GLC_TWO_WAY_COUPLING=>"FALSE", - phys=>"clm5_0", - }, "lunaWSPandlnctrue" =>{ options=>"-envxml_dir . -bgc sp", namelst=>"use_luna=.true., lnc_opt=.true.", GLC_TWO_WAY_COUPLING=>"FALSE", @@ -949,6 +1231,26 @@ sub make_config_cache { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, + "fates_non_sp_laistreams" =>{ options=>"--envxml_dir . --bgc fates", + namelst=>"use_lai_streams=.true., use_fates_sp=.false.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, + "bgc_non_sp_laistreams" =>{ options=>"--envxml_dir . -bgc bgc", + namelst=>"use_lai_streams=.true.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, + "bgc_laistreams_input" =>{ options=>"--envxml_dir . --bgc bgc", + namelst=>"stream_year_first_lai=1999", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, + "crop_laistreams_input" =>{ options=>"--envxml_dir . --bgc sp --crop", + namelst=>"use_lai_streams=.true.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_0", + }, ); foreach my $key ( keys(%failtest) ) { print( "$key\n" ); @@ -968,7 +1270,7 @@ sub make_config_cache { # Warning testing, do things that give warnings, unless -ignore_warnings option is used -my %warntest = ( +my %warntest = ( # Warnings without the -ignore_warnings option given "coldwfinidat" =>{ options=>"-envxml_dir . -clm_start_type cold", namelst=>"finidat = 'testfile.nc'", @@ -980,18 +1282,23 @@ sub make_config_cache { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "use_c13_wo_bgc" =>{ options=>"-envxml_dir . -bgc cn", - namelst=>"use_c13=.true.", + "bgc=bgc WO nitrif_denit" =>{ options=>"-bgc bgc -envxml_dir .", + namelst=>"use_nitrif_denitrif=.false.", GLC_TWO_WAY_COUPLING=>"FALSE", - phys=>"clm5_0", + phys=>"clm4_5", }, - "use_c14_wo_bgc" =>{ options=>"-envxml_dir . -bgc cndv", - namelst=>"use_c14=.true.", + "methane off W nitrif_denit"=>{ options=>"-bgc bgc -envxml_dir .", + namelst=>"use_nitrif_denitrif=.true.,use_lch4=.false.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, + "soilm_stream w transient" =>{ options=>"-res 0.9x1.25 -envxml_dir . -use_case 20thC_transient", + namelst=>"use_soil_moisture_streams=T,soilm_tintalgo='linear'", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, - "maxpft_wrong" =>{ options=>"-envxml_dir . -bgc cndv", - namelst=>"maxpatch_pft=19", + "missing_ndep_file" =>{ options=>"-envxml_dir . -bgc bgc -ssp_rcp SSP5-3.4", + namelst=>"", GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm5_0", }, @@ -1000,6 +1307,16 @@ sub make_config_cache { GLC_TWO_WAY_COUPLING=>"FALSE", phys=>"clm4_5", }, + "FUN_wo_flexCN" =>{ options=>"-envxml_dir . -bgc bgc", + namelst=>"use_fun=.true.,use_flexiblecn=.false.", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, + "NotNEONbutNEONlightres" =>{ options=>"--res CLM_USRDAT --clm_usr_name regional --envxml_dir . --bgc bgc --light_res 106x174", + namelst=>"fsurdat='build-namelist_test.pl'", + GLC_TWO_WAY_COUPLING=>"FALSE", + phys=>"clm5_1", + }, ); foreach my $key ( keys(%warntest) ) { print( "$key\n" ); @@ -1013,19 +1330,23 @@ sub make_config_cache { # Now run with -ignore_warnings and make sure it works $options .= " -ignore_warnings"; eval{ system( "$bldnml $options -namelist \"&clmexp $namelist /\" > $tempfile 2>&1 " ); }; + is( $?, 0, $key ); is( $@, '', "$options" ); system( "cat $tempfile" ); } +# +# Loop over all physics versions +# +foreach my $phys ( "clm4_5", "clm5_0", "clm5_1" ) { +$mode = "-phys $phys"; +&make_config_cache($phys); print "\n==================================================\n"; -print "Test ALL resolutions with CLM5.0 and SP \n"; +print "Test ALL resolutions with SP\n"; print "==================================================\n"; # Check for ALL resolutions with CLM50SP -$phys = "clm5_0"; -$mode = "-phys $phys"; -&make_config_cache($phys); my $reslist = `../queryDefaultNamelist.pl -res list -s`; my @resolutions = split( / /, $reslist ); my @regional; @@ -1041,7 +1362,6 @@ sub make_config_cache { # Resolutions for mksurfdata mapping } elsif ( $res eq "0.5x0.5" || $res eq "0.25x0.25" || - $res eq "0.1x0.1" || $res eq "3x3min" || $res eq "5x5min" || $res eq "10x10min" || @@ -1055,12 +1375,18 @@ sub make_config_cache { $res eq "ne4np4" || $res eq "2.5x3.33" || $res eq "0.23x0.31" || + $res eq "0.47x0.63" || $res eq "94x192" || $res eq "8x16" || $res eq "32x64" || $res eq "128x256" || + $res eq "360x720cru" || $res eq "512x1024" ) { next; + # Resolutions not supported on release branch + } elsif ( $res eq "ne120np4" || + $res eq "conus_30_x8" ) { + next; } &make_env_run(); @@ -1083,16 +1409,13 @@ sub make_config_cache { } print "\n==================================================\n"; -print " Test important resolutions for CLM4.5 and BGC\n"; +print " Test important resolutions for BGC\n"; print "==================================================\n"; -$phys = "clm4_5"; -$mode = "-phys $phys"; -&make_config_cache($phys); -my @resolutions = ( "4x5", "10x15", "ne30np4", "ne120np4", "ne16np4", "1.9x2.5", "0.9x1.25" ); +my @resolutions = ( "4x5", "10x15", "ne30np4", "ne16np4", "1.9x2.5", "0.9x1.25" ); my @regional; my $nlbgcmode = "bgc"; -my $mode = "clm45-$nlbgcmode"; +my $mode = "$phys-$nlbgcmode"; foreach my $res ( @resolutions ) { chomp($res); print "=== Test $res === \n"; @@ -1150,10 +1473,7 @@ sub make_config_cache { print "==================================================\n"; # Check for crop resolutions -$phys = "clm5_0"; -$mode = "-phys $phys"; -&make_config_cache($phys); -my @crop_res = ( "1x1_numaIA", "1x1_smallvilleIA", "4x5", "10x15", "0.9x1.25", "1.9x2.5", "ne30np4", "ne120np4" ); +my @crop_res = ( "1x1_numaIA", "1x1_smallvilleIA", "4x5", "10x15", "0.9x1.25", "1.9x2.5", "ne30np4" ); foreach my $res ( @crop_res ) { $options = "-bgc bgc -crop -res $res -envxml_dir ."; &make_env_run(); @@ -1186,21 +1506,29 @@ sub make_config_cache { # use cases, but I've kept these pointing to the equivalent normal use # cases; I'm not sure if it's actually important to test this with all # of the different use cases. -$phys = "clm4_5"; -$mode = "-phys $phys"; -&make_config_cache($phys); -my @glc_res = ( "48x96", "0.9x1.25", "1.9x2.5" ); -my @use_cases = ( "1850-2100_rcp2.6_transient", - "1850-2100_rcp4.5_transient", - "1850-2100_rcp6_transient", - "1850-2100_rcp8.5_transient", +my @glc_res = ( "0.9x1.25", "1.9x2.5" ); +my @use_cases = ( "1850-2100_SSP1-2.6_transient", + "1850-2100_SSP2-4.5_transient", + "1850-2100_SSP3-7.0_transient", + "1850-2100_SSP5-8.5_transient", "1850_control", "2000_control", + "2010_control", "20thC_transient", ); foreach my $res ( @glc_res ) { foreach my $usecase ( @usecases ) { - $options = "-bgc bgc -res $res -use_case $usecase -envxml_dir . "; + my $startymd = undef; + if ( ($usecase eq "1850_control") || ($usecase eq "20thC_transient") ) { + $startymd = 18500101; + } elsif ( $usecase eq "2000_control") { + $startymd = 20000101; + } elsif ( $usecase eq "2010_control") { + $startymd = 20100101; + } else { + $startymd = 20150101; + } + $options = "-bgc bgc -res $res -use_case $usecase -envxml_dir . -namelist '&a start_ymd=$startymd/'"; &make_env_run(); eval{ system( "$bldnml $options > $tempfile 2>&1 " ); }; is( $@, '', "$options" ); @@ -1217,14 +1545,11 @@ sub make_config_cache { } } # Transient 20th Century simulations -$phys = "clm5_0"; -$mode = "-phys $phys"; -&make_config_cache($phys); -my @tran_res = ( "48x96", "0.9x1.25", "1.9x2.5", "ne30np4", "ne120np4", "10x15" ); +my @tran_res = ( "0.9x1.25", "1.9x2.5", "ne30np4", "10x15" ); my $usecase = "20thC_transient"; my $GLC_NEC = 10; foreach my $res ( @tran_res ) { - $options = "-res $res -use_case $usecase -envxml_dir . "; + $options = "-res $res -use_case $usecase -envxml_dir . -namelist '&a start_ymd=18500101/' -bgc bgc -crop -namelist '&a do_grossunrep=T/'"; &make_env_run(); eval{ system( "$bldnml $options > $tempfile 2>&1 " ); }; is( $@, '', "$options" ); @@ -1240,14 +1565,18 @@ sub make_config_cache { } &cleanup(); } -# Transient rcp scenarios -$phys = "clm5_0"; -$mode = "-phys $phys"; -&make_config_cache($phys); -my @tran_res = ( "48x96", "0.9x1.25", "1.9x2.5", "ne30np4", "10x15" ); -foreach my $usecase ( "1850_control", "1850-2100_rcp2.6_transient", "1850-2100_rcp4.5_transient", "1850-2100_rcp6_transient", "1850-2100_rcp8.5_transient" ) { +# Transient ssp_rcp scenarios that work +my @tran_res = ( "0.9x1.25", "1.9x2.5", "10x15" ); +foreach my $usecase ( "1850_control", "1850-2100_SSP5-8.5_transient", "1850-2100_SSP1-2.6_transient", "1850-2100_SSP3-7.0_transient", + "1850-2100_SSP2-4.5_transient" ) { + my $startymd = undef; + if ( $usecase eq "1850_control") { + $startymd = 18500101; + } else { + $startymd = 20150101; + } foreach my $res ( @tran_res ) { - $options = "-res $res -bgc bgc -crop -use_case $usecase -envxml_dir . "; + $options = "-res $res -bgc bgc -crop -use_case $usecase -envxml_dir . -namelist '&a start_ymd=$startymd/'"; &make_env_run(); eval{ system( "$bldnml $options > $tempfile 2>&1 " ); }; is( $@, '', "$options" ); @@ -1264,19 +1593,38 @@ sub make_config_cache { &cleanup(); } } +} # End loop over all physics versions +# +# End loop over versions +# + +# The SSP's that fail... +$phys = "clm5_0"; +$mode = "-phys $phys"; +&make_config_cache($phys); +my $res = "0.9x1.25"; +foreach my $usecase ( "1850-2100_SSP4-3.4_transient", "1850-2100_SSP5-3.4_transient", "1850-2100_SSP1-1.9_transient", + "1850-2100_SSP4-6.0_transient" ) { + $options = "-res $res -bgc bgc -crop -use_case $usecase -envxml_dir . -namelist '&a start_ymd=20150101/'"; + &make_env_run(); + eval{ system( "$bldnml $options > $tempfile 2>&1 " ); }; + isnt( $?, 0, $usecase ); + system( "cat $tempfile" ); +} print "\n==================================================\n"; -print "Test clm4.5/clm5.0 resolutions \n"; +print "Test clm4.5/clm5.0/clm5_1 resolutions \n"; print "==================================================\n"; -foreach my $phys ( "clm4_5", 'clm5_0' ) { +foreach my $phys ( "clm4_5", 'clm5_0', 'clm5_1' ) { my $mode = "-phys $phys"; &make_config_cache($phys); my @clmoptions = ( "-bgc bgc -envxml_dir .", "-bgc bgc -envxml_dir . -clm_accelerated_spinup=on", "-bgc bgc -envxml_dir . -light_res 360x720", - "-bgc sp -envxml_dir . -vichydro", "-bgc bgc -dynamic_vegetation -ignore_warnings", "-bgc bgc -clm_demand flanduse_timeseries -sim_year 1850-2000", + "-bgc sp -envxml_dir . -vichydro", "-bgc bgc -dynamic_vegetation -ignore_warnings", + "-bgc bgc -clm_demand flanduse_timeseries -sim_year 1850-2000 -namelist '&a start_ymd=18500101/'", "-bgc bgc -envxml_dir . -namelist '&a use_c13=.true.,use_c14=.true.,use_c14_bombspike=.true./'" ); foreach my $clmopts ( @clmoptions ) { - my @clmres = ( "ne120np4", "10x15", "0.9x1.25", "1.9x2.5" ); + my @clmres = ( "10x15", "0.9x1.25", "1.9x2.5" ); foreach my $res ( @clmres ) { $options = "-res $res -envxml_dir . "; &make_env_run( ); @@ -1294,10 +1642,10 @@ sub make_config_cache { &cleanup(); } } - my @clmoptions = ( "-bgc bgc -envxml_dir .", + my @clmoptions = ( "-bgc bgc -envxml_dir .", "-bgc sp -envxml_dir .", ); foreach my $clmopts ( @clmoptions ) { - my @clmres = ( "ne16np4", "360x720cru" ); + my @clmres = ( "ne16np4" ); foreach my $res ( @clmres ) { $options = "-res $res -envxml_dir . "; &make_env_run( ); @@ -1315,9 +1663,9 @@ sub make_config_cache { &cleanup(); } } - my $clmopts = "-bgc cn -crop"; + my $clmopts = "-bgc bgc -crop"; my $res = "1.9x2.5"; - $options = "-res $res -namelist '&a irrigate=.true./' -crop -bgc cn -envxml_dir ."; + $options = "-res $res -namelist '&a irrigate=.true./' -crop -envxml_dir ."; &make_env_run(); eval{ system( "$bldnml $options $clmopts > $tempfile 2>&1 " ); }; is( $@, '', "$options $clmopts" ); @@ -1333,22 +1681,30 @@ sub make_config_cache { &cleanup(); # Run FATES mode for several resolutions and configurations my $clmoptions = "-bgc fates -envxml_dir . -no-megan"; - my @clmres = ( "1x1_brazil", "5x5_amazon", "10x15", "1.9x2.5" ); + my @clmres = ( "1x1_brazil", "5x5_amazon", "4x5", "1.9x2.5" ); foreach my $res ( @clmres ) { - $options = "-res $res"; - my @edoptions = ( "-use_case 2000_control", "", "-namelist \"&a use_lch4=.true.,use_nitrif_denitrif=.true./\"", "-clm_accelerated_spinup on" ); + $options = "-res $res -clm_start_type cold"; + my @edoptions = ( "-use_case 2000_control", + "-use_case 1850_control", + "", + "-namelist \"&a use_lch4=.true.,use_nitrif_denitrif=.true./\"", + "-clm_accelerated_spinup on" + ); foreach my $edop (@edoptions ) { + if ( $res eq "5x5_amazon" && ($edop =~ /1850_control/) ) { + next; + } &make_env_run( ); eval{ system( "$bldnml $options $clmoptions $edop > $tempfile 2>&1 " ); }; is( $@, '', "$options $edop" ); - $cfiles->checkfilesexist( "$options $edop", $mode ); + $cfiles->checkfilesexist( "$options $clmoptions $edop", $mode ); $cfiles->shownmldiff( "default", "standard" ); if ( defined($opts{'compare'}) ) { - $cfiles->doNOTdodiffonfile( "$tempfile", "$options $edop", $mode ); - $cfiles->comparefiles( "$options $edop", $mode, $opts{'compare'} ); + $cfiles->doNOTdodiffonfile( "$tempfile", "$options $clmoptions $edop", $mode ); + $cfiles->comparefiles( "$options $clmoptions $edop", $mode, $opts{'compare'} ); } if ( defined($opts{'generate'}) ) { - $cfiles->copyfiles( "$options $edop", $mode ); + $cfiles->copyfiles( "$options $clmoptions $edop", $mode ); } &cleanup(); } @@ -1360,10 +1716,16 @@ sub make_config_cache { my $res = "0.9x1.25"; my $mask = "gx1v6"; my $simyr = "1850"; -foreach my $phys ( "clm4_5", 'clm5_0' ) { +foreach my $phys ( "clm4_5", 'clm5_0', 'clm5_1' ) { my $mode = "-phys $phys"; &make_config_cache($phys); - foreach my $forc ( "CRUv7", "GSWP3v1", "cam6.0" ) { + my @forclist = (); + if ( $phys == "clm5_1" ) { + @forclist = ( "GSWP3v1" ); + } else { + @forclist = ( "CRUv7", "GSWP3v1", "cam6.0" ); + } + foreach my $forc ( @forclist ) { foreach my $bgc ( "sp", "bgc" ) { my $lndtuningmode = "${phys}_${forc}"; my $clmoptions = "-res $res -mask $mask -sim_year $simyr -envxml_dir . -lnd_tuning_mod $lndtuningmode -bgc $bgc"; @@ -1408,7 +1770,7 @@ sub cleanup { system( "/bin/rm env_run.xml $real_par_file" ); if ( defined($type) ) { if ( $type eq "config" ) { - system( "/bin/rm Filepath config_cache.xml CESM_cppdefs" ); + system( "/bin/rm config_cache.xml" ); } } else { system( "/bin/rm $tempfile *_in" ); diff --git a/bld/unit_testers/xFail/expectedFail.pm b/bld/unit_testers/xFail/expectedFail.pm index 877d4a71ae..9feaa3e38b 100755 --- a/bld/unit_testers/xFail/expectedFail.pm +++ b/bld/unit_testers/xFail/expectedFail.pm @@ -428,7 +428,7 @@ sub _readXml # Add $cfgdir to the list of paths that Perl searches for modules my @dirs = ( $cfgdir, "$cfgdir/perl5lib", "$cfgdir/../../cime/utils/perl5lib", - "$cfgdir/../../../cime/utils/perl5lib" + "$cfgdir/../../../../cime/utils/perl5lib" ); unshift @INC, @dirs; my $result = eval "require XML::Lite"; diff --git a/test/tools/config_files/gen_domain b/cime_config/SystemTests/__init__.py similarity index 100% rename from test/tools/config_files/gen_domain rename to cime_config/SystemTests/__init__.py diff --git a/cime_config/SystemTests/fsurdatmodifyctsm.py b/cime_config/SystemTests/fsurdatmodifyctsm.py new file mode 100644 index 0000000000..03e437d5c4 --- /dev/null +++ b/cime_config/SystemTests/fsurdatmodifyctsm.py @@ -0,0 +1,94 @@ +""" +CTSM-specific test that first runs the fsurdat_modifier tool and then ensures +that the CTSM does not fail using the just-generated modified fsurdat file +""" + +import os +import re +from CIME.SystemTests.system_tests_common import SystemTestsCommon +from CIME.XML.standard_module_setup import * +from CIME.SystemTests.test_utils.user_nl_utils import append_to_user_nl_files + +# For calling fsurdat_modifier +from argparse import Namespace + +_CTSM_PYTHON = os.path.join( + os.path.dirname(os.path.realpath(__file__)), os.pardir, os.pardir, "python" +) +sys.path.insert(1, _CTSM_PYTHON) + +logger = logging.getLogger(__name__) + + +class FSURDATMODIFYCTSM(SystemTestsCommon): + def __init__(self, case): + """ + initialize an object interface to the SMS system test + """ + SystemTestsCommon.__init__(self, case) + + if not os.path.exists( + os.path.join(self._get_caseroot(), "done_FSURDATMODIFYCTSM_setup.txt") + ): + # Create out-of-the-box lnd_in to obtain fsurdat_in + case.create_namelists(component="lnd") + # If fsurdat_in does not exist, download it from the server + case.check_all_input_data() + + lnd_in_path = os.path.join(self._get_caseroot(), "CaseDocs/lnd_in") + with open(lnd_in_path, "r") as lnd_in: + for line in lnd_in: + fsurdat_in = re.match(r" *fsurdat *= *'(.*)'", line) + if fsurdat_in: + self._fsurdat_in = fsurdat_in.group(1) + break + + self._fsurdat_out = os.path.join(self._get_caseroot(), "fsurdat.nc") + self._ctsm_root = self._case.get_value("COMP_ROOT_DIR_LND") + self._cfg_file_path = os.path.join(self._get_caseroot(), "modify_fsurdat.cfg") + + logger.info(" create config file to modify") + self._create_config_file() + logger.info(" run modify_fsurdat") + self._run_modify_fsurdat() + logger.info(" modify user_nl files") + self._modify_user_nl() + with open("done_FSURDATMODIFYCTSM_setup.txt", "w") as fp: + pass + + def _create_config_file(self): + cfg_template_path = os.path.join( + self._ctsm_root, "tools/modify_input_files/modify_fsurdat_template.cfg" + ) + + with open(self._cfg_file_path, "w") as cfg_out: + with open(cfg_template_path, "r") as cfg_in: + for line in cfg_in: + if re.match(r" *fsurdat_in *=", line): + line = "fsurdat_in = {}".format(self._fsurdat_in) + elif re.match(r" *fsurdat_out *=", line): + line = "fsurdat_out = {}".format(self._fsurdat_out) + elif re.match(r" *idealized *=", line): + line = "idealized = True" + cfg_out.write(line) + + def _run_modify_fsurdat(self): + fsurdat_modifier_args = Namespace( + cfg_path=self._cfg_file_path, + debug=False, + fsurdat_in="UNSET", + fsurdat_out="UNSET", + overwrite=False, + silent=False, + verbose=False, + ) + from ctsm.modify_input_files.fsurdat_modifier import fsurdat_modifier + + fsurdat_modifier(fsurdat_modifier_args) + + def _modify_user_nl(self): + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component="clm", + contents="fsurdat = '{}'".format(self._fsurdat_out), + ) diff --git a/cime_config/SystemTests/funitctsm.py b/cime_config/SystemTests/funitctsm.py index 8634a74c2f..783e5b5d85 100644 --- a/cime_config/SystemTests/funitctsm.py +++ b/cime_config/SystemTests/funitctsm.py @@ -14,8 +14,8 @@ logger = logging.getLogger(__name__) -class FUNITCTSM(FUNIT): +class FUNITCTSM(FUNIT): def __init__(self, case): FUNIT.__init__(self, case) diff --git a/cime_config/SystemTests/lciso.py b/cime_config/SystemTests/lciso.py index e79af2886b..a9edba8e80 100644 --- a/cime_config/SystemTests/lciso.py +++ b/cime_config/SystemTests/lciso.py @@ -14,23 +14,28 @@ logger = logging.getLogger(__name__) -class LCISO(SystemTestsCompareTwo): +class LCISO(SystemTestsCompareTwo): def __init__(self, case): - SystemTestsCompareTwo.__init__(self, case, - separate_builds = False, - run_two_suffix = 'cisoallon', - run_one_description = 'carbon isotopes off', - run_two_description = 'c13 and c14 isotopes on as well as C isotope time series', - ignore_fieldlist_diffs = True) + self.comp = case.get_value("COMP_LND") + SystemTestsCompareTwo.__init__( + self, + case, + separate_builds=False, + run_two_suffix="cisoallon", + run_one_description="carbon isotopes off", + run_two_description="c13 and c14 isotopes on as well as C isotope time series", + ignore_fieldlist_diffs=True, + ) def _case_one_setup(self): - append_to_user_nl_files(caseroot = self._get_caseroot(), - component = "clm", - contents = "use_c13=F, use_c14=F") + append_to_user_nl_files( + caseroot=self._get_caseroot(), component=self.comp, contents="use_c13=F, use_c14=F" + ) def _case_two_setup(self): - append_to_user_nl_files(caseroot = self._get_caseroot(), - component = "clm", - contents = "use_c13=.true.,use_c14=.true.,use_c13_timeseries=.true.,use_c14_bombspike=.true." ) - + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component=self.comp, + contents="use_c13=.true.,use_c14=.true.,use_c13_timeseries=.true.,use_c14_bombspike=.true.", + ) diff --git a/cime_config/SystemTests/lgrain2.py b/cime_config/SystemTests/lgrain2.py new file mode 100644 index 0000000000..f4e19ad930 --- /dev/null +++ b/cime_config/SystemTests/lgrain2.py @@ -0,0 +1,47 @@ +""" +Implementation of the CIME LGRAIN2 (Land 2-grain-pool) test. + +This is a CTSM specific test: Verifies that we can allocate and use a second grain pool, +and that answers are identical to a run with a single grain pool. This is useful until we +have tests that include AgSys, which will exercise this capability more completely. + +(1) do a run with a second grain pool +(2) do a standard run only a single grain pool + +The reason for having the second grain pool in the first case (rather than the other way +around) is that this results in having a few extra fields present in the baselines. + +""" + +from CIME.SystemTests.system_tests_compare_two import SystemTestsCompareTwo +from CIME.XML.standard_module_setup import * +from CIME.SystemTests.test_utils.user_nl_utils import append_to_user_nl_files + +logger = logging.getLogger(__name__) + + +class LGRAIN2(SystemTestsCompareTwo): + def __init__(self, case): + SystemTestsCompareTwo.__init__( + self, + case, + separate_builds=False, + run_two_suffix="grain1", + run_one_description="use a second grain pool", + run_two_description="use a single grain pool", + ignore_fieldlist_diffs=True, + ) + + def _case_one_setup(self): + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component="clm", + contents="for_testing_use_second_grain_pool=.true.", + ) + + def _case_two_setup(self): + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component="clm", + contents="for_testing_use_second_grain_pool=.false.", + ) diff --git a/cime_config/SystemTests/lii.py b/cime_config/SystemTests/lii.py index 0bf371ee9a..de274256a3 100644 --- a/cime_config/SystemTests/lii.py +++ b/cime_config/SystemTests/lii.py @@ -1,5 +1,4 @@ -""" -Implementation of the CIME LII test. +"""Implementation of the CIME LII test. This is a CLM specific test: Verifies that interpolation of initial conditions onto an identical @@ -23,10 +22,11 @@ (2) Copy the finidat_interp_dest.nc file from the 'base' case to the inputdata space. Rename this to be similar to the name of the file pointed to in this -test's user_nl_clm file, but with a new creation date. +test's user_nl_ctsm file, but with a new creation date. -(3) Update this test's user_nl_clm file (in the appropriate testmods directory) -to point to the new finidat file. +(3) Update this test's user_nl_ctsm file (in the appropriate testmods directory, or in +namelist_defaults if the test is using an out-of-the-box initial conditions file and it is +acceptable to update that file) to point to the new finidat file. """ from CIME.SystemTests.system_tests_compare_two import SystemTestsCompareTwo @@ -35,22 +35,24 @@ logger = logging.getLogger(__name__) -class LII(SystemTestsCompareTwo): +class LII(SystemTestsCompareTwo): def __init__(self, case): - SystemTestsCompareTwo.__init__(self, case, - separate_builds = False, - run_two_suffix = 'no_interp', - run_one_description = 'use_init_interp set to true', - run_two_description = 'use_init_interp set to false') + SystemTestsCompareTwo.__init__( + self, + case, + separate_builds=False, + run_two_suffix="no_interp", + run_one_description="use_init_interp set to true", + run_two_description="use_init_interp set to false", + ) def _case_one_setup(self): - append_to_user_nl_files(caseroot = self._get_caseroot(), - component = "clm", - contents = "use_init_interp = .true.") + append_to_user_nl_files( + caseroot=self._get_caseroot(), component="clm", contents="use_init_interp = .true." + ) def _case_two_setup(self): - append_to_user_nl_files(caseroot = self._get_caseroot(), - component = "clm", - contents = "use_init_interp = .false.") - + append_to_user_nl_files( + caseroot=self._get_caseroot(), component="clm", contents="use_init_interp = .false." + ) diff --git a/cime_config/SystemTests/lii2finidatareas.py b/cime_config/SystemTests/lii2finidatareas.py index 21ba082fff..337e46bf39 100644 --- a/cime_config/SystemTests/lii2finidatareas.py +++ b/cime_config/SystemTests/lii2finidatareas.py @@ -1,17 +1,11 @@ -""" -Implementation of the LII2FINIDATAREAS test. +"""Implementation of the LII2FINIDATAREAS test. This is similar to the LII test, but tests init_interp with mode 'use_finidat_areas'. -As with the standard LII test, this must be used in a configuration for -which we have a compatible out-of-the-box finidat file (so that the run -with use_init_interp = .false. runs successfully). In constrast to our -standard LII test (which uses glcMEC_spunup_1way), this one can use a -standard CISM2%NOEVOLVE configuration: we do *not* need to set -GLC_TWO_WAY_COUPLING=FALSE; in fact, it's a better test if we have -GLC_TWO_WAY_COUPLING=TRUE: with this mode of operation, areas should -match between the two runs. +As with the standard LII test, this must be used in a configuration for which we have a +compatible out-of-the-box finidat file (so that the run with use_init_interp = +.false. runs successfully). It may not be totally necessary to have a system test covering this init_interp_method: between unit tests and inline checks, we have quite @@ -41,7 +35,7 @@ (3) Update namelist defaults to point to the new finidat file. If updating the out-of-the-box file is not desired, then you could instead -point to this new finidat file with a user_nl_clm file in this testmod. +point to this new finidat file with a user_nl_ctsm file in this testmod. """ from CIME.XML.standard_module_setup import * @@ -64,13 +58,15 @@ logger = logging.getLogger(__name__) -class LII2FINIDATAREAS(LII): +class LII2FINIDATAREAS(LII): def __init__(self, case): super(LII2FINIDATAREAS, self).__init__(case) def _case_one_setup(self): super(LII2FINIDATAREAS, self)._case_one_setup() - append_to_user_nl_files(caseroot = self._get_caseroot(), - component = "clm", - contents = "init_interp_method = 'use_finidat_areas'") + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component="clm", + contents="init_interp_method = 'use_finidat_areas'", + ) diff --git a/cime_config/SystemTests/lilacsmoke.py b/cime_config/SystemTests/lilacsmoke.py new file mode 100644 index 0000000000..66a94068da --- /dev/null +++ b/cime_config/SystemTests/lilacsmoke.py @@ -0,0 +1,438 @@ +"""Implementation of the CIME LILACSMOKE (LILAC smoke) test. + +This is a CTSM-specific test. It tests the building and running of CTSM via LILAC. Compset +is ignored, but grid is important. Also, it's important that this test use the nuopc +driver, both for the sake of the build and for extracting some runtime settings. This test +should also use the lilac testmod (or a testmod that derives from it) in order to +establish the user_nl_ctsm file correctly. + +Important directories under CASEROOT are: +- lilac_build: this contains the build and the runtime inputs for the lilac run +- lilac_atm_driver: this contains the build of the test driver as well as the run + directory in which the test is actually run + +Note that namelists for this test are generated in the build phase; they are NOT +regenerated when the test is submitted / run. This means that, if you have made any +changes that will impact namelists, you will need to rebuild this test. + +Note that this test is tied to a specific resolution (10x15) and has a hard-coded domain +file for this resolution: see the setting of lnd_domain_file below. + +""" + +import glob +import os +import shutil + +from CIME.SystemTests.system_tests_common import SystemTestsCommon +from CIME.utils import run_cmd, run_cmd_no_fail, symlink_force, new_lid, safe_copy, append_testlog +from CIME.build import post_build +from CIME.test_status import ( + NAMELIST_PHASE, + GENERATE_PHASE, + BASELINE_PHASE, + TEST_PASS_STATUS, + TEST_FAIL_STATUS, +) +from CIME.XML.standard_module_setup import * + +logger = logging.getLogger(__name__) + +_LILAC_RUNTIME_FILES = ["lnd_in", "lnd_modelio.nml", "lilac_in"] + + +class LILACSMOKE(SystemTestsCommon): + def __init__(self, case): + SystemTestsCommon.__init__(self, case) + + def build_phase(self, sharedlib_only=False, model_only=False): + if not sharedlib_only: + lndroot = self._case.get_value("COMP_ROOT_DIR_LND") + exeroot = self._case.get_value("EXEROOT") + 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 + # yet. This is to support rebuilding the test case. (The first time through, + # the build_dir won't exist yet; subsequent times, it will already exist, so + # we skip to the rebuild command.) + if not os.path.isdir(build_dir): + machine = self._case.get_value("MACH") + compiler = self._case.get_value("COMPILER") + debug = self._case.get_value("DEBUG") + # It would be possible to do this testing via the python interface rather + # than through a separate subprocess. However, we do it through a + # subprocess in order to test the full build_ctsm script, including + # command-line parsing. + cmd = "{script_path} {build_dir} --machine {machine} --compiler {compiler}".format( + script_path=script_path, build_dir=build_dir, machine=machine, compiler=compiler + ) + # It isn't straightforward to determine if pnetcdf is available on a + # machine. To keep things simple, always run without pnetcdf. + cmd += " --no-pnetcdf" + if debug: + cmd += " --build-debug" + self._run_build_cmd(cmd, exeroot, "build_ctsm.bldlog") + + # We call the build script with --rebuild even for an initial build. This is + # so we make sure to test the code path for --rebuild. (This is also needed if + # the user rebuilds the test case, in which case this will be the only command + # run, since the build_dir will already exist.) + cmd = "{script_path} {build_dir} --rebuild".format( + script_path=script_path, build_dir=build_dir + ) + self._run_build_cmd(cmd, exeroot, "rebuild_ctsm.bldlog") + + self._build_atm_driver() + + self._create_link_to_atm_driver() + + self._create_runtime_inputs() + + self._setup_atm_driver_rundir() + + self._cmpgen_namelists() + + # Setting logs=[] implies that we don't bother gzipping any of the build log + # files; that seems fine for these purposes (and it keeps the above code + # simpler). + post_build(self._case, logs=[], build_complete=True) + + def _build_atm_driver(self): + caseroot = self._case.get_value("CASEROOT") + lndroot = self._case.get_value("COMP_ROOT_DIR_LND") + blddir = os.path.join(caseroot, "lilac_atm_driver", "bld") + + if not os.path.exists(blddir): + os.makedirs(blddir) + symlink_force( + os.path.join(lndroot, "lilac", "atm_driver", "Makefile"), + 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(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(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 + # ctsm_build_environment.csh before building the atmosphere model. In the context + # of this test case, case.load_env does the equivalent. + self._case.load_env() + + self._run_build_cmd(makecmd, blddir, "atm_driver.bldlog") + + def _create_link_to_atm_driver(self): + caseroot = self._case.get_value("CASEROOT") + run_exe = (self._case.get_value("run_exe")).strip() + + # Make a symlink to the atm_driver executable so that the case's run command finds + # it in the expected location + symlink_force(os.path.join(caseroot, "lilac_atm_driver", "bld", "atm_driver.exe"), run_exe) + + def _create_runtime_inputs(self): + caseroot = self._case.get_value("CASEROOT") + runtime_inputs = self._runtime_inputs_dir() + + # NOTE: *** this test is currently tied to this single 10x15 grid resolution *** + lnd_grid = self._case.get_value("LND_GRID") + expect( + lnd_grid == "10x15", "this test is currently tied to this single 10x15 grid resolution" + ) + lnd_domain_file = os.path.join( + self._case.get_value("DIN_LOC_ROOT"), + "share", + "domains", + "domain.lnd.fv10x15_gx3v7.180321.nc", + ) + + # Cheat a bit here: Get the fsurdat file from the already-generated lnd_in file in + # the host test case - i.e., from the standard cime-based preview_namelists. But + # this isn't really a morally-objectionable cheat, because in the real workflow, + # we expect the user to identify fsurdat manually; in this testing situation, we + # need to come up with some way to replace this manual identification, so cheating + # feels acceptable. + self._case.create_namelists(component="lnd") + fsurdat = self._extract_var_from_namelist( + nl_filename=os.path.join(caseroot, "CaseDocs", "lnd_in"), varname="fsurdat" + ) + + self._fill_in_variables_in_file( + filepath=os.path.join(runtime_inputs, "ctsm.cfg"), + replacements={"lnd_domain_file": lnd_domain_file, "fsurdat": fsurdat}, + ) + + # The user_nl_ctsm in the case directory is set up based on the standard testmods + # mechanism. We use that one in place of the standard user_nl_ctsm, since the one + # in the case directory may contain test-specific modifications. + shutil.copyfile( + src=os.path.join(caseroot, "user_nl_ctsm"), + dst=os.path.join(runtime_inputs, "user_nl_ctsm"), + ) + + script_to_run = os.path.join(runtime_inputs, "make_runtime_inputs") + self._run_build_cmd( + "{} --rundir {}".format(script_to_run, runtime_inputs), + runtime_inputs, + "make_runtime_inputs.log", + ) + + # In lilac_in, we intentionally use the land mesh file for both atm_mesh_filename + # and lnd_mesh_filename + lnd_mesh = self._case.get_value("LND_DOMAIN_MESH") + casename = self._case.get_value("CASE") + self._fill_in_variables_in_file( + filepath=os.path.join(runtime_inputs, "lilac_in"), + replacements={ + "caseid": casename, + "atm_mesh_filename": lnd_mesh, + "lnd_mesh_filename": lnd_mesh, + "lilac_histfreq_option": "ndays", + }, + placeholders={"caseid": "ctsm_lilac", "lilac_histfreq_option": "never"}, + ) + + # We run download_input_data partly because it may be needed and partly to test + # this script. + script_to_run = os.path.join(runtime_inputs, "download_input_data") + self._run_build_cmd( + "{} --rundir {}".format(script_to_run, runtime_inputs), + runtime_inputs, + "download_input_data.log", + ) + + def _setup_atm_driver_rundir(self): + """Set up the directory from which we will actually do the run""" + lndroot = self._case.get_value("COMP_ROOT_DIR_LND") + rundir = self._atm_driver_rundir() + + if not os.path.exists(rundir): + os.makedirs(rundir) + shutil.copyfile( + src=os.path.join(lndroot, "lilac", "atm_driver", "atm_driver_in"), + dst=os.path.join(rundir, "atm_driver_in"), + ) + + # As elsewhere: assume the land variables also apply to the atmosphere + lnd_mesh = self._case.get_value("LND_DOMAIN_MESH") + lnd_nx = self._case.get_value("LND_NX") + lnd_ny = self._case.get_value("LND_NY") + expect( + self._case.get_value("STOP_OPTION") == "ndays", + "LILAC testing currently assumes STOP_OPTION of ndays, not {}".format( + self._case.get_value("STOP_OPTION") + ), + ) + stop_n = self._case.get_value("STOP_N") + casename = self._case.get_value("CASE") + self._fill_in_variables_in_file( + filepath=os.path.join(rundir, "atm_driver_in"), + replacements={ + "caseid": casename, + "atm_mesh_file": lnd_mesh, + "atm_global_nx": str(lnd_nx), + "atm_global_ny": str(lnd_ny), + "atm_stop_day": str(stop_n + 1), + "atm_ndays_all_segs": str(stop_n), + }, + ) + + for file_to_link in _LILAC_RUNTIME_FILES: + symlink_force( + os.path.join(self._runtime_inputs_dir(), file_to_link), + os.path.join(rundir, file_to_link), + ) + + init_generated_files_dir = os.path.join(rundir, "init_generated_files") + if not os.path.exists(init_generated_files_dir): + os.mkdir(init_generated_files_dir) + + def _cmpgen_namelists(self): + """Redoes the namelist comparison & generation with appropriate namelists + + The standard namelist comparison & generation is done with the CaseDocs directory + from the test case. That isn't appropriate here, because those namelists aren't + actually used in this test. Instead, we want to compare & generate the namelists + used by the atm_driver-lilac-ctsm execution. Here, we do some file copies and then + re-call the namelist comparison & generation script in order to accomplish + this. This will overwrite the namelists generated earlier in the test, and will + also replace the results of the NLCOMP phase. + + Note that we expect a failure in the NLCOMP phase that is run earlier in the test, + because that one will have compared the test's standard CaseDocs with the files + generated from here - and those two sets of namelists can be quite different. + """ + caseroot = self._case.get_value("CASEROOT") + casedocs = os.path.join(caseroot, "CaseDocs") + if os.path.exists(casedocs): + shutil.rmtree(casedocs) + os.makedirs(casedocs) + + # case_cmpgen_namelists uses the existence of drv_in to decide whether namelists + # need to be regenerated. We do NOT want it to regenerate namelists, so we give it + # the file it wants. + with open(os.path.join(casedocs, "drv_in"), "a") as drv_in: + pass + + for onefile in _LILAC_RUNTIME_FILES + ["atm_driver_in"]: + safe_copy( + os.path.join(self._atm_driver_rundir(), onefile), os.path.join(casedocs, onefile) + ) + + success = self._case.case_cmpgen_namelists() + # The setting of the NLCOMP phase status in case_cmpgen_namelists doesn't work + # here (probably because the test object has a saved version of the test status + # and so, when it goes to write the status of the build phase, it ends up + # overwriting whatever was set by case_cmpgen_namelists). So we need to set it + # here. + with self._test_status: + self._test_status.set_status( + NAMELIST_PHASE, + TEST_PASS_STATUS if success else TEST_FAIL_STATUS, + comments="(used lilac namelists)", + ) + + def _extract_var_from_namelist(self, nl_filename, varname): + """Tries to find a variable named varname in the given file; returns its value + + If not found, aborts + """ + with open(nl_filename) as nl_file: + for line in nl_file: + match = re.search(r'^ *{} *= *[\'"]([^\'"]+)'.format(varname), line) + if match: + return match.group(1) + expect(False, "{} not found in {}".format(varname, nl_filename)) + + def _fill_in_variables_in_file(self, filepath, replacements, placeholders=None): + """For the given file, make the given replacements + + replacements should be a dictionary mapping variable names to their values + + If placeholders is given, it should be a dictionary mapping some subset of + variable names to their placeholders. Anything not given here uses a placeholder + of 'FILL_THIS_IN'. + """ + if placeholders is None: + placeholders = {} + + orig_filepath = "{}.orig".format(filepath) + if not os.path.exists(orig_filepath): + shutil.copyfile(src=filepath, dst=orig_filepath) + os.remove(filepath) + + counts = dict.fromkeys(replacements, 0) + with open(orig_filepath) as orig_file: + with open(filepath, "w") as new_file: + for orig_line in orig_file: + line = orig_line + for varname in replacements: + if varname in placeholders: + this_placeholder = placeholders[varname] + else: + this_placeholder = "FILL_THIS_IN" + line, replacement_done = self._fill_in_variable( + line=line, + varname=varname, + value=replacements[varname], + placeholder=this_placeholder, + ) + if replacement_done: + counts[varname] += 1 + break + new_file.write(line) + + for varname in counts: + expect( + counts[varname] > 0, + "Did not find any instances of <{}> to replace in {}".format(varname, filepath), + ) + + def _fill_in_variable(self, line, varname, value, placeholder): + """Fill in a placeholder variable in a config or namelist file + + Returns a tuple: (newline, replacement_done) + - newline is the line with the given placeholder replaced with the given value if this + line is for varname; otherwise returns line unchanged + - replacement_done is True if the replacement was done, otherwise False + """ + if re.search(r"^ *{} *=".format(varname), line): + expect( + placeholder in line, + "Placeholder to replace ({}) not found in <{}>".format(placeholder, line.strip()), + ) + newline = line.replace(placeholder, value) + replacement_done = True + else: + newline = line + 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._lilac_build_dir(), "runtime_inputs") + + def _atm_driver_rundir(self): + return os.path.join(self._case.get_value("CASEROOT"), "lilac_atm_driver", "run") + + @staticmethod + def _run_build_cmd(cmd, exeroot, logfile): + """ + Runs the given build command, with output to the given logfile + + Args: + cmd: str (command to run) + exeroot: str (path to exeroot) + logfile: str (path to logfile) + """ + append_testlog(cmd) + run_cmd_no_fail(cmd, arg_stdout=logfile, combine_output=True, from_dir=exeroot) + with open(os.path.join(exeroot, logfile)) as lf: + append_testlog(lf.read()) + + def run_phase(self): + # This mimics a bit of what's done in the typical case.run. Note that + # case.get_mpirun_cmd creates a command that runs the executable given by + # case.run_exe. So it's important that (elsewhere in this test script) we create a + # link pointing from that to the atm_driver.exe executable. + lid = new_lid() + os.environ["OMP_NUM_THREADS"] = str(self._case.thread_count) + cmd = self._case.get_mpirun_cmd(allow_unresolved_envvars=False) + run_cmd_no_fail(cmd, from_dir=self._atm_driver_rundir()) + + self._link_to_output_files() + + def _link_to_output_files(self): + """Make links to the output files so that they appear in the directory expected by the test case + + Note: We do the run from a different directory in order to ensure that the run + isn't using any of the files that are staged by the test case in the standard run + directory. But then we need to create these links afterwards for the sake of + baseline generation / comparison. + """ + casename = self._case.get_value("CASE") + rundir = self._case.get_value("RUNDIR") + pattern = "{}*.nc".format(casename) + + # First remove any old files from the run directory + old_files = glob.glob(os.path.join(rundir, pattern)) + for one_file in old_files: + os.remove(one_file) + + # Now link to new files + output_files = glob.glob(os.path.join(self._atm_driver_rundir(), pattern)) + for one_file in output_files: + file_basename = os.path.basename(one_file) + symlink_force(one_file, os.path.join(rundir, file_basename)) diff --git a/cime_config/SystemTests/lreprstruct.py b/cime_config/SystemTests/lreprstruct.py new file mode 100644 index 0000000000..a03fb1815b --- /dev/null +++ b/cime_config/SystemTests/lreprstruct.py @@ -0,0 +1,75 @@ +""" +Implementation of the CIME LREPRSTRUCT (Land Reproductive Structure) test. + +This is a CTSM specific test: Verifies that we can allocate and use a crop reproductive +structure pool, and that answers are identical to a run with a single reproductive grain +pool. This is useful until we have tests that include AgSys, which will exercise this +capability more completely. + +(1) do a run with a second grain pool and two reproductive structure pools, with all + allocation going to the second reproductive structure pool +(2) do a standard run only a single grain pool, but with no crop seed replenishment + +The reason for having the new reproductive structure pools in the first case (rather than +the other way around) is that this results in having a few extra fields present in the +baselines. + +""" + +from CIME.SystemTests.system_tests_compare_two import SystemTestsCompareTwo +from CIME.XML.standard_module_setup import * +from CIME.SystemTests.test_utils.user_nl_utils import append_to_user_nl_files + +logger = logging.getLogger(__name__) + + +class LREPRSTRUCT(SystemTestsCompareTwo): + def __init__(self, case): + SystemTestsCompareTwo.__init__( + self, + case, + separate_builds=False, + run_two_suffix="grain1", + run_one_description="use a reproductive structure pool", + run_two_description="use a single grain pool", + ignore_fieldlist_diffs=True, + ) + + def _case_one_setup(self): + # We don't really need a second grain pool for this test, but we might as well do + # this to further exercise the looping over different reproductive components. + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component="clm", + contents="for_testing_use_second_grain_pool=.true.", + ) + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component="clm", + contents="for_testing_use_repr_structure_pool=.true.", + ) + + # Replace any GRAIN outputs with the same outputs for REPRODUCTIVE1 and REPRODUCTIVE2 + user_nl_clm_path = os.path.join(self._get_caseroot(), "user_nl_clm") + with open(user_nl_clm_path) as f: + user_nl_clm_text = f.read() + for grain_output in re.findall("GRAIN\w*", user_nl_clm_text): + user_nl_clm_text = user_nl_clm_text.replace( + grain_output, + grain_output.replace("GRAIN", "REPRODUCTIVE1") + + "', '" + + grain_output.replace("GRAIN", "REPRODUCTIVE2"), + ) + with open(user_nl_clm_path, "w") as f: + f.write(user_nl_clm_text) + + def _case_two_setup(self): + # This is needed in the nearly-standard case to prevent grain from being used to + # replenish crop seed deficits, thus making grain act like the reproductive + # structure pools. (It wouldn't hurt to do this in case one as well, but it + # shouldn't be needed there, since we shouldn't have any grain there anyway.) + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component="clm", + contents="for_testing_no_crop_seed_replenishment=.true.", + ) diff --git a/cime_config/SystemTests/lvg.py b/cime_config/SystemTests/lvg.py index 36fae196b2..4b990313f5 100644 --- a/cime_config/SystemTests/lvg.py +++ b/cime_config/SystemTests/lvg.py @@ -16,22 +16,28 @@ logger = logging.getLogger(__name__) -class LVG(SystemTestsCompareTwo): +class LVG(SystemTestsCompareTwo): def __init__(self, case): - SystemTestsCompareTwo.__init__(self, case, - separate_builds = False, - run_two_suffix = 'more_virtual', - run_one_description = 'standard set of virtual columns', - run_two_description = 'add virtual columns over Antarctica') + SystemTestsCompareTwo.__init__( + self, + case, + separate_builds=False, + run_two_suffix="more_virtual", + run_one_description="standard set of virtual columns", + run_two_description="add virtual columns over Antarctica", + ) def _case_one_setup(self): - append_to_user_nl_files(caseroot = self._get_caseroot(), - component = "clm", - contents = "glacier_region_behavior = 'single_at_atm_topo', 'virtual', 'virtual', 'multiple'") + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component="clm", + contents="glacier_region_behavior = 'single_at_atm_topo', 'virtual', 'virtual', 'multiple'", + ) def _case_two_setup(self): - append_to_user_nl_files(caseroot = self._get_caseroot(), - component = "clm", - contents = "glacier_region_behavior = 'single_at_atm_topo', 'virtual', 'virtual', 'virtual'") - + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component="clm", + contents="glacier_region_behavior = 'single_at_atm_topo', 'virtual', 'virtual', 'virtual'", + ) diff --git a/cime_config/SystemTests/lwiso.py b/cime_config/SystemTests/lwiso.py index 1083e2ff36..37cfd42603 100644 --- a/cime_config/SystemTests/lwiso.py +++ b/cime_config/SystemTests/lwiso.py @@ -17,15 +17,18 @@ logger = logging.getLogger(__name__) -class LWISO(SystemTestsCompareTwo): +class LWISO(SystemTestsCompareTwo): def __init__(self, case): - SystemTestsCompareTwo.__init__(self, case, - separate_builds = False, - run_two_suffix = 'nowiso', - run_one_description = 'water isotopes on', - run_two_description = 'water isotopes off', - ignore_fieldlist_diffs = True) + SystemTestsCompareTwo.__init__( + self, + case, + separate_builds=False, + run_two_suffix="nowiso", + run_one_description="water isotopes on", + run_two_description="water isotopes off", + ignore_fieldlist_diffs=True, + ) def _case_one_setup(self): # BUG(wjs, 2019-07-30, ESCOMP/ctsm#495) We currently can't turn on actual water @@ -33,12 +36,15 @@ def _case_one_setup(self): # enable_water_tracer_consistency_checks rather than enable_water_isotopes; # eventually, though, we should change this to the latter. (See # .) - append_to_user_nl_files(caseroot = self._get_caseroot(), - component = "clm", - contents = "enable_water_tracer_consistency_checks=.true.") + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component="clm", + contents="enable_water_tracer_consistency_checks=.true.", + ) def _case_two_setup(self): - append_to_user_nl_files(caseroot = self._get_caseroot(), - component = "clm", - contents = "enable_water_tracer_consistency_checks=.false.") - + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component="clm", + contents="enable_water_tracer_consistency_checks=.false.", + ) diff --git a/cime_config/SystemTests/rxcropmaturity.py b/cime_config/SystemTests/rxcropmaturity.py new file mode 100644 index 0000000000..b3b43cff07 --- /dev/null +++ b/cime_config/SystemTests/rxcropmaturity.py @@ -0,0 +1,442 @@ +""" +CTSM-specific test that first performs a GDD-generating run, then calls +Python code to generate the maturity requirement file. This is then used +in a sowing+maturity forced run, which finally is tested to ensure +correct behavior. + +Currently only supports 0.9x1.25, 1.9x2.5, and 10x15 resolutions. Eventually, +this test should be able to generate its own files at whatever resolution it's +called at. Well, really, the ultimate goal would be to give CLM the files +at the original resolution (for GGCMI phase 3, 0.5°) and have the stream +code do the interpolation. However, that wouldn't act on harvest dates +(which are needed for generate_gdds.py). I could have Python interpolate +those, but this would cause a potential inconsistency. +""" + +import os +import re +import systemtest_utils as stu +import subprocess +from CIME.SystemTests.system_tests_common import SystemTestsCommon +from CIME.XML.standard_module_setup import * +from CIME.SystemTests.test_utils.user_nl_utils import append_to_user_nl_files +import shutil, glob + +logger = logging.getLogger(__name__) + + +class RXCROPMATURITY(SystemTestsCommon): + def __init__(self, case): + # initialize an object interface to the SMS system test + SystemTestsCommon.__init__(self, case) + + # Ensure run length is at least 5 years. Minimum to produce one complete growing season (i.e., two complete calendar years) actually 4 years, but that only gets you 1 season usable for GDD generation, so you can't check for season-to-season consistency. + stop_n = self._case.get_value("STOP_N") + stop_option = self._case.get_value("STOP_OPTION") + stop_n_orig = stop_n + stop_option_orig = stop_option + if "nsecond" in stop_option: + stop_n /= 60 + stop_option = "nminutes" + if "nminute" in stop_option: + stop_n /= 60 + stop_option = "nhours" + if "nhour" in stop_option: + stop_n /= 24 + stop_option = "ndays" + if "nday" in stop_option: + stop_n /= 365 + stop_option = "nyears" + if "nmonth" in stop_option: + stop_n /= 12 + stop_option = "nyears" + error_message = None + if "nyear" not in stop_option: + error_message = ( + f"STOP_OPTION ({stop_option_orig}) must be nsecond(s), nminute(s), " + + "nhour(s), nday(s), nmonth(s), or nyear(s)" + ) + elif stop_n < 5: + error_message = ( + "RXCROPMATURITY must be run for at least 5 years; you requested " + + f"{stop_n_orig} {stop_option_orig[1:]}" + ) + if error_message is not None: + logger.error(error_message) + raise RuntimeError(error_message) + + # Get the number of complete years that will be run + self._run_Nyears = int(stop_n) + + # Only allow RXCROPMATURITY to be called with test cropMonthOutput + casebaseid = self._case.get_value("CASEBASEID") + if casebaseid.split("-")[-1] != "cropMonthOutput": + error_message = ( + "Only call RXCROPMATURITY with test cropMonthOutput " + + "to avoid potentially huge sets of daily outputs." + ) + logger.error(error_message) + raise RuntimeError(error_message) + + # Get files with prescribed sowing and harvest dates + self._get_rx_dates() + + # Which conda environment should we use? + self._get_conda_env() + + def run_phase(self): + # Modeling this after the SSP test, we create a clone to be the case whose outputs we don't + # want to be saved as baseline. + + # ------------------------------------------------------------------- + # (1) Set up GDD-generating run + # ------------------------------------------------------------------- + # Create clone to be GDD-Generating case + logger.info("RXCROPMATURITY log: cloning setup") + case_rxboth = self._case + caseroot = self._case.get_value("CASEROOT") + clone_path = f"{caseroot}.gddgen" + self._path_gddgen = clone_path + if os.path.exists(self._path_gddgen): + shutil.rmtree(self._path_gddgen) + logger.info("RXCROPMATURITY log: cloning") + case_gddgen = self._case.create_clone(clone_path, keepexe=True) + logger.info("RXCROPMATURITY log: done cloning") + + os.chdir(self._path_gddgen) + self._set_active_case(case_gddgen) + + # Set up stuff that applies to both tests + self._setup_all() + + # Add stuff specific to GDD-Generating run + logger.info("RXCROPMATURITY log: modify user_nl files: generate GDDs") + self._append_to_user_nl_clm( + [ + "generate_crop_gdds = .true.", + "use_mxmat = .false.", + " ", + "! (h2) Daily outputs for GDD generation and figure-making", + "hist_fincl3 = 'GDDACCUM', 'GDDHARV'", + "hist_nhtfrq(3) = -24", + "hist_mfilt(3) = 365", + "hist_type1d_pertape(3) = 'PFTS'", + "hist_dov2xy(3) = .false.", + ] + ) + + # If flanduse_timeseries is defined, we need to make a static version for this test. This + # should have every crop in most of the world. + self._get_flanduse_timeseries_in(case_gddgen) + if self._flanduse_timeseries_in is not None: + + # Download files from the server, if needed + case_gddgen.check_all_input_data() + + # Make custom version of surface file + logger.info("RXCROPMATURITY log: run fsurdat_modifier") + self._run_fsurdat_modifier() + + # ------------------------------------------------------------------- + # (2) Perform GDD-generating run and generate prescribed GDDs file + # ------------------------------------------------------------------- + logger.info("RXCROPMATURITY log: Start GDD-Generating run") + + # As per SSP test: + # "No history files expected, set suffix=None to avoid compare error" + # We *do* expect history files here, but anyway. This works. + self._skip_pnl = False + self.run_indv(suffix=None, st_archive=True) + + self._run_generate_gdds(case_gddgen) + + # ------------------------------------------------------------------- + # (3) Set up and perform Prescribed Calendars run + # ------------------------------------------------------------------- + os.chdir(caseroot) + self._set_active_case(case_rxboth) + + # Set up stuff that applies to both tests + self._setup_all() + + # Add stuff specific to Prescribed Calendars run + logger.info("RXCROPMATURITY log: modify user_nl files: Prescribed Calendars") + self._append_to_user_nl_clm( + [ + "generate_crop_gdds = .false.", + f"stream_fldFileName_cultivar_gdds = '{self._gdds_file}'", + ] + ) + + self.run_indv() + + # ------------------------------------------------------------------- + # (4) Check Prescribed Calendars run + # ------------------------------------------------------------------- + logger.info("RXCROPMATURITY log: output check: Prescribed Calendars") + self._run_check_rxboth_run() + + # Get sowing and harvest dates for this resolution. + def _get_rx_dates(self): + # Eventually, I want to remove these hard-coded resolutions so that this test can generate + # its own sowing and harvest date files at whatever resolution is requested. + lnd_grid = self._case.get_value("LND_GRID") + input_data_root = self._case.get_value("DIN_LOC_ROOT") + processed_crop_dates_dir = f"{input_data_root}/lnd/clm2/cropdata/calendars/processed" + if lnd_grid == "10x15": + self._sdatefile = os.path.join( + processed_crop_dates_dir, + "sdates_ggcmi_crop_calendar_phase3_v1.01_nninterp-f10_f10_mg37.2000-2000.20230330_165301.nc", + ) + self._hdatefile = os.path.join( + processed_crop_dates_dir, + "hdates_ggcmi_crop_calendar_phase3_v1.01_nninterp-f10_f10_mg37.2000-2000.20230330_165301.nc", + ) + elif lnd_grid == "1.9x2.5": + self._sdatefile = os.path.join( + processed_crop_dates_dir, + "sdates_ggcmi_crop_calendar_phase3_v1.01_nninterp-f19_g17.2000-2000.20230102_175625.nc", + ) + self._hdatefile = os.path.join( + processed_crop_dates_dir, + "hdates_ggcmi_crop_calendar_phase3_v1.01_nninterp-f19_g17.2000-2000.20230102_175625.nc", + ) + elif lnd_grid == "0.9x1.25": + self._sdatefile = os.path.join( + processed_crop_dates_dir, + "sdates_ggcmi_crop_calendar_phase3_v1.01_nninterp-f09_g17.2000-2000.20230520_134417.nc", + ) + self._hdatefile = os.path.join( + processed_crop_dates_dir, + "hdates_ggcmi_crop_calendar_phase3_v1.01_nninterp-f09_g17.2000-2000.20230520_134418.nc", + ) + else: + error_message = "ERROR: RXCROPMATURITY currently only supports 0.9x1.25, 1.9x2.5, and 10x15 resolutions" + logger.error(error_message) + raise RuntimeError(error_message) + + # Ensure files exist + error_message = None + if not os.path.exists(self._sdatefile): + error_message = f"ERROR: Sowing date file not found: {self._sdatefile}" + elif not os.path.exists(self._hdatefile): + error_message = f"ERROR: Harvest date file not found: {self._sdatefile}" + if error_message is not None: + logger.error(error_message) + raise RuntimeError(error_message) + + def _setup_all(self): + logger.info("RXCROPMATURITY log: _setup_all start") + + # Get some info + self._ctsm_root = self._case.get_value("COMP_ROOT_DIR_LND") + run_startdate = self._case.get_value("RUN_STARTDATE") + self._run_startyear = int(run_startdate.split("-")[0]) + + # Set sowing dates file (and other crop calendar settings) for all runs + logger.info("RXCROPMATURITY log: modify user_nl files: all tests") + self._modify_user_nl_allruns() + logger.info("RXCROPMATURITY log: _setup_all done") + + # Make a surface dataset that has every crop in every gridcell + def _run_fsurdat_modifier(self): + + # fsurdat should be defined. Where is it? + self._fsurdat_in = None + with open(self._lnd_in_path, "r") as lnd_in: + for line in lnd_in: + fsurdat_in = re.match(r" *fsurdat *= *'(.*)'", line) + if fsurdat_in: + self._fsurdat_in = fsurdat_in.group(1) + break + if self._fsurdat_in is None: + error_message = "fsurdat not defined" + logger.error(error_message) + raise RuntimeError(error_message) + + # Where we will save the fsurdat version for this test + path, ext = os.path.splitext(self._fsurdat_in) + dir_in, filename_in_noext = os.path.split(path) + self._fsurdat_out = os.path.join( + self._path_gddgen, f"{filename_in_noext}.all_crops_everywhere{ext}" + ) + + # Make fsurdat for this test, if not already done + if not os.path.exists(self._fsurdat_out): + tool_path = os.path.join( + self._ctsm_root, + "tools", + "modify_input_files", + "fsurdat_modifier", + ) + + # Create configuration file for fsurdat_modifier + self._cfg_path = os.path.join( + self._path_gddgen, + "modify_fsurdat_allcropseverywhere.cfg", + ) + self._create_config_file_evenlysplitcrop() + + command = f"python3 {tool_path} {self._cfg_path} " + stu.run_python_script( + self._get_caseroot(), + self._this_conda_env, + command, + tool_path, + ) + + # Modify namelist + logger.info("RXCROPMATURITY log: modify user_nl files: new fsurdat") + self._append_to_user_nl_clm( + [ + "fsurdat = '{}'".format(self._fsurdat_out), + "do_transient_crops = .false.", + "flanduse_timeseries = ''", + "use_init_interp = .true.", + ] + ) + + def _create_config_file_evenlysplitcrop(self): + """ + Open the new and the template .cfg files + Loop line by line through the template .cfg file + When string matches, replace that line's content + """ + cfg_template_path = os.path.join( + self._ctsm_root, "tools/modify_input_files/modify_fsurdat_template.cfg" + ) + + with open(self._cfg_path, "w", encoding="utf-8") as cfg_out: + # Copy template, replacing some lines + with open(cfg_template_path, "r", encoding="utf-8") as cfg_in: + for line in cfg_in: + if re.match(r" *evenly_split_cropland *=", line): + line = f"evenly_split_cropland = True" + elif re.match(r" *fsurdat_in *=", line): + line = f"fsurdat_in = {self._fsurdat_in}" + elif re.match(r" *fsurdat_out *=", line): + line = f"fsurdat_out = {self._fsurdat_out}" + elif re.match(r" *process_subgrid_section *=", line): + line = f"process_subgrid_section = True" + cfg_out.write(line) + + # Add new lines + cfg_out.write("\n") + cfg_out.write("[modify_fsurdat_subgrid_fractions]\n") + cfg_out.write("PCT_CROP = 100.0\n") + cfg_out.write("PCT_NATVEG = 0.0\n") + cfg_out.write("PCT_GLACIER = 0.0\n") + cfg_out.write("PCT_WETLAND = 0.0\n") + cfg_out.write("PCT_LAKE = 0.0\n") + cfg_out.write("PCT_URBAN = 0.0 0.0 0.0\n") + + def _run_check_rxboth_run(self): + + output_dir = os.path.join(self._get_caseroot(), "run") + first_usable_year = self._run_startyear + 2 + last_usable_year = self._run_startyear + self._run_Nyears - 2 + + tool_path = os.path.join( + self._ctsm_root, "python", "ctsm", "crop_calendars", "check_rxboth_run.py" + ) + command = ( + f"python3 {tool_path} " + + f"--directory {output_dir} " + + f"-y1 {first_usable_year} " + + f"-yN {last_usable_year} " + + f"--rx-sdates-file {self._sdatefile} " + + f"--rx-gdds-file {self._gdds_file} " + ) + stu.run_python_script( + self._get_caseroot(), + self._this_conda_env, + command, + tool_path, + ) + + def _modify_user_nl_allruns(self): + nl_additions = [ + "stream_meshfile_cropcal = '{}'".format(self._case.get_value("LND_DOMAIN_MESH")), + "stream_fldFileName_sdate = '{}'".format(self._sdatefile), + "stream_year_first_cropcal = 2000", + "stream_year_last_cropcal = 2000", + "model_year_align_cropcal = 2000", + " ", + "! (h1) Annual outputs on sowing or harvest axis", + "hist_fincl2 = 'GRAINC_TO_FOOD_PERHARV', 'GRAINC_TO_FOOD_ANN', 'SDATES', 'SDATES_PERHARV', 'SYEARS_PERHARV', 'HDATES', 'GDDHARV_PERHARV', 'GDDACCUM_PERHARV', 'HUI_PERHARV', 'SOWING_REASON_PERHARV', 'HARVEST_REASON_PERHARV'", + "hist_nhtfrq(2) = 17520", + "hist_mfilt(2) = 999", + "hist_type1d_pertape(2) = 'PFTS'", + "hist_dov2xy(2) = .false.", + ] + self._append_to_user_nl_clm(nl_additions) + + def _run_generate_gdds(self, case_gddgen): + self._generate_gdds_dir = os.path.join(self._path_gddgen, "generate_gdds_out") + os.makedirs(self._generate_gdds_dir) + + # Get arguments to generate_gdds.py + dout_sr = case_gddgen.get_value("DOUT_S_ROOT") + input_dir = os.path.join(dout_sr, "lnd", "hist") + first_season = self._run_startyear + 2 + last_season = self._run_startyear + self._run_Nyears - 2 + sdates_file = self._sdatefile + hdates_file = self._hdatefile + + # It'd be much nicer to call generate_gdds.main(), but I can't import generate_gdds. + tool_path = os.path.join( + self._ctsm_root, "python", "ctsm", "crop_calendars", "generate_gdds.py" + ) + command = " ".join( + [ + f"python3 {tool_path}", + f"--input-dir {input_dir}", + f"--first-season {first_season}", + f"--last-season {last_season}", + f"--sdates-file {sdates_file}", + f"--hdates-file {hdates_file}", + f"--output-dir generate_gdds_out", + f"--skip-crops miscanthus,irrigated_miscanthus", + ] + ) + stu.run_python_script( + self._get_caseroot(), + self._this_conda_env, + command, + tool_path, + ) + + # Where were the prescribed maturity requirements saved? + generated_gdd_files = glob.glob(os.path.join(self._generate_gdds_dir, "gdds_*.nc")) + if len(generated_gdd_files) != 1: + error_message = f"ERROR: Expected one matching prescribed maturity requirements file; found {len(generated_gdd_files)}: {generated_gdd_files}" + logger.error(error_message) + raise RuntimeError(error_message) + self._gdds_file = generated_gdd_files[0] + + def _get_conda_env(self): + conda_setup_commands = stu.cmds_to_setup_conda(self._get_caseroot()) + + # If npl conda environment is available, use that (It has dask, which + # enables chunking, which makes reading daily 1-degree netCDF files + # much more efficient. + if "npl " in os.popen(conda_setup_commands + "conda env list").read(): + self._this_conda_env = "npl" + else: + self._this_conda_env = "ctsm_pylib" + + def _append_to_user_nl_clm(self, additions): + caseroot = self._get_caseroot() + append_to_user_nl_files(caseroot=caseroot, component="clm", contents=additions) + + # Is flanduse_timeseries defined? If so, where is it? + def _get_flanduse_timeseries_in(self, case): + case.create_namelists(component="lnd") + self._lnd_in_path = os.path.join(self._path_gddgen, "CaseDocs", "lnd_in") + self._flanduse_timeseries_in = None + with open(self._lnd_in_path, "r") as lnd_in: + for line in lnd_in: + flanduse_timeseries_in = re.match(r" *flanduse_timeseries *= *'(.*)'", line) + if flanduse_timeseries_in: + self._flanduse_timeseries_in = flanduse_timeseries_in.group(1) + break diff --git a/cime_config/SystemTests/soilstructud.py b/cime_config/SystemTests/soilstructud.py index c59ab8b4f6..42ffae54be 100644 --- a/cime_config/SystemTests/soilstructud.py +++ b/cime_config/SystemTests/soilstructud.py @@ -2,10 +2,10 @@ Implementation of the CIME SOILSTRUCTUD test. This is a CLM specific test: -Verifies that a simulation that points to user_nl_clm containing +Verifies that a simulation that points to user_nl_ctsm containing soil_layerstruct_userdefined_nlevsoi = 4 soil_layerstruct_userdefined = 0.1d0,0.3d0,0.6d0,1.0d0,1.0d0 -gives bfb same results as one that points to user_nl_clm containing +gives bfb same results as one that points to user_nl_ctsm containing soil_layerstruct_predefined = '4SL_2m' """ @@ -16,22 +16,28 @@ logger = logging.getLogger(__name__) -class SOILSTRUCTUD(SystemTestsCompareTwo): +class SOILSTRUCTUD(SystemTestsCompareTwo): def __init__(self, case): - SystemTestsCompareTwo.__init__(self, case, - separate_builds = False, - run_two_suffix = '4SL_2m', - run_one_description = 'soil_layerstruct_userdefined', - run_two_description = 'soil_layerstruct_predefined') + SystemTestsCompareTwo.__init__( + self, + case, + separate_builds=False, + run_two_suffix="4SL_2m", + run_one_description="soil_layerstruct_userdefined", + run_two_description="soil_layerstruct_predefined", + ) def _case_one_setup(self): - append_to_user_nl_files(caseroot = self._get_caseroot(), - component = "clm", - contents = "soil_layerstruct_userdefined_nlevsoi = 4,soil_layerstruct_userdefined = 0.1d0,0.3d0,0.6d0,1.0d0,1.0d0") + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component="clm", + contents="soil_layerstruct_userdefined_nlevsoi = 4,soil_layerstruct_userdefined = 0.1d0,0.3d0,0.6d0,1.0d0,1.0d0", + ) def _case_two_setup(self): - append_to_user_nl_files(caseroot = self._get_caseroot(), - component = "clm", - contents = "soil_layerstruct_predefined = '4SL_2m'") - + append_to_user_nl_files( + caseroot=self._get_caseroot(), + component="clm", + contents="soil_layerstruct_predefined = '4SL_2m'", + ) diff --git a/cime_config/SystemTests/ssp.py b/cime_config/SystemTests/ssp.py index 4aad37274a..bd554aeae9 100644 --- a/cime_config/SystemTests/ssp.py +++ b/cime_config/SystemTests/ssp.py @@ -18,8 +18,8 @@ logger = logging.getLogger(__name__) -class SSP(SystemTestsCommon): +class SSP(SystemTestsCommon): def __init__(self, case): """ initialize an object interface to the SSP system test @@ -45,13 +45,13 @@ def run_phase(self): # determine run lengths needed below stop_nf = self._case.get_value("STOP_N") - stop_n1 = stop_nf / 2 + stop_n1 = int(stop_nf / 2) stop_n2 = stop_nf - stop_n1 - #------------------------------------------------------------------- + # ------------------------------------------------------------------- # (1) do a spinup run in the main case in the cloned ref case # (short term archiving is on) - #------------------------------------------------------------------- + # ------------------------------------------------------------------- os.chdir(clone_path) self._set_active_case(clone) @@ -61,20 +61,24 @@ def run_phase(self): with clone: clone.set_value("CLM_ACCELERATED_SPINUP", "on") - clone.set_value("STOP_N",stop_n1) + clone.set_value("STOP_N", stop_n1) dout_sr = clone.get_value("DOUT_S_ROOT") # No history files expected, set suffix=None to avoid compare error self._skip_pnl = False self.run_indv(suffix=None, st_archive=True) - #------------------------------------------------------------------- + # ------------------------------------------------------------------- # (2) do a hybrid, non-spinup run in orig_case - #------------------------------------------------------------------- + # ------------------------------------------------------------------- os.chdir(caseroot) self._set_active_case(orig_case) - refdate = run_cmd_no_fail(r'ls -1dt {}/rest/*-00000* | head -1 | sed "s/-00000.*//" | sed "s/^.*rest\///"'.format(dout_sr)) + refdate = run_cmd_no_fail( + r'ls -1dt {}/rest/*-00000* | head -1 | sed "s/-00000.*//" | sed "s/^.*rest\///"'.format( + dout_sr + ) + ) refsec = "00000" # obtain rpointer files and necessary restart files from short term archiving directory @@ -83,7 +87,14 @@ def run_phase(self): rest_path = os.path.join(dout_sr, "rest", "{}-{}".format(refdate, refsec)) for item in glob.glob("{}/*{}*".format(rest_path, refdate)): - os.symlink(item, os.path.join(rundir, os.path.basename(item))) + link_name = os.path.join(rundir, os.path.basename(item)) + if os.path.islink(link_name) and os.readlink(link_name) == item: + # Link is already set up correctly: do nothing + # (os.symlink raises an exception if you try to replace an + # existing file) + pass + else: + os.symlink(item, link_name) for item in glob.glob("{}/*rpointer*".format(rest_path)): shutil.copy(item, rundir) diff --git a/cime_config/SystemTests/systemtest_utils.py b/cime_config/SystemTests/systemtest_utils.py new file mode 100644 index 0000000000..c5ac986abd --- /dev/null +++ b/cime_config/SystemTests/systemtest_utils.py @@ -0,0 +1,86 @@ +""" +Reduce code duplication by putting reused functions here. +""" + +import os, subprocess + + +def cmds_to_setup_conda(caseroot): + # Add specific commands needed on different machines to get conda available + # Use semicolon here since it's OK to fail + # + conda_setup_commands = ". " + caseroot + "/.env_mach_specific.sh; " + # Setting CONDA_PREFIX to empty ensures that this works even if called from + # a shell with a conda environment activated + conda_setup_commands += "CONDA_PREFIX=; " + # Execute the module unload/load when "which conda" fails + # eg on cheyenne + try: + subprocess.run("which conda", shell=True, check=True) + except subprocess.CalledProcessError: + # Remove python and add conda to environment for cheyennne + unload_python_load_conda = "module unload python; module load conda;" + # Make sure that adding this actually loads conda + subprocess.run(unload_python_load_conda + "which conda", shell=True, check=True) + # Save + conda_setup_commands += " " + unload_python_load_conda + + return conda_setup_commands + + +def cmds_to_run_via_conda(caseroot, conda_run_call, command): + # Run in the specified conda environment + conda_setup_commands = cmds_to_setup_conda(caseroot) + conda_setup_commands += " " + conda_run_call + + # Finish with Python script call + command = conda_setup_commands + " " + command + print(f"command: {command}") + + return command + + +def run_python_script(caseroot, this_conda_env, command_in, tool_path): + + # First, try with "conda run -n" + command = cmds_to_run_via_conda(caseroot, f"conda run -n {this_conda_env}", command_in) + + # Run with logfile + tool_name = os.path.split(tool_path)[-1] + try: + with open(tool_name + ".log", "w") as f: + subprocess.run( + command, shell=True, check=True, text=True, stdout=f, stderr=subprocess.STDOUT + ) + except subprocess.CalledProcessError as error: + # Retry with the original "conda activate" method + command = cmds_to_run_via_conda( + caseroot, + f"conda activate {this_conda_env} && ", + command_in, + ) + try: + with open(tool_name + ".log2", "w") as f: + subprocess.run( + command, shell=True, check=True, text=True, stdout=f, stderr=subprocess.STDOUT + ) + except subprocess.CalledProcessError as error: + print("ERROR while getting the conda environment and/or ") + print(f"running the {tool_name} tool: ") + print(f"(1) If your {this_conda_env} environment is out of date or you ") + print(f"have not created the {this_conda_env} environment, yet, you may ") + print("get past this error by running ./py_env_create ") + print("in your ctsm directory and trying this test again. ") + print("(2) If conda is not available, install and load conda, ") + print("run ./py_env_create, and then try this test again. ") + print("(3) If (1) and (2) are not the issue, then you may be ") + print(f"getting an error within {tool_name} itself. ") + print("Default error message: ") + print(error.output) + raise + except: + print(f"ERROR trying to run {tool_name}.") + raise + except: + print(f"ERROR trying to run {tool_name}.") + raise diff --git a/cime_config/buildlib b/cime_config/buildlib index fabf2e8d45..4e3a89f1fd 100755 --- a/cime_config/buildlib +++ b/cime_config/buildlib @@ -1,7 +1,7 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """ -build clm library +build ctsm library """ import sys, os @@ -9,7 +9,7 @@ _CIMEROOT = os.environ.get("CIMEROOT") if _CIMEROOT is None: raise SystemExit("ERROR: must set CIMEROOT environment variable") -_LIBDIR = os.path.join(_CIMEROOT, "scripts", "Tools") +_LIBDIR = os.path.join(_CIMEROOT, "CIME", "Tools") sys.path.append(_LIBDIR) from standard_script_setup import * @@ -21,59 +21,176 @@ from CIME.utils import run_cmd, expect logger = logging.getLogger(__name__) ############################################################################### -def _main_func(): +def _write_ctsm_mk(gmake, gmake_opts, makefile, exeroot, libroot): + """Writes a ctsm.mk file in exeroot. + + This file can be included by atmosphere model builds outside of cime. + """ + + cime_output_file = os.path.join(exeroot, "cime_variables.mk") + # 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} " + "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)) + expect(rc == 0, "Command %s failed with rc=%s" % (cmd, rc)) + + ctsm_mk_path = os.path.join(exeroot, "ctsm.mk") + with open(ctsm_mk_path, "w") as ctsm_mk: + ctsm_mk.write( + """ +# ====================================================================== +# Include this file to get makefile variables needed to include / link +# LILAC/CTSM in an atmosphere model's build +# +# Variables of interest are: +# - CTSM_INCLUDES: add this to the compilation line +# - CTSM_LIBS: add this to the link line +# ====================================================================== + +# ====================================================================== +# The following CIME variables are meant for internal use, and generally +# should not be included directly in an atmosphere model's build. +# ====================================================================== + +""" + ) + with open(cime_output_file) as infile: + ctsm_mk.write(infile.read()) + + ctsm_bld_dir = os.path.abspath(os.path.join(libroot, os.pardir)) + with open(ctsm_mk_path, "a") as ctsm_mk: + ctsm_mk.write( + """ +# ====================================================================== +# The following settings are meant for internal use, and generally +# should not be included directly in an atmosphere model's build. +# NOTE: clm library name and subdirectory will eventually need to +# be updated to ctsm. +# ====================================================================== + +CTSM_BLD_DIR = {ctsm_bld_dir} +CTSM_INC = $(CTSM_BLD_DIR)/clm/obj + +# ====================================================================== +# The following settings should be included in an atmosphere model's build. +# ====================================================================== + +CTSM_INCLUDES = $(CIME_ESMF_F90COMPILEPATHS) -I$(CIME_CSM_SHR_INCLUDE) -I$(CTSM_INC) +CTSM_LIBS = -L$(CTSM_BLD_DIR)/lib -lclm $(CIME_ULIBS) $(CIME_SLIBS) $(CIME_MLIBS) $(CIME_F90_LDFLAGS) +""".format( + ctsm_bld_dir=ctsm_bld_dir + ) + ) + + ############################################################################### +def _main_func(): + ############################################################################### caseroot, libroot, bldroot = parse_input(sys.argv) with Case(caseroot) as case: casetools = case.get_value("CASETOOLS") + makefile = os.path.join(casetools, "Makefile") lnd_root = case.get_value("COMP_ROOT_DIR_LND") gmake_j = case.get_value("GMAKE_J") gmake = case.get_value("GMAKE") + gmake_opts = get_standard_makefile_args(case) driver = case.get_value("COMP_INTERFACE").lower() + lilac_mode = case.get_value("LILAC_MODE") - #------------------------------------------------------- + if lilac_mode == "on": + driver = "lilac" + + # ------------------------------------------------------- # create Filepath file - #------------------------------------------------------- - filepath_file = os.path.join(bldroot,"Filepath") + # ------------------------------------------------------- + compname = case.get_value("COMP_LND") + filepath_file = os.path.join(bldroot, "Filepath") if not os.path.isfile(filepath_file): caseroot = case.get_value("CASEROOT") - paths = [os.path.join(caseroot,"SourceMods","src.clm"), - os.path.join(lnd_root,"src","main"), - os.path.join(lnd_root,"src","biogeophys"), - os.path.join(lnd_root,"src","biogeochem"), - os.path.join(lnd_root,"src","soilbiogeochem"), - os.path.join(lnd_root,"src","dyn_subgrid"), - os.path.join(lnd_root,"src","init_interp"), - os.path.join(lnd_root,"src","fates"), - os.path.join(lnd_root,"src","fates","main"), - os.path.join(lnd_root,"src","fates","biogeophys"), - os.path.join(lnd_root,"src","fates","biogeochem"), - os.path.join(lnd_root,"src","fates","fire"), - os.path.join(lnd_root,"src","utils"), - os.path.join(lnd_root,"src","cpl"), - os.path.join(lnd_root,"src","cpl",driver)] + expect( + ((compname == "clm") or (compname == "ctsm")), + "Unexpected COMP_LND name: %s" % (compname), + ) + + paths = [ + os.path.join(caseroot, "SourceMods", "src." + compname), + os.path.join(lnd_root, "src", "cpl", driver), + os.path.join(lnd_root, "src", "main"), + os.path.join(lnd_root, "src", "biogeophys"), + os.path.join(lnd_root, "src", "biogeochem"), + os.path.join(lnd_root, "src", "soilbiogeochem"), + os.path.join(lnd_root, "src", "dyn_subgrid"), + os.path.join(lnd_root, "src", "init_interp"), + os.path.join(lnd_root, "src", "self_tests"), + os.path.join(lnd_root, "src", "fates"), + os.path.join(lnd_root, "src", "fates", "main"), + os.path.join(lnd_root, "src", "fates", "biogeophys"), + os.path.join(lnd_root, "src", "fates", "biogeochem"), + os.path.join(lnd_root, "src", "fates", "fire"), + os.path.join(lnd_root, "src", "fates", "parteh"), + os.path.join(lnd_root, "src", "utils"), + os.path.join(lnd_root, "src", "cpl"), + os.path.join(lnd_root, "src", "cpl", "utils"), + ] + + if lilac_mode == "on": + paths.append(os.path.join(lnd_root, "lilac", "src")) + # If we want to build with a real river model (e.g., MOSART), we'll need + # to use its directories in place of stub_rof + paths.append(os.path.join(lnd_root, "lilac", "stub_rof")) + + if driver == "lilac" or driver == "nuopc": + paths.append(os.path.join(lnd_root, "src", "cpl", "share_esmf")) + with open(filepath_file, "w") as filepath: filepath.write("\n".join(paths)) filepath.write("\n") - #------------------------------------------------------- + # ------------------------------------------------------- # create the library in libroot - #------------------------------------------------------- + # ------------------------------------------------------- - complib = os.path.join(libroot,"libclm.a") - makefile = os.path.join(casetools, "Makefile") + complib = os.path.join(libroot, "lib%s.a" % (compname)) - cmd = "{} complib -j {} MODEL=clm COMPLIB={} -f {} {}" \ - .format(gmake, gmake_j, complib, makefile, get_standard_makefile_args(case)) + cmd = "{} complib -j {} COMP_NAME={} COMPLIB={} -f {} {}".format( + gmake, gmake_j, compname, complib, makefile, gmake_opts + ) rc, out, err = run_cmd(cmd) - logger.info("%s: \n\n output:\n %s \n\n err:\n\n%s\n"%(cmd,out,err)) + logger.info("%s: \n\n output:\n %s \n\n err:\n\n%s\n" % (cmd, out, err)) expect(rc == 0, "Command %s failed with rc=%s" % (cmd, rc)) + # ------------------------------------------------------------------------ + # for lilac usage, we need a file containing some Makefile variables (for the atmosphere model's build) + # ------------------------------------------------------------------------ + + if lilac_mode == "on": + _write_ctsm_mk( + gmake=gmake, + gmake_opts=gmake_opts, + makefile=makefile, + exeroot=case.get_value("EXEROOT"), + libroot=libroot, + ) + + ############################################################################### if __name__ == "__main__": + logger.warning( + "WARNING: buildlib is being called as a program rather than a subroutine as " + + "it is expected to be in the CESM context" + ) _main_func() diff --git a/cime_config/buildnml b/cime_config/buildnml index 9940de97a3..e239f0ec58 100755 --- a/cime_config/buildnml +++ b/cime_config/buildnml @@ -1,21 +1,21 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """ -CLM namelist creator +CTSM namelist creator """ -import sys, os, shutil +import sys, os, shutil, re _CIMEROOT = os.environ.get("CIMEROOT") if _CIMEROOT is None: raise SystemExit("ERROR: must set CIMEROOT environment variable") -_LIBDIR = os.path.join(_CIMEROOT, "scripts", "Tools") +_LIBDIR = os.path.join(_CIMEROOT, "CIME", "Tools") sys.path.append(_LIBDIR) -from standard_script_setup import * -from CIME.buildnml import create_namelist_infile, parse_input -from CIME.case import Case -from CIME.utils import expect, run_cmd +from standard_script_setup import * +from CIME.buildnml import create_namelist_infile, parse_input +from CIME.case import Case +from CIME.utils import expect, run_cmd logger = logging.getLogger(__name__) @@ -23,17 +23,17 @@ _config_cache_template = """ -Specifies clm physics +Specifies CTSM physics """ ############################################################################### def buildnml(case, caseroot, compname): -############################################################################### - """Build the clm namelist """ + ############################################################################### + """Build the CTSM namelist""" - # Build the component namelist - if compname != "clm": + # Build the component namelist + if compname != "ctsm" and compname != "clm": raise AttributeError lnd_root = case.get_value("COMP_ROOT_DIR_LND") @@ -41,6 +41,7 @@ def buildnml(case, caseroot, compname): configuration = case.get_value("CLM_CONFIGURATION") structure = case.get_value("CLM_STRUCTURE") ccsm_co2_ppmv = case.get_value("CCSM_CO2_PPMV") + casename = case.get_value("CASE") clm_co2_type = case.get_value("CLM_CO2_TYPE") clm_namelist_opts = case.get_value("CLM_NAMELIST_OPTS") clm_bldnml_opts = case.get_value("CLM_BLDNML_OPTS") @@ -50,9 +51,6 @@ def buildnml(case, caseroot, compname): clm_accelerated_spinup = case.get_value("CLM_ACCELERATED_SPINUP") comp_atm = case.get_value("COMP_ATM") lnd_grid = case.get_value("LND_GRID") - lnd_ncpl = case.get_value("LND_NCPL") - lnd_domain_path = case.get_value("LND_DOMAIN_PATH") - lnd_domain_file = case.get_value("LND_DOMAIN_FILE") ninst_lnd = case.get_value("NINST_LND") rundir = case.get_value("RUNDIR") run_type = case.get_value("RUN_TYPE") @@ -61,28 +59,45 @@ def buildnml(case, caseroot, compname): run_refdate = case.get_value("RUN_REFDATE") run_reftod = case.get_value("RUN_REFTOD") glc_nec = case.get_value("GLC_NEC") + cism_use_antarctica = case.get_value("CISM_USE_ANTARCTICA") mask = case.get_value("MASK_GRID") + driver = case.get_value("COMP_INTERFACE").lower() + + # Create init_generated_files directory if not there + newdir = os.path.join(rundir, "init_generated_files") + if not os.path.exists(newdir): + os.mkdir(newdir) + + # ----------------------------------------------------- + # 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 clmconf + # Set ctsmconf # ----------------------------------------------------- - clmconf = os.path.join(caseroot, "Buildconf", "clmconf") - if not os.path.isdir(clmconf): - os.makedirs(clmconf) + ctsmconf = os.path.join(caseroot, "Buildconf", compname + "conf") + if not os.path.isdir(ctsmconf): + os.makedirs(ctsmconf) # ----------------------------------------------------- - # Create config_cache.xml file + # Create config_cache.xml file # ----------------------------------------------------- - # Note that build-namelist utilizes the contents of the config_cache.xml file in + # Note that build-namelist utilizes the contents of the config_cache.xml file in # the namelist_defaults.xml file to obtain namelist variables clm_phys = case.get_value("CLM_PHYSICS_VERSION") config_cache_text = _config_cache_template.format(clm_phys=clm_phys) - config_cache_path = os.path.join(caseroot, "Buildconf", "clmconf", "config_cache.xml") - with open(config_cache_path, 'w') as config_cache_file: + config_cache_path = os.path.join(caseroot, "Buildconf", compname + "conf", "config_cache.xml") + with open(config_cache_path, "w") as config_cache_file: config_cache_file.write(config_cache_text) # ----------------------------------------------------- @@ -100,62 +115,94 @@ def buildnml(case, caseroot, compname): startfile_type = "nrevsn" if clm_force_coldstart == "on": clm_force_coldstart = "off" - logger.warning( "WARNING: You've turned on CLM_FORCE_COLDSTART for a branch run_type, which is a contradiction, the coldstart will be ignored\n" + - " turn off CLM_FORCE_COLDSTART, or set RUN_TYPE=hybrid to get rid of this warning") + logger.warning( + "WARNING: You've turned on CLM_FORCE_COLDSTART for a branch run_type, which is a contradiction, the coldstart will be ignored\n" + + " turn off CLM_FORCE_COLDSTART, or set RUN_TYPE=hybrid to get rid of this warning" + ) - - if (clm_force_coldstart == "on"): - logger.warning( "WARNING: CLM is starting up from a cold state" ) + if clm_force_coldstart == "on": + logger.warning("WARNING: CLM is starting up from a cold state") start_type = "cold" - if lnd_grid == 'T31': - lnd_grid = '48x96' - if lnd_grid == 'T42': - lnd_grid = '64x128' - if lnd_grid == 'T85': - lnd_grid = '128x256' - if lnd_grid == 'T341': - lnd_grid = '512x1024' + if lnd_grid == "T31": + lnd_grid = "48x96" + if lnd_grid == "T42": + lnd_grid = "64x128" + if lnd_grid == "T85": + lnd_grid = "128x256" + if lnd_grid == "T341": + lnd_grid = "512x1024" clmusr = "" if lnd_grid == "CLM_USRDAT": clm_usrdat_name = case.get_value("CLM_USRDAT_NAME") lnd_grid = clm_usrdat_name - clmusr = " -clm_usr_name %s "%clm_usrdat_name + clmusr = " -clm_usr_name %s " % clm_usrdat_name + # Write warning about initial condition data + if "NEON" in clm_usrdat_name and clm_force_coldstart == "off": + if ("_transient" in clm_nml_use_case) and ( + re.fullmatch(r"\w\w\w\w\.transient", casename) is None + or clm_usrdat_name is "NEON.PRISM" + ): + logger.warning( + "WARNING: Do you have approriprate initial conditions for this simulation?" + + " Check that the finidat file used in the lnd_in namelist is apprporiately spunup for your case" + ) if comp_atm != "datm": nomeg = "-no-megan" else: nomeg = "" + if cism_use_antarctica is None: + # This is the case for compsets without CISM, where the CISM_USE_ANTARCTICA xml + # variable isn't defined + glc_use_antarctica_flag = "" + elif isinstance(cism_use_antarctica, bool): + if cism_use_antarctica: + glc_use_antarctica_flag = "-glc_use_antarctica" + else: + glc_use_antarctica_flag = "" + else: + expect( + False, + "Unexpected value for CISM_USE_ANTARCTICA: {}".format(cism_use_antarctica), + ) + if clm_nml_use_case != "UNSET": - usecase = "-use_case %s" %clm_nml_use_case + usecase = "-use_case %s" % clm_nml_use_case else: usecase = "" - if ( (mask != "null") and (mask != "UNSET") ): - gridmask = "-mask %s" %mask + if (mask != "null") and (mask != "UNSET"): + gridmask = "-mask %s" % mask else: gridmask = "" - start_ymd = run_startdate.replace('-','') + start_ymd = run_startdate.replace("-", "") - if ('-01-01' in run_startdate) or ('-09-01' in run_startdate): + if ("-01-01" in run_startdate) or ("-09-01" in run_startdate): ignore = "-ignore_ic_year" else: ignore = "-ignore_ic_date" - tuning = "-lnd_tuning_mode %s "%lnd_tuning_mode - - spinup = "-clm_accelerated_spinup %s "%clm_accelerated_spinup - - infile = os.path.join(clmconf, "namelist") - - inputdata_file = os.path.join(caseroot,"Buildconf","clm.input_data_list") - - lndfrac_file = os.path.join(lnd_domain_path,lnd_domain_file) - - config_cache_file = os.path.join(caseroot,"Buildconf","clmconf","config_cache.xml") + tuning = "-lnd_tuning_mode %s " % lnd_tuning_mode + + spinup = "-clm_accelerated_spinup %s " % clm_accelerated_spinup + + infile = os.path.join(ctsmconf, "namelist") + + inputdata_file = os.path.join(caseroot, "Buildconf", "ctsm.input_data_list") + + if driver == "nuopc": + lndfrac_setting = " " + else: + lnd_domain_path = case.get_value("LND_DOMAIN_PATH") + lnd_domain_file = case.get_value("LND_DOMAIN_FILE") + lndfrac_file = os.path.join(lnd_domain_path, lnd_domain_file) + lndfrac_setting = "-lnd_frac " + lndfrac_file + + config_cache_file = os.path.join(caseroot, "Buildconf", compname + "conf", "config_cache.xml") # ----------------------------------------------------- # Clear out old data @@ -169,32 +216,57 @@ def buildnml(case, caseroot, compname): # ----------------------------------------------------- ninst = int(ninst_lnd) - for inst_counter in range(1, ninst+1): + for inst_counter in range(1, ninst + 1): # determine instance string inst_string = "" if ninst > 1: - inst_string = '_' + '%04d' % inst_counter + inst_string = "_" + "%04d" % inst_counter # If multi-instance case does not have restart file, use # single-case restart for each instance - rpointer = "rpointer.lnd" - if (os.path.isfile(os.path.join(rundir,rpointer)) and - (not os.path.isfile(os.path.join(rundir,rpointer + inst_string)))): - shutil.copy(os.path.join(rundir, rpointer), - os.path.join(rundir, rpointer + inst_string)) + rpointer = "rpointer.lnd" + if os.path.isfile(os.path.join(rundir, rpointer)) and ( + not os.path.isfile(os.path.join(rundir, rpointer + inst_string)) + ): + shutil.copy( + os.path.join(rundir, rpointer), + os.path.join(rundir, rpointer + inst_string), + ) # ----------------------------------------------------- # call build-namelist # ----------------------------------------------------- if run_type == "hybrid" or run_type == "branch": - clm_startfile = "%s.clm2%s.r.%s-%s.nc"%(run_refcase,inst_string,run_refdate,run_reftod) - if not os.path.exists(os.path.join(rundir, clm_startfile)): - clm_startfile = "%s.clm2.r.%s-%s.nc"%(run_refcase,run_refdate,run_reftod) - logger.warning( "WARNING: the start file being used for a multi-instance case is a single instance: "+clm_startfile ) + compnames = ["clm4", "clm5", "clm2"] + for comp in compnames: + clm_startfile = "%s.%s%s.r.%s-%s.nc" % ( + run_refcase, + comp, + inst_string, + run_refdate, + run_reftod, + ) + if os.path.exists(os.path.join(rundir, clm_startfile)): + break + else: + clm_startfile = "%s.%s.r.%s-%s.nc" % ( + run_refcase, + comp, + run_refdate, + run_reftod, + ) + if os.path.exists(os.path.join(rundir, clm_startfile)): + logger.warning( + "WARNING: the start file being used for a multi-instance case is a single instance: " + + clm_startfile + ) + break - clm_icfile = "%s = \'%s\'"%(startfile_type, clm_startfile) + if not os.path.exists(os.path.join(rundir, clm_startfile)): + logger.warning("WARNING: Could NOT find a start file to use using" + clm_startfile) + clm_icfile = "%s = '%s'" % (startfile_type, clm_startfile) else: clm_icfile = "" @@ -202,48 +274,81 @@ def buildnml(case, caseroot, compname): infile_lines.append(clm_icfile) user_nl_file = os.path.join(caseroot, "user_nl_clm" + inst_string) - namelist_infile = os.path.join(clmconf, "namelist") + namelist_infile = os.path.join(ctsmconf, "namelist") create_namelist_infile(case, user_nl_file, namelist_infile, "\n".join(infile_lines)) - cmd = os.path.join(lnd_root,"bld","build-namelist") - - command = ("%s -cimeroot %s -infile %s -csmdata %s -inputdata %s %s -namelist \"&clm_inparm start_ymd=%s %s/ \" " - "%s %s -res %s %s -clm_start_type %s -envxml_dir %s -l_ncpl %s " - "-configuration %s -structure %s " - "-lnd_frac %s -glc_nec %s -co2_ppmv %s -co2_type %s -config %s " - "%s %s %s %s" - %(cmd, _CIMEROOT, infile, din_loc_root, inputdata_file, ignore, start_ymd, clm_namelist_opts, - nomeg, usecase, lnd_grid, clmusr, start_type, caseroot, lnd_ncpl, - configuration, structure, - lndfrac_file, glc_nec, ccsm_co2_ppmv, clm_co2_type, config_cache_file, - clm_bldnml_opts, spinup, tuning, gridmask)) - - rc, out, err = run_cmd(command, from_dir=clmconf) - expect(rc==0,"Command %s failed rc=%d\nout=%s\nerr=%s"%(cmd,rc,out,err)) + cmd = os.path.join(lnd_root, "bld", "build-namelist") + + command = ( + '%s -cimeroot %s -infile %s -csmdata %s -inputdata %s %s -namelist "&clm_inparm start_ymd=%s %s/ " ' + "%s %s -res %s %s -clm_start_type %s -envxml_dir %s " + "-configuration %s -structure %s " + "%s -glc_nec %s %s -co2_ppmv %s -co2_type %s -config %s -driver %s " + "%s %s %s %s" + % ( + cmd, + _CIMEROOT, + infile, + din_loc_root, + inputdata_file, + ignore, + start_ymd, + clm_namelist_opts, + nomeg, + usecase, + lnd_grid, + clmusr, + start_type, + caseroot, + configuration, + structure, + lndfrac_setting, + glc_nec, + glc_use_antarctica_flag, + ccsm_co2_ppmv, + clm_co2_type, + config_cache_file, + driver, + clm_bldnml_opts, + spinup, + tuning, + gridmask, + ) + ) + + rc, out, err = run_cmd(command, from_dir=ctsmconf) + expect(rc == 0, "Command %s failed rc=%d\nout=%s\nerr=%s" % (cmd, rc, out, err)) if out is not None: - logger.debug(" %s"%out) + logger.debug(" %s" % out) if err is not None: - logger.debug(" %s"%err) + logger.debug(" %s" % err) # ----------------------------------------------------- # copy resolved namelist to rundir # ----------------------------------------------------- if os.path.isdir(rundir): - file1 = os.path.join(clmconf, "lnd_in") + file1 = os.path.join(ctsmconf, "lnd_in") file2 = os.path.join(rundir, "lnd_in") if ninst > 1: file2 += inst_string - logger.debug("CLM namelist copy: file1 %s file2 %s " %(file1, file2)) - shutil.copy(file1,file2) + logger.debug("CTSM namelist copy: file1 %s file2 %s " % (file1, file2)) + shutil.copy(file1, file2) + ############################################################################### def _main_func(): caseroot = parse_input(sys.argv) with Case(caseroot) as case: - buildnml(case, caseroot, "clm") + compname = case.get_value("COMP_LND") + logger.warning( + "WARNING: buildnml is being called a s program rather than a subroutine " + + "as it is expected to be in the CESM context" + ) + buildnml(case, caseroot, compname) + if __name__ == "__main__": _main_func() diff --git a/cime_config/config_archive.xml b/cime_config/config_archive.xml index 4c2412a0e3..c219a1d1ef 100644 --- a/cime_config/config_archive.xml +++ b/cime_config/config_archive.xml @@ -3,6 +3,8 @@ r rh\d? h\d*.*\.nc$ + lilac_hi.*\.nc$ + lilac_atm_driver_h\d*.*\.nc$ e locfnh @@ -15,10 +17,33 @@ casename.clm2.r.1976-01-01-00000.nc casename.clm2.rh4.1976-01-01-00000.nc casename.clm2.h0.1976-01-01-00000.nc + casename.clm2.lilac_hi.1976-01-01-00000.nc + casename.clm2.lilac_atm_driver_h0.0001-01.nc casename.clm2.h0.1976-01-01-00000.nc.base casename.clm2_0002.e.postassim.1976-01-01-00000.nc casename.clm2_0002.e.preassim.1976-01-01-00000.nc anothercasename.clm2.i.1976-01-01-00000.nc + + r + rh\d? + h\d*.*\.nc$ + e + locfnh + + rpointer.lnd$NINST_STRING + ./$CASE.ctsm$NINST_STRING.r.$DATENAME.nc + + + rpointer.lnd + rpointer.lnd_9999 + casename.ctsm.r.1976-01-01-00000.nc + casename.ctsm.rh4.1976-01-01-00000.nc + casename.ctsm.h0.1976-01-01-00000.nc + casename.ctsm.h0.1976-01-01-00000.nc.base + casename.ctsm_0002.e.postassim.1976-01-01-00000.nc + casename.ctsm_0002.e.preassim.1976-01-01-00000.nc + + diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml index f9eeca8b7c..743e9229b9 100644 --- a/cime_config/config_component.xml +++ b/cime_config/config_component.xml @@ -14,18 +14,18 @@ - clm4.5: - clm5.0: + clm4.5: + clm5.0: + clm5.1: Satellite phenology: - CN: Carbon Nitrogen model - CNDV: CN with Dynamic Vegetation (deprecated) - CN with prognostic crop: - CNDV with prognostic crop: (deprecated) Satellite phenology with VIC hydrology: + Satellite phenology without anthropomorphic influences BGC (vert. resol. CN and methane): BGC (vert. resol. CN and methane) with prognostic crop: - FATES (Functionally Assembled Terrestrial Ecosystem Simulator) Ecosystem Demography model: (experimental) + BGC (vert. resol. CN and methane) without anthropomorphic influences: + FATES (Functionally Assembled Terrestrial Ecosystem Simulator) Ecosystem Demography model: + Satellite phenology with FATES (Functionally Assembled Terrestrial Ecosystem Simulator) Ecosystem Demography model: BGC (vert. resol. CN and methane) with dynamic vegetation: BGC (vert. resol. CN and methane) with dynamic vegetation and prognostic crop: BGC (vert. resol. CN and methane) with prognostic crop, with modifications appropriate for CMIP6 DECK experiments: @@ -34,49 +34,65 @@ NWP configuration with satellite phenology: NWP configuration with BGC and CROP: - char - clm - clm + clm,ctsm + UNSET + + clm + ctsm + case_comp env_case.xml Name of land component + + char + on,off + off + build_component_ctsm + env_build.xml + Flag to enable building the LILAC cap and coupling code + + char - run_component_clm + run_component_ctsm env_run.xml Tuning parameters and initial conditions should be optimized for what CLM model version and what meteorlogical forcing combination? UNSET - clm5_0_cam6.0,clm5_0_GSWP3v1,clm5_0_CRUv7,clm4_5_CRUv7,clm4_5_GSWP3v1,clm4_5_cam6.0 + clm5_0_cam6.0,clm5_0_GSWP3v1,clm5_0_CRUv7,clm4_5_CRUv7,clm4_5_GSWP3v1,clm4_5_cam6.0,clm5_1_GSWP3v1 clm4_5_CRUv7 clm4_5_CRUv7 clm4_5_GSWP3v1 clm4_5_cam6.0 + clm4_5_cam6.0 clm5_0_CRUv7 clm5_0_CRUv7 clm5_0_GSWP3v1 clm5_0_cam6.0 + clm5_0_cam6.0 + clm5_1_GSWP3v1 char - clm4_5,clm5_0 + clm4_5,clm5_0,clm5_1 UNSET - clm4_5 - clm5_0 + clm4_5 + clm5_0 + clm5_1 - run_component_clm + run_component_ctsm env_run.xml Overall physics version to use. This sets the default values for many different namelist options. @@ -90,7 +106,7 @@ nwp - run_component_clm + run_component_ctsm env_run.xml Sets CLM default namelist options related to model configuration. clm: Configuration used for climate applications (CLM) @@ -105,7 +121,7 @@ fast - run_component_clm + run_component_ctsm env_run.xml Sets CLM default namelist options related to model structure. standard: Standard model structure, allowing for more subgrid heterogeneity, @@ -119,18 +135,25 @@ char UNSET - - 2000_control - 1850_control - 20thC_transient - 1850-2100_rcp6_transient - 1850-2100_rcp4.5_transient - 1850-2100_rcp2.6_transient - 1850-2100_rcp8.5_transient - 20thC_transient - 1850-2100_rcp4.5_transient + + 2010_control + 2000_control + 1850_control + 1850_noanthro_control + 20thC_transient + 1850-2100_SSP5-8.5_transient + 1850-2100_SSP1-2.6_transient + 1850-2100_SSP3-7.0_transient + 1850-2100_SSP5-3.4_transient + 1850-2100_SSP2-4.5_transient + 1850-2100_SSP1-1.9_transient + 1850-2100_SSP4-3.4_transient + 1850-2100_SSP4-6.0_transient + 1850-2100_SSP5-8.5_transient + 20thC_transient + 1850-2100_SSP5-8.5_transient - run_component_clm + run_component_ctsm env_run.xml CLM namelist use_case. Determines the use-case that will be sent to the CLM build-namelist utility. @@ -144,31 +167,24 @@ char - -bgc sp - -bgc cn - -bgc bgc - -bgc cn -crop - -bgc bgc -crop - -bgc cn -dynamic_vegetation + + -bgc sp + -bgc bgc + -bgc bgc -crop + -bgc fates -no-megan + -bgc fates -no-megan + + -bgc bgc -dynamic_vegetation - -bgc cn -dynamic_vegetation -crop -bgc bgc -dynamic_vegetation -crop -bgc sp -vichydro - -bgc fates -no-megan - -bgc sp - -bgc bgc + -bgc bgc -dynamic_vegetation - -bgc bgc -crop - -bgc cn - -bgc cn -crop - -bgc cn -dynamic_vegetation - -bgc cn -dynamic_vegetation -crop -bgc bgc -dynamic_vegetation -crop -bgc sp -vichydro - -bgc fates -no-megan - run_component_clm + run_component_ctsm env_run.xml CLM build-namelist options @@ -178,13 +194,13 @@ constant,diagnostic,prognostic constant - diagnostic + diagnostic diagnostic prognostic diagnostic - diagnostic + diagnostic - run_component_clm + run_component_ctsm env_run.xml Determines how CLM will determine where CO2 is set. If value is constant, it will be set to CCSM_CO2_PPMV, @@ -199,7 +215,7 @@ char - run_component_clm + run_component_ctsm env_run.xml CLM-specific namelist settings for -namelist option in the CLM build-namelist. CLM_NAMELIST_OPTS is normally set as a compset variable @@ -214,7 +230,7 @@ char on,off off - run_component_clm + run_component_ctsm env_run.xml Turn on any settings for accellerating the model spinup. @@ -223,25 +239,40 @@ char UNSET - run_component_clm + run_component_ctsm env_run.xml - Dataset name for user-created datasets. This is used as the argument - in Buildconf/clm.buildnml to build-namelist -clm_usr_name. An example of - such a dataset would be 1x1pt_boulderCO_c090722. The default value is UNSET. - This is an advanced flag and should only be used by expert users. + Resolution name for user-created resolutions. This is especially used + for single point and regional resolutions created via subset_data from + the global datasets. This should be set when you use CLM_USRDAT as the grid + to create_newcase. The default value is UNSET. + For NEON cases, this can be set to either NEON or NEON.PRISM, the latter of which would + use PRISM precipitation instead of the default NEON precipitation. NEON cases then also + use the variable NEONSITE to specify the exact site. + + + + char + UNSET + run_component_ctsm + env_run.xml + Directory name for user-created surface, landuse, and datm datasets. + This is used as an argument in user_mods namelists (e.g. user_nl_clm, + user_nl_datm_streams) generated with the subset_data script. Users + should modify this variable (in shell_commands or elsewhere) to set the + location of user-created data. The default value is UNSET. char on,off off - run_component_clm + run_component_ctsm env_run.xml Flag to the CLM build-namelist command to force CLM to do a cold start (finidat will be set to blanks). A value of on forces the model to spin up from a cold-start (arbitrary initial conditions). Setting this value in the xml file will take - precedence over any settings for finidat in the $CASEROOT/user_clm_clm file. + precedence over any settings for finidat in the $CASEROOT/user_nl_ctsm file. @@ -249,15 +280,61 @@ - $COMP_ROOT_DIR_LND/cime_config/usermods_dirs/cmip6_deck - $COMP_ROOT_DIR_LND/cime_config/usermods_dirs/cmip6_waccm_deck + $COMP_ROOT_DIR_LND/cime_config/usermods_dirs/cmip6_deck + $COMP_ROOT_DIR_LND/cime_config/usermods_dirs/fates_sp + $COMP_ROOT_DIR_LND/cime_config/usermods_dirs/cmip6_nociso_deck + $COMP_ROOT_DIR_LND/cime_config/usermods_dirs/cmip6_waccm_deck + $COMP_ROOT_DIR_LND/cime_config/usermods_dirs/cmip6_waccm_nociso_deck - run_component_clm + run_component_ctsm env_case.xml User mods to apply to specific compset matches. - + + char + + + ABBY,BLAN,CPER,DEJU,GRSM,HEAL,KONA,LENO,NIWO,ONAQ,PUUM,SERC,SRER,TALL,TREE,WOOD, + BARR,BONA,DCFS,DELA,GUAN,JERC,KONZ,MLBS,NOGP,ORNL,RMNP,SJER,STEI,TEAK,UKFS,WREF, + BART,CLBJ,DSNY,HARV,JORN,LAJA,MOAB,OAES,OSBS,SCBI,SOAP,STER,TOOL,UNDE,YELL, + NEON_PRECIP.ABBY,NEON_PRECIP.BLAN,NEON_PRECIP.CPER,NEON_PRECIP.DEJU,NEON_PRECIP.GRSM, + NEON_PRECIP.HEAL,NEON_PRECIP.KONA,NEON_PRECIP.LENO,NEON_PRECIP.NIWO,NEON_PRECIP.ONAQ, + NEON_PRECIP.PUUM,NEON_PRECIP.SERC,NEON_PRECIP.SRER,NEON_PRECIP.TALL,NEON_PRECIP.TREE, + NEON_PRECIP.WOOD,NEON_PRECIP.BARR,NEON_PRECIP.BONA,NEON_PRECIP.DCFS,NEON_PRECIP.DELA, + NEON_PRECIP.GUAN,NEON_PRECIP.JERC,NEON_PRECIP.KONZ,NEON_PRECIP.MLBS,NEON_PRECIP.NOGP, + NEON_PRECIP.ORNL,NEON_PRECIP.RMNP,NEON_PRECIP.SJER,NEON_PRECIP.STEI,NEON_PRECIP.TEAK, + NEON_PRECIP.UKFS,NEON_PRECIP.WREF,NEON_PRECIP.BART,NEON_PRECIP.CLBJ,NEON_PRECIP.DSNY, + NEON_PRECIP.HARV,NEON_PRECIP.JORN,NEON_PRECIP.LAJA,NEON_PRECIP.MOAB,NEON_PRECIP.OAES, + NEON_PRECIP.OSBS,NEON_PRECIP.SCBI,NEON_PRECIP.SOAP,NEON_PRECIP.STER,NEON_PRECIP.TOOL, + NEON_PRECIP.UNDE,NEON_PRECIP.YELL, + PRISM_PRECIP.ABBY,PRISM_PRECIP.BLAN,PRISM_PRECIP.CPER,PRISM_PRECIP.GRSM, + PRISM_PRECIP.KONA,PRISM_PRECIP.LENO,PRISM_PRECIP.NIWO,PRISM_PRECIP.ONAQ, + PRISM_PRECIP.SERC,PRISM_PRECIP.SRER,PRISM_PRECIP.TALL,PRISM_PRECIP.TREE, + PRISM_PRECIP.WOOD,PRISM_PRECIP.DCFS,PRISM_PRECIP.DELA,PRISM_PRECIP.JERC, + PRISM_PRECIP.KONZ,PRISM_PRECIP.MLBS,PRISM_PRECIP.NOGP,PRISM_PRECIP.ORNL, + PRISM_PRECIP.RMNP,PRISM_PRECIP.SJER,PRISM_PRECIP.STEI,PRISM_PRECIP.TEAK, + PRISM_PRECIP.UKFS,PRISM_PRECIP.WREF,PRISM_PRECIP.BART,PRISM_PRECIP.CLBJ, + PRISM_PRECIP.DSNY,PRISM_PRECIP.HARV,PRISM_PRECIP.JORN,PRISM_PRECIP.MOAB, + PRISM_PRECIP.OAES,PRISM_PRECIP.OSBS,PRISM_PRECIP.SCBI,PRISM_PRECIP.SOAP, + PRISM_PRECIP.STER,PRISM_PRECIP.UNDE,PRISM_PRECIP.YELL, + + + run_component_ctsm + env_run.xml + Name of site for NEON tower data + + + + char + v1,v2,v3,latest + latest + run_component_ctsm + env_run.xml + Version id of Neon data + + + ========================================= CLM naming conventions ========================================= diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml index a1954b5dde..aaa5c68394 100644 --- a/cime_config/config_compsets.xml +++ b/cime_config/config_compsets.xml @@ -12,13 +12,13 @@ The notation for the compset longname is TIME_ATM[%phys]_LND[%phys]_ICE[%phys]_OCN[%phys]_ROF[%phys]_GLC[%phys]_WAV[%phys][_BGC%phys] Where for the CAM specific compsets below the following is supported - TIME = Time period (e.g. 2000, HIST, RCP8...) + TIME = Time period (e.g. 2000, HIST, SSP585...) ATM = [CAM40, CAM50, CAM55] - LND = [CLM45, CLM50, SLND] + LND = [CLM45, CLM50, CLM51, SLND] ICE = [CICE, DICE, SICE] OCN = [DOCN, ,AQUAP, SOCN] ROF = [RTM, SROF] - GLC = [CISM1, CISM2] + GLC = [CISM2, SGLC] WAV = [SWAV] BGC = optional BGC scenario @@ -37,249 +37,400 @@ - I1PtClm50SpGs - 2000_DATM%1PT_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV + I1PtClm51Bgc + 2000_DATM%1PT_CLM51%BGC_SICE_SOCN_SROF_SGLC_SWAV - I1PtClm45SpGs - 2000_DATM%1PT_CLM45%SP_SICE_SOCN_RTM_SGLC_SWAV + I1PtClm51Fates + 2000_DATM%1PT_CLM51%FATES_SICE_SOCN_SROF_SGLC_SWAV + + + + IHist1PtClm51Bgc + HIST_DATM%1PT_CLM51%BGC_SICE_SOCN_SROF_SGLC_SWAV + + + + IHist1PtClm51Fates + HIST_DATM%1PT_CLM51%FATES_SICE_SOCN_SROF_SGLC_SWAV + + + + I1PtClm51SpRs + 2000_DATM%1PT_CLM51%SP_SICE_SOCN_SROF_SGLC_SWAV + + + + I1PtClm50SpRs + 2000_DATM%1PT_CLM50%SP_SICE_SOCN_SROF_SGLC_SWAV + + + + I1PtClm45SpRs + 2000_DATM%1PT_CLM45%SP_SICE_SOCN_SROF_SGLC_SWAV I2000Clm50Sp - 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV - I2000Clm50SpRsGs + I2000Clm50SpRs 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_SROF_SGLC_SWAV + + I2000Clm51Sp + 2000_DATM%GSWP3v1_CLM51%SP_SICE_SOCN_MOSART_SGLC_SWAV + + + + + I2000Clm51SpRs + 2000_DATM%GSWP3v1_CLM51%SP_SICE_SOCN_SROF_SGLC_SWAV + + - I2000Clm50SpRtmGs + I2000Clm50SpRtm 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_RTM_SGLC_SWAV + + I2000Clm50SpMizGs + 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MIZUROUTE_SGLC_SWAV + + + + I2010Clm50Sp + 2010_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV + + I2000Clm50BgcCru - 2000_DATM%CRUv7_CLM50%BGC_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + 2000_DATM%CRUv7_CLM50%BGC_SICE_SOCN_MOSART_SGLC_SWAV I2000Clm50BgcCropRtm - 2000_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_RTM_CISM2%NOEVOLVE_SWAV + 2000_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_RTM_SGLC_SWAV I2000Clm50BgcCrop - 2000_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + 2000_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV - - I2000Clm50Cn - 2000_DATM%GSWP3v1_CLM50%CN_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + I2000Clm51BgcCrop + 2000_DATM%GSWP3v1_CLM51%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + + I2000Clm51Bgc + 2000_DATM%GSWP3v1_CLM51%BGC_SICE_SOCN_MOSART_SGLC_SWAV + + + I1850Clm50Sp - 1850_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + 1850_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV I1850Clm50SpCru - 1850_DATM%CRUv7_CLM50%SP_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + 1850_DATM%CRUv7_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV I1850Clm50BgcCrop - 1850_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + 1850_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV - - I1850Clm50BgcCropCmip6 - 1850_DATM%GSWP3v1_CLM50%BGC-CROP-CMIP6DECK_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + I1850Clm51BgcCrop + 1850_DATM%GSWP3v1_CLM51%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV - - I1850Clm50BgcCropCmip6waccm - 1850_DATM%GSWP3v1_CLM50%BGC-CROP-CMIP6WACCMDECK_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + I1850Clm51Sp + 1850_DATM%GSWP3v1_CLM51%SP_SICE_SOCN_MOSART_SGLC_SWAV - I1850Clm50BgcCropCru - 1850_DATM%CRUv7_CLM50%BGC-CROP_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV - - + I1850Clm51Bgc + 1850_DATM%GSWP3v1_CLM51%BGC_SICE_SOCN_MOSART_SGLC_SWAV + + - I2000Clm50SpGs - 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV + I1850Clm50BgcCropCmip6 + 1850_DATM%GSWP3v1_CLM50%BGC-CROP-CMIP6DECK_SICE_SOCN_MOSART_SGLC_SWAV - + - I2000Clm50BgcCropGs - 2000_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + I1850Clm50BgcCropCmip6waccm + 1850_DATM%GSWP3v1_CLM50%BGC-CROP-CMIP6WACCMDECK_SICE_SOCN_MOSART_SGLC_SWAV - - I2000Clm50BgcCropQianGs - 2000_DATM%QIA_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + I1850Clm50BgcCropCru + 1850_DATM%CRUv7_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + + + atm forcing to speed up datm, SROF to speed up build and run --> - I2000Clm50BgcCropQianRsGs + I2000Clm50BgcCropQianRs 2000_DATM%QIA_CLM50%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV - I2000Clm45BgcCropQianRsGs + I2000Clm45BgcCropQianRs 2000_DATM%QIA_CLM45%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV + + I2000Clm50FatesQian + 2000_DATM%QIA_CLM50%FATES_SICE_SOCN_MOSART_SGLC_SWAV + - I2000Clm50BgcCruGs - 2000_DATM%CRUv7_CLM50%BGC_SICE_SOCN_MOSART_SGLC_SWAV + I2000Clm50BgcCruRs + 2000_DATM%CRUv7_CLM50%BGC_SICE_SOCN_SROF_SGLC_SWAV I2000Clm50SpRtmFl - 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_RTM%FLOOD_CISM2%NOEVOLVE_SWAV + 2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_RTM%FLOOD_SGLC_SWAV + + I2000Clm51Fates + 2000_DATM%GSWP3v1_CLM51%FATES_SICE_SOCN_MOSART_SGLC_SWAV + I2000Clm50Fates - 2000_DATM%GSWP3v1_CLM50%FATES_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + 2000_DATM%GSWP3v1_CLM50%FATES_SICE_SOCN_MOSART_SGLC_SWAV + + + I2000Clm50FatesCruRsGs + 2000_DATM%CRUv7_CLM50%FATES_SICE_SOCN_SROF_SGLC_SWAV + + + I2000Clm51FatesSpCruRsGs + 2000_DATM%CRUv7_CLM51%FATES-SP_SICE_SOCN_SROF_SGLC_SWAV + + + I2000Clm51FatesSpRsGs + 2000_DATM%GSWP3v1_CLM51%FATES-SP_SICE_SOCN_SROF_SGLC_SWAV - I2000Clm50FatesCruGs + I2000Clm50FatesCru 2000_DATM%CRUv7_CLM50%FATES_SICE_SOCN_MOSART_SGLC_SWAV - - I2000Clm50FatesGs - 2000_DATM%GSWP3v1_CLM50%FATES_SICE_SOCN_MOSART_SGLC_SWAV + I2000Clm50FatesRs + 2000_DATM%GSWP3v1_CLM50%FATES_SICE_SOCN_SROF_SGLC_SWAV + + + I2000Clm51FatesRs + 2000_DATM%GSWP3v1_CLM51%FATES_SICE_SOCN_SROF_SGLC_SWAV I1850Clm50Bgc - 1850_DATM%GSWP3v1_CLM50%BGC_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + 1850_DATM%GSWP3v1_CLM50%BGC_SICE_SOCN_MOSART_SGLC_SWAV + + + + I1850Clm50BgcNoAnthro + 1850_DATM%GSWP3v1_CLM50%BGC-NOANTHRO_SICE_SOCN_MOSART_SGLC_SWAV + + + + I1850Clm50SpNoAnthro + 1850_DATM%GSWP3v1_CLM50%SP-NOANTHRO_SICE_SOCN_MOSART_SGLC_SWAV IHistClm50BgcCrop - HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + + I1850Clm51SpNoAnthro + 1850_DATM%GSWP3v1_CLM51%SP-NOANTHRO_SICE_SOCN_MOSART_SGLC_SWAV + + + + IHistClm51Sp + HIST_DATM%GSWP3v1_CLM51%SP_SICE_SOCN_MOSART_SGLC_SWAV + + + + IHistClm51Bgc + HIST_DATM%GSWP3v1_CLM51%BGC_SICE_SOCN_MOSART_SGLC_SWAV + + + + IHistClm51BgcCrop + HIST_DATM%GSWP3v1_CLM51%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + + IHistClm50Sp - HIST_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + HIST_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV + + + + + + IHistClm50SpCru + HIST_DATM%CRUv7_CLM50%SP_SICE_SOCN_MOSART_SGLC_SWAV IHistClm50Bgc - HIST_DATM%GSWP3v1_CLM50%BGC_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + HIST_DATM%GSWP3v1_CLM50%BGC_SICE_SOCN_MOSART_SGLC_SWAV - + - IHistClm50BgcQianGs + IHistClm50BgcQian HIST_DATM%QIA_CLM50%BGC_SICE_SOCN_MOSART_SGLC_SWAV - - IHistClm50BgcCropGs - HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + IHistClm50BgcQianRs + HIST_DATM%QIA_CLM50%BGC_SICE_SOCN_SROF_SGLC_SWAV + + + + + ISSP585Clm50BgcCrop + SSP585_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + + + + ISSP126Clm50BgcCrop + SSP126_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + + + + ISSP119Clm50BgcCrop + SSP119_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + + + + ISSP245Clm50BgcCrop + SSP245_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + + + + ISSP370Clm50BgcCrop + SSP370_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + + + + ISSP434Clm50BgcCrop + SSP434_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + + + + ISSP460Clm50BgcCrop + SSP460_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV - - IHistClm50BgcCropQianGs - HIST_DATM%QIA_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + ISSP534Clm50BgcCrop + SSP534_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV + + + + + + IHistClm50BgcCropQianRs + HIST_DATM%QIA_CLM50%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV + + + + + IHistClm50BgcCropRs + HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV I2000Clm50BgcDvCrop - 2000_DATM%GSWP3v1_CLM50%BGCDV-CROP_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + 2000_DATM%GSWP3v1_CLM50%BGCDV-CROP_SICE_SOCN_MOSART_SGLC_SWAV - I2000Clm50BgcDvCropQianGs - 2000_DATM%QIA_CLM50%BGCDV-CROP_SICE_SOCN_MOSART_SGLC_SWAV + I2000Clm50BgcDvCropQianRs + 2000_DATM%QIA_CLM50%BGCDV-CROP_SICE_SOCN_SROF_SGLC_SWAV I1850Clm50BgcSpinup - 1850_DATM%CPLHIST_CLM50%BGC_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV + 1850_DATM%CPLHIST_CLM50%BGC_SICE_SOCN_MOSART_SGLC_SWAV - I2000Ctsm50NwpSpGswpGs + I2000Ctsm50NwpSpGswp 2000_DATM%GSWP3v1_CLM50%NWP-SP_SICE_SOCN_MOSART_SGLC_SWAV - I2000Ctsm50NwpBgcCropGswpGs + I2000Ctsm50NwpBgcCropGswp 2000_DATM%GSWP3v1_CLM50%NWP-BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV - I2000Ctsm50NwpSpNldasGs + I2000Ctsm50NwpSpNldas 2000_DATM%NLDAS2_CLM50%NWP-SP_SICE_SOCN_MOSART_SGLC_SWAV - I2000Ctsm50NwpSpNldasRsGs + I2000Ctsm50NwpSpNldasRs 2000_DATM%NLDAS2_CLM50%NWP-SP_SICE_SOCN_SROF_SGLC_SWAV @@ -287,11 +438,11 @@ I1850Clm45BgcCrop - 1850_DATM%GSWP3v1_CLM45%BGC-CROP_SICE_SOCN_RTM_CISM2%NOEVOLVE_SWAV + 1850_DATM%GSWP3v1_CLM45%BGC-CROP_SICE_SOCN_RTM_SGLC_SWAV - I1850Clm45BgcCruGs + I1850Clm45BgcCru 1850_DATM%CRUv7_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV @@ -300,75 +451,62 @@ IHistClm45BgcCrop - HIST_DATM%GSWP3v1_CLM45%BGC-CROP_SICE_SOCN_RTM_CISM2%NOEVOLVE_SWAV + HIST_DATM%GSWP3v1_CLM45%BGC-CROP_SICE_SOCN_RTM_SGLC_SWAV - IHistClm45BgcCropQianGs - HIST_DATM%QIA_CLM45%BGC-CROP_SICE_SOCN_RTM_SGLC_SWAV + IHistClm45BgcCropQianRs + HIST_DATM%QIA_CLM45%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV I2000Clm45Sp - 2000_DATM%GSWP3v1_CLM45%SP_SICE_SOCN_RTM_CISM2%NOEVOLVE_SWAV + 2000_DATM%GSWP3v1_CLM45%SP_SICE_SOCN_RTM_SGLC_SWAV I2000Clm45BgcCrop - 2000_DATM%GSWP3v1_CLM45%BGC-CROP_SICE_SOCN_RTM_CISM2%NOEVOLVE_SWAV + 2000_DATM%GSWP3v1_CLM45%BGC-CROP_SICE_SOCN_RTM_SGLC_SWAV I2000Clm45Fates - 2000_DATM%GSWP3v1_CLM45%FATES_SICE_SOCN_RTM_CISM2%NOEVOLVE_SWAV - - - - - I2000Clm45FatesGs 2000_DATM%GSWP3v1_CLM45%FATES_SICE_SOCN_RTM_SGLC_SWAV + - I1850Clm45Cn - 1850_DATM%GSWP3v1_CLM45%CN_SICE_SOCN_RTM_CISM2%NOEVOLVE_SWAV + I2000Clm45FatesRs + 2000_DATM%GSWP3v1_CLM45%FATES_SICE_SOCN_SROF_SGLC_SWAV I1850Clm45Bgc - 1850_DATM%GSWP3v1_CLM45%BGC_SICE_SOCN_RTM_CISM2%NOEVOLVE_SWAV - - - - I1850Clm45BgcGs 1850_DATM%GSWP3v1_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV - - I1850Clm45BgcCru - 1850_DATM%CRUv7_CLM45%BGC_SICE_SOCN_RTM_CISM2%NOEVOLVE_SWAV - - IHistClm45Bgc - HIST_DATM%GSWP3v1_CLM45%BGC_SICE_SOCN_RTM_CISM2%NOEVOLVE_SWAV + HIST_DATM%GSWP3v1_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV + + - IHistClm45BgcGs - HIST_DATM%GSWP3v1_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV + IHistClm45BgcCru + HIST_DATM%CRUv7_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV - IHistClm45BgcCruGs - HIST_DATM%CRUv7_CLM45%BGC_SICE_SOCN_RTM_SGLC_SWAV + IHistClm45Sp + HIST_DATM%GSWP3v1_CLM45%SP_SICE_SOCN_RTM_SGLC_SWAV @@ -376,33 +514,61 @@ I2000Clm50Vic - 2000_DATM%GSWP3v1_CLM50%SP-VIC_SICE_SOCN_RTM_CISM2%NOEVOLVE_SWAV + 2000_DATM%GSWP3v1_CLM50%SP-VIC_SICE_SOCN_RTM_SGLC_SWAV I2000Clm45VicCru - 2000_DATM%CRUv7_CLM45%SP-VIC_SICE_SOCN_RTM_CISM2%NOEVOLVE_SWAV + 2000_DATM%CRUv7_CLM45%SP-VIC_SICE_SOCN_RTM_SGLC_SWAV I1850Clm50SpG - 1850_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_CISM2%EVOLVE_SWAV + 1850_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_CISM2%GRIS-EVOLVE_SWAV + + + + I1850Clm50SpGa + 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 + + + + + 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%EVOLVE_SWAV + HIST_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_MOSART_CISM2%GRIS-EVOLVE_SWAV I1850Clm50BgcCropG - 1850_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_CISM2%EVOLVE_SWAV + 1850_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_CISM2%GRIS-EVOLVE_SWAV IHistClm50BgcCropG - HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_CISM2%EVOLVE_SWAV + HIST_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_CISM2%GRIS-EVOLVE_SWAV + + + + + I2000Ctsm50NwpSpAsRs + 2000_SATM_CLM50%NWP-SP_SICE_SOCN_SROF_SGLC_SWAV @@ -413,6 +579,7 @@ 1850-01-01 2000-01-01 2010-01-01 + 2015-01-01 1980-01-15 1997-12-31 1993-12-01 diff --git a/cime_config/config_pes.xml b/cime_config/config_pes.xml index 9467994e62..aad134be86 100644 --- a/cime_config/config_pes.xml +++ b/cime_config/config_pes.xml @@ -224,6 +224,80 @@ + + + + Much lower core count f19 layout, mainly for testing + + -1 + -4 + -4 + -4 + -4 + -4 + -4 + -4 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + 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 +372,80 @@ + + + + Much lower core count f09 layout, mainly for testing + + -1 + -4 + -4 + -4 + -4 + -4 + -4 + -4 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + 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 + + + + @@ -409,6 +557,228 @@ + + + + none + + -12 + -12 + -12 + -12 + -12 + -12 + -12 + -12 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + none + + -1 + -70 + -70 + -70 + -70 + -70 + -70 + -70 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + -1 + -1 + -1 + -1 + -1 + -1 + -1 + + + + + + + + none + + -12 + -12 + -12 + -12 + -12 + -12 + -12 + -12 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + none + + -1 + -70 + -70 + -70 + -70 + -70 + -70 + -70 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + -1 + -1 + -1 + -1 + -1 + -1 + -1 + + + + + + + + none + + -12 + -12 + -12 + -12 + -12 + -12 + -12 + -12 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + none + + -1 + -70 + -70 + -70 + -70 + -70 + -70 + -70 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + -1 + -1 + -1 + -1 + -1 + -1 + -1 + + + + @@ -483,6 +853,228 @@ + + + + none + + -12 + -12 + -12 + -12 + -12 + -12 + -12 + -12 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + none + + -1 + -48 + -48 + -48 + -48 + -48 + -48 + -48 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + -1 + -1 + -1 + -1 + -1 + -1 + -1 + + + + + + + + none + + -24 + -24 + -24 + -24 + -24 + -24 + -24 + -24 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + none + + -1 + -48 + -48 + -48 + -48 + -48 + -48 + -48 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + -1 + -1 + -1 + -1 + -1 + -1 + -1 + + + + + + + + none + + -48 + -48 + -48 + -48 + -48 + -48 + -48 + -48 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + none + + -1 + -96 + -96 + -96 + -96 + -96 + -96 + -96 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + -1 + -1 + -1 + -1 + -1 + -1 + -1 + + + + @@ -745,20 +1337,42 @@ - - - - - - - 1 - - - 1 - - - - - + + + + Much lower core count nldas2 layout, mainly for testing + + -1 + -4 + -4 + -4 + -4 + -4 + -4 + -4 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + diff --git a/cime_config/config_tests.xml b/cime_config/config_tests.xml index 8a40ea9183..536f79aeec 100644 --- a/cime_config/config_tests.xml +++ b/cime_config/config_tests.xml @@ -1,19 +1,7 @@ @@ -27,6 +15,36 @@ SSP smoke CLM spinup test (only valid for CLM compsets with CLM45) FALSE + + Run the CTSM with an fsurdat generated by the fsurdat_modify tool + 1 + FALSE + FALSE + never + $STOP_OPTION + $STOP_N + + + + CTSM Land model test to ensure that we can allocate and use a second grain pool + 1 + FALSE + FALSE + never + $STOP_OPTION + $STOP_N + + + + CTSM Land model test to ensure that we can allocate and use a reproductive structure pool + 1 + FALSE + FALSE + never + $STOP_OPTION + $STOP_N + + CLM initial condition interpolation test (requires configuration with non-blank finidat) 1 @@ -47,6 +65,16 @@ SSP smoke CLM spinup test (only valid for CLM compsets with CLM45) $STOP_N + + CTSM test: Smoke test of building and running CTSM via LILAC. Grid and compset (and most case settings) are ignored. + + 1 + ndays + 11 + FALSE + FALSE + + CLM test: Verify that adding virtual glacier columns doesn't change answers 1 @@ -85,6 +113,24 @@ SSP smoke CLM spinup test (only valid for CLM compsets with CLM45) $STOP_N + + Generate prescribed maturity requirements, then test with them + 1 + FALSE + FALSE + never + $STOP_OPTION + $STOP_N + + + + smoke CLM spinup test 1 diff --git a/cime_config/testdefs/ExpectedTestFails.xml b/cime_config/testdefs/ExpectedTestFails.xml index d12defc385..174ebf9c58 100644 --- a/cime_config/testdefs/ExpectedTestFails.xml +++ b/cime_config/testdefs/ExpectedTestFails.xml @@ -29,84 +29,87 @@ - - - + + FAIL - #158 + #1887 - - + + FAIL - #550 + #1733 - - - - + + FAIL - NGEET/fates#315 + #1733 - - + + FAIL - NGEET/fates#315 + #1733 - + + + FAIL - NGEET/fates#315 + #667 - - + + FAIL - NGEET/fates#315 + FATES#897 - + FAIL - NGEET/fates#315 + FATES#897 - - + + FAIL - NGEET/fates#315 + FATES#701 - + FAIL - NGEET/fates#315 + FATES#701 - - - FAIL - NGEET/fates#315 + + + PEND + #1045 - - + + FAIL - NGEET/fates#315 + FATES#983 + This job should time out on izumi, seems to be hanging on history output. - + + + + diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index 36b083427a..6cef2f35f1 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -1,6 +1,6 @@ - + @@ -8,24 +8,43 @@ - + + - + - + - + + + + + + + + + + - + + + + + + + + + + @@ -34,7 +53,25 @@ - + + + + + + + + + + + + + + + + + + + @@ -50,7 +87,7 @@ - + @@ -59,18 +96,56 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + @@ -84,7 +159,7 @@ - + @@ -92,23 +167,43 @@ - + - + + + + + + + + + + + + + + + + + + + + - + + - + @@ -116,7 +211,7 @@ - + @@ -124,15 +219,15 @@ - + - + - + @@ -141,7 +236,7 @@ - + @@ -149,7 +244,24 @@ - + + + + + + + + + + + + + + + + + + @@ -157,15 +269,15 @@ - + - + - + @@ -174,7 +286,7 @@ - + @@ -183,23 +295,34 @@ - + - + + - + - + + + + + + + + + + + - + @@ -207,73 +330,78 @@ - + - + - + - + + - + - + + - + - + + - + + - + - + - + - + + - - + - + + - + @@ -284,13 +412,13 @@ - + - + @@ -298,33 +426,43 @@ - + + + + + + + + + + + - + - + + - + - - + - + - + @@ -332,7 +470,25 @@ - + + + + + + + + + + + + + + + + + + + @@ -340,15 +496,15 @@ - + - + - + @@ -359,7 +515,7 @@ - + @@ -367,7 +523,34 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -375,7 +558,7 @@ - + @@ -383,7 +566,7 @@ - + @@ -391,7 +574,7 @@ - + @@ -400,7 +583,7 @@ - + @@ -409,7 +592,7 @@ - + @@ -418,7 +601,7 @@ - + @@ -427,90 +610,101 @@ - + + - + - + + - + - + - + + - + + + + + + + + + - + - - + - + - + - + + - + - - + + - + - + - + - + - + @@ -518,135 +712,140 @@ - + - + + - + - + + - + - + + - + - + - + + - + - + + - + - + - + - - + + - + - + - + - + - - + + - + - + + - + - + + - + - + + - + - - - + - - + - + - + - + - + - + @@ -656,41 +855,44 @@ - + + - + + + - + - + + - - + - + - + @@ -699,7 +901,7 @@ - + @@ -709,7 +911,7 @@ - + @@ -717,7 +919,7 @@ - + @@ -726,7 +928,7 @@ - + @@ -736,17 +938,17 @@ - + - + - + @@ -754,7 +956,7 @@ - + @@ -763,7 +965,16 @@ - + + + + + + + + + + @@ -772,7 +983,7 @@ - + @@ -781,7 +992,7 @@ - + @@ -790,15 +1001,16 @@ - + + - + @@ -809,24 +1021,24 @@ - + + - + - - + @@ -834,182 +1046,184 @@ - + + - + - + + - + - - + - + - - + + - + - + - + + - + - + - + + - + - + - + + - + - + - + + + - + - + - - + + - + - + - - - - - - - - - - - + + - + - - - + + - + - + - + - + - - + + - + - + - + - + + + + + - + + - + - - + + - + - + - - + + + - + - + - - + + - + - + - + @@ -1018,7 +1232,7 @@ - + @@ -1027,51 +1241,46 @@ - + + - - - - - - - - - + + - + + - + + - + - @@ -1079,92 +1288,167 @@ - + - + - + + + + + + + + + + + - + - - + - - - + + - + - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - + - + + - - + @@ -1172,7 +1456,7 @@ - + @@ -1182,7 +1466,7 @@ - + @@ -1190,26 +1474,28 @@ - + + - + + - + @@ -1217,15 +1503,16 @@ - + + - + @@ -1234,96 +1521,128 @@ - + - + + + - + - - + + - + - + - - + + + - + - + - - + + + - + - + + - + + - + - + + + + - + - - + + + - + - + + - + - + - + + - + + + + + + + + + + + + + + + + + + + + + - - + + - + @@ -1331,33 +1650,33 @@ - + - + - + - - + - - + + + - + @@ -1366,7 +1685,7 @@ - + @@ -1374,7 +1693,7 @@ - + @@ -1382,68 +1701,99 @@ - + + + + + + + + + + + + - + + + + + + + + + + - + - + + + + + + + + + + + - + - + + - + - + - + - + - + - + - + - + @@ -1451,7 +1801,7 @@ - + @@ -1459,44 +1809,42 @@ - + - - + + - + - - + - + - - + - + - - + + - + @@ -1505,35 +1853,43 @@ - + + + + + + + + + + + - + - - + - + - + - + - + - + - @@ -1541,43 +1897,43 @@ - + + - + - - + - + + - + - - + - + - + @@ -1585,288 +1941,498 @@ - + + + + - + - + - + - + + - + + - + + - + + - + + - + - + - + + - + - + + - + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + + - + + - + + + - + - - + + - + - + + - + + - + + + - + - + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + - + + + + - + - + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + + + - + + + + + + + + + + + + - + + + + + + + + + + @@ -1876,17 +2442,22 @@ - + - + + + + + + - + @@ -1896,34 +2467,137 @@ - + - - + + + + - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + + + diff --git a/cime_config/testdefs/testmods_dirs/clm/NoVSNoNI/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/ADspinup/include_user_mods similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/NoVSNoNI/include_user_mods rename to cime_config/testdefs/testmods_dirs/clm/ADspinup/include_user_mods diff --git a/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands b/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands new file mode 100644 index 0000000000..5fbc5fd2bd --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/ADspinup/shell_commands @@ -0,0 +1,5 @@ +#!/bin/bash + +./xmlchange CLM_ACCELERATED_SPINUP="on" +./xmlchange MOSART_MODE="NULL" + diff --git a/cime_config/testdefs/testmods_dirs/clm/CLM1PTStartDate/shell_commands b/cime_config/testdefs/testmods_dirs/clm/CLM1PTStartDate/shell_commands new file mode 100644 index 0000000000..51be6f9abb --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/CLM1PTStartDate/shell_commands @@ -0,0 +1,16 @@ +#!/bin/bash + +if [ "`./xmlquery ATM_GRID --value`" == "1x1_vancouverCAN" ]; then + # Go one day in, so don't have to set the TOD as well + ./xmlchange RUN_STARTDATE="1992-08-13" +elif [ "`./xmlquery ATM_GRID --value`" == "1x1_mexicocityMEX" ]; then + # Go one day in, so don't have to set the TOD as well + ./xmlchange RUN_STARTDATE="1993-12-02" +elif [ "`./xmlquery ATM_GRID --value`" == "1x1_urbanc_alpha" ]; then + # Go one day in, so don't have to set the TOD as well + ./xmlchange RUN_STARTDATE="0001-08-13" +# +# Otherwise let this be set by the specific site +# +fi + diff --git a/cime_config/testdefs/testmods_dirs/clm/ExcessIceStartup_output_sp_exice/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/ExcessIceStartup_output_sp_exice/include_user_mods new file mode 100644 index 0000000000..6d8de3732a --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/ExcessIceStartup_output_sp_exice/include_user_mods @@ -0,0 +1,2 @@ +../monthly +../../../../usermods_dirs/output_sp_exice diff --git a/cime_config/testdefs/testmods_dirs/clm/ExcessIceStartup_output_sp_exice/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/ExcessIceStartup_output_sp_exice/user_nl_clm new file mode 100644 index 0000000000..e479af9449 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/ExcessIceStartup_output_sp_exice/user_nl_clm @@ -0,0 +1,3 @@ + use_excess_ice = .true. + finidat = '$DIN_LOC_ROOT/lnd/clm2/initdata_map/clmi.I1850Clm50Sp.0003-01-01.0.9x1.25_gx1v7_exice_simyr1850_c221205.nc' + use_init_interp = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/cropColdStart/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/ExcessIceStreams/include_user_mods similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/cropColdStart/include_user_mods rename to cime_config/testdefs/testmods_dirs/clm/ExcessIceStreams/include_user_mods diff --git a/cime_config/testdefs/testmods_dirs/clm/ExcessIceStreams/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/ExcessIceStreams/user_nl_clm new file mode 100644 index 0000000000..f61ca32a79 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/ExcessIceStreams/user_nl_clm @@ -0,0 +1,2 @@ + use_excess_ice = .true. + use_excess_ice_streams = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/Fates/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/Fates/user_nl_clm index 487ad09863..03ed340cbb 100644 --- a/cime_config/testdefs/testmods_dirs/clm/Fates/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/Fates/user_nl_clm @@ -1,11 +1,31 @@ -!!finidat = '$DIN_LOC_ROOT/lnd/clm2/initdata_map/iclm45fates-finit-s1.4.0-a3.0.0-1x1br.clm2.r.0111-01-01-00000.nc' +!! USES THE DEFAULT INITIALIZATION FILE SPECIFIED IN bld/namelist_files/namelist_defaults_ctsm.xml hist_mfilt = 365 hist_nhtfrq = -24 hist_empty_htapes = .true. -use_fates_spitfire= .true. -hist_fincl1 = 'NPP','GPP','BTRAN','H2OSOI','TLAI','LITTER_IN','LITTER_OUT', - 'FIRE_AREA','SCORCH_HEIGHT','FIRE_INTENSITY','FIRE_TFC_ROS','fire_fuel_mef', - 'fire_fuel_bulkd','fire_fuel_sav','FIRE_NESTEROV_INDEX','PFTbiomass', - 'PFTleafbiomass','FIRE_ROS','WIND','AREA_TREES','AREA_PLANT', - 'TOTSOMC','TOTLITC','T_SCALAR','NEP','NBP','HR','TOTECOSYSC','NPLANT_SCAG','NPLANT_SCPF', - 'BA_SCLS','NPP_BY_AGE','CWD_AG_CWDSC','PARSUN_Z_CNLF','PARSUN_Z_CNLFPFT','PARSHA_Z_CAN' +hist_ndens = 1 +fates_spitfire_mode = 1 +hist_fincl1 = 'FATES_NCOHORTS', 'FATES_TRIMMING', 'FATES_AREA_PLANTS', +'FATES_AREA_TREES', 'FATES_COLD_STATUS', 'FATES_GDD', +'FATES_NCHILLDAYS', 'FATES_NCOLDDAYS', 'FATES_DAYSINCE_COLDLEAFOFF','FATES_DAYSINCE_COLDLEAFON', +'FATES_CANOPY_SPREAD', 'FATES_NESTEROV_INDEX', 'FATES_IGNITIONS', 'FATES_FDI', +'FATES_ROS','FATES_EFFECT_WSPEED', 'FATES_FUELCONSUMED', 'FATES_FIRE_INTENSITY', +'FATES_FIRE_INTENSITY_BURNFRAC', 'FATES_BURNFRAC', 'FATES_FUEL_MEF', +'FATES_FUEL_BULKD', 'FATES_FUEL_EFF_MOIST', 'FATES_FUEL_SAV', +'FATES_FUEL_AMOUNT', 'FATES_LITTER_IN', 'FATES_LITTER_OUT', +'FATES_SEED_BANK', 'FATES_SEEDS_IN', 'FATES_STOREC', 'FATES_VEGC', +'FATES_SAPWOODC', 'FATES_LEAFC', 'FATES_FROOTC', 'FATES_REPROC', +'FATES_STRUCTC', 'FATES_NONSTRUCTC', 'FATES_VEGC_ABOVEGROUND', +'FATES_CANOPY_VEGC', 'FATES_USTORY_VEGC', 'FATES_PRIMARY_PATCHFUSION_ERR', +'FATES_DISTURBANCE_RATE_P2P', 'FATES_DISTURBANCE_RATE_P2S', +'FATES_DISTURBANCE_RATE_S2S', 'FATES_DISTURBANCE_RATE_FIRE', +'FATES_DISTURBANCE_RATE_LOGGING', 'FATES_DISTURBANCE_RATE_TREEFALL', +'FATES_DISTURBANCE_RATE_POTENTIAL', 'FATES_HARVEST_CARBON_FLUX', +'FATES_STOMATAL_COND', 'FATES_LBLAYER_COND', 'FATES_NPP', 'FATES_GPP', +'FATES_AUTORESP', 'FATES_GROWTH_RESP', 'FATES_MAINT_RESP', 'FATES_GPP_CANOPY', +'FATES_AUTORESP_CANOPY', 'FATES_GPP_USTORY', 'FATES_AUTORESP_USTORY', +'FATES_DEMOTION_CARBONFLUX', 'FATES_PROMOTION_CARBONFLUX', +'FATES_MORTALITY_CFLUX_CANOPY', 'FATES_MORTALITY_CFLUX_USTORY', +'FATES_NEP', 'FATES_HET_RESP', 'FATES_FIRE_CLOSS', 'FATES_FIRE_FLUX_EL', +'FATES_CBALANCE_ERROR', 'FATES_ERROR_EL', 'FATES_LEAF_ALLOC', +'FATES_SEED_ALLOC', 'FATES_STEM_ALLOC', 'FATES_FROOT_ALLOC', +'FATES_CROOT_ALLOC', 'FATES_STORE_ALLOC' diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesAllVars/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesAllVars/user_nl_clm deleted file mode 100644 index a869310636..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/FatesAllVars/user_nl_clm +++ /dev/null @@ -1,31 +0,0 @@ -!finidat = '$DIN_LOC_ROOT/lnd/clm2/initdata_map/iclm45fates-finit-s1.4.0-a3.0.0-f45.clm2.r.0111-01-01-00000.nc' -hist_mfilt = 365 -hist_nhtfrq = -24 -hist_empty_htapes = .false. -use_fates_spitfire= .true. -hist_fincl1 = 'NCL_BY_AGE','NPATCH_BY_AGE','BIOMASS_BY_AGE','NPP_BY_AGE','GPP_BY_AGE','PARSUN_Z_CNLF','PARSHA_Z_CNLF','PARSUN_Z_CNLFPFT', - 'PARSHA_Z_CNLFPFT','PARSUN_Z_CAN','PARSHA_Z_CAN','LAISUN_Z_CNLF','LAISHA_Z_CNLF','LAISUN_Z_CNLFPFT','LAISHA_Z_CNLFPFT', - 'LAISUN_TOP_CAN','LAISHA_TOP_CAN','FABD_SUN_CNLFPFT','FABD_SHA_CNLFPFT','FABI_SUN_CNLFPFT','FABI_SHA_CNLFPFT', - 'FABD_SUN_CNLF','FABD_SHA_CNLF','FABI_SUN_CNLF','FABI_SHA_CNLF','FABD_SUN_TOPLF_BYCANLAYER','FABD_SHA_TOPLF_BYCANLAYER', - 'FABI_SUN_TOPLF_BYCANLAYER','FABI_SHA_TOPLF_BYCANLAYER','TS_NET_UPTAKE_CNLF','YEAR_NET_UPTAKE_CNLF','CROWNAREA_CNLF', - 'MORTALITY_CARBONFLUX_CANOPY','MORTALITY_CARBONFLUX_UNDERSTORY','NPLANT_SCAG','NPLANT_CANOPY_SCAG','NPLANT_UNDERSTORY_SCAG', - 'DDBH_CANOPY_SCAG','DDBH_UNDERSTORY_SCAG','MORTALITY_CANOPY_SCAG','MORTALITY_UNDERSTORY_SCAG','GPP_SCPF','GPP_CANOPY_SCPF', - 'AR_CANOPY_SCPF','GPP_UNDERSTORY_SCPF','AR_UNDERSTORY_SCPF','NPP_SCPF','NPP_LEAF_SCPF','NPP_SEED_SCPF','NPP_FNRT_SCPF', - 'NPP_BGSW_SCPF','NPP_BGDW_SCPF','NPP_AGSW_SCPF','NPP_AGDW_SCPF','NPP_STOR_SCPF','DDBH_SCPF','DDBH_CANOPY_SCPF', - 'DDBH_UNDERSTORY_SCPF','BA_SCPF','NPLANT_SCPF','M1_SCPF','M2_SCPF','M3_SCPF','M4_SCPF','M5_SCPF','M6_SCPF','M7_SCPF', - 'MORTALITY_CANOPY_SCPF','BSTOR_CANOPY_SCPF','BLEAF_CANOPY_SCPF','NPLANT_CANOPY_SCPF','MORTALITY_UNDERSTORY_SCPF', - 'BSTOR_UNDERSTORY_SCPF','BLEAF_UNDERSTORY_SCPF','NPLANT_UNDERSTORY_SCPF','CWD_AG_CWDSC','CWD_BG_CWDSC','CWD_AG_IN_CWDSC', - 'CWD_BG_IN_CWDSC','CWD_AG_OUT_CWDSC','CWD_BG_OUT_CWDSC','AR_SCPF','AR_GROW_SCPF','AR_MAINT_SCPF','AR_DARKM_SCPF','AR_AGSAPM_SCPF', - 'AR_CROOTM_SCPF','AR_FROOTM_SCPF','DDBH_CANOPY_SCLS','DDBH_UNDERSTORY_SCLS','YESTERDAYCANLEV_CANOPY_SCLS', - 'YESTERDAYCANLEV_UNDERSTORY_SCLS','BA_SCLS','DEMOTION_RATE_SCLS','PROMOTION_RATE_SCLS','NPLANT_CANOPY_SCLS', - 'MORTALITY_CANOPY_SCLS','NPLANT_UNDERSTORY_SCLS','MORTALITY_UNDERSTORY_SCLS','TRIMMING_CANOPY_SCLS','TRIMMING_UNDERSTORY_SCLS', - 'CROWN_AREA_CANOPY_SCLS','CROWN_AREA_UNDERSTORY_SCLS','LEAF_MD_CANOPY_SCLS','ROOT_MD_CANOPY_SCLS','CARBON_BALANCE_CANOPY_SCLS', - 'SEED_PROD_CANOPY_SCLS','DBALIVEDT_CANOPY_SCLS','DBDEADDT_CANOPY_SCLS','DBSTOREDT_CANOPY_SCLS','STORAGE_FLUX_CANOPY_SCLS', - 'NPP_LEAF_CANOPY_SCLS','NPP_FROOT_CANOPY_SCLS','NPP_BSW_CANOPY_SCLS','NPP_BDEAD_CANOPY_SCLS','NPP_BSEED_CANOPY_SCLS', - 'NPP_STORE_CANOPY_SCLS','RDARK_CANOPY_SCLS','LIVESTEM_MR_CANOPY_SCLS','LIVECROOT_MR_CANOPY_SCLS','FROOT_MR_CANOPY_SCLS', - 'RESP_G_CANOPY_SCLS','RESP_M_CANOPY_SCLS','LEAF_MD_UNDERSTORY_SCLS','ROOT_MD_UNDERSTORY_SCLS','CARBON_BALANCE_UNDERSTORY_SCLS', - 'SEED_PROD_UNDERSTORY_SCLS','DBALIVEDT_UNDERSTORY_SCLS','DBDEADDT_UNDERSTORY_SCLS','DBSTOREDT_UNDERSTORY_SCLS', - 'STORAGE_FLUX_UNDERSTORY_SCLS','NPP_LEAF_UNDERSTORY_SCLS','NPP_FROOT_UNDERSTORY_SCLS','NPP_BSW_UNDERSTORY_SCLS', - 'NPP_BDEAD_UNDERSTORY_SCLS','NPP_BSEED_UNDERSTORY_SCLS','NPP_STORE_UNDERSTORY_SCLS','RDARK_UNDERSTORY_SCLS', - 'LIVESTEM_MR_UNDERSTORY_SCLS','LIVECROOT_MR_UNDERSTORY_SCLS','FROOT_MR_UNDERSTORY_SCLS','RESP_G_UNDERSTORY_SCLS', - 'RESP_M_UNDERSTORY_SCLS' diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesAllVars/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesCold/include_user_mods similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/FatesAllVars/include_user_mods rename to cime_config/testdefs/testmods_dirs/clm/FatesCold/include_user_mods diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesAllVars/shell_commands b/cime_config/testdefs/testmods_dirs/clm/FatesCold/shell_commands similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/FatesAllVars/shell_commands rename to cime_config/testdefs/testmods_dirs/clm/FatesCold/shell_commands diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/shell_commands b/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/shell_commands new file mode 100644 index 0000000000..20db712f77 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/shell_commands @@ -0,0 +1,3 @@ +./xmlchange CLM_BLDNML_OPTS="-no-megan" --append +./xmlchange BFBFLAG="TRUE" +./xmlchange CLM_FORCE_COLDSTART="on" \ No newline at end of file diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/user_nl_clm new file mode 100644 index 0000000000..e3d311efd4 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/user_nl_clm @@ -0,0 +1,77 @@ +!finidat = '$DIN_LOC_ROOT/lnd/clm2/initdata_map/iclm45fates-finit-s1.4.0-a3.0.0-f45.clm2.r.0111-01-01-00000.nc' +hist_mfilt = 365 +hist_nhtfrq = -24 +hist_empty_htapes = .false. +fates_spitfire_mode = 1 +hist_ndens = 1 +hist_fincl1 = 'FATES_CROWNAREA_PF', 'FATES_CANOPYCROWNAREA_PF', +'FATES_NCL_AP', 'FATES_NPATCH_AP', 'FATES_VEGC_AP', +'FATES_SECONDARY_FOREST_FRACTION', 'FATES_WOOD_PRODUCT', +'FATES_SECONDARY_FOREST_VEGC', 'FATES_SECONDAREA_ANTHRODIST_AP', +'FATES_SECONDAREA_DIST_AP', 'FATES_STOMATAL_COND_AP', 'FATES_LBLAYER_COND_AP', +'FATES_NPP_AP', 'FATES_GPP_AP', 'FATES_PARSUN_Z_CLLL', 'FATES_PARSHA_Z_CLLL', +'FATES_PARSUN_Z_CLLLPF', 'FATES_PARSHA_Z_CLLLPF', 'FATES_PARSUN_Z_CL', +'FATES_PARSHA_Z_CL', 'FATES_LAISUN_Z_CLLL', 'FATES_LAISHA_Z_CLLL', +'FATES_LAISUN_Z_CLLLPF', 'FATES_LAISHA_Z_CLLLPF', 'FATES_LAISUN_TOP_CL', +'FATES_LAISHA_TOP_CL', 'FATES_FABD_SUN_CLLLPF', 'FATES_FABD_SHA_CLLLPF', +'FATES_FABI_SUN_CLLLPF', 'FATES_FABI_SHA_CLLLPF', 'FATES_FABD_SUN_CLLL', +'FATES_FABD_SHA_CLLL', 'FATES_FABI_SUN_CLLL', 'FATES_FABI_SHA_CLLL', +'FATES_PARPROF_DIR_CLLLPF', 'FATES_PARPROF_DIF_CLLLPF', +'FATES_PARPROF_DIR_CLLL', 'FATES_PARPROF_DIF_CLLL', 'FATES_FABD_SUN_TOPLF_CL', +'FATES_FABD_SHA_TOPLF_CL', 'FATES_FABI_SUN_TOPLF_CL', 'FATES_FABI_SHA_TOPLF_CL', +'FATES_NET_C_UPTAKE_CLLL', 'FATES_CROWNAREA_CLLL', 'FATES_NPLANT_CANOPY_SZAP', +'FATES_NPLANT_USTORY_SZAP', 'FATES_DDBH_CANOPY_SZAP', 'FATES_DDBH_USTORY_SZAP', +'FATES_MORTALITY_CANOPY_SZAP', 'FATES_MORTALITY_USTORY_SZAP', +'FATES_NPLANT_SZAPPF', 'FATES_NPP_APPF', 'FATES_VEGC_APPF', 'FATES_GPP_SZPF', +'FATES_GPP_CANOPY_SZPF', 'FATES_AUTORESP_CANOPY_SZPF', 'FATES_GPP_USTORY_SZPF', +'FATES_AUTORESP_USTORY_SZPF', 'FATES_NPP_SZPF', 'FATES_LEAF_ALLOC_SZPF', +'FATES_SEED_ALLOC_SZPF', 'FATES_FROOT_ALLOC_SZPF', 'FATES_BGSAPWOOD_ALLOC_SZPF', +'FATES_BGSTRUCT_ALLOC_SZPF', 'FATES_AGSAPWOOD_ALLOC_SZPF', +'FATES_AGSTRUCT_ALLOC_SZPF', 'FATES_STORE_ALLOC_SZPF', 'FATES_DDBH_SZPF', +'FATES_GROWTHFLUX_SZPF', 'FATES_GROWTHFLUX_FUSION_SZPF', +'FATES_DDBH_CANOPY_SZPF', 'FATES_DDBH_USTORY_SZPF', 'FATES_BASALAREA_SZPF', +'FATES_VEGC_ABOVEGROUND_SZPF', 'FATES_NPLANT_SZPF', 'FATES_NPLANT_ACPF', +'FATES_MORTALITY_BACKGROUND_SZPF', 'FATES_MORTALITY_HYDRAULIC_SZPF', +'FATES_MORTALITY_CSTARV_SZPF', 'FATES_MORTALITY_IMPACT_SZPF', +'FATES_MORTALITY_FIRE_SZPF', 'FATES_MORTALITY_CROWNSCORCH_SZPF', +'FATES_MORTALITY_CAMBIALBURN_SZPF', 'FATES_MORTALITY_TERMINATION_SZPF', +'FATES_MORTALITY_LOGGING_SZPF', 'FATES_MORTALITY_FREEZING_SZPF', +'FATES_MORTALITY_SENESCENCE_SZPF', 'FATES_MORTALITY_AGESCEN_SZPF', +'FATES_MORTALITY_AGESCEN_ACPF', 'FATES_MORTALITY_CANOPY_SZPF', +'FATES_STOREC_CANOPY_SZPF', 'FATES_LEAFC_CANOPY_SZPF', +'FATES_NPLANT_CANOPY_SZPF', 'FATES_MORTALITY_USTORY_SZPF', +'FATES_STOREC_USTORY_SZPF', 'FATES_LEAFC_USTORY_SZPF', +'FATES_NPLANT_USTORY_SZPF', 'FATES_CWD_ABOVEGROUND_DC', +'FATES_CWD_BELOWGROUND_DC', 'FATES_CWD_ABOVEGROUND_IN_DC', +'FATES_CWD_BELOWGROUND_IN_DC', 'FATES_CWD_ABOVEGROUND_OUT_DC', +'FATES_CWD_BELOWGROUND_OUT_DC', 'FATES_AUTORESP_SZPF', 'FATES_GROWAR_SZPF', +'FATES_MAINTAR_SZPF', 'FATES_RDARK_SZPF', 'FATES_AGSAPMAINTAR_SZPF', +'FATES_BGSAPMAINTAR_SZPF', 'FATES_FROOTMAINTAR_SZPF', +'FATES_YESTCANLEV_CANOPY_SZ', 'FATES_YESTCANLEV_USTORY_SZ', +'FATES_VEGC_SZ', 'FATES_DEMOTION_RATE_SZ', 'FATES_PROMOTION_RATE_SZ', +'FATES_SAI_CANOPY_SZ', 'FATES_SAI_USTORY_SZ', 'FATES_NPP_CANOPY_SZ', +'FATES_NPP_USTORY_SZ', 'FATES_TRIMMING_CANOPY_SZ', 'FATES_TRIMMING_USTORY_SZ', +'FATES_CROWNAREA_CANOPY_SZ', 'FATES_CROWNAREA_USTORY_SZ', +'FATES_LEAFCTURN_CANOPY_SZ', 'FATES_FROOTCTURN_CANOPY_SZ', +'FATES_STORECTURN_CANOPY_SZ', 'FATES_STRUCTCTURN_CANOPY_SZ', +'FATES_SAPWOODCTURN_CANOPY_SZ', 'FATES_SEED_PROD_CANOPY_SZ', +'FATES_LEAF_ALLOC_CANOPY_SZ', 'FATES_FROOT_ALLOC_CANOPY_SZ', +'FATES_SAPWOOD_ALLOC_CANOPY_SZ', 'FATES_STRUCT_ALLOC_CANOPY_SZ', +'FATES_SEED_ALLOC_CANOPY_SZ', 'FATES_STORE_ALLOC_CANOPY_SZ', +'FATES_RDARK_CANOPY_SZ', 'FATES_LSTEMMAINTAR_CANOPY_SZ', +'FATES_CROOTMAINTAR_CANOPY_SZ', 'FATES_FROOTMAINTAR_CANOPY_SZ', +'FATES_GROWAR_CANOPY_SZ', 'FATES_MAINTAR_CANOPY_SZ', +'FATES_LEAFCTURN_USTORY_SZ', 'FATES_FROOTCTURN_USTORY_SZ', +'FATES_STORECTURN_USTORY_SZ', 'FATES_STRUCTCTURN_USTORY_SZ', +'FATES_SAPWOODCTURN_USTORY_SZ', 'FATES_SEED_PROD_USTORY_SZ', +'FATES_LEAF_ALLOC_USTORY_SZ', 'FATES_FROOT_ALLOC_USTORY_SZ', +'FATES_SAPWOOD_ALLOC_USTORY_SZ', 'FATES_STRUCT_ALLOC_USTORY_SZ', +'FATES_SEED_ALLOC_USTORY_SZ', 'FATES_STORE_ALLOC_USTORY_SZ', +'FATES_RDARK_USTORY_SZ', 'FATES_LSTEMMAINTAR_USTORY_SZ', +'FATES_CROOTMAINTAR_USTORY_SZ', 'FATES_FROOTMAINTAR_USTORY_SZ', +'FATES_GROWAR_USTORY_SZ', 'FATES_MAINTAR_USTORY_SZ', 'FATES_VEGC_SZPF', +'FATES_LEAFC_SZPF', 'FATES_FROOTC_SZPF', 'FATES_SAPWOODC_SZPF', +'FATES_STOREC_SZPF', 'FATES_REPROC_SZPF', 'FATES_DROUGHT_STATUS_PF', +'FATES_DAYSINCE_DROUGHTLEAFOFF_PF', 'FATES_DAYSINCE_DROUGHTLEAFON_PF', +'FATES_MEANLIQVOL_DROUGHTPHEN_PF', 'FATES_MEANSMP_DROUGHTPHEN_PF', +'FATES_ELONG_FACTOR_PF' diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdBasic/shell_commands b/cime_config/testdefs/testmods_dirs/clm/FatesColdBasic/shell_commands new file mode 100644 index 0000000000..586dff9dd5 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdBasic/shell_commands @@ -0,0 +1,2 @@ +./xmlchange CLM_FORCE_COLDSTART="on" +./xmlchange BFBFLAG="TRUE" diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdCH4Off/README b/cime_config/testdefs/testmods_dirs/clm/FatesColdCH4Off/README new file mode 100644 index 0000000000..0af53362c4 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdCH4Off/README @@ -0,0 +1 @@ +Test with FATES with methane off which is normally on by default diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdCH4Off/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdCH4Off/include_user_mods new file mode 100644 index 0000000000..14f7591b72 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdCH4Off/include_user_mods @@ -0,0 +1 @@ +../FatesCold diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdCH4Off/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdCH4Off/user_nl_clm new file mode 100644 index 0000000000..9f977ac5ce --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdCH4Off/user_nl_clm @@ -0,0 +1,2 @@ +use_lch4 = .false. +hist_fields_list_file = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdDef/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdDef/user_nl_clm deleted file mode 100644 index 144569c412..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/FatesColdDef/user_nl_clm +++ /dev/null @@ -1,6 +0,0 @@ -hist_fincl1 = 'NPP','GPP','BTRAN','H2OSOI','TLAI','LITTER_IN','LITTER_OUT', - 'FIRE_AREA','SCORCH_HEIGHT','FIRE_INTENSITY','FIRE_TFC_ROS','fire_fuel_mef', - 'fire_fuel_bulkd','fire_fuel_sav','FIRE_NESTEROV_INDEX','PFTbiomass', - 'PFTleafbiomass','FIRE_ROS','WIND','AREA_TREES','AREA_PLANT', - 'TOTSOMC','TOTLITC','T_SCALAR','NEP','NBP','HR','TOTECOSYSC','NPLANT_SCAG','NPLANT_SCPF', - 'BA_SCLS','NPP_BY_AGE','CWD_AG_CWDSC','PARSUN_Z_CNLF','PARSUN_Z_CNLFPFT','PARSHA_Z_CAN' diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDep/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDep/include_user_mods new file mode 100644 index 0000000000..14f7591b72 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDep/include_user_mods @@ -0,0 +1 @@ +../FatesCold diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDep/shell_commands b/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDep/shell_commands new file mode 100644 index 0000000000..870cd99bf5 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDep/shell_commands @@ -0,0 +1,3 @@ +./xmlchange CLM_BLDNML_OPTS='--drydep' --append +# The following would be required if you want to run with DryDep and FATES without Fates-SP mode +#./xmlchange CLM_BLDNML_OPTS="--ignore_warnings" --append diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDepSatPhen/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDepSatPhen/include_user_mods new file mode 100644 index 0000000000..f0a10ab452 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDepSatPhen/include_user_mods @@ -0,0 +1 @@ +../FatesColdBasic diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDepSatPhen/shell_commands b/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDepSatPhen/shell_commands new file mode 100644 index 0000000000..870cd99bf5 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDepSatPhen/shell_commands @@ -0,0 +1,3 @@ +./xmlchange CLM_BLDNML_OPTS='--drydep' --append +# The following would be required if you want to run with DryDep and FATES without Fates-SP mode +#./xmlchange CLM_BLDNML_OPTS="--ignore_warnings" --append diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDepSatPhen/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDepSatPhen/user_nl_clm new file mode 100644 index 0000000000..3749fd1d61 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdDryDepSatPhen/user_nl_clm @@ -0,0 +1,4 @@ + +hist_mfilt = 365 +hist_nhtfrq = -24 + diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdFixedBiogeo/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdFixedBiogeo/include_user_mods new file mode 100644 index 0000000000..14f7591b72 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdFixedBiogeo/include_user_mods @@ -0,0 +1 @@ +../FatesCold diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdFixedBiogeo/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdFixedBiogeo/user_nl_clm new file mode 100644 index 0000000000..ffcc5dd2f5 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdFixedBiogeo/user_nl_clm @@ -0,0 +1 @@ +use_fates_fixed_biogeog=.true. diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/include_user_mods new file mode 100644 index 0000000000..14f7591b72 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/include_user_mods @@ -0,0 +1 @@ +../FatesCold diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/user_nl_clm new file mode 100644 index 0000000000..f0bdb388eb --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/user_nl_clm @@ -0,0 +1,12 @@ +hist_mfilt = 365 +hist_nhtfrq = -24 +hist_empty_htapes = .true. +use_fates_planthydro= .true. +hist_fincl1 = 'FATES_ERRH2O_SZPF', 'FATES_TRAN_SZPF', +'FATES_SAPFLOW_SZPF', 'FATES_ITERH1_SZPF','FATES_ABSROOT_H2O_SZPF', +'FATES_TRANSROOT_H2O_SZPF','FATES_STEM_H2O_SZPF','FATES_LEAF_H2O_SZPF', +'FATES_ABSROOT_H2OPOT_SZPF','FATES_BTRAN_SZPF','FATES_ROOTWGT_SOILVWC', +'FATES_ROOTWGT_SOILVWCSAT','FATES_ROOTWGT_SOILMATPOT','FATES_SOILMATPOT_SL', +'FATES_SOILVWC_SL','FATES_SOILVWCSAT_SL','FATES_ROOTUPTAKE', +'FATES_ROOTUPTAKE_SL','FATES_ROOTUPTAKE0_SZPF','FATES_ROOTUPTAKE10_SZPF', +'FATES_ROOTUPTAKE50_SZPF','FATES_ROOTUPTAKE100_SZPF' diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdLandUse/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdLandUse/include_user_mods new file mode 100644 index 0000000000..14f7591b72 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdLandUse/include_user_mods @@ -0,0 +1 @@ +../FatesCold diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdLandUse/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdLandUse/user_nl_clm new file mode 100644 index 0000000000..098d4fd33a --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdLandUse/user_nl_clm @@ -0,0 +1,2 @@ +flanduse_timeseries = '$DIN_LOC_ROOT/lnd/clm2/surfdata_map/landuse.timeseries_4x5_hist_simyr1850-2015_200311.nc' +do_harvest = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdLogging/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdLogging/include_user_mods new file mode 100644 index 0000000000..14f7591b72 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdLogging/include_user_mods @@ -0,0 +1 @@ +../FatesCold diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesLogging/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdLogging/user_nl_clm similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/FatesLogging/user_nl_clm rename to cime_config/testdefs/testmods_dirs/clm/FatesColdLogging/user_nl_clm diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdMegan/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdMegan/include_user_mods new file mode 100644 index 0000000000..14f7591b72 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdMegan/include_user_mods @@ -0,0 +1 @@ +../FatesCold diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdMegan/shell_commands b/cime_config/testdefs/testmods_dirs/clm/FatesColdMegan/shell_commands new file mode 100644 index 0000000000..749af3486f --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdMegan/shell_commands @@ -0,0 +1,2 @@ +./xmlchange CLM_BLDNML_OPTS='--megan' --append +./xmlchange CLM_BLDNML_OPTS="--ignore_warnings" --append diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdMeganSatPhen/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdMeganSatPhen/include_user_mods new file mode 100644 index 0000000000..f0a10ab452 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdMeganSatPhen/include_user_mods @@ -0,0 +1 @@ +../FatesColdBasic diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdMeganSatPhen/shell_commands b/cime_config/testdefs/testmods_dirs/clm/FatesColdMeganSatPhen/shell_commands new file mode 100644 index 0000000000..749af3486f --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdMeganSatPhen/shell_commands @@ -0,0 +1,2 @@ +./xmlchange CLM_BLDNML_OPTS='--megan' --append +./xmlchange CLM_BLDNML_OPTS="--ignore_warnings" --append diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdMeganSatPhen/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdMeganSatPhen/user_nl_clm new file mode 100644 index 0000000000..3749fd1d61 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdMeganSatPhen/user_nl_clm @@ -0,0 +1,4 @@ + +hist_mfilt = 365 +hist_nhtfrq = -24 + diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdNoComp/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdNoComp/include_user_mods new file mode 100644 index 0000000000..14f7591b72 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdNoComp/include_user_mods @@ -0,0 +1 @@ +../FatesCold diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdNoComp/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdNoComp/user_nl_clm new file mode 100644 index 0000000000..ca1d1f88b0 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdNoComp/user_nl_clm @@ -0,0 +1 @@ +use_fates_nocomp = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdNoCompFixedBioGeo/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdNoCompFixedBioGeo/include_user_mods new file mode 100644 index 0000000000..ea160c525f --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdNoCompFixedBioGeo/include_user_mods @@ -0,0 +1 @@ +../FatesColdNoComp \ No newline at end of file diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdNoCompFixedBioGeo/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdNoCompFixedBioGeo/user_nl_clm new file mode 100644 index 0000000000..d3349780e0 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdNoCompFixedBioGeo/user_nl_clm @@ -0,0 +1 @@ +use_fates_fixed_biogeog=.true. \ No newline at end of file diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdNoFire/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdNoFire/include_user_mods new file mode 100644 index 0000000000..14f7591b72 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdNoFire/include_user_mods @@ -0,0 +1 @@ +../FatesCold diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdNoFire/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdNoFire/user_nl_clm new file mode 100644 index 0000000000..8fc4951e6a --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdNoFire/user_nl_clm @@ -0,0 +1 @@ +fates_spitfire_mode = 0 diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdPPhys/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdPPhys/include_user_mods new file mode 100644 index 0000000000..14f7591b72 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdPPhys/include_user_mods @@ -0,0 +1 @@ +../FatesCold diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesPPhys/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdPPhys/user_nl_clm similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/FatesPPhys/user_nl_clm rename to cime_config/testdefs/testmods_dirs/clm/FatesColdPPhys/user_nl_clm diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdPRT2/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdPRT2/include_user_mods new file mode 100644 index 0000000000..14f7591b72 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdPRT2/include_user_mods @@ -0,0 +1 @@ +../FatesCold diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdPRT2/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdPRT2/user_nl_clm new file mode 100644 index 0000000000..679f025b60 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdPRT2/user_nl_clm @@ -0,0 +1,12 @@ +fates_parteh_mode = 2 +hist_fincl1 = 'FATES_L2FR','FATES_L2FR_CANOPY_REC_PF','FATES_L2FR_USTORY_REC_PF', +'FATES_NH4UPTAKE_SZPF','FATES_NO3UPTAKE_SZPF','FATES_NEFFLUX_SZPF', +'FATES_NDEMAND_SZPF','FATES_NFIX_SYM_SZPF','FATES_NH4UPTAKE','FATES_NO3UPTAKE', +'FATES_NEFFLUX','FATES_NDEMAND','FATES_NFIX_SYM','FATES_STOREN','FATES_STOREN_TF', +'FATES_VEGN','FATES_SAPWOODN','FATES_LEAFN','FATES_FROOTN','FATES_REPRON','FATES_VEGN_SZPF', +'FATES_LEAFN_SZPF','FATES_FROOTN_SZPF','FATES_SAPWOODN_SZPF','FATES_STOREN_SZPF','FATES_STOREN_TF_CANOPY_SZPF', +'FATES_STOREN_TF_USTORY_SZPF','FATES_REPRON_SZPF','FATES_STOREP','FATES_STOREP_TF','FATES_VEGP','FATES_SAPWOODP', +'FATES_LEAFP','FATES_FROOTP','FATES_REPROP','FATES_PUPTAKE','FATES_PEFFLUX','FATES_PDEMAND', +'FATES_VEGP_SZPF','FATES_LEAFP_SZPF','FATES_FROOTP_SZPF','FATES_SAPWOODP_SZPF','FATES_STOREP_SZPF', +'FATES_STOREP_TF_CANOPY_SZPF','FATES_STOREP_TF_USTORY_SZPF','FATES_REPROP_SZPF','FATES_PUPTAKE_SZPF', +'FATES_PEFFLUX_SZPF','FATES_PDEMAND_SZPF' diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdST3/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdST3/include_user_mods new file mode 100644 index 0000000000..14f7591b72 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdST3/include_user_mods @@ -0,0 +1 @@ +../FatesCold diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesST3/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdST3/user_nl_clm similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/FatesST3/user_nl_clm rename to cime_config/testdefs/testmods_dirs/clm/FatesColdST3/user_nl_clm diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhen/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhen/include_user_mods new file mode 100644 index 0000000000..f0a10ab452 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhen/include_user_mods @@ -0,0 +1 @@ +../FatesColdBasic diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhen/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhen/user_nl_clm new file mode 100644 index 0000000000..3749fd1d61 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhen/user_nl_clm @@ -0,0 +1,4 @@ + +hist_mfilt = 365 +hist_nhtfrq = -24 + diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhen_prescribed/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhen_prescribed/include_user_mods new file mode 100644 index 0000000000..33ca1de12e --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhen_prescribed/include_user_mods @@ -0,0 +1 @@ +../FatesColdSatPhen diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhen_prescribed/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhen_prescribed/user_nl_clm new file mode 100644 index 0000000000..59a4137be7 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdSatPhen_prescribed/user_nl_clm @@ -0,0 +1,3 @@ +use_lai_streams = .true. +lai_tintalgo = 'lower' ! set time interpolation to use lower value, so can compare more directly to input dataset + \ No newline at end of file diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdSizeAgeMort/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdSizeAgeMort/include_user_mods new file mode 100644 index 0000000000..14f7591b72 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdSizeAgeMort/include_user_mods @@ -0,0 +1 @@ +../FatesCold diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdSizeAgeMort/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdSizeAgeMort/user_nl_clm new file mode 100644 index 0000000000..1daed02874 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdSizeAgeMort/user_nl_clm @@ -0,0 +1,5 @@ +hist_empty_htapes = .true. +use_fates_cohort_age_tracking=.true. +hist_fincl1 = 'FATES_NPLANT_ACPF', 'FATES_MORTALITY_SENESCENCE_SZPF', +'FATES_MORTALITY_AGESCEN_SZPF', 'FATES_MORTALITY_AGESCEN_ACPF', 'FATES_NPLANT_AC', +'FATES_MORTALITY_SENESCENCE_SZ', 'FATES_MORTALITY_AGESCEN_SZ', 'FATES_MORTALITY_AGESCEN_AC' diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdTreeDamage/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesColdTreeDamage/include_user_mods new file mode 100644 index 0000000000..5417dbaa1c --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdTreeDamage/include_user_mods @@ -0,0 +1 @@ +../FatesCold \ No newline at end of file diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdTreeDamage/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdTreeDamage/user_nl_clm new file mode 100644 index 0000000000..426df087ac --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdTreeDamage/user_nl_clm @@ -0,0 +1 @@ +use_fates_tree_damage=.true. \ No newline at end of file diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesFireLightningPopDens/README b/cime_config/testdefs/testmods_dirs/clm/FatesFireLightningPopDens/README new file mode 100644 index 0000000000..8acea69aa4 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesFireLightningPopDens/README @@ -0,0 +1,25 @@ +Testing capability to read/use lightning frequency & population density +datasets. Calculates lightning ignitions using the SPITFIRE +formulation and anthropogenic ignitions using the Li et al. 2012 formulation +based on human population density implemented in CTSM-CN's fire model. + +Testing does not include a separate test for reading/using a successful +ignitions dataset which uses the same format and units so handling +is the same until you're in subroutine area_burnt_intensity where for +"successful ignitions" the model selects +currentSite%FDI = 1.0_r8 +cloud_to_ground_strikes = 1.0_r8 +while for lightning the model can use values < 1 for both. + +Lara Kueppers (UC-Berkeley) has access to a "successful ignitions" +dataset for California that has not been placed in the repository of +CTSM datasets as of 2020/6/6. That dataset can be used with the +following settings: + +fates_spitfire_mode = 3 +stream_fldfilename_lightng = '.../data_UCB/observed/CA_monthly_ignition_number_1980-2016/ignition_1980_to_2016_monthly_20190801.nc' +stream_year_first_lightng = 1980 +stream_year_last_lightng = 2016 +model_year_align_lightng = 1980 + +where {...} = /fs/cgd/data0/slevis on izumi and /glade/work/slevis on cheyenne. diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesFireLightningPopDens/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesFireLightningPopDens/user_nl_clm new file mode 100644 index 0000000000..7915bb63eb --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesFireLightningPopDens/user_nl_clm @@ -0,0 +1,3 @@ +fates_spitfire_mode = 4 +hist_nhtfrq = 0 +hist_mfilt = 1 diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesLogging/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesLogging/include_user_mods deleted file mode 100644 index 4c7aa0f2b4..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/FatesLogging/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../Fates diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesNoFire/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesNoFire/include_user_mods deleted file mode 100644 index 4c7aa0f2b4..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/FatesNoFire/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../Fates diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesNoFire/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesNoFire/user_nl_clm deleted file mode 100644 index dfdb775ec5..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/FatesNoFire/user_nl_clm +++ /dev/null @@ -1 +0,0 @@ -use_fates_spitfire= .false. diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesPPhys/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesPPhys/include_user_mods deleted file mode 100644 index 4c7aa0f2b4..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/FatesPPhys/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../Fates diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdDef/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesPRISM/include_user_mods similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/FatesColdDef/include_user_mods rename to cime_config/testdefs/testmods_dirs/clm/FatesPRISM/include_user_mods diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesPRISM/shell_commands b/cime_config/testdefs/testmods_dirs/clm/FatesPRISM/shell_commands new file mode 100644 index 0000000000..39812a8706 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/FatesPRISM/shell_commands @@ -0,0 +1,2 @@ +#!/bin/bash +./xmlchange CLM_USRDAT_NAME=NEON.PRISM diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesST3/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/FatesST3/include_user_mods deleted file mode 100644 index 4c7aa0f2b4..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/FatesST3/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../Fates diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesShortList/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesShortList/user_nl_clm index f9d31eecbb..7c0e8536c1 100644 --- a/cime_config/testdefs/testmods_dirs/clm/FatesShortList/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/FatesShortList/user_nl_clm @@ -1,5 +1,5 @@ -hist_fincl1 = 'NPP','GPP','BTRAN','H2OSOI','TLAI','LITTER_IN','LITTER_OUT', - 'FIRE_AREA','SCORCH_HEIGHT','FIRE_INTENSITY','FIRE_TFC_ROS','fire_fuel_mef', - 'fire_fuel_bulkd','fire_fuel_sav','FIRE_NESTEROV_INDEX','PFTbiomass', - 'PFTleafbiomass','FIRE_ROS','WIND','AREA_TREES','AREA_PLANT', - 'TOTSOMC','TOTLITC','T_SCALAR','NEP','NBP','HR','TOTECOSYSC' +hist_fincl1 = 'FATES_AREA_PLANTS', 'FATES_AREA_TREES', 'FATES_VEGC_PF', +'FATES_LEAFC_PF', 'FATES_NESTEROV_INDEX', 'FATES_ROS', 'FATES_FUELCONSUMED', +'FATES_FIRE_INTENSITY', 'FATES_BURNFRAC', 'FATES_FUEL_MEF', 'FATES_FUEL_BULKD', +'FATES_FUEL_SAV', 'FATES_LITTER_IN', 'FATES_LITTER_OUT', 'FATES_NPP', +'FATES_GPP', 'FATES_SCORCH_HEIGHT_APPF', 'FATES_NEP' diff --git a/cime_config/testdefs/testmods_dirs/clm/o3/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/Meier2022_surf_rough/include_user_mods similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/o3/include_user_mods rename to cime_config/testdefs/testmods_dirs/clm/Meier2022_surf_rough/include_user_mods diff --git a/cime_config/testdefs/testmods_dirs/clm/Meier2022_surf_rough/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/Meier2022_surf_rough/user_nl_clm new file mode 100644 index 0000000000..01df79ecba --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/Meier2022_surf_rough/user_nl_clm @@ -0,0 +1,4 @@ +z0param_method = 'Meier2022' +use_z0m_snowmelt = .true. +paramfile = '$DIN_LOC_ROOT/lnd/clm2/paramdata/ctsm51_params.RMz0.c220304.nc' + diff --git a/cime_config/testdefs/testmods_dirs/clm/NoVSNoNI/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/NoVSNoNI/user_nl_clm deleted file mode 100644 index f225dede82..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/NoVSNoNI/user_nl_clm +++ /dev/null @@ -1,4 +0,0 @@ - anoxia = .true. - use_vertsoilc = .false. - use_nitrif_denitrif = .false. - hist_wrtch4diag = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/rootlit/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/PRISM/include_user_mods similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/rootlit/include_user_mods rename to cime_config/testdefs/testmods_dirs/clm/PRISM/include_user_mods diff --git a/cime_config/testdefs/testmods_dirs/clm/PRISM/shell_commands b/cime_config/testdefs/testmods_dirs/clm/PRISM/shell_commands new file mode 100644 index 0000000000..39812a8706 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/PRISM/shell_commands @@ -0,0 +1,2 @@ +#!/bin/bash +./xmlchange CLM_USRDAT_NAME=NEON.PRISM diff --git a/cime_config/testdefs/testmods_dirs/clm/SaveHistFieldList/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/SaveHistFieldList/user_nl_clm new file mode 100644 index 0000000000..4791cd28b2 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/SaveHistFieldList/user_nl_clm @@ -0,0 +1 @@ +hist_fields_list_file = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/USUMB_mct/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/USUMB_mct/include_user_mods new file mode 100644 index 0000000000..3e31b09d16 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/USUMB_mct/include_user_mods @@ -0,0 +1 @@ +../CLM1PTStartDate diff --git a/cime_config/testdefs/testmods_dirs/clm/USUMB/shell_commands b/cime_config/testdefs/testmods_dirs/clm/USUMB_mct/shell_commands similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/USUMB/shell_commands rename to cime_config/testdefs/testmods_dirs/clm/USUMB_mct/shell_commands diff --git a/cime_config/testdefs/testmods_dirs/clm/USUMB/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/USUMB_mct/user_nl_clm similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/USUMB/user_nl_clm rename to cime_config/testdefs/testmods_dirs/clm/USUMB_mct/user_nl_clm diff --git a/cime_config/testdefs/testmods_dirs/clm/USUMB_nuopc/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/USUMB_nuopc/include_user_mods new file mode 100644 index 0000000000..3e31b09d16 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/USUMB_nuopc/include_user_mods @@ -0,0 +1 @@ +../CLM1PTStartDate diff --git a/cime_config/testdefs/testmods_dirs/clm/USUMB_nuopc/shell_commands b/cime_config/testdefs/testmods_dirs/clm/USUMB_nuopc/shell_commands new file mode 100755 index 0000000000..08a9014abe --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/USUMB_nuopc/shell_commands @@ -0,0 +1,17 @@ +# shell commands to execute xmlchange commands written by PTCLMmkdata: +# ./PTCLMmkdata --cesm_root ../../../.. -s US-UMB -d /glade/p/cesm/cseg/inputdata --mydatadir=/glade/p/cesm/cseg/inputdata/lnd/clm2/PTCLMmydatafiles.c171024 +./xmlchange CLM_USRDAT_NAME=1x1pt_US-UMB +./xmlchange DATM_YR_START=1999 +./xmlchange DATM_YR_END=2006 +# Comment this out if NINST_LND is greater than 1 (see: http://bugs.cgd.ucar.edu/show_bug.cgi?id=2521) +./xmlchange MPILIB=mpi-serial +./xmlchange --append CLM_BLDNML_OPTS='-mask navy -no-crop' +./xmlchange CALENDAR=GREGORIAN +./xmlchange DOUT_S=FALSE +./xmlchange ATM_NCPL=24 +./xmlchange RUN_STARTDATE=1999-01-01 +./xmlchange DATM_YR_ALIGN=1999 +./xmlchange DIN_LOC_ROOT=/glade/p/cesm/cseg/inputdata +./xmlchange DIN_LOC_ROOT_CLMFORC=/glade/p/cesm/cseg/inputdata/lnd/clm2/PTCLMmydatafiles.c171024 +./xmlchange PTS_LON=275.2862 +./xmlchange PTS_LAT=45.5598 diff --git a/cime_config/testdefs/testmods_dirs/clm/USUMB_nuopc/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/USUMB_nuopc/user_nl_clm new file mode 100644 index 0000000000..38ce400297 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/USUMB_nuopc/user_nl_clm @@ -0,0 +1,5 @@ +! user_nl_clm namelist options written by PTCLMmkdata: +! ./PTCLMmkdata --cesm_root ../../../.. -s US-UMB -d /glade/p/cesm/cseg/inputdata --mydatadir=/glade/p/cesm/cseg/inputdata/lnd/clm2/PTCLMmydatafiles.c171024 + fsurdat = '/glade/p/cesm/cseg/inputdata/lnd/clm2/PTCLMmydatafiles.c171024/1x1pt_US-UMB/surfdata_1x1pt_US-UMB_16pfts_Irrig_CMIP6_simyr2000_c171024.nc' + hist_nhtfrq = 0 + hist_mfilt = 1200 diff --git a/cime_config/testdefs/testmods_dirs/clm/af_bias_v7/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/af_bias_v7/user_nl_clm deleted file mode 100644 index c7cfe279ee..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/af_bias_v7/user_nl_clm +++ /dev/null @@ -1 +0,0 @@ -use_lai_streams = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/anoxia/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/anoxia/include_user_mods new file mode 100644 index 0000000000..fe0e18cf88 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/anoxia/include_user_mods @@ -0,0 +1 @@ +../default diff --git a/cime_config/testdefs/testmods_dirs/clm/rootlit/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/anoxia/user_nl_clm similarity index 65% rename from cime_config/testdefs/testmods_dirs/clm/rootlit/user_nl_clm rename to cime_config/testdefs/testmods_dirs/clm/anoxia/user_nl_clm index 53d20a3a97..0f30b7f5f3 100644 --- a/cime_config/testdefs/testmods_dirs/clm/rootlit/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/anoxia/user_nl_clm @@ -1,3 +1,2 @@ - use_vertsoilc = .false. anoxia = .true. hist_wrtch4diag = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/README b/cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/README new file mode 100644 index 0000000000..39ac318b86 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/README @@ -0,0 +1,8 @@ +This points to an alternate params file with +rf_cwdl2 = 0.5 +rf_cwdl3_bgc = 0.5 +while by default these parameters equal zero. + +The test outputs inactive history fields that would contain zeros +when running with the default params file and should be greater than zero +when running with the alternate params file. diff --git a/cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/include_user_mods new file mode 100644 index 0000000000..ce640345c5 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/include_user_mods @@ -0,0 +1 @@ +../ciso diff --git a/cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/user_nl_clm new file mode 100644 index 0000000000..7ae4a69aad --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/user_nl_clm @@ -0,0 +1,2 @@ +paramfile = '/glade/p/cesm/cseg/inputdata/lnd/clm2/paramdata/ctsm51_ciso_cwd_hr_params.c211112.nc' +hist_fincl1 = 'CWDC_HR','C13_CWDC_HR','C14_CWDC_HR','CWD_HR_L2','CWD_HR_L2_vr','CWD_HR_L3','CWD_HR_L3_vr' diff --git a/cime_config/testdefs/testmods_dirs/clm/ciso_dec2050Start/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/ciso_dec2050Start/include_user_mods new file mode 100644 index 0000000000..c9053f7b07 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/ciso_dec2050Start/include_user_mods @@ -0,0 +1,2 @@ +../ciso +../decStart diff --git a/cime_config/testdefs/testmods_dirs/clm/ciso_dec2050Start/shell_commands b/cime_config/testdefs/testmods_dirs/clm/ciso_dec2050Start/shell_commands new file mode 100755 index 0000000000..8bd67a0031 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/ciso_dec2050Start/shell_commands @@ -0,0 +1 @@ +./xmlchange RUN_STARTDATE=2050-12-30 diff --git a/cime_config/testdefs/testmods_dirs/clm/ciso_dec2050Start/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/ciso_dec2050Start/user_nl_clm new file mode 100644 index 0000000000..f5f43b3aff --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/ciso_dec2050Start/user_nl_clm @@ -0,0 +1,3 @@ +! Initial condition file from a coupled run at 2015 that will work with this setup.. + finidat = "$DIN_LOC_ROOT/cesm2_init/b.e21.BHIST.f09_g17.CMIP6-historical.010/2015-01-01/b.e21.BHIST.f09_g17.CMIP6-historical.010.clm2.r.2015-01-01-00000.nc" + use_init_interp = T diff --git a/cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/include_user_mods new file mode 100644 index 0000000000..fe0e18cf88 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/include_user_mods @@ -0,0 +1 @@ +../default diff --git a/cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/shell_commands b/cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/shell_commands new file mode 100644 index 0000000000..bc72045eeb --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/clm45cam6LndTuningMode/shell_commands @@ -0,0 +1,4 @@ +#!/bin/bash + +./xmlchange LND_TUNING_MODE="clm4_5_cam6.0" + diff --git a/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode/include_user_mods new file mode 100644 index 0000000000..fe0e18cf88 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode/include_user_mods @@ -0,0 +1 @@ +../default diff --git a/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode/shell_commands b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode/shell_commands new file mode 100644 index 0000000000..0ed374e279 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode/shell_commands @@ -0,0 +1,5 @@ +#!/bin/bash + +./xmlchange LND_TUNING_MODE="clm5_0_cam6.0" +./xmlchange ROF_NCPL='$ATM_NCPL' + diff --git a/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode_1979Start/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode_1979Start/include_user_mods new file mode 100644 index 0000000000..1c3eece35d --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode_1979Start/include_user_mods @@ -0,0 +1 @@ +../clm50cam6LndTuningMode diff --git a/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode_1979Start/shell_commands b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode_1979Start/shell_commands new file mode 100644 index 0000000000..2aafcc1186 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode_1979Start/shell_commands @@ -0,0 +1 @@ +./xmlchange RUN_STARTDATE=1979-01-01 diff --git a/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode_2013Start/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode_2013Start/include_user_mods new file mode 100644 index 0000000000..1c3eece35d --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode_2013Start/include_user_mods @@ -0,0 +1 @@ +../clm50cam6LndTuningMode diff --git a/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode_2013Start/shell_commands b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode_2013Start/shell_commands new file mode 100644 index 0000000000..035842f982 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/clm50cam6LndTuningMode_2013Start/shell_commands @@ -0,0 +1 @@ +./xmlchange RUN_STARTDATE=2013-01-01 diff --git a/cime_config/testdefs/testmods_dirs/clm/cplhist/shell_commands b/cime_config/testdefs/testmods_dirs/clm/cplhist/shell_commands index f33e602348..a284aefcb9 100755 --- a/cime_config/testdefs/testmods_dirs/clm/cplhist/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/cplhist/shell_commands @@ -1,5 +1,8 @@ -./xmlchange DATM_CPLHIST_CASE=b.e20.B1850.f09_g17.pi_control.all.221.cplhist -./xmlchange DATM_CPLHIST_DIR=/glade/p/cesm/bgcwg_dev/forcing/b.e20.B1850.f09_g17.pi_control.all.221.cplhist/cpl/hist.mon -./xmlchange DATM_CPLHIST_YR_ALIGN=1 -./xmlchange DATM_CPLHIST_YR_END=84 -./xmlchange DATM_CPLHIST_YR_START=82 +./xmlchange DATM_CPLHIST_CASE=cam6ctsm51_cesm23a12c_ne30pg3g17_CPLHIST_1850 +./xmlchange DATM_CPLHIST_DIR=/glade/p/cgd/tss/CTSM_datm_forcing_data/atm_forcing.cdeps_datm.CPLHIST_cam6ctsm51_cesm23a12c_ne30pg3g17_1850 +./xmlchange DATM_YR_START=1 +./xmlchange DATM_YR_END=1 +./xmlchange DATM_YR_ALIGN=1 + +# Needed until we have cplhist forcing with ndep - see https://github.com/escomp/ctsm/issues/1844 +./xmlchange DATM_PRESNDEP=none diff --git a/cime_config/testdefs/testmods_dirs/clm/crop/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/crop/user_nl_clm index c70d3dba9e..dc22a973b2 100644 --- a/cime_config/testdefs/testmods_dirs/clm/crop/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/crop/user_nl_clm @@ -1,8 +1,17 @@ hist_fincl1 += 'GDD0', 'GDD8', 'GDD10', 'GDD020', 'GDD820', 'GDD1020', - 'GDDPLANT', 'GDDTSOI', 'A5TMIN', 'A10TMIN' + 'GDDACCUM', 'GDDTSOI', 'A5TMIN', 'A10TMIN', + 'HUI' ! The main point of including this field is to test the SUM history field infrastructure ! This is in the crop testmods because this field is mainly useful in transient crop runs ! This is on history tape 2 because this field is not meaningful at the gridcell level hist_fincl2 += 'DYN_COL_SOIL_ADJUSTMENTS_C' + + +! Annual crop variables on per-sowing/per-harvest axes, per PFT. +hist_fincl3 = 'SDATES', 'SDATES_PERHARV', 'SYEARS_PERHARV', 'HDATES', 'GRAINC_TO_FOOD_PERHARV', 'GRAINC_TO_FOOD_ANN', 'HDATES', 'GDDHARV_PERHARV', 'GDDACCUM_PERHARV', 'HUI_PERHARV', 'SOWING_REASON_PERHARV', 'HARVEST_REASON_PERHARV' +hist_nhtfrq(3) = 17520 +hist_mfilt(3) = 1 +hist_type1d_pertape(3) = 'PFTS' +hist_dov2xy(3) = .false. diff --git a/cime_config/testdefs/testmods_dirs/clm/cropMonthOutput/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/cropMonthOutput/user_nl_clm index b2a51bd5d5..ae4284da6b 100644 --- a/cime_config/testdefs/testmods_dirs/clm/cropMonthOutput/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/cropMonthOutput/user_nl_clm @@ -1,2 +1,2 @@ - hist_nhtfrq = 0,-240 - hist_mfilt = 1,1 + hist_nhtfrq = 0,-240,17520 + hist_mfilt = 1,1,1 diff --git a/cime_config/testdefs/testmods_dirs/clm/cropMonthlyNoinitial/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/cropMonthlyNoinitial/include_user_mods new file mode 100644 index 0000000000..02ec13743f --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/cropMonthlyNoinitial/include_user_mods @@ -0,0 +1 @@ +../cropMonthOutput diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdDef/shell_commands b/cime_config/testdefs/testmods_dirs/clm/cropMonthlyNoinitial/shell_commands old mode 100644 new mode 100755 similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/FatesColdDef/shell_commands rename to cime_config/testdefs/testmods_dirs/clm/cropMonthlyNoinitial/shell_commands diff --git a/cime_config/testdefs/testmods_dirs/clm/af_bias_v7/shell_commands b/cime_config/testdefs/testmods_dirs/clm/datm_bias_correct_cruv7/shell_commands similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/af_bias_v7/shell_commands rename to cime_config/testdefs/testmods_dirs/clm/datm_bias_correct_cruv7/shell_commands diff --git a/cime_config/testdefs/testmods_dirs/clm/af_bias_v7/user_nl_datm b/cime_config/testdefs/testmods_dirs/clm/datm_bias_correct_cruv7/user_nl_datm similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/af_bias_v7/user_nl_datm rename to cime_config/testdefs/testmods_dirs/clm/datm_bias_correct_cruv7/user_nl_datm diff --git a/cime_config/testdefs/testmods_dirs/clm/datm_ssp126_anom_forc/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/datm_ssp126_anom_forc/include_user_mods new file mode 100644 index 0000000000..fe0e18cf88 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/datm_ssp126_anom_forc/include_user_mods @@ -0,0 +1 @@ +../default diff --git a/cime_config/testdefs/testmods_dirs/clm/datm_ssp126_anom_forc/user_nl_datm b/cime_config/testdefs/testmods_dirs/clm/datm_ssp126_anom_forc/user_nl_datm new file mode 100644 index 0000000000..d8ee13a339 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/datm_ssp126_anom_forc/user_nl_datm @@ -0,0 +1 @@ +anomaly_forcing = 'Anomaly.Forcing.Temperature' diff --git a/cime_config/testdefs/testmods_dirs/clm/datm_ssp126_anom_forc/user_nl_datm_streams b/cime_config/testdefs/testmods_dirs/clm/datm_ssp126_anom_forc/user_nl_datm_streams new file mode 100644 index 0000000000..34ca8a96ae --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/datm_ssp126_anom_forc/user_nl_datm_streams @@ -0,0 +1,22 @@ +Anomaly.Forcing.Temperature:year_first=2015 +Anomaly.Forcing.Temperature:year_last=2100 +Anomaly.Forcing.Temperature:year_align=2015 +Anomaly.Forcing.Temperature:meshfile =$DIN_LOC_ROOT/share/meshes/fv0.9x1.25_141008_polemod_ESMFmesh.nc +! List of Data types to use +! Remove the variables you do NOT want to include in the Anomaly forcing: +! pr is preciptiation +! tas is temperature +! huss is humidity +! uas and vas are U and V winds +! rsds is solare +! rlds is LW down +Anomaly.Forcing.Temperature:datavars = pr Faxa_prec_af, \ + tas Sa_tbot_af, \ + ps Sa_pbot_af, \ + huss Sa_shum_af, \ + uas Sa_u_af, \ + vas Sa_v_af, \ + rsds Faxa_swdn_af, \ + rlds Faxa_lwdn_af +Anomaly.Forcing.Temperature:datafiles =$DIN_LOC_ROOT/atm/datm7/anomaly_forcing/CMIP6-SSP1-2.6/af.allvars.CESM.SSP1-2.6.2015-2100_c20220628.nc + diff --git a/cime_config/testdefs/testmods_dirs/clm/decStart/user_nl_cism b/cime_config/testdefs/testmods_dirs/clm/decStart/user_nl_cism deleted file mode 100644 index 85f5789000..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/decStart/user_nl_cism +++ /dev/null @@ -1,9 +0,0 @@ -! The need for this is subtle. The problem is that this decStart testmod is used in short -! (multi-day) ERP tests, whose length is such that the end of the year occurs in the -! initial run but not in the restart run. Without setting history_option = 'coupler', this -! would mean that CISM outputs a history file in the initial run but not in the restart -! run, which causes the test to fail because the test system requires any component's -! final history file in one case to have a counterpart in the other case. Setting -! history_option = 'coupler' forces CISM to output a history file only at the end of the -! run. -history_option = 'coupler' diff --git a/cime_config/testdefs/testmods_dirs/clm/default/shell_commands b/cime_config/testdefs/testmods_dirs/clm/default/shell_commands index adebdc5743..45eb822729 100644 --- a/cime_config/testdefs/testmods_dirs/clm/default/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/default/shell_commands @@ -2,4 +2,3 @@ ./xmlchange CLM_BLDNML_OPTS="-fire_emis" --append ./xmlchange BFBFLAG="TRUE" - diff --git a/cime_config/testdefs/testmods_dirs/clm/default/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/default/user_nl_clm index e113c389ce..12fd0b0d53 100644 --- a/cime_config/testdefs/testmods_dirs/clm/default/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/default/user_nl_clm @@ -1,4 +1,3 @@ - wrtdia = .true. hist_dov2xy = .true.,.false. ! Even though only 2 history tapes are defined here, set ndens to 1 for up to 6 history ! tapes, for the sake of mods that extend these default mods and may add other history tapes diff --git a/cime_config/testdefs/testmods_dirs/clm/extra_outputs/README b/cime_config/testdefs/testmods_dirs/clm/extra_outputs/README index 83fad7964a..574d7cc204 100644 --- a/cime_config/testdefs/testmods_dirs/clm/extra_outputs/README +++ b/cime_config/testdefs/testmods_dirs/clm/extra_outputs/README @@ -1 +1,4 @@ This test mod turns on extra diagnostic fields + +It also outputs an optional text file containing a table of all +the possible history fields diff --git a/cime_config/testdefs/testmods_dirs/clm/extra_outputs/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/extra_outputs/user_nl_clm index 512a426909..dad8a7e843 100644 --- a/cime_config/testdefs/testmods_dirs/clm/extra_outputs/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/extra_outputs/user_nl_clm @@ -1 +1,6 @@ calc_human_stress_indices = 'ALL' +hist_fields_list_file = .true. + +hist_fincl1 += 'GSSUN:L43200', 'GSSHA:L43200', 'FSDSND:L43200', 'FSRND:L43200', 'FSRSFND:L43200', + 'SSRE_FSRND:L43200', 'FSDSVD:L43200', 'FSDSVI:L43200', + 'FSRVD:L43200', 'FSRSFVD:L43200', 'SSRE_FSRVD:L43200' diff --git a/cime_config/testdefs/testmods_dirs/clm/f09_dec1990Start_GU_LULCC/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/f09_dec1990Start_GU_LULCC/include_user_mods new file mode 100644 index 0000000000..fe0e18cf88 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/f09_dec1990Start_GU_LULCC/include_user_mods @@ -0,0 +1 @@ +../default diff --git a/cime_config/testdefs/testmods_dirs/clm/f09_dec1990Start_GU_LULCC/shell_commands b/cime_config/testdefs/testmods_dirs/clm/f09_dec1990Start_GU_LULCC/shell_commands new file mode 100755 index 0000000000..3adf0390b1 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/f09_dec1990Start_GU_LULCC/shell_commands @@ -0,0 +1,3 @@ +./xmlchange RUN_STARTDATE=1990-12-30 +# Ignore warnings because we are using crop, but starting from a different date than the initial conditions were for +./xmlchange CLM_BLDNML_OPTS=-ignore_warnings --append diff --git a/cime_config/testdefs/testmods_dirs/clm/f09_dec1990Start_GU_LULCC/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/f09_dec1990Start_GU_LULCC/user_nl_clm new file mode 100644 index 0000000000..efb3212d5f --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/f09_dec1990Start_GU_LULCC/user_nl_clm @@ -0,0 +1,5 @@ + ! Specify a dataset that has non-zero Gross Unrepresented Land Use change fields on it + ! And turn it on + flanduse_timeseries = '$DIN_LOC_ROOT/lnd/clm2/surfdata_map/ctsm5.1.dev052/landuse.timeseries_0.9x1.25_hist_78pfts_CMIP6_simyr1700-2021_c220825.nc' + fsurdat = '$DIN_LOC_ROOT/lnd/clm2/surfdata_map/ctsm5.1.dev052/surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr1700_c220825.nc' + do_grossunrep = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/fatesFire/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/fatesFire/include_user_mods deleted file mode 100644 index fb35ec8c90..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/fatesFire/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../fates diff --git a/cime_config/testdefs/testmods_dirs/clm/fatesFire/shell_commands b/cime_config/testdefs/testmods_dirs/clm/fatesFire/shell_commands deleted file mode 100644 index d81ed7dbc5..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/fatesFire/shell_commands +++ /dev/null @@ -1 +0,0 @@ -./xmlchange CLM_BLDNML_OPTS="-no-megan" --append diff --git a/cime_config/testdefs/testmods_dirs/clm/fatesFire/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/fatesFire/user_nl_clm deleted file mode 100644 index e3a3b76d71..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/fatesFire/user_nl_clm +++ /dev/null @@ -1,2 +0,0 @@ -use_fates_spitfire = .true. - diff --git a/cime_config/testdefs/testmods_dirs/clm/fire_emis/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/fire_emis/user_nl_clm index 3f5749e61f..027b17630e 100644 --- a/cime_config/testdefs/testmods_dirs/clm/fire_emis/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/fire_emis/user_nl_clm @@ -7,12 +7,11 @@ ! ! EXCEPTIONS: ! Set co2_ppmv with CCSM_CO2_PPMV option -! Set dtime with L_NCPL option ! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options ! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases ! (includes $inst_string for multi-ensemble cases) ! Set glc_grid with CISM_GRID option -! Set maxpatch_glcmec with GLC_NEC option +! Set maxpatch_glc with GLC_NEC option !---------------------------------------------------------------------------------- hist_mfilt = 1,30 diff --git a/cime_config/testdefs/testmods_dirs/clm/glcMEC_changeFlags/README b/cime_config/testdefs/testmods_dirs/clm/glcMEC_changeFlags/README index 2e8fcfc52e..5afac87d62 100644 --- a/cime_config/testdefs/testmods_dirs/clm/glcMEC_changeFlags/README +++ b/cime_config/testdefs/testmods_dirs/clm/glcMEC_changeFlags/README @@ -1,4 +1,10 @@ This testmods directory switches some glc_mec-related flags in CLM, in order to test different branches than are tested with the default options. -It also turns off the feedback from CISM to CLM, to test that option. +It also turns off the feedback from CISM to CLM, to test that +option. For this piece of the test to be useful, it should be used in a +test that uses CISM rather than SGLC, and ideally should be in a test +where CISM's glacier areas change within the test (though that last +piece may not be strictly necessary, since the relevant logic will still +be exercised in the first time step of the run even with a non-evolving +CISM). diff --git a/cime_config/testdefs/testmods_dirs/clm/glcMEC_changeFlags/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/glcMEC_changeFlags/include_user_mods index 1730b6b7cf..f076fe1cf5 100644 --- a/cime_config/testdefs/testmods_dirs/clm/glcMEC_changeFlags/include_user_mods +++ b/cime_config/testdefs/testmods_dirs/clm/glcMEC_changeFlags/include_user_mods @@ -1 +1 @@ -../glcMEC +../glcMEC_increase diff --git a/cime_config/testdefs/testmods_dirs/clm/glcMEC_spunup_1way/README b/cime_config/testdefs/testmods_dirs/clm/glcMEC_spunup_1way/README deleted file mode 100644 index ec74e38b4c..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/glcMEC_spunup_1way/README +++ /dev/null @@ -1,34 +0,0 @@ -This testmods directory is for running LII tests which compare the answers for a case where -initial condition interpolation is on (use_init_interp=T) to a case with it's off and ensures -they are exact. For the interpolated result to match uninterpolation, it needs to be a case that -essentially needs no interpolation so it's at the same resolution as the initial condition -file (finidat file). When surface datasets are changed, or the land-mask is changed, or an -important change is made to model physics (for example where new fields are added to the restart -file) -- you'll need to update the initial conditions file in this test (finidat file in -the user_nl_clm file). - -This testmods also turns off the glc two-way coupling. This is done so that -glacier areas are taken from the restart file rather than from -CISM. This is partly so that changes in CISM don't affect the test -results, but more importantly so that LII tests can pass even if CISM -changes. (GLC two-way coupling was off in the generation of the -initial conditions file used here, too.) (4-24-18: I *think* we'll be -able to turn two-way coupling on once -https://github.com/ESCOMP/ctsm/issues/340 is resolved, though I'm not -positive about that. However, if -https://github.com/ESMCI/cime/issues/2484 is done, then we'd need this -testmods to turn off comparison of cpl initial hist files if we have -two-way coupling on, since areas will differ in initialization between -the two cases.) - -To update the initial conditions (finidat) file for this test: - -(1) Run the LII test; the 'base' case should run to completion even if the -no_interp test fails. - -(2) Copy the finidat_interp_dest.nc file from the 'base' case to the inputdata -space. Rename this to be similar to the name of the file pointed to in this -test's user_nl_clm file, but with a new creation date. - -(3) Update this the user_nl_clm file in this directory to point to the new -finidat file. diff --git a/cime_config/testdefs/testmods_dirs/clm/glcMEC_spunup_1way/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/glcMEC_spunup_1way/include_user_mods deleted file mode 100644 index 1730b6b7cf..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/glcMEC_spunup_1way/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../glcMEC diff --git a/cime_config/testdefs/testmods_dirs/clm/glcMEC_spunup_1way/shell_commands b/cime_config/testdefs/testmods_dirs/clm/glcMEC_spunup_1way/shell_commands deleted file mode 100755 index 404b22b006..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/glcMEC_spunup_1way/shell_commands +++ /dev/null @@ -1 +0,0 @@ -./xmlchange GLC_TWO_WAY_COUPLING=FALSE diff --git a/cime_config/testdefs/testmods_dirs/clm/glcMEC_spunup_1way/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/glcMEC_spunup_1way/user_nl_clm deleted file mode 100644 index c269a24911..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/glcMEC_spunup_1way/user_nl_clm +++ /dev/null @@ -1,5 +0,0 @@ -! See more notes in the README file in this directory and in the comments in the test list. -! -! Initial condition file at the desired configuration to run, so can verify that interpolating from it gives the same result -! Note that this was generated with GLC_TWO_WAY_COUPLING=FALSE -finidat = '$DIN_LOC_ROOT/lnd/clm2/initdata_map/clmi.I2000Clm50BgcCrop.2000-01-01.1.9x2.5_gx1v7_gl4_simyr2000_c180306.nc' diff --git a/cime_config/testdefs/testmods_dirs/clm/gregorian_cropMonthOutput/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/gregorian_cropMonthOutput/include_user_mods new file mode 100644 index 0000000000..02ec13743f --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/gregorian_cropMonthOutput/include_user_mods @@ -0,0 +1 @@ +../cropMonthOutput diff --git a/cime_config/testdefs/testmods_dirs/clm/gregorian_cropMonthOutput/shell_commands b/cime_config/testdefs/testmods_dirs/clm/gregorian_cropMonthOutput/shell_commands new file mode 100644 index 0000000000..8a5681ef95 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/gregorian_cropMonthOutput/shell_commands @@ -0,0 +1 @@ +./xmlchange CALENDAR=GREGORIAN diff --git a/cime_config/testdefs/testmods_dirs/clm/ignor_warn_cropMonthOutputColdStart/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/ignor_warn_cropMonthOutputColdStart/include_user_mods new file mode 100644 index 0000000000..5c73adaa4a --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/ignor_warn_cropMonthOutputColdStart/include_user_mods @@ -0,0 +1,3 @@ +../_includes/ignore_warnings +../coldStart +../cropMonthOutput diff --git a/cime_config/testdefs/testmods_dirs/clm/irrig_o3_reduceOutput/README b/cime_config/testdefs/testmods_dirs/clm/irrig_o3falk_reduceOutput/README similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/irrig_o3_reduceOutput/README rename to cime_config/testdefs/testmods_dirs/clm/irrig_o3falk_reduceOutput/README diff --git a/cime_config/testdefs/testmods_dirs/clm/irrig_o3_reduceOutput/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/irrig_o3falk_reduceOutput/include_user_mods similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/irrig_o3_reduceOutput/include_user_mods rename to cime_config/testdefs/testmods_dirs/clm/irrig_o3falk_reduceOutput/include_user_mods diff --git a/cime_config/testdefs/testmods_dirs/clm/irrig_o3_reduceOutput/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/irrig_o3falk_reduceOutput/user_nl_clm similarity index 70% rename from cime_config/testdefs/testmods_dirs/clm/irrig_o3_reduceOutput/user_nl_clm rename to cime_config/testdefs/testmods_dirs/clm/irrig_o3falk_reduceOutput/user_nl_clm index 937cd64717..44279b6957 100644 --- a/cime_config/testdefs/testmods_dirs/clm/irrig_o3_reduceOutput/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/irrig_o3falk_reduceOutput/user_nl_clm @@ -1,6 +1,6 @@ ! explicitly include stuff needed for o3 here rather than including the o3 directory, ! since the o3 directory includes default, and we don't want that for this ! reducedOutput testmod -use_ozone = .true. -hist_fincl1 += 'O3UPTAKESUN', 'O3UPTAKESHA' +o3_veg_stress_method = 'stress_falk' +hist_fincl1 += 'O3UPTAKESUN', 'O3UPTAKESHA', 'ATM_O3' hist_fincl2 += 'O3UPTAKESUN', 'O3UPTAKESHA' diff --git a/cime_config/testdefs/testmods_dirs/clm/lilac/README b/cime_config/testdefs/testmods_dirs/clm/lilac/README new file mode 100644 index 0000000000..049407e30b --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/lilac/README @@ -0,0 +1,4 @@ +This testmods directory inherits from the directory containing the +user_nl_ctsm file that is staged for users by the build_ctsm +script. Thus, tests using this testmod will include the settings that +users get by default in LILAC configurations. diff --git a/cime_config/testdefs/testmods_dirs/clm/lilac/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/lilac/include_user_mods new file mode 100644 index 0000000000..7b5f17cf20 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/lilac/include_user_mods @@ -0,0 +1 @@ +../../../../usermods_dirs/lilac diff --git a/cime_config/testdefs/testmods_dirs/clm/lilac/user_nl_ctsm b/cime_config/testdefs/testmods_dirs/clm/lilac/user_nl_ctsm new file mode 100644 index 0000000000..740014baa9 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/lilac/user_nl_ctsm @@ -0,0 +1,3 @@ + hist_ndens = 1,1,1,1,1,1 + hist_nhtfrq(1) = -24 + hist_mfilt(1) = 1 diff --git a/cime_config/testdefs/testmods_dirs/clm/luna/shell_commands b/cime_config/testdefs/testmods_dirs/clm/luna/shell_commands new file mode 100644 index 0000000000..f0547f3f26 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/luna/shell_commands @@ -0,0 +1,3 @@ +#!/bin/bash + +./xmlchange CLM_BLDNML_OPTS="-ignore_warnings" --append diff --git a/cime_config/testdefs/testmods_dirs/clm/mimics/README b/cime_config/testdefs/testmods_dirs/clm/mimics/README new file mode 100644 index 0000000000..082e324f4d --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/mimics/README @@ -0,0 +1,6 @@ +This test mod turns on the MIMICS instead of the CENTURY below-ground +biogeochemistry. + +As of 2021/11/15 this test inherits mods from the ../coldStart directory; +however the plan is to change that to ../default when we have an acceptable +spun up finidat file to initialize MIMICS with. diff --git a/cime_config/testdefs/testmods_dirs/clm/mimics/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/mimics/include_user_mods new file mode 100644 index 0000000000..3dbc936366 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/mimics/include_user_mods @@ -0,0 +1 @@ +../coldStart diff --git a/cime_config/testdefs/testmods_dirs/clm/mimics/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/mimics/user_nl_clm new file mode 100644 index 0000000000..152d91b21e --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/mimics/user_nl_clm @@ -0,0 +1 @@ +soil_decomp_method = 'MIMICSWieder2015' diff --git a/cime_config/testdefs/testmods_dirs/clm/mimicsFatesCold/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/mimicsFatesCold/include_user_mods new file mode 100644 index 0000000000..0194535a44 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/mimicsFatesCold/include_user_mods @@ -0,0 +1,2 @@ +../Fates +../mimics diff --git a/cime_config/testdefs/testmods_dirs/clm/cropColdStart/shell_commands b/cime_config/testdefs/testmods_dirs/clm/mimicsFatesCold/shell_commands old mode 100755 new mode 100644 similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/cropColdStart/shell_commands rename to cime_config/testdefs/testmods_dirs/clm/mimicsFatesCold/shell_commands diff --git a/cime_config/testdefs/testmods_dirs/clm/newton_krylov_spinup/README b/cime_config/testdefs/testmods_dirs/clm/newton_krylov_spinup/README new file mode 100644 index 0000000000..1363ea696b --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/newton_krylov_spinup/README @@ -0,0 +1,8 @@ +slevis 2022/2/1: +This testmod tests the newton_krylov_spinup usermod found in +cime_config/usermods_dirs/newton_krylov_spinup +combined with the mimics testmod. + +By default this usermod runs for 20 yrs and writes a history file at that +time. To save time running the test-suite, we're changing +hist_nhtfrq = 0,-43800 (from 0,-175200) diff --git a/cime_config/testdefs/testmods_dirs/clm/newton_krylov_spinup/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/newton_krylov_spinup/include_user_mods new file mode 100644 index 0000000000..192aa023a8 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/newton_krylov_spinup/include_user_mods @@ -0,0 +1,2 @@ +../mimics +../../../../usermods_dirs/newton_krylov_spinup diff --git a/cime_config/testdefs/testmods_dirs/clm/newton_krylov_spinup/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/newton_krylov_spinup/user_nl_clm new file mode 100644 index 0000000000..bce7009c36 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/newton_krylov_spinup/user_nl_clm @@ -0,0 +1 @@ +hist_nhtfrq = 0,-43800 diff --git a/cime_config/testdefs/testmods_dirs/clm/nlevgrnd_small/README b/cime_config/testdefs/testmods_dirs/clm/nlevgrnd_small/README new file mode 100644 index 0000000000..3be0d15bfc --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/nlevgrnd_small/README @@ -0,0 +1,13 @@ +The main point of this testmod is to exercise the case where nlevgrnd < +nlevurb (connected with +https://github.com/ESCOMP/CTSM/issues/674). If/when we have an +out-of-the-box configuration with nlevgrnd < nlevurb (such as the NWP +configuration once nlevurb = 10 is the standard) then we can remove this +test. + +A secondary consideration is having a test that interpolates from a +configuration with nlevgrnd > nlevurb onto one with lower nlevgrnd and +nlevgrnd < nlevurb. But I don't think it's critical to maintain this +test just for that purpose - e.g., if we start having an out-of-the-box +configuration with nlevgrnd < nlevurb but where the finidat file also +has nlevgrnd < nlevurb, then I feel it will be okay to remove this test. diff --git a/cime_config/testdefs/testmods_dirs/clm/nlevgrnd_small/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/nlevgrnd_small/include_user_mods new file mode 100644 index 0000000000..fe0e18cf88 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/nlevgrnd_small/include_user_mods @@ -0,0 +1 @@ +../default diff --git a/cime_config/testdefs/testmods_dirs/clm/nlevgrnd_small/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/nlevgrnd_small/user_nl_clm new file mode 100644 index 0000000000..d7e1f9bbc2 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/nlevgrnd_small/user_nl_clm @@ -0,0 +1,8 @@ +! The following results in nlevsoi = 3, nlevgrnd = 4; together with the standard setting +! of nlevurb = 5, this results in nlevgrnd < nlevurb, which is what we particularly want +! to test here. +soil_layerstruct_userdefined = 0.2, 0.4, 0.8, 1.6 +soil_layerstruct_userdefined_nlevsoi = 3 + +! Need to make sure interpolation is on because of the change in nlevgrnd relative to finidat +use_init_interp = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/nofire/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/nofire/user_nl_clm index e6e4f8f843..20becb95da 100644 --- a/cime_config/testdefs/testmods_dirs/clm/nofire/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/nofire/user_nl_clm @@ -1,4 +1,3 @@ - wrtdia = .true. hist_dov2xy = .true.,.false. ! Even though only 2 history tapes are defined here, set ndens to 1 for up to 6 history ! tapes, for the sake of mods that extend these default mods and may add other history tapes diff --git a/cime_config/testdefs/testmods_dirs/clm/o3/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/o3/user_nl_clm deleted file mode 100644 index a80360aaa0..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/o3/user_nl_clm +++ /dev/null @@ -1,2 +0,0 @@ - use_ozone = .true. - hist_fincl2 += 'O3UPTAKESUN', 'O3UPTAKESHA' diff --git a/cime_config/testdefs/testmods_dirs/clm/o3lombardozzi2015/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/o3lombardozzi2015/include_user_mods new file mode 100644 index 0000000000..fe0e18cf88 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/o3lombardozzi2015/include_user_mods @@ -0,0 +1 @@ +../default diff --git a/cime_config/testdefs/testmods_dirs/clm/o3lombardozzi2015/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/o3lombardozzi2015/user_nl_clm new file mode 100644 index 0000000000..c3ed58696d --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/o3lombardozzi2015/user_nl_clm @@ -0,0 +1,2 @@ + o3_veg_stress_method = 'stress_lombardozzi2015' + hist_fincl2 += 'O3UPTAKESUN', 'O3UPTAKESHA', 'ATM_O3' diff --git a/cime_config/testdefs/testmods_dirs/clm/output_sp_highfreq/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/output_sp_highfreq/include_user_mods index 8c117e01ed..2df730d2d0 100644 --- a/cime_config/testdefs/testmods_dirs/clm/output_sp_highfreq/include_user_mods +++ b/cime_config/testdefs/testmods_dirs/clm/output_sp_highfreq/include_user_mods @@ -1,2 +1,3 @@ +../CLM1PTStartDate ../../../../usermods_dirs/output_sp_highfreq ../basic diff --git a/cime_config/testdefs/testmods_dirs/clm/prescribed/README b/cime_config/testdefs/testmods_dirs/clm/prescribed/README new file mode 100644 index 0000000000..4c0c56bb8c --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/prescribed/README @@ -0,0 +1,7 @@ +This test-mods turns on using the prescribed moisture streams file +(rather than prognosing it in the model). And it turns on the lai streams +to test that's working as well. + +The only resolution we currently have data for is f09, so this must be done +at 0.9x1.25 resolution. And it makes the most sense for present day and +Satellite Phenology (Sp). diff --git a/cime_config/testdefs/testmods_dirs/clm/prescribed/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/prescribed/include_user_mods new file mode 100644 index 0000000000..fe0e18cf88 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/prescribed/include_user_mods @@ -0,0 +1 @@ +../default diff --git a/cime_config/testdefs/testmods_dirs/clm/prescribed/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/prescribed/user_nl_clm new file mode 100644 index 0000000000..c2290397dd --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/prescribed/user_nl_clm @@ -0,0 +1,6 @@ + use_soil_moisture_streams = .true. + use_lai_streams = .true. + hist_fincl1 += 'H2OSOI_PRESCRIBED_GRC' + soilm_tintalgo = 'lower' ! set time interpolation to use lower value, so can compare to input dataset + lai_tintalgo = 'lower' ! set time interpolation to use lower value, so can compare more directly to input dataset + soilm_ignore_data_if_missing = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/pts/shell_commands b/cime_config/testdefs/testmods_dirs/clm/pts/shell_commands index ad140e45e1..1613d28b25 100644 --- a/cime_config/testdefs/testmods_dirs/clm/pts/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/pts/shell_commands @@ -22,3 +22,5 @@ ./xmlchange NTASKS_ROF=1 ./xmlchange NTASKS_WAV=1 ./xmlchange NTASKS_ESP=1 +./xmlchange MOSART_MODE=NULL +./xmlchange RTM_MODE=NULL diff --git a/cime_config/testdefs/testmods_dirs/clm/ptsRLB/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/ptsRLB/include_user_mods deleted file mode 100644 index cdb9d9f000..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/ptsRLB/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../pts diff --git a/cime_config/testdefs/testmods_dirs/clm/ptsRLB/shell_commands b/cime_config/testdefs/testmods_dirs/clm/ptsRLB/shell_commands deleted file mode 100644 index 15fd1cced4..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/ptsRLB/shell_commands +++ /dev/null @@ -1,2 +0,0 @@ -./xmlchange PTS_LAT=-5,PTS_LON=290 -./xmlchange --force CLM_FORCE_COLDSTART=on diff --git a/cime_config/testdefs/testmods_dirs/clm/ptsROA/shell_commands b/cime_config/testdefs/testmods_dirs/clm/ptsROA/shell_commands index d5be09e860..1d01526439 100644 --- a/cime_config/testdefs/testmods_dirs/clm/ptsROA/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/ptsROA/shell_commands @@ -1,2 +1,3 @@ ./xmlchange PTS_LAT=30,PTS_LON=315 ./xmlchange --force CLM_FORCE_COLDSTART=on +./xmlchange FORCE_PROGNOSTIC_FOR_DATAMODELS=TRUE # This might catch some type of problems that are ignored if datm is assumed to not be prognostic 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" diff --git a/cime_config/testdefs/testmods_dirs/clm/run_self_tests/README b/cime_config/testdefs/testmods_dirs/clm/run_self_tests/README new file mode 100644 index 0000000000..938dffbe6f --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/run_self_tests/README @@ -0,0 +1,5 @@ +The purpose of this testmod directory is to trigger the runtime +self-tests. This runs a suite of unit/integration tests. + +We use cold start so that we can get through initialization faster, +since how we initialize the model is unimportant for these self-tests. diff --git a/cime_config/testdefs/testmods_dirs/clm/run_self_tests/shell_commands b/cime_config/testdefs/testmods_dirs/clm/run_self_tests/shell_commands new file mode 100755 index 0000000000..d426269206 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/run_self_tests/shell_commands @@ -0,0 +1,5 @@ +#!/bin/bash +./xmlchange CLM_FORCE_COLDSTART="on" + +# We use this testmod in a _Ln1 test; this requires forcing the ROF coupling frequency to every time step +./xmlchange ROF_NCPL=48 diff --git a/cime_config/testdefs/testmods_dirs/clm/run_self_tests/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/run_self_tests/user_nl_clm new file mode 100644 index 0000000000..6187386336 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/run_self_tests/user_nl_clm @@ -0,0 +1 @@ +for_testing_run_ncdiopio_tests = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/snowlayers_3_monthly/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/smallville_dynlakes_monthly/include_user_mods similarity index 100% rename from cime_config/testdefs/testmods_dirs/clm/snowlayers_3_monthly/include_user_mods rename to cime_config/testdefs/testmods_dirs/clm/smallville_dynlakes_monthly/include_user_mods diff --git a/cime_config/testdefs/testmods_dirs/clm/smallville_dynlakes_monthly/shell_commands b/cime_config/testdefs/testmods_dirs/clm/smallville_dynlakes_monthly/shell_commands new file mode 100644 index 0000000000..92d856873f --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/smallville_dynlakes_monthly/shell_commands @@ -0,0 +1,4 @@ +#!/bin/bash + +./xmlchange CLM_BLDNML_OPTS=-ignore_warnings --append + diff --git a/cime_config/testdefs/testmods_dirs/clm/smallville_dynlakes_monthly/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/smallville_dynlakes_monthly/user_nl_clm new file mode 100644 index 0000000000..923abcdaec --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/smallville_dynlakes_monthly/user_nl_clm @@ -0,0 +1,8 @@ +do_transient_lakes = .true. + +! This file was created with the following command: +! ncap2 -s 'PCT_LAKE=array(0.0,0.0,PCT_CROP); PCT_LAKE={0.,50.,25.,25.,25.,25.}; HASLAKE=array(1.,1.,AREA); PCT_CROP=array(0.0,0.0,PCT_LAKE); PCT_CROP={0.,25.,12.,12.,12.,12.}' landuse.timeseries_1x1_smallvilleIA_hist_78pfts_simyr1850-1855_c160127.nc landuse.timeseries_1x1_smallvilleIA_hist_78pfts_simyr1850-1855_dynLakes_c200928.nc +! Key points are that lake area starts as 0, increases after the first year, then decreases after the second year. +! PCT_CROP is also changed so that PCT_LAKE + PCT_CROP <= 100. (Here, PCT_CROP increases and decreases at the same time as PCT_LAKE in order to exercise the simultaneous increase or decrease of two landunits, but that isn't a critical part of this test.) +! Note that the use of this file means that this testmod can only be used with the 1x1_smallvilleIA grid. +flanduse_timeseries = '$DIN_LOC_ROOT/lnd/clm2/surfdata_map/landuse.timeseries_1x1_smallvilleIA_hist_78pfts_simyr1850-1855_dynLakes_c200928.nc' diff --git a/cime_config/testdefs/testmods_dirs/clm/smallville_dynurban_monthly/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/smallville_dynurban_monthly/include_user_mods new file mode 100644 index 0000000000..399579f425 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/smallville_dynurban_monthly/include_user_mods @@ -0,0 +1 @@ +../monthly diff --git a/cime_config/testdefs/testmods_dirs/clm/smallville_dynurban_monthly/modify_smallville_with_dynurban.ncl b/cime_config/testdefs/testmods_dirs/clm/smallville_dynurban_monthly/modify_smallville_with_dynurban.ncl new file mode 100644 index 0000000000..15ec0469be --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/smallville_dynurban_monthly/modify_smallville_with_dynurban.ncl @@ -0,0 +1,70 @@ +; NCL script +; modify_smallville_with_dynurban.ncl +; Keith Oleson, Dec 2021 +; Feb 23, 2022: Change HASURBAN to PCT_URBAN_MAX. The output file date has been updated from +; c211206 to c220223. +; Purpose is to create a transient landuse file for the smallville grid for dynamic urban testing +; ERS_Lm25.1x1_smallvilleIA.IHistClm50BgcCropQianRs.cheyenne_gnu.clm-smallville_dynurban_monthly +;************************************** + +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" +load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl" + +begin + + print ("=========================================") + print ("Start Time: "+systemfunc("date") ) + print ("=========================================") + + infile = "/glade/p/cgd/tss/people/oleson/modify_surfdata/landuse.timeseries_1x1_smallvilleIA_hist_78pfts_simyr1850-1855_c160127.nc" + outfile = "/glade/p/cgd/tss/people/oleson/modify_surfdata/landuse.timeseries_1x1_smallvilleIA_hist_78pfts_simyr1850-1855_dynUrban_c220223.nc" + + system("cp " + infile + " " + outfile) + + outf = addfile(outfile,"w") + + numurbl = 3 + + pct_crop = outf->PCT_CROP + printVarSummary(pct_crop) + pct_urban = new((/dimsizes(pct_crop(:,0,0)),numurbl,dimsizes(pct_crop(0,:,0)),dimsizes(pct_crop(0,0,:))/),double,"No_FillValue") + pct_urban!0 = "time" + pct_urban&time = pct_crop&time + pct_urban!1 = "numurbl" + pct_urban!2 = pct_crop!1 + pct_urban!3 = pct_crop!2 + pct_urban@long_name = "percent urban for each density type (tbd, hd, md)" + pct_urban@units = "unitless" + printVarSummary(pct_urban) + + pct_urban(:,0,0,0) = (/0.d,20.d,10.d,10.d,10.d,10.d/) + pct_urban(:,1,0,0) = (/0.d,15.d, 8.d, 8.d, 8.d, 8.d/) +;pct_urban(:,2,0,0) = (/0.d,10.d, 5.d, 5.d, 5.d, 5.d/) + pct_urban(:,2,0,0) = (/0.d, 0.d, 0.d, 0.d, 0.d, 0.d/) + + pct_urban_max = new((/numurbl,dimsizes(pct_crop(0,:,0)),dimsizes(pct_crop(0,0,:))/),double,"No_FillValue") + pct_urban_max!0 = pct_urban!1 + pct_urban_max!1 = pct_urban!2 + pct_urban_max!2 = pct_urban!3 + pct_urban_max(0,:,:) = max(pct_urban(:,0,0,0)) + pct_urban_max(1,:,:) = max(pct_urban(:,1,0,0)) + pct_urban_max(2,:,:) = max(pct_urban(:,2,0,0)) + printVarSummary(pct_urban_max) + pct_urban_max@units = "unitless" + pct_urban_max@long_name = "maximum percent urban for each density type (tbd, hd, md)" + + pct_crop(:,0,0) = (/0.,25.,12.,12.,12.,12./) + + outf->PCT_URBAN_MAX = pct_urban_max + outf->PCT_URBAN = pct_urban + outf->PCT_CROP = pct_crop + + outf@history = "This file was created with the following NCL script: /glade/p/cgd/tss/people/oleson/modify_surfdata/modify_smallville_with_dynurban.ncl. The file used as a template is: /glade/p/cesm/cseg/inputdata/lnd/clm2/surfdata_map/landuse.timeseries_1x1_smallvilleIA_hist_78pfts_simyr1850-1855_c160127.nc. Key points are that urban area starts as 0, increases after the first year, then decreases after the second year. Medium density urban is set to zero to test the memory-saving behavior of PCT_URBAN_MAX. PCT_CROP is also changed so that PCT_URBAN + PCT_CROP <= 100. (Here, PCT_CROP increases and decreases at the same time as PCT_URBAN in order to exercise the simultaneous increase or decrease of two landunits, but that isn't a critical part of this test.). Note that the use of this file means that this testmod can only be used with the 1x1_smallvilleIA grid." + + print ("=========================================") + print ("Finish Time: "+systemfunc("date") ) + print ("=========================================") + +end diff --git a/cime_config/testdefs/testmods_dirs/clm/smallville_dynurban_monthly/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/smallville_dynurban_monthly/user_nl_clm new file mode 100644 index 0000000000..69a78ee17d --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/smallville_dynurban_monthly/user_nl_clm @@ -0,0 +1,13 @@ +do_transient_urban = .true. + +! The flanduse_timeseries file was created with the following NCL script (a copy of this script is in cime_config/testdefs/testmods_dirs/clm/smallville_dynurban_monthly): +! /glade/p/cgd/tss/people/oleson/modify_surfdata/modify_smallville_with_dynurban.ncl +! The file used as a template is: +! /glade/p/cesm/cseg/inputdata/lnd/clm2/surfdata_map/landuse.timeseries_1x1_smallvilleIA_hist_78pfts_simyr1850-1855_c160127.nc +! Key points are that urban area starts as 0, increases after the first year, then decreases after the second year. +! Medium density urban is set to zero to test the memory-saving behavior of PCT_URBAN_MAX. +! PCT_CROP is also changed so that PCT_URBAN + PCT_CROP <= 100. (Here, PCT_CROP increases and decreases at the same time as PCT_URBAN in order to exercise the simultaneous increase or decrease of two landunits, but that isn't a critical part of this test.) +! Note that the use of this file means that this testmod can only be used with the 1x1_smallvilleIA grid. +! Feb 23, 2022: Use updated file with HASURBAN replaced by PCT_URBAN_MAX +!flanduse_timeseries = '$DIN_LOC_ROOT/lnd/clm2/surfdata_map/landuse.timeseries_1x1_smallvilleIA_hist_78pfts_simyr1850-1855_dynUrban_c220223.nc' +flanduse_timeseries = '$DIN_LOC_ROOT/lnd/clm2/surfdata_map/landuse.timeseries_1x1_smallvilleIA_hist_78pfts_simyr1850-1855_dynUrban_c220223.nc' diff --git a/cime_config/testdefs/testmods_dirs/clm/snowlayers_3_monthly/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/snowlayers_3_monthly/user_nl_clm deleted file mode 100644 index e7500fff58..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/snowlayers_3_monthly/user_nl_clm +++ /dev/null @@ -1,4 +0,0 @@ -nlevsno = 3 - -! Need to set use_init_interp because initial conditions file has 5 snow layers -use_init_interp = .true. diff --git a/cime_config/testdefs/testmods_dirs/clm/waccmx_offline/shell_commands b/cime_config/testdefs/testmods_dirs/clm/waccmx_offline/shell_commands index 09dc866921..5e9068895c 100755 --- a/cime_config/testdefs/testmods_dirs/clm/waccmx_offline/shell_commands +++ b/cime_config/testdefs/testmods_dirs/clm/waccmx_offline/shell_commands @@ -1,2 +1,5 @@ -./xmlchange USE_ESMF_LIB=TRUE,ATM_NCPL=288,CALENDAR=GREGORIAN +./xmlchange USE_ESMF_LIB=TRUE,ATM_NCPL=288,CALENDAR=GREGORIAN,ROF_NCPL='$ATM_NCPL',LND_TUNING_MODE="clm5_0_cam6.0" +./xmlchange CLM_BLDNML_OPTS="-megan -drydep" --append +./xmlchange RUN_STARTDATE=1979-01-01 +./xmlchange ROF_NCPL='$ATM_NCPL' diff --git a/cime_config/testdefs/testmods_dirs/clm/waccmx_offline2005Start/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/waccmx_offline2005Start/include_user_mods new file mode 100644 index 0000000000..e46fc10b2e --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/waccmx_offline2005Start/include_user_mods @@ -0,0 +1 @@ +../waccmx_offline diff --git a/cime_config/testdefs/testmods_dirs/clm/waccmx_offline2005Start/shell_commands b/cime_config/testdefs/testmods_dirs/clm/waccmx_offline2005Start/shell_commands new file mode 100755 index 0000000000..b926b0dbb1 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/waccmx_offline2005Start/shell_commands @@ -0,0 +1 @@ +./xmlchange RUN_STARTDATE=2005-01-01 diff --git a/cime_config/user_nl_clm b/cime_config/user_nl_clm index cfc5c71308..47865671a2 100644 --- a/cime_config/user_nl_clm +++ b/cime_config/user_nl_clm @@ -9,13 +9,12 @@ ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting ! Set co2_ppmv with CCSM_CO2_PPMV option -! Set dtime with L_NCPL option ! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options ! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases ! (includes $inst_string for multi-ensemble cases) ! or with CLM_FORCE_COLDSTART to do a cold start ! or set it with an explicit filename here. -! Set maxpatch_glcmec with GLC_NEC option +! Set maxpatch_glc with GLC_NEC option ! Set glc_do_dynglacier with GLC_TWO_WAY_COUPLING env variable !---------------------------------------------------------------------------------- diff --git a/cime_config/usermods_dirs/NEON/ABBY/include_user_mods b/cime_config/usermods_dirs/NEON/ABBY/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/ABBY/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/ABBY/shell_commands b/cime_config/usermods_dirs/NEON/ABBY/shell_commands new file mode 100644 index 0000000000..08f6e7cdef --- /dev/null +++ b/cime_config/usermods_dirs/NEON/ABBY/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=ABBY +./xmlchange PTS_LON=237.67032799999998 +./xmlchange PTS_LAT=45.762378 diff --git a/cime_config/usermods_dirs/NEON/BARR/include_user_mods b/cime_config/usermods_dirs/NEON/BARR/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/BARR/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/BARR/shell_commands b/cime_config/usermods_dirs/NEON/BARR/shell_commands new file mode 100644 index 0000000000..a5892a146b --- /dev/null +++ b/cime_config/usermods_dirs/NEON/BARR/shell_commands @@ -0,0 +1,13 @@ +#!/bin/bash + +./xmlchange NEONSITE=BARR +./xmlchange PTS_LON=203.349781 +./xmlchange PTS_LAT=71.281711 +./xmlchange DATM_YR_ALIGN=2019,DATM_YR_START=2019 +# Different default start date and number of months to run for transient case +if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi +fi diff --git a/cime_config/usermods_dirs/NEON/BART/include_user_mods b/cime_config/usermods_dirs/NEON/BART/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/BART/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/BART/shell_commands b/cime_config/usermods_dirs/NEON/BART/shell_commands new file mode 100644 index 0000000000..a4e86a1b8c --- /dev/null +++ b/cime_config/usermods_dirs/NEON/BART/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=BART +./xmlchange PTS_LON=288.71166 +./xmlchange PTS_LAT=44.06516 diff --git a/cime_config/usermods_dirs/NEON/BLAN/include_user_mods b/cime_config/usermods_dirs/NEON/BLAN/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/BLAN/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/BLAN/shell_commands b/cime_config/usermods_dirs/NEON/BLAN/shell_commands new file mode 100644 index 0000000000..0508481981 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/BLAN/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=BLAN +./xmlchange PTS_LON=281.958212 +./xmlchange PTS_LAT=39.033698 diff --git a/cime_config/usermods_dirs/NEON/BONA/include_user_mods b/cime_config/usermods_dirs/NEON/BONA/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/BONA/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/BONA/shell_commands b/cime_config/usermods_dirs/NEON/BONA/shell_commands new file mode 100644 index 0000000000..2a66d148b4 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/BONA/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=BONA +./xmlchange PTS_LON=212.49806 +./xmlchange PTS_LAT=65.15333 diff --git a/cime_config/usermods_dirs/NEON/CLBJ/include_user_mods b/cime_config/usermods_dirs/NEON/CLBJ/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/CLBJ/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/CLBJ/shell_commands b/cime_config/usermods_dirs/NEON/CLBJ/shell_commands new file mode 100644 index 0000000000..c1b9154027 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/CLBJ/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=CLBJ +./xmlchange PTS_LON=262.43275 +./xmlchange PTS_LAT=33.40143 diff --git a/cime_config/usermods_dirs/NEON/CPER/include_user_mods b/cime_config/usermods_dirs/NEON/CPER/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/CPER/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/CPER/shell_commands b/cime_config/usermods_dirs/NEON/CPER/shell_commands new file mode 100644 index 0000000000..b70b1a46a0 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/CPER/shell_commands @@ -0,0 +1,10 @@ +#!/bin/bash + +./xmlchange NEONSITE=CPER +./xmlchange PTS_LON=255.25545 +./xmlchange PTS_LAT=40.81297 +if [[ $compset =~ ^HIST ]]; then + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=50 + fi +fi diff --git a/cime_config/usermods_dirs/NEON/DCFS/include_user_mods b/cime_config/usermods_dirs/NEON/DCFS/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/DCFS/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/DCFS/shell_commands b/cime_config/usermods_dirs/NEON/DCFS/shell_commands new file mode 100644 index 0000000000..a6cbed64e1 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/DCFS/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=DCFS +./xmlchange PTS_LON=260.88749 +./xmlchange PTS_LAT=47.15919 diff --git a/cime_config/usermods_dirs/NEON/DEJU/include_user_mods b/cime_config/usermods_dirs/NEON/DEJU/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/DEJU/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/DEJU/shell_commands b/cime_config/usermods_dirs/NEON/DEJU/shell_commands new file mode 100644 index 0000000000..fce519d559 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/DEJU/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=DEJU +./xmlchange PTS_LON=214.25235 +./xmlchange PTS_LAT=63.87983 diff --git a/cime_config/usermods_dirs/NEON/DELA/include_user_mods b/cime_config/usermods_dirs/NEON/DELA/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/DELA/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/DELA/shell_commands b/cime_config/usermods_dirs/NEON/DELA/shell_commands new file mode 100644 index 0000000000..f3acbb8fd3 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/DELA/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=DELA +./xmlchange PTS_LON=272.19659 +./xmlchange PTS_LAT=32.54092 diff --git a/cime_config/usermods_dirs/NEON/DSNY/include_user_mods b/cime_config/usermods_dirs/NEON/DSNY/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/DSNY/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/DSNY/shell_commands b/cime_config/usermods_dirs/NEON/DSNY/shell_commands new file mode 100644 index 0000000000..8304c91d48 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/DSNY/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=DSNY +./xmlchange PTS_LON=278.56606 +./xmlchange PTS_LAT=28.12919 diff --git a/cime_config/usermods_dirs/NEON/FATES/ABBY/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/ABBY/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/ABBY/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/ABBY/shell_commands b/cime_config/usermods_dirs/NEON/FATES/ABBY/shell_commands new file mode 100644 index 0000000000..08f6e7cdef --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/ABBY/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=ABBY +./xmlchange PTS_LON=237.67032799999998 +./xmlchange PTS_LAT=45.762378 diff --git a/cime_config/usermods_dirs/NEON/FATES/BARR/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/BARR/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/BARR/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/BARR/shell_commands b/cime_config/usermods_dirs/NEON/FATES/BARR/shell_commands new file mode 100644 index 0000000000..a5892a146b --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/BARR/shell_commands @@ -0,0 +1,13 @@ +#!/bin/bash + +./xmlchange NEONSITE=BARR +./xmlchange PTS_LON=203.349781 +./xmlchange PTS_LAT=71.281711 +./xmlchange DATM_YR_ALIGN=2019,DATM_YR_START=2019 +# Different default start date and number of months to run for transient case +if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi +fi diff --git a/cime_config/usermods_dirs/NEON/FATES/BART/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/BART/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/BART/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/BART/shell_commands b/cime_config/usermods_dirs/NEON/FATES/BART/shell_commands new file mode 100644 index 0000000000..a4e86a1b8c --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/BART/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=BART +./xmlchange PTS_LON=288.71166 +./xmlchange PTS_LAT=44.06516 diff --git a/cime_config/usermods_dirs/NEON/FATES/BLAN/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/BLAN/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/BLAN/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/BLAN/shell_commands b/cime_config/usermods_dirs/NEON/FATES/BLAN/shell_commands new file mode 100644 index 0000000000..0508481981 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/BLAN/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=BLAN +./xmlchange PTS_LON=281.958212 +./xmlchange PTS_LAT=39.033698 diff --git a/cime_config/usermods_dirs/NEON/FATES/BONA/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/BONA/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/BONA/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/BONA/shell_commands b/cime_config/usermods_dirs/NEON/FATES/BONA/shell_commands new file mode 100644 index 0000000000..2a66d148b4 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/BONA/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=BONA +./xmlchange PTS_LON=212.49806 +./xmlchange PTS_LAT=65.15333 diff --git a/cime_config/usermods_dirs/NEON/FATES/CLBJ/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/CLBJ/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/CLBJ/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/CLBJ/shell_commands b/cime_config/usermods_dirs/NEON/FATES/CLBJ/shell_commands new file mode 100644 index 0000000000..c1b9154027 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/CLBJ/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=CLBJ +./xmlchange PTS_LON=262.43275 +./xmlchange PTS_LAT=33.40143 diff --git a/cime_config/usermods_dirs/NEON/FATES/CPER/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/CPER/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/CPER/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/CPER/shell_commands b/cime_config/usermods_dirs/NEON/FATES/CPER/shell_commands new file mode 100644 index 0000000000..b70b1a46a0 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/CPER/shell_commands @@ -0,0 +1,10 @@ +#!/bin/bash + +./xmlchange NEONSITE=CPER +./xmlchange PTS_LON=255.25545 +./xmlchange PTS_LAT=40.81297 +if [[ $compset =~ ^HIST ]]; then + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=50 + fi +fi diff --git a/cime_config/usermods_dirs/NEON/FATES/DCFS/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/DCFS/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/DCFS/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/DCFS/shell_commands b/cime_config/usermods_dirs/NEON/FATES/DCFS/shell_commands new file mode 100644 index 0000000000..a6cbed64e1 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/DCFS/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=DCFS +./xmlchange PTS_LON=260.88749 +./xmlchange PTS_LAT=47.15919 diff --git a/cime_config/usermods_dirs/NEON/FATES/DEJU/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/DEJU/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/DEJU/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/DEJU/shell_commands b/cime_config/usermods_dirs/NEON/FATES/DEJU/shell_commands new file mode 100644 index 0000000000..fce519d559 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/DEJU/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=DEJU +./xmlchange PTS_LON=214.25235 +./xmlchange PTS_LAT=63.87983 diff --git a/cime_config/usermods_dirs/NEON/FATES/DELA/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/DELA/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/DELA/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/DELA/shell_commands b/cime_config/usermods_dirs/NEON/FATES/DELA/shell_commands new file mode 100644 index 0000000000..f3acbb8fd3 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/DELA/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=DELA +./xmlchange PTS_LON=272.19659 +./xmlchange PTS_LAT=32.54092 diff --git a/cime_config/usermods_dirs/NEON/FATES/DSNY/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/DSNY/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/DSNY/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/DSNY/shell_commands b/cime_config/usermods_dirs/NEON/FATES/DSNY/shell_commands new file mode 100644 index 0000000000..8304c91d48 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/DSNY/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=DSNY +./xmlchange PTS_LON=278.56606 +./xmlchange PTS_LAT=28.12919 diff --git a/cime_config/usermods_dirs/NEON/FATES/GRSM/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/GRSM/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/GRSM/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/GRSM/shell_commands b/cime_config/usermods_dirs/NEON/FATES/GRSM/shell_commands new file mode 100644 index 0000000000..e52a633408 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/GRSM/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=GRSM +./xmlchange PTS_LON=276.49815 +./xmlchange PTS_LAT=35.68839 diff --git a/cime_config/usermods_dirs/NEON/FATES/GUAN/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/GUAN/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/GUAN/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/GUAN/shell_commands b/cime_config/usermods_dirs/NEON/FATES/GUAN/shell_commands new file mode 100644 index 0000000000..c78bf31f55 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/GUAN/shell_commands @@ -0,0 +1,13 @@ +#!/bin/bash + +./xmlchange NEONSITE=GUAN +./xmlchange PTS_LON=293.13112 +./xmlchange PTS_LAT=17.96882 +./xmlchange DATM_YR_ALIGN=2019,DATM_YR_START=2019 +# Different default start date and number of months to run for transient case +if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi +fi diff --git a/cime_config/usermods_dirs/NEON/FATES/HARV/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/HARV/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/HARV/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/HARV/shell_commands b/cime_config/usermods_dirs/NEON/FATES/HARV/shell_commands new file mode 100644 index 0000000000..839ccf5d8f --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/HARV/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=HARV +./xmlchange PTS_LON=287.82438 +./xmlchange PTS_LAT=42.53562 diff --git a/cime_config/usermods_dirs/NEON/FATES/HEAL/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/HEAL/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/HEAL/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/HEAL/shell_commands b/cime_config/usermods_dirs/NEON/FATES/HEAL/shell_commands new file mode 100644 index 0000000000..21892219e0 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/HEAL/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=HEAL +./xmlchange PTS_LON=210.78461 +./xmlchange PTS_LAT=63.8798 diff --git a/cime_config/usermods_dirs/NEON/FATES/JERC/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/JERC/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/JERC/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/JERC/shell_commands b/cime_config/usermods_dirs/NEON/FATES/JERC/shell_commands new file mode 100644 index 0000000000..80f66d23a2 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/JERC/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=JERC +./xmlchange PTS_LON=275.53353 +./xmlchange PTS_LAT=31.19608 diff --git a/cime_config/usermods_dirs/NEON/FATES/JORN/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/JORN/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/JORN/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/JORN/shell_commands b/cime_config/usermods_dirs/NEON/FATES/JORN/shell_commands new file mode 100644 index 0000000000..87fc3b8c1e --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/JORN/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=JORN +./xmlchange PTS_LON=253.15623 +./xmlchange PTS_LAT=32.59052 diff --git a/cime_config/usermods_dirs/NEON/FATES/KONZ/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/KONZ/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/KONZ/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/KONZ/shell_commands b/cime_config/usermods_dirs/NEON/FATES/KONZ/shell_commands new file mode 100644 index 0000000000..bda370c170 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/KONZ/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=KONZ +./xmlchange PTS_LON=263.43773 +./xmlchange PTS_LAT=39.1007 diff --git a/cime_config/usermods_dirs/NEON/FATES/LAJA/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/LAJA/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/LAJA/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/LAJA/shell_commands b/cime_config/usermods_dirs/NEON/FATES/LAJA/shell_commands new file mode 100644 index 0000000000..217216e3ec --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/LAJA/shell_commands @@ -0,0 +1,14 @@ +#!/bin/bash +./xmlchange NEONSITE=LAJA +./xmlchange PTS_LON=292.92392 +./xmlchange PTS_LAT=18.02184 +./xmlchange DATM_YR_ALIGN=2019,DATM_YR_START=2019 +# Different default start date and number of months to run for transient case +if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi +fi + + diff --git a/cime_config/usermods_dirs/NEON/FATES/LENO/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/LENO/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/LENO/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/LENO/shell_commands b/cime_config/usermods_dirs/NEON/FATES/LENO/shell_commands new file mode 100644 index 0000000000..06af587292 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/LENO/shell_commands @@ -0,0 +1,14 @@ +#!/bin/bash + +./xmlchange NEONSITE=LENO +./xmlchange PTS_LON=271.83897 +./xmlchange PTS_LAT=31.8531 +./xmlchange DATM_YR_ALIGN=2021,DATM_YR_START=2021 +# Different default start date and number of months to run for transient case +if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2021-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=15 + fi +fi + diff --git a/cime_config/usermods_dirs/NEON/FATES/MLBS/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/MLBS/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/MLBS/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/MLBS/shell_commands b/cime_config/usermods_dirs/NEON/FATES/MLBS/shell_commands new file mode 100644 index 0000000000..11ab445450 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/MLBS/shell_commands @@ -0,0 +1,16 @@ +#!/bin/bash +./xmlchange NEONSITE=MLBS +./xmlchange PTS_LON=279.47575 +./xmlchange PTS_LAT=37.37783 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == 'NEON' ]]; then + ./xmlchange DATM_YR_END=2019 + # Different default number of months to run for transient case + if [[ $compset =~ ^HIST ]]; then + ./xmlchange DATM_YR_END=2020 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=24 + fi + fi +fi diff --git a/cime_config/usermods_dirs/NEON/FATES/MOAB/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/MOAB/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/MOAB/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/MOAB/shell_commands b/cime_config/usermods_dirs/NEON/FATES/MOAB/shell_commands new file mode 100644 index 0000000000..649fa2eaba --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/MOAB/shell_commands @@ -0,0 +1,16 @@ +#!/bin/bash +./xmlchange NEONSITE=MOAB +./xmlchange PTS_LON=250.61118 +./xmlchange PTS_LAT=38.25136 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == 'NEON' ]]; then + ./xmlchange DATM_YR_END=2020 + # Different default number of months to run for transient case + if [[ $compset =~ ^HIST ]]; then + ./xmlchange DATM_YR_END=2021 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=36 + fi + fi +fi diff --git a/cime_config/usermods_dirs/NEON/FATES/NIWO/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/NIWO/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/NIWO/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/NIWO/shell_commands b/cime_config/usermods_dirs/NEON/FATES/NIWO/shell_commands new file mode 100644 index 0000000000..b4f27ea8ed --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/NIWO/shell_commands @@ -0,0 +1,9 @@ +#!/bin/bash +./xmlchange NEONSITE=NIWO +./xmlchange PTS_LON=254.41676 +./xmlchange PTS_LAT=40.05236 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == "NEON" ]]; then + ./xmlchange DATM_YR_END=2018 +fi diff --git a/cime_config/usermods_dirs/NEON/FATES/NOGP/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/NOGP/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/NOGP/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/NOGP/shell_commands b/cime_config/usermods_dirs/NEON/FATES/NOGP/shell_commands new file mode 100644 index 0000000000..ad3ef69cd2 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/NOGP/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=NOGP +./xmlchange PTS_LON=259.08168 +./xmlchange PTS_LAT=46.76846 diff --git a/cime_config/usermods_dirs/NEON/FATES/OAES/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/OAES/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/OAES/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/OAES/shell_commands b/cime_config/usermods_dirs/NEON/FATES/OAES/shell_commands new file mode 100644 index 0000000000..2a5cfb87e4 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/OAES/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=OAES +./xmlchange PTS_LON=260.93956000000003 +./xmlchange PTS_LAT=35.41062 diff --git a/cime_config/usermods_dirs/NEON/FATES/ONAQ/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/ONAQ/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/ONAQ/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/ONAQ/shell_commands b/cime_config/usermods_dirs/NEON/FATES/ONAQ/shell_commands new file mode 100644 index 0000000000..dae5344528 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/ONAQ/shell_commands @@ -0,0 +1,16 @@ +#!/bin/bash +./xmlchange NEONSITE=ONAQ +./xmlchange PTS_LON=247.54755 +./xmlchange PTS_LAT=40.17760 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == 'NEON' ]]; then + ./xmlchange DATM_YR_END=2019 + # Different default number of months to run for transient case + if [[ $compset =~ ^HIST ]]; then + ./xmlchange DATM_YR_END=2020 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=24 + fi + fi +fi diff --git a/cime_config/usermods_dirs/NEON/FATES/ORNL/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/ORNL/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/ORNL/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/ORNL/shell_commands b/cime_config/usermods_dirs/NEON/FATES/ORNL/shell_commands new file mode 100644 index 0000000000..5708d3dec5 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/ORNL/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=ORNL +./xmlchange PTS_LON=275.717412 +./xmlchange PTS_LAT=35.964128 diff --git a/cime_config/usermods_dirs/NEON/FATES/OSBS/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/OSBS/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/OSBS/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/OSBS/shell_commands b/cime_config/usermods_dirs/NEON/FATES/OSBS/shell_commands new file mode 100644 index 0000000000..385021f98a --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/OSBS/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=OSBS +./xmlchange PTS_LON=278.00655 +./xmlchange PTS_LAT=29.68819 diff --git a/cime_config/usermods_dirs/NEON/FATES/PUUM/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/PUUM/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/PUUM/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/PUUM/shell_commands b/cime_config/usermods_dirs/NEON/FATES/PUUM/shell_commands new file mode 100644 index 0000000000..07c4331769 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/PUUM/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=PUUM +./xmlchange PTS_LON=204.68269 +./xmlchange PTS_LAT=19.55309 diff --git a/cime_config/usermods_dirs/NEON/FATES/README.md b/cime_config/usermods_dirs/NEON/FATES/README.md new file mode 100644 index 0000000000..dcfcfdf9af --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/README.md @@ -0,0 +1,10 @@ +# NEON user mods directories for FATES runs + +Use these user mods as you would any other user_mods, e.g.: + +`./create_newcase --case FATES_ABBY_test --res CLM_USRDAT --compset I1PtClm51Fates --run-unsupported --user-mods-dir /glade/work/$user/CTSM/cime_config/usermods_dirs/NEON/FATES/ABBY` + +## Note on crop sites KONA and STER + +Currently you cannot run FATES at these sites because FATES does not have crops as of yet. We will add these sites back once this capability is available. + diff --git a/cime_config/usermods_dirs/NEON/FATES/RMNP/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/RMNP/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/RMNP/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/RMNP/shell_commands b/cime_config/usermods_dirs/NEON/FATES/RMNP/shell_commands new file mode 100644 index 0000000000..8dfbf0fa0d --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/RMNP/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=RMNP +./xmlchange PTS_LON=254.45476 +./xmlchange PTS_LAT=40.27707 diff --git a/cime_config/usermods_dirs/NEON/FATES/SCBI/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/SCBI/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/SCBI/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/SCBI/shell_commands b/cime_config/usermods_dirs/NEON/FATES/SCBI/shell_commands new file mode 100644 index 0000000000..aa42b8022c --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/SCBI/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=SCBI +./xmlchange PTS_LON=281.86235999999997 +./xmlchange PTS_LAT=38.89209 diff --git a/cime_config/usermods_dirs/NEON/FATES/SERC/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/SERC/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/SERC/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/SERC/shell_commands b/cime_config/usermods_dirs/NEON/FATES/SERC/shell_commands new file mode 100644 index 0000000000..1053e2dc17 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/SERC/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=SERC +./xmlchange PTS_LON=283.44115999999997 +./xmlchange PTS_LAT=38.89124 diff --git a/cime_config/usermods_dirs/NEON/FATES/SJER/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/SJER/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/SJER/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/SJER/shell_commands b/cime_config/usermods_dirs/NEON/FATES/SJER/shell_commands new file mode 100644 index 0000000000..ee50f61fa1 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/SJER/shell_commands @@ -0,0 +1,20 @@ +#!/bin/bash +./xmlchange NEONSITE=SJER +./xmlchange PTS_LON=240.267 +./xmlchange PTS_LAT=37.107117 +./xmlchange DATM_YR_ALIGN=2019 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [ $CLM_USRDAT_NAME=='NEON' ] +then + ./xmlchange DATM_YR_START=2019 + # Different default start date and number of months to run for transient case + if [[ $compset =~ ^HIST ]] + then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi + fi +fi + diff --git a/cime_config/usermods_dirs/NEON/FATES/SOAP/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/SOAP/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/SOAP/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/SOAP/shell_commands b/cime_config/usermods_dirs/NEON/FATES/SOAP/shell_commands new file mode 100644 index 0000000000..c10274c047 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/SOAP/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=SOAP +./xmlchange PTS_LON=240.7379 +./xmlchange PTS_LAT=37.03269 diff --git a/cime_config/usermods_dirs/NEON/FATES/SRER/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/SRER/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/SRER/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/SRER/shell_commands b/cime_config/usermods_dirs/NEON/FATES/SRER/shell_commands new file mode 100644 index 0000000000..be1bec52d3 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/SRER/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=SRER +./xmlchange PTS_LON=249.16451 +./xmlchange PTS_LAT=31.91068 diff --git a/cime_config/usermods_dirs/NEON/FATES/STEI/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/STEI/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/STEI/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/STEI/shell_commands b/cime_config/usermods_dirs/NEON/FATES/STEI/shell_commands new file mode 100644 index 0000000000..c2aced2c2e --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/STEI/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=STEI +./xmlchange PTS_LON=270.4112 +./xmlchange PTS_LAT=45.5076 diff --git a/cime_config/usermods_dirs/NEON/FATES/TALL/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/TALL/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/TALL/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/TALL/shell_commands b/cime_config/usermods_dirs/NEON/FATES/TALL/shell_commands new file mode 100644 index 0000000000..1a176ae23f --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/TALL/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=TALL +./xmlchange PTS_LON=272.6059 +./xmlchange PTS_LAT=32.95106 diff --git a/cime_config/usermods_dirs/NEON/FATES/TEAK/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/TEAK/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/TEAK/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/TEAK/shell_commands b/cime_config/usermods_dirs/NEON/FATES/TEAK/shell_commands new file mode 100644 index 0000000000..abac8e9263 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/TEAK/shell_commands @@ -0,0 +1,17 @@ +#!/bin/bash +./xmlchange NEONSITE=TEAK +./xmlchange PTS_LON=240.99424199999999 +./xmlchange PTS_LAT=37.006472 +./xmlchange DATM_YR_ALIGN=2019 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == 'NEON' ]]; then + ./xmlchange DATM_YR_START=2019 + # Different default start date and number of months to run for transient case + if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi + fi +fi diff --git a/cime_config/usermods_dirs/NEON/FATES/TOOL/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/TOOL/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/TOOL/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/TOOL/shell_commands b/cime_config/usermods_dirs/NEON/FATES/TOOL/shell_commands new file mode 100644 index 0000000000..3c749cde93 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/TOOL/shell_commands @@ -0,0 +1,12 @@ +#!/bin/bash +./xmlchange NEONSITE=TOOL +./xmlchange PTS_LON=210.629872 +./xmlchange PTS_LAT=68.66045 +./xmlchange DATM_YR_ALIGN=2020,DATM_YR_START=2020 +# Different default start date and number of months to run for transient case +if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2020-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=27 + fi +fi diff --git a/cime_config/usermods_dirs/NEON/FATES/TREE/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/TREE/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/TREE/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/TREE/shell_commands b/cime_config/usermods_dirs/NEON/FATES/TREE/shell_commands new file mode 100644 index 0000000000..6d0a4aa1fa --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/TREE/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=TREE +./xmlchange PTS_LON=270.41252 +./xmlchange PTS_LAT=45.49266 diff --git a/cime_config/usermods_dirs/NEON/FATES/UKFS/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/UKFS/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/UKFS/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/UKFS/shell_commands b/cime_config/usermods_dirs/NEON/FATES/UKFS/shell_commands new file mode 100644 index 0000000000..7c8d4f8829 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/UKFS/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=UKFS +./xmlchange PTS_LON=264.79505 +./xmlchange PTS_LAT=39.04168 diff --git a/cime_config/usermods_dirs/NEON/FATES/UNDE/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/UNDE/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/UNDE/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/UNDE/shell_commands b/cime_config/usermods_dirs/NEON/FATES/UNDE/shell_commands new file mode 100644 index 0000000000..f810e4a76b --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/UNDE/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=UNDE +./xmlchange PTS_LON=270.462746 +./xmlchange PTS_LAT=46.23391 diff --git a/cime_config/usermods_dirs/NEON/FATES/WOOD/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/WOOD/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/WOOD/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/WOOD/shell_commands b/cime_config/usermods_dirs/NEON/FATES/WOOD/shell_commands new file mode 100644 index 0000000000..48ff0ef999 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/WOOD/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=WOOD +./xmlchange PTS_LON=260.76093000000003 +./xmlchange PTS_LAT=47.12833 diff --git a/cime_config/usermods_dirs/NEON/FATES/WREF/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/WREF/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/WREF/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/WREF/shell_commands b/cime_config/usermods_dirs/NEON/FATES/WREF/shell_commands new file mode 100644 index 0000000000..77a48ae1c0 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/WREF/shell_commands @@ -0,0 +1,17 @@ +#!/bin/bash +./xmlchange NEONSITE=WREF +./xmlchange PTS_LON=238.04162 +./xmlchange PTS_LAT=45.81637 +./xmlchange DATM_YR_ALIGN=2019 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == 'NEON' ]]; then + # Different default start date and number of months to run for transient case + ./xmlchange DATM_YR_START=2019 + if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi + fi +fi diff --git a/cime_config/usermods_dirs/NEON/FATES/YELL/include_user_mods b/cime_config/usermods_dirs/NEON/FATES/YELL/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/YELL/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/FATES/YELL/shell_commands b/cime_config/usermods_dirs/NEON/FATES/YELL/shell_commands new file mode 100644 index 0000000000..33915b88a1 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/YELL/shell_commands @@ -0,0 +1,17 @@ +#!/bin/bash +./xmlchange NEONSITE=YELL +./xmlchange PTS_LON=249.45803999999998 +./xmlchange PTS_LAT=44.95597 +./xmlchange DATM_YR_ALIGN=2019 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == 'NEON' ]]; then + # Different default start date and number of months to run for transient case + ./xmlchange DATM_YR_START=2019 + if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi + fi +fi diff --git a/cime_config/usermods_dirs/NEON/FATES/defaults/shell_commands b/cime_config/usermods_dirs/NEON/FATES/defaults/shell_commands new file mode 100644 index 0000000000..798abcae84 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/defaults/shell_commands @@ -0,0 +1,41 @@ +#!/bin/bash +./xmlchange CLM_USRDAT_NAME=NEON +# CLM_USRDAT_NAME can be set to either NEON or NEON.PRISM +./xmlchange CCSM_CO2_PPMV=408.83 +# Set data forcing data to future scenario so will have data from 2018 to present-day +./xmlchange DATM_PRESAERO=SSP3-7.0 +./xmlchange DATM_PRESNDEP=SSP3-7.0 +./xmlchange DATM_PRESO3=SSP3-7.0 +# Explicitly set the MPI library to mpi-serial so won't have the build/run complexity of a full MPI library +./xmlchange MPILIB=mpi-serial +# Set years to run forcing data over +./xmlchange DATM_YR_ALIGN=2018,DATM_YR_END=2021,DATM_YR_START=2018 +# +# Save some variables that may be used later +# +compset=`./xmlquery COMPSET --value` +CLM_USRDAT_NAME=`./xmlquery CLM_USRDAT_NAME --value` +TEST=`./xmlquery TEST --value` + +# For a transient case run the whole length and don't cycle +if [[ $compset =~ ^HIST ]]; then + ./xmlchange DATM_YR_END=2022 + ./xmlchange RUN_STARTDATE=2018-01-01 + # Number of months that can be run for the full transient case + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_OPTION="nmonths" + ./xmlchange STOP_N=51 + fi + ./xmlchange CLM_NML_USE_CASE="2018-PD_transient" +else + ./xmlchange CLM_NML_USE_CASE="2018_control" +fi + +# If needed for SP simulations: +# Does anything need to be set for FATES-SP mode? +#if [[ $compset =~ ".*CLM[0-9]%.*SP.*" ]]; then +#fi + + +# Explicitly set PIO Type to NETCDF since this is a single processor case (should already be set this way) +./xmlchange PIO_TYPENAME=netcdf diff --git a/cime_config/usermods_dirs/NEON/FATES/defaults/user_nl_clm b/cime_config/usermods_dirs/NEON/FATES/defaults/user_nl_clm new file mode 100644 index 0000000000..2a6b4d76d5 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/defaults/user_nl_clm @@ -0,0 +1,28 @@ +!---------------------------------------------------------------------------------- +! Users should add all user specific namelist changes below in the form of +! namelist_var = new_namelist_value +! +! EXCEPTIONS: +! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting +! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting +! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting +! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting +! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting +! Set co2_ppmv with CCSM_CO2_PPMV option +! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options +! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases +! (includes $inst_string for multi-ensemble cases) +! or with CLM_FORCE_COLDSTART to do a cold start +! or set it with an explicit filename here. +! Set maxpatch_glcmec with GLC_NEC option +! Set glc_do_dynglacier with GLC_TWO_WAY_COUPLING env variable +!---------------------------------------------------------------------------------- + +flanduse_timeseries = ' ' ! This isn't needed for a non transient case, but will be once we start using transient compsets +fsurdat = "$DIN_LOC_ROOT/lnd/clm2/surfdata_map/NEON/16PFT_mixed/surfdata_1x1_NEON_${NEONSITE}_hist_16pfts_Irrig_CMIP6_simyr2000_c230120.nc" + +! h1 output stream +hist_fincl2 = 'FATES_AUTORESP','FCEV','FCTR','FGEV','FIRA','FSA','FSH','FATES_GPP','FATES_GPP_PF','H2OSOI', + 'SNOW_DEPTH','TBOT','TSOI','SOILC_vr','FATES_NPP','FATES_NPP_PF','FATES_VEGC','FATES_VEGC_PF' +hist_mfilt(2) = 48 +hist_nhtfrq(2) = 1 diff --git a/cime_config/usermods_dirs/NEON/FATES/defaults/user_nl_cpl b/cime_config/usermods_dirs/NEON/FATES/defaults/user_nl_cpl new file mode 100644 index 0000000000..e7f6c90a86 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/defaults/user_nl_cpl @@ -0,0 +1,20 @@ +!------------------------------------------------------------------------ +! Users should ONLY USE user_nl_cpl to change namelists variables +! for namelist variables in drv_in (except for the ones below) and +! any keyword/values in seq_maps.rc +! Users should add ALL user specific namelist and seq_maps.rc changes below +! using the following syntax +! namelist_var = new_namelist_value +! or +! mapname = new_map_name +! For example to change the default value of ocn2atm_fmapname to 'foo' use +! ocn2atm_fmapname = 'foo' +! +! Note that some namelist variables MAY NOT be changed in user_nl_cpl - +! they are defined in a $CASEROOT xml file and must be changed with +! xmlchange. +! +! For example, rather than set username to 'foo' in user_nl_cpl, call +! ./xmlchange USER=foo +!------------------------------------------------------------------------ +orb_iyear = 2018 diff --git a/cime_config/usermods_dirs/NEON/FATES/defaults/user_nl_datm_streams b/cime_config/usermods_dirs/NEON/FATES/defaults/user_nl_datm_streams new file mode 100644 index 0000000000..36f1e72b3a --- /dev/null +++ b/cime_config/usermods_dirs/NEON/FATES/defaults/user_nl_datm_streams @@ -0,0 +1,39 @@ +!------------------------------------------------------------------------ +! This file is used to modify datm.streams.xml generated in $RUNDIR +! Entries should have the form +! :<= new stream_value> +! The following are accepted values for an assume streamname of foo +! foo:meshfile = character string +! foo:datafiles = comma separated string of full pathnames (e.g. file1,file2,file3...) +! foo:datavars = comma separated string of field pairs (e.g. foo foobar,foo2 foobar2...) +! foo:taxmode = one of [cycle, extend, limit] +! foo:tintalgo = one of [lower,upper,nearest,linear,coszen] +! foo:readmode = single (only suported mode right now) +! foo:mapalgo = one of [bilinear,redist,nn,consf,consd,none] +! foo:dtlimit = real (1.5 is default) +! foo:year_first = integer +! foo:year_last = integer +! foo:year_align = integer +! foo:vectors = one of [none,u:v] +! foo:lev_dimname: = one of [null,name of level dimenion name] +! foo:offset = integer +! As an example: +! foo:year_first = 1950 +! would change the stream year_first stream_entry to 1950 for the foo stream block +!------------------------------------------------------------------------ +presaero.SSP3-7.0:datafiles = $DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/aero/aerodep_clm_SSP370_b.e21.BWSSP370cmip6.f09_g17.CMIP6-SSP3-7.0-WACCM.001_2018-2030_monthly_0.9x1.25_c210826.nc +presaero.SSP3-7.0:year_first=2018 +presaero.SSP3-7.0:year_last=2022 +presaero.SSP3-7.0:year_align=2018 +presaero.SSP3-7.0:dtlimit=30 + +presndep.SSP3-7.0:datafiles = $DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP3-7.0-WACCM_2018-2030_monthly_c210826.nc +presndep.SSP3-7.0:year_first=2018 +presndep.SSP3-7.0:year_last=2022 +presndep.SSP3-7.0:year_align=2018 +presndep.SSP3-7.0:dtlimit=30 + +preso3.SSP3-7.0:year_first=2018 +preso3.SSP3-7.0:year_last=2022 +preso3.SSP3-7.0:year_align=2018 +preso3.SSP3-7.0:dtlimit=30 diff --git a/cime_config/usermods_dirs/NEON/GRSM/include_user_mods b/cime_config/usermods_dirs/NEON/GRSM/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/GRSM/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/GRSM/shell_commands b/cime_config/usermods_dirs/NEON/GRSM/shell_commands new file mode 100644 index 0000000000..e52a633408 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/GRSM/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=GRSM +./xmlchange PTS_LON=276.49815 +./xmlchange PTS_LAT=35.68839 diff --git a/cime_config/usermods_dirs/NEON/GUAN/include_user_mods b/cime_config/usermods_dirs/NEON/GUAN/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/GUAN/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/GUAN/shell_commands b/cime_config/usermods_dirs/NEON/GUAN/shell_commands new file mode 100644 index 0000000000..c78bf31f55 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/GUAN/shell_commands @@ -0,0 +1,13 @@ +#!/bin/bash + +./xmlchange NEONSITE=GUAN +./xmlchange PTS_LON=293.13112 +./xmlchange PTS_LAT=17.96882 +./xmlchange DATM_YR_ALIGN=2019,DATM_YR_START=2019 +# Different default start date and number of months to run for transient case +if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi +fi diff --git a/cime_config/usermods_dirs/NEON/HARV/include_user_mods b/cime_config/usermods_dirs/NEON/HARV/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/HARV/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/HARV/shell_commands b/cime_config/usermods_dirs/NEON/HARV/shell_commands new file mode 100644 index 0000000000..839ccf5d8f --- /dev/null +++ b/cime_config/usermods_dirs/NEON/HARV/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=HARV +./xmlchange PTS_LON=287.82438 +./xmlchange PTS_LAT=42.53562 diff --git a/cime_config/usermods_dirs/NEON/HEAL/include_user_mods b/cime_config/usermods_dirs/NEON/HEAL/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/HEAL/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/HEAL/shell_commands b/cime_config/usermods_dirs/NEON/HEAL/shell_commands new file mode 100644 index 0000000000..21892219e0 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/HEAL/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=HEAL +./xmlchange PTS_LON=210.78461 +./xmlchange PTS_LAT=63.8798 diff --git a/cime_config/usermods_dirs/NEON/JERC/include_user_mods b/cime_config/usermods_dirs/NEON/JERC/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/JERC/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/JERC/shell_commands b/cime_config/usermods_dirs/NEON/JERC/shell_commands new file mode 100644 index 0000000000..80f66d23a2 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/JERC/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=JERC +./xmlchange PTS_LON=275.53353 +./xmlchange PTS_LAT=31.19608 diff --git a/cime_config/usermods_dirs/NEON/JORN/include_user_mods b/cime_config/usermods_dirs/NEON/JORN/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/JORN/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/JORN/shell_commands b/cime_config/usermods_dirs/NEON/JORN/shell_commands new file mode 100644 index 0000000000..87fc3b8c1e --- /dev/null +++ b/cime_config/usermods_dirs/NEON/JORN/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=JORN +./xmlchange PTS_LON=253.15623 +./xmlchange PTS_LAT=32.59052 diff --git a/cime_config/usermods_dirs/NEON/KONA/include_user_mods b/cime_config/usermods_dirs/NEON/KONA/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/KONA/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/KONA/shell_commands b/cime_config/usermods_dirs/NEON/KONA/shell_commands new file mode 100644 index 0000000000..66f274dd36 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/KONA/shell_commands @@ -0,0 +1,7 @@ +./xmlchange NEONSITE=KONA +./xmlchange PTS_LON=263.38956 +./xmlchange PTS_LAT=39.10828 +# Setup to run with prognostic crops for this site +# If you want to explicitly run in SP mode or add other +# options you'll need to add that after this... +./xmlchange CLM_BLDNML_OPTS="--bgc bgc --crop" diff --git a/cime_config/usermods_dirs/NEON/KONZ/include_user_mods b/cime_config/usermods_dirs/NEON/KONZ/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/KONZ/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/KONZ/shell_commands b/cime_config/usermods_dirs/NEON/KONZ/shell_commands new file mode 100644 index 0000000000..bda370c170 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/KONZ/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=KONZ +./xmlchange PTS_LON=263.43773 +./xmlchange PTS_LAT=39.1007 diff --git a/cime_config/usermods_dirs/NEON/LAJA/include_user_mods b/cime_config/usermods_dirs/NEON/LAJA/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/LAJA/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/LAJA/shell_commands b/cime_config/usermods_dirs/NEON/LAJA/shell_commands new file mode 100644 index 0000000000..217216e3ec --- /dev/null +++ b/cime_config/usermods_dirs/NEON/LAJA/shell_commands @@ -0,0 +1,14 @@ +#!/bin/bash +./xmlchange NEONSITE=LAJA +./xmlchange PTS_LON=292.92392 +./xmlchange PTS_LAT=18.02184 +./xmlchange DATM_YR_ALIGN=2019,DATM_YR_START=2019 +# Different default start date and number of months to run for transient case +if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi +fi + + diff --git a/cime_config/usermods_dirs/NEON/LENO/include_user_mods b/cime_config/usermods_dirs/NEON/LENO/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/LENO/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/LENO/shell_commands b/cime_config/usermods_dirs/NEON/LENO/shell_commands new file mode 100644 index 0000000000..06af587292 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/LENO/shell_commands @@ -0,0 +1,14 @@ +#!/bin/bash + +./xmlchange NEONSITE=LENO +./xmlchange PTS_LON=271.83897 +./xmlchange PTS_LAT=31.8531 +./xmlchange DATM_YR_ALIGN=2021,DATM_YR_START=2021 +# Different default start date and number of months to run for transient case +if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2021-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=15 + fi +fi + diff --git a/cime_config/usermods_dirs/NEON/MLBS/include_user_mods b/cime_config/usermods_dirs/NEON/MLBS/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/MLBS/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/MLBS/shell_commands b/cime_config/usermods_dirs/NEON/MLBS/shell_commands new file mode 100644 index 0000000000..11ab445450 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/MLBS/shell_commands @@ -0,0 +1,16 @@ +#!/bin/bash +./xmlchange NEONSITE=MLBS +./xmlchange PTS_LON=279.47575 +./xmlchange PTS_LAT=37.37783 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == 'NEON' ]]; then + ./xmlchange DATM_YR_END=2019 + # Different default number of months to run for transient case + if [[ $compset =~ ^HIST ]]; then + ./xmlchange DATM_YR_END=2020 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=24 + fi + fi +fi diff --git a/cime_config/usermods_dirs/NEON/MOAB/include_user_mods b/cime_config/usermods_dirs/NEON/MOAB/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/MOAB/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/MOAB/shell_commands b/cime_config/usermods_dirs/NEON/MOAB/shell_commands new file mode 100644 index 0000000000..649fa2eaba --- /dev/null +++ b/cime_config/usermods_dirs/NEON/MOAB/shell_commands @@ -0,0 +1,16 @@ +#!/bin/bash +./xmlchange NEONSITE=MOAB +./xmlchange PTS_LON=250.61118 +./xmlchange PTS_LAT=38.25136 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == 'NEON' ]]; then + ./xmlchange DATM_YR_END=2020 + # Different default number of months to run for transient case + if [[ $compset =~ ^HIST ]]; then + ./xmlchange DATM_YR_END=2021 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=36 + fi + fi +fi diff --git a/cime_config/usermods_dirs/NEON/NIWO/include_user_mods b/cime_config/usermods_dirs/NEON/NIWO/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/NIWO/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/NIWO/shell_commands b/cime_config/usermods_dirs/NEON/NIWO/shell_commands new file mode 100644 index 0000000000..b4f27ea8ed --- /dev/null +++ b/cime_config/usermods_dirs/NEON/NIWO/shell_commands @@ -0,0 +1,9 @@ +#!/bin/bash +./xmlchange NEONSITE=NIWO +./xmlchange PTS_LON=254.41676 +./xmlchange PTS_LAT=40.05236 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == "NEON" ]]; then + ./xmlchange DATM_YR_END=2018 +fi diff --git a/cime_config/usermods_dirs/NEON/NOGP/include_user_mods b/cime_config/usermods_dirs/NEON/NOGP/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/NOGP/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/NOGP/shell_commands b/cime_config/usermods_dirs/NEON/NOGP/shell_commands new file mode 100644 index 0000000000..ad3ef69cd2 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/NOGP/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=NOGP +./xmlchange PTS_LON=259.08168 +./xmlchange PTS_LAT=46.76846 diff --git a/cime_config/usermods_dirs/NEON/OAES/include_user_mods b/cime_config/usermods_dirs/NEON/OAES/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/OAES/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/OAES/shell_commands b/cime_config/usermods_dirs/NEON/OAES/shell_commands new file mode 100644 index 0000000000..2a5cfb87e4 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/OAES/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=OAES +./xmlchange PTS_LON=260.93956000000003 +./xmlchange PTS_LAT=35.41062 diff --git a/cime_config/usermods_dirs/NEON/ONAQ/include_user_mods b/cime_config/usermods_dirs/NEON/ONAQ/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/ONAQ/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/ONAQ/shell_commands b/cime_config/usermods_dirs/NEON/ONAQ/shell_commands new file mode 100644 index 0000000000..dae5344528 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/ONAQ/shell_commands @@ -0,0 +1,16 @@ +#!/bin/bash +./xmlchange NEONSITE=ONAQ +./xmlchange PTS_LON=247.54755 +./xmlchange PTS_LAT=40.17760 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == 'NEON' ]]; then + ./xmlchange DATM_YR_END=2019 + # Different default number of months to run for transient case + if [[ $compset =~ ^HIST ]]; then + ./xmlchange DATM_YR_END=2020 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=24 + fi + fi +fi diff --git a/cime_config/usermods_dirs/NEON/ORNL/include_user_mods b/cime_config/usermods_dirs/NEON/ORNL/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/ORNL/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/ORNL/shell_commands b/cime_config/usermods_dirs/NEON/ORNL/shell_commands new file mode 100644 index 0000000000..5708d3dec5 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/ORNL/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=ORNL +./xmlchange PTS_LON=275.717412 +./xmlchange PTS_LAT=35.964128 diff --git a/cime_config/usermods_dirs/NEON/OSBS/include_user_mods b/cime_config/usermods_dirs/NEON/OSBS/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/OSBS/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/OSBS/shell_commands b/cime_config/usermods_dirs/NEON/OSBS/shell_commands new file mode 100644 index 0000000000..385021f98a --- /dev/null +++ b/cime_config/usermods_dirs/NEON/OSBS/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=OSBS +./xmlchange PTS_LON=278.00655 +./xmlchange PTS_LAT=29.68819 diff --git a/cime_config/usermods_dirs/NEON/PUUM/include_user_mods b/cime_config/usermods_dirs/NEON/PUUM/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/PUUM/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/PUUM/shell_commands b/cime_config/usermods_dirs/NEON/PUUM/shell_commands new file mode 100644 index 0000000000..07c4331769 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/PUUM/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=PUUM +./xmlchange PTS_LON=204.68269 +./xmlchange PTS_LAT=19.55309 diff --git a/cime_config/usermods_dirs/NEON/RMNP/include_user_mods b/cime_config/usermods_dirs/NEON/RMNP/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/RMNP/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/RMNP/shell_commands b/cime_config/usermods_dirs/NEON/RMNP/shell_commands new file mode 100644 index 0000000000..8dfbf0fa0d --- /dev/null +++ b/cime_config/usermods_dirs/NEON/RMNP/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=RMNP +./xmlchange PTS_LON=254.45476 +./xmlchange PTS_LAT=40.27707 diff --git a/cime_config/usermods_dirs/NEON/SCBI/include_user_mods b/cime_config/usermods_dirs/NEON/SCBI/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/SCBI/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/SCBI/shell_commands b/cime_config/usermods_dirs/NEON/SCBI/shell_commands new file mode 100644 index 0000000000..aa42b8022c --- /dev/null +++ b/cime_config/usermods_dirs/NEON/SCBI/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=SCBI +./xmlchange PTS_LON=281.86235999999997 +./xmlchange PTS_LAT=38.89209 diff --git a/cime_config/usermods_dirs/NEON/SERC/include_user_mods b/cime_config/usermods_dirs/NEON/SERC/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/SERC/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/SERC/shell_commands b/cime_config/usermods_dirs/NEON/SERC/shell_commands new file mode 100644 index 0000000000..1053e2dc17 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/SERC/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=SERC +./xmlchange PTS_LON=283.44115999999997 +./xmlchange PTS_LAT=38.89124 diff --git a/cime_config/usermods_dirs/NEON/SJER/include_user_mods b/cime_config/usermods_dirs/NEON/SJER/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/SJER/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/SJER/shell_commands b/cime_config/usermods_dirs/NEON/SJER/shell_commands new file mode 100644 index 0000000000..ee50f61fa1 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/SJER/shell_commands @@ -0,0 +1,20 @@ +#!/bin/bash +./xmlchange NEONSITE=SJER +./xmlchange PTS_LON=240.267 +./xmlchange PTS_LAT=37.107117 +./xmlchange DATM_YR_ALIGN=2019 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [ $CLM_USRDAT_NAME=='NEON' ] +then + ./xmlchange DATM_YR_START=2019 + # Different default start date and number of months to run for transient case + if [[ $compset =~ ^HIST ]] + then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi + fi +fi + diff --git a/cime_config/usermods_dirs/NEON/SOAP/include_user_mods b/cime_config/usermods_dirs/NEON/SOAP/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/SOAP/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/SOAP/shell_commands b/cime_config/usermods_dirs/NEON/SOAP/shell_commands new file mode 100644 index 0000000000..c10274c047 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/SOAP/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=SOAP +./xmlchange PTS_LON=240.7379 +./xmlchange PTS_LAT=37.03269 diff --git a/cime_config/usermods_dirs/NEON/SRER/include_user_mods b/cime_config/usermods_dirs/NEON/SRER/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/SRER/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/SRER/shell_commands b/cime_config/usermods_dirs/NEON/SRER/shell_commands new file mode 100644 index 0000000000..be1bec52d3 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/SRER/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=SRER +./xmlchange PTS_LON=249.16451 +./xmlchange PTS_LAT=31.91068 diff --git a/cime_config/usermods_dirs/NEON/STEI/include_user_mods b/cime_config/usermods_dirs/NEON/STEI/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/STEI/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/STEI/shell_commands b/cime_config/usermods_dirs/NEON/STEI/shell_commands new file mode 100644 index 0000000000..c2aced2c2e --- /dev/null +++ b/cime_config/usermods_dirs/NEON/STEI/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=STEI +./xmlchange PTS_LON=270.4112 +./xmlchange PTS_LAT=45.5076 diff --git a/cime_config/usermods_dirs/NEON/STER/include_user_mods b/cime_config/usermods_dirs/NEON/STER/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/STER/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/STER/shell_commands b/cime_config/usermods_dirs/NEON/STER/shell_commands new file mode 100644 index 0000000000..38b173c309 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/STER/shell_commands @@ -0,0 +1,7 @@ +./xmlchange NEONSITE=STER +./xmlchange PTS_LON=256.96992 +./xmlchange PTS_LAT=40.45984 +# Setup to run with prognostic crops for this site +# If you want to explicitly run in SP mode or add other +# # options you'll need to add that after this... +./xmlchange CLM_BLDNML_OPTS="--bgc bgc --crop" diff --git a/cime_config/usermods_dirs/NEON/TALL/include_user_mods b/cime_config/usermods_dirs/NEON/TALL/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/TALL/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/TALL/shell_commands b/cime_config/usermods_dirs/NEON/TALL/shell_commands new file mode 100644 index 0000000000..1a176ae23f --- /dev/null +++ b/cime_config/usermods_dirs/NEON/TALL/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=TALL +./xmlchange PTS_LON=272.6059 +./xmlchange PTS_LAT=32.95106 diff --git a/cime_config/usermods_dirs/NEON/TEAK/include_user_mods b/cime_config/usermods_dirs/NEON/TEAK/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/TEAK/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/TEAK/shell_commands b/cime_config/usermods_dirs/NEON/TEAK/shell_commands new file mode 100644 index 0000000000..abac8e9263 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/TEAK/shell_commands @@ -0,0 +1,17 @@ +#!/bin/bash +./xmlchange NEONSITE=TEAK +./xmlchange PTS_LON=240.99424199999999 +./xmlchange PTS_LAT=37.006472 +./xmlchange DATM_YR_ALIGN=2019 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == 'NEON' ]]; then + ./xmlchange DATM_YR_START=2019 + # Different default start date and number of months to run for transient case + if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi + fi +fi diff --git a/cime_config/usermods_dirs/NEON/TOOL/include_user_mods b/cime_config/usermods_dirs/NEON/TOOL/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/TOOL/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/TOOL/shell_commands b/cime_config/usermods_dirs/NEON/TOOL/shell_commands new file mode 100644 index 0000000000..3c749cde93 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/TOOL/shell_commands @@ -0,0 +1,12 @@ +#!/bin/bash +./xmlchange NEONSITE=TOOL +./xmlchange PTS_LON=210.629872 +./xmlchange PTS_LAT=68.66045 +./xmlchange DATM_YR_ALIGN=2020,DATM_YR_START=2020 +# Different default start date and number of months to run for transient case +if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2020-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=27 + fi +fi diff --git a/cime_config/usermods_dirs/NEON/TREE/include_user_mods b/cime_config/usermods_dirs/NEON/TREE/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/TREE/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/TREE/shell_commands b/cime_config/usermods_dirs/NEON/TREE/shell_commands new file mode 100644 index 0000000000..6d0a4aa1fa --- /dev/null +++ b/cime_config/usermods_dirs/NEON/TREE/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=TREE +./xmlchange PTS_LON=270.41252 +./xmlchange PTS_LAT=45.49266 diff --git a/cime_config/usermods_dirs/NEON/UKFS/include_user_mods b/cime_config/usermods_dirs/NEON/UKFS/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/UKFS/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/UKFS/shell_commands b/cime_config/usermods_dirs/NEON/UKFS/shell_commands new file mode 100644 index 0000000000..7c8d4f8829 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/UKFS/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=UKFS +./xmlchange PTS_LON=264.79505 +./xmlchange PTS_LAT=39.04168 diff --git a/cime_config/usermods_dirs/NEON/UNDE/include_user_mods b/cime_config/usermods_dirs/NEON/UNDE/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/UNDE/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/UNDE/shell_commands b/cime_config/usermods_dirs/NEON/UNDE/shell_commands new file mode 100644 index 0000000000..f810e4a76b --- /dev/null +++ b/cime_config/usermods_dirs/NEON/UNDE/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=UNDE +./xmlchange PTS_LON=270.462746 +./xmlchange PTS_LAT=46.23391 diff --git a/cime_config/usermods_dirs/NEON/WOOD/include_user_mods b/cime_config/usermods_dirs/NEON/WOOD/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/WOOD/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/WOOD/shell_commands b/cime_config/usermods_dirs/NEON/WOOD/shell_commands new file mode 100644 index 0000000000..48ff0ef999 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/WOOD/shell_commands @@ -0,0 +1,3 @@ +./xmlchange NEONSITE=WOOD +./xmlchange PTS_LON=260.76093000000003 +./xmlchange PTS_LAT=47.12833 diff --git a/cime_config/usermods_dirs/NEON/WREF/include_user_mods b/cime_config/usermods_dirs/NEON/WREF/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/WREF/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/WREF/shell_commands b/cime_config/usermods_dirs/NEON/WREF/shell_commands new file mode 100644 index 0000000000..77a48ae1c0 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/WREF/shell_commands @@ -0,0 +1,17 @@ +#!/bin/bash +./xmlchange NEONSITE=WREF +./xmlchange PTS_LON=238.04162 +./xmlchange PTS_LAT=45.81637 +./xmlchange DATM_YR_ALIGN=2019 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == 'NEON' ]]; then + # Different default start date and number of months to run for transient case + ./xmlchange DATM_YR_START=2019 + if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi + fi +fi diff --git a/cime_config/usermods_dirs/NEON/YELL/include_user_mods b/cime_config/usermods_dirs/NEON/YELL/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/YELL/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/NEON/YELL/shell_commands b/cime_config/usermods_dirs/NEON/YELL/shell_commands new file mode 100644 index 0000000000..33915b88a1 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/YELL/shell_commands @@ -0,0 +1,17 @@ +#!/bin/bash +./xmlchange NEONSITE=YELL +./xmlchange PTS_LON=249.45803999999998 +./xmlchange PTS_LAT=44.95597 +./xmlchange DATM_YR_ALIGN=2019 +# NEON precipitation data for this site is missing so end early +# If CLM_USRDAT_NAME is NEON.PRISM you can run to the end of the data +if [[ $CLM_USRDAT_NAME == 'NEON' ]]; then + # Different default start date and number of months to run for transient case + ./xmlchange DATM_YR_START=2019 + if [[ $compset =~ ^HIST ]]; then + ./xmlchange RUN_STARTDATE=2019-01-01 + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_N=39 + fi + fi +fi diff --git a/cime_config/usermods_dirs/NEON/defaults/shell_commands b/cime_config/usermods_dirs/NEON/defaults/shell_commands new file mode 100644 index 0000000000..437201f2b2 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/defaults/shell_commands @@ -0,0 +1,45 @@ +#!/bin/bash +./xmlchange CLM_USRDAT_NAME=NEON +# CLM_USRDAT_NAME can be set to either NEON or NEON.PRISM +./xmlchange CCSM_CO2_PPMV=408.83 +# Set data forcing data to future scenario so will have data from 2018 to present-day +./xmlchange DATM_PRESAERO=SSP3-7.0 +./xmlchange DATM_PRESNDEP=SSP3-7.0 +./xmlchange DATM_PRESO3=SSP3-7.0 +# Explicitly set the MPI library to mpi-serial so won't have the build/run complexity of a full MPI library +./xmlchange MPILIB=mpi-serial +# Set years to run forcing data over +./xmlchange DATM_YR_ALIGN=2018,DATM_YR_END=2021,DATM_YR_START=2018 +# +# Save some variables that may be used later +# +compset=`./xmlquery COMPSET --value` +CLM_USRDAT_NAME=`./xmlquery CLM_USRDAT_NAME --value` +TEST=`./xmlquery TEST --value` + +# For a transient case run the whole length and don't cycle +if [[ $compset =~ ^HIST ]]; then + ./xmlchange DATM_YR_END=2022 + ./xmlchange RUN_STARTDATE=2018-01-01 + # Number of months that can be run for the full transient case + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_OPTION="nmonths" + ./xmlchange STOP_N=51 + fi + ./xmlchange CLM_NML_USE_CASE="2018-PD_transient" +else + ./xmlchange CLM_NML_USE_CASE="2018_control" +fi + +# If needed for SP simulations: & set history file variables +if [[ $compset =~ .*CLM[0-9]+%.*SP.* ]]; then + if [[ $TEST != "TRUE" ]]; then + ./xmlchange STOP_OPTION=nyears + fi + ./xmlchange CLM_FORCE_COLDSTART=on + + echo "hist_fincl2 = 'FCEV','FCTR','FGEV','FIRA','FSA','FSH','FPSN','H2OSOI','SNOW_DEPTH','TBOT','TSOI'" >> user_nl_clm +fi + +# Explicitly set PIO Type to NETCDF since this is a single processor case (should already be set this way) +./xmlchange PIO_TYPENAME=netcdf diff --git a/cime_config/usermods_dirs/NEON/defaults/user_nl_clm b/cime_config/usermods_dirs/NEON/defaults/user_nl_clm new file mode 100644 index 0000000000..419ff0314c --- /dev/null +++ b/cime_config/usermods_dirs/NEON/defaults/user_nl_clm @@ -0,0 +1,28 @@ +!---------------------------------------------------------------------------------- +! Users should add all user specific namelist changes below in the form of +! namelist_var = new_namelist_value +! +! EXCEPTIONS: +! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting +! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting +! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting +! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting +! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting +! Set co2_ppmv with CCSM_CO2_PPMV option +! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options +! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases +! (includes $inst_string for multi-ensemble cases) +! or with CLM_FORCE_COLDSTART to do a cold start +! or set it with an explicit filename here. +! Set maxpatch_glcmec with GLC_NEC option +! Set glc_do_dynglacier with GLC_TWO_WAY_COUPLING env variable +!---------------------------------------------------------------------------------- + +flanduse_timeseries = ' ' ! This isn't needed for a non transient case, but will be once we start using transient compsets +fsurdat = "$DIN_LOC_ROOT/lnd/clm2/surfdata_map/NEON/surfdata_1x1_NEON_${NEONSITE}_hist_78pfts_CMIP6_simyr2000_c230601.nc" + +! h1 output stream +hist_fincl2 = 'AR','ELAI','FCEV','FCTR','FGEV','FIRA','FSA','FSH','GPP','H2OSOI', + 'HR','SNOW_DEPTH','TBOT','TSOI','SOILC_vr','FV','NET_NMIN_vr' +hist_mfilt(2) = 48 +hist_nhtfrq(2) = 1 diff --git a/cime_config/usermods_dirs/NEON/defaults/user_nl_cpl b/cime_config/usermods_dirs/NEON/defaults/user_nl_cpl new file mode 100644 index 0000000000..e7f6c90a86 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/defaults/user_nl_cpl @@ -0,0 +1,20 @@ +!------------------------------------------------------------------------ +! Users should ONLY USE user_nl_cpl to change namelists variables +! for namelist variables in drv_in (except for the ones below) and +! any keyword/values in seq_maps.rc +! Users should add ALL user specific namelist and seq_maps.rc changes below +! using the following syntax +! namelist_var = new_namelist_value +! or +! mapname = new_map_name +! For example to change the default value of ocn2atm_fmapname to 'foo' use +! ocn2atm_fmapname = 'foo' +! +! Note that some namelist variables MAY NOT be changed in user_nl_cpl - +! they are defined in a $CASEROOT xml file and must be changed with +! xmlchange. +! +! For example, rather than set username to 'foo' in user_nl_cpl, call +! ./xmlchange USER=foo +!------------------------------------------------------------------------ +orb_iyear = 2018 diff --git a/cime_config/usermods_dirs/NEON/defaults/user_nl_datm_streams b/cime_config/usermods_dirs/NEON/defaults/user_nl_datm_streams new file mode 100644 index 0000000000..bae77db6b5 --- /dev/null +++ b/cime_config/usermods_dirs/NEON/defaults/user_nl_datm_streams @@ -0,0 +1,40 @@ +!------------------------------------------------------------------------ +! This file is used to modify datm.streams.xml generated in $RUNDIR +! Entries should have the form +! :<= new stream_value> +! The following are accepted values for an assume streamname of foo +! foo:meshfile = character string +! foo:datafiles = comma separated string of full pathnames (e.g. file1,file2,file3...) +! foo:datavars = comma separated string of field pairs (e.g. foo foobar,foo2 foobar2...) +! foo:taxmode = one of [cycle, extend, limit] +! foo:tintalgo = one of [lower,upper,nearest,linear,coszen] +! foo:readmode = single (only suported mode right now) +! foo:mapalgo = one of [bilinear,redist,nn,consf,consd,none] +! foo:dtlimit = real (1.5 is default) +! foo:year_first = integer +! foo:year_last = integer +! foo:year_align = integer +! foo:vectors = one of [none,u:v] +! foo:lev_dimname: = one of [null,name of level dimenion name] +! foo:offset = integer +! As an example: +! foo:year_first = 1950 +! would change the stream year_first stream_entry to 1950 for the foo stream block +!------------------------------------------------------------------------ +presaero.SSP3-7.0:datafiles = $DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/aero/aerodep_clm_SSP370_b.e21.BWSSP370cmip6.f09_g17.CMIP6-SSP3-7.0-WACCM.001_2018-2030_monthly_0.9x1.25_c210826.nc +presaero.SSP3-7.0:year_first=2018 +presaero.SSP3-7.0:year_last=2022 +presaero.SSP3-7.0:year_align=2018 +presaero.SSP3-7.0:dtlimit=30 + +presndep.SSP3-7.0:datafiles = $DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP3-7.0-WACCM_2018-2030_monthly_c210826.nc +presndep.SSP3-7.0:year_first=2018 +presndep.SSP3-7.0:year_last=2022 +presndep.SSP3-7.0:year_align=2018 +presndep.SSP3-7.0:dtlimit=30 + +preso3.SSP3-7.0:year_first=2018 +preso3.SSP3-7.0:year_last=2022 +preso3.SSP3-7.0:year_align=2018 +preso3.SSP3-7.0:dtlimit=30 + diff --git a/cime_config/usermods_dirs/_includes/output_base/user_nl_clm b/cime_config/usermods_dirs/_includes/output_base/user_nl_clm index d46ce25859..509e0436d3 100644 --- a/cime_config/usermods_dirs/_includes/output_base/user_nl_clm +++ b/cime_config/usermods_dirs/_includes/output_base/user_nl_clm @@ -9,11 +9,10 @@ ! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting ! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting ! Set co2_ppmv with CCSM_CO2_PPMV option -! Set dtime with L_NCPL option ! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options ! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases ! (includes $inst_string for multi-ensemble cases) -! Set maxpatch_glcmec with GLC_NEC option +! Set maxpatch_glc with GLC_NEC option ! Set glc_do_dynglacier with GLC_TWO_WAY_COUPLING env variable !---------------------------------------------------------------------------------- @@ -29,7 +28,7 @@ hist_dov2xy(1) = .true. hist_nhtfrq(1) = 0 hist_type1d_pertape(1) = ' ' hist_fexcl1 += 'PCT_GLC_MEC','PCT_NAT_PFT' -hist_fincl1 += 'EFLX_LH_TOT_ICE', 'FIRE_ICE', 'FLDS_ICE', 'FSH_ICE', 'FSNO_ICE', 'FSR_ICE', 'QFLX_SUB_SNOW_ICE', 'QRUNOFF_ICE', 'QSNOFRZ_ICE', 'QSNOMELT_ICE', 'RAIN_ICE', 'SNOW_ICE', 'SNOWICE_ICE', 'SNOWLIQ_ICE', 'SNOTXMASS_ICE', 'TG_ICE', 'TOPO_COL_ICE', 'TSA_ICE', 'TSOI_ICE' +hist_fincl1 += 'EFLX_LH_TOT_ICE', 'FIRE_ICE', 'FLDS_ICE', 'FSH_ICE', 'FSNO_ICE', 'FSR_ICE', 'QFLX_SOLIDEVAP_FROM_TOP_LAYER_ICE', 'QRUNOFF_ICE', 'QSNOFRZ_ICE', 'QSNOMELT_ICE', 'RAIN_ICE', 'SNOW_ICE', 'SNOWICE_ICE', 'SNOWLIQ_ICE', 'SNOTXMASS_ICE', 'TG_ICE', 'TOPO_COL_ICE', 'TSA_ICE', 'TSOI_ICE' ! h1 stream (monthly average, finest sub-grid) ! Emon, Lmon diff --git a/cime_config/usermods_dirs/_includes/output_base_highfreq/user_nl_clm b/cime_config/usermods_dirs/_includes/output_base_highfreq/user_nl_clm index 0972d19bb5..0e1ceeb4a5 100644 --- a/cime_config/usermods_dirs/_includes/output_base_highfreq/user_nl_clm +++ b/cime_config/usermods_dirs/_includes/output_base_highfreq/user_nl_clm @@ -8,7 +8,7 @@ hist_mfilt(6) = 365 hist_dov2xy(6) = .true. hist_nhtfrq(6) = -24 hist_type1d_pertape(6) = ' ' -hist_fincl6 += 'SOILWATER_10CM', 'TOTSOILLIQ', 'TOTSOILICE', 'EFLX_LH_TOT', 'FSH', 'FGR12', 'FSM', 'QSNOEVAP', 'TLAI', 'QDRAI', 'QDRAI_PERCH', 'QOVER', 'QFLX_SUB_SNOW', 'FSA', 'FIRA', 'H2OSNO', 'SNOCAN', 'QSNOFRZ', 'QFLX_SNOW_DRAIN', 'SNOWDP', 'H2OSFC', 'TV', 'TG', 'TAUX', 'TAUY', 'QVEGT', 'TWS', 'H2OCAN', 'QVEGE', 'QSOIL', 'TSKIN', 'FSDS','FSNO','SNOFSRVD','SNOFSRVI','SNOFSRND','SNOFSRNI','FSDSVD','FSDSVI','FSDSND','FSDSNI','SNOWLIQ','SOILICE','SOILLIQ','QINTR','SNOBCMSL','TSOI','SNOTXMASS','SNOWICE','SNOWLIQ','QRUNOFF','RAIN','SNOW' +hist_fincl6 += 'SOILWATER_10CM', 'TOTSOILLIQ', 'TOTSOILICE', 'EFLX_LH_TOT', 'FSH', 'FGR12', 'FSM', 'QSNOEVAP', 'TLAI', 'QDRAI', 'QDRAI_PERCH', 'QOVER', 'QFLX_SOLIDEVAP_FROM_TOP_LAYER', 'FSA', 'FIRA', 'H2OSNO', 'SNOCAN', 'QSNOFRZ', 'QFLX_SNOW_DRAIN', 'SNOWDP', 'H2OSFC', 'TV', 'TG', 'TAUX', 'TAUY', 'QVEGT', 'TWS', 'H2OCAN', 'QVEGE', 'QSOIL', 'TSKIN', 'FSDS','FSNO','SNOFSRVD','SNOFSRVI','SNOFSRND','SNOFSRNI','FSDSVD','FSDSVI','FSDSND','FSDSNI','SNOWLIQ','SOILICE','SOILLIQ','QINTR','SNOBCMSL','TSOI','SNOTXMASS','SNOWICE','SNOWLIQ','QRUNOFF','RAIN','SNOW' ! h6 stream (daily average, landunit-level) ! Eday @@ -21,10 +21,10 @@ hist_fincl7 += 'TREFMXAV','TREFMNAV' ! h7 stream (3-hourly average, gridcell-level) ! 3hr, E3hr, CF3hr ! 3hr requires QRUNOFF for time mean, and SOILWATER_10CM, TSKIN for time point (I) -! CF3hr requires QFLX_SUB_SNOW for time point (I) +! CF3hr requires QFLX_SOLIDEVAP_FROM_TOP_LAYER for time point (I) hist_mfilt(8) = 2920 hist_dov2xy(8) = .true. hist_nhtfrq(8) = -3 hist_type1d_pertape(8) = ' ' -hist_fincl8 += 'TSA','RH2M','SOILWATER_10CM:I','FSH','EFLX_LH_TOT','FSDS','QRUNOFF','QFLX_SUB_SNOW:I','TSKIN:I' +hist_fincl8 += 'TSA','RH2M','SOILWATER_10CM:I','FSH','EFLX_LH_TOT','FSDS','QRUNOFF','QFLX_SOLIDEVAP_FROM_TOP_LAYER:I','TSKIN:I' diff --git a/cime_config/usermods_dirs/cmip6_waccm_deck/shell_commands b/cime_config/usermods_dirs/cmip6_waccm_deck/shell_commands new file mode 100755 index 0000000000..5b872fb7bc --- /dev/null +++ b/cime_config/usermods_dirs/cmip6_waccm_deck/shell_commands @@ -0,0 +1,3 @@ +#!/bin/bash +# Turn ignore-warnings on, so won't abort on missing ndep file, as WACCM should provide it +./xmlchange --append CLM_BLDNML_OPTS="--ignore_warnings" diff --git a/cime_config/usermods_dirs/cmip6_waccm_nociso_deck/README b/cime_config/usermods_dirs/cmip6_waccm_nociso_deck/README new file mode 100644 index 0000000000..79cbbeefe8 --- /dev/null +++ b/cime_config/usermods_dirs/cmip6_waccm_nociso_deck/README @@ -0,0 +1,17 @@ +WACCM DECK runs should be configured similarly to CAM DECK runs, but +without virtual elevation classes over Antarctica. At 2-degree we ++also decided to NOT turn on Carbon isotopes. + +(2018-10-22) In discussions between Bill Sacks and Bill Lipscomb: We +have decided NOT to turn on virtual Antarctica columns for any of the +WACCM simulations (DECK or ScenarioMIP): these weren't turned on in the +WACCM PI-Control or historical runs (either by accident or +intentionally: I'm not sure which, and can't find emails describing this +decision). Since this setting needs to be compatible with the REFCASE, +it's simpler if we keep it consistent for all WACCM runs, and there +seems to be only limited value in turning on virtual Antarctica columns +in the remaining WACCM runs (1% CO2, 4xCO2 and ScenarioMIP) when they +weren't on in the WACCM PI-Control or Historical runs. And Mike Mills +says that there won't be any more sharing of initial conditions between +CAM and WACCM CMIP6 runs, so it's fine if the two sets remain different +in this respect. diff --git a/cime_config/usermods_dirs/cmip6_waccm_nociso_deck/include_user_mods b/cime_config/usermods_dirs/cmip6_waccm_nociso_deck/include_user_mods new file mode 100644 index 0000000000..64c3f6f670 --- /dev/null +++ b/cime_config/usermods_dirs/cmip6_waccm_nociso_deck/include_user_mods @@ -0,0 +1,2 @@ +../_includes/cmip6_glaciers_cplhist +../output_crop diff --git a/cime_config/usermods_dirs/fates_sp/user_nl_clm b/cime_config/usermods_dirs/fates_sp/user_nl_clm new file mode 100644 index 0000000000..0df139403d --- /dev/null +++ b/cime_config/usermods_dirs/fates_sp/user_nl_clm @@ -0,0 +1,40 @@ +! Turn FATES-SP mode on +use_fates_sp = .true. +! Some settings that will be set when FATES-SP mode is turned on +soil_decomp_method = 'None' +use_lch4 = .false. +fates_spitfire_mode = 0 +use_fates_fixed_biogeog = .true. +use_fates_nocomp = .true. +hist_ndens = 1 +! Turn off a list of fields that are not needed for FATES-SP mode +hist_fexcl1 = 'FATES_TRIMMING', 'FATES_COLD_STATUS', 'FATES_GDD', 'FATES_NCHILLDAYS', + 'FATES_NCOLDDAYS', 'FATES_DAYSINCE_COLDLEAFOFF', 'FATES_DAYSINCE_COLDLEAFON', + 'FATES_CANOPY_SPREAD', 'FATES_VEGC_PF', + 'FATES_STOREC_PF', 'FATES_RECRUITMENT_PF', 'FATES_MORTALITY_PF', 'FATES_PATCHAREA_AP', 'FATES_LAI_AP', + 'FATES_CANOPYAREA_AP', 'FATES_NESTEROV_INDEX', 'FATES_IGNITIONS', 'FATES_FDI', 'FATES_ROS', 'FATES_EFFECT_WSPEED', + 'FATES_FUELCONSUMED', 'FATES_FIRE_INTENSITY', 'FATES_FIRE_INTENSITY_BURNFRAC', 'FATES_BURNFRAC', 'FATES_FUEL_MEF', + 'FATES_FUEL_BULKD', 'FATES_FUEL_EFF_MOIST', 'FATES_FUEL_SAV', 'FATES_FUEL_AMOUNT', 'FATES_FRAGMENTATION_SCALER_SL', + 'FATES_FUEL_MOISTURE_FC', 'FATES_FUEL_AMOUNT_FC', 'FATES_BURNFRAC_AP', 'FATES_FIRE_INTENSITY_BURNFRAC_AP', + 'FATES_FUEL_AMOUNT_AP', 'FATES_FUEL_BURNT_BURNFRAC_FC', 'FATES_LITTER_IN', 'FATES_LITTER_OUT', 'FATES_SEED_BANK', + 'FATES_SEEDS_IN', 'FATES_LITTER_IN_EL', 'FATES_LITTER_OUT_EL', 'FATES_SEED_BANK_EL', 'FATES_SEEDS_IN_LOCAL_EL', + 'FATES_SEEDS_IN_EXTERN_EL', 'FATES_SEED_GERM_EL', 'FATES_SEED_DECAY_EL', 'FATES_STOREC', 'FATES_VEGC', + 'FATES_SAPWOODC', 'FATES_FROOTC', 'FATES_REPROC', 'FATES_STRUCTC', 'FATES_NONSTRUCTC', + 'FATES_VEGC_ABOVEGROUND', 'FATES_CANOPY_VEGC', 'FATES_USTORY_VEGC', 'FATES_PRIMARY_PATCHFUSION_ERR', + 'FATES_DISTURBANCE_RATE_P2P', 'FATES_DISTURBANCE_RATE_P2S', 'FATES_DISTURBANCE_RATE_S2S', + 'FATES_DISTURBANCE_RATE_FIRE', 'FATES_DISTURBANCE_RATE_LOGGING', 'FATES_DISTURBANCE_RATE_TREEFALL', + 'FATES_DISTURBANCE_RATE_POTENTIAL', 'FATES_HARVEST_CARBON_FLUX', 'FATES_GPP_CANOPY', 'FATES_AUTORESP_CANOPY', + 'FATES_GPP_USTORY', 'FATES_AUTORESP_USTORY', 'FATES_CROWNAREA_CL', 'FATES_DEMOTION_CARBONFLUX', + 'FATES_PROMOTION_CARBONFLUX', 'FATES_MORTALITY_CFLUX_CANOPY', 'FATES_MORTALITY_CFLUX_USTORY', + 'FATES_DDBH_CANOPY_SZ', 'FATES_DDBH_USTORY_SZ', 'FATES_BASALAREA_SZ', + 'FATES_VEGC_ABOVEGROUND_SZ', 'FATES_LAI_CANOPY_SZ', 'FATES_MORTALITY_CANOPY_SZ', 'FATES_NPLANT_USTORY_SZ', + 'FATES_LAI_USTORY_SZ', 'FATES_NPLANT_SZ', 'FATES_NPLANT_AC', 'FATES_MORTALITY_BACKGROUND_SZ', + 'FATES_MORTALITY_HYDRAULIC_SZ', 'FATES_MORTALITY_CSTARV_SZ', 'FATES_MORTALITY_IMPACT_SZ', + 'FATES_MORTALITY_FIRE_SZ', 'FATES_MORTALITY_TERMINATION_SZ', 'FATES_MORTALITY_LOGGING_SZ', + 'FATES_MORTALITY_FREEZING_SZ', 'FATES_MORTALITY_SENESCENCE_SZ', 'FATES_MORTALITY_AGESCEN_SZ', + 'FATES_MORTALITY_AGESCEN_AC', 'FATES_MORTALITY_USTORY_SZ', 'FATES_FROOTMAINTAR', 'FATES_CROOTMAINTAR', + 'FATES_LSTEMMAINTAR', 'FATES_NEP', 'FATES_HET_RESP', 'FATES_FIRE_CLOSS', 'FATES_FIRE_FLUX_EL', + 'FATES_LITTER_AG_FINE_EL', 'FATES_LITTER_BG_FINE_EL', 'FATES_LITTER_BG_CWD_EL', 'FATES_LITTER_AG_CWD_EL', + 'FATES_LITTER_CWD_ELDC', 'FATES_LEAF_ALLOC', 'FATES_SEED_ALLOC', 'FATES_STEM_ALLOC', 'FATES_FROOT_ALLOC', + 'FATES_CROOT_ALLOC', 'FATES_STORE_ALLOC', 'FATES_AUTORESP', 'FATES_GROWTH_RESP', + 'FATES_LEAFMAINTAR', 'FATES_MAINT_RESP', 'FATES_NPP', 'FATES_NPP_PF' diff --git a/cime_config/usermods_dirs/lilac/README b/cime_config/usermods_dirs/lilac/README new file mode 100644 index 0000000000..c87aee3af4 --- /dev/null +++ b/cime_config/usermods_dirs/lilac/README @@ -0,0 +1,2 @@ +The user_nl_ctsm file in this directory is copied to the runtime_inputs +directory when setting up a LILAC build using build_ctsm. diff --git a/cime_config/usermods_dirs/lilac/user_nl_ctsm b/cime_config/usermods_dirs/lilac/user_nl_ctsm new file mode 100644 index 0000000000..5ff40dbff8 --- /dev/null +++ b/cime_config/usermods_dirs/lilac/user_nl_ctsm @@ -0,0 +1,17 @@ +!---------------------------------------------------------------------------------- +! Users should add all user specific namelist changes below in the form of +! namelist_var = new_namelist_value +! +! (Exceptions are settings that are set in ctsm.cfg.) +!---------------------------------------------------------------------------------- + +! The following hist options set up three output streams from CTSM. The first (h0 files) +! is monthly and contains all of CTSM's default output variables. The second (h1 files) is +! daily, with a small list of fields given by hist_fincl2. The third (h2 files) is hourly, +! with a small list of fields given by hist_fincl3. You can change these settings however +! you'd like. +hist_mfilt = 1,1,24 +hist_nhtfrq = 0,-24,-1 +hist_fincl2 = 'SNO_LIQH2O','SNO_ICE','SNOTTOPL','SNOW_DEPTH','TSA','RAIN','SNOW','Q2M','RH2M','FSH','FCTR','FCEV','FGEV','FSDS','FSR','FIRA','BTRAN','SOILWATER_10CM','TSOI_10CM','H2OSOI','TSOI' +hist_fincl3 = 'SNO_LIQH2O','SNO_ICE','SNOTTOPL','SNOW_DEPTH','TSA','RAIN','SNOW','Q2M','RH2M','FSH','FCTR','FCEV','FGEV','FSDS','FSR','FIRA','BTRAN','SOILWATER_10CM','TSOI_10CM','H2OSOI','TSOI' + diff --git a/cime_config/usermods_dirs/newton_krylov_spinup/README b/cime_config/usermods_dirs/newton_krylov_spinup/README new file mode 100644 index 0000000000..037709ee7d --- /dev/null +++ b/cime_config/usermods_dirs/newton_krylov_spinup/README @@ -0,0 +1,4 @@ +user_nl_clm contains this line: +hist_nhtfrq = 0,-175200 +0 means monthly history frequency and +-175200 means 20 years history frequency (indicated in hours) diff --git a/cime_config/usermods_dirs/newton_krylov_spinup/shell_commands b/cime_config/usermods_dirs/newton_krylov_spinup/shell_commands new file mode 100644 index 0000000000..a66f52f6fd --- /dev/null +++ b/cime_config/usermods_dirs/newton_krylov_spinup/shell_commands @@ -0,0 +1,3 @@ +#!/bin/bash +./xmlchange CLM_FORCE_COLDSTART="on" + diff --git a/cime_config/usermods_dirs/newton_krylov_spinup/user_nl_clm b/cime_config/usermods_dirs/newton_krylov_spinup/user_nl_clm new file mode 100644 index 0000000000..75513be601 --- /dev/null +++ b/cime_config/usermods_dirs/newton_krylov_spinup/user_nl_clm @@ -0,0 +1,15 @@ +hist_dov2xy = .true.,.false. +hist_nhtfrq = 0,-175200 +hist_mfilt = 1,1 +hist_fincl2 = 'FPI_vr', 'K_SOM_PAS', 'K_SOM_SLO', 'K_SOM_ACT', + 'K_CWD', 'K_LIT_CEL', 'K_LIT_LIG', 'K_LIT_MET', + 'CWD_PATHFRAC_L2_vr', 'CWD_RESP_FRAC_L2_vr', + 'CWD_PATHFRAC_L3_vr', 'CWD_RESP_FRAC_L3_vr', + 'L1_PATHFRAC_S1_vr', 'L1_RESP_FRAC_S1_vr', + 'L2_PATHFRAC_S1_vr', 'L2_RESP_FRAC_S1_vr', + 'L3_PATHFRAC_S2_vr', 'L3_RESP_FRAC_S2_vr', + 'S1_PATHFRAC_S2_vr', 'S1_RESP_FRAC_S2_vr' + 'S1_PATHFRAC_S3_vr', 'S1_RESP_FRAC_S3_vr' + 'S2_PATHFRAC_S1_vr', 'S2_RESP_FRAC_S1_vr' + 'S2_PATHFRAC_S3_vr', 'S2_RESP_FRAC_S3_vr' + 'S3_PATHFRAC_S1_vr', 'S3_RESP_FRAC_S1_vr' diff --git a/cime_config/usermods_dirs/output_bgc/user_nl_clm b/cime_config/usermods_dirs/output_bgc/user_nl_clm index 0c0bcd52ff..a7c5d098db 100644 --- a/cime_config/usermods_dirs/output_bgc/user_nl_clm +++ b/cime_config/usermods_dirs/output_bgc/user_nl_clm @@ -3,8 +3,8 @@ !---------------------------------------------------------------------------------- ! h0 stream (monthly average, gridcell-level) -hist_fexcl1 += 'SOIL1C_vr', 'SOIL1N_vr', 'SOIL2C_vr', 'SOIL2N_vr', 'SOIL3C_vr', 'SOIL3N_vr', 'SOILC_vr','SOILN_vr', 'CWDC_vr', 'LITR1C_vr', 'LITR2C_vr', 'LITR3C_vr', 'LITR1N_vr', 'LITR2N_vr', 'LITR3N_vr', 'CWDN_vr', 'SMIN_NO3_vr', 'CONC_O2_UNSAT', 'CONC_O2_SAT','SMIN_NH4_vr','SMINN_vr' -hist_fincl1 += 'LEAFC_TO_LITTER', 'FROOTC_TO_LITTER','LITR1C_TO_SOIL1C','LITR1N_TO_SOIL1N','LITR2C_TO_SOIL1C', 'LITR2N_TO_SOIL1N','LITR3C_TO_SOIL2C','LITR3N_TO_SOIL2N','DWT_WOOD_PRODUCTC_GAIN_PATCH' +hist_fexcl1 += 'SOM_ACT_C_vr', 'SOM_ACT_N_vr', 'SOM_SLO_C_vr', 'SOM_SLO_N_vr', 'SOM_PAS_C_vr', 'SOM_PAS_N_vr', 'SOILC_vr','SOILN_vr', 'CWD_C_vr', 'LIT_MET_C_vr', 'LIT_CEL_C_vr', 'LIT_LIG_C_vr', 'LIT_MET_N_vr', 'LIT_CEL_N_vr', 'LIT_LIG_N_vr', 'CWD_N_vr', 'SMIN_NO3_vr', 'CONC_O2_UNSAT', 'CONC_O2_SAT','SMIN_NH4_vr','SMINN_vr' +hist_fincl1 += 'LEAFC_TO_LITTER', 'FROOTC_TO_LITTER','LIT_MET_C_TO_SOM_ACT_C','LIT_MET_N_TO_SOM_ACT_N','LIT_CEL_C_TO_SOM_ACT_C', 'LIT_CEL_N_TO_SOM_ACT_N','LIT_LIG_C_TO_SOM_SLO_C','LIT_LIG_N_TO_SOM_SLO_N','DWT_WOOD_PRODUCTC_GAIN_PATCH' ! h1 stream (monthly average, finest sub-grid) hist_fincl2 += 'GPP', 'NPP', 'AGNPP', 'TOTVEGC', 'NPP_NUPTAKE', 'AR', 'HR', 'HTOP' @@ -14,7 +14,7 @@ hist_fincl2 += 'GPP', 'NPP', 'AGNPP', 'TOTVEGC', 'NPP_NUPTAKE', 'AR', 'HR', 'HTO hist_fincl3 += 'GPP', 'NPP', 'AR', 'HR', 'DWT_CONV_CFLUX_PATCH', 'WOOD_HARVESTC', 'DWT_WOOD_PRODUCTC_GAIN_PATCH', 'SLASH_HARVESTC', 'COL_FIRE_CLOSS', 'FROOTC:I', 'HTOP' ! h3 stream (yearly average, gridcell-level) -hist_fincl4 += 'SOILC_vr', 'SOILN_vr', 'CWDC_vr', 'LITR1C_vr', 'LITR2C_vr', 'LITR3C_vr', 'LITR1N_vr', 'LITR2N_vr', 'LITR3N_vr','CWDN_vr', 'TOTLITC:I', 'TOT_WOODPRODC:I', 'TOTSOMC:I','TOTVEGC:I' +hist_fincl4 += 'SOILC_vr', 'SOILN_vr', 'CWD_C_vr', 'LIT_MET_C_vr', 'LIT_CEL_C_vr', 'LIT_LIG_C_vr', 'LIT_MET_N_vr', 'LIT_CEL_N_vr', 'LIT_LIG_N_vr','CWD_N_vr', 'TOTLITC:I', 'TOT_WOODPRODC:I', 'TOTSOMC:I','TOTVEGC:I' ! h4 stream (yearly average, landunit-level) hist_fincl5 += 'TOTSOMC:I', 'TOTSOMC_1m:I', 'TOTECOSYSC:I', 'TOTVEGC:I', 'WOODC:I', 'TOTLITC:I', 'LIVECROOTC:I', 'DEADCROOTC:I', 'FROOTC:I' diff --git a/cime_config/usermods_dirs/output_sp_exice/include_user_mods b/cime_config/usermods_dirs/output_sp_exice/include_user_mods new file mode 100644 index 0000000000..786fa907a9 --- /dev/null +++ b/cime_config/usermods_dirs/output_sp_exice/include_user_mods @@ -0,0 +1,2 @@ +../_includes/output_base +../output_sp diff --git a/cime_config/usermods_dirs/output_sp_exice/user_nl_clm b/cime_config/usermods_dirs/output_sp_exice/user_nl_clm new file mode 100644 index 0000000000..48e680df67 --- /dev/null +++ b/cime_config/usermods_dirs/output_sp_exice/user_nl_clm @@ -0,0 +1,8 @@ +!---------------------------------------------------------------------------------- +! Settings from output_sp_exice +!---------------------------------------------------------------------------------- + +! h3 stream (yearly average, gridcell-level) +! Eyr +hist_fincl4 += 'EXCESS_ICE' + diff --git a/doc/.ChangeLog_template b/doc/.ChangeLog_template index f5474f33a8..9f4f64c587 100644 --- a/doc/.ChangeLog_template +++ b/doc/.ChangeLog_template @@ -1,26 +1,15 @@ =============================================================== -Tag name: -Originator(s): -Date: +Tag name: +Originator(s): +Date: One-line Summary: -Purpose of changes ------------------- +Purpose and description of changes +---------------------------------- [Fill this in with details] -Bugs fixed or introduced ------------------------- - -Issues fixed (include CTSM Issue #): [If none, remove this line] -CIME Issues fixed (include issue #): [If none, remove this line] - -Known bugs introduced in this tag (include github issue ID): [If none, remove this line] - -Known bugs found since the previous tag (include github issue ID): [If none, remove this line] - - Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -29,14 +18,26 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 + +Bugs fixed or introduced +------------------------ +[Remove any lines that don't apply. Remove entire section if nothing applies.] + +CTSM issues fixed (include CTSM Issue #): + +Known bugs introduced in this tag (include issue #): + Notes of particular relevance for users --------------------------------------- +[Remove any lines that don't apply. Remove entire section if nothing applies.] Caveats for users (e.g., need to interpolate initial conditions): @@ -46,55 +47,85 @@ 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: [For timing changes, can check PFS test(s) in the test suite] +Substantial timing or memory changes: +[e.g., check PFS test in the test suite and look at timings, if you +expect possible significant timing changes] + -Notes of particular relevance for developers: (including Code reviews and testing) +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: -Code reviewed by: +Testing summary: +---------------- +[... Remove before making master tag. -CTSM testing: +Nearly all CTSM tags should undergo 'regular' (aux_clm) testing. +However, it occasionally makes sense to do more or less system testing; +here is guidance on different available levels of system testing: + a) no system testing (for use when the only changes are ones that + have absolutely no impact on system runs; this + includes documentation-only tags, tags that + just change the tools or some python code that + does not impact system runs, etc.) + b) minimal (for use in rare cases where only a small change with + known behavior is added ... eg. a minor bug fix. This + might be to just run the "short" test list, or to run + a single test. Whatever makes sense for the particular case.) + c) python only (for use where the only changes are in the python directory: + run the python testing listed below) + d) regular (regular tests on normal machines if CTSM source is modified) + e) release (regular tests plus the fates, ctsm_sci, mosart and rtm test lists + and normally all of the ancillary tests (build-namelist, python, ptclm, etc.) + would be run as well) -[... Remove before making master tag. Available test levels: +In addition, various other tests of the tools, python and perl +infrastructure should be run when appropriate, as described below. - a) regular (must be run before handing off a tag to SEs and must be run - before committing a tag) - b) build_namelist (if namelists and/or build_system changed)) - c) tools (only if tools are modified and no CTSM source is modified) - d) short (for use during development and in rare cases where only a small - change with known behavior is added ... eg. a minor bug fix) - e) doc (no source testing required) +...] -... ] +[Remove any lines that don't apply.] - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - build-namelist tests: + build-namelist tests (if CLMBuildNamelist.pm has changed): - cheyenne - + cheyenne - - tools-tests (test/tools): + tools-tests (test/tools) (if tools have been changed): - cheyenne - + cheyenne - - PTCLM testing (tools/shared/PTCLM/test): + python testing (if python code has changed; see instructions in python/README.md; document testing done): - cheyenne - + (any machine) - - python testing (see instructions in python/README.md; document testing done): + [If python code has changed and you are NOT running aux_clm (e.g., because the only changes are in python + code) then also run the clm_pymods test suite; this is a small subset of aux_clm that runs the system + tests impacted by python changes. The best way to do this, if you expect no changes from the last tag in + either model output or namelists, is: create sym links pointing to the last tag's baseline directory, + named with the upcoming tag; then run the clm_pymods test suite comparing against these baselines but NOT + doing their own baseline generation. If you are already running the full aux_clm then you do NOT need to + separately run the clm_pymods test suite, and you can remove the following line.] - (any machine) - + clm_pymods test suite on cheyenne - - regular tests (aux_clm): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - cheyenne ---- - izumi ------- + cheyenne ---- + izumi ------- + + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + cheyenne ---- + izumi ------- + + any other testing (give details below): If the tag used for baseline comparisons was NOT the previous tag, note that here: @@ -104,26 +135,30 @@ Answer changes Changes answers relative to baseline: - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): + [ If a tag changes answers relative to baseline comparison the + following should be filled in (otherwise remove this section). + And always remove these three lines and parts that don't apply. ] Summarize any changes to answers, i.e., - what code configurations: - what platforms/compilers: - - nature of change (roundoff; larger than roundoff/same climate; new climate): + - nature of change (roundoff; larger than roundoff/same climate; new climate): If bitwise differences were observed, how did you show they were no worse - than roundoff? + than roundoff? Roundoff differences means one or more lines of code change results + only by roundoff level (because order of operation changes for example). Roundoff + changes to state fields usually grow to greater than roundoff as the simulation progresses. If this tag changes climate describe the run(s) done to evaluate the new climate (put details of the simulations in the experiment database) - - casename: + - casename: URL for LMWG diagnostics output used to validate new climate: - -Detailed list of changes ------------------------- + +Other details +------------- +[Remove any lines that don't apply. Remove entire section if nothing applies.] List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): diff --git a/doc/.release-ChangeLog_template b/doc/.release-ChangeLog_template new file mode 100644 index 0000000000..7f818c7c25 --- /dev/null +++ b/doc/.release-ChangeLog_template @@ -0,0 +1,102 @@ +=============================================================== +Tag name: +Originator(s): +Date: +One-line Summary: + +Purpose of this version: +------------------------ + +[Fill this in with details] + + +CTSM Master Tag This Corresponds To: + +Summary of changes: +------------------- + +CTSM issues fixed (include CTSM Issue #): [If none, remove this line] + +Externals issues fixed (include issue #): [If none, remove this line] + +Science changes since: + +Software changes since: + +Changes to User Interface since: + +Testing: +-------- + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - + + unit-tests (components/clm/src): + + cheyenne - + izumi ---- + + tools-tests (components/clm/test/tools): + + cheyenne - + izumi ---- + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + cheyenne - + izumi ---- + + regular tests (aux_clm): + + cheyenne_intel ---- + cheyenne_gnu ------ + izumi_nag --------- + izumi_pgi --------- + izumi_intel ------- + + regular tests (prealpha): + + cheyenne_intel - + cheyenne_gnu --- + izumi_nag ------ + + regular tests (prebeta): + + cheyenne_intel - + cheyenne_gnu --- + izumi_nag ------ + +Summary of Answer changes: +------------------------- + +If the tag used for baseline comparisons was NOT the previous tag, note that here: previous + +Changes answers relative to baseline: + + If a tag changes answers relative to baseline comparison the + following should be filled in (otherwise remove this section): + + Summarize any changes to answers, i.e., + - what code configurations: + - what platforms/compilers: + - nature of change (roundoff; larger than roundoff/same climate; new climate): + + URL for LMWG diagnostics output for new climate: + + Will new REFCASES need to be made for cesm and/or CAM?: No + (This will likely be true if the LII tests failed) + +Detailed list of changes: +------------------------ + +Externals being used: + +CTSM Tag versions pulled over from master development branch: + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + +=============================================================== diff --git a/doc/ChangeLog b/doc/ChangeLog index 77b5e31adc..8e8a99b868 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,20 +1,13 @@ =============================================================== -Tag name: ctsm1.0.dev080 -Originator(s): sacks (Bill Sacks) -Date: Mon Dec 2 12:23:22 MST 2019 -One-line Summary: Update externals, minor fixes to work with latest cime, get nuopc cap working - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev142 +Originator(s): samrabin (Sam Rabin, UCAR/TSS, samrabin@ucar.edu) +Date: Tue Sep 19 11:30:22 MDT 2023 +One-line Summary: Merge 5 bit-for-bit pull requests -(1) Update to latest version of externals. This includes a significant - cime update. +Purpose and description of changes +---------------------------------- -(2) Minor fixes to get things working with the latest version of cime. - -(3) Fix from Mariana Vertenstein to get NUOPC cap working, fixes to - externals cfg files to allow running NUOPC cases out of the box, and - add a NUOPC test. +Merge 5 bit-for-bit pull requests; see "Other details." Significant changes to scientifically-supported configurations @@ -23,7 +16,7 @@ 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.] +[ ] clm5_1 [ ] clm5_0 @@ -31,126 +24,67 @@ Does this tag change answers significantly for any of the following physics conf [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none - -Changes made to namelist defaults (e.g., changed parameter values): none -Changes to the datasets (e.g., parameter, surface or initial files): -CIME update brings in some changes, e.g., in mapping files; otherwise, none. +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): +* Add unit test for making fsurdat with all crops everywhere (#2079) +* Rework master_list_(no)?fates.rst? (#2083) +* conda run -n can fail if a conda environment is already active (#2109) +* conda fails to load for SystemTests (#2111) -Substantial timing or memory changes: not investigated -Notes of particular relevance for developers: (including Code reviews and testing) +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 - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - Changes to tests or testing: -- Added NUOPC test: - SMS_D_Vnuopc.f10_f10_musgs.I2000Clm50SpRsGs.cheyenne_intel.clm-default - -Code reviewed by: self - - -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: - - cheyenne - not run - - tools-tests (test/tools): - - cheyenne - not run - - PTCLM testing (tools/shared/PTCLM/test): - - cheyenne - not run - - python testing (see instructions in python/README.md; document testing done): - - (any machine) - not run - - regular tests (aux_clm): - - cheyenne ---- ok - izumi ------- ok - - ok means tests passed, some baseline comparisons failed as expected - - Note: Most testing was done on ad1ad752; then, from the latest - version, I ran a 2-test test list of: - - SMS_D_Vnuopc.f10_f10_musgs.I2000Clm50SpRsGs.cheyenne_intel.clm-default - - SMS_D.f10_f10_musgs.I2000Clm50SpRsGs.cheyenne_intel.clm-default - - In addition to verifying that the above tests passed, I also - inspected the sharedlib build area to verify that separate builds of - the clm library were done for mct and nuopc. - -If the tag used for baseline comparisons was NOT the previous tag, note that here: -- cheyenne tests compared against ctsm1.0.dev078, since cheyenne testing -was not run on ctsm1.0.dev079. +* FSURDATMODIFYCTSM system test should now work for everyone. -Answer changes --------------- - -Changes answers relative to baseline: YES +Testing summary: +---------------- - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - Summarize any changes to answers, i.e., - - what code configurations: Cases at f10 resolution - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Larger than roundoff, but probably same climate + build-namelist tests (if CLMBuildNamelist.pm has changed): - Answer changes are due to https://github.com/esmci/cime/pull/3186 + cheyenne - PASS - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A + python testing (if python code has changed; see instructions in python/README.md; document testing done): - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A + cheyenne - PASS + clm_pymods test suite on cheyenne - PASS - URL for LMWG diagnostics output used to validate new climate: N/A - + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Detailed list of changes ------------------------- + cheyenne ---- OK + izumi ------- OK -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -- cime: branch_tags/cime5.8.3_chint17-05 -> cime5.8.15 -- rtm: rtm1_0_68 -> rtm1_0_70 -- mosart: mosart1_0_34 -> mosart1_0_35 -- cmeps: 471ac52 -> 181ff1ed9dfb279e619e8a2173f43baf7bf1dce3 - Also, note that cmeps is now checked out automatically +Other details +------------- Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/CTSM/pull/845 +* Add system and unit tests for making fsurdat with all crops everywhere (#2081) +* Rework master_list* files etc. (#2087) +* Fixes to methane Tech Note (#2091) +* Add is_doy_in_interval() function (#2158) +* Avoid using subprocess.run() in FSURDATMODIFYCTSM (#2125) =============================================================== =============================================================== -Tag name: ctsm1.0.dev079 -Originator(s): sacks (Bill Sacks) -Date: Mon Nov 4 14:41:41 MST 2019 -One-line Summary: Change a few uses of shr_kind +Tag name: ctsm5.1.dev141 +Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310) +Date: Wed Sep 13 13:58:04 MDT 2023 +One-line Summary: Change small snocan to zero -Purpose of changes ------------------- +Purpose and description of changes +---------------------------------- + + Issues #2041 and #2048 discuss and resolve a test failure in the ctsm5.2 + branch. The failure goes away when we reset small snocan to zero. -Change a few uses of shr_kind to work with latest cime. These changes -are from Mariana Vertenstein. + Bill Sacks recommended merging this change in ctsm5.1 and then updating + the ctsm5.2 branch to the latest ctsm5.1. Significant changes to scientifically-supported configurations @@ -161,122 +95,135 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none -Changes made to namelist defaults (e.g., changed parameter values): none +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): + Fixes #2041 + Fixes #2048 -Changes to the datasets (e.g., parameter, surface or initial files): none -Substantial timing or memory changes: none +Testing summary: +---------------- -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Changes to tests or testing: none + cheyenne ---- OK + izumi ------- OK -Code reviewed by: Bill Sacks +Answer changes +-------------- -CTSM testing: +Changes answers relative to baseline: + Yes - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + Summarize any changes to answers, i.e., + - what code configurations: All + - what platforms/compilers: All + - nature of change: roundoff - build-namelist tests: + The answer changes are expected to be roundoff-level because the code change + just truncates roundoff-level greater-than-zero states to exactly zero for + snocan that most likely needed to be zero anyway. - cheyenne - not run + The answer changes grow to greater than roundoff, but the + cprnc.out file from a 20-year izumi test-suite case does not contain + differences of concerning magnitude. - tools-tests (test/tools): +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/2053 - cheyenne - not run +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev140 +Originator(s): afoster (Adrianna Foster) +Date: Tue Sep 12 14:47:06 MDT 2023 +One-line Summary: add lai_streams capability for FATES - PTCLM testing (tools/shared/PTCLM/test): +Purpose and description of changes +---------------------------------- - cheyenne - not run +Removed checks in clm_driver and CLMBuildNamelist.pm so that now FATES can run when use_lai_streams=.true. - python testing (see instructions in python/README.md; document testing done): +I also had to modify the init in cpl/share_esmf/laiStreamMod to allocate the g_to_ig array in the lai_init method (rather than in the lai_advance method. This was required because SatellitePhenology is called in clim_initializedMod in FATES cases (here). This happens before lai_advance is ever called so at that point the g_to_ig array was not yet allocated. Moving the allocation/initialization to the lai_init method fixes this. - (any machine) - not run +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - regular tests (aux_clm): +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.) - cheyenne ---- NOT RUN! - izumi ------- pass -If the tag used for baseline comparisons was NOT the previous tag, note that here: +[ ] clm5_1 +[ ] clm5_0 -Answer changes --------------- +[ ] ctsm5_0-nwp -Changes answers relative to baseline: NO +[ ] clm4_5 -Detailed list of changes +Bugs fixed or introduced ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +CTSM issues fixed (include CTSM Issue #): #1722 - Should be able to use lai streams with FATES-SP mode -Pull Requests that document the changes (include PR ids): none +Notes of particular relevance for developers: +--------------------------------------------- -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev078 -Originator(s): oleson (Keith Oleson) -Date: Thu Oct 31 12:30:00 MDT 2019 -One-line Summary: Fix rootr calculation with use_hydrstress true +build-namelist tests (if CLMBuildNamelist.pm has changed): added tests to make sure use_lai_streams failed correctly -Purpose of changes ------------------- +Changes to tests or testing: Added a test for lai_streams with FATES -In cases with use_hydrstress=.true., both rootr_patch and rootr_col had -problems. This affected the diagnostic fields ROOTR and ROOTR_COLUMN, -and (in BGC cases) fed back on other parts of the system via affecting -the methane code. See https://github.com/ESCOMP/CTSM/issues/812 for more -details. +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -This tag fixes this issue via these specific changes: + cheyenne ---- OK + izumi ------- OK -1. Calculate btran in SoilMoistStressMod.F90 regardless of - use_hydrstress + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + cheyenne ---- OK + izumi ------- OK -2. Comment on the applicability of this calculation and that of rootr in - SoilMoistStressMod.F90 -3. Add the following comment to uses of rootr and rootr_col throughout - the code: "SMS method only" +Answer changes +-------------- -4. Allow ROOTR_COL history field only if use_hydrstress = .false. +Changes answers relative to baseline: None -5. Remove the calculation of rootr_col in subroutine - Compute_EffecRootFrac_And_VertTranSink_HydStress within module - SoilWaterPlantSinkMod.F90 since that calculation is invalid for PHS. +Other details +------------- -6. Normalize root resistances for pervious road over nlevgrnd, not - nlevsoi +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): fates -Note that the rootr calculation is done using the non-PHS (i.e., SMS) -method. So rootr is not really consistent with PHS; this is something -that should probably be revisited later. +Pull Requests that document the changes (include PR ids): #2054 +(https://github.com/ESCOMP/ctsm/pull) +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev139 +Originator(s): slevis (Samuel Levis) +Date: Fri Aug 25 16:47:45 MDT 2023 +One-line Summary: Fix problems uncovered by nag -nan tests -Bugs fixed or introduced ------------------------- +Purpose and description of changes +---------------------------------- -Issues fixed (include CTSM Issue #): -- Fixes ESCOMP/ctsm#812 (Problems with rootr when use_hydrstress=.true.) + Fix problems uncovered by adding the -nan compilation flag for the Nag + compiler. Significant changes to scientifically-supported configurations @@ -287,167 +234,215 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): none +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): + Makes progress on issue #1994 (same title) -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none -Changes made to namelist defaults (e.g., changed parameter values): none +Testing summary: +---------------- -Changes to the datasets (e.g., parameter, surface or initial files): none + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -Substantial timing or memory changes: not checked; none expected + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + cheyenne ---- OK + izumi ------- PASS -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none -Changes to tests or testing: none +Answer changes +-------------- -Code reviewed by: Bill Sacks +Changes answers relative to baseline: No -CTSM testing: +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/2051 - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev138 +Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310) +Date: Fri Aug 25 14:44:22 MDT 2023 +One-line Summary: Refactor max_patch_per_col and maxsoil_patches loops - build-namelist tests: +Purpose and description of changes +---------------------------------- - cheyenne - not run +Refactor such loops for clearer and more efficient code, as recommended in +issue #2025. - tools-tests (test/tools): - cheyenne - not run +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - PTCLM testing (tools/shared/PTCLM/test): +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.) - cheyenne - not run + [Put an [X] in the box for any configuration with significant answer changes.] - python testing (see instructions in python/README.md; document testing done): +[ ] clm5_1 - (any machine) - not run +[ ] clm5_0 - regular tests (aux_clm): +[ ] ctsm5_0-nwp - cheyenne ---- ok - izumi ------- ok +[ ] clm4_5 - ok means tests pass, answers change as expected -If the tag used for baseline comparisons was NOT the previous tag, note that here: +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): +Fixes #2025 "Refactor loops that use max_patch_per_col?" + +Testing summary: +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK Answer changes -------------- +Changes answers relative to baseline: No -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): - Summarize any changes to answers, i.e., - - what code configurations: Clm50Bgc (cases with both use_hydrstress=.true. and methane active) - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - larger than roundoff / same climate +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/2056 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev137 +Originator(s): Ronny Meier, slevis (Samuel Levis,UCAR/TSS,303-665-1310) +Date: Tue Aug 22 14:34:53 MDT 2023 +One-line Summary: Surface roughness modifications + +Purpose and description of changes +---------------------------------- + +Surface roughness (z0) modifications that appear in this publication: +https://doi.org/10.5194/gmd-15-2365-2022 + +When changing the namelist input z0param_method from ZengWang2007 (default) +to Meier2022 the following modifications are activated: + +- A new parameterization of the vegetation surface roughness based on +Raupach (1992) with optimized parameters to match the data collected in +Hu et al. (2020) for different types of vegetation. This requires several new +PFT-specific input parameters in the parameter file. +- A spatially explicit z0m input field for bare soil based on the data of +Prigent et al. (2005). This may be activated specifically by the user through +the namelist input use_z0mg_2d. This requires a new input variable in the +fsurdat file. +- The parameterization of z0m for snow based on accumulated snow melt as +proposed in Brock et al. (2006). This may be activated specifically by the +user through the namelist input use_z0m_snowmelt. +- The parameterization of Yang et al. (2008) for z0h and z0q over bare soil, +snow, and glaciers. +- The study in GMD also proposes new globally constant values for the +z0m of bare soil, snow, and ice. To "activate" those the parameter file needs +to be changed at the moment. The original and modified parameter files and +fsurdat files will be shared by ftp. + +Open issues/questions (discussed with @ekluzek, @dlawrenncar, @olyson): + +- How to incorporate the data of Prigent et al. (2005) in the surfdata +generation. I will write an email about this to Catherine Prigent. +- One statement marked in CanopyFluxesMod should probably be changed when +using Meier2022 (i.e., Yang et al. (2008) formulation should be used instead +of Zeng and Dickinson (1998)). +- At the moment one needs to change the parameter file to switch between the +original and proposed globally constant z0m values for bare soil, snow, and +ice. This is obviously not very user friendly and prone to mistakes. +- The introduction of Yang et al. (2008) frequently results in z0h and z0q +larger than z0m. This is only rarely observed in the field and in contradiction +to the theory that z0h and z0q should be smaller because heat and water vapor +need to be transported through molecular diffusion in the surface sublayer. - For details on differences, see - https://github.com/ESCOMP/CTSM/issues/812#issuecomment-547924289 - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A +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.) - URL for LMWG diagnostics output used to validate new climate: - http://webext.cgd.ucar.edu/I20TR/clm50_ctsm10d074_2deg_GSWP3V1_rootr_hist/lnd/clm50_ctsm10d074_2deg_GSWP3V1_rootr_hist.1995_2014-clm50_ctsm10d074_2deg_GSWP3V1_hist.1995_2014/setsIndex.html - + [Put an [X] in the box for any configuration with significant answer changes.] -Detailed list of changes ------------------------- +[ ] clm5_1 -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +[ ] clm5_0 -Pull Requests that document the changes (include PR ids): none +[ ] ctsm5_0-nwp -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev077 -Originator(s): sacks (Bill Sacks) -Date: Sun Oct 27 16:23:39 MDT 2019 -One-line Summary: Consistently use frac_sno_eff rather than frac_sno in qg calculations +[ ] clm4_5 -Purpose of changes ------------------- -Consistently use frac_sno_eff rather than frac_sno in qg calculations +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): +Fixes #1316 +Fixes #1596 -The change here only changes answers for (1) urban pervious road, and -(2) more broadly with use_subgrid_fluxes = .false. +Notes of particular relevance for users +--------------------------------------- +Details already discussed in the description above. -Previously, code in CalculateSurfaceHumidity was inconsistent regarding -the use of frac_sno vs. frac_sno_eff. I wanted to make this consistent -to facilitate upcoming cleanup of CalculateSurfaceHumidity. I went back -and forth as to which one we should use here. (See also -https://github.com/ESCOMP/CTSM/issues/822). +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: +New tests are in place for this new code. -Argument for frac_sno_eff: This is consistent with the use of -frac_sno_eff elsewhere in the calculation of surface fluxes. +Testing summary: +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -Argument for frac_sno: Even in CLM4.0 (prior to the introduction of -frac_sno_eff and frac_h2osfc), frac_sno was used to calculate surface -relative humidity. That makes me think that the parameterizations were -improved by using frac_sno here, even though frac_sno at that point was -mainly just used for albedo / radiation calculations. So sticking with -frac_sno would be more consistent with what has been done for a long -time, and would presumably be a bit better scientifically. + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -However, when I tried changing this to use frac_sno rather than -frac_sno_eff: + cheyenne ---- OK + izumi ------- OK - qg(c) = frac_sno_eff(c)*qg_snow(c) + (1._r8 - frac_sno_eff(c) - frac_h2osfc(c))*qg_soil(c) & - + frac_h2osfc(c) * qg_h2osfc(c) +Answer changes +-------------- +Changes answers relative to baseline: + No, unless user chooses to run in non-default Meier2022 mode. -I got a crash with use_subgrid_fluxes false (test -SMS_D_Ld1_P4x1.f10_f10_musgs.I2000Clm45BgcCropQianRsGs.bishorn_gnu.clm-no_subgrid_fluxes), -due to a check I put in relatively recently to ensure that the top-layer -soil liquid never goes significantly negative: +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/2045 -WJS 218: frac_sno, frac_sno_eff, frac_h2osfc, snl = 6.6447358408778726E-005 1.0000000000000000 0.0000000000000000 -1 - qg_snow, qg_soil, qg_h2osfc, qg = 3.8414454029812475E-003 3.6634834595404343E-003 3.6635176705822736E-003 3.6634952846414733E-003 - ERROR: In UpdateState_TopLayerFluxes, h2osoi_liq has gone significantly negative - Bulk/tracer name = bulk - c, lev_top(c) = 218 0 - h2osoi_liq_top_orig = 6.6448689668604415E-004 - h2osoi_liq = -2.6754040213948407E-004 - frac_sno_eff = 1.0000000000000000 - qflx_liq_grnd*dtime = 0.0000000000000000 - qflx_dew_grnd*dtime = 0.0000000000000000 - qflx_evap_grnd*dtime = 9.3202729882552822E-004 - ENDRUN: - ERROR: In UpdateState_TopLayerFluxes, h2osoi_liq has gone significantly negative +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev136 +Originator(s): jedwards (Jim Edwards), sacks (Bill Sacks) +Date: Tue Aug 22 13:10:28 MDT 2023 +One-line Summary: Change order of history fields to improve performance on derecho -What seems to be going on is: With a little bit of snow present, when I -use frac_sno rather than frac_sno_eff, we end up with a qg value very -close to that of soil. But I think the later evaporation happens from -the snow, at which point I guess the dryer air above leads to there -being too large evaporation from the snow. +Purpose and description of changes +---------------------------------- -So in the end, I decided to consistently use frac_sno_eff, even though -this might be a small step backwards in terms of the accuracy of surface -humidity for urban pervious road and with use_subgrid_fluxes = .false. +Instead of just ordering history fields alphabetically, order them first +by the name of their level dimension (with fields without a level +dimension appearing first), then alphabetically within a given level +dimension. This changed ordering gives a significant performance +improvement especially noticeable on lustre file systems such as on +derecho. Significant changes to scientifically-supported configurations @@ -458,141 +453,120 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 + Notes of particular relevance for users --------------------------------------- +Caveats for users (e.g., need to interpolate initial conditions): +- History fields will now appear in a different order from tools like + ncdump, etc. -Caveats for users (e.g., need to interpolate initial conditions): none +Testing summary: +---------------- -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Changes made to namelist defaults (e.g., changed parameter values): none + cheyenne ---- OK + izumi ------- OK + + In addition to expected fails, the test + FSURDATMODIFYCTSM_D_Mmpi-serial_Ld1.5x5_amazon.I2000Clm50SpRs.cheyenne_intel + also failed as in https://github.com/ESCOMP/CTSM/issues/2111 -Changes to the datasets (e.g., parameter, surface or initial files): none +Answer changes +-------------- -Substantial timing or memory changes: none +Changes answers relative to baseline: NO -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/2114 -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev135 +Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310) +Date: Mon Aug 21 15:06:35 MDT 2023 +One-line Summary: Rename hist fields to track them down more easily -Changes to tests or testing: none +Purpose and description of changes +---------------------------------- -Code reviewed by: self (but approved conceptually by Sean Swenson and -Keith Oleson) + Renaming history fields to make easier to find in lists, e.g. when + using ncview. For example, litter fields like MET_LIT and STR_LIT + will be LIT_MET and LIT_STR. -CTSM testing: +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +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.) - build-namelist tests: + [Put an [X] in the box for any configuration with significant answer changes.] - cheyenne - not run +[ ] clm5_1 - tools-tests (test/tools): +[ ] clm5_0 - cheyenne - not run +[ ] ctsm5_0-nwp - PTCLM testing (tools/shared/PTCLM/test): +[ ] clm4_5 - cheyenne - not run - python testing (see instructions in python/README.md; document testing done): +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): + Fixes #2095 - (any machine) - not run - regular tests (aux_clm): +Testing summary: +---------------- +[Remove any lines that don't apply.] - cheyenne ---- ok - izumi ------- ok + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - ok means tests pass, answers change as expected + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -If the tag used for baseline comparisons was NOT the previous tag, note that here: + cheyenne ---- OK + izumi ------- OK + + any other testing (give details below): + Sam L. ran the LMWG diag. pkg and found only one plot affected by this + PR's changes. In particular, set 6 CWD_C, which was CWDC Answer changes -------------- -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): - - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Expected to be larger than roundoff/same climate, but not - investigated carefully - - For the default configuration with use_subgrid_fluxes = .true., - differences are restricted to urban pervious road. I spot-checked - a few tests to ensure that we only saw differences in FSH for - urban landunits; this was generally true, with the exception of - ERP_Ly3_P72x2.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-cropMonthOutput, - which also had differences over crop and natural veg - landunits. This spillover effect seems to be related to the - non-local interactions that arise from methane's dependence on - TWS, though I don't understand why I only saw this in a transient - case, and not in similar non-transient cases. See - https://github.com/ESCOMP/CTSM/issues/658#issuecomment-546740771 - for more details. - - For the non-default use_subgrid_fluxes = .false., there - differences in the natural vegetation and crop landunits, too. - - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A - - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A - - URL for LMWG diagnostics output used to validate new climate: N/A - - -Detailed list of changes ------------------------- +Changes answers relative to baseline: + No. Field lists differ. In some tests, the namelists differ. -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none -Pull Requests that document the changes (include PR ids): none +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/2106 =============================================================== =============================================================== -Tag name: ctsm1.0.dev076 -Originator(s): sacks (Bill Sacks) -Date: Fri Oct 25 16:04:20 MDT 2019 -One-line Summary: Set frac_sno_eff=0 if frac_sno is 0; avoid unnecessary calls to QSat - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev134 +Originator(s): rgknox (Ryan Knox,LBNL EESA), erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Wed Aug 16 17:20:27 MDT 2023 +One-line Summary: Migration of FATES to share normal soil BGC call sequence and functionality -Two changes that are bit-for-bit except for changes in the FSNO_EFF -diagnostic field, both with an eye towards cleaning up -SurfaceHumidityMod in preparation for adding water tracers to that -module: +Purpose and description of changes +---------------------------------- -(1) Set frac_sno_eff to 0 if frac_sno is 0. Previously, for cases where - frac_sno_eff was a binary 0/1 rather than being set equal to - frac_sno, frac_sno_eff was always being set to 1, even if there was - no snow. Sean Swenson thinks that didn't matter, but I found it - confusing, and it could be more problematic with some upcoming - changes I plan to make (where I'm going to use frac_sno_eff as a - weighting factor in calculating qg terms, including for landunits - that use a binary 0/1 frac_sno_eff.) - -(2) Avoid unnecessary calls to QSat, since this function is relatively - expensive. +This set of changes enables the normal soil biogeochemistry that is used for CN, to be used for FATES as well. FATES had been using a simplified subset of soil biogeochemistry in its own module. This change required coordination of litter flux and methane boundary conditions from FATES to CLM. CNVEG datastructures were given trivial allocation (of size one on index zero) to prevent inappropriate use of CNVEG datastructures while FATES is active. Note that now the carbon balance checking for the soil is now active when FATES is active. Various accomodations have also been put in place to enable nitrogen cycling between the two models. Significant changes to scientifically-supported configurations @@ -603,134 +577,85 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): none +Bugs fixed or introduced +------------------------ +Surprisingly, nvhpc tests are now working, but it may just be coincidental. All existing aux_clm tests are passing. Tests without FATES are b4b, with roundoff differences in just TOTCOLC and TOTCOLN. -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +CTSM issues fixed (include CTSM Issue #): + We think #1879 -- "AD spinup issues for FATES", is fixed but haven't proved it + #2112 -- black check on SystemTest file -Changes made to namelist defaults (e.g., changed parameter values): none +Notes of particular relevance for users +--------------------------------------- +A CLM-FATES simulation will turn on nitrogen supplementation, this enables sufficient immobilization and decomposition. Until FATES and CLM can handle fully coupled nitrogen exchange, which would include root uptake of the mineralized aqueous forms (NH4 and NO3), N limitations in the soil are meaningless when FATES is on. -Changes to the datasets (e.g., parameter, surface or initial files): none +Caveats for users (e.g., need to interpolate initial conditions): + FATES MUST have suplnitro='ALL' now (was NONE). When fates_parteh_mode>=1 other settings are allowed. + More checking for use_luna and suplnitro is added for FATES in the build-namelist -Substantial timing or memory changes: No substantial changes; from a -single run of PFS_Ld20.f09_g17.I2000Clm50BgcCrop.cheyenne_intel, max -timing of the main changed section (bgp1) decreased by about 10%; this -may be within machine variability, though. +Changes made to namelist defaults (e.g., changed parameter values): FATES runs now supplement N + suplnitro set to ALL for FATES + use_luna set to .false. for FATES and clm4_5 physics -Notes of particular relevance for developers: (including Code reviews and testing) +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 - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none -Changes to tests or testing: none - -Code reviewed by: self - - -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: - - cheyenne - not run - - tools-tests (test/tools): - - cheyenne - not run - - PTCLM testing (tools/shared/PTCLM/test): - - cheyenne - not run - - python testing (see instructions in python/README.md; document testing done): - - (any machine) - not run - - regular tests (aux_clm): +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + We should update defaults for suplnitro, when Nitrogen nutrients are allowed in FATES + The black checdk github action has to duplicate actions for each source file or directory + We should move to using the Makefile in the python directory when we figure it out - cheyenne ---- ok - izumi ------- ok +Testing summary: +---------------- - ok means tests pass, answer changes as expected just for FSNO_EFF +aux_clm test run on cheyenne and izumi. See: -If the tag used for baseline comparisons was NOT the previous tag, note that here: +izumi: OK /scratch/cluster/rgknox/tests_0814-095624iz +cheyenne: OK /glade/scratch/rgknox/tests_0814-134713ch Answer changes -------------- -Changes answers relative to baseline: YES, but just for the diagnostic field FSNO_EFF - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): - - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - diagnostic only: just changes FSNO_EFF - - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A - - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A +Changes answers relative to baseline: Two diganostic fields (TOTCOLC and TOTCOLN) - URL for LMWG diagnostics output used to validate new climate: N/A - +Baseline changes will be reported for many tests, all tests were combed to identify RMS diffs, all non-FATES tests had at most, roundoff level (-) + cheyenne ---- OK + izumi ------- OK If the tag used for baseline comparisons was NOT the previous tag, note that here: + Note that the previous ctsm5.1.dev132 tag was generated using FATES tagname + sci.1.66.1_api.25.5.0. This api update includes intermediate FATES science + tags that are non-b4b, so aux_clm FATES tests result in DIFFs as expected. Answer changes -------------- -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): - - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Expected to be larger than roundoff/same climate - - Changes are introduced only over lake columns, and these changes - should be small, since they only relate to the setting of frac_sno - when there is dew or sublimation on a very thin snow - pack. - - Although the direct changes should only affect lakes, I did - observe changes in crop columns in a transient test that I - spot-checked - (ERP_Ly3_P72x2.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-cropMonthOutput) - - maybe due to some of the non-local interactions in - https://github.com/ESCOMP/CTSM/wiki/Parameterizations-that-can-cause-nonlocal-interactions, - or maybe due to some other non-local interaction, either known or - buggy. (In non-transient tests that I spot checked - (ERP_P72x2_Lm36.f10_f10_musgs.I2000Clm50BgcCrop.cheyenne_intel.clm-clm50cropIrrigMonth_interp - and - SMS_Lm13.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-cropMonthOutput): - diffs in FSH in h1 file are just over lake landunits, as - expected.) - - Update: it seems that these changes in crop columns arise from - the nonlocal interactions caused by the dependence of methane - on TWS, though I don't understand why I only saw this in a - transient case, and not in similar non-transient cases. See - https://github.com/ESCOMP/CTSM/issues/658#issuecomment-546740771 - for more details. - - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A +Changes answers relative to baseline: Yes, but only for aux_clm fates tests. - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A +Other details +------------- - URL for LMWG diagnostics output used to validate new climate: N/A - +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -Detailed list of changes ------------------------- + sci.1.66.1_api.25.5.0 -> sci.1.67.1_api.26.0.0 + ccs_config_cesm0.0.64 -> ccs_config_cesm0.0.65 -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) -Pull Requests that document the changes (include PR ids): none + https://github.com/ESCOMP/CTSM/pull/2000 -- refactor + https://github.com/ESCOMP/CTSM/pull/2089 -- Change template update + https://github.com/NGEET/fates/pull/1024 -- FATES refactor =============================================================== =============================================================== -Tag name: ctsm1.0.dev074 -Originator(s): sacks (Bill Sacks) -Date: Wed Oct 23 19:25:21 MDT 2019 -One-line Summary: For lakes: when reading finidat, set frac_sno=1 if h2osno_total > 0 +Tag name: ctsm5.1.dev132 +Originator(s): mvdebolskiy (NORCE, Bergen, Norway), slevis (Samuel Levis,UCAR/TSS,303-665-1310) +Date: Fri Aug 4 17:52:45 MDT 2023 +One-line Summary: Add parameterization to allow excess ice in soil and subsidence -Purpose of changes ------------------- +Purpose and description of changes +---------------------------------- -Due to ESCOMP/ctsm#783, frac_sno used to be 0 for all lake points. That -was mostly fixed, but the issue is still present on initial conditions -files that were generated prior to that fix (which includes most or all -of our out-of-the-box restart files). This causes frac_sno to be 0 for -lake points at the start of the simulation, even if there is a snow pack -present. Currently this doesn't cause significant problems, but I'd like -to change the calculation of frac_sno_eff so that it is 0 if frac_sno is -0 - and then this frac_sno problem becomes an issue (causing divide by 0 -in at least one place). - -However, further problems were introduced if I tried to always apply -this correction: It appears that sometimes the restart file legitimately -has frac_sno == 0 for lake columns with non-zero snow cover. To avoid -changing answers for newer restart files, I am writing metadata to the -restart file documenting whether the fix has already been applied on -that restart file, and if so, we avoid reapplying the fix. - -Getting this restart metadata correct was tricky, especially when -running init_interp. I have introduced a new module to encapsulate this -complexity. This can be used in general for writing / reading metadata -on which issues have been fixed on a given restart file. +As described in PR #1787: +Parameterization for excess ice described in Lee et al. (2014): +http://dx.doi.org/10.1088/1748-9326/9/12/124006 -Bugs fixed or introduced ------------------------- +This code is a modified version of code provided by Lei Cai: +https://github.com/lca041/ctsm/tree/clm5.0.dev92_exice -Issues fixed (include CTSM Issue #): [If none, remove this line] -- Resolves ESCOMP/ctsm#783 +Works only for the nuopc driver. + +Files changed: +bld/CLMBuildNamelist.pm, bld/namelist_files/namelist_defaults_ctsm.xml, bld/namelist_files/namelist_definitionss_ctsm.xml -- added namelist options; +src/main/clm_varctl.F90, src/main/controlMod.F90 -- added option to switch excess ice physics and read namelist option; +src/biogeophys/WaterStateType.F90 -- added prognostic excess ice variable and a history field; +src/biogeophys/WaterStateBulkType.F90, src/main/clm_instMod.F90, -- added arguments to soubrutiens for proper initialization; +src/biogeophys/TemperatureType.F90 -- initial soil temperature set to 268.15 K at the cold start (possibly redundant because #1460 is closed) +src/biogeophys/WaterDiagnosticBulkType.F90 -- added two diagnostic excess ice variables and two history fields; +src/biogeophys/SoilTemperatureMod.F90 -- added main excess ice calculations; +src/biogeophys/TotalWaterAndHeatMod.F90 -- added excess ice to total water for balance checks; +src/biogeophys/SoilHydrologyMod.F90 -- added excess ice for ice fraction calculation; + +New files: +src/cpl/share_esmf/ExcessIceStreamType.F90 -- routines to read dataset with initial excess ice concentration Significant changes to scientifically-supported configurations @@ -905,266 +776,319 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 + +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): + Fixes #1229 -- excess ice + + Notes of particular relevance for users --------------------------------------- Caveats for users (e.g., need to interpolate initial conditions): -- The setting of initial lake frac_sno to 1 isn't exactly correct, but - it's better than the old value of 0. + Excess ice can EITHER be turned on by using the stream file, OR a restart file that has excess ice on it. + Since, excess ice is expected to melt as time goes on, the use of a restart file is preferred. + But, use of a restart file requires a simulation that was spun up to that point. -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + New namelist options added: + - use_excess_ice (logical, in clm_inparm) default = .false.; turns on excess ice physics + - stream_meshfile_exice, stream_fldfilename_exice, stream_mapalgo_exice (char, in exice_streams) + meshfile, stream file, spatial interpolation algorithm for initial values of excess ice + defaults - lnd/clm2/paramdata/exice_init_0.125x0.125_ESMFmesh_c20220516.nc, + lnd/clm2/paramdata/exice_init_0.125x0.125_c20220516.nc + and bilinear + Dataset interpolated to 0.125x0.125 degrees grid from Brown et al. (1997) can be found here: + https://drive.google.com/file/d/1mA457Oa52zG_MtLGB7KHuUYQvsS2-P5o/view?usp=sharing + Dataset used only in cold start or hybrid runs (or starting with finidat) that do not have excess ice -Changes made to namelist defaults (e.g., changed parameter values): none -Changes to the datasets (e.g., parameter, surface or initial files): none +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: + New tests in place for this new code -Substantial timing or memory changes: none -- I didn't check the PFS test, but the only change that could have - likely led to performance changes was the addition of a metadata copy - in init_interp. I checked the timing of this piece, and found it to be - a negligible portion of the total init_interp time - (https://github.com/ESCOMP/CTSM/pull/825#issuecomment-545219601). +Testing summary: +---------------- +[Remove any lines that don't apply.] -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + build-namelist tests (if CLMBuildNamelist.pm has changed): -Changes to tests or testing: none + cheyenne - PASS -Code reviewed by: Erik Kluzek gave this an initial look and gave general -approval for the restart file metadata mechanism I have added. He may -give it a more careful look, possibly accompanied by a further cleanup -tag addressing any issues he finds. + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + heyenne ---- OK + izumi ------- OK -CTSM testing: + any other testing (give details below): - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +If the tag used for baseline comparisons was NOT the previous tag, note that here: - build-namelist tests: - cheyenne - not run - - tools-tests (test/tools): - - cheyenne - not run - - PTCLM testing (tools/shared/PTCLM/test): - - cheyenne - not run - - python testing (see instructions in python/README.md; document testing done): +Answer changes +-------------- - (any machine) - not run +Changes answers relative to baseline: No - regular tests (aux_clm): - cheyenne ---- ok - izumi ------- ok +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/1787 - ok means tests passed, baselines fail as expected. +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev131 +Originator(s): samrabin (Sam Rabin,UCAR/TSS) +Date: Thu Jul 27 14:24:07 MDT 2023 +One-line Summary: Enable prescribed crop calendars. - Note that the FUNIT test failed initially; I got it passing on my - Mac, but didn't rerun it on cheyenne. +Purpose and description of changes +---------------------------------- -If the tag used for baseline comparisons was NOT the previous tag, note that here: +This branch enables CLM to read in externally-prescribed crop sowing dates and "cultivar" maturity requirements (growing +degree-days, GDDs). This has so far only been tested with static values, and the results indicate that yield performance is +worsened. However, this capability is required by the GGCMI phase 3 / ISIMIP3 Agriculture protocol. +Briefly, the way this works is that an offline run is first performed with prescribed sowing dates and 364-day seasons. +Instantaneous GDD accumulation is saved daily. A Python script then cross-references those daily outputs with a map of mean sowing +dates to determine the mean accumulated GDDs in the growing season, saving the result as a file for use as prescribed maturity +requirements. -Answer changes --------------- +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- -Changes answers relative to baseline: YES +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.) - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): + [Put an [X] in the box for any configuration with significant answer changes.] - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Larger than roundoff/same climate - - The only change is in initial lake frac_sno. This should only - affect the start of the simulation, and only over lake points. I - verified that changes are only over lake points via: For both - SMS_D_Ld1.f09_g17.I1850Clm50Sp.cheyenne_intel.clm-default (which - doesn't use init_interp) and - SMS_D_Ld3.f10_f10_musgs.I2000Clm50BgcCruGs.cheyenne_gnu.clm-default - (which uses init_interp): I checked which points have differences - in FSH in the h1 (vector) history file. Diffs were only over lake - points. +[ ] clm5_1 - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A +[ ] clm5_0 - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A +[ ] ctsm5_0-nwp - URL for LMWG diagnostics output used to validate new climate: N/A - +[ ] clm4_5 -Detailed list of changes +Bugs fixed or introduced ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +CTSM issues fixed (include CTSM Issue #): + Resolves #281 -- Clean up CropPhenology logic + Resolves #519 -- Read in crop planting and harvest dates + Fixes #2042 -- Issue running SystemTests due to "conda activate" error -Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/CTSM/pull/825 + Some on #1649 -- Additional "annual" (per growing season) crop outputs -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev073 -Originator(s): sacks (Bill Sacks) -Date: Tue Oct 22 06:14:24 MDT 2019 -One-line Summary: Fix bug in calculation of dqgdT +Notes of particular relevance for users +--------------------------------------- -Purpose of changes ------------------- +Caveats for users: + Untested but theoretically possible: + * Time-varying inputs + * Running at any resolution other than one matching the crop calendar inputs -The calculation of dqgdT, which gives the derivative, d(qg)/dT, was -incorrect for soil/crop landunits when there is no snow. This tag fixes -that bug. +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + Adds optional namelist variables: + * stream_fldfilename_sdate: Filename of input stream data for sowing dates + * stream_fldfilename_cultivar_gdds: Filename of input stream data for cultivar growing degree-day targets + * stream_meshfile_cropcal: Filename of input stream data for crop calendar inputs + * stream_year_first_cropcal: First year to loop over for crop calendar data + * stream_year_last_cropcal: Last year to loop over for crop calendar data + * model_year_align_cropcal: Simulation year that aligns with stream_year_first_cropcal value + * generate_crop_gdds: Set to .true. in order to override crop harvesting logic and to instead harvest the day before the next sowing date. Used to generate growing-degree day outputs that can be used with an external script to generate new GDD requirement ("cultivar") files. + * use_mxmat: Set to .false. in order to ignore crop PFT parameter for maximum growing season length (mxmat). Must be set to .false. when generate_crop_gdds is .true. -Bugs fixed or introduced ------------------------- +Notes of particular relevance for developers: +--------------------------------------------- -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/CTSM#824 (dqgdT incorrect when there is no snow) +Changes to tests or testing: + * Adds RXCROPMATURITY SystemTest, with an example added to ctsm_sci test suite. + * Removes 12 MCT tests from testlist_clm.xml, as discussed in CTSM SE standup 2023-06-26. +Testing summary: +---------------- -Significant changes to scientifically-supported configurations --------------------------------------------------------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -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.) + build-namelist tests (if CLMBuildNamelist.pm has changed): - [Put an [X] in the box for any configuration with significant answer changes.] + cheyenne - PASS -[ ] clm5_0 + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -[ ] ctsm5_0-nwp + cheyenne ---- OK + izumi ------- OK -[ ] clm4_5 + python testing (if python code has changed; see instructions in python/README.md; document testing done): -Notes of particular relevance for users ---------------------------------------- + cheyenne - PASS -Caveats for users (e.g., need to interpolate initial conditions): none +Answer changes +-------------- -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Changes answers relative to baseline: YES for Clm45BgcCrop compsets only -Changes made to namelist defaults (e.g., changed parameter values): none + Summarize any changes to answers, i.e., + - what code configurations: Clm45BgcCrop + - what platforms/compilers: Cheyenne intel and gnu, Izumi intel and nag + - nature of change (roundoff; larger than roundoff/same climate; new climate): roundoff -Changes to the datasets (e.g., parameter, surface or initial files): none + 5 tests in aux_clm showed true DIFFs (i.e., not just field list differences / new output files): + - SMS_D_Ly6_Mmpi-serial.1x1_smallvilleIA.IHistClm45BgcCropQianRs.izumi_intel.clm-cropMonthOutput + - ERP_D_P36x2_Ld3.f10_f10_mg37.I2000Clm45BgcCrop.cheyenne_gnu.clm-no_subgrid_fluxes + - LGRAIN2_Ly2_P72x1.f10_f10_mg37.I1850Clm45BgcCrop.cheyenne_gnu.clm-ciso--clm-cropMonthOutput + - ERS_Ly5_P72x1.f10_f10_mg37.IHistClm45BgcCrop.cheyenne_intel.clm-cropMonthOutput + - SMS_D_Ld1_P48x1.f10_f10_mg37.I2000Clm45BgcCrop.izumi_nag.clm-oldhyd + + The first four were likely due to an order-of-operations change in CNOffsetLitterfall(), as they resolve with the patch at + https://github.com/samsrabin/CTSM/commit/c30320cbd6583bccbcc290ffe536e8500e6ec358 + + The last is resolved with an additional patch that removes all my changes to CNOffsetLitterfall()---changes which *should* only + affect new diagnostic variables: + https://github.com/samsrabin/CTSM/commit/e025f555e74584c63d50f27c4df38326fa64bc4f + +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime + cime: cime6.0.108 -> cime6.0.125 -Substantial timing or memory changes: not checked, but none expected +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/CTSM/pull/1863 -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide +=============================================================== -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +=============================================================== +Tag name: ctsm5.1.dev130 +Originator(s): glemieux (Greg Lemieux,LBL/NGEET,510-486-5049) +Date: Sun Jul 9 23:24:29 MDT 2023 +One-line Summary: FATES parameter file and test definition update -Changes to tests or testing: none +Purpose and description of changes +---------------------------------- -Code reviewed by: Sean Swenson reviewed and approved my plan, though not the final code +This tag incorporates updates to the FATES parameter file and test +definitions to be consistent with updates to the drought deciduous +phenology model in FATES. This also updates the external FATES +pointer to the tag associated with the drought deciduous phenology +update. +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- -CTSM testing: +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.) - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + [Put an [X] in the box for any configuration with significant answer changes.] - build-namelist tests: +[ ] clm5_1 - cheyenne - not run +[ ] clm5_0 - tools-tests (test/tools): +[ ] ctsm5_0-nwp - cheyenne - not run +[ ] clm4_5 - PTCLM testing (tools/shared/PTCLM/test): +Bugs fixed or introduced +------------------------ - cheyenne - not run +CTSM issues fixed (include CTSM Issue #): + Fixes #2043 -- Five izumi NEON tests fail (for me) because the testnames include L10d instead of Ld10 - python testing (see instructions in python/README.md; document testing done): +Known bugs found since the previous tag (include issue #): + #2049 -- Use of 0.01_r8 as a magic number + #2042 -- Issue running SystemTests due to "conda activate" error + #2039 -- Conditional for NEON usermods is too broad - (any machine) - not run +Notes of particular relevance for users +--------------------------------------- +Changes made to namelist defaults (e.g., changed parameter values): - regular tests (aux_clm): + FATES parameter file default updated to fates_params_api.25.5.0_12pft_c230628.nc - cheyenne ---- ok - izumi ------- ok +Testing summary: +---------------- - ok means tests pass, answers change as expected + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -If the tag used for baseline comparisons was NOT the previous tag, note that here: + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + cheyenne ---- OK + izumi ------- OK Answer changes -------------- -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +Changes answers relative to baseline: YES for FATES tests only Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Larger than roundoff/same climate - - I checked the impact from one-day averages in test - SMS_D_Ld1_P4x1.f10_f10_musgs.I2000Clm50BgcCropQianRsGs.bishorn_gnu.clm-default, - by looking at differences in EFLX_LH_TOT. The impact is small: - daily-average differences in that variable are typically 0.01 W - m-2 or less; most grid cells have significantly less difference - than that; only one or a few f10 grid cells have significantly - greater differences, with the biggest difference being about 0.1 W - m-2. - - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A + - what code configurations: FATES + - what platforms/compilers: ALL + - nature of change (roundoff; larger than roundoff/same climate; new climate): larger than roundoff If this tag changes climate describe the run(s) done to evaluate the new climate (put details of the simulations in the experiment database) - - casename: N/A - URL for LMWG diagnostics output used to validate new climate: N/A - + See FATES #958 for discussion. The update increased the dimensions of + some FATES history output from site-level to pft-level. As such, these + have been removed from some test cases to keep the test light weight and + added to the AllVars test to maintain coverage. -Detailed list of changes ------------------------- + Note that this FATES update also incorporates a number of additional science updates + since the previous tag. -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): fates + fates: sci.1.65.3_api.25.4.0 -> fates-sci.1.66.0_api.25.5.0 -Pull Requests that document the changes (include PR ids): none +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/2009 + https://github.com/NGEET/fates/pull/958 =============================================================== =============================================================== -Tag name: ctsm1.0.dev072 -Originator(s): mvertens (Mariana Vertenstein) -Date: Tue Oct 15 09:41:50 MDT 2019 -One-line Summary: Add NUOPC cap +Tag name: ctsm5.1.dev129 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Thu Jun 22 01:21:56 MDT 2023 +One-line Summary: NEON fixes for TOOL and user-mods, add SP for NEON, some history file updates, black refactor for buildlib/buildnml -Purpose of changes ------------------- +Purpose and description of changes +---------------------------------- -Add NUOPC cap in order to run with the new NUOPC driver/mediator. There -was some code movement / refactoring of existing code to support this, -with the biggest change being the introduction of a new subdirectory -under src/cpl. +Merge the NEON fixes for TOOL and allowing SP mode, as well as a few simple history PR's, and a black reformat. -Most changes are from Mariana Vertenstein and Jim Edwards. +Fixes NEON bug identified at the NCAR-NEON workshop. Corrects the dominant PFT at TOOL site & usermods_dirs +Some small changes for quality of life improvements for the run_neon script. Some documentation and code +cleanup type changes regarding history code (delete a unused subroutine). Do a black reformat of python files +buildlib/buildnml (and CTSM SystemTests) for consistency across CESM. Also add running them through black in the python + +Specific notes: + + - fixed a couple lines so that python will stop complaining about deprecated things + - added print statements about warning messages being not an issue, and that building/running may take a while + - added a "success" print statement - I'm not sure this will actually only print if "successful" + - Add more documentation to history tape code + - Add more breadcrumbs between related variables and methods + - Put related history namelist flags/methods together + - Update some out of date comments in history code Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -1172,66 +1096,81 @@ 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.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Bugs fixed or introduced +------------------------ -Changes made to namelist defaults (e.g., changed parameter values): none +CTSM issues fixed (include CTSM Issue #): + Fixes #2013 -- Incorrect PFT at TOOL + Fixes #2014 -- NEON usermods not working as intended + Fixes #2029 -- fire_method is used before it's set and hence fire_res isn't set to none + Fixes #2030 -- Logic in build-namelist not functioning correctly for FATES with light_res + Updates conda environment so that #1974 works -Changes to the datasets (e.g., parameter, surface or initial files): none +Known bugs found since the previous tag (include issue #): + #2037 -- shell_commands for tests with two testmods listed don't concatenate both together + #2036 -- Remove setting of STOP options in user-mod directories + #2017 -- subset_data does not function for regional grids that span across Greenwich longitude zero + #2024 -- snow fraction is uninitialized when passed to fates during cold-starts -Substantial timing or memory changes: none expected (not checked) -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide +Notes of particular relevance for users +--------------------------------------- -Caveats for developers (e.g., code that is duplicated that requires double maintenance): -- NUOPC cap currently does not have any tests in the aux_clm test suite -- There are currently no tests ensuring that the nuopc and mct caps give - bit-for-bit answers, though the nuopc_cap_bfb testmod could be used to - support such a test +Caveats for users (e.g., need to interpolate initial conditions): + Ability to run for SP sites was added for NEON, but run-neon.py doesn't have an option for it -Changes to tests or testing: none +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + New --light_res option for 106x74 for NEON lightning data added (can be set in CLM_BLDNML_OPTS) + This is the default for NEON sites (with $CLM_USRDAT_NAME == NEON or NEON.PRISM) + It fails for non CLM_USRDAT resolutions and gives a warning for non-NEON CLM_USRDAT resolutions) -Code reviewed by: Bill Sacks +Changes made to namelist defaults (e.g., changed parameter values): + Add NEON 106x74 lightning dataset +Changes to the datasets (e.g., parameter, surface or initial files): New NEON surface datasets -CTSM testing: +Notes of particular relevance for developers: +--------------------------------------------- - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Changes to tests or testing: + Add a NEON case that runs in SP mode + Change one of the FATES tests to turn fire on and require lightning data - build-namelist tests: +Testing summary: regular NEON-tools +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - cheyenne - not run + build-namelist tests (if CLMBuildNamelist.pm has changed): - tools-tests (test/tools): + cheyenne - PASS (57 tests different from baseline) - cheyenne - not run + tools-tests (test/tools) (if tools have been changed): - PTCLM testing (tools/shared/PTCLM/test): + cheyenne - PASS (NEON test list passes) - cheyenne - not run + python testing (if python code has changed; see instructions in python/README.md; document testing done): - python testing (see instructions in python/README.md; document testing done): + cheyenne - PASS - (any machine) - not run + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - regular tests (aux_clm): + cheyenne ---- OK + izumi ------- OK - cheyenne ---- pass - izumi ------- pass + other testing: + izumi -- PASS (tests of changed NEON sites, see list in #2031) If the tag used for baseline comparisons was NOT the previous tag, note that here: @@ -1239,49 +1178,38 @@ If the tag used for baseline comparisons was NOT the previous tag, note that her Answer changes -------------- -Changes answers relative to baseline: NO - -Detailed list of changes ------------------------- +Changes answers relative to baseline: bit-for-bit (except some NEON sites) -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -- mosart: mosart1_0_33 -> mosart1_0_34 (supports nuopc cap) + Summarize any changes to answers, i.e., + - what code configurations: NEON TOOL site and other NEON sites with namelist changes + - what platforms/compilers: all + - nature of change: new climate -Pull Requests that document the changes (include PR ids): none +Other details +------------- +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + #2031 -- Merge of below... + #2015 -- Address NEON bugs + #2021 -- Small changes to fix warnings, add print statements for clarity + #2023 -- Document side effects of htapes_fieldlist + #2022 -- Delete unued hist_add_subscript + #2020 -- Add more documentation to history tape code + #2007 -- black reformat python files for consistancy across cesm =============================================================== =============================================================== -Tag name: ctsm1.0.dev071 -Originator(s): sacks (Bill Sacks) -Date: Fri Oct 11 07:03:40 MDT 2019 -One-line Summary: Split CanopyTemperature into separate pieces - -Purpose of changes ------------------- - -CanopyTemperature was doing a few unrelated things, none of which -actually had anything to do with calculating canopy temperature. At the -driver level, I have split CanopyTemperature into BiogeophysPreFluxCalcs -and CalculateSurfaceHumidity. BiogeophysPreFluxCalcs calls out to a -number of separate routines, some in that same module and some -elsewhere, including a new routine in FrictionVelocityMod. - -Also some minor related cleanup, including +Tag name: ctsm5.1.dev128 +Originator(s): glemieux (Gregory Lemieux,LBL/NGEET,510-486-5049) +Date: Thu Jun 1 15:31:52 MDT 2023 +One-line Summary: Update FATES tests to double precision -- Made FrictionVelocityMod object-oriented +Purpose and description of changes +---------------------------------- -- A bit of rework of how qflx_evap_veg and qflx_tran_veg are set. This - changes answers for the (default inactive) QFLX_EVAP_VEG history field - (see also ESCOMP/ctsm#816). - -- Removed qsat conditionals that should never be invoked - - -Bugs fixed or introduced ------------------------- - -Issues fixed (include CTSM Issue #): -- Fixes ESCOMP/ctsm#816 (QFLX_EVAP_VEG should be 0 over lakes) +This pull request updates the fates tests to set the output +precision to double precision. The usermod fates_sp is similarly +updated. Significant changes to scientifically-supported configurations @@ -1290,7 +1218,7 @@ 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.] +[ ] clm5_1 [ ] clm5_0 @@ -1298,107 +1226,275 @@ Does this tag change answers significantly for any of the following physics conf [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Bugs fixed or introduced +------------------------ -Changes made to namelist defaults (e.g., changed parameter values): none +CTSM issues fixed (include CTSM Issue #): +- Resolves https://github.com/ESCOMP/CTSM/issues/1986 -Changes to the datasets (e.g., parameter, surface or initial files): none +Testing summary: +---------------- -Substantial timing or memory changes: none + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + cheyenne ---- OK + izumi ------- OK -Changes to tests or testing: none + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + cheyenne ---- OK + izumi ------- OK -Code reviewed by: self +If the tag used for baseline comparisons was NOT the previous tag, note that here: + FATES tests run against fates-sci.1.65.6_api.25.4.0-ctsm5.1.dev127 baseline -CTSM testing: +Answer changes +-------------- - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Changes answers relative to baseline: Yes, but only for fates tests and compsets - build-namelist tests: + Summarize any changes to answers, i.e., + - Differences are due to changing hist_ndens to 1 (double precision) - cheyenne - not run +Other details +------------- - tools-tests (test/tools): +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/2010 - cheyenne - not run +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev127 +Originator(s): sacks (Bill Sacks) +Date: Fri May 19 04:48:30 MDT 2023 +One-line Summary: Fix nuopc cplhist test - PTCLM testing (tools/shared/PTCLM/test): +Purpose and description of changes +---------------------------------- - cheyenne - not run +Make some changes to the cplhist testmod that fix the cplhist test, +based on testing done by Keith Oleson: +- Point to new cplhist forcing data generated and used by Adam + Herrington and Keith Oleson +- Use DATM_PRESNDEP=none until + https://github.com/escomp/ctsm/issues/1844 is resolved - python testing (see instructions in python/README.md; document testing done): +Also, remove mct cplhist test. - (any machine) - not run +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - regular tests (aux_clm): +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.) - cheyenne ---- pass - izumi ------- pass + [Put an [X] in the box for any configuration with significant answer changes.] -If the tag used for baseline comparisons was NOT the previous tag, note that here: +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): +- Takes steps towards addressing ESCOMP/CTSM#1844 (Create new auxiliary + history file for cplhist test with ndep data) + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: +- Changes cplhist test; new test is + SMS_D_Ld1.ne30pg3_t061.I1850Clm50BgcSpinup.cheyenne_intel.clm-cplhist +- Removes mct cplhist test + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- PASS + izumi ------- PASS + Note that there were no baselines for the new test + (SMS_D_Ld1.ne30pg3_t061.I1850Clm50BgcSpinup.cheyenne_intel.clm-cplhist) Answer changes -------------- -Changes answers relative to baseline: YES, but only for the -(default-inactive) field QFLX_EVAP_VEG +Changes answers relative to baseline: NO - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cdeps: cdeps1.0.12 -> cdeps1.0.13 - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - larger than roundoff, but only for the default-inactive field QFLX_EVAP_VEG +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1999 - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev126 +Originator(s): jpalex (John Alex) +Date: Thu May 18 17:21:59 MDT 2023 +One-line Summary: Clean up some loops in UrbanTimeVarType - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A +Purpose and description of changes +---------------------------------- - URL for LMWG diagnostics output used to validate new climate: N/A - +Refactor some inefficient and confusing looping structures in +UrbanTimeVarType.F90 -Detailed list of changes + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced ------------------------ +CTSM issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1514 (Inefficient and confusing looping structures in UrbanTimeVarType.F90) -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Pull Requests that document the changes (include PR ids): none + cheyenne ---- PASS + izumi ------- PASS + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/2005 =============================================================== =============================================================== -Tag name: ctsm1.0.dev070 -Originator(s): sacks (Bill Sacks) -Date: Wed Oct 9 06:16:39 MDT 2019 -One-line Summary: Fix for writing 0-d variables with PIO2 +Tag name: ctsm5.1.dev125 +Originator(s): jpalex (John Alex) +Date: Sun Jul 9 21:04:13 MDT 2023 +One-line Summary: Added cache for clock step_size in clm_time_manager.F90 + +Purpose and description of changes +---------------------------------- + +Added cache for clock step_size in clm_time_manager.F90 to improve +performance. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#207 (Improve performance of get_step_size) -Purpose of changes ------------------- -Previously, there were problems when writing 0-d (scalar) variables with -PIO2 in DEBUG mode. This change fixes that issue. +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- PASS + izumi ------- PASS + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/2004 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev124 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) / mvertens / adamrher / MiCurry / jtrusdal / TeaganKing +Date: Tue May 9 16:52:05 MDT 2023 +One-line Summary: Initialization memory update, new surface datasets for new grids, add option for running NEON with PRISM data + +Purpose and description of changes +---------------------------------- + +Lower memory usage at initialization: + + Some work by Mariana Vertenstein to lower the memory usage at initiatlization. + +New Low Resolutions for SE grids: + + ne3np4.pg3, ne5np4.pg3, ne16np4.pg3 + +New MPASA Resolutions: + + mpasa480 --------- Course resolution + mpasa120 --------- Near 1-degree + mpasa60, mpasa30 - High resolution + mpasa15 ---------- Very high resolution + + This merge adds the surface data and landuse.timeseries files for the CAM-MPAS dycore. At present, these grids are: + + mpasa480 - 480 km quasi-uniform, global with 2,462 horizontal grid columns + mpasa120 - 120 km quasi-uniform, global with 40,962 horizontal grid columns + mpasa60 - 60 km quasi-uniform, global with 163,842 horizontal grid columns + mpasa30 - 30 km quasi-uniform, global with 655,362 horizontal grid columns + mpasa15 - 15 km quasi-uniform, global with 2,621,442 horizontal grid columns + + +Option to Run NEON with PRISM preciption data: + + Some NEON sites have bad or incomplete precitation data. By setting CLM_USRDAT_NAME="NEON.PRISM" + the PRISM 4km CONUS ReAnayslis data is used in place of the NEON precipitation data. This + is helpful for several NEON sites: + MLBS, MOAB, ONAQ, SJER, NIWO, TEAK, WREF, YELL + + Allow PRISM precipitation to be used as a new datm stream. + + Updates to cime_config/config_component.xml include additional valid values for PRECIP data stream names. Changes in + cime_config/usermods_dirs/NEON/defaults/user_nl_datm_streams specify which input variables are gathered from which streams and + specifies file location for PRISM data. + + Using PRISM precipitation instead of NEON precipitation does have a substantial impact on CTSM output (eg. latent heat flux + biases). -Jim Edwards put in place an initial fix; I put in place the final fix -based on changes Mariana Vertenstein made in MOSART. I have not tested -this with PIO2, but am hopeful that it fixes the PIO2 problem since the -similar MOSART changes fixed that problem. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -1408,121 +1504,4040 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 + +Bugs fixed or introduced +------------------------ + +CTSM issues fixed (include CTSM Issue #): + Fixes #1969 -- Move dynGrossUnrepMod.F90 from biogeochem to dyn_subgrid subdirectory + Fixes #1904 -- Other precipitation streams for NEON + Fixes #1927 -- Course SE resolutions support + Fixes #1313 -- MPASA resolution support + Notes of particular relevance for users --------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): none +Caveats for users (e.g., need to interpolate initial conditions): + New resolutions do NOT have specific initial conditions for them, they use the general ones -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + NEON cases will give a warning about spinup data for non default transient cases + if you set a NEON case with CLM_USRDAT_NAME=NEON.PRISM, PRISM data will be used for precip -Changes made to namelist defaults (e.g., changed parameter values): none + Two new options to run_neon.py "--prism" and "--experiment" -Changes to the datasets (e.g., parameter, surface or initial files): none +Changes made to namelist defaults (e.g., changed parameter values): + "v3" data option for NEONVERSION -Substantial timing or memory changes: none +Changes to the datasets (e.g., parameter, surface or initial files): + New surface and landuse.timeseries datasets for: + ne3np4.pg3, ne5np4.pg3, ne16np4.pg3 + mpasa480, mpasa120, mpasa60, mpasa30, mpasa15 -Notes of particular relevance for developers: (including Code reviews and testing) +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 -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Changes to tests or testing: Add new tests for new resolutions -Changes to tests or testing: none +Testing summary: regular, tools +---------------- -Code reviewed by: self; earlier version reviewed by Erik Kluzek and Mariana Vertenstein + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + build-namelist tests (if CLMBuildNamelist.pm has changed): -CTSM testing: + cheyenne - PASS (81 new tests) - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + tools-tests (test/tools) (if tools have been changed): - build-namelist tests: + cheyenne - OK + cheyenne - PASS (tests_pretag_nompi_neon) - cheyenne - not run + python testing (if python code has changed; see instructions in python/README.md; document testing done): - tools-tests (test/tools): + cheyenne - PASS - cheyenne - not run + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - PTCLM testing (tools/shared/PTCLM/test): + cheyenne ---- OK + izumi ------- OK - cheyenne - not run + any other testing (give details below): - python testing (see instructions in python/README.md; document testing done): +If the tag used for baseline comparisons was NOT the previous tag, note that here: - (any machine) - not run - regular tests (aux_clm): +Answer changes +-------------- - cheyenne ---- pass - izumi ------- pass +Changes answers relative to baseline: No bit-for-bit -If the tag used for baseline comparisons was NOT the previous tag, note that here: +Other details +------------- + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cdeps + Update CDEPS to cdeps1.0.12 + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + + #1998 -- combination of below PR's... + + #1954 -- PRISM + #1973 -- SE + #1501 -- MPASA + #1899 -- memory scaling + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev123 +Originator(s): sacks (Bill Sacks) +Date: Mon May 1 11:37:51 MDT 2023 +One-line Summary: Updates needed for pFUnit 4 and other externals updates + +Purpose and description of changes +---------------------------------- +(1) Lots of small changes needed for the update to pFUnit4. Note that + this is a backwards-incompatible update, so we will require pFUnit 4 + moving forward. + +(2) Externals updates: some of these are needed for the update to pFUnit + 4; others are included to update externals to those in a recent CESM + alpha tag. + +Notes of particular relevance for developers: +--------------------------------------------- +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- Running the Fortran unit tests now requires pFUnit 4 +- I didn't run the mksurfdata_map unit tests... these will be removed + soon anyway with the replacement of mksurfdata_map with mksurfdata_esmf + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- PASS + izumi ------- PASS + + Note: most testing run on 46968da7b; reran just izumi-nag testing on + the latest version (the only difference was in the version of the + ccs_config external, and the only diff there was for nag). + + any other testing (give details below): + - Fortran unit tests (under src) on izumi and my Mac Answer changes -------------- Changes answers relative to baseline: NO -Detailed list of changes +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- ccs_config: ccs_config_cesm0.0.58 -> ccs_config_cesm0.0.64 +- cime: cime6.0.100 -> cime6.0.108 +- cmeps: cmeps0.14.17 -> cmeps0.14.21 +- cdeps: cdeps1.0.7 -> cdeps1.0.9 +- cpl7: cpl7.0.14 -> cpl77.0.5 +- share: share1.0.16 -> share1.0.17 + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1989 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev122 +Originator(s): sacks (Bill Sacks) +Date: Sun Apr 23 19:36:37 MDT 2023 +One-line Summary: Rework handling of evaporation constraint in SoilFluxes + +Purpose and description of changes +---------------------------------- + +Occasionally, h2osoi_ice was going significantly negative in +UpdateState_TopLayerFluxes - see +https://github.com/ESCOMP/CTSM/issues/1979. As noted in that issue, this +seems to be due to h2osoi_ice having a very different magnitude from +h2osoi_liq, leading to greater-than-roundoff-level differences from zero +final state in a relative sense (i.e., relative to the magnitude of +h2osoi_ice) - I think because of the appearance of the sum (h2osoi_ice + +h2osoi_liq) in the equations that limit fluxes. + +To try to deal with this, I have reworked the handling of the +evaporation constraint to directly limit both the liqevap and solidevap, +so that both of them should result in the equivalent liq or ice states +going to 0 within roundoff. + +To do that, I needed to move the partitioning of the total flux into +liquid and solid to earlier in the subroutine and then recalculate those +partitioning fluxes in conditions where we're applying an evaporation +constraint. + +Note that I applied a max of 0 to the new fluxes because many initial +conditions files have roundoff-level negative H2OSOI_LIQ, so without +this limit, we were getting roundoff-level negative fluxes. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced ------------------------ +CTSM issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1979 (Need some changes to avoid negative h2osoi_ice in UpdateState_TopLayerFluxes) + + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + + Tests passed, some baseline differences as expected. + +Answer changes +-------------- + +Changes answers relative to baseline: YES + + Summarize any changes to answers, i.e., + - what code configurations: potentially all + - what platforms/compilers: potentially all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + roundoff + + Differences were only observed in a few tests: + - ERP_P36x2_Ld30.f45_f45_mg37.I2000Clm51FatesSpCruRsGs.cheyenne_intel.clm-FatesColdSatPhen + - ERI_D_Ld9_P48x1.T31_g37.I2000Clm50Sp.izumi_nag.clm-reduceOutput + - SMS_D_Ln9_P36x3.f19_g17.IHistClm50Sp.cheyenne_intel.clm-waccmx_offline + - SMS_D_Ln9_P36x3_Vmct.f19_g17.IHistClm50Sp.cheyenne_intel.clm-waccmx_offline + + If bitwise differences were observed, how did you show they were no worse + than roundoff? + + Only two tests had greater-than-roundoff-level differences in the + cprnc output: + SMS_D_Ln9_P36x3.f19_g17.IHistClm50Sp.cheyenne_intel.clm-waccmx_offline + and the mct equivalent, + SMS_D_Ln9_P36x3_Vmct.f19_g17.IHistClm50Sp.cheyenne_intel.clm-waccmx_offline. + To verify that differences were fundamentally no greater than + roundoff-level, I introduced temporary code; this minimal diff + ended up being enough to give just roundoff-level differences from baseline: + + diff --git a/src/biogeophys/SoilFluxesMod.F90 b/src/biogeophys/SoilFluxesMod.F90 + index c316d30fe..6a958c0ee 100644 + --- a/src/biogeophys/SoilFluxesMod.F90 + +++ b/src/biogeophys/SoilFluxesMod.F90 + @@ -45,7 +45,7 @@ subroutine SoilFluxes (bounds, num_urbanl, filter_urbanl, & + ! Update surface fluxes based on the new ground temperature + ! + ! !USES: + - use clm_time_manager , only : get_step_size_real + + use clm_time_manager , only : get_step_size_real, get_nstep + use clm_varcon , only : hvap, cpair, grav, vkc, tfrz, sb + use landunit_varcon , only : istsoil, istcrop + use column_varcon , only : icol_roof, icol_sunwall, icol_shadewall, icol_road_perv + @@ -79,7 +79,9 @@ subroutine SoilFluxes (bounds, num_urbanl, filter_urbanl, & + real(r8) :: t_grnd0(bounds%begc:bounds%endc) ! t_grnd of previous time step + real(r8) :: lw_grnd + real(r8) :: evaporation_limit ! top layer moisture available for evaporation + - real(r8) :: evaporation_demand ! evaporative demand + + real(r8) :: evaporation_demand ! evaporative demand + + real(r8) :: qflx_liqevap_orig + + real(r8) :: qflx_solidevap_orig + !----------------------------------------------------------------------- + + associate( & + @@ -291,6 +293,7 @@ subroutine SoilFluxes (bounds, num_urbanl, filter_urbanl, & + qflx_evap_soi(p) = qflx_evap_soi(p) - frac_sno_eff(c)*(evaporation_demand - evaporation_limit) + qflx_liqevap_from_top_layer(p) = max(h2osoi_liq(c,j)/(frac_sno_eff(c)*dtime), 0._r8) + qflx_solidevap_from_top_layer(p) = max(h2osoi_ice(c,j)/(frac_sno_eff(c)*dtime), 0._r8) + + + ! conserve total energy flux + eflx_sh_grnd(p) = eflx_sh_grnd(p) + frac_sno_eff(c)*(evaporation_demand - evaporation_limit)*htvp(c) + endif + @@ -307,6 +310,24 @@ subroutine SoilFluxes (bounds, num_urbanl, filter_urbanl, & + qflx_ev_snow(p) = qflx_evap_soi(p) + qflx_liqevap_from_top_layer(p) = max(h2osoi_liq(c,j)/dtime, 0._r8) + qflx_solidevap_from_top_layer(p) = max(h2osoi_ice(c,j)/dtime, 0._r8) + + + + if (h2osoi_liq(c,j) + h2osoi_ice(c,j) > 0._r8) then + + qflx_liqevap_orig = max(qflx_evap_soi(p)*(h2osoi_liq(c,j)/ & + + (h2osoi_liq(c,j)+h2osoi_ice(c,j))), 0._r8) + + else + + qflx_liqevap_orig = 0._r8 + + end if + + qflx_solidevap_orig = qflx_evap_soi(p) - qflx_liqevap_orig + + if (qflx_solidevap_from_top_layer(p) == 0._r8 .and. & + + qflx_solidevap_orig < 0._r8 .and. & + + qflx_solidevap_orig > -1.e-16_r8) then + + write(iulog,'(a, i0, 1x, i0, 1x, 5e24.17)') & + + 'WJS adj urb: solid orig le 0, new 0: nstep, p, orig, new, qflx_evap_soi, h2osoi_liq, h2osoi_ice = ', & + + get_nstep(), p, qflx_solidevap_orig, qflx_solidevap_from_top_layer(p), & + + qflx_evap_soi(p), h2osoi_liq(c,j), h2osoi_ice(c,j) + + qflx_solidevap_from_top_layer(p) = qflx_solidevap_orig + + end if + + + ! conserve total energy flux + eflx_sh_grnd(p) = eflx_sh_grnd(p) +(evaporation_demand -evaporation_limit)*htvp(c) + endif + + (Note that the diffs in + ERP_P36x2_Ld30.f45_f45_mg37.I2000Clm51FatesSpCruRsGs.cheyenne_intel.clm-FatesColdSatPhen + were ambiguous as to whether they were roundoff-level due to the + single-precision output in that test; I reran with double precision + for the baseline and the branch and was able to verify that the + diffs were only double-precision roundoff-level.) + +Other details +------------- + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1987 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev121 +Originator(s): glemieux (Gregory Lemieux,LBL/NGEET,510-486-5049) +Date: Wed Apr 5 13:34:09 MDT 2023 +One-line Summary: Changes soil moisture initialization logic for FATES + +Purpose and description of changes +---------------------------------- + +This PR changes the logic for soil moisture initialization to initialize +with wetter soils (75% of saturated water content, as opposed to 15% of +absolute water content) for all FATES configurations. The rationale for +this is that in FATES-nocomp simulations, Jessica Needham was finding very +high initial mortality rates in some seasonal tropical forest regions which +she traced it back to the initial soil moisture killing off plants before the +ecosystem could get established. + +This also updates the fates externals pointer to the latest tag which includes +a number of science updates since the last tag update and updates the the +default parameter file. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +Externals issues fixed (include issue #): + Partially addresses FATES#994 -- Bare ground establishment problem and increased soil moisture + +Known bugs found since the previous tag (include issue #): + #1979 -- Need to loosen tolerance on near-zero truncation of h2osoi_ice in UpdateState_TopLayerFluxes + +Notes of particular relevance for users +--------------------------------------- + +Changes made to namelist defaults (e.g., changed parameter values): + fates_paramfile updated to fates_params_api.25.4.0_12pft_c230327.nc + +Notes of particular relevance for developers: +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + This changes the starting level for a COLD start of soil moisture for ALL FATES cases to a much + higher value than for non-FATES. In the long run we'd like to have these the same and/or + have the value changable on the namelist. + +Testing summary: +---------------- + + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + cheyenne ---- OK + izumi ------- OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + FATES tests run against fates-sci.1.65.3_api.25.4.0-ctsm5.1.dev120 baseline + + +Answer changes +-------------- + +Changes answers relative to baseline: + + Changes answers in fates suite for all non-hydro fates tests since the soil + moisture initialization matches that of fates hydro now. Changes answer + for all fates testmods in the aux_clm suite as the science tag has iterated + forward by 4 minor version updates. All diffs accounted for with prior fates + suite tests. + +Other details +------------- + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + +- FATES: sci.1.61.0_api.25.0.0 -> sci.1.65.3_api.25.4.0 + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + + https://github.com/ESCOMP/CTSM/pull/1962 -- Cold start moisture for FATES increased + https://github.com/ESCOMP/CTSM/pull/1978 -- revert some commits now that FUNITCTSM works again + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev120 +Originator(s): sacks (Bill Sacks) +Date: Sat Mar 25 17:49:27 MDT 2023 +One-line Summary: Update externals and minor fixes + +Purpose and description of changes +---------------------------------- + +Main change is to update externals to cesm2_3_alpha12c-ish. + +Doing this exposed a few issues that are also fixed here. + +Also, reduce GU_LULCC tests down to a single test. + + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1968 (Reduce the GULU tests down to one) +- Resolves ESCOMP/CTSM#1971 (fsurdatmodifyctsm test should abort if it has trouble running the python script) + +Known bugs introduced in this tag (include issue #): +- ESCOMP/CTSM#1972 (FUNITCTSM test fails when run through run_sys_tests in upcoming ctsm5.1.dev120) + + +Notes of particular relevance for developers: +--------------------------------------------- + +Changes to tests or testing: +- Fortran unit tests now need to be run manually, since FUNITCTSM is + failing when run through run_sys_tests +- Reduced GU_LULCC tests down to a single test + + +Testing summary: +---------------- + + regular tests: + - aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing + - Fortran unit tests on cheyenne (until https://github.com/ESCOMP/CTSM/issues/1972 is resolved): from src, run: + ../cime/scripts/fortran_unit_testing/run_tests.py --build-dir `mktemp -d --tmpdir=. unit_tests.XXXXXXXX` + + aux_clm on cheyenne ------------ OK + aux_clm on izumi --------------- OK + Fortran unit tests on cheyenne - PASS + + For the two new tests (with BFAILs), ran them from dev119 with + comparison against this branch: + - ERP_D_Ld10_P36x2.f10_f10_mg37.IHistClm51BgcCrop.cheyenne_intel.clm-ciso_decStart + - SMS_Ld3_PS.f09_g17.IHistClm50BgcCrop.cheyenne_intel.clm-f09_dec1990Start_GU_LULCC + (with start date in the test mod changed to match the new version) + +Answer changes +-------------- + +Changes answers relative to baseline: YES, but just for certain compilers + + Summarize any changes to answers, i.e., + - what code configurations: all on certain compilers + - what platforms/compilers: + - nvhpc on cheyenne in non-debug cases (can be explained from + differences in compilation flags for non-debug cases, and also + some module differences) + - intel on izumi in debug cases (there were updates in ESMF + modules, though that's the same for other izumi compilers; I'm not + seeing other relevant diffs in ccs_config, so I'm not sure why we're + getting diffs here. I tried investigating, but ran into trouble trying + to get things to compile with the old ccs_config, so gave up on + tracking down the source of this difference) + + - nature of change (roundoff; larger than roundoff/same climate; new climate): + not investigated + +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- ccs_config: ccs_config_cesm0.0.38 -> ccs_config_cesm0.0.58 +- cime: cime6.0.45 -> cime6.0.100 +- cmeps: cmeps0.13.71 -> cmeps0.14.17 +- cdeps: cdeps0.12.65 -> cdeps1.0.7 +- share: share1.0.13 -> share1.0.16 +- pio: pio2_5_7 -> pio2_5_10 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev119 +Originator(s): slevis (Samuel Levis,SLevis Consulting,303-665-1310), ekluzek Erik Kluzek), lawrencepj1 (Peter Lawrence) +Date: Thu Mar 16 14:13:37 MDT 2023 +One-line Summary: Allow gross unrepresented land use transitions (PR #309) + +Purpose and description of changes +---------------------------------- + + Get gross unrepresented land use transitions working in CLM5.1. This is additional optional + data added to the landuse.timeseries files for transient simulations. The current landuse.timseries + files have this data, but it's set to zero. This data will be part of the CTSM5.2 surface dataset + (that is upcoming) and be on by default for clm5_3 physics. + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics +onfigurations? +(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 +hanges.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + Known bugs introduced in this tag (include issue #): #1968 + #1968 -- Reduce the GULU tests down to one + +Notes of particular relevance for users +--------------------------------------- +Changes made to namelist defaults (e.g., changed parameter values): + New namelist variable: do_grossunrep + +Changes to the datasets (e.g., parameter, surface or initial files): + Surface datasets may now contain non-zero gross unrepresented land use + transitions. + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: + Erik introduced new tests that can be identified by the GU_LULCC in + their names. I ran these with the test-suites and generated baselines + for them. + +Testing summary: +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + + +Answer changes +-------------- + +Changes answers relative to baseline: NO (unless see next) + + Code configurations: do_grossunrep = .true. and surface dataset + includes non-zero gross unrepresented land use + transitions. I (slevis) have not investigated the + nature of the changes. + +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/309 -- Added new files to allow Gross Unrepresented Land Use transition + https://github.com/ESCOMP/ctsm/pull/1965 -- update README + (NOT a PR) Update manage externals + + + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev118 +Originator(s): slevis (Samuel Levis,SLevis Consulting,303-665-1310) +Date: Sun Feb 5 18:31:29 MST 2023 +One-line Summary: Use conda environment rather than ncar_pylib with the fsurdat_modifier system test + +Purpose and description of changes +---------------------------------- + + Reason: ncar_pylib is going away soon. + + The fsurdat_modifier system test that we're discussing in this tag and + corresponding pull request (PR #1798) + FSURDATMODIFYCTSM_D_Mmpi-serial_Ld1.5x5_amazon.I2000Clm50SpRs.cheyenne_intel + stopped working when I updated the PR to dev117. + The test worked in the PR when I was still in dev115. + The test worked in vanilla dev117. + I fixed the failure by removing a restriction added in dev116 and the + corresponding override --allow_ideal_and_include_non_veg. + + I am removing another restriction added in dev116 and the corresponding + override --allow_dom_pft_and_idealized. This one didn't cause a test to fail + but unnecessarily restricted usage of the fsurdat_modifier tool. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +CTSM issues fixed (include CTSM Issue #): +Fixes #1786 -- ncar_pylib +Fixes #1925 -- replace ncar_pylib + +Testing summary: +---------------- + + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + clm_pymods test suite on cheyenne - PASS + (softlinks created for baselines to previous tag since this is bit-for-bit) + + any other testing (give details below): + + make all (in /python directory) - PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/1798 -- Have fsurdat_modifier system test use conda environment rather than ncar_pylib + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev117 +Originator(s): afoster (Adrianna Foster) +Date: Thu Feb 2 10:34:23 MST 2023 +One-line Summary: Updates to facilitate running FATES at NEON sites + +Purpose and description of changes +---------------------------------- + +Small updates to facilitate creation, modification, and +use of FATES-usable (i.e. 16-PFT) NEON surface data files and +user-mods for FATES NEON cases. + +Updated neon_surf_wrapper.py and modify_singlept_site_neon.py to include a +--16pft argument that will create and/or modify the 16-PFT versions of the +surface datasets, as well as a --mixed flag to the neon_surf_wrapper.py +which tells subset_data to not overwrite the surfae dataset to be just 100% +one PFT. + +Also corrects lat-lon being used for ONAQ NEON site and updates the surface +datasets for all NEON sites. + +Also adds a check to ensure that fire emission (-fire_emis) is not on if FATES +is being run. + + +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.) + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +CTSM issues fixed (include CTSM Issue #): +- Partially addresses ESCOMP/CTSM#1609(Get FATES working for NEON) + +Known bugs introduced in this tag (include issue #): +#1949 - Duplication problems in user_mods + +Known bugs found since the previous tag (include issue #): +#1948 - FATES and 78PFT surface datasets +FATES#983 - PRT2 test failing on izumi + + +Notes of particular relevance for users +--------------------------------------- + +Changes to the datasets (e.g., parameter, surface or initial files): +updated surface datasets for all NEON sites for big-leaf (78-PFT) and FATES (16-PFT) + + +Notes of particular relevance for developers: +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +Files changed in cime_config/usermods_dirs/NEON for big-leaf CLM must also +be changed in similar files in cime_config/usermods_dirs/NEON/FATES, as these are +currently duplicated. This duplication should be fixed at a later date. + +Changes to tests or testing: +Added a test in bld/unit_testers/build-namelist_test.pl to check that FATES and +fire emission cannot be on at the same time. + + +Testing summary: +---------------- + + build-namelist tests (if CLMBuildNamelist.pm has changed): + + cheyenne - PASS + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + cheyenne ---- OK + izumi ------- OK + + +Answer changes +-------------- + +Changes answers relative to baseline: + +Only for NEON sites. + + + Summarize any changes to answers, i.e., + - what code configurations: All configurations at NEON sites + - what platforms/compilers: All platforms when running NEON sites + - nature of change: updated surface datasets + + +Other details +------------- +#1933 - Update neon_sites_dompft.csv +#1932 - NEON FATES capabilities + + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev116 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Thu Jan 26 02:17:27 MST 2023 +One-line Summary: Small answer changes with bug fixes, zetamaxstable=2 for BHS, new single point fsurdat files + +Purpose and description of changes +---------------------------------- + +Change zetamaxstable to 2 when biomass-heat-storage is on. This changes simulation answers once they +run long enough to exceed that threshold. + +Also fix an issue with maintence respiration (MR) for BGC simulations. This changes answers for most BGC cases once +they run long enough. Live course MR wasn't included. + +Make the default for MOSART to send negative flow to river outlets. Also fix an issue with this mode. + +Bring in new surface datasets for the single point sites. We now make these sites using subset_data rather +than mksurfdata. + +Some new capability to the subset_data and modify_fsurdat tools. + +subset_data add options: +--out-surface -- To name the surface dataset on the command line rather than based on the current date +--cfg-file ----- Enter the default configure file to use rather than assume a fixed one + +modify_fsurdat add options: +--fsurdat_in -- to input on command line rather than config file +--fsurdat_out -- to input on command line rather than config file +--allow_ideal_and_include_non_veg -- to allow idealized and include_non_veg at the same time +--allow_dom_pft_and_idealized -- to allow dom_pft and idealized at the same time +--overwrite -- allow output file to be overwritten +config file options: +process_subgrid_section -- Read in an optional section to set the PCT_* fractions +process_var_list_section - Read in an optional section to set any variable on the file + +Add --silent option to python tools. + + +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 + +[ ] ctsm5_0-nwp + +[x] clm4_5 + + +Bugs fixed or introduced +------------------------ + +CTSM issues fixed (include CTSM Issue #): + Fixes #1676 -- live coarse maintenance respiration is not included in the root respiration + Fixes #1674 -- Change mksurfdata_map/mksurfdata_esmf Makefile to build single-point datasets using subset_data + Fixes #1809 -- Add ability to name a different default config file for subset_data + Fixes #1941 -- Add --silent option to ctsm_logging python infrastructure + Fixes #1942 -- Move py_env_create outside of tools test driver, as fails on compute nodes on cheyenne + Fixes #1924 -- Some updates to fsurdat_modifier script + Fixes #1690 -- Set and use zetamaxstable for BHS cases + Fixes #1689 -- Set zetamaxstable to 2 consistently for BHS + +Externals issues fixed (include issue #): + MOSART #58 Make negative and direct_to_outlet the default option + MOSART #56 Some issues with direct_to_outlet + +Notes of particular relevance for users +--------------------------------------- + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): tools + Just to the subset_data and fsurdat_modifier tools as outlined above + +Changes made to namelist defaults (e.g., changed parameter values): + zetamaxstable now 2.0 is use_biomass_heat_storage is on + +Changes to the datasets (e.g., parameter, surface or initial files): Single point fsurdat + 1x1_brazil, 1x1_numaIA, 1x1_smallvilleIA, 1x1_vancouverCAN, 1x1_mexicocityMEX, 1x1_urbanc_alpha + surface datasets and 1x1_brazil landuse.timeseries + +Notes of particular relevance for developers: +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + tools test now just activates the ctsm_py conda environment rather than creating it + There are seperate configure files for each urban surface dataset for modify_fsurdat + There is a 1850 configure file for subset_data + +Changes to tests or testing: + fsurdatmodifyctsm.py script adjusted to compensate for changes + python directory changes include unit and system tests to support updates + Single point mksurdata_map tests were removed + + +Testing summary: regular tools +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + build-namelist tests (if CLMBuildNamelist.pm has changed): + + cheyenne - PASS + + tools-tests (test/tools) (if tools have been changed): + + cheyenne - PASS + + 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 ---- OK + izumi ------- OK + +Answer changes +-------------- + +Changes answers relative to baseline: + + Summarize any changes to answers, i.e., + - what code configurations: clm5_1, supported single point resolutions + - what platforms/compilers: All + - nature of change: adjusted climate + clm5_1 changes because zetmaxstable set to 2.0. If a simulation runs long enough + this max will be hit and it will change answers once it does. But if stability + doesn't hit the max answers can be identical. + clm5_0 and clm4_5 also change if biomass heat storage is turned on + single point resolutions (i.e. 1x1_smallvilleIA, 1x1_brazil, 1x1_mexicocityMEX) have differences + maintenence respiration + + If this tag changes climate describe the run(s) done to evaluate the new + climate (put details of the simulations in the experiment database) + Keith Oleson ran experiments with changing zetamaxstable some slides showing this are here: + https://docs.google.com/presentation/d/1u6ycr7F97QYYRcRfEdD9yIxH75diUx2r + + +Other details +------------- + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): mosart + mosart updated to mosart1_0_48 + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + #1812 -- Get single point surface datasets from subset_data rather than mksurfdata + #1802 -- Make zetamaxstable consistently 2.0 when BHS on + #1915 -- Fix issue #1864 in release documentation + Update manage_externals (direct push to main-dev) + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev115 +Originator(s): rgknox (Ryan Knox) +Date: Fri Dec 2 15:45:32 MST 2022 +One-line Summary: API compatability with FATES V2 nutrient dynamics + +Purpose and description of changes +---------------------------------- + +This set of changes allows CTSM to continue API compatability with changes to the FATES API. FATES has updated its nutrient dynamics routine, and required a modification to the test environment, some minor updates to variable dimensions in the history, and a call to a new FATES history routine. Implicitly, the updating of the FATES tag introduces new content in the FATES model since the last API update (mostly bug fixes). + + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + + +The changes here will only affect FATES simulations. Any FATES simulation will be affected. Carbon-only FATES simulations will not have qualitatively different results since the last API update (but will have bit-for-bit differences). Nutrient enabled FATES simulations (not fully coupled to CLM, only via prognosed plant N,P boundaries), and FATES-Hydro simulations (bug fix) will be different. + +Bugs fixed or introduced +------------------------ + +See the descriptions in FATES tags between sci.1.57.4_api.24.0.0 to sci.1.60.0_api.25.0.0 for details on FATES changes in this tag. + +CTSM issues fixed (include CTSM Issue #): None + +Externals issues fixed (include issue #): None + +Known bugs introduced in this tag (include issue #): None + +Known bugs found since the previous tag (include issue #): None + + +Notes of particular relevance for users +--------------------------------------- + +This set of changes comes with an updated FATES parameter file. This includes format changes only. No changes to variable values were introduced. Format changes are relegated to new parameters and/or name changes only. These changes are encapsulated in: fates/parameter_files/archive/apichange_24.2to25.xml + + +Notes of particular relevance for developers: +--------------------------------------------- + +Nothing of note regarding changes for developers. + +Changes to tests or testing: New history variables were added to the FATES PRT2 user_nl_clm. + + +Testing summary: +---------------- + +regular + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- nominal: /glade/scratch/rgknox/tests_1201-121507ch + izumi ------- nominal: /scratch/cluster/rgknox/tests_1201-122133iz + + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + cheyenne ---- nominal against ctsm5.1_dev112 /glade/scratch/rgknox/tests_1130-082657ch + izumi ------- NA + +Answer changes +-------------- + +Changes answers relative to baseline: FATES answers changed relative to base. Explanation already provided (nutrient and hydro changes are qualitative). + + +Other details +------------- + +FATES external was updated. + +Pull Requests that document the changes (include PR ids): + +https://github.com/ESCOMP/CTSM/pull/1874 +https://github.com/NGEET/fates/pull/880 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev114 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326)/@wwieder/@olyson/@ka7eh +Date: Sat Nov 19 18:11:15 MST 2022 +One-line Summary: Some NEON updates fixing AG sites, update MOSART, small fixes + +Purpose and description of changes +---------------------------------- + +Minor changes to python scripts and usermod_dirs for NEON cases. Also update the lightning mesh file so that it goes with the +smaller lightning file. Have NEON use new use-cases for 2018 and 2018-PD conditions for CLM. Have NEON +Agricultural sites run with prognostic crop. Simple fix for warning about NaN's in import/export data from/to coupler. + +Get NEON tests working on izumi, add --inputdata-dir to subset_data and modify_singlept_site_neon.py so they aren't tied +to only running on cheyenne. + +Also update MOSART with fixed for direct_to_outlet option. + +Add error checking in ParitionWoodFluxes. Fix value of albgrd_col in SurfaceAlbefdoType.F90. +Previously, the wrong value (albgri_col) was being set in InitHistory. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +CTSM issues fixed (include CTSM Issue #): + Fixes #1871 -- Error in NEON surface datasets for AG sites + Fixes #1876 -- NEON data in container + Fixes #1889 -- NEON AG sites are running without prognostic crop + Fixes #1363 -- 2018_control and 2018-PD_transient use-cases for NEON + Fixes #1896 -- Improve misleading error message in check_for_nans + Fixes #1263 -- Fix partitionWood fluxes + Fixes #1788 -- Fix albgrd_col + Fixes #1901 -- Fix NEONSITE YELL + + Some on #1910 -- add pandas version check to modify_singlept_site_neon.py so will abort cleanly if version not updated + + Known bugs found since the previous tag (include issue #): + #1910 -- modify_singlept_site_neon.py has trouble on izumi + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): + NEON users: use neon_gcs_upload now. Filenames for NEON surface + datasets are changed. Start and end of simulations is different + for some sites, and managed by the user-mod-directories. The NEON + user-mod assumes transient cases will run with a transient compset + and the settings are slightly different for transient vs control + including pointing to 2018_control or 2018-PD_transient use-cases. + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + Add notes to python tools to run using conda environment setup in py_env_create + +Changes made to namelist defaults (e.g., changed parameter values): + New use cases: 2018_control and 2018-PD_transient + +Changes to the datasets (e.g., parameter, surface or initial files): + New updated NEON surface datasets + +Notes of particular relevance for developers: +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + Remove toolchain python scripts as this work was moved over to the ctsm5.2 development + +Changes to tests or testing: + Add a run_black target to the python directory Makefile to run black and not just do a black check + Add python modules needed for neon scripts to conda py_create_env conda environment + +Testing summary: regular, tools +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + build-namelist tests (if CLMBuildNamelist.pm has changed): + + cheyenne - OK (141 NEON tests are different than baseline) + + tools-tests (test/tools) (if tools have been changed): + + cheyenne - OK + cheyenne (NEON) - PASS + izumi (NEON) -- OK (modify_singlept_site_neon.py test fails due to #1910) + izumi -- OK + + python testing (if python code has changed; see instructions in python/README.md; document testing done): + + Acheyenne -- PASS + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + + any other testing (give details below): + run_neon.py ran for all NEON sites ad, post-ad, and transient + +Answer changes +-------------- + +Changes answers relative to baseline: No (other than NEON sites, and if direct_to_outlet turned on in MOSART) + + Summarize any changes to answers, i.e., + - what code configurations: NEON or if bypass_routing_option==direct_to_outlet in MOSART + - what platforms/compilers: all + - nature of change: + NEON AG sites are significantly different + + NEON sites reran and reevaluated + MOSART direct_to_outlet option evaluated by @swensosc and @olyson + +Other details +------------- + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): mosart + mosart updated from mosart1_0_45 to to mosart1_0_47 (asynchronous changes, and direct_to_outlet fixes) + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + #1872 -- NEON updates + #1814 -- Add error checking in partitionWoodFluxes + #1810 -- Fix albdgrd_col value + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev113 +Originator(s): sacks (Bill Sacks), ekluzek (Erik Kluzek), jedwards (Jim Edwards) +Date: Fri Oct 28 11:00:26 MDT 2022 +One-line Summary: Fix some compsets; add only clauses for ESMF use statements + +Purpose and description of changes +---------------------------------- + +(1) Fix I1850Clm51BgcCrop compset (was using CLM50 instead of CLM51) +- Resolves https://github.com/ESCOMP/CTSM/issues/1882 + +(2) Change LND_TUNING_MODE for DATM%CPLHIST compsets to use CAM tunings + since these cases typically use atmosphere forcings from CAM. +- Resolves https://github.com/ESCOMP/CTSM/issues/1885 + +(3) Add "only" clauses to ESMF use statements +- Resolves https://github.com/ESCOMP/CTSM/issues/1846 + + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): +- Resolves https://github.com/ESCOMP/CTSM/issues/1882 (I1850Clm51BgcCrop actually uses CLM50) +- Resolves https://github.com/ESCOMP/CTSM/issues/1885 (CPLHIST compsets should use same land tunings as for CAM compsets) +- Resolves https://github.com/ESCOMP/CTSM/issues/1846 (Add "only" clause to a problematic use statement in lnd_comp_nuopc for cce compiler) + +Known bugs introduced in this tag (include issue #): +- https://github.com/ESCOMP/CTSM/issues/1887 (Gnu MCT builds will fail starting in ctsm5.1.dev113) + + +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + +Answer changes +-------------- + +Changes answers relative to baseline: YES, but just for limited cases + + Summarize any changes to answers, i.e., + - what code configurations: + - Cases with I1850Clm51BgcCrop compset + - Cases with DATM%CPLHIST + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff; may be new climate + +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1870 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev112 +Originator(s): adrifoster (Adrianna Foster), glemieux (Gregory Lemieux, LBL/NGEET) +Date: Sat Oct 15 16:26:28 MDT 2022 +One-line Summary: Rework fates test definitions and add new fates tests + +Purpose and description of changes +---------------------------------- + +This tag includes a number of updates to the fates test definitions and test list to gain more coverage: + +(1) Reorder and update the fates test definitions so that fates satellite phenology mode +can be configured for cases using a compset. + +(2) Add a long-term exact restart test to catch issues that may arise due to updates to +fates procedure calls during end of year simulation dates. + +(3) Add a no-competition + fixed biogeography, non-satellite phenology test definition to provide +additional mode combination configuration. + +(4) Update the fates externals tag to incorporate a fix a vegetation temperature exact restart +issue discovered while implementing (1) above. + +(5) Truncate all testmods starting with "Fates" to mitigate running over the limits on the length +of testnames, typically when specifying custom `test_id` using `run_sys_test`. + +(6) Updates the expected failures list. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +CTSM issues fixed (include CTSM Issue #): + Fixes #1839 - Add more FATES tests that are longer than one year + Fixes #1817 - Make sure at least one test running FatesSp just uses the compset and not a test-mod directory + Fixes #1551 - Add FATES NoComp + FixedBiogeog regression test to the fates category of tests + +Externals issues fixed (include issue #): + FATES#908 - Bareground area_pft not being carried over during restarts + FATES#911 - 24-hr running mean vegetation temperature is not b4b on threaded exact restart SatPhen test + +Notes of particular relevance for developers: +--------------------------------------------- + +Changes to tests or testing: + FATES#897 is still unresolved, but is now covered by this updated test list. + FATES#701 was reopened + +Testing summary: +---------------- + + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + build-namelist tests (if CLMBuildNamelist.pm has changed): + + cheyenne - PASS + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + cheyenne ---- OK + izumi ------- OK + + any other testing (give details below): + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + FATES tests run against both fates-sci.1.58.1_api.24.1.0-ctsm5.1.dev111 to check the + fates update against the previous baseline is in line with expected DIFFs and + fates-sci.1.59.7_api.24.1.0-ctsm5.1.dev111. + +Answer changes +-------------- + +Changes answers relative to baseline: + Yes, for fates run modes only due non-b4b updates in multiple fates tags. These + include both software bug fixes and answer changing science updates. + +Other details +------------- + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): fates + +Pull Requests that document the changes (include PR ids): + + https://github.com/ESCOMP/CTSM/pull/1827 + https://github.com/ESCOMP/CTSM/pull/1849 + + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev111 +Originator(s): jedwards (Jim Edwards), wwieder (Will Wieder), sacks (Bill Sacks) +Date: Wed Oct 5 13:05:52 MDT 2022 +One-line Summary: Fixes for NEON cases + +Purpose and description of changes +---------------------------------- + +Two sets of fixes for NEON cases: + +(1) Fixes for leap year handling when there are discrepancies between +the model and the DATM forcing data in terms of whether the current year +is a leap year. This involved updates to the share and cdeps externals +from Jim Edwards. + +(2) Other fixes for NEON cases from Will Wieder, as documented in +https://github.com/ESCOMP/CTSM/issues/1860 + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1858 (calendar error in ESMF) +- Resolves ESCOMP/CTSM#1860 (run_neon not working as expected) + +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- PASS + izumi ------- OK + +Answer changes +-------------- + +Changes answers relative to baseline: YES, but just for NEON cases + + Summarize any changes to answers, i.e., + - what code configurations: NEON cases + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + larger than roundoff + + In testing, answer changes only show up in SMS_D_Mmpi-serial.CLM_USRDAT.I1PtClm51Bgc.izumi_nag.clm-default--clm-NEON-NIWO + +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cdeps: cdeps0.12.63 -> cdeps0.12.65 +- share: share1.0.12 -> share1.0.13 + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1862 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev110 +Originator(s): slevis (Samuel Levis, 303-665-1310) +Date: Mon Sep 26 17:31:22 MDT 2022 +One-line Summary: Introduction of modify_meshes tool for use in I-cases and F-cases + +Purpose and description of changes +---------------------------------- + + Merging the modify_meshes tool to main. This tool is a follow-up to the + modify_fsurdat tool for I- and F-cases where users are adding land to + areas that by default were expected as ocean. In such cases, fsurdat + modifications will take effect only if users also modify the mask_mesh + file which ultimately determines the landmask used by the CTSM. + Details in the tool's README. + + Adding test_sys_mesh_modifier.py to python system tests. + + Combining /modify_fsurdat and /modify_mesh_mask directories into one + directory: /modify_input_files + + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): + Fixes #1644 -- Prospective new tool for user to easily modify ocn/lnd mask in their CESM cases + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: + Adding test_sys_mesh_modifier.py to python system tests. This requires + "module load nco" before running "make stest" or "make all" in the /python + directory. + +Testing summary: +---------------- +[Remove any lines that don't apply.] + + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + python testing (if python code has changed; see instructions in python/README.md; document testing done): + + cheyenne - PASS + izumi - mostly PASS if approp. environment is loaded, but one test fails + because it requires "module load nco" + clm_pymods on cheyenne - PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + +Answer changes +-------------- + +Changes answers relative to baseline: No + +Other details +------------- + +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/CTSM/pull/1677 -- Modify mesh mask with new mesh_mask_modifier tool + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev109 +Originator(s): slevis (Samuel Levis,SLevis Consulting,303-665-1310) +Date: Mon Sep 26 10:46:33 MDT 2022 +One-line Summary: If not MIMICS, do not output certain MIMICS history fields + +Purpose and description of changes +---------------------------------- + + Surrounded the "MIC" variables with mimics if-statements to prevent + from sending to history when not mimics. The MICC_HR fields are already + inactive, so nothing will appear different in history for these. The + TOTMIC* fields are active, so they will stop appearing in history when + not mimics. + + In SoilBiogeochemCarbonFluxType.F90 T_SCALAR is Century-specific, so + I put a corresponding if-statement around that one. + + We could stop sending to history a few more fields when mimics is off, + but they would require if-statements while looping through + ndecomp_cascade_transitions or ndecomp_pools. All such fields are + already "inactive" in SoilBiogeochemCarbonFluxType.F90. + + The test-suite with all those fields changed to "active" PASSed. + So not adding if statements for those. + + Other checks: + - I looked at MICC_HR in a CENTURY simulation and in a MIMICS + simulation and it looked the same: Zeros over land and 1e36 over ocean. + - The rest of the "inactive" variables are valid variables for both + CENTURY and MIMICS. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): #1737 + +Testing summary: +---------------- + + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- PASS + + any other testing (give details below): See description text at top. + + +Answer changes +-------------- +Changes answers relative to baseline: NO (but field lists differ) + +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/1745 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev108 +Originator(s): adrifoster (Adrianna Foster) +Date: Thu Sep 8 08:22:38 MDT 2022 +One-line Summary: Connect ozone from atmosphere + +Purpose and description of changes +---------------------------------- + +Allow atmospheric input of ozone partial pressure (monthly, mol/mol) to CTSM and +use this ozone in the OzoneMod module. + +Specific notes: Add ozone to atm2lndType and also add as an output history variable (ATM_O3). +Read in O3 in lnd_import_export. Connect to the OzoneMod module: +in CalcOzoneUptakeOnePoint we now use this input ozone, rather than a static parameter. + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? No + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +CTSM issues fixed (include CTSM Issue #): +- Partially addresses ESCOMP/CTSM#270 (Receive ozone from atmosphere) + + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): Note that +currently ozone is used as an interpolated monthly variable, and is not yet +downscaled to the sub-daily scale. This will be done in a susequent PR. + +Changes to the datasets (e.g., parameter, surface or initial files): New ozone +input files used in DATM mode to drive OzoneMod + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + All pass with only FIELDLIST diffs except for O3 tests, which have BASELINE DIFFs and NLCOMP fails. + This makes sense because we are using different ozone values to drive the OzoneMod: + + ERP_D_Ld5_P48x1.f10_f10_mg37.I2000Clm50Sp.izumi_nag.clm-o3lombardozzi2015 + ERP_P72x2_Ly3.f10_f10_mg37.I2000Clm50BgcCrop.cheyenne_intel.clm-irrig_o3falk_reduceOutput + + + cheyenne ---- OK + izumi ------- PASS + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes + + Summarize any changes to answers, i.e., + - what code configurations: when o3_veg_stress_method = 'stress_falk' or 'stress_lombardozzi2015' in user_nl_clm + - what platforms/compilers: all + - nature of change: larger than roundoff + +Other details +------------- + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/1837 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev107 +Originator(s): adrifoster (Adrianna Foster) +Date: Wed Sep 7 14:40:33 MDT 2022 +One-line Summary: Update Externals + +Purpose and description of changes +---------------------------------- + +Brings CTSM up to date with the latest versions of CDEPS, CMEPS, and CPL7 to +facilitate needed changes in those components. + + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +[X] clm5_1 + +[X] clm5_0 + +[X] ctsm5_0-nwp + +[X] clm4_5 + + +Bugs fixed or introduced +------------------------ + +CTSM issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1822 (seq_drydep_mod should be replaced by shr_drydep_mod) + +Known bugs introduced in this tag (include issue #): +- ESCOMP/CTSM#1844 (Create new auxiliary history file for cplhist test with ndep data) + + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users: You can no longer run cplhist-forced cases with old cplhist files. +You will need to either use an older version of CTSM or use an updated version of the cplhist files. + +Testing summary: +---------------- + + build-namelist tests (if CLMBuildNamelist.pm has changed): + + cheyenne - PASS + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- PASS + + Two expected fails on cheyenne, one new expected fail due to issue just introduced (#1844) + + FAIL SMS_D_Ld1_PS.f09_g17.I1850Clm50BgcSpinup.cheyenne_intel.clm-cplhist RUN time=62 (EXPECTED FAILURE) + FAIL SMS_D.f10_f10_mg37.I2000Clm51BgcCrop.cheyenne_nvhpc.clm-crop RUN time=12 (EXPECTED FAILURE) + + +Answer changes +-------------- + +Changes answers relative to baseline: YES + + Summarize any changes to answers, i.e., + - what code configurations: almost all configurations due to major change on CDEPS side to coszen angle time + interpolation (https://github.com/ESCOMP/CDEPS/pull/149). DIFFS for single-point cases from + update to how ZBOT is set (https://github.com/ESCOMP/CDEPS/pull/169), and NLDAS cases from + a fix for zero pressure in nldas2 configurations (https://github.com/ESCOMP/CDEPS/pull/159). + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): larger than roundoff + +Other details +------------- +List any externals directories updated: + +-cdeps: cdeps0.12.41 -> cdeps0.12.63 +-cmeps: cmeps0.13.68 -> cmeps0.13.71 +-cpl7: cpl7.0.13 -> cpl7.0.14 + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/1843 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev106 +Originator(s): mvertens (Mariana Vertenstein), sacks (Bill Sacks) +Date: Thu Aug 4 15:11:31 MDT 2022 +One-line Summary: Reuse some files generated in initialization when rerunning + +Purpose and description of changes +---------------------------------- + +A new directory is now in your run directory init_generated_files. These +two run time generated files - finidat_interp_dest.nc and the land +fraction file ctsm_landfrac.nc (which is new in this PR) - are put in +that directory when they are created. Then, if they already exist, they +are reused rather than being regenerated. (Technically, it looks for a +status file that flags successful creation of this file.) This applies +when you rerun a startup (non-restart) run a second or subsequent time, +as is common when doing development and testing. + +For tests, theinit_generated_files directory is removed before running, +so that rerunning a test will do the same thing the second time. + +There are occasional, rare cases when a user would need to manually +remove the init_generated_files directory – e.g., when changing things +about N dominant landunits or PFTs. + +Also, output was cleaned up in a few cases so that it did not span +multiple lines. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Notes of particular relevance for users +--------------------------------------- +Caveats for users (e.g., need to interpolate initial conditions): +- If you do a run, then change a runtime parameter that makes the + previous finidat_interp_dest.nc file incompatible with the new + configuration (e.g., changing N dominant landunits or PFTs) then + rerun, you will need to remove the contents of the + run/init_generated_files subdirectory before rerunning. (You do *not* + need to remove this directory when changing finidat in user_nl_clm: in + this specific case, CTSM detects the change and regenerates + finidat_interp_dest even if one already exists.) + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- Removed finidat_interp_dest from the namelist; it is now hard-coded to + finidat_interp_dest.nc. (This seemed not to be used much, if ever, and + supporting this would have complicated the logic in this PR.) + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: +- Added a new test using a new test type (defined in CIME): + REUSEINITFILES. This runs two cases and compares them: the first runs + a case as normal; the second copies in the init_generated_files + directory from case one and then does a run that uses these saved + init_generated_files. This ensures that using the init_generated_files + does not change answers. + + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- PASS + izumi ------- PASS + + Two tests failed initially due to what appeared to be system issues: + - ERP_P36x2_D_Ld5.f10_f10_mg37.I1850Clm45BgcCru.cheyenne_intel.clm-default + (runtime error initially, passed upon rerun) + - SMS_Ly5_Mmpi-serial.1x1_brazil.IHistClm50BgcQianRs.izumi_intel.clm-newton_krylov_spinup + (build failure initially; passed after removing the build + directory, rebuilding and rerunning) + +Answer changes +-------------- + +Changes answers relative to baseline: NO + + Most FATES tests had baseline comparison failures, just for the + field fates_levcdam, but this turned out to be due to an error in + the stored baselines for ctsm5.1.dev104 that has now been corrected. + +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: cime6.0.40 -> cime6.0.45 + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1793 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev105 +Originator(s): slevis (Samuel Levis,SLevis Consulting,303-665-1310) +Date: Tue Jul 26 23:57:31 MDT 2022 +One-line Summary: make interfaces more similar between fsurdat_modifier and subset_data tools + +Purpose and description of changes +---------------------------------- + + The tools modify_fsurdat and subset_data have similar options + modify_fsurdat: zero_nonveg + subset_data: include-nonveg + + modify_fsurdat: dom_plant + subset_data: dom-pft + + Make more similar and use README file for documenting modify_fsurdat. + There's potential for additional changes to be addressed later. + + Change name of manage_python_env to py_env_create as agreed in CTSM software meeting + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): #1662 + +Testing summary: +---------------- + + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + python testing (if python code has changed; see instructions in python/README.md; document testing done): + + cheyenne - PASS + + clm_pymods test suite on cheyenne - PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- +Changes answers relative to baseline: No + +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/1714 + https://github.com/ESCOMP/ctsm/pull/1799 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev104 +Originator(s): glemieux (Gregory Lemieux,LBL/NGEET,510-486-5049) +Date: Mon Jul 18 15:45:00 MDT 2022 +One-line Summary: Update to fates history names and machine configuration + +Purpose and description of changes +---------------------------------- + +This PR includes a number of minor fixes and updates associated with FATES. +A duplicate filter for all soils that was introduced during the the initial +implementation of FATES-SP mode is removed. A small set of FATES history +variable names have been updated necessitating an update to the testmod +user namelists. The ccs_config and cime externals have been updated to +include the FATES development workstation, lobata. The cime tag update +is necessary to include a fix enabling support for module initilization +on certain linux distributions (https://github.com/ESMCI/cime/issues/4260). +Finally, a minor fix was included to the initialization of the fates_levcdam +dimension that was introduced with the last fates api update. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +[Remove any lines that don't apply. Remove entire section if nothing applies.] + +CTSM issues fixed (include CTSM Issue #): + Fixes #1794 -- Get lobata in ccs_config and working with NUOPC + Fixes #1488 -- Remove all_soil_patches filter and use and filter_inactive_and_active(nc)%soilp in it's place + +Testing summary: +---------------- + + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + tools-tests (test/tools) (if tools have been changed): + + cheyenne - PASS + + 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 ---- OK + izumi ------- OK + + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + cheyenne ---- OK + izumi ------- OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + FATES tests run against fates-sci.1.58.0_api.24.0.0-ctsm5.1.dev103 baseline + +Answer changes +-------------- + +Changes answers relative to baseline: + + Changes answers due to a correction only for a subset of fates testmods for the fates_levcdam dimension. + NLCOMP and FIELDLIST differences only due to expected ccs_config and fates updates. + +Other details +------------- + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + +- CIME: cime6.0.27 -> cime6.0.40 +- ccs_config: ccs_config_cesm0.0.36 -> ccs_config_cesm0.0.38 +- FATES: sci.1.58.0_api.24.0.0 -> sci.1.58.1_api.24.1.0 + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + +https://github.com/ESCOMP/CTSM/pull/1515 +https://github.com/NGEET/fates/pull/854 + + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev103 +Originator(s): sacks (Bill Sacks) +Date: Tue Jul 12 22:27:30 MDT 2022 +One-line Summary: Fix accumulation variables when changing model time step + +Purpose and description of changes +---------------------------------- + +Accumulation variables (e.g., 1-day or 10-day averages) were writing and +reading their accumulation period (expressed in time steps) to the +restart file. This caused incorrect behavior when changing the model +time step relative to what was used to create the initial conditions +file (typically a 30-minute time step). So, for example, if you are +using a 15-minute time step with an initial conditions file that +originated from a run with a 30-minute time step (at some point in its +history), then an average that was supposed to be 10-day instead becomes +5-day; an average that was supposed to be 1-day becomes 12-hour, etc. +(The issue is that the number of time steps in the averaging period was +staying fixed rather than the actual amount of time staying fixed.) + +For our out-of-the-box initial conditions files, this only impacts runs +that use something other than a 30-minute time step. Typically this +situation arises in configurations with an active atmospheric model that +is running at higher resolution than approximately 1 degree. It appears +that the biggest impacts are on VOC emissions and in BGC runs; we expect +the impact to be small (but still non-zero) in prescribed phenology (SP) +runs that don't use VOC emissions. + +This tag fixes this issue by no longer writing or reading accumulation +variables' PERIOD to / from the restart file: this isn't actually needed +on the restart file. + +See some discussion in https://github.com/ESCOMP/CTSM/issues/1789 for +more details, and see +https://github.com/ESCOMP/CTSM/pull/1802#issuecomment-1182743649 for +some discussion of outstanding weirdness that can result for +accumulation variables when changing the model time step. The summary of +that comment is: There could be some weirdness at the start of a run, +but at least for a startup or hybrid run, that weirdness should work +itself out within about the first averaging period. A branch or restart +run could have some longer-term potential weirdness, so for now I think +we should recommend that people NOT change the time step on a branch or +restart run. With (significant?) additional work, we could probably +avoid this additional weirdness, but my feeling is that it isn't worth +the effort right now. In any case, I feel like my proposed fix will +bring things much closer to being correct than they currently are when +changing the time step. + + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1789 (A bug in calculating accumulated fields + (24/240 hours averaged) when using a smaller timestep) + +Known bugs found since the previous tag (include issue #): +- ESCOMP/CTSM#1804 (NSTEPS 0 everywhere for accumulation fields on some + initial conditions files) + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- PASS + + Also ran these tests with comparisons against baselines: + SMS_D_Ld3.f10_f10_mg37.I1850Clm50BgcCrop.cheyenne_intel.clm-shortts + SMS_D_Ld3.f10_f10_mg37.I1850Clm50Sp.cheyenne_intel.clm-shortts + SMS_Lm1.f10_f10_mg37.I1850Clm50Sp.cheyenne_intel.clm-shortts + + + where 'clm-shortts' was a temporary testmod inheriting from default + and adding "./xmlchange ATM_NCPL=96". + +Answer changes +-------------- + +Changes answers relative to baseline: YES, but just for configurations +with a time step that is not the standard 30-minute time step. + + Summarize any changes to answers, i.e., + - what code configurations: Simulations with a time step that is not 30-minutes + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + + Not investigated carefully. There can be substantial differences + for VOC emissions, and differences may also be significant in BGC + cases. Differences in SP cases appear to be more limited, since it + looks like the only differences in SP cases (other than VOC + emissions) come from differences in the T10 field (10-day average + temperature), which is used in some photosynthesis calculations. + + For I compset configurations in the test suite, the only + configurations with time steps differing from 30 minutes are: + - mexicocity tests (but for the SP cases in the test suite, the + answer changes are diagnostic-only in a couple of fields, and + the short tests in the test suite don't produce any CLM + history files, so answer changes don't show up) + - vancouver tests that are long enough to produce history files + so that the diagnostic-only differences show up + - USUMB tests + - waccmx_offline (but, as with the mexicocity tests, these tests + are too short to produce history output) + + The only specific tests in the test suite with answer changes are: + SMS_Ld12_Mmpi-serial.1x1_vancouverCAN.I1PtClm50SpRs.cheyenne_gnu.clm-output_sp_highfreq + SMS_D_Lm1_Mmpi-serial.CLM_USRDAT.I1PtClm50SpRs.cheyenne_intel.clm-USUMB_nuopc + SMS_D_Vmct_Lm1_Mmpi-serial.CLM_USRDAT.I1PtClm50SpRs.cheyenne_intel.clm-USUMB_mct + +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1802 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev102 +Originator(s): sacks (Bill Sacks) +Date: Mon Jul 11 12:14:48 MDT 2022 +One-line Summary: Fix LILAC interface to PIO + +Purpose and description of changes +---------------------------------- + +Fixes the LILAC interface to PIO. + +This involved splitting shr_pio_mod into two pieces: + +(1) Reading configuration files and initializing PIO appropriately + +(2) Storing information about PIO (io system descriptors, io types, io +formats) and providing an interface to query this information + +Piece (2) lives in the share code and is used regardless of the driver. +Piece (1) is driver-specific, so for now we have three versions of that +piece: one in CMEPS (created by extracting the initialization pieces +from cmeps/cesm/nuopc_cap_share/shr_pio_mod.F90), one in the cpl7 repo +(created by extracting the initialization pieces from +share/src/shr_pio_mod.F90), and one in CTSM's LILAC directory (which is +essentially identical to the one in the cpl7 repo). Piece (2) – the +actual share code piece – is used by components (their use statements +stay exactly as they are now) as well as by piece (1) (which is +responsible for setting the module-level variables in piece (2)). See +https://github.com/ESCOMP/CTSM/issues/1759#issuecomment-1171779485 for +more context. + +Much of the work here was in externals: +https://github.com/ESCOMP/CESM_share/pull/34, +https://github.com/ESCOMP/CMEPS/pull/306 and +https://github.com/ESCOMP/CESM_CPL7andDataComps/pull/16. So this PR +updates those externals to versions with those changes. In addition, +changes were needed within LILAC - to implement the LILAC version of +piece (1) described above. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1759 (LILAC test failing in ctsm5.1.dev095 with + cime/share/pio update) + +Externals issues fixed (include issue #): +- https://github.com/ESCOMP/CESM_share/issues/33 (ctsm lilac should use + old shr_pio_mod.F90) + + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- PASS + izumi ------- PASS + + In addition, to verify that the LILAC changes don't change answers, I ran + LILACSMOKE_D_Ld2.f10_f10_mg37.I2000Ctsm50NwpSpAsRs.cheyenne_intel.clm-lilac + with my changes rebased onto dev097 (in order to avoid recent answer + changing tags), with comparisons against dev094 (which was the last + time that test passed). It was bit-for-bit. + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- CMEPS: cmeps0.13.63 -> cmeps0.13.68 +- CPL7: cpl7.0.12 -> cpl7.0.13 +- share: share1.0.11 -> share1.0.12 + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1800 +https://github.com/ESCOMP/CESM_share/pull/34 +https://github.com/ESCOMP/CMEPS/pull/306 +https://github.com/ESCOMP/CESM_CPL7andDataComps/pull/16 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev101 +Originator(s): samrabin (Sam Rabin) +Date: Mon Jul 11 11:48:48 MDT 2022 +One-line Summary: Fix winter wheat sowing window bugs + +Purpose and description of changes +---------------------------------- + +Fixes problems with winter wheat sowing criteria: The "normal" sowing +condition for winter wheat only accounted for whether today is on/after +the first day of the planting window; it did not also require that today +is on/before the last day of the window. Additionally, the "last chance" +condition allowed planting anytime on/after the last day of the window. +See https://github.com/ESCOMP/CTSM/issues/1691 for details. + +Winter wheat is not present in our standard surface datasets, so this +has no impact on typical simulations. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +CTSM issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1691 (Problems with winter wheat sowing criteria) + + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + +Answer changes +-------------- + +Changes answers relative to baseline: YES, but just for winter wheat + + Summarize any changes to answers, i.e., + - what code configurations: Only configurations that include winter wheat + (this is non-standard, but winter wheat is included in smallville + tests, so smallville tests change answers) + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + not investigated, but expected to be larger than roundoff/same + climate (with possibly large local changes in areas with large + amounts of winter wheat) + + +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1692 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev100 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Tue Jul 5 17:40:21 MDT 2022 +One-line Summary: Start bringing in matrixcn overall options and sparse matrix multiplier code, misc updates + +Purpose and description of changes +---------------------------------- + +First Commit of CN Matrix Solution: +Start bringing in the use_matrixcn and use_soil_matrixcn control options for the Carbon/Nitrogen BGC model using +the matrix solution methodology developed by Dr. Yiqi Luo and his EcoLab members: Drs. Xingjie Lu, +Yuanyuan Huang and Zhengguang Du, at Northern Arizona University + +Work on Anomaly forcing for SSEP scenarios: +Do some work on anomoly forcing for SSP scenarios. Update the script in tools/contrib to work with the latest +data and replicate results of Keith Oleson and Sean Swenson. Add some test cases for it. + +Python Environment Management using Conda: +More work on the manage_python_env script to setup the "ctsm_py" conda environment. This now works for UCAR machines +(such as cheyenne and casper) as well as CGD machines (like izumi). This script can also be called for tools, and +the test tools mechanism is now using it rather than ncar_pylib. + +./manage_python_env + +SCAM Fix: +Add checkimport method for CMEPS so that single-column case can work with SCAM, from Jim Edwards. + +Black Formatter for Python Code: +Run "black" python code reformatter on all code under the "python" directory. Add the commits +to .git-blame-ignore-revs so they can be ignored when "git blame" is used, if you add this +to each clone where you want this to apply: + + git config blame.ignoreRevsFile .git-blame-ignore-revs + +You can do it for your worktrees, but since the file only applies to CTSM for ctsm5.1.dev100 and +forward, you'll need to do it for each CTSM clone seperately. Also there is now a github action +that checks that python code under the "python" subdirectory is black clean. If it's not the action +will fail and send you an email about it. + +Make Map Data Fix: +Simple fix from Sam Rabin. + +Fix for DISPLA on History Output: +Fix from Keith Oleson to set history output for DISPLA (displa_patch) to zero when vegetation is buried by snow. + + + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +CTSM issues fixed (include CTSM Issue #): + Fixes #1300 -- Update Anomaly forcing data and contrib scrip + Fixes #1396 -- Add test for Anomaly forcing and rename test for bias correction + Fixes #987 -- Anomaly Forcings + Fixes #1795 -- SMS_D.f45_f45_mg37.I2000Clm50FatesRs.cheyenne_gnu.clm-FatesColdDefDryDep fails in ctsm5.1.dev099 + Fixes #1755 -- Handle python environments for CTSM tools + Fixes #1471 -- Add support for using "black" as a python formatter to our python coding process + Handles #1794 -- conda environment on CGD systems currently limits python versions to 3.7.0 + Some work on #1796 for deprecation of ncar_pylib. Remove it's use in tools testing and in some documentation. + Some work on #1580 to add a file with the latest conda environment that will work + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): + +Notes of particular relevance for developers: +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + There is the introduction of lots of if statements for use_matrixcn and use_soil_matrixcn. + These if statements are added, but they are hardcoded off, so inactive. In some cases the + if statements could be reduced with some work, but maintaing both versions will be important + until that does happen. These statements need to be kept in the code, as well as a few places + where variables that will be needed for the Matrix solution code are added in, even though + they aren't needed in this version. + + Some development was done on the tools/contrib/ssp_anomaly_forcing_smooth script, but the guts should + be moved over to the python directory, and the top level script moved outside of the contrib directory. + +Changes to tests or testing: + Change name of bias-correction test + Add new tests for anomaly forcing for SSP cases + Remove Fates-Drydep test that is a known fail + +Testing summary: regular tools +---------------- + + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + build-namelist tests (if CLMBuildNamelist.pm has changed): + + cheyenne - PASS + + tools-tests (test/tools) (if tools have been changed): + + cheyenne - OK + izumi ---- OK + + 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 ---- OK + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: No, bit-for-bit + +Other details +------------- + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + Start bringing in matrixcn overall options and sparse matrix multiplier code #1771 + add checkimport to clm for scam case #1770 + Apply black to python directory #1577 + Fix missing hostname/CSMDATA in mkmapdata.sh #1765 + Fix issue #1569 (History output for DISPLA is incorrect when vegetation is buried by snow) #1570 + Fix issues #1769, #1607, #1389 in master documentation #1779 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev099 +Originator(s): rgknox (Ryan Knox) +Date: Tue Jun 21 03:20:42 PM EDT 2022 +One-line Summary: Enabling FATES control over the number of patches on the natural land unit + +Purpose and description of changes +---------------------------------- + +This set of changes 1) allows FATES to dictate the number of patches on the naturaly vegetated land unit and 2) is compatible with a version of FATES that updates the parameter file format (changes in parameter naming and parameter set). Efforts were made to adhere to the system of how patches are looped and loop bounds are defined. There is interaction with the reading of the surface file, which previously dictated all patch counts based on the number of PFTs in the file. FATES-SP and biogeography preserves the ability to use surface file weighting factors associated with PFTs and CFTs to drive area fractions in FATES. This change is motivated by FATES-side updates to the parameter file, which includes new settings where the user can control the number of primary "fates_maxpatch_primary" and secondary "fates_maxpatch_secondary" patches. Users should also be aware of a new namelist setting "use_fates_tree_damage" which defaults to false (inoperative). + + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? + +None + + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +CTSM Issues Fixed: +Fixes #1764 "fates test fails to run on dev095" +Fixes #1762 "Change threaded fates test from P32x2 to P36x2" +Fixes #1784 "Get dry-deposition working with FATES-SP mode" + +Known bugs introduced in this tag (include issue #): None + +Known bugs found since the previous tag (include issue #): None + + +Notes of particular relevance for users +--------------------------------------- + +Relevant issue #1785 "Refactor surfrd for FATES" +Relevant issue #1780 "Some collapse options should be disabled with FATES" + +In the process of this PR, we learned that FATES is fundamentally incompatible with the dry-deposition code. FATES-SP may be compatibile, but still needs investigation. + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): There is a new namelist setting for FATES simulations that turns on the crown damage module: "use_fates_tree_damage". Settings for this module can be found in the FATES parameter file. This namelist variable is a binary true/false, and it defaults to false. + +Changes to the datasets (e.g., parameter, surface or initial files): Users should also be aware that FATES has a new parameter file format and API. The default file on the ucar dataserver has been updated. + +Substantial timing or memory changes: none that we're aware of, but with more refined control of patch counts and allocation should come improvements in memory usage. + + +Notes of particular relevance for developers: +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None. Some new code was added to surfrdMod.F90, but this is not redundant. Efforts may be made in the future to have more unification there when we have FATES compatable with crops on the crop land-unit. + +Changes to tests or testing: Tests were added to cover the new crown damage module, and combinations of dry-deposition and megan with FATES-SP. The build system is also aware that these features will not and should not be used with FATES in a non-SP framework. + + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + + fates tests : + cheyenne ---- OK + izumi ------- OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: dev098 was updated to point to the moost recent FATES tag: sci.1.57.4_api.23.0.0. + + +Answer changes +-------------- + +Changes answers relative to baseline: NLCOMP changes (differences in namelist fields) were the only differences and they were expected. All other tests generated B4B results. + + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev098 +Originator(s): swensosc (Sean Swenson) +Date: Fri May 20 18:15:53 MDT 2022 +One-line Summary: Correct perched water table calculation + +Purpose and description of changes +---------------------------------- + +Modifies the calculation of the frost table and perched water table +layers. + +This brings in the answer-changing aspects of the Hillslope Hydrology +branch (https://github.com/ESCOMP/CTSM/pull/1715). + +Specific changes are: + +* PerchedWaterTable + +1) Frost table depth + +a) original frost table determination looped from the top +of the soil column downward to the index of the first layer +whose temperature was <= freezing, and whose neighbor above +had a temperature above freezing. The frost table depth is +then given by the node of that soil layer, i.e. z(k_frz). + +b) in the new method, the same index is found, but the +depth of the frost table is given by the depth of the top +of the frozen layer, i.e. zi(k_frz-1). Note zi(k_frz) would +be the bottom of layer k_frz. + +2) Perched water table depth + +a) in the original formulation, a loop from k_frz to layer 1 +was used to identify the deepest layer in 1:k_frz whose +volumetric soil moisture was greater than a threshold given +by sat_lev (e.g. sat_lev = 0.9). + +b) in the new method, the search is only done if k_frz is +greater than 1. The rationale is that if k_frz = 1, then +zwt_perched has already been initialized to the frost_table +depth (which is equal to the top of the uppermost soil layer), +and therefore no search is required. + +3) Determining perched water table depth within layer +identified by index k_perch in 2) + +a) in the original formulation, the perched water table +depth was calculated by linearly interpolating between layers +k_perch and k_perch+1, with no consideration of their relative +values. In the case where the deeper layer was drier than the +layer above it, this could result in values far outside the +soil layer. + +b) in the new formulation, if the deeper layer is drier than the +layer above it (s1 > s2), then the perched water table depth is +simply given by the depth of the upper surface of layer k_perch, +i.e. zi(c,k_perch-1). + +* PerchedLateralFlow + +1) Removal of icefrac calculation + +a) in the original calculation, the frozen layer was included, +so an ice impedance factor was calculated using icefrac. If +only unfrozen layers are used, no ice impedance factor is needed. + +b) in the new formulation, the icefrac variable and loop are +removed. + +2) Move loop calculating frost and perched water table depths + +a) in the original formulation, the frost and perched water +table depths were calculated in the same loop as the calculation +of the lateral flow from the perched saturated zone. + +b) in preparation for the hillslope hydrology branch, this +calculation is moved into its own loop. + +3) q_perch calculation + +a)in the original formulation, q_perch was calculated by summing +over layers k_perch to k_frost. However, because k_frost is now +identified as the frozen layer, and its depth the top of the frozen +layer, it should not be included in the calculation; only the +unfrozen layers above it should be included. + +b) in the new formulation, the loop is bounded by k_frost-1 instead +of k_frost. + +4) Removal of water from perched saturated zone + +a) the in the original method, the frozen layer (k_frost) +was included in the loop. Also, the drainage was defined to be +negative, which was confusing. + +b) in the new method, the frozen layer is not included in the +loop; water is only removed from the unfrozen layers above k_frost. +Calculate drainage as positive values, which are then subtracted +from the soil moisture in each layer. + +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 + +[ ] clm4_5 + + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + +Answer changes +-------------- + +Changes answers relative to baseline: YES + + Summarize any changes to answers, i.e., + - what code configurations: All Clm50 and Clm51 cases + - what platforms/compilers: All + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff; small changes to surface climate due to + differences originating in soil moisture + +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1738 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev097 +Originator(s): sacks (Bill Sacks) +Date: Fri May 20 15:30:17 MDT 2022 +One-line Summary: Update ccs_config to fix issue on izumi and maybe elsewhere + +Purpose and description of changes +---------------------------------- + +Point to latest ccs_config + +This fixes an issue I had on izumi where I couldn't run +anything (https://github.com/ESMCI/ccs_config_cesm/issues/45). + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +Externals issues fixed (include issue #): +https://github.com/ESMCI/ccs_config_cesm/issues/45 + +Notes of particular relevance for developers: +--------------------------------------------- + +Changes to tests or testing: +- Added LILAC test to the expected fails list (this has been failing for + the last 2 tags) + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- PASS + izumi ------- PASS + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- ccs_config: ccs_config_cesm0.0.35 -> ccs_config_cesm0.0.36 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev096 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Wed May 18 12:44:01 MDT 2022 +One-line Summary: Fix a few glitches from the last tag + +Purpose and description of changes +---------------------------------- + +Update cime to fix DAE issue +modify_neon issue +When FatesSp is on, make soil_decomp None by default + + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): + Fixes #1744 -- DAE tests fail + Fixes #1743 -- NEON test failing + Fixes #1749 -- cime path + Fixes #1752 -- modify_neon script + +CIME Issues fixed (include issue #): Fix DAE tests + +Known bugs introduced in this tag (include issue #): + #1759 -- LILAC test fails + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): + manage_python_env is at a prototype stage and not fully developed + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + When use_fates_sp is set -- by default soil_decomp_method will be None + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: + Add a simple FatesSp test to aux_clm testlist + + +Testing summary: regular +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + build-namelist tests (if CLMBuildNamelist.pm has changed): + + cheyenne - PASS + + tools-tests (test/tools) (if tools have been changed): + + cheyenne - PASS (neon tools) + + python testing (if python code has changed; see instructions in python/README.md; document testing done): + + cheyenne - PASS + + clm_pymods test suite on cheyenne - + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: No bit-for-bit + +Other details +------------- +[Remove any lines that don't apply. Remove entire section if nothing applies.] + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime, ccs_config + cime to cime6.0.27 + ccs_config to ccs_config_cesm0.035 + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + + #1753 -- Fix modify_singlept_site_neon.py script + #1750 -- Correct the path to cime python code + #1747 -- Fix a few glitches in last tag + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev095 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Mon May 9 05:02:41 MDT 2022 +One-line Summary: Turn soil BGC off for FATES-SP mode, externals updates, FatesSP user-mod directory and compset + +Purpose and description of changes +---------------------------------- + +Bring in externals updates that include adding AWS as a supported machine. + +Add a FatesSP compset and user-mod directory. + +Turn soil-BGC off when running FatesSP. Replace PGI tests on izumi with nvhpc tests on cheyenne. +Fix an issue with a particular gnu compiler version in ch4Mod.F90 in DEBUG mode. Add some more +threading tests for Fates. Start adding a prescribed-LAI tests for FatesSp + +Add a file to setup a python environment in conda for the python testing. Set line length for black +to same as pylint (100). Add some extra excludes for black to the pylint checking. + +Paths for CIME python code was changed, which required changes to some CTSM python code. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): + Fixes: #1720 -- Get FatesSp to run without soil-BGC + Fixes: #1726 -- Tutorial tasks + Fixes: #1729 -- SIGFPE in ch4Mod with DEBUG=TRUE + Fixes: #1610 -- Replace izumi_pgi tests with cheyenne_nvhpc + Initial add of FatesSP compset: #1697 + Starts adding a test mod for: #1722 FatesSP with prescribed LAI + Some part of #1736 threading tests for Fates + + Known bugs introduced in this tag (include issue #): + #1744 -- DAE tests fail + #1743 -- NEON test fails on izumi + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): + FatesSp mode MUST be run with soil_decomp_method of None. + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + Add new compset: I2000Clm51FatesSpCruRsGs + Add new long compset trigger for FATES-SP mode: FATES-SP + And new user-mod directory: fates_sp + +Notes of particular relevance for developers: +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + It's hardcoded in both build-namelist and the FORTRAN code that FatesSp mode must + be run with soil_decomp_method set to None. Some if statements would allow this to + change, but not all. + +Changes to tests or testing: + Replace izumi_pgi with cheyenne_nvhpc + Remove pgi mct test, since DEBUG off nvhpc tests work + Add a DEBUG on test for FatesSp that currently fails (for fates testlist) + Have FatesColdDefReducedComplexSatPhen test-mod use the new fates_sp user-mod + Add FatesSp threaded test (both fates and aux_clm test lists) + FatesSp tests use new FatesSp compset + +Testing summary: regular tools +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + build-namelist tests (if CLMBuildNamelist.pm has changed): + + cheyenne - PASS (2 tests change from ctsm5.1.dev094) + + tools-tests (test/tools) (if tools have been changed): + + cheyenne - OK (to mksrfdt_5x5_amazon_hirespft_2005) + + python testing (if python code has changed; see instructions in python/README.md; document testing done): + + cheyenne ---- OK + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + + any other testing (give details below): + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + +Answer changes +-------------- + +Changes answers relative to baseline: A few tests some roundoff difference in cpl history files + Externals update shows answer changes in very limited circumstances. + Only cpl history files show a roundoff difference for these tests: + + SMS_D_Ld1_Mmpi-serial.f45_f45_mg37.I2000Clm50SpRs.izumi_gnu.clm-ptsROA + +Other details +------------- + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): ccs_config, cime, cmeps, share, pio + ccs_config to ccs_config_cesm0.0.32 + cime to cime6.0.26 + cmeps to cmeps0.13.63 + share to share1.0.11 + pio to pio2_5_7 + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + + #1723 -- First pass at turnning Soil-BGC off for FatesSp + #1740 -- Workaround for some python unit tests + #1741 -- Fixes to run_neon + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev094 +Originator(s): negins (Negin Sobhani,UCAR/TSS,303-497-1224) +Date: Fri May 6 00:04:54 MDT 2022 +One-line Summary: subset_data allows zeroing out nonveg landunits without any dompft selected + +Purpose and description of changes +---------------------------------- +Previously subset_data explicitly checked to make sure the user has chosen at +least one of the following options: + +dominant pft(s) or +--include-nonveg (overrides default setting non-veg units to 0%) + +However, Adrianna pointed out that this limits FATES users who would not +want to set a dominant pft(s) and would also want all 100% vegetated at the +single point. So I removed this capability. This needed recalculating +PCT_CROP and PCT_NATVEG while zero-ing out other land unit types. + + +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.) + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): + Fixes CTSM/#1707 -- Allowing the user to zero non-veg landunits without any + dominant pft given by the user. + + +Notes of particular relevance for users +--------------------------------------- +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + Previously the user needed to choose at least one of the following options + for subsetting at single points: + --dompft + --include-nonveg + Now the user is not required to specify either options and can still zero out + non-veg landunits without any dominant pft given by the user. + + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: + Added 4 new tests to python/ctsm/test/test_unit_singlept_data_surfdata.py + to test recalculation of PCT_CROP and PCT_NATVEG while zero-ing out non-veg + land units. + +Testing summary: +---------------- +here is guidance on different available levels of system testing: + + python testing (if python code has changed; see instructions in python/README.md; document testing done): + + clm_pymods test suite on cheyenne - PASS + pylint -- PASS (10.00/10) (cheyenne + python/3.7.9) + Python unit tests -- PASS (cheyenne) + Python system tests -- FAIL (cheyenne) (CTSM/Issue #1739) + +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/CTSM/pull/1727 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev093 +Originator(s): slevis (Samuel Levis) +Date: Tue May 3 21:50:20 MDT 2022 +One-line Summary: Modifications for FATES-MIMICS to work + +Purpose and description of changes +---------------------------------- + + 1) For FATES-MIMICS cases, use ligninNratioAvg calculated by FATES. + 2) For FATES-MIMICS cases, use annsum_npp_col calculated by FATES. + 3) Small modification to allow carbon-only to work with MIMICS. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): + Fixes #1636 -- FATES tests fail with MIMICS active + +Notes of particular relevance for users +--------------------------------------- +Caveats for users (e.g., need to interpolate initial conditions): + MIMICS-FATES now do work together, but only as long as use_lch4 = .true. + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: + To confirm that MIMICS-FATES works, I added the testmod mimicsFatesColdDef. + +Testing summary: +---------------- + + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- PASS + izumi ------- OK + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + ...but made history variable CWDC_HR active. + +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/1643 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev092 +Originator(s): sacks (Bill Sacks) +Date: Fri Apr 29 18:31:48 MDT 2022 +One-line Summary: Refactor NutrientCompetition / CNAllocation to provide hooks for AgSys + +Purpose and description of changes +---------------------------------- + +Major refactor of NutrientCompetition / CNAllocation to provide hooks +for AgSys crop model: separates the NutrientCompetition modules into +pieces based on (1) consolidating duplicate code between the Clm45 and +FlexibleCN versions, and (2) separating pieces that will vs. won't be +used for crop patches when running with the upcoming AgSys crop model. + +I have restored the old CNAllocationMod, with some of the +responsibilities that it used to have. (I'm not sure it's appropriate to +have the calculation of gpp and maint resp in CNAllocationMod, but I +left it there because it has always been combined with the allocation +code, including back when we had a separate CNAllocationMod.) + + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- PASS + izumi ------- PASS + + +Answer changes +-------------- + +Changes answers relative to baseline: NO - though potential for answer +changes in unusual cases + + One change in this tag has the potential for answer changes in + unusual cases, even though no answer changes were observed in + testing: Previously, only the FlexibleCN code applied some logic that + changed crop allocation fractions during the grainfill period if + peaklai had been reached. I have changed this so that this logic is + applied with or without FlexibleCN (because I have moved this block + of code to the CNAllocation module, which is shared between the + FlexibleCN and non-FlexibleCN versions). I thought this would change + answers, but it appears not to, at least based on the tests in the + test suite as well as an extra 5-year test I did at f19 resolution + (ERS_Ly5.f19_g17.IHistClm45BgcCrop.cheyenne_intel.clm-cropMonthOutput). + It's possible that this changes answers in rare cases or with an + unusual combination of options that we don't test: specifically, it + might change answers for the atypical situation where you are running + with FUN but not FlexibleCN. (In this case, I believe this change is + the correct thing to do.) + + +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1705 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev091 +Originator(s): rgknox (Ryan Knox,rgknox@lbl.gov) +Date: Fri Apr 22 14:11:50 EDT 2022 +One-line Summary: clm decomp method is now passed to fates to enabled mimics coupling + +Purpose and description of changes +---------------------------------- + +This is a small changeset, which only adds the passing of a text based flag to FATES, that defines which soil decomposition method is active. This setting is needed by FATES, so that it can pass specific boundary conditions to CLM (and potentially ELM in the future). This change was necessitated because MIMICS requires a Nitrogen to lignin-carbon ratio in the litter flux, yet other decomposition schemes do not. Moreover, the generation of this boundary condition is not trivial, so it is worth it to avoid its computation if mimics is not on. This change should have NO impact on any tests. + + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +None + + +Notes of particular relevance for users +--------------------------------------- + +None, this does not currently have an affect on any functionality, it simply lays groundwork for FATES-MIMICS coupling. There are no changes to memory usage or run-time. + + +Notes of particular relevance for developers: +--------------------------------------------- + +No changes in testing. These changes will enable completion (or progress) on CTSM #1643 + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- aux_clm, PASS, b4b against ctsm5.1.dev090 + izumi ------- aux_clm, PASS, b4b against ctsm5.1.dev090 + + +Answer changes +-------------- +None + +Pull Requests that document the changes (include PR ids): #1700 +(https://github.com/ESCOMP/ctsm/pull/1700) + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev090 +Originator(s): samrabin (Sam Rabin) +Date: Thu Mar 31 15:03:34 MDT 2022 +One-line Summary: Fix misleading name of "gddplant" + +Purpose and description of changes +---------------------------------- + +1. Rename `gddplant_patch` to `hui_patch` (and `GDDPLANT` to `HUI`). +2. Add new variable `gddaccum_patch` (output `GDDACCUM`). + +Output variable `GDDPLANT` (not included by default) is now `HUI`, and +new output `GDDACCUM` has been added to track _actual_ accumulation of +GDDs since planting without any modifications such as occurs here: +https://github.com/ESCOMP/CTSM/blob/d9ae4b48d9c55fe3c998019bcf76817da570db87/src/biogeochem/CNPhenologyMod.F90#L2044-L2046 + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +[Remove any lines that don't apply. Remove entire section if nothing applies.] + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1655 (gddplant_patch (GDDPLANT) is misleadingly + named) + +Notes of particular relevance for users +--------------------------------------- +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- See above notes about changes to some output variables + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: +- Changed variables output in crop testmod (and any testmods that inherit + from it) + +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- PASS + izumi ------- PASS + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +There are FIELDLIST diffs for cases using the crop testmod or other +testmods inheriting from it, but otherwise bit-for-bit. + +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1684 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev089 +Originator(s): sacks (Bill Sacks) +Date: Thu Mar 31 11:44:12 MDT 2022 +One-line Summary: For CLM45 apply peaklai to aleaf in grainfill + +Purpose and description of changes +---------------------------------- + +This tag makes the crop allocation code in +NutrientCompetitionCLM45defaultMod consistent with that in +NutrientCompetitionFlexibleCNMod by forcing aleaf to 1e-5 if peaklai has +been reached during the grainfill period (in addition to the similar +existing check that was already in both places during the vegetative +growth period). This reconciliation will be helpful so that I can +extract these into a shared subroutine. + +I thought this would potentially change answers for CLM45 cases, but +based on the test suite and from a 5-year run of IHistClm45BgcCrop at +f19_g17 resolution, it seems like this won't change answers in our +typical configurations: From that 5-year f19_g17 run, whenever peaklai +is 1 during the grainfill period, aleaf is already exactly 1e-5. I don't +understand why this is always the case; maybe, in Clm45, if peaklai +isn't reached before grainfill then it is never reached that growing +season? I have come to suspect that the difference between Clm45 and +Clm50 in this respect may actually be due to whether you're running with +FUN, since running with FUN changes some relevant driver sequencing. So +it's possible that this would change answers for the atypical situation +where someone was running with FUN but not FlexibleCN; in this case, I +think this change would be the right thing to do. In addition, from the +test suite, I found this leads to answer changes when using CLM45 +together with old hydrology (h2osfcflag = 0 and use_subgrid_fluxes = +.false.). + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + +Answer changes +-------------- + +Changes answers relative to baseline: YES, but only in very limited cases + + Summarize any changes to answers, i.e., + - what code configurations: Very limited cases with crop and without + FlexibleCN (see below for details) + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + not investigated, but suspected to be larger than roundoff / same climate + + I thought this would potentially change answers for CLM45 cases, + but based on the test suite and from a 5-year run of + IHistClm45BgcCrop at f19_g17 resolution, it seems like this won't + change answers in our typical configurations: From that 5-year + f19_g17 run, whenever peaklai is 1 during the grainfill period, + aleaf is already exactly 1e-5. I don't understand why this is + always the case; maybe, in Clm45, if peaklai isn't reached before + grainfill then it is never reached that growing season? I have + come to suspect that the difference between Clm45 and Clm50 in + this respect may actually be due to whether you're running with + FUN, since running with FUN changes some relevant driver + sequencing. So it's possible that this would change answers for + the atypical situation where someone was running with FUN but not + FlexibleCN; in this case, I think this change would be the right + thing to do. In addition, from the test suite, I found this leads + to answer changes when using CLM45 together with old hydrology + (h2osfcflag = 0 and use_subgrid_fluxes = .false.). + + Tests with answer changes were: + ERP_D_P36x2_Ld3.f10_f10_mg37.I2000Clm45BgcCrop.cheyenne_gnu.clm-no_subgrid_fluxes + SMS_D_Ld1_P48x1.f10_f10_mg37.I2000Clm45BgcCrop.izumi_nag.clm-oldhyd + +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1694 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev088 +Originator(s): samrabin (Sam Rabin) +Date: Mon Mar 28 10:13:22 MDT 2022 +One-line Summary: Add outputs for annual crop sowing and harvest dates + +Purpose and description of changes +---------------------------------- + +Added annual outputs of sowing and harvest dates (`SDATES` and `HDATES`, +respectively). This should simplify the determination of sowing and +harvest date for postprocessing. +- Sowing dates are on new dimension `mxgrowseas` (maximum number of + growing seasons allowed to begin in a year; currently hard-coded to 1). +- Harvest dates are on new dimension `mxharvests` (maximum number of + harvests allowed in a year), which is `mxgrowseas`+1. This is needed + because in year Y you might harvest a field that was planted in year + Y-1, then plant and harvest again. +- The lengths of these dimensions are public constants of `clm_varpar`. + +Additionally, removed `cropplant` as discussed here: +. + +The `mxharvests` concept enables the addition of more such outputs to +further simplify crop postprocessing—for example, yield per growing +season as a direct output rather than needing to cross-reference daily +grain mass against the day of harvest. + +These changes involved some rework to the crop phenology code that +changes answers for crop phenology in some circumstances. All answer +changes were determined to be due to issues / oddities in the old code. +See discussion in https://github.com/ESCOMP/CTSM/pull/1616 for details +(especially see +https://github.com/ESCOMP/CTSM/pull/1616#issuecomment-1049247565). To +summarize briefly, some issues with the old code were: +- Non-winter-cereal patches that had live crops at the beginning of the + year did not get planted later that year. +- There was some odd behavior for rice patches at exactly 0 deg latitude +- Crop root depth had unexpected values outside the growing season; now + root depth is set to 0 outside the growing season + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1537 (Output of sowing and harvest dates) + + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: +- Added new crop outputs to the cropMonthOutput testmod in a 3rd, annual + history file + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + +Answer changes +-------------- + +Changes answers relative to baseline: YES, for Crop cases + + Summarize any changes to answers, i.e., + - what code configurations: Crop cases + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff, expected to be same climate + + Changes answers for crop cases that are at least a few months long + and/or cross the year boundary; also SSP tests with Crop. These + changes arise due to fixing some issues / oddities that were present + in the old code. + + Also changes ROOT_DEPTH outside of the crop growing season. + + See description above for details, and also extensive discussion in + https://github.com/ESCOMP/CTSM/pull/1616 . Sam Rabin performed + extensive testing to demonstrate that answer changes all arise due + to fixing issues with the old code. + +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1616 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev087 +Originator(s): sacks (Bill Sacks) +Date: Thu Mar 24 12:25:10 MDT 2022 +One-line Summary: Reduce aux_clm testing cost + +Purpose and description of changes +---------------------------------- + +Use small PE counts for aux_clm tests and remove some redundant / +unnecessary tests. + +This tag reduces the PE count for aux_clm tests so that all (I think) +tests fit in 4 nodes or less. This should both (1) reduce queue wait +time for tests and (2) reduce aux_clm testing cost (since, for high +resolution tests, most time is spent in initialization, so having more +PEs increases cost significantly without actually making the tests run +much, if any, faster). While doing this, I also noticed some tests that +felt redundant or unnecessary, and I have removed those. + +To facilitate these changes, I have introduced new "S" PE layouts for +the f09, f19 and 0.125nldas2 resolutions. These layouts use 4 nodes (but +with DATM on just 1 node, because it is slightly faster to run it on one +node than four nodes). (I considered running DATM on its own node like +we do for production PE layouts, but that turns out to only improve +runtime slightly while increasing cost significantly, so I am having +DATM share one of the nodes used for LND.) + +Here is a detailed list of the changes: + +Changes to aux_clm test list: + + I changed the following: + + ``` diff + 2c2 + < SMS_D_Ld9.f09_g17.I1850Clm50BgcNoAnthro.cheyenne_intel.clm-decStart1851_noinitial + --- + > SMS_D_Ld3_PS.f09_g17.I1850Clm50BgcNoAnthro.cheyenne_intel.clm-decStart1851_noinitial + 7c7 + < SMS_D_Ld1.f09_g17.I1850Clm50Sp.cheyenne_intel.clm-default # Include a test of this scientifically-supported compset at a scientifically-supported resolution + --- + > SMS_D_Ld1_PS.f09_g17.I1850Clm50Sp.cheyenne_intel.clm-default # Include a test of this scientifically-supported compset at a scientifically-supported resolution + 14,17c14,15 + < SMS_D_Ln9_P480x3.f19_g17.IHistClm50Sp.cheyenne_intel.clm-waccmx_offline # Run a transient case with standalone settings similar to the FXHIST waccm test + < SMS_D_Ln9_P480x3_Vmct.f19_g17.IHistClm50Sp.cheyenne_intel.clm-waccmx_offline # MCT test covering drydep, megan and Gregorian calendar. + --- + > SMS_D_Ln9_P36x3.f19_g17.IHistClm50Sp.cheyenne_intel.clm-waccmx_offline # Run a transient case with standalone settings similar to the FXHIST waccm test + > SMS_D_Ln9_P36x3_Vmct.f19_g17.IHistClm50Sp.cheyenne_intel.clm-waccmx_offline # MCT test covering drydep, megan and Gregorian calendar. + 20c18 + < ERI_Ld9.f10_f10_mg37.I2000Clm50BgcCru.cheyenne_intel.clm-drydepnomegan + --- + > ERI_Ld9.f10_f10_mg37.I2000Clm50BgcCru.cheyenne_gnu.clm-drydepnomegan + 32c30 + < SMS_Ln9_P360x2.C96_C96_mg17.IHistClm50BgcCrop.cheyenne_intel.clm-clm50cam6LndTuningMode # Want one C96 test in the aux_clm test suite; just a short smoke test to make sure it can get off the ground. Use a PE layout that (1) has threading, because CAM uses threading at this resolution; and (2) has a smaller-than-standard task count in order to get through the queue faster. + --- + > SMS_Ln9_P72x2.C96_C96_mg17.IHistClm50BgcCrop.cheyenne_intel.clm-clm50cam6LndTuningMode # Want one C96 test in the aux_clm test suite; just a short smoke test to make sure it can get off the ground. Use a PE layout that (1) has threading, because CAM uses threading at this resolution; and (2) has a smaller-than-standard task count in order to get through the queue faster. + 36,37c34 + < ERP_D_Ld5.f19_g17.I2000Clm50BgcCru.cheyenne_intel.clm-fire_emis + --- + > ERP_D_Ld5.f10_f10_mg37.I2000Clm50BgcCru.cheyenne_gnu.clm-fire_emis + 42c39 + < ERP_D_Ld5.f19_g17.IHistClm50SpCru.cheyenne_intel.clm-drydepnomegan + --- + > ERP_D_Ld5.f10_f10_mg37.IHistClm50SpCru.cheyenne_gnu.clm-drydepnomegan + 66,67c62 + < ERP_Ld5.f10_f10_mg37.I1850Clm50Bgc.cheyenne_intel.clm-drydepnomegan + --- + > ERP_D_Ld5.f10_f10_mg37.I1850Clm50Bgc.cheyenne_gnu.clm-drydepnomegan + 87,90c78,80 + < ERP_P180x2_D.f19_g17.I2000Clm50SpRtmFl.cheyenne_intel.clm-default # include a debug test with flooding on + < ERP_P180x2_D_Ld5.f19_g17_gris4.I1850Clm50BgcCropG.cheyenne_intel.clm-glcMEC_increase # cism is not answer preserving across processor changes, but short test length should be ok. + < ERP_P180x2_D_Ld5.f19_g17.I2000Clm50Sp.cheyenne_intel.clm-default + --- + > ERP_P36x2_D.f10_f10_mg37.I2000Clm50SpRtmFl.cheyenne_intel.clm-default # include a debug test with flooding on + > ERP_P72x2_D_Ld5.f19_g17_gris4.I1850Clm50BgcCropG.cheyenne_intel.clm-glcMEC_increase # cism is not answer preserving across processor changes, but short test length should be ok. + > ERP_P36x2_D_Ld5.f10_f10_mg37.I2000Clm50Sp.cheyenne_gnu.clm-default + 106,108c96 + < ERS_D_Ld3.f19_g17.I1850Clm50BgcCrop.cheyenne_intel.clm-clm50dynroots + --- + > ERS_D_Ld3.f10_f10_mg37.I1850Clm50BgcCrop.cheyenne_intel.clm-clm50dynroots + 114c102 + < ERS_Ld3.f09_g17.I1850Clm50BgcCrop.cheyenne_intel.clm-rad_hrly_light_res_half + --- + > ERS_Ld3_D.f10_f10_mg37.I1850Clm50BgcCrop.cheyenne_gnu.clm-rad_hrly_light_res_half + 128,129c116,117 + < LII_D_Ld3.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-default # Basic LII test, covering the standard range of subgrid heterogeneity - particularly, including crop. Uses a year-2000 restart file so that the restart file has non-zero product pools, so that we exercise the gridcell-level code in init_interp. + < LII2FINIDATAREAS_D_P360x2_Ld1.f09_g17.I1850Clm50BgcCrop.cheyenne_intel.clm-default # Exercise the init_interp_method='use_finidat_areas' option. See documentation at the top of the python script implementing this test for more details and rationale. This test requires a compatible finidat file (i.e., a file that can be used without interpolation). If no such file is available out-of-the-box, then the test will need to use a testmod that points to a compatible file. + --- + > LII_D_Ld3_PS.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-default # Basic LII test, covering the standard range of subgrid heterogeneity - particularly, including crop. Uses a year-2000 restart file so that the restart file has non-zero product pools, so that we exercise the gridcell-level code in init_interp. + > LII2FINIDATAREAS_D_P72x2_Ld1.f09_g17.I1850Clm50BgcCrop.cheyenne_intel.clm-default # Exercise the init_interp_method='use_finidat_areas' option. See documentation at the top of the python script implementing this test for more details and rationale. This test requires a compatible finidat file (i.e., a file that can be used without interpolation). If no such file is available out-of-the-box, then the test will need to use a testmod that points to a compatible file. + 139c127 + < SMS_D_Ld1.f09_g17.I1850Clm50BgcSpinup.cheyenne_intel.clm-cplhist + --- + > SMS_D_Ld1_PS.f09_g17.I1850Clm50BgcSpinup.cheyenne_intel.clm-cplhist + 141,142c129,130 + < SMS_Vmct_D_Ld1.f09_g17.I1850Clm50BgcSpinup.cheyenne_intel.clm-cplhist # pgi test for MCT driver since nuopc is not passing + < SMS_D.f19_f19_mg17.I2010Clm50Sp.cheyenne_intel.clm-clm50cam6LndTuningMode + --- + > SMS_Vmct_D_Ld1_PS.f09_g17.I1850Clm50BgcSpinup.cheyenne_intel.clm-cplhist # pgi test for MCT driver since nuopc is not passing + > SMS_D_Ld1_PS.f19_f19_mg17.I2010Clm50Sp.cheyenne_intel.clm-clm50cam6LndTuningMode + 173c161 + < SMS_Ld1.f09_g17.I2000Clm50BgcCru.cheyenne_intel.clm-af_bias_v7 + --- + > SMS_Ld1_PS.f09_g17.I2000Clm50BgcCru.cheyenne_gnu.clm-af_bias_v7 + 177,178c165 + < SMS_Ld2_D.f09_g17.I1850Clm50BgcCropCmip6.cheyenne_intel.clm-basic_interp # This gives a short debug test of the cmip6 configuration as well as a test of the cmip6 configuration at the production resolution, both of which we want. This test needs to use init_interp to work, because of adding virtual Antarctica columns. + --- + > SMS_Ld2_D_PS.f09_g17.I1850Clm50BgcCropCmip6.cheyenne_intel.clm-basic_interp # This gives a short debug test of the cmip6 configuration as well as a test of the cmip6 configuration at the production resolution, both of which we want. This test needs to use init_interp to work, because of adding virtual Antarctica columns. + 186c172 + < SMS_Lm13.f19_g17.I2000Clm51BgcCrop.cheyenne_intel.clm-cropMonthOutput # include a relatively long crop test at relatively high resolution + --- + > SMS_Lm13_PS.f19_g17.I2000Clm51BgcCrop.cheyenne_intel.clm-cropMonthOutput # include a relatively long crop test at relatively high resolution + 190c176 + < ERP_D_Ld10.f19_g17.I1850Clm51BgcCrop.cheyenne_intel.clm-ADspinup # Include a restart test for AD spinup mode because of specific logic for spinup_state. Lack of this test did cause a problem. + --- + > ERP_D_Ld10.f10_f10_mg37.I1850Clm51BgcCrop.cheyenne_intel.clm-ADspinup # Include a restart test for AD spinup mode because of specific logic for spinup_state. Lack of this test did cause a problem. + 195c181 + < ERS_D_Ld5.f09_g17.I2000Clm50FatesRs.cheyenne_intel.clm-FatesColdDef # Want one fates test on a large grid: Since FATES has cohorts, it has potential to be a massive memory consumer and netcdf array size maker, so the large grid test will help smoke out these types of issues (and it's a restart test to cover possible memory/netcdf size issues with the restart file). + --- + > ERS_D_Ld3_PS.f09_g17.I2000Clm50FatesRs.cheyenne_intel.clm-FatesColdDef # Want one fates test on a large grid: Since FATES has cohorts, it has potential to be a massive memory consumer and netcdf array size maker, so the large grid test will help smoke out these types of issues (and it's a restart test to cover possible memory/netcdf size issues with the restart file). + 209c195 + < SMS_Ld5.f19_g17.I2000Clm50FatesRs.cheyenne_intel.clm-FatesColdDef + --- + > SMS_Ld5_PS.f19_g17.I2000Clm50FatesRs.cheyenne_gnu.clm-FatesColdDef + 223,224c209,210 + < SMS_Ld1.nldas2_rnldas2_mnldas2.I2000Ctsm50NwpSpNldas.cheyenne_gnu.clm-default # Include a short smoke test covering the nldas2 grid and the I2000Ctsm50NwpSpNldas compset, which uses NLDAS datm forcing. + < SMS_Ld1.nldas2_rnldas2_mnldas2.I2000Ctsm50NwpSpNldasRs.cheyenne_gnu.clm-default # Include a short smoke test covering the nldas2 grid and the I2000Ctsm50NwpSpNldasRs compset, which uses NLDAS datm forcing. + --- + > SMS_Ld1_PS.nldas2_rnldas2_mnldas2.I2000Ctsm50NwpSpNldas.cheyenne_gnu.clm-default # Include a short smoke test covering the nldas2 grid and the I2000Ctsm50NwpSpNldas compset, which uses NLDAS datm forcing. + > SMS_Ld1_PS.nldas2_rnldas2_mnldas2.I2000Ctsm50NwpSpNldasRs.cheyenne_gnu.clm-default # Include a short smoke test covering the nldas2 grid and the I2000Ctsm50NwpSpNldasRs compset, which uses NLDAS datm forcing. + 232c217 + < PFS_Ld20.f09_g17.I2000Clm50BgcCrop.cheyenne_intel # Can use this test to determine if there are significant throughput changes, at least for this common and important configuration. Note that this deliberately doesn't have any testmods in order to (1) avoid doing history output (because the timing of output can be very variable, and mixing output timing with other aspects of model time can be confusing), and (2) generally keep the test replicating a production configuration as closely as possible (so, for example, we do NOT set BFBFLAG=TRUE for this test). + --- + > PFS_Ld10_PS.f19_g17.I2000Clm50BgcCrop.cheyenne_intel # Can use this test to determine if there are significant throughput changes, at least for this common and important configuration. Note that this deliberately doesn't have any testmods in order to (1) avoid doing history output (because the timing of output can be very variable, and mixing output timing with other aspects of model time can be confusing), and (2) generally keep the test replicating a production configuration as closely as possible (so, for example, we do NOT set BFBFLAG=TRUE for this test). + ``` + + In addition, I moved the following tests to ctsm_sci: + + SMS_Ln9_P144x3.f19_g17.IHistClm50Sp.cheyenne_intel.clm-waccmx_offline2005Start # Do a test similar to FXHIST starting at a 2005 start date, will interpoalte from the 2003 IC file + SMS_Lm1.f19_g17.I1850Clm50BgcCropCmip6waccm.cheyenne_intel.clm-basic # The main point of this test is simply to make sure that the CMIP6WACCMDECK modifier works for 2-degree since that resolution turns off Carbon isotopes + + and I completely removed the following tests: + + SMS_Ld1.f09_g17.I1850Clm50Bgc.cheyenne_intel.clm-drydepnomegan + ERI_Ld9.f10_f10_mg37.I1850Clm50Bgc.cheyenne_gnu.clm-drydepnomegan + ERP_D_Ld5.f19_g17.I2000Clm50BgcCru.cheyenne_intel.clm-default + ERP_Ld5.f19_g17.I1850Clm50Bgc.cheyenne_intel.clm-default + ERP_Ld5.f19_g17.I2000Clm50SpRtmFl.cheyenne_gnu.clm-default + ERP_Ld5.f19_g17.I2000Clm50BgcCru.cheyenne_intel.clm-default + ERP_Ld3.f09_g17.I1850Clm50BgcCropCru.cheyenne_intel.clm-ciso + ERP_P180x2_D_Ld5.f19_g17_gris4.I1850Clm50BgcCropG.cheyenne_intel.clm-default + ERS_D_Ld3.f10_f10_mg37.I2000Clm50BgcCru.cheyenne_intel.clm-default + ERS_D_Ld3.f10_f10_mg37.I2000Clm50BgcCru.cheyenne_gnu.clm-default + SMS_Ld5.f19_g17.IHistClm50Bgc.cheyenne_intel.clm-decStart + SMS_Lm1.f19_g17.I1850Clm50Bgc.cheyenne_intel.clm-clm50dynroots + + In general, these removed tests felt redundant with existing tests + (including some low-resolution tests that I happened to notice as + feeling redundant as I was reworking the testing). + +Changes to ctsm_sci test list: + + See notes above for tests moved from the aux_clm test list to the + ctsm_sci test list; other than that, I did not make any changes to + the ctsm_sci test list. + +Changes to prealpha test list + + I made the following changes to the prealpha test list to keep it in + line with the aux_clm test list: + + ``` diff + < prealpha: ERP_Ld5.f19_g17.I2000Clm50SpRtmFl.cheyenne_gnu.clm-default + < prealpha: ERP_P180x2_D_Ld5.f19_g17_gris4.I1850Clm50BgcCropG.cheyenne_intel.clm-default + < prealpha: ERP_P180x2_D_Ld5.f19_g17.I2000Clm50Sp.cheyenne_intel.clm-default + --- + > prealpha: ERP_P36x2_D.f10_f10_mg37.I2000Clm50SpRtmFl.cheyenne_intel.clm-default # include a debug test with flooding on + > prealpha: ERP_P72x2_D_Ld5.f19_g17_gris4.I1850Clm50BgcCropG.cheyenne_intel.clm-glcMEC_increase # cism is not answer preserving across processor changes, but short test length should be ok. + > prealpha: ERP_P36x2_D_Ld5.f10_f10_mg37.I2000Clm50Sp.cheyenne_gnu.clm-default + ``` + +Changes to prebeta test list: + + I made the following changes to the prealpha test list to keep it in + line with the aux_clm test list: + + ``` diff + 1c1 + < prebeta: SMS_D_Ld9.f09_g17.I1850Clm50BgcNoAnthro.cheyenne_intel.clm-decStart1851_noinitial + --- + > prebeta: SMS_D_Ld3_PS.f09_g17.I1850Clm50BgcNoAnthro.cheyenne_intel.clm-decStart1851_noinitial + 3,4c3 + < prebeta: ERP_D_Ld5.f19_g17.I2000Clm50BgcCru.cheyenne_intel.clm-fire_emis + < prebeta: ERP_D_Ld5.f19_g17.IHistClm50SpCru.cheyenne_intel.clm-drydepnomegan + --- + > prebeta: ERP_D_Ld5.f10_f10_mg37.I2000Clm50BgcCru.cheyenne_gnu.clm-fire_emis + > prebeta: ERP_D_Ld5.f10_f10_mg37.IHistClm50SpCru.cheyenne_gnu.clm-drydepnomegan + 9,10c8,9 + < prebeta: ERS_D_Ld3.f19_g17.I1850Clm50BgcCrop.izumi_intel.clm-clm50dynroots + < prebeta: ERS_D_Ld3.f19_g17.I1850Clm50BgcCrop.izumi_pgi.clm-clm50dynroots + --- + > prebeta: ERS_D_Ld3.f10_f10_mg37.I1850Clm50BgcCrop.izumi_intel.clm-clm50dynroots + > prebeta: ERS_D_Ld3.f10_f10_mg37.I1850Clm50BgcCrop.izumi_pgi.clm-clm50dynroots + ``` + + In addition, I removed the following from the prebeta test list: + + ERP_Ld5.f19_g17.I2000Clm50SpRtmFl.cheyenne_gnu.clm-default + SMS_Ld1.f19_g17.I2000Clm50BgcCru.cheyenne_intel.clm-default + SMS_Lm1.f19_g17.I1850Clm50BgcCropCmip6waccm.cheyenne_intel.clm-basic # The main point of this test is simply to make sure that the CMIP6WACCMDECK modifier works for 2-degree since that resolution turns off Carbon isotopes + + For the removed tests, we already have similar tests to these + removed tests in the prealpha and/or prebeta test suites. (It is + unnecessary to have the same tests in both prealpha and prebeta test + lists, because the prebeta test list is generally just run on tags + that have already been through prealpha testing.) + +Other test categories: + + I did not make any changes to other test categories: fates, + aux_cime_baselines, clm_pymods or clm_short. The fates test category + has some high resolution tests that should probably be changed + similarly to what I did here. + +Some notes on the changed tests: + + All of the new (changed) tests pass. Nearly all of them run in less + than 10 min (and some of them actually run faster than before); the + one exception is + `SMS_Lm13_PS.f19_g17.I2000Clm51BgcCrop.cheyenne_intel.clm-cropMonthOutput`, + which has a 31 min run time; that is as expected. I feel like that's + acceptable: it's in the neighborhood of some of our other long + tests, and I feel like it's worth having one more long-running test + in order to avoid having anything that might sit in the queue too + long. We could consider putting this test on something like 8 nodes + instead of 4 if we find that it is consistently the last test to + finish, but for now I wanted to try for a goal of having all tests + on 4 nodes or fewer. + + I compared the detailed timing files from the new + `PFS_Ld10_PS.f19_g17.I2000Clm50BgcCrop.cheyenne_intel` test with the + original `PFS_Ld20.f09_g17.I2000Clm50BgcCrop.cheyenne_intel` test. + For the most part, the relative timings of different pieces are + about the same in both - at least for the major culprits, which is + what I compared. So this is good: I feel like we can use the new + test to still give indications of when the timing of a particular + section changes significantly, and be reasonably confident that the + same result would hold for an f09 test with higher processor count. + + The total testing time from start to finish is: + - cheyenne_gnu: 1:06 + - cheyenne_intel: 2:10 + - izumi_gnu: 1:09 + - izumi_intel: 1:46 + - izumi_nag: 1:31 + - izumi_pgi: 1:27 + + Note that I think the izumi tests would have completed sooner if not + for the fact that we are limited in how many jobs we can run + simultaneously in izumi, so jobs tend to stay stuck in the queue for + a while. + + The test that I was concerned about taking a longer time to run, + SMS_Lm13_PS.f19_g17.I2000Clm51BgcCrop.cheyenne_intel.clm-cropMonthOutput, + was the second-to-last cheyenne test to finish, but a bunch of other + tests finished just one minute before it (and + ERS_Ly5_P144x1.f10_f10_mg37.IHistClm51BgcCrop.cheyenne_intel.clm-cropMonthOutput, + the last test to finish, finished one minute after it). + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): +- Partially addresses #275 (Rework CLM test suite: miscellaneous things + to do to shorten turnaround time and increase coverage) + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: Many changes, as documented above. + + +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- PASS + izumi ------- PASS + +Answer changes +-------------- + +Changes answers relative to baseline: NO (but some BFAILs) + + +Other details +------------- +Pull Requests that document the changes (include PR ids): +- https://github.com/ESCOMP/CTSM/pull/1688 +- https://github.com/ESCOMP/CTSM/pull/1687 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev086 +Originator(s): negins (Negin Sobhani,UCAR/TSS,303-497-1224) +Date: Tue Mar 22 01:22:19 MDT 2022 +One-line Summary: Updates necessary for NEON v2 files and server updates + +Purpose and description of changes +---------------------------------- + +This tag resolves the issues that are caused by NEON moving their storage from Amazon +S3 to GCS (Google Cloud Storage) and updated listing files, two issues need to be addressed. +To summarize, this tag addresses these issues: + +1- run_neon.py is updated to handle the updated listing file and +introduction of the new v2 data. + +2- CDEPS, CIME, and run_neon.py codes should be updated to point to the GCS bucket instead of the +neon S3 bucket. Besides updating run_neon.py this tag points to the updated +externals with this updates. + +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.) + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): + Fixes CTSM/#1668 -- Updating run_neon.py for v2 files + Fixes CTSM/#1675 -- updating externals and pointing to GCS instead of S3 for neon + +Notes of particular relevance for users +--------------------------------------- +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + ./run_neon.py now has a new option: + --neon-version {v1, v2} : + Neon data version to use for this simulation. [default: use the latest data + available] + + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: + + The following tests with PGI on Izumi used to fail in the build phase. It + seems like they are not failing in the "build phase" anymore but they are + still failing in the "run phase". + + SMS_D.f10_f10_mg37.I2000Clm51BgcCrop.izumi_pgi.clm-crop + SMS.f10_f10_mg37.I2000Clm50BgcCrop.izumi_pgi.clm-crop + + The ExpectedTestFails.xml is updated to reflect this change. + +Testing summary: +---------------- + build-namelist tests (if CLMBuildNamelist.pm has changed): + + cheyenne - + + 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): + + (any machine) - + + [If python code has changed and you are NOT running aux_clm (e.g., because the only changes are in python + code) then also run the clm_pymods test suite; this is a small subset of aux_clm that runs the system + tests impacted by python changes. The best way to do this, if you expect no changes from the last tag in + either model output or namelists, is: create sym links pointing to the last tag's baseline directory, + named with the upcoming tag; then run the clm_pymods test suite comparing against these baselines but NOT + doing their own baseline generation. If you are already running the full aux_clm then you do NOT need to + separately run the clm_pymods test suite, and you can remove the following line.] -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + clm_pymods test suite on cheyenne - -Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/CTSM/pull/810 + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev069 -Originator(s): sacks (Bill Sacks) -Date: Mon Oct 7 10:22:22 MDT 2019 -One-line Summary: Misc. code cleanup and minor bug fixes + cheyenne ---- PASS + izumi ------- OK -Purpose of changes ------------------- + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + cheyenne ---- + izumi ------- -Resolve a variety of "simple bfb" issues. Note that some of these result -in answer changes for select diagnostic fields. See specific notes below -for details, under "Issues fixed" and answer changes. + any other testing (give details below): + ./run_neon.py tested on Cheyenne for all sites and check if the latest + option chose v2 when data was available. At the time of this test v2 was + only available for CPER sites and for the rest of neon sites run_neon.py + used v1 data. -The fix for ESCOMP/ctsm#27 changes answers for some diagnostic fields, -as noted below. +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + - ccs_config : 0.0.5 --> 0.0.15 + - cime : 6.0.13 --> 6.0.15 + - cdeps : 0.12.35 --> 0.12.41 + - pio : pio2_5_5 --> pio2_5_6 -Bugs fixed or introduced ------------------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1669 -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#27 (BTRAN should be spval over all special - landunits) - - Also fixed some related fields, as noted below, under answer changes +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev085 +Originator(s): sacks (Bill Sacks) +Date: Wed Mar 16 11:08:54 MDT 2022 +One-line Summary: Expand crop reproductive pools; remove some unused options + +Purpose and description of changes +---------------------------------- -- Resolves ESCOMP/ctsm#31 (some CLM history fields don't restart - properly) - - This was mostly resolved previously; here I just did some final - cleanup and fixing of NFIRE +The main change in this tag is adding placeholder pools (and +corresponding fluxes) that will be needed to couple the AgSys crop +model: Rather than a single grain pool, AgSys has two different grain +pools (meal & oil) as well as two different reproductive structure pools +(pod & floret). This tag adds a dynamically-allocated second dimension to +the relevant variables to accommodate these new pools. The new +CropReprPoolsMod controls the allocation and naming of these pools, and +facilitates looping over the new dimension. Currently parameters in +there are hard-coded for the current crop model, but this will become +more dynamic with the coupling of AgSys. -- Resolves ESCOMP/ctsm#48 (code for initializing some isotope carbon - state variables looks wrong) - - Removed the incorrect code, which was never being exercised +This tag also removes experimental / untested options in +NutrientCompetitionFlexibleCNMod. Although this is mostly unrelated to +the main change, doing this simplified the changes needed for the main +change. -- Resolves ESCOMP/ctsm#58 (Change SHR_ASSERT calls to avoid using - errMsg) - - Purpose was to speed up DEBUG runs on some machines/compilers +This tag also resolves ESCOMP/CTSM#1666 (Isotopic values of grain_mr not +set correctly when use_grainproduct is false). -- Resolves ESCOMP/ctsm#111 (Precision of constants in - SoilTemperature.F90 is not double) - - No answer changes, because 1 (single prec) = 1 (double prec) +Finally, this tag removes or modifies some of the most expensive tests +in the aux_clm test suite to reduce the cost of running the test suite. -- Resolves ESCOMP/ctsm#334 (Introduce a new activelayer_type) Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -1532,62 +5547,82 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none - -Changes made to namelist defaults (e.g., changed parameter values): none - -Changes to the datasets (e.g., parameter, surface or initial files): none - -Substantial timing or memory changes: potentially speeds up debug runs on some machines/compilers - -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Bugs fixed or introduced +------------------------ +[Remove any lines that don't apply. Remove entire section if nothing applies.] -Changes to tests or testing: none +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1666 (Isotopic values of grain_mr not set + correctly when use_grainproduct is false) -Code reviewed by: self +Known bugs introduced in this tag (include issue #): +- ESCOMP/CTSM#1667 (Add cft and pool-specific harvested fraction + parameters to the param file) +Known bugs found since the previous tag (include issue #): +- ESCOMP/CTSM#1651 (Discrepancy in handling of crop seed deficit in + summary variables for C vs. N) -CTSM testing: +Notes of particular relevance for users +--------------------------------------- - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- Removes experimental / untested options that are referenced in + NutrientCompetitionFlexibleCNMod + - downreg_opt: assume false + - CN_partition_opt: assume 1 + - CN_residual_opt: assume 1 + - nscalar_opt: assume true + - substrate_term_opt: assume true + - temp_scalar_opt: assume true + - plant_ndemand_opt: assume 3 - build-namelist tests: +Notes of particular relevance for developers: +--------------------------------------------- - cheyenne - not run +Changes to tests or testing: +- Adds new test types (LGRAIN2 and LREPRSTRUCT) to test the new code + until AgSys is integrated and tested. +- Changes some expensive tests to be less expensive, by using coarser + resolution, smaller processor counts, or moving them from aux_clm to + ctsm_sci - tools-tests (test/tools): +Testing summary: +---------------- - cheyenne - not run + build-namelist tests (if CLMBuildNamelist.pm has changed): - PTCLM testing (tools/shared/PTCLM/test): + cheyenne - PASS - cheyenne - not run + Ran without comparisons, because I expected all comparisons to fail. - python testing (see instructions in python/README.md; document testing done): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - (any machine) - not run + cheyenne ---- PASS + izumi ------- PASS - regular tests (aux_clm): + any other testing (give details below): - cheyenne ---- ok - izumi ------- ok + Ran the original versions of modified tests with baseline + comparisons; these all pass (ran from my branch up to date with + ctsm5.1.dev082; I didn't rerun with the latest version) - ok means tests pass, some baseline comparisons fail as expected + PASS ERI_C2_Ld9.f19_g17.I2000Clm51BgcCrop.cheyenne_intel.clm-default BASELINE ctsm5.1.dev082: + PASS ERP_D_Ld3.f09_g17.I2000Clm50Sp.cheyenne_intel.clm-prescribed BASELINE ctsm5.1.dev082: + PASS ERP_D_Ld3_Vmct.f09_g17.I2000Clm50Sp.cheyenne_intel.clm-prescribed BASELINE ctsm5.1.dev082: + PASS SMS_C2_D_Lh12.f09_g17.I2000Clm50Sp.cheyenne_intel.clm-pauseResume BASELINE ctsm5.1.dev082: + PASS SSP_D_Ld10.f19_g17.I1850Clm51Bgc.cheyenne_intel.clm-rtmColdSSP BASELINE ctsm5.1.dev082: + PASS SSP_D_Ld4.f09_g17.I1850Clm50BgcCrop.cheyenne_intel.clm-ciso_rtmColdSSP BASELINE ctsm5.1.dev082: + PASS SSP_Ld10.f19_g17.I1850Clm50Bgc.cheyenne_intel.clm-rtmColdSSP BASELINE ctsm5.1.dev082: If the tag used for baseline comparisons was NOT the previous tag, note that here: @@ -1595,82 +5630,40 @@ If the tag used for baseline comparisons was NOT the previous tag, note that her Answer changes -------------- -Changes answers relative to baseline: YES, but just for select diagnostic fields - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +Changes answers relative to baseline: YES, but this doesn't appear in +any standard tests Summarize any changes to answers, i.e., - - what code configurations: ALL - - what platforms/compilers: ALL - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Greater than roundoff, but only in select diagnostic field - no impact on climate - - There were changes in the following diagnostic fields, which are - now averaged over only vegetated landunits (see ESCOMP/ctsm#27): - - BTRAN - - BTRANMN - - RSSHA - - RSSUN - - ROOTR (inactive by default) - - ROOTR_COLUMN (inactive by default) - - RRESIS (inactive by default) - - Changes are also possible in rare circumstances for the NFIRE - diagnostic field, in transient cases, although no differences were - observed for this field in the test suite (see ESCOMP/ctsm#31). - - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A - - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A - - URL for LMWG diagnostics output used to validate new climate: N/A - + - what code configurations: clm45 cases (or any cases with + use_grainproduct false) with crop and C isotopes + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + just changes a few diagnostic fields -Detailed list of changes ------------------------- + Just changes answers for C13_AR, C13_NBP, C14_AR, C14_NBP in clm45 + cases (or any cases with use_grainproduct false) with crop and C + isotopes, due to fixing ESCOMP/CTSM#1666. (We don't have any such + tests in the test suite.) -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none -Pull Requests that document the changes (include PR ids): none +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1670 =============================================================== =============================================================== -Tag name: ctsm1.0.dev068 -Originator(s): sacks (Bill Sacks) -Date: Mon Sep 30 09:57:04 MDT 2019 -One-line Summary: Add water tracers to CombineSnowLayers, DivideSnowLayers, ZeroEmptySnowLayers - -Purpose of changes ------------------- - -Add water tracers to CombineSnowLayers, DivideSnowLayers and -ZeroEmptySnowLayers. This completes the tracerization of the core snow -code: most or all of the code in SnowHydrologyMod is now tracerized. +Tag name: ctsm5.1.dev084 +Originator(s): glemieux (Gregory Lemieux,LBL/NGEET,510-486-5049) +Date: Thu 15 Mar 2022 10:05:00 MDT +One-line Summary: FATES parameter file updated to align with clm pft optical parameters -In contrast to most routines that I have tracerized, the tracerization -of these routines is done by embedding loops over tracers inside -existing code structures, rather than splitting out separate routines -that operate on bulk or tracer quantities. This is because (1) it didn't -make sense to introduce explicit fluxes for the state updates done here, -so we didn't have the extra need of having separate routines for flux -calculations vs. state updates; (2) the state updates were embedded in -loops over levels and conditionals in a way that would have been awkward -and messy to try to separately update bulk-and-tracer quantities -(h2osoi_liq, h2osoi_ice, etc.) from bulk-only quantities (dz, etc.). +Purpose and description of changes +---------------------------------- -Also, a bit of reordering of LakeHydrologyMod in order to keep the snow -code more together. - -Bugs fixed or introduced ------------------------- - -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#778 (Implement water tracers for combining and - dividing snow layers) +This tag incorporates updates to the FATES parameter file which now align the FATES +PFT optical parameters with the CLM PFT optical parameters. These parameters are +sourced from the recommended parameters in Majasalmi & Bright 2019. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -1680,102 +5673,148 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 + Notes of particular relevance for users --------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): none +Caveats for users (e.g., need to interpolate initial conditions): -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + Given that the FATES PFT optical parameters have been updated, FATES users updating to this + tag will differences results in FATES cases. -Changes made to namelist defaults (e.g., changed parameter values): none +Testing summary: +---------------- -Changes to the datasets (e.g., parameter, surface or initial files): none + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -Substantial timing or memory changes: I don't think so - Based on the changes introduced, I expect *very* small increases in - runtime of the modified routines (which would show up in the - hydro_without_drainage timer), even for cases without water tracers, - but I wouldn't expect this to have a significant impact. From PFS - test, and specifically looking at the timing of - hydro_without_drainage in that test, I see a possible small increase - (a few percent) in the timing of that section, though the differences - are within typical machine variability, so don't seem necessarily - significant. + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + cheyenne ---- OK + izumi ------- OK -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + cheyenne ---- OK + izumi ------- OK -Changes to tests or testing: none + any other testing (give details below): + ILAMB benchmarking was conduct to help evaluate the differences resulting from the parameter + file updates. See FATES #831 for details. -Code reviewed by: self +Answer changes +-------------- -CTSM testing: +Changes answers relative to baseline: YES - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + [ If a tag changes answers relative to baseline comparison the + following should be filled in (otherwise remove this section). + And always remove these three lines and parts that don't apply. ] - build-namelist tests: + Summarize any changes to answers, i.e., + - what code configurations: FATES + - what platforms/compilers: All + - nature of change (roundoff; larger than roundoff/same climate; new climate): larger than roundoff - cheyenne - not run + If this tag changes climate describe the run(s) done to evaluate the new + climate (put details of the simulations in the experiment database) + See FATES #831 for discussion - tools-tests (test/tools): +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + fates: sci.1.54.0_api.22.0.0 -> fates-sci.1.55.4_api.22.1.0 - cheyenne - not run +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/CTSM/pull/1681 + https://github.com/NGEET/fates/pull/831 - PTCLM testing (tools/shared/PTCLM/test): +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev083 +Originator(s): fang-bowen (Bowen Fang) / oleson (Keith Oleson,UCAR/TSS,303-497-1332) + / Face2sea (Lei Zhao) / keerzhang1 (Keer Zhang) / sacks (Bill Sacks) +Date: Tue Mar 8 14:12:00 MST 2022 +One-line Summary: Implement PCT_URBAN_MAX to minimize dynamic urban memory - cheyenne - not run +Purpose and description of changes +---------------------------------- - python testing (see instructions in python/README.md; document testing done): +Read in 'PCT_URBAN_MAX' from the landuse timeseries file (maximum urban percentage throughout +timeseries) and initialize urban landunits in memory only where PCT_URBAN_MAX is greater than zero. - (any machine) - not run +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - regular tests (aux_clm): +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.) - cheyenne ---- pass - izumi ------- pass + [Put an [X] in the box for any configuration with significant answer changes.] -If the tag used for baseline comparisons was NOT the previous tag, note that here: +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1572 (Improve mechanism for determining where to + allocate memory for urban when running with dynamic urban) + +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 + +Changes to tests or testing: +ERS_Lm25.1x1_smallvilleIA.IHistClm50BgcCropQianRs.cheyenne_gnu.clm-smallville_dynurban_monthly has +been updated to accomodate PCT_URBAN_MAX + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + cheyenne ---- PASS + izumi ------- PASS Answer changes -------------- Changes answers relative to baseline: NO -Detailed list of changes ------------------------- - -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Other details +------------- -Pull Requests that document the changes (include PR ids): none +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/1661 =============================================================== =============================================================== -Tag name: ctsm1.0.dev067 -Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) -Date: Thu Sep 26 15:02:39 MDT 2019 -One-line Summary: Add config_archive.xml to CTSM cime_config -- no testing - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev082 +Originator(s): slevis (Samuel Levis,SLevis Consulting,303-665-1310) +Date: Mon Feb 28 10:12:16 MST 2022 +One-line Summary: Replace dom_nat_pft with dom_plant to enable crop in fsurdat_modifier tool -Add config_archive.xml to cime_config for CTSM. Update the CODE_OF_CONDUCT -to the August/2019 UCAR version. +Purpose and description of changes +---------------------------------- -No testing done. + Allow user to replace vegetation in fsurdat files with any pft/cft using the + fsurdat_modifier tool option dom_plant. This option replaces now obsolete + option dom_nat_pft which handled pfts only and not cfts. -Bugs fixed or introduced ------------------------- Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -1785,194 +5824,334 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 + Notes of particular relevance for users --------------------------------------- +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + Instead of dom_nat_pft = UNSET, modify_template.cfg now includes the line + dom_plant = UNSET to allow users to set the pft/cft of their choice to replace + the existing vegetation. -Caveats for users (e.g., need to interpolate initial conditions): None +Changes to the datasets (e.g., parameter, surface or initial files): + New system test that checks the new code compares a generated file to a + baseline file. I added the baseline file to this PR: + .../python/ctsm/test/testinputs/surfdata_5x5_amazon_16pfts_Irrig_CMIP6_simyr2000_c171214_modified_with_crop.nc -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None -Changes made to namelist defaults (e.g., changed parameter values): None +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: + Added a system test to test_sys_fsurdat_modifier.py to run with the new option + dom_plant set to 15 (i.e. a crop). -Changes to the datasets (e.g., parameter, surface or initial files): None -Substantial timing or memory changes: None +Testing summary: +---------------- -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + python testing (if python code has changed; see instructions in python/README.md; document testing done): -Changes to tests or testing: None + (any machine) - cheyenne PASS -Code reviewed by: self + clm_pymods test suite on cheyenne - PASS + any other testing (give details below): -CTSM testing: doc (no standard testing done) - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Answer changes +-------------- +Changes answers relative to baseline: NO - build-namelist tests: - cheyenne - PASS +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/1615 - src unit-tests: +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev081 +Originator(s): swensosc (Sean Swenson) +Date: Thu Feb 24 21:33:35 MST 2022 +One-line Summary: Do not subtract irrigation from QRUNOFF diagnostic - cheyenne - PASS +Purpose and description of changes +---------------------------------- - regular tests (aux_clm): None +Remove code that subtracts surface irrigation flux from qflx_runoff_col. +This is a diagnostic change only. + +This subtraction no longer makes sense now that irrigation is passed as +a separate flux to the ROF model. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 -If the tag used for baseline comparisons was NOT the previous tag, note that here: previous +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK Answer changes -------------- -Changes answers relative to baseline: No! +Changes answers relative to baseline: YES, but just in a few diagnostic fields -Detailed list of changes ------------------------- - -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + Summarize any changes to answers, i.e., + - what code configurations: Crop cases with irrigation + - what platforms/compilers: All + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff, but only impacts a few diagnostic fields: + QRUNOFF, QRUNOFF_R, QRUNOFF_TO_COUPLER -Pull Requests that document the changes (include PR ids): None -(https://github.com/ESCOMP/ctsm/pull) +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1641 =============================================================== =============================================================== -Tag name: ctsm1.0.dev066 -Originator(s): sacks (Bill Sacks) -Date: Fri Sep 20 09:07:23 MDT 2019 -One-line Summary: Add water tracers to SnowCapping +Tag name: ctsm5.1.dev080 +Originator(s): sacks (Bill Sacks) +Date: Thu Feb 24 15:26:02 MST 2022 +One-line Summary: Use avg days per year when converting param units -Purpose of changes ------------------- +Purpose and description of changes +---------------------------------- + +When converting parameter units from per-year to per-second, use average +days per year instead of current number of days per year. This is +relevant when running with a Gregorian calendar. + +See https://github.com/ESCOMP/CTSM/issues/1612 for details. + +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.] + +[ ] clm5_1 -Update water tracer terms in SnowCapping. As I have done elsewhere, this -has involved splitting each piece of SnowCapping into its own subroutine, -which operates either on bulk, tracers, or bulk + tracers. +[ ] clm5_0 + +[ ] ctsm5_0-nwp -This is supported by calls to ResetCheckedTracers prior to the call to -SnowCapping, since some intervening code is not yet tracerized. +[ ] clm4_5 Bugs fixed or introduced ------------------------ - Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#777 (Implement water tracers for SnowCapping) - +- Resolves ESCOMP/CTSM#1612 (Some uses of get_days_per_year should use + the average number of days in a year, not the number of days in the + current year) -Significant changes to scientifically-supported configurations --------------------------------------------------------------- +Known bugs introduced in this tag (include issue #): +- ESCOMP/CTSM#1624 (Change get_average_days_per_year to use + ESMF_CalendarGet) -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.) +Notes of particular relevance for developers: +--------------------------------------------- +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- Once ESMF supports it, we should change get_average_days_per_year to + use ESMF_CalendarGet (see ESCOMP/CTSM#1624) - [Put an [X] in the box for any configuration with significant answer changes.] +Testing summary: +---------------- -[ ] clm5_0 + cheyenne ---- OK + izumi ------- OK -[ ] ctsm5_0-nwp +Test +ERS_Ly3_P72x2_Vmct.f10_f10_mg37.IHistClm50BgcCropG.cheyenne_intel.clm-cropMonthOutput +initially failed COMPARE_base_rest and BASELINE comparisons; rerunning +solved the issue. -[ ] clm4_5 +Answer changes +-------------- -Notes of particular relevance for users ---------------------------------------- +Changes answers relative to baseline: YES -Caveats for users (e.g., need to interpolate initial conditions): none + Summarize any changes to answers, i.e., + - what code configurations: Gregorian cases with BGC + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + larger than roundoff / same climate -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + Changes a few BGC-related parameters by a small amount (< 1/365 in + a relative sense) for Gregorian cases -Changes made to namelist defaults (e.g., changed parameter values): none + Changes answers for these tests: + - SMS_Ly5_Mmpi-serial.1x1_smallvilleIA.IHistClm50BgcCropQianRs.izumi_gnu.clm-gregorian_cropMonthOutput + - DAE_C2_D_Lh12.f10_f10_mg37.I2000Clm50BgcCrop.cheyenne_intel.clm-DA_multidrv + - DAE_N2_D_Lh12_Vmct.f10_f10_mg37.I2000Clm50BgcCrop.cheyenne_intel.clm-DA_multidrv -Changes to the datasets (e.g., parameter, surface or initial files): none + In principle, might change answers by roundoff for NOLEAP BGC + tests on some machines / compilers, but that wasn't seen in any + aux_clm testing. -Substantial timing or memory changes: none - Small increase in total runtime of PFS test, but the relevant timing - section, hydro_without_drainage, took slightly *less* time compared - with the last tag. +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1625 +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev079 +Originator(s): sacks (Bill Sacks) +Date: Thu Feb 24 14:40:58 MST 2022 +One-line Summary: Changes to CropPhenology timing -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide +Purpose and description of changes +---------------------------------- -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Changes to CropPhenology timing to support +https://github.com/escomp/ctsm/pull/1616 and other work being done by +Sam Rabin: -Changes to tests or testing: none +(1) Change CropPhenology to look at the time as of the START of the time + step. Previously, CropPhenology looked at time as of the END of the + time step. This was somewhat problematic, particularly because it + meant that the last time step of the year was considered Jan 1, and + so crops with a planting window beginning Jan 1 could be planted at + the end of the previous year rather than the start of the new year. + This was becoming particularly problematic in the context of Sam + Rabin's upcoming prescribed sowing date work (see #1623 and #1616 + for some discussion). -Code reviewed by: self +(2) Call CropPhenology regardless of doalb (however, still do not call + CropPhenology on time step 0). (See some discussion in #1626 and + #1623.) +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- -CTSM testing: +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.) - build-namelist tests: + [Put an [X] in the box for any configuration with significant answer changes.] - cheyenne - not run +[ ] clm5_1 - tools-tests (test/tools): +[ ] clm5_0 - cheyenne - not run +[ ] ctsm5_0-nwp - PTCLM testing (tools/shared/PTCLM/test): +[ ] clm4_5 - cheyenne - not run - python testing (see instructions in python/README.md; document testing done): +Bugs fixed or introduced +------------------------ +[Remove any lines that don't apply. Remove entire section if nothing applies.] - (any machine) - not run +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1623 (Change CropPhenology to look at the day of + year as of the start of the time step, not the end of the time step) - regular tests (aux_clm): +Testing summary: +---------------- - cheyenne ---- pass - izumi ------- pass + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -If the tag used for baseline comparisons was NOT the previous tag, note that here: + cheyenne ---- OK + izumi ------- OK +Also ran +ERS_Ld3_D.f09_g17.I1850Clm50BgcCrop.cheyenne_intel.clm-rad_hrly_light_res_half +(a debug version of the one test in the test suite that uses hourly +doalb) Answer changes -------------- -Changes answers relative to baseline: NO +Changes answers relative to baseline: YES + Summarize any changes to answers, i.e., + - what code configurations: Crop cases + - what platforms/compilers: All + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Not investigated carefully, but expected to be larger than + roundoff/same climate -Detailed list of changes ------------------------- + Based on an analysis of the code, the differences should be small, + but I haven't investigated this with simulations. In principle, + there could be larger answer changes for crops that invoke + vernalization in cases where doalb isn't true every time step, but + currently I think we don't simulate any crops that invoke + vernalization. It's also possible that there are other larger + changes in cases where doalb isn't true every time step (i.e., F + and B compsets), though from reading through the code, I don't see + any potentials for big changes. -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none -Pull Requests that document the changes (include PR ids): none +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1628 =============================================================== =============================================================== -Tag name: ctsm1.0.dev065 -Originator(s): sacks (Bill Sacks) -Date: Sat Sep 14 12:52:42 MDT 2019 -One-line Summary: Add water tracers to SnowWater - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev078 +Originator(s): sacks (Bill Sacks) +Date: Thu Feb 24 14:15:46 MST 2022 +One-line Summary: Rework single-point testing -Update water tracer terms in SnowWater. As I have done elsewhere, this -has involved splitting each piece of SnowWater into its own subroutine, -which operates either on bulk, tracers, or bulk + tracers. +Purpose and description of changes +---------------------------------- -This is supported by calls to ResetCheckedTracers prior to the call to -SnowWater, since some intervening code is not yet tracerized. +Two changes to make the single-point tests in our test suite run more +smoothly. The main motivation for this is that single-point tests have +been failing frequently on cheyenne, presumably due to issues with nodes +in the share queue. -Bugs fixed or introduced ------------------------- +(1) Rework the test list to remove redundant single-point tests and move + many of our single-point tests from cheyenne to izumi. (With (2) in + place, this isn't really necessary, but given that we're going to be + using full nodes for single-point tests, it seems better to do this + on izumi rather than wasting all of these processors on the + generally more heavily-loaded cheyenne. Also, this helps accomplish + the goal of providing better balance between our different + machine-compiler permutations, helping to reduce overall testing + time.) -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#776 (Implement water tracers for SnowWater) +(2) Change run_sys_tests so that, for the remaining single-point tests + on cheyenne, we use the regular queue rather than the share queue. + This means that single-point tests use a full node, which is + wasteful but makes the tests more reliable. (You can override this + behavior with the --queue option to run_sys_tests: To revert to the + earlier behavior, where the queue is determined automatically for + each test, add '--queue unspecified' to your run_sys_tests + invocation. (As before --queue can also be used to specify some + other queue to use for all tests.)) Significant changes to scientifically-supported configurations @@ -1983,267 +6162,151 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): +- Partially addresses ESCOMP/CTSM#275 -Changes made to namelist defaults (e.g., changed parameter values): none -Changes to the datasets (e.g., parameter, surface or initial files): none +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: +- Overhauls single-point tests. See + https://github.com/ESCOMP/CTSM/pull/1660#issuecomment-1049489430 for details. -Substantial timing or memory changes: none -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide +Testing summary: +---------------- -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + python testing (if python code has changed; see instructions in python/README.md; document testing done): -Changes to tests or testing: none + cheyenne - PASS -Code reviewed by: self + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + cheyenne ---- PASS + izumi ------- PASS -CTSM testing: +Answer changes +-------------- - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Changes answers relative to baseline: NO - build-namelist tests: +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1660 - cheyenne - not run +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev077 +Originator(s): rgknox (Ryan Knox,,,) +Date: Tue Feb 22 12:51:04 EST 2022 +One-line Summary: Updates to FATES API, including removal of patch dimensions from fates history and using soil instead of ground layers for fates history. - tools-tests (test/tools): +Purpose and description of changes +---------------------------------- - cheyenne - not run +This set of changes cleaned up some aspects of the FATES history diagnostics API. Patches are not used in output diagnostics, so they were removed from the history coupling. Also, FATES only "sees" the soil, not the rock layers, so it is more appropriate to only align FATES below ground history output on the soil layers, and not ground layers. Also, the corresponding FATES side changes have some history output names changed. This is an API change as well, and is compatable with FATES: https://github.com/NGEET/fates/releases/tag/sci.1.54.0_api.22.0.0 - PTCLM testing (tools/shared/PTCLM/test): - cheyenne - not run +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - python testing (see instructions in python/README.md; document testing done): +Does this tag change answers significantly for any of the following physics configurations? - (any machine) - not run +[ ] clm5_1 - regular tests (aux_clm): +[ ] clm5_0 - cheyenne ---- ok - izumi ------- ok +[ ] ctsm5_0-nwp - ok means tests pass, baselines fail as expected +[ ] clm4_5 -If the tag used for baseline comparisons was NOT the previous tag, note that here: +[X] clm5_1-FATES-hydro -Answer changes --------------- +Notes of particular relevance for users +--------------------------------------- -Changes answers relative to baseline: YES + FATES users should now benefit from more interpretable history output from soil dimensioned variables, where they won't have to filter out ground layers which previously contained no-data flags. Also, note the following FATES history variable name changes: - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): + FATES_ROOTH2O_ABS_SZPF -> FATES_ABSROOT_H2O_SZPF + FATES_ROOTH2O_TRANS_SZPF -> FATES_TRANSROOT_H2O_SZPF + FATES_STEMH2O_SZPF -> FATES_STEM_H2O_SZPF + FATES_LEAFH2O_SZPF -> FATES_LEAF_H2O_SZPF + FATES_ROOTH2O_POT_SZPF -> FATES_ABSROOT_H2OPOT_SZPF + FATES_ROOTH2O_TRANSPOT_SZPF -> FATES_TRANSROOT_H2OPOT_SZPF + FATES_STEMH2O_POT_SZPF -> FATES_STEM_H2OPOT_SZPF + FATES_LEAFH2O_POT_SZPF -> FATES_LEAF_H2OPOT_SZPF + FATES_ROOT_ABSFRAC_SZPF -> FATES_ABSROOT_CONDFRAC_SZPF + FATES_ROOT_TRANSFRAC_SZPF -> FATES_TRANSROOT_CONDFRAC_SZPF + FATES_STEMH2O_FRAC_SZPF -> FATES_STEM_CONDFRAC_SZPF + FATES_LEAFH2O_FRAC_SZPF -> FATES_LEAF_CONDFRAC_SZPF - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): +Caveats for users (e.g., need to interpolate initial conditions): FATES users may have scripts that assume below ground diagnostics are on the ground dimension, and will have to update scripts to use the soil dimension. - Roundoff level: answer changes just arise because I have made - qflx_snow_percolation_col a true flux, with units of - per-unit-time; this involved dividing by dtime, and later - multiplying by dtime when it is applied to states. Previously, the - corresponding variable (qout / qin) was not per-unit-time. +Changes made to namelist defaults (e.g., changed parameter values): No changes to defaults, but some FATES plant hydraulics history variable names were changed in the corresponding FATES tag. - If bitwise differences were observed, how did you show they were no worse - than roundoff? +Changes to tests or testing: An update was made to the fates-hydro tests to use updated history variable names. - I ran comparisons against a version off of master that had the - minimal changes to exhibit these roundoff-level changes. Diffs for - this are below. My branch is bit-for-bit with this version. - - diff --git a/src/biogeophys/SnowHydrologyMod.F90 b/src/biogeophys/SnowHydrologyMod.F90 - index cad47e28..0abcc49f 100644 - --- a/src/biogeophys/SnowHydrologyMod.F90 - +++ b/src/biogeophys/SnowHydrologyMod.F90 - @@ -1140,17 +1140,17 @@ subroutine SnowWater(bounds, & - c = filter_snowc(fc) - if (j >= snl(c)+1) then - - - h2osoi_liq(c,j) = h2osoi_liq(c,j) + qin(c) - + h2osoi_liq(c,j) = h2osoi_liq(c,j) + qin(c)*dtime - - - mss_bcphi(c,j) = mss_bcphi(c,j) + qin_bc_phi(c) - - mss_bcpho(c,j) = mss_bcpho(c,j) + qin_bc_pho(c) - - mss_ocphi(c,j) = mss_ocphi(c,j) + qin_oc_phi(c) - - mss_ocpho(c,j) = mss_ocpho(c,j) + qin_oc_pho(c) - + mss_bcphi(c,j) = mss_bcphi(c,j) + qin_bc_phi(c)*dtime - + mss_bcpho(c,j) = mss_bcpho(c,j) + qin_bc_pho(c)*dtime - + mss_ocphi(c,j) = mss_ocphi(c,j) + qin_oc_phi(c)*dtime - + mss_ocpho(c,j) = mss_ocpho(c,j) + qin_oc_pho(c)*dtime - - - mss_dst1(c,j) = mss_dst1(c,j) + qin_dst1(c) - - mss_dst2(c,j) = mss_dst2(c,j) + qin_dst2(c) - - mss_dst3(c,j) = mss_dst3(c,j) + qin_dst3(c) - - mss_dst4(c,j) = mss_dst4(c,j) + qin_dst4(c) - + mss_dst1(c,j) = mss_dst1(c,j) + qin_dst1(c)*dtime - + mss_dst2(c,j) = mss_dst2(c,j) + qin_dst2(c)*dtime - + mss_dst3(c,j) = mss_dst3(c,j) + qin_dst3(c)*dtime - + mss_dst4(c,j) = mss_dst4(c,j) + qin_dst4(c)*dtime - - if (j <= -1) then - ! No runoff over snow surface, just ponding on surface - @@ -1167,8 +1167,8 @@ subroutine SnowWater(bounds, & - qout(c) = max(0._r8,(vol_liq(c,j) & - - ssi*eff_porosity(c,j))*dz(c,j)*frac_sno_eff(c)) - end if - - qout(c) = qout(c)*1000._r8 - - h2osoi_liq(c,j) = h2osoi_liq(c,j) - qout(c) - + qout(c) = (qout(c)*1000._r8)/dtime - + h2osoi_liq(c,j) = h2osoi_liq(c,j) - qout(c)*dtime - qin(c) = qout(c) - - ! mass of ice+water: in extremely rare circumstances, this can - @@ -1187,7 +1187,7 @@ subroutine SnowWater(bounds, & - if (qout_bc_phi(c) > mss_bcphi(c,j)) then - qout_bc_phi(c) = mss_bcphi(c,j) - endif - - mss_bcphi(c,j) = mss_bcphi(c,j) - qout_bc_phi(c) - + mss_bcphi(c,j) = mss_bcphi(c,j) - qout_bc_phi(c)*dtime - qin_bc_phi(c) = qout_bc_phi(c) - - ! BCPHO: - @@ -1196,7 +1196,7 @@ subroutine SnowWater(bounds, & - if (qout_bc_pho(c) > mss_bcpho(c,j)) then - qout_bc_pho(c) = mss_bcpho(c,j) - endif - - mss_bcpho(c,j) = mss_bcpho(c,j) - qout_bc_pho(c) - + mss_bcpho(c,j) = mss_bcpho(c,j) - qout_bc_pho(c)*dtime - qin_bc_pho(c) = qout_bc_pho(c) - - ! OCPHI: - @@ -1205,7 +1205,7 @@ subroutine SnowWater(bounds, & - if (qout_oc_phi(c) > mss_ocphi(c,j)) then - qout_oc_phi(c) = mss_ocphi(c,j) - endif - - mss_ocphi(c,j) = mss_ocphi(c,j) - qout_oc_phi(c) - + mss_ocphi(c,j) = mss_ocphi(c,j) - qout_oc_phi(c)*dtime - qin_oc_phi(c) = qout_oc_phi(c) - - ! OCPHO: - @@ -1214,7 +1214,7 @@ subroutine SnowWater(bounds, & - if (qout_oc_pho(c) > mss_ocpho(c,j)) then - qout_oc_pho(c) = mss_ocpho(c,j) - endif - - mss_ocpho(c,j) = mss_ocpho(c,j) - qout_oc_pho(c) - + mss_ocpho(c,j) = mss_ocpho(c,j) - qout_oc_pho(c)*dtime - qin_oc_pho(c) = qout_oc_pho(c) - - ! DUST 1: - @@ -1223,7 +1223,7 @@ subroutine SnowWater(bounds, & - if (qout_dst1(c) > mss_dst1(c,j)) then - qout_dst1(c) = mss_dst1(c,j) - endif - - mss_dst1(c,j) = mss_dst1(c,j) - qout_dst1(c) - + mss_dst1(c,j) = mss_dst1(c,j) - qout_dst1(c)*dtime - qin_dst1(c) = qout_dst1(c) - - ! DUST 2: - @@ -1232,7 +1232,7 @@ subroutine SnowWater(bounds, & - if (qout_dst2(c) > mss_dst2(c,j)) then - qout_dst2(c) = mss_dst2(c,j) - endif - - mss_dst2(c,j) = mss_dst2(c,j) - qout_dst2(c) - + mss_dst2(c,j) = mss_dst2(c,j) - qout_dst2(c)*dtime - qin_dst2(c) = qout_dst2(c) - - ! DUST 3: - @@ -1241,7 +1241,7 @@ subroutine SnowWater(bounds, & - if (qout_dst3(c) > mss_dst3(c,j)) then - qout_dst3(c) = mss_dst3(c,j) - endif - - mss_dst3(c,j) = mss_dst3(c,j) - qout_dst3(c) - + mss_dst3(c,j) = mss_dst3(c,j) - qout_dst3(c)*dtime - qin_dst3(c) = qout_dst3(c) - - ! DUST 4: - @@ -1250,7 +1250,7 @@ subroutine SnowWater(bounds, & - if (qout_dst4(c) > mss_dst4(c,j)) then - qout_dst4(c) = mss_dst4(c,j) - endif - - mss_dst4(c,j) = mss_dst4(c,j) - qout_dst4(c) - + mss_dst4(c,j) = mss_dst4(c,j) - qout_dst4(c)*dtime - qin_dst4(c) = qout_dst4(c) - - end if - @@ -1280,9 +1280,9 @@ subroutine SnowWater(bounds, & - do fc = 1, num_snowc - c = filter_snowc(fc) - ! Qout from snow bottom - - qflx_snow_drain(c) = qflx_snow_drain(c) + (qout(c) / dtime) - + qflx_snow_drain(c) = qflx_snow_drain(c) + qout(c) - - - qflx_rain_plus_snomelt(c) = (qout(c) / dtime) & - + qflx_rain_plus_snomelt(c) = qout(c) & - + (1.0_r8 - frac_sno_eff(c)) * qflx_liq_grnd(c) - int_snow(c) = int_snow(c) + frac_sno_eff(c) & - * (qflx_dew_snow(c) + qflx_dew_grnd(c) + qflx_liq_grnd(c)) * dtime +Testing summary: +---------------- + d) regular (regular tests on normal machines if CTSM source is modified) - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A + cheyenne ---- /glade/scratch/rgknox/tests_0220-124230ch (OK) expected FATES baseline DIFFS + izumi ------- /scratch/cluster/rgknox/tests_0220-125238iz (OK) - URL for LMWG diagnostics output used to validate new climate: N/A - + fates tests: fates test suite was run, (OK) -Detailed list of changes ------------------------- -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Answer changes +-------------- -Pull Requests that document the changes (include PR ids): none +Changes answers relative to baseline: All results are B4B with base (dev076), except for two conditions: 1) FATES output that uses the soil dimension has NLCOMP and DIFFS due to the dimension change, and 2) FATES hydro simulations have different results due to bug fixes -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev064 -Originator(s): slevis (Samuel Levis,SLevis Consulting LLC,303-665-1310) -Date: Mon Sep 9 13:14:51 MDT 2019 -One-line Summary: User defined top-two snow layers -Purpose of changes ------------------- +Other details +------------- - Instead of hardcoding, we now set: +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): fates - dzmin(1) = snow_dzmin_1 - dzmax_l(1) = snow_dzmax_l_1 - dzmax_u(1) = snow_dzmax_u_1 - dzmin(2) = snow_dzmin_2 - dzmax_l(2) = snow_dzmax_l_2 - dzmax_u(2) = snow_dzmax_u_2 +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1592 +https://github.com/NGEET/fates/pull/766 - where the right-hand-side variables get namelist-defined values and the - model calculates dzmin and dzmax_* for the remaining snow layers using - recursive formulas. The calculation is intended to match the previously - hardcoded values, except for the bottom snow layer when nlevsno < 12. - The bottom layer now always gets dzmax_* = huge(1._r8). The formulas - appear in a document titled "A firn model for CLM" that is linked to - #729. +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev076 +Originator(s): negins (Negin Sobhani,UCAR/TSS,303-497-1224) +Date: Fri Feb 18 13:25:19 MST 2022 +One-line Summary: updating subset_data.py script and move to the Python package. +Purpose and description of changes +---------------------------------- +The purpose of this PR was to update and move the subset_data.py and other +relevant python scripts to the CTSM python package so the other python codes +(such as fsurdat_modifier) can re-use/import the capabilities of this script. -Bugs fixed or introduced ------------------------- +This updated code now adds the capability to create user-mods for a generic +singlepoint case. -Issues fixed (include CTSM Issue #): #729 +The subset_data.py (top script called subset_data)extracts surface dataset, +domain file, landuse, and DATM files at a single point or a region from the +available global dataset. Next it modifies the surface dataset based on the +user options (command-line arguments) for example dom-pft or zero-ing non-veg +types, etc. Significant changes to scientifically-supported configurations @@ -2254,132 +6317,93 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): - New namelist parameters for specifying the top-two snow layers: - snow_dzmin_1, snow_dzmax_l_1, snow_dzmax_u_1 - snow_dzmin_2, snow_dzmax_l_2, snow_dzmax_u_2 - -Changes made to namelist defaults (e.g., changed parameter values): - Introduced default values for the new parameters so as to maintain - same answers to within roundoff - -Changes to the datasets (e.g., parameter, surface or initial files): none - -Substantial timing or memory changes: none - -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - -Changes to tests or testing: none - -Code reviewed by: @billsacks - -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: +Bugs fixed or introduced +------------------------ +[Remove any lines that don't apply. Remove entire section if nothing applies.] - cheyenne - +Issues fixed (include CTSM Issue #): + Fixes CTSM/#935 -- Make surface dataset and landuse consistent for singlept + Fixes CTSM/#1436 -- Running subset_data from any directory + Fixes CTSM/#1437 -- issue with modify_singlept_site_neon for finding latest file + Fixes CTSM/#1594 -- try/except for python download neon data + Fixes CTSM/#1606 -- NEON tools not handling crop weights correctly. + Part of development needed for #1490 -- generic single point simulation. + Partially Fixes CTSM/#1622 -- check if file exists and abort if not found + --overwrite + Fixes it for subset_data + Partially Fixes CTSM/#1441 -- Move critical toolchain script out of tools/contrib + Fixes it for subset_data - tools-tests (test/tools): +CIME Issues fixed (include issue #): N/A - cheyenne - +Known bugs introduced in this tag (include issue #): N/A - PTCLM testing (tools/shared/PTCLM/test): +Known bugs found since the previous tag (include issue #): N/A - cheyenne - - python testing (see instructions in python/README.md; document testing done): +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: + Added python/ctsm/test/test_unit_args_utils.py (11 unit tests) + Added python/ctsm/test/test_unit_singlept_data.py (10 unit tests) + Added python/ctsm/test/test_unit_singlept_data_surfdata.py (24 unit tests) + Modified tests in python/ctsm/test/test_unit_utils.py + Modified tests in python/ctsm/test/test_unit_modify_fsurdat.py + Added 10 new tests in tests/tools/input_tests_master thanks to @ekluzek + Added test/tools/tests_pretag_nompi_neon - (any machine) - +Testing summary: +---------------- - regular tests (aux_clm): + python testing (if python code has changed; see instructions in python/README.md; document testing done): - cheyenne ---- OK - izumi ------- OK + clm_pymods test suite on cheyenne - PASS + pylint -- PASS (10.00/10) (cheyenne + python/3.7.9) + Python unit tests -- PASS (cheyenne) + Python system tests -- PASS (cheyenne) -If the tag used for baseline comparisons was NOT the previous tag, note that here: + tools-tests (test/tools) (if tools have been changed): + cheyenne - OK (tests_pretag_nompi_neon + subset_data tests) Answer changes -------------- +Changes answers relative to baseline: NO -Changes answers relative to baseline: YES - - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change: roundoff - - If bitwise differences were observed, how did you show they were no worse - than roundoff? - Introduced temporary code to overwrite dzmin(j), dzmax_l(j), and - dzmax_u(j) with their original values when different by less than - 1e-13 from their original values for all but the bottom snow layer. - The bottom layer was left as dzmax_l = dzmax_u(j) = huge(1._8), i.e. - the new value. The test resulted in bit-for-bit same answers. - -Detailed list of changes ------------------------- - -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Other details +------------- Pull Requests that document the changes (include PR ids): - https://github.com/ESCOMP/ctsm/pull/792 +https://github.com/ESCOMP/CTSM/pull/1461 =============================================================== =============================================================== -Tag name: ctsm1.0.dev063 -Originator(s): erik (Erik Kluzek) -Date: Thu Sep 5 21:28:02 MDT 2019 -One-line Summary: Two answer changing fixes (fire, DWT_SLASH) and fix for urban streams for Clm45 - -Purpose of changes ------------------- - -Fire bug fix and DWT_SLASH change and fix urban stream years for clm4_5. -The latitude used in an expression for Bgc-Fire model Li2016 (used in Clm50) -had latitude in degrees rather than in radians as it should have been. The -term is used for ignition and the cosine was being taken in degrees rather -than radians, hence the spatial pattern for ignition with latitude was incorrect. +Tag name: ctsm5.1.dev075 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Wed Feb 16 21:35:40 MST 2022 +One-line Summary: Small answer changes: urban ventilation, fire-emission, irrigate off when not crop, fix two SSP ndep files -The history field DWT_SLASH_CFLUX was being calculated on the column, but -really should have been a patch level variable. In the same way other fields -were handled we made DWT_SLASH_CFLUX a grid-cell variable, and added -DWT_SLASH_CFLUX_PATCH on the patch level that could be added to output. The same -is true of the C13_ and C14_ versions of it. +Purpose and description of changes +---------------------------------- -Clm45 was setting urbantv to year 2000, rather than 1850 or historical as it should -have. The urbantv file for Clm45 doesn't actually change, so this doesn't actually -make a difference. But, it does make the namelist look wrong. +The effects of ventilation (exchange of building air with canopy air) are accounted for in the +energy budget inside the building. The effects on urban canopy air are not. This remedies that. -Note, that SP cases, Vic cases and Fates cases do NOT change answers. Or if fire is -off, or certain single-point cases. Some cold-start cases don't seem to be sensitive -to it either. +This fixes an issue with how coefficients are applied to individual fire components. Allow units +to be in molecules/m2/sec as well as kg/m2/sec. -Bugs fixed or introduced ------------------------- +SSP3-7.0 Nitrogen-deposition file update. Fix SSP2-4.5 Nitrogen-deposition file. Turn irrigation +off by default except for future scenarios. -Issues fixed (include CTSM Issue #): #175, #787, #780 - fixes #175 urban stream years for clm4_5 - fixes #787 DWT_SLASH field - fixes #780 Bug in CN Fire Li 2016 which used latitude in degrees rather than radians +Add new external ccs_config_cesm which has the CESM cime configuration files. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -2389,47 +6413,62 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[X] clm5_0 +[x] clm5_1 -[ ] ctsm5_0-nwp +[x] clm5_0 + +[x] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): None +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): + Fixes #1526 -- Switch FATES methane test for methane off + Fixes #509 --- irrigate in 1850 is off for runs with use_crop but on for those without + Fixes #1578 -- Need to replace SSP370 ndep file with new one + Fixes #1631 -- ndep file for SSP2-4.5 is incorrect -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None +Known bugs introduced in this tag (include issue #): + #1653 -- Use secsphr in UrbBuildTempOleson2015Mod.F90 -Changes made to namelist defaults (e.g., changed parameter values): Defaults for urbantv for clm4_5 +Notes of particular relevance for users +--------------------------------------- -Changes to the datasets (e.g., parameter, surface or initial files): None +Caveats for users (e.g., need to interpolate initial conditions): + using older restart files will start ventilation flux at zero. + default fsurdat selection can also match irrigate true surface datasets -Substantial timing or memory changes: None +Changes made to namelist defaults (e.g., changed parameter values): + irrigate is now default off, except for future scenarios -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide +Changes to the datasets (e.g., parameter, surface or initial files): + New Nitrogen-deposition file for SSP3-7.0 + Correct Nitrogen-deposition file for SSP2-4.5 -Caveats for developers (e.g., code that is duplicated that requires double maintenance): None +Notes of particular relevance for developers: +--------------------------------------------- -Changes to tests or testing: None +Changes to tests or testing: + FATES methane on test switched to methane off, since methane on is the default -Code reviewed by: self, @olywon +Testing summary: regular +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -CTSM testing: regular + build-namelist tests (if CLMBuildNamelist.pm has changed): - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + cheyenne - PASS (345 tests are different than baseline) - build-namelist tests: + python testing (if python code has changed; see instructions in python/README.md; document testing done): - cheyenne - PASS (62 compare fail due to namelist changes) + cheyenne - PASS - regular tests (aux_clm): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - cheyenne ---- OK + cheyenne ---- PASS izumi ------- OK If the tag used for baseline comparisons was NOT the previous tag, note that here: previous @@ -2438,50 +6477,55 @@ If the tag used for baseline comparisons was NOT the previous tag, note that her Answer changes -------------- -Changes answers relative to baseline: Yes! +Changes answers relative to baseline: Yes Summarize any changes to answers, i.e., - - what code configurations: Clm50Bgc and some Clm45Bgc cases + - what code configurations: clm5_0/clm5_1 urban ventilation flux, + irrigate off now, SSP3-7.0/SSP2-4.5 new ndep file, fire-emissions different - what platforms/compilers: All - - nature of change: similar climate (but fire ignition pattern changes by latitude) - DWT_SLASH_* history fields change because moved to gridcell quantity (so change is relatively minor) + - 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) - - casename: - oleson/clm50_cesm20R_2deg_GSWP3V1_issue780_hist (for the fire change) + - casename: oleson/ctsm51_ctsm51d61_1deg_GSWP3V1_CON_VENT_2000 URL for LMWG diagnostics output used to validate new climate: -http://webext.cgd.ucar.edu/I20TR/clm50_cesm20R_2deg_GSWP3V1_issue780_hist/lnd/clm50_cesm20R_2deg_GSWP3V1_issue780_hist.1995_2014-clm50_cesm20R_2deg_GSWP3V1_hist.1995_2014/setsIndex.html - + https://webext.cgd.ucar.edu/I2000/ctsm51_ctsm51d61_1deg_GSWP3V1_CON_VENT_2000/lnd/ctsm51_ctsm51d61_1deg_GSWP3V1_CON_VENT_2000.1991_2010-ctsm51_ctsm51d61_1deg_GSWP3V1_CON_2000.1991_2010/set2/set2.html -Detailed list of changes ------------------------- -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None +Other details +------------- + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + cism to cismwrap_2_1_95 + cime to cime6.0.13 + cmeps to cmeps0.13.47 + cdeps to cdeps0.12.35 + cpl7 to cpl7.0.12 + pio to pio2_5_5 -Pull Requests that document the changes (include PR ids): #802 +Pull Requests that document the changes (include PR ids): (https://github.com/ESCOMP/ctsm/pull) - #802 -- Three answer changing fixes (fire, DWT_SLASH, urban streams for clm4_5) + #1535 -- Ventilation flux to urban canyon + #1532 -- Fire emissions bug fix =============================================================== =============================================================== -Tag name: ctsm1.0.dev062 -Originator(s): sacks (Bill Sacks) -Date: Tue Sep 3 16:04:28 MDT 2019 -One-line Summary: Move hobart tests to izumi - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev074 +Originator(s): slevis (Samuel Levis,SLevis Consulting,303-665-1310) +Date: Wed Feb 2 00:44:27 MST 2022 +One-line Summary: Introduce vert. resolved MIMICS as new method to solve below ground decomp. -Move all hobart testing to izumi. +Purpose and description of changes +---------------------------------- + Introducing new option to solve below ground decomposition: MIMICSWieder2015. + The old option (CENTURYKoven2013) remains available. User will select one or + the other via the namelist variable soil_decomp_method. -Bugs fixed or introduced ------------------------- + Elin's MIMICS+ github issue relates: #1260. + MIMICS spinup issues relate and are listed in caveats for users. -Known bugs introduced in this tag (include github issue ID): -- Recurrence of ESCOMP/ctsm#174 (ne30 case fails on hobart_nag due to floating overflow) Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -2491,120 +6535,110 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): none +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): + #1473 : decomp_depth_efolding appears (with the same value) in the namelist + and the params files; the model ends up using the one from the namelist -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none -Changes made to namelist defaults (e.g., changed parameter values): none +Notes of particular relevance for users +--------------------------------------- +Caveats for users (e.g., need to interpolate initial conditions): + MIMICS spinup method is in development + Issues related to spinup + #1451 -- MIMICS spinup + #1455 -- Additional history output for Newton-Krylov spinup + #1457 -- Adding history variables for Newton-Krylov spinup -Changes to the datasets (e.g., parameter, surface or initial files): none +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + New option MIMICSWieder2015 for use with namelist variable soil_decomp_method + decomp_depth_efolding removed as values on param files was already being used -Substantial timing or memory changes: none +Changes to the datasets (e.g., parameter, surface or initial files): + CLM parameter files now include new MIMICS-related parameters prefixed with + mimics_. Existing CENTURYKoven-specific parameters were renamed to include the + prefix bgc_. Parameters used by both CENTURYKoven2013 and MIMICSWieder2015 have + neither prefix. -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide +Substantial timing or memory changes: + Timing comparison between CENTURYKoven (BGC for short) and MIMICSWieder: + In a 1x1_brazil test writing annual output and restarts every 10 yrs, + BGC took ~2.8 hrs/100 yrs, MIMICS took ~3.6 hrs/100 yrs. -Caveats for developers (e.g., code that is duplicated that requires double maintenance): -- Testing should now be run on izumi, not hobart + More timing comparisons shown here: + https://github.com/ESCOMP/CTSM/pull/1318#issuecomment-1008211485 +Notes of particular relevance for developers: +--------------------------------------------- Changes to tests or testing: -- All hobart tests moved to izumi - -Code reviewed by: self - - -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: + New test-suite tests: + ERP_D_P36x2_Ld3.f10_f10_mg37.I1850Clm51BgcCrop.cheyenne_gnu.clm-mimics + SMS_Ld5_Mmpi-serial.1x1_brazil.IHistClm50BgcQianRs.izumi_gnu.clm-mimics + SMS_Ly5_Mmpi-serial.1x1_brazil.IHistClm50BgcQianRs.cheyenne_intel.clm-newton_krylov_spinup - cheyenne - not run - - tools-tests (test/tools): - - cheyenne - not run - - PTCLM testing (tools/shared/PTCLM/test): - - cheyenne - not run - - python testing (see instructions in python/README.md; document testing done): - - (any machine) - not run +Testing summary: +---------------- - regular tests (aux_clm): + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - cheyenne ---- not run - izumi ------- pass + build-namelist tests (if CLMBuildNamelist.pm has changed): - Also ran prealpha and prebeta tests that I moved from hobart to izumi. These passed except: - - ERP_D_Ld5.ne30_g16.I1850Clm50BgcCrop.izumi_nag.clm-default (#174) - - ERP_Ld5.f19_g17.I2000Clm50SpRtmFl.izumi_pgi.clm-default - - SMS_D_Ld1.f19_g17.I1850Clm45Cn.izumi_pgi.clm-default + cheyenne - PASS (831 tests are different from baseline because of new param files) - The last two failed with errors like: + python testing (if python code has changed; see instructions in python/README.md; document testing done): - i011.unified.ucar.edu.44619hfi_userinit: mmap of status page (dabbad0008040000) failed: Operation not permitted + cheyenne ---- OK (black test fails) - I wonder if the issue is that multi-node pgi cases don't work on izumi? + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -If the tag used for baseline comparisons was NOT the previous tag, note that here: + cheyenne ---- PASS + izumi ------- OK (see one answer change below) Answer changes -------------- -Changes answers relative to baseline: NO +Changes answers relative to baseline: NO (almost) -Detailed list of changes ------------------------- + One test in the izumi test-suite fails + SMS_Vmct.f10_f10_mg37.I2000Clm50BgcCrop.izumi_pgi.clm-crop + and this is due to diffs from baseline (dev073). + cprnc.out shows diffs only in one variable: + RMS TOTECOSYSC 1.9853E-12 NORMALIZED 6.5087E-17 -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -- cime: cime5.8.3_chint17-04 -> cime5.8.3_chint17-05 - Minor change on izumi to allow using run_sys_tests -Pull Requests that document the changes (include PR ids): none +Other details +------------- + +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/1318 -- MIMICS into vertically resolved CTSM =============================================================== =============================================================== -Tag name: ctsm1.0.dev061 -Originator(s): erik (Erik Kluzek) -Date: Sun Sep 1 22:37:07 MDT 2019 -One-line Summary: Simple b4b fixes: new params file, remove override_nsrest/anoxia_wtsat, DV deprecated - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev073 +Originator(s): sacks (Bill Sacks) +Date: Tue Jan 25 16:33:06 MST 2022 +One-line Summary: Some fixes for Gregorian calendar -New clm5 paramsfile that has the bad date of 631 changed to 701. Along with some simple bit for -bit changes. Removing some problematic options. Making Dynamic Vegetation a deprecated option -that requires you to use -ignore_warnings with it. +Purpose and description of changes +---------------------------------- -Bugs fixed or introduced ------------------------- +A few bug fixes for running with a Gregorian calendar. These primarily +fix the AnnualFluxDribbler, preventing balance errors in transient runs +(or in runs starting from restart files that came from transient runs). +But these general fixes end up fixing a few other minor issues with +Gregorian calendar runs as well. -Issues fixed (include CTSM Issue #): #463 #79 #97 #98 #104 #122 #173 #794 #795 #796 - - Fixes #463 bad date on params file that didn't allow using ESMF library with Crop - Fixes #79 correct documentation of qflx_evap_tot - Fixes #97 remove override_nsrest - Fixes #98 add warning when using single instance of a startup file for multi-instance cases - Fixes #104 use get_step_size_real when putting into a real variable - Fixes #122 decomp pool arrays should not start at 0 but 1 - Fixes #173 remove psi_soil_ref as not used - Fixes #794 remove anoxia_wtsat - Fixes #795 Correct documentation of -light_res - Fixes #796 Deprecate Dynamic Vegetation Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -2614,164 +6648,129 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): None -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): Remove namelist items - Remove namelist items: anoxia_wtsat, override_nsrest - Turning dynamic Vegetation on, now displays a warning, and requires using -ignore_warnings in CLM_BLDNML_OPTS - -Changes made to namelist defaults (e.g., changed parameter values): New paramdata files +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1590 (Gridcell water balance errors for some + PLUMBER2 sites with branch_tags/PPE.n11_ctsm5.1.dev030) -Changes to the datasets (e.g., parameter, surface or initial files): - clm5 paramdata file has correct date for crop of 701 (rather than incorrect 631) - clm5 and clm4_5 paramdata file removed an unused variable +Known bugs found since the previous tag (include issue #): +Other bugs with Gregorian calendar runs found in the course of making these fixes are: +- https://github.com/ESCOMP/CTSM/issues/1595 (Bugs in crop phenology + when running with a Gregorian calendar) +- https://github.com/ESCOMP/CTSM/issues/1612 (Some uses of + get_days_per_year should use the average number of days in a year, not + the number of days in the current year) -Substantial timing or memory changes: None -Notes of particular relevance for developers: (including Code reviews and testing) +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 - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): None - -Changes to tests or testing: DV tests removed or changed - -Code reviewed by: self - -CTSM testing: regular - - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: - - cheyenne - PASS (compare shows changes becausse of paramdata files) - - regular tests (aux_clm): - - cheyenne ---- OK - hobart ------ OK - -An additional fail is ERP_P36x2_D_Ld5.f10_f10_musgs.I2000Clm50Cn.cheyenne_gnu.clm-default, because -of #798. Because it's an issue with cime, I'm not marking it as an expected error. +Changes to tests or testing: +- Added a multi-year test with Gregorian calendar + (SMS_Ly5_Mmpi-serial.1x1_smallvilleIA.IHistClm50BgcCropQianRs.cheyenne_gnu.clm-gregorian_cropMonthOutput); + as expected, this test fails on master but passes on this branch -If the tag used for baseline comparisons was NOT the previous tag, note that here: previous +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + cheyenne ---- ok + izumi ------- ok Answer changes -------------- -Changes answers relative to baseline: No bit-for-bit - -Detailed list of changes ------------------------- - -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None - -Pull Requests that document the changes (include PR ids): #797 -(https://github.com/ESCOMP/ctsm/pull) +Changes answers relative to baseline: YES, but very limited - #797 -- Simple b4b fixes: new params file, remove override_nsrest/anoxia_wtsat, DV deprecated + Summarize any changes to answers, i.e., + - what code configurations: Some runs with a Gregorian calendar + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff, same climate -- only very small changes + + The only test with answer changes is + SMS_C2_D_Lh12.f09_g17.I2000Clm50Sp.cheyenne_intel.clm-pauseResume; + that test just has answer changes in the time-0 history file because + of the fix to the AnnualFluxDribbler's flux in the last time step of + the year (which is the time step used for time 0). There were answer + changes in only 6 fields, which are the fields impacted by changes in + the land use change correction fluxes dribbled to the atmosphere and + river: + - EFLX_DYNBAL + - FSH_TO_COUPLER + - QFLX_ICE_DYNBAL + - QFLX_LIQ_DYNBAL + - QRUNOFF_ICE_TO_COUPLER + - QRUNOFF_TO_COUPLER + + I can get bit-for-bit with master if I make the following minimal + diff to master: + diff --git a/src/utils/AnnualFluxDribbler.F90 b/src/utils/AnnualFluxDribbler.F90 + index c66e4fdc8..1ef2fb77f 100644 + --- a/src/utils/AnnualFluxDribbler.F90 + +++ b/src/utils/AnnualFluxDribbler.F90 + @@ -306,6 +306,7 @@ contains + integer :: i + real(r8) :: secs_per_year + real(r8) :: dtime + + integer :: dtime_int + real(r8) :: flux_from_dribbling + real(r8) :: flux_from_this_timestep + + @@ -316,8 +317,9 @@ contains + end_index = get_end(bounds, this%bounds_subgrid_level) + SHR_ASSERT_ALL_FL((ubound(flux) == (/end_index/)), sourcefile, __LINE__) + + - secs_per_year = get_days_per_year() * secspday + dtime = get_step_size_real() + + dtime_int = int(dtime) + + secs_per_year = get_days_per_year(offset=-dtime_int) * secspday + + do i = beg_index, end_index + flux_from_dribbling = this%amount_to_dribble(i) / secs_per_year + + + Other answer changes that might be seen in runs with Gregorian + calendar are: + - Possible answer changes for crop runs (these changes impact some + crop phenology code) + - Possible answer changes for C iso runs (due to use of + get_curr_yearfrac in C14BombSpike and C13TimeSeries), though that + may not be impacted + - Possible answer changes for CNDV runs (due to use of + get_curr_yearfrac) + +Other details +------------- +Pull Requests that document the changes (include PR ids): +- https://github.com/ESCOMP/CTSM/pull/1593 =============================================================== =============================================================== -Tag name: ctsm1.0.dev060 -Originator(s): sacks (Bill Sacks) -Date: Thu Aug 29 11:18:20 MDT 2019 -One-line Summary: In SnowWater, truncate small h2osoi residuals +Tag name: ctsm5.1.dev072 +Originator(s): negins (Negin Sobhani,UCAR/TSS,303-497-1224) +Date: Mon Jan 17 10:50:25 MST 2022 +One-line Summary: mksurfdat toolchain part 1: gen_mksurf_namelist -Purpose of changes ------------------- +Purpose and description of changes +---------------------------------- -Previously, in the handling of sublimation and evaporation from the snow -pack, if these fluxes led to negative h2osoi_ice or h2osoi_liq, these -negative values would be passed down the snow pack until they found a -layer with a large enough positive state to absorb them. This logic was -going to be a challenge for adding water tracers. - -I have done some tests to verify that these negative values never exceed -roundoff-level in either an absolute or relative sense (with tolerance -of 1.e-13). Specifically, I ran the full aux_clm test suite with the -diffs below and verified that the endrun calls were never triggered. - -So here, I simplify this logic: After truncating any near-zero states to -exactly zero, I check to confirm that the states are never negative. I -then removed the code that passed these negative values down the snow -pack: if they are only roundoff-level negative, then it seems safe to -just throw them away rather than trying to handle them. - -Here were the diffs used to verify that the negative values are never -greater than roundoff-level; these endrun calls were never triggered in -a run of the full aux_clm test suite: - - diff --git a/src/biogeophys/SnowHydrologyMod.F90 b/src/biogeophys/SnowHydrologyMod.F90 - index 3dd555cc..07776123 100644 - --- a/src/biogeophys/SnowHydrologyMod.F90 - +++ b/src/biogeophys/SnowHydrologyMod.F90 - @@ -970,6 +970,8 @@ subroutine SnowWater(bounds, & - real(r8) :: vol_ice(bounds%begc:bounds%endc,-nlevsno+1:0) ! partial volume of ice lens in layer - real(r8) :: eff_porosity(bounds%begc:bounds%endc,-nlevsno+1:0) ! effective porosity = porosity - vol_ice - real(r8) :: mss_liqice(bounds%begc:bounds%endc,-nlevsno+1:0) ! mass of liquid+ice in a layer - + real(r8) :: h2osoi_ice_orig - + real(r8) :: h2osoi_liq_orig - !----------------------------------------------------------------------- - - associate( & - @@ -1017,10 +1019,23 @@ subroutine SnowWater(bounds, & - c = filter_snowc(fc) - l=col%landunit(c) - - + h2osoi_ice_orig = h2osoi_ice(c,snl(c)+1) - + h2osoi_liq_orig = h2osoi_liq(c,snl(c)+1) - + - wgdif = h2osoi_ice(c,snl(c)+1) & - + frac_sno_eff(c) * (qflx_dew_snow(c) - qflx_sub_snow(c)) * dtime - h2osoi_ice(c,snl(c)+1) = wgdif - if (wgdif < 0._r8) then - + if (wgdif < -1.e-13_r8) then - + write(iulog,*) 'WJS: big abs wgdif ice: ', c, wgdif, h2osoi_ice_orig - + call endrun('WJS: big abs wgdif ice') - + end if - + if (h2osoi_ice_orig > 0._r8) then - + if (abs(wgdif / h2osoi_ice_orig) > 1.e-13_r8) then - + write(iulog,*) 'WJS: big rel wgdif ice: ', c, wgdif, h2osoi_ice_orig - + call endrun('WJS: big rel wgdif ice') - + end if - + end if - h2osoi_ice(c,snl(c)+1) = 0._r8 - h2osoi_liq(c,snl(c)+1) = h2osoi_liq(c,snl(c)+1) + wgdif - end if - @@ -1030,6 +1045,16 @@ subroutine SnowWater(bounds, & - - ! if negative, reduce deeper layer's liquid water content sequentially - if(h2osoi_liq(c,snl(c)+1) < 0._r8) then - + if (h2osoi_liq(c,snl(c)+1) < -1.e-13_r8) then - + write(iulog,*) 'WJS: big abs wgdif liq: ', c, h2osoi_liq(c,snl(c)+1), h2osoi_liq_orig - + call endrun('WJS: big abs wgdif liq') - + end if - + if (h2osoi_liq_orig > 0._r8) then - + if (abs(h2osoi_liq(c,snl(c)+1) / h2osoi_liq_orig) > 1.e-13_r8) then - + write(iulog,*) 'WJS: big rel wgdif liq: ', c, h2osoi_liq(c,snl(c)+1), h2osoi_liq_orig - + call endrun('WJS: big rel wgdif liq') - + end if - + end if - do j = snl(c)+1, 1 - wgdif=h2osoi_liq(c,j) - if (wgdif >= 0._r8) exit - -Bugs fixed or introduced ------------------------- + This tag introduces ./gen_mksurf_namelist python script, which generates + a user-modifiable control file (namelist) for use with #1430 (mkmap_data.py) + within the context of #644 (wrapper tool for generating fsurdat files). -None + The new namelist (control file) format does not have mapping + files listed since the mapping file information are stored as part of the + metadata for input data. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -2781,158 +6780,160 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 + +Bugs fixed or introduced +------------------------ + Notes of particular relevance for users --------------------------------------- - Caveats for users (e.g., need to interpolate initial conditions): -- It's possible that the extra error checks I have added (to ensure we - don't have greater-than-roundoff-level negative residuals) will be - triggered in rare circumstances in a production run, even though they - were never triggered in the test suite. - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none - -Changes made to namelist defaults (e.g., changed parameter values): none + This tag introduces the ./gen_mksurf_namelist script for generating a + user-modifiable control file (namelist) for use with the in-development + pythonized mkmapdata (#1430). -Changes to the datasets (e.g., parameter, surface or initial files): none - -Substantial timing or memory changes: none -Although there was a very small increase in total lnd run time, the -timing of hydro_without_drainage actually decreased slightly in the PFS -test relative to the last tag. -Notes of particular relevance for developers: (including Code reviews and testing) +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 - Caveats for developers (e.g., code that is duplicated that requires double maintenance): -- It's possible that the extra error checks I have added (to ensure we - don't have greater-than-roundoff-level negative residuals) will be - triggered in rare circumstances in a production run, even though they - were never triggered in the test suite. + Currently resolution options and corresponding destination mesh files are + hardwired in this code. This information should be obtained from existing + .xml file(s). -Changes to tests or testing: none -Code reviewed by: self +Testing summary: +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -CTSM testing: + python testing (if python code has changed; see instructions in python/README.md; document testing done): - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + (any machine) cheyenne make all - PASS - build-namelist tests: +If the tag used for baseline comparisons was NOT the previous tag, note that here: - cheyenne - not run - tools-tests (test/tools): +Answer changes +-------------- +Changes answers relative to baseline: NO - cheyenne - not run - PTCLM testing (tools/shared/PTCLM/test): +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/1419 - cheyenne - not run +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev071 +Originator(s): glemieux (Gregory Lemieux,LBL/NGEET,510-486-5049) +Date: Sun Jan 16 20:26:47 MST 2022 +One-line Summary: Small changes to enable new fates dimension and update fates tag - python testing (see instructions in python/README.md; document testing done): +Purpose and description of changes +---------------------------------- - (any machine) - not run +This tag uncomments the fates_levleaf dimension which was added in PR #1540 +and rolled into PR #1542, but commented out to avoid junk DIFFs during integration +of PR #1542. This variable is necessary to accomodate FATES PR #752, which +allows for an exponential spacing to bin widths in the VAI (LAI+SAI) calculations. +This latest fates tag also includes a fix to the fates satellite phenology mode +exact restart issue. - regular tests (aux_clm): +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - cheyenne ---- ok - hobart ------ ok +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.) - ok means tests passed, some answer changes as expected + [Put an [X] in the box for any configuration with significant answer changes.] -If the tag used for baseline comparisons was NOT the previous tag, note that here: +[ ] clm5_1 +[ ] clm5_0 -Answer changes --------------- +[ ] ctsm5_0-nwp -Changes answers relative to baseline: YES +[ ] clm4_5 - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): - Summarize any changes to answers, i.e., - - what code configurations: potentially all, though only show up in - a few tests - - what platforms/compilers: potentially all, though only show up in - a few tests - - nature of change (roundoff; larger than roundoff/same climate; new climate): roundoff +Bugs fixed or introduced +------------------------ - If bitwise differences were observed, how did you show they were no worse - than roundoff? +Issues fixed (include CTSM Issue #): + Fixes #1485 Forthcoming FATES satellite phenology ERS test fails + Fixes #1561 Uncomment fates_levleaf fields - First, I did some preliminary analyses as documented above, to - ensure that any negative residuals were no greater than roundoff. +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 - Second, note that the use of truncate_small_values can only - introduce roundoff-level changes (by truncating values that are - roundoff-level different from zero to exactly zero). +Changes to tests or testing: + The ERS FatesColdDefReducedComplexSatPhen testmod has been removed from expected test failure + list as it now passes due to fates tag sci.1.52.1_api.20.0.0. - Third, only a few tests showed answer changes, and these were only - in limited fields, and were fairly small RMS differences: +Testing summary: +---------------- - ERP_Ly3_P72x2.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-cropMonthOutput - ERS_Ly3.f10_f10_musgs.I1850Clm50BgcCropCmip6.cheyenne_intel.clm-basic - ERS_Ly3_P72x2.f10_f10_musgs.IHistClm50BgcCropG.cheyenne_intel.clm-cropMonthOutput - ERS_Ly5_P144x1.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-cropMonthOutput + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - I actually expected more tests to show differences, but most tests - were bit-for-bit. I'm guessing this is because the code added a - roundoff-level term to a larger term, and this ended up not - changing the larger term. + cheyenne ---- OK + izumi -------OK - Finally, as an extra precaution, I ran the test suite twice, on - two different implementations of the truncation: the final one - (which uses truncate_small_values), and one in which I did the - truncation using custom, inline code (commit 0d21ccb5). These two - were bit-for-bit with each other, giving me more confidence that I - didn't make a mistake with either implementation. + fates tests: (baseline: sci.1.52.1_api.20.0.0-ctsm5.1.dev070) + cheyenne ---- OK + izumi ------- OK +Answer changes +-------------- - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A +Changes answers relative to baseline: Expected DIFFs for a subset of fates testmods - URL for LMWG diagnostics output used to validate new climate: N/A - + Summarize any changes to answers, i.e., + - CBALANCE_ERROR_FATES and FATES_ERRH2O_SCPF have round-off level errors that + eventually propagate to downstream calculations for some some fates test mods + - Differences are due to changing of the bin widths + - Fates PR #752 author reviewed the differences with a separate comparison + of the PR branch against fates master branch and determined that the science + resulting is as expected. + +Other details +------------- -Detailed list of changes ------------------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + fates: sci.1.52.0_api.20.0.0 -> fates-sci.1.53.0_api.21.0.0 -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + FATES #752 -- Variable VAI bin widths + #1562 -- Uncomment fates_hdim_levleaf dimension -Pull Requests that document the changes (include PR ids): none =============================================================== =============================================================== -Tag name: ctsm1.0.dev059 -Originator(s): sacks (Bill Sacks) -Date: Sat Aug 24 15:14:06 MDT 2019 -One-line Summary: Continue adding water tracers to LakeHydrology +Tag name: ctsm5.1.dev070 +Originator(s): sacks (Bill Sacks), mvertens (Mariana Vertenstein), slevis (Samuel Levis) +Date: Mon Jan 10 16:52:50 MST 2022 +One-line Summary: Update externals, remove need for LND_DOMAIN_FILE and LND_DOMAIN_PATH, etc. -Purpose of changes ------------------- +Purpose and description of changes +---------------------------------- -Finish implementing water tracers for initial snow-related code in -LakeHydrology. This involved refactoring code in order to reuse existing -code in SnowHydrology rather than having near-duplicates of that code in -LakeHydrology. +(1) Update cime and cdeps externals -Bugs fixed or introduced ------------------------- +(2) Remove the need for LND_DOMAIN_FILE and LND_DOMAIN_PATH XML + variables in NUOPC / LILAC cases -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#775 (Implement water tracers for initial - snow-related code in LakeHydrology) +(3) Update doc builder to fix issue with git lfs pull command + +(4) Fix mksurfdata unit tests Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -2942,69 +6943,40 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp -[ ] clm4_5 - -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none - -Changes made to namelist defaults (e.g., changed parameter values): none - -Changes to the datasets (e.g., parameter, surface or initial files): none - -Substantial timing or memory changes: none -Many tests took longer, including the PFS test. However, by looking at -more detailed timing numbers in the PFS test, the main increases in time -were in initialization and atm run: lnd run only showed a very small -increase. This suggests that glade slowness was probably primarily -responsible for the increased time. - -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - -Changes to tests or testing: Increased allowed wallclock time for a few tests -These tests took longer, likely due to machine variability. Increasing -their wallclock time to prevent them from timing out. - -Code reviewed by: self - - -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: - - cheyenne - not run +[ ] clm4_5 - tools-tests (test/tools): - cheyenne - not run +Bugs fixed or introduced +------------------------ - PTCLM testing (tools/shared/PTCLM/test): +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1575 (Build problem for mksurfdata tools testers) - cheyenne - not run - python testing (see instructions in python/README.md; document testing done): +Notes of particular relevance for developers: +--------------------------------------------- +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- Running unit tests currently requires setting CIME_NO_CMAKE_MACRO=ON in your environment +- LILACSMOKE test now has a hard-coded resolution and domain file - (any machine) - not run +Testing summary: +---------------- - regular tests (aux_clm): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): cheyenne ---- pass - hobart ------ pass + izumi ------- pass -If the tag used for baseline comparisons was NOT the previous tag, note that here: + Note: + SMS_Ld5.f10_f10_mg37.ISSP370Clm50BgcCrop.cheyenne_gnu.clm-ciso_dec2050Start + failed with baseline diffs when first run, but passed upon rerun: + system glitch? Answer changes @@ -3012,35 +6984,37 @@ Answer changes Changes answers relative to baseline: NO -Detailed list of changes ------------------------- -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Other details +------------- +[Remove any lines that don't apply. Remove entire section if nothing applies.] -Pull Requests that document the changes (include PR ids): none +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/1581 +- https://github.com/ESCOMP/CTSM/pull/1591 =============================================================== =============================================================== -Tag name: ctsm1.0.dev058 -Originator(s): slevis (Samuel Levis,SLevis Consulting LLC,303-665-1310) -Date: Thu Aug 22 10:02:49 MDT 2019 -One-line Summary: Soil texture interpolation bug-fix - -Purpose of changes ------------------- - - When assigning soil texture values from dataset soil levels to model - soil levels, we should be comparing zsoi (NOT zisoi) in the model with - zisoi on the file, i.e. we should be asking whether the node - center (NOT interface) of a given model level falls between two - interface depths on the file. - - -Bugs fixed or introduced ------------------------- +Tag name: ctsm5.1.dev069 +Originator(s): fang-bowen (Bowen Fang) / oleson (Keith Oleson,UCAR/TSS,303-497-1332) + / Face2sea (Lei Zhao) / keerzhang1 (Keer Zhang) / sacks (Bill Sacks) +Date: Wed Dec 15 13:01:19 MST 2021 +One-line Summary: Implement dynamic (transient) urban capability -Issues fixed (include CTSM Issue #): #772 +Purpose and description of changes +---------------------------------- +This implements the capability to run transient simulations with changes +in urban density types. However, see Caveats for users section below. +If transient urban is activated (do_transient_urban=.true.) and an +appropriate landuse dataset is provided, the model will read in +yearly PCT_URBAN for three density types from the landuse dataset and +adjust other landunits accordingly. +Water and energy are conserved for these transitions. Urban landunits +do not account for carbon and nitrogen, however, see the dynamic urban +design document (doc/design/dynamic_urban.rst) for a discussion of this. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -3050,134 +7024,96 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[X] clm5_0 +[ ] clm5_1 -[X] ctsm5_0-nwp +[ ] clm5_0 + +[ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): none +Bugs fixed or introduced +------------------------ -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Issues fixed (include CTSM Issue #): #1445 (partially, work on mksurfdata and reducing +computational cost is in progress) -Changes made to namelist defaults (e.g., changed parameter values): none +Notes of particular relevance for users +--------------------------------------- -Changes to the datasets (e.g., parameter, surface or initial files): none +Caveats for users (e.g., need to interpolate initial conditions): +Note that this capability is off by default because landuse datasets +with transient urban on them are still being developed. +Note also that if this capability is activated (e.g., for testing) then +run_zero_weight_urban must be set to .true. -Substantial timing or memory changes: none +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +Added do_transient_urban namelist variable -Notes of particular relevance for developers: (including Code reviews and testing) +Changes to the datasets (e.g., parameter, surface or initial files): +None. +New datasets that include transient urban data will be provided in a future tag. + +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 -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - Changes to tests or testing: - Unexpected failure of test - SMS_D_Ld10.f10_f10_musgs.I2000Clm50BgcCropGs.hobart_nag.clm-tracer_consistency - Bill Sacks did some follow-up testing and concluded that this may be a - compiler-specific issue, so he changed the test from "nag" to "intel" - and generated the new test's corresponding baseline - -Code reviewed by: @billsacks - - -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: +Added ERS_Lm25.1x1_smallvilleIA.IHistClm50BgcCropQianRs.cheyenne_gnu.clm-smallville_dynurban_monthly to aux_clm - cheyenne - +Testing summary: +---------------- - tools-tests (test/tools): - - cheyenne - - - PTCLM testing (tools/shared/PTCLM/test): - - cheyenne - - - python testing (see instructions in python/README.md; document testing done): - - (any machine) - + build-namelist tests (if CLMBuildNamelist.pm has changed): - regular tests (aux_clm): - - cheyenne ---- OK - hobart ------ OK + cheyenne - PASS -If the tag used for baseline comparisons was NOT the previous tag, note that here: + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + cheyenne ---- PASS + izumi ------- PASS Answer changes -------------- -Changes answers relative to baseline: - - Summarize any changes to answers, i.e., - - what code configurations: not clm45 - - what platforms/compilers: all - - nature of change: larger than roundoff/same climate - based on the assumption that shifting soil texture assignments by - one level in model soil levels below the top-most level should not - generate climate-changing differences. +Changes answers relative to baseline: NO -Detailed list of changes ------------------------- - 1. Changed zisoi to zsoi as described in the Purpose section above. - This caused the larger than roundoff changes. Before the fix some - model soil levels were getting assigned soil textures from a deeper - soil level in the dataset than they should. - 2. In the same section of code I completed the if-block to address all - zsoi vs. zisoifl comparisons. This ensures explicit assignment of - soil textures for all model soil levels and avoids leaving some - model soil levels with the texture assignment of the previous model - soil level. +Other details +------------- Pull Requests that document the changes (include PR ids): -(https://github.com/ESCOMP/ctsm/pull/788) +https://github.com/ESCOMP/CTSM/pull/1546 =============================================================== =============================================================== -Tag name: ctsm1.0.dev057 -Originator(s): sacks (Bill Sacks) -Date: Tue Aug 20 13:17:39 MDT 2019 -One-line Summary: Fix frac_sno bugs +Tag name: ctsm5.1.dev068 +Originator(s): slevis (Samuel Levis,SLevis Consulting,303-665-1310), sacks (Bill Sacks) +Date: Mon Dec 13 15:42:07 MST 2021 +One-line Summary: Adding fsurdat_modifier tool -Purpose of changes ------------------- +Purpose and description of changes +---------------------------------- -Two bug fixes related to frac_sno, and a third change involving -replacing a frac_sno calculation with a simpler equation that is -algebraically equivalent: + I copied the next four paragraphs from /tools/modify_fsurdat/fsurdat_modifier: + fsurdat_modifier is a tool that modifies fsurdat files. It reads a surface + dataset (fsurdat file) and outputs a modified copy of the same file. -(1) Fix lake frac_sno always being 0 - (https://github.com/ESCOMP/ctsm/issues/783). This fixes the albedo - calculation (and possibly others) over snow-covered lake surfaces. + Current applications are limited to the simplest CTSM(SP) mode, so bgc, fire, + urban, vic, lake, transient, and crop-related variables in the fsurdat file + remain unchanged. -(2) Fix threshold for explicit snow pack initiation to use frac_sno_eff, - not frac_sno (https://github.com/ESCOMP/ctsm/issues/785). For - standard runs (which have use_subgrid_fluxes = .true.), this just - changes answers for urban columns. This also changes answers more - widely for runs with use_subgrid_fluxes = .false. + It differs from modify_singlept_site_neon.py in that the latter specifically + modifies soil properties of single-point surface datasets. Some functions + could/should become shared for use by fsurdat_modifier. -(3) Rewrite Swenson & Lawrence 2012 frac_sno equation to be more - straightforward and less sensitive to roundoff errors - (https://github.com/ESCOMP/ctsm/issues/784) - -Bugs fixed or introduced ------------------------- + It also differs from the subset_data tool in that the latter subsets fsurdat + files to regional or single-point domains. Though subset_data includes some + "modify" functionality when subsetting to single-point, we intend for similar + functionality to be more extensive and more object oriented in + fsurdat_modifier. Again, some functions could/should become shared among + these tools. -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#783 (frac_sno is always 0 for lake points) -- Resolves ESCOMP/ctsm#785 (Threshold for explicit snow pack initiation - should use frac_sno_eff, not frac_sno) -- Resolves ESCOMP/ctsm#784 (Suggested algebraic rework of frac_sno - calculation) Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -3187,346 +7123,278 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[X] clm5_0 - -[X] ctsm5_0-nwp - -[X] clm4_5 - -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none +[ ] clm5_1 -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +[ ] clm5_0 -Changes made to namelist defaults (e.g., changed parameter values): none +[ ] ctsm5_0-nwp -Changes to the datasets (e.g., parameter, surface or initial files): none +[ ] clm4_5 -Substantial timing or memory changes: none -Notes of particular relevance for developers: (including Code reviews and testing) +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 -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - -Changes to tests or testing: none - -Code reviewed by: self - - -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: - - cheyenne - not run - - tools-tests (test/tools): +Changes to tests or testing: + Added python/ctsm/test/test_sys_fsurdat_modifier.py + Added python/ctsm/test/test_unit_fsurdat_modifier.py + Added new unit tests to python/ctsm/test/test_unit_utils.py + Added FSURDATMODIFYCTSM test to cime_config/config_tests.xml - cheyenne - not run +Testing summary: +---------------- - PTCLM testing (tools/shared/PTCLM/test): + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - cheyenne - not run + python testing (if python code has changed; see instructions in python/README.md; document testing done): - python testing (see instructions in python/README.md; document testing done): + cheyenne ---- PASS + Bill's Mac -- PASS - (any machine) - not run + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - regular tests (aux_clm): + cheyenne ---- PASS + izumi ------- OK - cheyenne ---- ok - hobart ------ ok +Answer changes +-------------- +Changes answers relative to baseline: NO - ok means tests pass, answers change as expected +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/1448 - Ran most testing on 95dad328 (before 8f1263a7, which removes a - temporary endrun error check). Just reran - SMS_Ld5_D_P48x1.f10_f10_musgs.IHistClm50Bgc.hobart_nag.clm-decStart - on the final version. +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev067 +Originator(s): jedwards4b/negin513/erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Mon Dec 13 00:50:01 MST 2021 +One-line Summary: NEON UI update, externals updates, small miscellanouse fixes - There was a memleak for this test: +Purpose and description of changes +---------------------------------- - FAIL SMS_D_Ld10.f10_f10_musgs.I2000Clm50BgcCropGs.hobart_nag.clm-tracer_consistency MEMLEAK memleak detected, memory went from 1250.830000 to 1518.500000 in 8 days +Redo options list to remove positional arguments that were difficult to input correctly. +Transient runs now use run_type startup and get finidat from s3 server unless --run-from-postad option is used (or finidat is not +available). Use mpi instead of mpi-serial, this mod was recommended for container use. Add a new script neon_finidat_upload which +allows authorized users to upload finidat files to the s3 server. - I have had memleak issues for this test before - (https://github.com/ESCOMP/ctsm/issues/763), which I have chalked up - to a compiler-specific issue. I have simply increased the tolerance - for memleaks for this test moving forward. +This includes the following changes to the script for updating the surface dataset at neon sites using available neon data (i.e. +modify_singlept_site_neon.py) to address ctsm/issues #1353, #1429, and neon/issue #44: -If the tag used for baseline comparisons was NOT the previous tag, note that here: +Update Organic calculation to use the following equation based on discussions in +https://github.com/ESCOMP/CTSM/pull/1375/files#r669590971 : +ORGANIC = estimatedOC * bulkDensity / 0.58 +Because estimatedOC is rounded to the nearest integer in neon data, it is sometimes bigger than carbonTot. Therefore, in cases where +estimatedOC > carbonTot, we use carbonTot instead of estimatedOC in the above equation. -Answer changes --------------- +Previously, we had missing data on neon files for some neon soil layers (see Modified NEON surface datasets have errors #1429 +(comment)). Therefore, it caused some missing values in the updated dataset. Here, we interpolate to fill in the missing data using +different interpolation techniques. Finally, we chose to use linear interpolation to fill in missing data. -Changes answers relative to baseline: YES +This includes the scripts for modification of the surface dataset for neon sites to address #1429. +Specifically, the following has been addressed in this PR: - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +Update the calculation of ORGANIC to use the new field (CaCO3) from NEON data. +For this calculation if CaCO3 data is available, we first calculate inorganic carbon by: +inorganic carbon = (caco3 /100.0869)*12.0107 +Next, we calculate organic carbon by subtracting inorganic carbon from the total carbon: +[organic carbon = carbon_tot - inorganic carbon] +If the CaCO3 is not available then the code uses carbonTot and estimatedOC by NEON. - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Larger than roundoff; expected to be same climate in general, - because the only impacts are on urban and lake points, which - represent a small fraction of most grid cells. However, this needs - further investigation. +Discussed here (Modified NEON surface datasets have errors #1429 (comment)) +For the Ag sites (KONA and STER), it changes the PCT_NATVEG, PCT_CROP, and PCT_NAT_PFT to avoid the error that we previously had in +spin-up: surfrd_veg_all ERROR: sum of wt_nat_patch not 1.00000000000000 at nl= 1 sum is: 0.000000000000000E+000 - See above (under "Purpose of changes") for a description of the - different answer changes in this tag. +Discussed here (Modified NEON surface datasets have errors #1429 (comment)) +There was a typo previously in the NEON data for ABBY sites caused by mix of sample measurements. Please note that this was updated +by hand once data was downloaded from NEON site. - If bitwise differences were observed, how did you show they were no worse - than roundoff? +With recent versions of CIME, the LILAC build with a user-defined machine was broken for a couple of reasons. This fixes it. - I verified that change (3) is no greater than roundoff by - temporarily putting in an endrun if the new frac_sno differs from - the old by more than 1e-13; this was not triggered for any test in - the aux_clm test suite. +Fix mksurfdata_map for 1x1_brazil. Get tools testing working again. Increase skip_steps by 1, which is needed for a change in CAM +where balance checks need to occur after the radiation update now rather than before. glob changed for bsd_glob in perl MkDepends +for mksurfdata_map. - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A (Keith Oleson will run this) - URL for LMWG diagnostics output used to validate new climate: N/A (Keith Oleson will run this) - +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- -Detailed list of changes ------------------------- +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.) -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + [Put an [X] in the box for any configuration with significant answer changes.] -Pull Requests that document the changes (include PR ids): none +[ ] clm5_1 -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev056 -Originator(s): sacks (Bill Sacks) -Date: Fri Aug 16 11:44:43 MDT 2019 -One-line Summary: Start adding water tracers to LakeHydrology, and related refactoring +[ ] clm5_0 -Purpose of changes ------------------- +[ ] ctsm5_0-nwp -Start adding water tracers to LakeHydrology, beginning with some initial -things done for snow. +[ ] clm4_5 -This also includes some significant refactoring to allow LakeHydrology -to reuse some of the same snow code used for non-lake columns. Bugs fixed or introduced ------------------------ Issues fixed (include CTSM Issue #): -- Partially addresses ESCOMP/ctsm#775 (Implement water tracers for - initial snow-related code in LakeHydrology) + Fixes #1563 increase skip_steps for balance checks by one to permit new CAM physics re-ordering + Fixes #1550 In perl code replace glob with bsd_glob + Fixes #1574 Trouble with 1x1_brazil for mksurfdata_map because of negative longitude in SCRIP grid file + Fixes #1429 Modified NEON surface datasets have errors + Fixes #1353 Modify NEON surface data + Fixes #1492 Need to update LILAC build process to use cmake macros instead of config_compilers.xml -Known bugs found since the previous tag (include github issue ID): -The following will be fixed in an upcoming tag: -- ESCOMP/ctsm#783 (frac_sno is always 0 for lake points) -- ESCOMP/ctsm#784 (Suggested algebraic rework of frac_sno calculation) -- ESCOMP/ctsm#785 (Threshold for explicit snow pack initiation should - use frac_sno_eff, not frac_sno) +Known bugs found since the previous tag (include issue #): + #1575 -- Build problem for mksurfdata tools testers -Significant changes to scientifically-supported configurations --------------------------------------------------------------- +Notes of particular relevance for users +--------------------------------------- -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.) +Changes made to namelist defaults (e.g., changed parameter values): New 1x1_brazil SCRIP grid file and maps + Some NEON namelist settings changed. Last year is now 2020 - [Put an [X] in the box for any configuration with significant answer changes.] +Changes to the datasets (e.g., parameter, surface or initial files): New NEON surface datasets -[ ] clm5_0 +Notes of particular relevance for developers: +--------------------------------------------- -[ ] ctsm5_0-nwp +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + pyproject.toml file added to configure for black python formatter in python directory -[ ] clm4_5 +Changes to tests or testing: + Got tools testing working again. -Notes of particular relevance for users ---------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): none +Testing summary: regular tools +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + build-namelist tests (if CLMBuildNamelist.pm has changed): -Changes made to namelist defaults (e.g., changed parameter values): none + cheyenne - PASS (47 compare tests fail because of changes to NEON sites) -Changes to the datasets (e.g., parameter, surface or initial files): none + tools-tests (test/tools) (if tools have been changed): -Substantial timing or memory changes: none + cheyenne - OK (1x1_brazil mksurfdata changes, run_neon and modify_subset fail as expected) -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + python testing (if python code has changed; see instructions in python/README.md; document testing done): -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + cheyenne - OK (new black checks do NOT pass as expected) -Changes to tests or testing: none + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Code reviewed by: self + cheyenne ---- PASS + izumi ------- OK +If the tag used for baseline comparisons was NOT the previous tag, note that here: -CTSM testing: - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Answer changes +-------------- - build-namelist tests: +Changes answers relative to baseline: No bit-for-bit (other than NEON tests because of updated namelists and surface dataset) - cheyenne - not run + Summarize any changes to answers, i.e., + - what code configurations: Only NEON sites + - what platforms/compilers: all + - nature of change: new surface datasets and settings - tools-tests (test/tools): +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + Update most externals to version in cesm2_3_alpha07c + cmeps to cmeps0.13.43 (version with channel depths) + cpl7 to cpl7.0.7 + share to share1.0.10 - cheyenne - not run +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) - PTCLM testing (tools/shared/PTCLM/test): + PR #1467 -- Improve UI for NEON script + PR #1474 -- Script for modifying neon surface dataset -- updated (negin513) + PR #1539 -- Neon modify surfurface dataset (negin513) + PR #1571 -- Fix LILAC build with user-defined machine with latest CIME (billsacks) - cheyenne - not run +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev066 +Originator(s): rgknox (Ryan Knox,,,) +Date: Sat Dec 4 01:58:42 MST 2021 +One-line Summary: API change with FATES to enable running means inside fates, includes passing in of model timestep - python testing (see instructions in python/README.md; document testing done): +Purpose and description of changes +---------------------------------- - (any machine) - not run +This set of changes synchronizes CTSM with API 20 of FATES. API 20 of FATES requires a modification to timing boundary conditions so that FATES can maintain its own internal running means. FATES also no-longer asks CTSM for the 24hour vegetation temperature, since this is a patch(pft) level variable, and FATES has more suitable averaging mechanisms. These changes are synchronized with FATES Pull Request: https://github.com/NGEET/fates/pull/724, which subsequently created tag: https://github.com/NGEET/fates/releases/tag/sci.1.52.0_api.20.0.0 - regular tests (aux_clm): - cheyenne ---- ok - hobart ------ ok +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - ok means tests pass, answers change as expected +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.) - Note: Did most testing on 054dc95b (before the small change in - 7e4e52a9); just ran - LWISO_Ld10.f10_f10_musgs.I2000Clm50BgcCropGs.cheyenne_gnu.clm-coldStart - on the final commit + [Put an [X] in the box for any configuration with significant answer changes.] -If the tag used for baseline comparisons was NOT the previous tag, note that here: +[ ] clm5_1 +[ ] clm5_0 -Answer changes --------------- +[ ] ctsm5_0-nwp -Changes answers relative to baseline: YES +[ ] clm4_5 - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +[x] clm_fates - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): roundoff +Notes of particular relevance for developers: +--------------------------------------------- - There are two answer-changes here: +Developers should be aware that FATES does require information on the model timestep, which was not necessarily available in initialize1. Efforts were made to circumvent needing the model timetep at this phase of initialization, so impact on non-fates code was minimal. - (1) Roundoff-level changes due to changing some order of operations - for the updating of snow_depth and dz for lakes: The previous - code effectively used (qflx_snow_grnd(c)/bifall(c))*dtime, - whereas the new code uses (qflx_snow_grnd(c)*dtime)/bifall(c); - similarly, the dz update differs. - (2) A change in FSNO_EFF for lakes: previously, this was set to 0 - when there was no snow. Now this is set consistently with other - landunits, for which it is 1 even if there is no snow. Note that - this only affects the FSNO_EFF diagnostic field, and nothing - else. +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - If bitwise differences were observed, how did you show they were no worse - than roundoff? + cheyenne ---- PASS (fates had expectedly different results compared to base) + izumi ------- PASS (fates had expectedly different results compared to base) - I confirmed that the order-of-operations change is the only - answer-changing part of this tag by comparing against a one-off - from master with the following diffs; this comparison was - bit-for-bit except for changes in the FSNO_EFF diagnostic field: - - diff --git a/src/biogeophys/LakeHydrologyMod.F90 b/src/biogeophys/LakeHydrologyMod.F90 - index 91ddfc79..9711dad7 100644 - --- a/src/biogeophys/LakeHydrologyMod.F90 - +++ b/src/biogeophys/LakeHydrologyMod.F90 - @@ -126,6 +126,8 @@ subroutine LakeHydrology(bounds, & - real(r8) :: heatsum(bounds%begc:bounds%endc) ! used in case above [J/m^2] - real(r8) :: snowmass ! liquid+ice snow mass in a layer [kg/m2] - real(r8) :: snowcap_scl_fct ! temporary factor used to correct for snow capping - + real(r8) :: temp_snow_depth - + real(r8) :: newsnow - real(r8), parameter :: snow_bd = 250._r8 ! assumed snow bulk density (for lakes w/out resolved snow layers) [kg/m^3] - ! Should only be used for frost below. - !----------------------------------------------------------------------- - @@ -246,8 +248,10 @@ subroutine LakeHydrology(bounds, & - ! U.S.Department of Agriculture Forest Service, Project F, - ! Progress Rep. 1, Alta Avalanche Study Center:Snow Layer Densification. - - - dz_snowf = qflx_snow_grnd(c)/bifall(c) - - snow_depth(c) = snow_depth(c) + dz_snowf*dtime - + temp_snow_depth = snow_depth(c) - + newsnow = qflx_snow_grnd(c)*dtime - + snow_depth(c) = snow_depth(c) + newsnow/bifall(c) - + dz_snowf = (snow_depth(c) - temp_snow_depth)/dtime - if (snl(c) == 0) then - h2osno_no_layers(c) = h2osno_no_layers(c) + qflx_snow_grnd(c)*dtime ! snow water equivalent (mm) - else + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + cheyenne ---- PASS (fates had expectedly different results compared to base) + izumi ------- - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A - URL for LMWG diagnostics output used to validate new climate: N/A - + Additional tests: + Multi-decadal simulations were also run to evaluate fates side sensitivity to slightly different averaging scheme. The differences were not so subtle, attributed mostly to fixing an initialization bug (the previous 24hour temperature had initialized at 0K) and a 1-hour phase change in the 24-hour start-stop cycle. + -Detailed list of changes ------------------------- +Answer changes +-------------- -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Changes answers relative to baseline: all FATES active simulations have different results. -Pull Requests that document the changes (include PR ids): none =============================================================== =============================================================== -Tag name: ctsm1.0.dev055 -Originator(s): sacks (Bill Sacks) -Date: Tue Aug 6 14:06:50 MDT 2019 -One-line Summary: Modularize snow cover fraction method - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev065 +Originator(s): glemieux (Gregory Lemieux,LBL/NGEET,510-486-5049) +Date: Thu Dec 2 00:13:37 MST 2021 +One-line Summary: Refactor static fire data input by moving variables into fire_base_type from cnveg_state_type -This tag moves the calculation of frac_sno - and the related updates of -snow_depth - into a new set of classes, with one class for each -parameterization (Niu & Yang 2007 and Swenson & Lawrence 2012). - -Previously, the code always calculated frac_sno the new way, but then -possibly overwrote it if using the older Niu & Yang method. The new code -cleans this up, only doing the calculations that are needed for each -method. - -In addition, other code that is specific to one of the two methods is -now moved to a home that makes this dependence on method explicit. This -includes the addition of newsnow to int_snow: previously, int_snow was -always updated using an equation specific to the newer CLM5 -parameterization of frac_sno, which was not appropriate if using the Niu -& Yang parameterization; this doesn't make a difference currently, since -int_snow is only referenced if using the Swenson & Lawrence -parameterization, but this clears up some confusion. Also, time-constant -parameters read from namelist or the netCDF parameter file now reside in -the appropriate class rather than being more global. - -This tag also renames two namelist options to increase clarity: -- subgridflag is renamed to use_subgrid_fluxes, and is now a logical -- oldfflag is renamed to snow_cover_fraction_method, and is now a string - -Bugs fixed or introduced ------------------------- +Purpose and description of changes +---------------------------------- -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#502 (oldfflag can NOT be used with - subgridflag==1, and rename subgridflag) -- Resolves ESCOMP/ctsm#503 (Clean up CanopyHydrology) - - This tag does the last piece of cleanup called for in that issue -- Resolves ESCOMP/ctsm#571 (Add a system test: turning on water isotopes - shouldn't change answers) - - This is unrelated to the other changes in this tag +This tag refactors the static fire data input methodology to enable a future anthropogenic fire suppression +methodology to FATES as described NGEET/fates#673. This future method requires that FATES have access to +GDP data that was previously defined in CNVegStateType.F90 as part of cnveg_state_type. As such, the GDP +variable has been moved into fire_base_type in FireDataBaseType.F90 to provide the data to the extended +fates_fire_base_type for eventual use in FATES. Similarly, the surface dataset read subroutine has been +moved along with the peat and ag-fire variables, which utilize the same read subroutine and where also +originally part of the cnveg_state_type. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -3536,159 +7404,177 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): -This tag renames two namelist options to increase clarity: -- subgridflag is renamed to use_subgrid_fluxes, and is now a logical -- oldfflag is renamed to snow_cover_fraction_method, and is now a string +Bugs fixed or introduced +------------------------ -Changes made to namelist defaults (e.g., changed parameter values): none +Issues fixed (include CTSM Issue #): + Fixes #1104 -- Move static fire data into Fire class -Changes to the datasets (e.g., parameter, surface or initial files): none +Notes of particular relevance for developers: +--------------------------------------------- -Substantial timing or memory changes: none +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + The ncd_io calls for the gdp, peat, and ag-fire data has been moved from the + cnveg_state_type InitCold procedure into a new subroutine called surfdataread + which is a new fire_base_type procedure. -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + The function GetGDP has been introduced to get the pointer to the GDP data. This has + been implemented in clmfates_interfaceMod.F90, but the assignment of this pointer + to a FATES-side bc_in variable has been commented out pending a future update to + define the necessary FATES GDP variable. -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + A new namelist option has been added to the fates_spitfire_mode series. This option + is intended as a simple placeholder for a future FATES fire supression mode. The + option is currently being included as a check in clmfates_interfaceMod.F90 to allow + for the exercise of the GetGDP function. -Changes to tests or testing: -- Added a LWISO test, which confirms that turning on water isotopes - doesn't change answers for bulk -- Added a test with the newer snow cover fraction method but - use_subgrid_fluxes false (testmod no_subgrid_fluxes) +Testing summary: +---------------- -Code reviewed by: Sean Swenson, Erik Kluzek + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + cheyenne ---- OK + izumi ------- OK -CTSM testing: + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + cheyenne ---- N/A + izumi ------- N/A - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + any other testing (give details below): + A simple fates branch was created to test the potential handoff of the GDP data to FATES, which successfully + output the global gdp data. The branch is located here: https://github.com/glemieux/fates/tree/fire-gdp-simpletest + Note that this branch was not used in the standard regression tests above. - build-namelist tests: +Other details +------------- - cheyenne - ok +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + #1536 -- Refactor static fire data to enable future use of GDP data in SPITFIRE - Tests pass; baseline comparisons not done (baseline comparisons - expected to differ) +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev064 +Originator(s): afoster (Adrianna Foster) +Date: Mon Nov 29 09:50:50 MST 2021 +One-line Summary: Updates to facilitate FATES history variable overhaul - tools-tests (test/tools): +Purpose and description of changes +---------------------------------- - cheyenne - not run +This tag facilitates updates to FATES history variable names, units, other metadata, +and flushing behavior. Variables are now initially flushed to the CTSM ignore value, +then flushed to 0.0 on the FATES side. - PTCLM testing (tools/shared/PTCLM/test): +Calls were added to flush_hvars and zero_site_hvars inside the +init_coldstart and restart subroutines in clmfates_interfaceMod.F90. +FATES history variables names were updated to the new names in the +user_nl_clm hist_fincl1 lists in the testmods directory. - cheyenne - not run +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - python testing (see instructions in python/README.md; document testing done): +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.) - (any machine) - not run +[ ] clm5_1 - regular tests (aux_clm): +[ ] clm5_0 - cheyenne ---- pass - hobart ------ pass +[ ] ctsm5_0-nwp - Additional tests: Compared both of these against ctsm1.0.dev052 (which - should be bit-for-bit with ctsm1.0.dev054): Both were bit-for-bit: +[ ] clm4_5 - ERP_D_P36x2_Ld3.f10_f10_musgs.I2000Clm45BgcCrop.cheyenne_gnu.clm-no_subgrid_fluxes - This is a new test, so did not have baselines; I created baselines - from ctsm1.0.dev052 and compared against those - SMS_Ly3.f10_f10_musgs.I2000Clm45BgcCrop.cheyenne_intel.clm-oldhyd_monthly - This was a temporary test for the sake of running a longer test with - the oldhyd testmod. This testmod was created as a one-off by - changing the current oldhyd testmod to inherit from monthly rather - than default. I ran baselines like this from ctsm1.0.dev052 then ran - this test from this branch and compared against those baselines. +Bugs fixed or introduced +------------------------ -If the tag used for baseline comparisons was NOT the previous tag, note that here: +Issues fixed (include CTSM Issue #): + Fixes FATES issues #530 and #535 +Notes of particular relevance for users +--------------------------------------- -Answer changes --------------- +Caveats for users (e.g., need to interpolate initial conditions): -Changes answers relative to baseline: NO +All FATES output history variable units and names have changed so any post-processing +scripts or history variable namelists (e.g. hist_fincl1) will be affected. -Detailed list of changes ------------------------- -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: -Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/ctsm/pull/769 +Updated the hist_fincl1 namelists in the user_nl_clm files in the FATES +testmods directory to reflect FATES history variable name changes. -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev054 -Originator(s): sacks (Bill Sacks) -Date: Fri Aug 2 07:57:51 MDT 2019 -One-line Summary: Fix interpolation of surfdat soil layers so we can use interpolation for 10SL case +Updated name of ERS_Ld30.f45_f45_mg37.I2000Clm50FatesCruRsGs.cheyenne_intel.clm-FatesColdDefReducedComplexSatPhen +in the ExpectedTestFails.xml list, and changed the phase to RUN, as it is now +failing in the run phase. -Purpose of changes ------------------- -Previously, on master, there was special-purpose code for the 10SL case -that avoided doing interpolation from the surface dataset to the soil -variables in the model. It would be cleaner - especially now that we -allow user-defined soil layer structures - if we could use the general -interpolation code always, rather than sometimes having special-purpose -code that avoids doing the interpolation. +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -This tag accomplishes that generality. In order to preserve answers for -clm45 cases, I needed to make three changes: + cheyenne ---- OK + izumi ------- OK -1. The constant 0.025 needed an _r8 appended to it; otherwise, zisoifl - could differ by roundoff from zisoi. + fates tests: (baseline: sci.1.50.1_api.18.0.0-ctsm5.1.dev063) + cheyenne ---- OK + izumi ------- OK -2. I changed which level is used when zisoi(lev) is exactly equal to - zisoifl(j) for some j: I changed the conditional in the following: + Answer changes + -------------- - if (zisoi(lev) >= zisoifl(j) .AND. zisoi(lev) < zisoifl(j+1)) then - clay = clay3d(g,j+1) - sand = sand3d(g,j+1) - om_frac = organic3d(g,j+1)/organic_max - endif + Changes answers relative to baseline: YES - to: + Summarize any changes to answers, i.e., + - what code configurations: FATES + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): diagnostic only - if (zisoi(lev) > zisoifl(j) .AND. zisoi(lev) <= zisoifl(j+1)) then + All FATES output history variables and/or units changed so we expect DIFF + or FIELDLIST differences for all comparisons to baselines. - Previously, when the zisoi values in the model exactly lined up with - the zisoi values in the file, we would set clay in model level j - equal to the value from level j+1 from the surface dataset (and - similarly for sand and om_frac); in the new code, we use level j from - the surface dataset for model level j in this case. + I created a test at a single point to compare FATES variables + (over a 5-year simulation) from master (sci.1.50.1_api.18.0.0) and this + updated branch. This test confirms that the old variables can be matched + to a new variable (except for a select few where we removed some + variables due to duplication), and that when we did see changes in the + output values, these changes were the expected factor differences based + on the intended units change. -3. I changed the way zisoifl is calculated for the lowest layer, so that - it matches zisoi(nlevsoi) when running with 10SL_3.5m. Previously, we - had: - zisoi(10) = 0.38018819123227207690E+01 - zisoifl(10) = 0.34330930154359391437E+01 +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +fates: sci.1.50.1_api.18.0.0 -> fates-sci.1.51.0_api.19.0.0 - This tag changes zisoifl(10) to match zisoi(10). +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + #1542 -- Updates to facilitate FATES history variable overhaul -Bugs fixed or introduced ------------------------- +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev063 +Originator(s): glemieux (Gregory Lemieux,LBL/NGEET,510-486-5049) +Date: Tue Nov 23 12:51:48 MST 2021 +One-line Summary: Provide access to the fraction of canopy covered by snow variable to fates -Known bugs found since the previous tag (include github issue ID): -- #772: Interpolation of clay, sand and om_frac can use the wrong layer - (points out more fundamental issues with this interpolation of layers - from the surface dataset) +Purpose and description of changes +---------------------------------- +This tag provides the FATES model access to the fcansno variable to facilitate a correction +of it's radiation transfer code. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -3698,112 +7584,95 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Bugs fixed or introduced +------------------------ -Changes made to namelist defaults (e.g., changed parameter values): none +Issues fixed (include CTSM Issue #): + Fixes FATES #744 -- Use of SAI in surface albedo routines. + Fixes #1559 -- A few tests in the testlist were for hobart -Changes to the datasets (e.g., parameter, surface or initial files): none +Known bugs found since the previous tag (include issue #): + #1559 -- A few tests in the testlist were for hobart -Substantial timing or memory changes: none -Notes of particular relevance for developers: (including Code reviews and testing) +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 - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - -Changes to tests or testing: none - -Code reviewed by: Sam Levis - - -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - build-namelist tests: +Changes to tests or testing: - cheyenne - not run + Replaced the only f19 grid resolution testmod in the izumi fates list with an f45 test + since the pes layout change for izumi from ctsm5.1.dev062 results in high resolution grids + taking longer to run now. Coverage for high resolution fates tests is provided via cheyenne + test lists. - tools-tests (test/tools): + For the same reasons as above, I transferred the only high res (f19) grid resolution testmod + in the izumi aux_clm list to cheyenne to maintain coverage for this test. The ctsm5.1.dev063 + aux_clm baseline on cheyenne has been updated to include this test. - cheyenne - not run +Testing summary: regular fates +---------------- - PTCLM testing (tools/shared/PTCLM/test): + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - cheyenne - not run + build-namelist tests (if CLMBuildNamelist.pm has changed): - python testing (see instructions in python/README.md; document testing done): + cheyenne - PASS - (any machine) - not run + python testing (if python code has changed; see instructions in python/README.md; document testing done): - regular tests (aux_clm): + cheyenne - PASS - cheyenne ---- pass - hobart ------ pass + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -If the tag used for baseline comparisons was NOT the previous tag, note that here: + cheyenne ---- OK + izumi ------- OK + fates tests: (baseline: fates-sci.1.50.1_api.18.0.0-ctsm5.1.dev063) + cheyenne ---- OK + izumi ------- OK Answer changes -------------- -Changes answers relative to baseline: NO (but see note below) - - In principle, the changes in this tag could change answers for some - soil layer structures, but there were no answer changes for any of - the cases covered by the test suite. +Changes answers relative to baseline: Yes (ONLY for FATES tests due to FATES tag update) -Detailed list of changes ------------------------- +Other details +------------- -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): fates + fates: sci.1.50.0_api.17.0.0 -> sci.1.50.1_api.18.0.0 Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/ctsm/pull/771 +(https://github.com/ESCOMP/ctsm/pull) + #1531 -- Adding fcansno to FATES interface =============================================================== =============================================================== -Tag name: ctsm1.0.dev053 -Originator(s): slevis (Samuel Levis,SLevis Consulting LLC,303-665-1310) -Date: Thu Aug 1 16:56:09 MDT 2019 -One-line Summary: Soil layer definition clean-up and user-defined option - -Purpose of changes ------------------- - - Code clean-up clarifes that there are two types of soil layer - definition: the node-based and the thickness-based. - - User-defined option allows user to specify a soil layer profile in the - form of a dzsoi vector (values in meters) in the thickness-based - approach. - - Default nlevsoi for NWP configurations had to change from 5 to 4 for - consistency with the new error check described in known bugs below. - - Other code clean-up removes a couple of sections of repeating code. +Tag name: ctsm5.1.dev062 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Fri Nov 19 00:53:29 MST 2021 +One-line Summary: Make NUOPC the default driver rather than MCT -Bugs fixed or introduced ------------------------- +Purpose and description of changes +---------------------------------- -Issues fixed (include CTSM Issue #): #279 #728 +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. -Known bugs found since the previous tag (include github issue ID): - #759 (this PR) bug causes model to abort when nlevsoi = nlevgrnd; - bug has been corrected with an error check +Remove MODEL as a setting for the build system, use COMP_NAME instead. +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 -------------------------------------------------------------- @@ -3813,82 +7682,95 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[ ] clm5_0 +[x] clm5_1 -[X] ctsm5_0-nwp +[x] clm5_0 -[ ] clm4_5 +[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): - if neither soil_layerstruct_predefined nor soil_layerstruct_userdefined - get specified in the namelist, then the model sets - soil_layerstruct_predefined to the old default setting for - soil_layerstruct (clm5: 20SL_8.5m, clm4.5: 10SL_3.5m) + domain files are normally no longer used Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): - renamed soil_layerstruct to soil_layerstruct_predefined and added - soil_layerstruct_userdefined + See README.NUOPC_driver.md for a description of what changes Changes made to namelist defaults (e.g., changed parameter values): - Default nlevsoi for NWP configurations had to change from 5 to 4 for - consistency with the new error check described in known bugs below - -Changes to the datasets (e.g., parameter, surface or initial files): none - -Substantial timing or memory changes: none + New namelist added force_send_to_atm -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 +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 + 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 + Highwater memory mark is higher (67 vs 131 GB), and last usage (323 vs 165MB) lower than MCT -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Notes of particular relevance for developers: +--------------------------------------------- Changes to tests or testing: - 1) New test... - ERP_P36x2_D_Ld5.f10_f10_musgs.I2000Ctsm50NwpBgcCropGswpGs.cheyenne_intel.clm-default - replaces existing test - ERS_D_Ld10.f10_f10_musgs.I2000Clm50BgcCropGs.cheyenne_intel.clm-rm_indiv_lunits_and_collapse_to_dom - to check the correction described in known bugs above; the new test - together with existing unit tests cover what the old test was testing - - 2) New test and new test type... - SOILSTRUCTUD_Ld5.f10_f10_musgs.I2000Clm50BgcCropGs.cheyenne_intel.clm-default - ensures that soil_layerstruct_userdefined gives bfb same answers as - soil_layerstruct_predefined = '4SL_2m' when set with the same dzsoi - values. The new test type was put together by: - - listing the test in (1) testlist_clm.xml (as all tests) and (2) config_tests.xml - - creating the file .../cime_config/SystemTests/soilstructud.py named after the test in lower case + 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 -Code reviewed by: @billsacks +Testing summary: regular fates ctsm_sci tools +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + build-namelist tests (if CLMBuildNamelist.pm has changed): -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: + cheyenne - PASS (486 tests differ from baseline as expected) - cheyenne - + tools-tests (test/tools) (if tools have been changed): - tools-tests (test/tools): + cheyenne - OK - cheyenne - + python testing (if python code has changed; see instructions in python/README.md; document testing done): - PTCLM testing (tools/shared/PTCLM/test): + cheyenne - PASS - cheyenne - + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - python testing (see instructions in python/README.md; document testing done): + cheyenne ---- PASS + izumi ------- OK - (any machine) - + fates tests: + cheyenne ---- OK - regular tests (aux_clm): + ctsm_sci tests: + cheyenne ---- PASS - cheyenne ---- OK - hobart ------ OK + 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: @@ -3896,58 +7778,138 @@ If the tag used for baseline comparisons was NOT the previous tag, note that her Answer changes -------------- -Changes answers relative to baseline: YES (just for NWP configurations) +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: nwp - - what platforms/compilers: all - - nature of change: larger than roundoff/same climate - This is due to the change of nlevsoi from 5 to 4 (more info above). - I confirmed that nwp does return bfb same answers when I revert this - change. + - what code configurations: All where driver changes + - what platforms/compilers: All + - nature of change: similar climate -Detailed list of changes ------------------------- + 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 -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + 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/759 +(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 =============================================================== =============================================================== -Tag name: ctsm1.0.dev052 -Originator(s): sacks (Bill Sacks) -Date: Mon Jul 22 14:02:43 MDT 2019 -One-line Summary: Fix rare soil color bug in mksurfdata_map +Tag name: ctsm5.1.dev061 +Originator(s): mvertens (Mariana Vertenstein) +Date: Tue Oct 19 11:56:30 MDT 2021 +One-line Summary: Changes needed to get aux history output with cmeps -Purpose of changes ------------------- +Purpose and description of changes +---------------------------------- -Under rare conditions, mksurfdata_map could put the default soil color -in an output cell where there is actually more information. This tag -fixes that issue. None of the out-of-the-box surface datasets are -impacted by this bug, so I have not recreated any surface datasets. (I -checked all out-of-the-box surface datasets except for -surfdata_0.125x0.125_mp24_simyr2000_c150114.nc, because it doesn't get -remade cleanly out of the box.) +These changes are needed to create auxiliary land history files when the +new cmeps configuration variable is set to true. histaux_l2x1yrg = +.true. -Also: +The changes needed in CTSM enable lnd2glc fields to be sent to the +mediator even if glc is not present - based on querying the +histaux_l2x1yrg setting. + +This includes a related change to set most lnd -> mediator fields to +spval over ocean, instead of sending zero values over ocean. + +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.) -- Add some unit tests for the creation of soil color in mksurfdata_map + [Put an [X] in the box for any configuration with significant answer changes.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 -- Point to correct (existing) surface dataset for year-1850 at f05 - resolution Bugs fixed or introduced ------------------------ Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#4 (Minor bug in creation of soil color in - mksurfdata_map: points can be given the default soil color, when they - should have a real color) -- Resolves ESCOMP/ctsm#765 (Year-1850 f05 surface dataset missing from - inputdata repository) +- Resolves ESCOMP/CTSM#1238 (In nuopc cap: change logic for when glc + fields are sent to facilitate writing cpl aux hist files) + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- ok + izumi ------- ok + +Answer changes +-------------- + +Changes answers relative to baseline: YES + + Summarize any changes to answers, i.e., + - what code configurations: NUOPC only + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Just changes missing value patterns for lnd -> mediator fields + + Most lnd -> mediator fields now have missing value over ocean + instead of sending zero values over ocean. This shows up as + FILLDIFFs in most nuopc tests. + +Other details +------------- + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1495 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev060 +Originator(s): glemieux (Gregory Lemieux,LBL/NGEET,510-486-5049) +Date: Mon Oct 18 13:13:03 MDT 2021 +One-line Summary: Izumi aux_clm test fixes for fates testmods + +Purpose and description of changes +---------------------------------- + +This tag corrects an accidental inclusion of non-debug, nag compiled fates testmods +into the izumi aux_clm test list. It also makes corrections to the expected failures +list as well as adjusts the fates izumi test list as well as updates the externals +file to point to the most recent fates tag (which includes a science update so answers +change for FATES). Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -3957,169 +7919,183 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none -Changes made to namelist defaults (e.g., changed parameter values): none +Bugs fixed or introduced +------------------------ -Changes to the datasets (e.g., parameter, surface or initial files): -- Year-1850 f05 surface dataset now points to a file that actually exists +Issues fixed (include CTSM Issue #): + FATES #790 -- NAG compiler runtime error in FatesHydroWTFMod -Substantial timing or memory changes: none +Known bugs found since the previous tag (include issue #): + #1525 -- ERS fates hydro test failing with nag compiler due to use_lch4 + #1526 -- Switch FATES methane test for methane off + FATES #795 -- NAG compiler runtime error in hydraulics_bs -Notes of particular relevance for developers: (including Code reviews and testing) +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 -Caveats for developers (e.g., code that is duplicated that requires double maintenance): - -Changes to tests or testing: none +Changes to tests or testing: -Code reviewed by: self + Changed the non-debug fates testmods in the izumi aux_clm list to compile with intel + instead of nag to avoid fates issue 771 and provide testing parity with the cheyenne + aux_clm list. + Removed two tests from the fates izumi test list: + - FatesColdDefAllVars testmod as it takes too long to complete due to history writes + - f19, 3-day, ERP fates testmod due to a sporadic memleak -CTSM testing: +Testing summary: +---------------- - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - build-namelist tests: + cheyenne ---- ok + izumi ------- ok - cheyenne - not run + fates tests: + cheyenne ---- ok + izumi ------- ok - tools-tests (test/tools): +Answer changes +-------------- - cheyenne - ok +Changes answers relative to baseline: Yes (ONLY for FATES tests because of the FATES tag update) - Most tests pass, including baseline comparisons. The following tests fail, but also failed for me on master: - - 019 smiS4 TSMscript_tools.sh ncl_scripts getregional_datasets.pl getregional ....................\c - rc=6 FAIL - 020 bliS4 TBLscript_tools.sh ncl_scripts getregional_datasets.pl getregional ....................\c - rc=4 FAIL - 027 smf84 TSMscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_clm4_5^buildtools ....................\c - rc=6 FAIL - 028 blf84 TBLscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_clm4_5^buildtools ....................\c - rc=4 FAIL - 029 smfc4 TSMscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_Cycle_clm4_5^buildtools ..............\c - rc=6 FAIL - 030 blfc4 TBLscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_Cycle_clm4_5^buildtools ..............\c - rc=4 FAIL - 031 smfg4 TSMscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_Global_clm4_5^buildtools .............\c - rc=6 FAIL - 032 blfg4 TBLscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_Global_clm4_5^buildtools .............\c - rc=4 FAIL +Other details +------------- - PTCLM testing (tools/shared/PTCLM/test): +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + fates: sci.1.47.0_api.17.0.0 -> sci.1.48.0_api.17.0.0 - cheyenne - not run +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) - python testing (see instructions in python/README.md; document testing done): + # 1524 -- Switch izumi aux_clm category non-debug fates testmods from nag to intel +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev059 +Originator(s): glemieux (Gregory Lemieux,LBL/NGEET,510-486-5049) +Date: Wed Oct 13 10:46:06 MDT 2021 +One-line Summary: Update fates tests and list for diversity and coverage - (any machine) - not run +Purpose and description of changes +---------------------------------- - regular tests (aux_clm): +This tag changes the list of fates testmod represented in the aux_clm category test list +to provide an updated set of testmods to improve coverage and diversity of fates modes +to be checked during ctsm updates now that fates is updating directory to the ctsm main/master +branch. A number of updates were made to the fates category list as well, including +test name changes, variables including for fates testmods, and the addition of a fates landuse +testmod. - cheyenne ---- not run - hobart ------ not run +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- -If the tag used for baseline comparisons was NOT the previous tag, note that here: +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.] -Answer changes --------------- +[ ] clm5_1 -Changes answers relative to baseline: NO +[ ] clm5_0 -Detailed list of changes ------------------------- +[ ] ctsm5_0-nwp -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +[ ] clm4_5 -Pull Requests that document the changes (include PR ids): none -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev051 -Originator(s): sacks (Bill Sacks) -Date: Fri Jul 19 13:26:25 MDT 2019 -One-line Summary: Update water tracers for remainder of first stage of hydrology +Bugs fixed or introduced +------------------------ -Purpose of changes ------------------- +Issues fixed (include CTSM Issue #): + Fixes #1273 -- Add testmod for FATES land use + Fixes #1265 -- Diversifying fates testmods included in aux_clm test suite -Main change is to do tracer updates for final pieces of first stage of -hydrology: HandleNewSnow and UpdateFracH2oSfc. Along with this, I have -introduced greater modularity into these routines (breaking the -operations down into more granular steps). +CIME Issues fixed (include issue #): -Other changes included here (somewhat related to the main changes) are: +Known bugs introduced in this tag (include issue #): + FATES #790 -- NAG compiler runtime error in FatesHydroWTFMod + #1518 -- FATES P32x2 test appears to fail reliably when using I2000FatesCruRsGs compset + #1520 -- Short clm ERS test hits reasonable wall clock limit on izumi nag -- Added a routine that resets checked tracers to bulk*ratio to allow - running the tracer consistency check for more than one time step; we - now run it for 10 days +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 -- Change logic for rain-snow conversion terms: Use rain diff in rain to - snow, snow diff in snow to rain. This is less sensitive to roundoff - errors, and was needed in order to get the 10-day tracer consistency - test to pass. +Changes to tests or testing: + - The list of fates testmods that are included as part of the aux_clm testlist has been updated to + change older compset coverage for newer Clm50 compsets. It also changes the list of fates testmods + to improve coverage for stable fates run mode options. + - The list of tests for the fates test category on all machines has been updated to use river stub compsets + for most tests in an effort to reduce test runtime. + - The list of tests for the fates test category on izumi has been change to only include debug-only tests as + a short term work around for FATES #771 + - The output variables for most all fates testmods is updated to only include site-level variables in an + effort to decrease history write time for any given test + - Updates the expected failure test list to remove out-of-date entries failures + - Many of the fates testmods have been renamed to be have a more broadly consistent naming scheme that denotes + which testmod is a baseline for a given testmod + - FatesColdDefLandUse testmod has been added to gain coverage for the do_harvest mode + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -- Setting of qflx_snow_h2osfc moved to CanopyInterceptionAndThroughfall + cheyenne ---- ok + izumi ------- ok -- Add col%lun_itype. col%lun_itype(ci) is the same as - lun%itype(col%landunit(ci)), but is often a more convenient way to - access this type. I got tired of having to get the landunit index just - for the sake of getting the landunit's type of a given column. I have - NOT gone through the code and replaced lun%itype(l) with - col%lun_itype(c) where applicable, but this will be useful for the - future. + fates tests: + cheyenne ---- ok -- Removed unnecessary code for backwards compatibility of FH2OSFC from - restart files + any other testing (give details below): -- Point to slightly modified initial conditions files for two CLm45 - initial conditions files. These two had FH2OSFC > 0 for some glc_mec - points. I'm not sure how that came to be, but Sean Swenson and I think - that shouldn't be the case. This caused soil balance errors in these - tests: + Note that since testnames and variable inclusion list was changed for all fates testmods, test results + are not automatically comparable by cprnc. Manually comparison was done to validate output for fates testmods. + See PR #1275 details for more thorough explanation of testing results. - ERS_Ly5_P72x1.f10_f10_musgs.IHistClm45BgcCrop.cheyenne_intel.clm-cropMonthOutput - SMS_D_Ld1.f09_g17.I1850Clm45BgcCruGs.cheyenne_intel.clm-default +Answer changes +-------------- - I'm fixing the problem by pointing to updated files with FH2OSFC set - to 0 for special landunits, using the following python: +Changes answers relative to baseline: No (only for non-fates testsmods) - ctypel = dat.variables['cols1d_ityplun'][:] - dat.variables['FH2OSFC'][ctypel > 2] = 0 +Other details +------------- -- Small cime update to fix the SHAREDLIBBUILD phase of - ERS_D_Ln9_P480x3.f19_g16.I2000Clm50SpGs.cheyenne_intel.clm-waccmx_offline +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) -Bugs fixed or introduced ------------------------- + #1275 -- FATES testing update and cleanup -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#718 (Implement water tracers for HandleNewSnow - and FracH2oSfc) -- Resolves ESCOMP/ctsm#498 (Do tracer consistency checks every time - step, not just first) +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev058 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Thu Oct 7 20:47:14 MDT 2021 +One-line Summary: Some miscellaneous small answer changes -CIME Issues fixed (include issue #): -- ESCMI/cime#3717 (Cheyenne ESMF missing for WACCM X) +Purpose and description of changes +---------------------------------- -Known bugs introduced in this tag (include github issue ID): -- ESCOMP/ctsm#762 (Water tracers: Make sure calls to ResetCheckedTracers - are removed) +Change ceta from 450 to 358 for CTSM5.1 See Leo VanKamenhout's work on this in +https://github.com/ESCOMP/CTSM/pull/250. Note, this is used in the PPE work. +See van Kampenhout et al. (2017). Turn Medlyn on for PHS off for clm51 and clm50. +Make max CO2 partial pressure consistent in Photosynthesis. +Change surface datasets to only use 78PFT versions +Fix GSSUN and GSSHA history variables so now not just writing missing values. +Changes FATES to run with use_nitrif_dentrif=T by default. Change dynlakes test +to methane/use_nitrif_=T. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -4129,201 +8105,177 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[x] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): -- If you have an initial conditions file with non-zero FH2OSFC for - glacier (this was the case for some out-of-the-box clm45 files, which - are now fixed), may run into soil balance errors. To fix this, set - FH2OSFC to 0 in your restart file for all special landunits. +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): + Fixes #1504 -- Transient Sp cases fail when using mismatched crop surface/landuse-timeseries datasets #1504 + Fixes #1503 -- VIC cases can't use crop surface datasets because of missing vic data #1503 + Fixes #1462 -- GSSUN and GSSHA are not set on history files #1462 + Fixes #1394 -- Max partial pressure of CO2 be should be 1.e-6 rather than 10.e-6 which it is for ci_func_PHS #1394 + Fixes #1460 -- Initialize t_soisno to 272K instead of 274K to avoid deep soil carbon in permafrost regions #1460 + Fixes #1465 -- Change FATES to run with use_nitrif_dentrif TRUE #1465 + Worked on #1356 -- Remove the CN (non CENTURY) version of Carbon-Nitrogen soil biogeochemistry code and its testing #1356 + Fixes #1496 -- SP NoAnthro case fails... #1496 -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Notes of particular relevance for users +--------------------------------------- -Changes made to namelist defaults (e.g., changed parameter values): none +Changes made to namelist defaults (e.g., changed parameter values): + stomatalcond_method is now Medlyn2011 for clm5_0 and clm5_1 + use_nitrif_denitrif is now TRUE when using FATES Changes to the datasets (e.g., parameter, surface or initial files): -- Point to slightly modified initial conditions files for two CLm45 - initial conditions files: see above for details. - -Substantial timing or memory changes: none + New parameter file for clm5_1 (changes ceta) -Notes of particular relevance for developers: (including Code reviews and testing) +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 -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + Surface datasets are now labeled with use_vichydro=TRUE in the xml. This also means that some files + listed in the XML are listed twice for VIC both on and off (that's important for FATES since it still + requires non-crop datasets (see #1505) + + Also the logic for finding both fsurdat and flanduse_timeseries files needs to be the same in first + asking for a crop version and then an exact match if it isn't found (unless it's FATES and then you just + do the exact match). Changes to tests or testing: -- Changed tracer consistency test to 10 days rather than a single time step + Dynamic lakes test now has methane on, which works because we turn off methane conservation check after restart + See #43 for more information on this. -Code reviewed by: self +Testing summary: regular +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -CTSM testing: + build-namelist tests (if CLMBuildNamelist.pm has changed): - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + cheyenne - OK (306 tests different than baseline) - build-namelist tests: + python testing (if python code has changed; see instructions in python/README.md; document testing done): - cheyenne - not run + cheyenne - PASS - tools-tests (test/tools): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - cheyenne - not run + cheyenne ---- OK + izumi ------- PASS - PTCLM testing (tools/shared/PTCLM/test): +If the tag used for baseline comparisons was NOT the previous tag, note that here: previous - cheyenne - not run - python testing (see instructions in python/README.md; document testing done): +Answer changes +-------------- - (any machine) - not run +Changes answers relative to baseline: Yes - regular tests (aux_clm): + Summarize any changes to answers, i.e., + - what code configurations: Most + - what platforms/compilers: all + - nature of change: + similar climate most changes are near roundoff level + + All clm5_1 physics change answers because of change in ceta parameter. + When PHS off for clm5_1 and clm5_0 changes answers because of Medlyn photosynthesis over Ball-Berry. + Photosynthesis potentially changes all the time because a maximum parameter was off. + Answer should be close to roundoff for Sp and Bgc cases without Crop because we now use crop surface datasets. + FATES changes answers since user_nitrif_dentrif is now on by default + COLDSTART BGC cases will change answers because of a change in initial soil temperature + clm4_5 and clm5_0 vichydro results are identical + clm4_5 and clm5_0 single point urban tests are identical + Some tests are still identical mostly crop-cases non-cold-start + In some cases GSSUN and GSSHA will be different. + +Other details +------------- - cheyenne ---- ok - hobart ------ ok - - ok means tests pass, some roundoff-level diffs in baseline - comparisons, as noted below - - Also, in order to have a more powerful test of the changes in - SurfaceWaterMod (since the relevant code isn't triggered very often), - I introduced the following diffs: - - diff --git a/src/biogeophys/SurfaceWaterMod.F90 b/src/biogeophys/SurfaceWaterMod.F90 - index 1bc03cae..be656a15 100644 - --- a/src/biogeophys/SurfaceWaterMod.F90 - +++ b/src/biogeophys/SurfaceWaterMod.F90 - @@ -12,6 +12,7 @@ module SurfaceWaterMod - use shr_spfn_mod , only : erf => shr_spfn_erf - use clm_varcon , only : denh2o, denice, roverg, wimp, tfrz, pc, mu, rpi - use clm_varpar , only : nlevsno, nlevgrnd - + use clm_varctl , only : iulog - use clm_time_manager , only : get_step_size - use column_varcon , only : icol_roof, icol_road_imperv, icol_sunwall, icol_shadewall, icol_road_perv - use decompMod , only : bounds_type - @@ -201,7 +202,7 @@ subroutine BulkDiag_FracH2oSfc(bounds, num_soilc, filter_soilc, & - SHR_ASSERT_FL((ubound(qflx_too_small_h2osfc_to_soil, 1) == bounds%endc), sourcefile, __LINE__) - - ! arbitrary lower limit on h2osfc for safer numerics... - - min_h2osfc=1.e-8_r8 - + min_h2osfc=1.e0_r8 - - do f = 1, num_soilc - c = filter_soilc(f) - @@ -230,6 +231,9 @@ subroutine BulkDiag_FracH2oSfc(bounds, num_soilc, filter_soilc, & - - else - frac_h2osfc(c) = 0._r8 - + if (h2osfc(c) > 0._r8) then - + write(iulog,*) 'WJS: in else' - + end if - qflx_too_small_h2osfc_to_soil(c) = h2osfc(c) / dtime - ! The update of h2osfc is deferred to later, keeping with our standard - ! separation of flux calculations from state updates, and because the state - - With those diffs, I ran the tracer consistency test; it passed. In - addition, I ran - SMS_D_Ld1_P4x1.f10_f10_musgs.I2000Clm50BgcCropQianRsGs.bishorn_gnu.clm-default - with comparison against master, with the following diffs on master - (the first change changes behavior to force the relevant code to be - triggered, and is the same on master and on the branch; the second - change on master divides then multiplies by dtime to avoid - roundoff-level diffs): - - diff --git a/src/biogeophys/SurfaceWaterMod.F90 b/src/biogeophys/SurfaceWaterMod.F90 - index 959d539b..4a4a4824 100644 - --- a/src/biogeophys/SurfaceWaterMod.F90 - +++ b/src/biogeophys/SurfaceWaterMod.F90 - @@ -77,7 +77,7 @@ subroutine FracH2oSfc(bounds, num_nolakec, filter_nolakec, & - ) - - ! arbitrary lower limit on h2osfc for safer numerics... - - min_h2osfc=1.e-8_r8 - + min_h2osfc=1.e0_r8 - - call waterstatebulk_inst%CalculateTotalH2osno(bounds, num_nolakec, filter_nolakec, & - caller = 'FracH2oSfc', & - @@ -112,7 +112,7 @@ subroutine FracH2oSfc(bounds, num_nolakec, filter_nolakec, & - - else - frac_h2osfc(c) = 0._r8 - - h2osoi_liq(c,1) = h2osoi_liq(c,1) + h2osfc(c) - + h2osoi_liq(c,1) = h2osoi_liq(c,1) + (h2osfc(c) / get_step_size()) * get_step_size() - h2osfc(c)=0._r8 - endif - - This test passed and was bit-for-bit with master with the above changes. +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + #1497 -- Miscellaneous small answer changes -If the tag used for baseline comparisons was NOT the previous tag, note that here: +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev057 +Originator(s): Sam Rabin +Date: Mon Sep 20 10:07:26 MDT 2021 +One-line Summary: Consolidate duplicated crop phenology code +Purpose and description of changes +---------------------------------- -Answer changes --------------- +Consolidate duplicated code related to crop planting -Changes answers relative to baseline: - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - Summarize any changes to answers, i.e., - - what code configurations: Many/all - - what platforms/compilers: All - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Roundoff: just roundoff-level changes in FSH_PRECIP_CONVERSION, - FSH_TO_COUPLER, l2x_Fall_sen due to refactored calculation of - FSH_PRECIP_CONVERSION +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.) - If bitwise differences were observed, how did you show they were no worse - than roundoff? via summarize_cprnc_diffs + [Put an [X] in the box for any configuration with significant answer changes.] - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A +[ ] clm5_1 - URL for LMWG diagnostics output used to validate new climate: N/A - +[ ] clm5_0 -Detailed list of changes +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced ------------------------ +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1479 (Suggested cleanup in CropPhenology(): + Removing duplicated sowing code) -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -- cime: branch_tags/cime5.8.3_chint17-03 -> branch_tags/cime5.8.3_chint17-04 - Fixes ESMCI/cime#3171 -Pull Requests that document the changes (include PR ids): none +Testing summary: +---------------- -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev050 -Originator(s): slevis (Samuel Levis,SLevisConsulting LLC,303-665-1310) -Date: Mon Jul 15 11:40:09 MDT 2019 -One-line Summary: dz --> dz_lake bug-fix in LakeTemperatureMod.F90 line 960 + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Purpose of changes ------------------- + cheyenne ---- ok + izumi ------- ok - Bug-fix to prevent the model from aborting when running with fewer soil - layers than lake layers; not to imply that this was not a bug when the - model wasn't aborting. It was. +Answer changes +-------------- +Changes answers relative to baseline: NO -Bugs fixed or introduced ------------------------- +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1482 -Issues fixed (include CTSM Issue #): #760 +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev056 +Originator(s): glemieux (Gregory Lemieux,LBL/NGEET,510-486-5049) +Date: Fri Sep 17 15:41:57 MDT 2021 +One-line Summary: FATES Satellite Phenology mode implemented -Known bugs found since the previous tag (include github issue ID): #759 bug causing model to abort when nlevsoi = nlevgrnd +Purpose and description of changes +---------------------------------- +This PR enables FATES TLAI, TSAI, and HTOP to be driven by the host land model +satellite data sets. The parameter file has been updated to include an array +mapping the indices of the host land model pfts to fates pfts. FATES satellite +phenology mode automatically enables two additional reduced complexity modes: +fixed biogeography and no competition. The former had previously been +implimented although this update corrected an error associated with this mode. +The latter is a new mode introduced in this PR as well and a corresponding +regression test has been added along with a new sp mode regression test. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -4333,192 +8285,222 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none -Changes made to namelist defaults (e.g., changed parameter values): none +Bugs fixed or introduced +------------------------ -Changes to the datasets (e.g., parameter, surface or initial files): none +Issues fixed (include CTSM Issue #): + Adds FATES-SP mode as part of #1047 (a FATES v1 requirement) -Substantial timing or memory changes: none +Known bugs introduced in this tag (include issue #): + #1485 -- Forthcoming FATES satellite phenology ERS test fails COMPARE_base_rest + #1488 -- FATES SP mode filter comparison: all_soil_patches and soil + #1489 -- Add graceful build failure for additional modes that are incompatible with use_fates_sp -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 +Known bugs found since the previous tag (include issue #): + MOSART #45 -- frivinp_rtm is still required even if MOSART is turned off -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Notes of particular relevance for users +--------------------------------------- -Changes to tests or testing: none +Caveats for users (e.g., need to interpolate initial conditions): + The SPITFIRE model is set to fail gracefully if accidentally enabled in conjunction with sp mode. + There is a known error in the satellite phenology exact restart, so restarts should not be + attempted until issue #1485 has been resolved. -Code reviewed by: @dlawrenncar @billsacks +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + History variables TLAI, TSAI, and HTOP are updated to reflect the fates sp mode outputs by means + of overwriting the existing history outputs. The original canopystate variables are still + calculated, but not available to the user. +Changes made to namelist defaults (e.g., changed parameter values): + Add namelist option: use_fates_sp, use_fates_nocomp -CTSM testing: +Changes to the datasets (e.g., parameter, surface or initial files): + New fates paramter file which include hlm to fates pft indexing map - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Substantial timing or memory changes: None - build-namelist tests: +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 - cheyenne - +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + All single site fates suite tests need to be manually built and submitted given MOSART #45. PR #1275 will resolve + this by switching to a non-MOSART compset. - tools-tests (test/tools): +Changes to tests or testing: + A temporary SMS test has been added for Satellite Phenology testmod given the known ERS failure (issue #1485). - cheyenne - +Testing summary: +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - PTCLM testing (tools/shared/PTCLM/test): + build-namelist tests (if CLMBuildNamelist.pm has changed): - cheyenne - + cheyenne - PASS - python testing (see instructions in python/README.md; document testing done): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - (any machine) - + cheyenne ---- OK + izumi ------- OK - regular tests (aux_clm): + ok: NLCOMP failures due to new fates namelist options added + fates tests: cheyenne ---- OK - hobart ------ OK -If the tag used for baseline comparisons was NOT the previous tag, note that here: + ok: FixedBiogeo DIFF deemed acceptable due to error correction from previous baseline. + fates baseline: fates-sci.1.46.2_api.16.1.0-ctsm5.1.dev055 Answer changes -------------- -Changes answers relative to baseline: +Changes answers relative to baseline: No (except for FATES FixedBiogeo) Summarize any changes to answers, i.e., - - what code configurations: use_lch4 = .true. + - what code configurations: FATES FixedBiogeo mode only - what platforms/compilers: all - - nature of change: diagnostic variable WTGQ only - Confirmed this on cheynne and hobart by running - ./summarize_cprnc_diffs -baseline .../tests_0712... -testid '*' - and inspecting the file cprnc.summary.*.by_varname + - nature of change: larger than roundoff due to corrected hlm-fates pft mapping -Detailed list of changes ------------------------- +Other details +------------- -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + fates: sci.1.46.2_api.16.1.0 -> sci.1.47.0_api.17.0.0 Pull Requests that document the changes (include PR ids): - https://github.com/ESCOMP/ctsm/pull/761 +(https://github.com/ESCOMP/ctsm/pull) + + #1182 -- FATES SP api + FATES #703 -- Fates SP mode =============================================================== =============================================================== -Tag name: ctsm1.0.dev049 -Originator(s): erik (Erik Kluzek) -Date: Sun Jun 23 20:56:55 MDT 2019 -One-line Summary: Update mosart and intel to intel-19 on cheyenne - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev055 +Originator(s): slevis (Samuel Levis,SLevis Consulting,303-665-1310) +Date: Fri Sep 10 11:25:08 MDT 2021 +One-line Summary: Updates to master_list_file.rst -Update mosart to trunk tag (that has a roundoff change to history file -output). And update intel compiler on cheyenne to intel-19. +Purpose and description of changes +---------------------------------- -Bugs fixed or introduced None ------------------------- + Added code that writes a disclaimer and a few of the case's flags near + the top of master_list_file.rst. + Added code to generate a FATES version of master_list_file.rst. + Named new file master_list_file_fates.rst and renamed existing file + master_list_file_nofates.rst. + Updated .rst files in the documentation accordingly. Significant changes to scientifically-supported configurations -------------------------------------------------------------- -Does this tag change answers significantly for any of the following physics configurations? +Does this tag change answers significantly for any of the following physics configurations? No. (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.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): None - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None - -Changes made to namelist defaults (e.g., changed parameter values): None -Changes to the datasets (e.g., parameter, surface or initial files): None +Bugs fixed or introduced +------------------------ + None. -Substantial timing or memory changes: [For timing changes, can check PFS test(s) in the test suite] None +Notes of particular relevance for users +--------------------------------------- +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + The changes described above mainly affect the documentation. + If a user sets hist_master_list_file = .true. + to see the list of history fields available in their case, then they + will see the changes to master_list_file.rst described above. -Notes of particular relevance for developers: (including Code reviews and testing) +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 - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): None - -Changes to tests or testing: None - -Code reviewed by: self + None. -CTSM testing: regular +Testing summary: +---------------- - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - build-namelist tests: + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - cheyenne - PASS + cheyenne ---- OK + izumi ------- OK - regular tests (aux_clm): + Note 1. On izumi I got four NLCOMP failures that seem unexpected: + ERI_D_Ld9_P48x1_Vnuopc.f10_f10_mg37.I2000Clm50Sp.izumi_nag.clm-SNICARFRC + ERS_D_Mmpi-serial_Ld5_Vnuopc.1x1_brazil.I2000Clm50FatesRs.izumi_nag.clm-FatesColdDef + SMS_D_Ld1_P48x1_Vnuopc.f10_f10_mg37.I2000Clm50BgcCru.izumi_nag.clm-af_bias_v7 + SMS_D_Vnuopc_Mmpi-serial.CLM_USRDAT.I1PtClm51Bgc.izumi_nag.clm-default--clm-NEON-NIWO + with errors like this: + Comparison failed between '/scratch/cluster/slevis/tests_0908-183947iz/ERI_D_Ld9_P48x1_Vnuopc.f10_f10_mg37.I2000Clm50Sp.izumi_nag.clm-SNICARFRC.GC.0908-183947iz_nag/CaseDocs/lnd_in' with '/fs/cgd/csm/ccsm_baselines/ctsm5.1.dev054/ERI_D_Ld9_P48x1_Vnuopc.f10_f10_mg37.I2000Clm50Sp.izumi_nag.clm-SNICARFRC/CaseDocs/lnd_in' + missing variable: 'fatmlndfrc' - cheyenne ---- OK - hobart ------ OK + Note 2. On cheyenne I got an expected NLCOMP failure due to the Fates test + that I modified to output the master_list_fates.rst file. If the tag used for baseline comparisons was NOT the previous tag, note that here: - Answer changes -------------- -Changes answers relative to baseline: Yes - - Summarize any changes to answers, i.e., - - what code configurations: some compsets with mosart - - what platforms/compilers: cheyenne/intel - - nature of change: roundoff - -Detailed list of changes ------------------------- +Changes answers relative to baseline: No. -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime, and mosart - mosart to mosart1_0_33 - cime to branch_tags/cime5.8.3_chint17-03 + The contents of master_list_nofates.rst have changed relative to the + earlier copy named master_list_file.rst, due to changes in the list of + available history fields introduced in previous tags. -Pull Requests that document the changes (include PR ids): #753 -(https://github.com/ESCOMP/ctsm/pull) - #753 -- Update cheyenne to intel/19 and update mosart +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/1481 =============================================================== =============================================================== -Tag name: ctsm1.0.dev048 +Tag name: ctsm5.1.dev054 Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) -Date: Sun Jun 23 15:16:01 MDT 2019 -One-line Summary: Updates for buildlib changes and cime and externals updates +Date: Thu Sep 2 01:18:31 MDT 2021 +One-line Summary: New parameters on paramsfile, many bit-for-bit changes, new history fields for IWUELN,VPD_2M, allow Medlyn Photosynthesis for non-PHS cases, fixes to HumanStressIndex -Purpose of changes ------------------- +Purpose and description of changes +---------------------------------- -Update of most externals: cime, mosart, rtm, cism. The cime update also includes a required CESM-wide -change in buildlib. Uses a function to get the Macros filename "get_standard_makefile_args". -The cime update brought in some answer chagnes, with an update of the intel compiler (but we backed those -out by using a cime branch). There is also a roundoff change by going to the trunk version of RTM. +Brings more hardcoded parameters to the paramsfile. Some bit-for-bit cleanup. A fix for HumanStressIndex. Adding IWUELN +and VPD_2M diagnostic to history output. Add in ability to run Medlyn photosynthesis for non-PHS cases (not turned on yet though). +Most of the addition of parameters is from Keith Oleson. + +Daniel Kennedy added two new diagnostic fields available for history outuput. +IWUELN: the intrinsic water use efficiency at local noon (umolCO2/molH2O) +VPD_2M: vapor pressure deficit at 2m reference height (pascals) + +The Medlyn stomatal conductance functionality was deployed for CLM5. It had not been implemented for use_hydrstress=.false +(i.e. SMS). Previously if we opted for: use_hydrstress=.false and stomatalcond_method = 'Medlyn2011', +the model would actually use the Ball-Berry stomatal conductance model. Daniel Kennedy adds the changes to allow this for +non-PHS. + +Human Stress index changes are from Jonathan Buzan and Keith Oleson. + +Some clean-up work on arctic vegetation changes. Also removal of the option to run non-CENTRY based soil +decomposition model. CN options are removed along with use_century_decomp and use_vertsoilc. use_nitrif_dentrif and +use_lch4 are still retained, but recommended to be always on, and will be removed later. -Bugs fixed or introduced None ------------------------- Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -4528,60 +8510,103 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): None +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + Fixes #1472 - hist_master_list_file dies if master_list_file.rst already exists + Fixes #1469 - Remove unused 0.1x0.1 grid + Fixes #1468 - Remove vestiges of ch4 0.9x1.25 grid in mksurfdata_map/mkmapdata + Fixes #1427 - Division of critical day length by 2 is incorrect + Fixes #1403 - Invalid test running single-point forcing data before or after it's valid data series + Fixes #1401 - 1-Degree methane finundated stream data is labeled as if it's 2-degree + Fixes #1399 - Some cleanup for arctic luna changes + Fixes #1296 - Make a checklist of issues to check for when running a simulation. + Fixes #1245 - intrinsic water use efficiency diagnosti + Fixes #1250 - Error in HumanIndexMod (QSat_2 subroutine) + Fixes #1284 - change where stem_biomass is set + Fixes #1382 - write out friction velocity to history files by default + Fixes #1379 - Invalid xml for namelist_definition file: missing end tag + Fixes #1185 - Remove wrtdia + Fixes #1168 - Remove duplication between phys versions in CLM_BLDNML_OPTS settings (and fix some others) in config_component.xml + Fixes #886 -- Warning if FUN is on, but FlexibleCN is not + Fixes #808 -- Remove camdenNJ test from prebeta test list, replace it with working tests + +Partial work on #1356 (but use_lch4, use_nitrif_dentrif remain) + +Known bugs found since the previous tag (include issue #): + #1462 -- GSSUN and GSSHA are not set on history files + #1460 -- Initialize t_soisno to 272K instead of 274K to avoid deep soil carbon in permafrost regions -Changes made to namelist defaults (e.g., changed parameter values): None -Changes to the datasets (e.g., parameter, surface or initial files): None +Notes of particular relevance for users +--------------------------------------- -Substantial timing or memory changes: None +Caveats for users (e.g., need to interpolate initial conditions): + Vertical soil carbon is now hardcoded to on. This means that if you had run a simulation + with it turned off -- you won't be able to use it's restart files in this versions and after. + Likewise with CENTURY-BGC. -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + Removed namelist options: wrtdia, use_vertsoilc, use_century_decomp, min_wind_snowcompact + Added namelist options: min_critical_dayl_method, soil_decomp_method + New options for min_critical_dayl_method, DependsOnVeg and DependsOnLatAndVeg -Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + Remove 1x1_camdenNJ and 1x1_asphaltjungleNJ grid options + Remove some uneeded grids and files, correct 360x720cru grid for mksurfdata_map + Remove vestiges of ch4 files in mksurfdata_map + Remove the "cn" option to "-bgc" in CLM_BLDNML_OPTS and remove Cn compsets and tests -Changes to tests or testing: None + New history variables: VPD2M, IWUELN (FV made default active) -Code reviewed by: @jedwards, self +Changes to the datasets (e.g., parameter, surface or initial files): + New parameter files +Notes of particular relevance for developers: +--------------------------------------------- -CTSM testing: regular +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + After we turn on methane and nitrfication-dentrification for all configurations we + can remove the use_lch4 and use_nitrif_denitrif options - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Changes to tests or testing: + Removed CN and 1x1_camdenNJ tests as well as NoVSNoNI + Shortened 1x1_cancouverCAN test as it ran beyond the end of data + Changed name of "rootlit" test to "anoxia" as that was the only thing it does, it now + also runs with vertical soil Carbon profile - build-namelist tests: - cheyenne - PASS +Testing summary: regular, tools +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - tools-tests (test/tools): + build-namelist tests (if CLMBuildNamelist.pm has changed): - cheyenne - PASS + cheyenne - OK - PTCLM testing (tools/shared/PTCLM/test): + tools-tests (test/tools) (if tools have been changed): - cheyenne - PASS + cheyenne - OK - python testing (see instructions in python/README.md; document testing done): + python testing (if python code has changed; see instructions in python/README.md; document testing done): - cheyenne - PASS (for python3) + cheyenne - PASS - regular tests (aux_clm): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): cheyenne ---- OK - hobart ------ OK + izumi ------- OK + + any other testing (give details below): If the tag used for baseline comparisons was NOT the previous tag, note that here: @@ -4589,72 +8614,38 @@ If the tag used for baseline comparisons was NOT the previous tag, note that her Answer changes -------------- -Changes answers relative to baseline: Yes, but only for a few cases (compsets with RTM) +Changes answers relative to baseline: No bit-for-bit (except diagnostic fields when HumanStress is turned on) Summarize any changes to answers, i.e., - - what code configurations: With RTM + - what code configurations: When human-stress turned on - what platforms/compilers: All - - nature of change: roundoff - fieldlist is different for CISM in some cases - -Detailed list of changes ------------------------- - -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime, mosart, rtm, cism - cime to branch_tags/cime5.8.3_chint17-02 - cism to cism2_0_68 - rtm to rtm1_0_68 - mosart to nldas-grid.n02_mosart1_0_31 + - nature of change: Small (only to diagnostic fields) + Also now can't run with use_vertsoilc off + anoxia tests are different from rootlit tests as use_vertsoilc is now hardcoded on -Pull Requests that document the changes (include PR ids): #752 +Other details +------------- +Pull Requests that document the changes (include PR ids): (https://github.com/ESCOMP/ctsm/pull) - - #752 -- buildlib, cime and externals update + #1164 -- Some more hardcoded parameters to the params file + #1250 -- Error in HumanIndexMod (QSat_2 subroutine) + #1267 -- Adding IWUELN and VPD_2M diagnostic + #1321 -- Medlyn-SMS =============================================================== =============================================================== -Tag name: ctsm1.0.dev047 +Tag name: ctsm5.1.dev053 Originator(s): sacks (Bill Sacks) -Date: Sun Jun 16 13:04:38 MDT 2019 -One-line Summary: Fix negative snow compaction during snow melt - -Purpose of changes ------------------- - -Fix an issue reported by @kjetilaas: In the presence of surface water, -the old and new snow cover fractions are inconsistently calculated in -subroutine "SnowCompaction". This can result in significant negative -compaction (snow depth increase) during snow melt. - -More details from @kjetilaas (copied from -https://github.com/escomp/ctsm/issues/573): - -There is an inconsistency in the calculation of snow cover fraction -(FSNO) in the SnowCompaction subroutine when there is surface water -present. The actual snow cover is limited to 0.99 when surface water is -present (and the surface water fraction is set to 0.01). However, -SnowCompaction recalculates the old FSNO without accounting for this -limitation. This results in an apparent decrease in FSNO, and -corresponding negative snow compaction from snow melt (ddz3). - -This can result in substantial, artificial increase in snow depth during -summer (can be more than 0.5 m during a single season). +Date: Fri Aug 13 10:17:42 MDT 2021 +One-line Summary: Add Antarctica compset and change min_snow_to_keep -The problem might be masked in monthly output, but could be significant -whenever snow cover is close to 1 and surface water present. Snow mass -is indirectly affected by this as radiation and temperature fluxes in -the snow pack will be affected by artificially thick snow layers. +Purpose and description of changes +---------------------------------- -This tag fixes this issue. The fix was implemented and tested by -@swensosc (Sean Swenson). - -Bugs fixed or introduced ------------------------- - -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#573 (Snow depth increase due to inconsistent snow - cover fraction calculation) +(1) Add a compset for running CISM with Antarctica +(2) Change min_snow_to_keep (see + https://github.com/ESCOMP/CTSM/issues/1425 for details) Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -4664,62 +8655,29 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[X] clm5_0 - -[X] ctsm5_0-nwp - -[X] clm4_5 - -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none - -Changes made to namelist defaults (e.g., changed parameter values): none - -Changes to the datasets (e.g., parameter, surface or initial files): none - -Substantial timing or memory changes: none - -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - -Changes to tests or testing: none - -Code reviewed by: Sean Swenson, @kjetilaas, Bill Sacks - - -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: - - cheyenne - not run +[ ] clm5_1 - tools-tests (test/tools): +[ ] clm5_0 - cheyenne - not run +[ ] ctsm5_0-nwp - PTCLM testing (tools/shared/PTCLM/test): +[ ] clm4_5 - cheyenne - not run - python testing (see instructions in python/README.md; document testing done): +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1425 (Need to increase min_snow_to_keep) - (any machine) - not run +Testing summary: +---------------- - regular tests (aux_clm): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): cheyenne ---- ok - hobart ------ ok + izumi ------- ok - ok means tests pass, answers change as expected + any other testing (give details below): If the tag used for baseline comparisons was NOT the previous tag, note that here: @@ -4727,102 +8685,56 @@ If the tag used for baseline comparisons was NOT the previous tag, note that her Answer changes -------------- -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +Changes answers relative to baseline: YES, but very limited circumstances Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all + - what code configurations: rarely, when have large snow capping flux + - what platforms/compilers: all (potentially) - nature of change (roundoff; larger than roundoff/same climate; new climate): - Larger than roundoff/same climate - - Sean Swenson ran the LMWG diagnostics package and looked at the - results with Keith Oleson. Their main findings were: - - - Snow depth is a bit smaller over Greenland and polar regions on - average, as expected (up to 5-10% decrease in average snow depth - averaged over the Canadian Arctic) - - - There is a small increase in h2osno over Greenland: about 30 mm - averaged over Greenland; it looks like the main changes are - around the coasts (which makes sense given that this bug only - affects vegetated landunits) - - - There are small changes in runoff over Greenland - - - Changes in snow cover fraction are tiny - - - Overall, this doesn't look climate changing, but could - potentially have a significant impact on select grid cells, and - on some variables in polar regions - - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A - - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A - - URL for LMWG diagnostics output used to validate new climate: N/A - + slightly larger than roundoff when it occurs -Detailed list of changes ------------------------- - -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + Changes only appear if removing the entire bottom layer of the snow + pack in one time step due to snow capping. The only test in the test + suite that changes answers is: -Pull Requests that document the changes (include PR ids): none + ERS_D.f10_f10_mg37.I1850Clm50BgcCrop.cheyenne_intel.clm-reseedresetsnow =============================================================== =============================================================== -Tag name: ctsm1.0.dev046 -Originator(s): sacks (Bill Sacks) -Date: Sat Jun 15 15:54:44 MDT 2019 -One-line Summary: Separate the two uses of h2osno +Tag name: ctsm5.1.dev052 +Originator(s): negins/jedwards/erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Wed Aug 11 21:58:47 MDT 2021 +One-line Summary: Wrapper script for running NEON sites, and some NEON updates -Purpose of changes ------------------- +Purpose and description of changes +---------------------------------- -Until now, h2osno has been used in two ways: +This is a wrapper script for running CTSM simulation for one or more neon sites using +CIME case objects. -1. When there are explicit snow layers, h2osno is the sum of snow - (liquid + ice) in all layers +This script accomplishes the following: -2. When there is a little bit of snow, but not enough to create a snow - layer, h2osno gives the amount of this very thin snow pack (assumed - to be all ice) +Downloads and parses neon listing file for the available neon data : +https://neon-ncar.s3.data.neonscience.org/listing.csv -This is confusing and complicates the addition of water tracers to the -code. This tag separates h2osno into two different variables: +Create a base generic case and clone other cases from this generic base case. -1. h2osno_no_layers is a fundamental state variable that gives the - amount of snow in the case where we don't have explicit snow layers +Enable the user to run in AD, Post-AD, and transient mode. -2. h2osno_total is purely a diagnostic variable that is the sum of snow - in all explicit layers, plus h2osno_unresolved. This exists in - waterdiagnosticbulk_type, but the version there is just set once at - the end of the time step, so that version is only meant for - diagnostic (history) output. Code that needs the current sum of - h2osno at a given point now computes it locally, via a new method on - waterstate_type: CalculateTotalH2osno. If running in debug mode, that - routine also performs some consistency checks. +Currently, there is no case dependency or case status check in the code. Which means +that the user cannot run Post-AD +AD + transient all at the same time. If we add case +dependency, then the code that checks the status of a case (e.g. spinup) every 2 +seconds and once it is finished successfully submit the next phase (e.g. transient.) -Also, an unrelated change to prevent user from trying to interpolate a -file onto itself. +Externals are also updated to fix some NEON issues. -Also, add a compset for testing, which is good for use on my mac. +New tools subdirectory site_and_regional and current scripts for handling single-point +moved underneath. Also README files and tools testing changed for this move. Also tools +test added for the new wrapper script talked about above. Fix an issue in subset_data.py +where it couldn't be run from outside of a git directory because it checks for the git hash. -Bugs fixed or introduced ------------------------- +Changes so that CTSM will write restarts as signaled at end of simulation by the CMEPS mediator. -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#733 (Make h2osno purely a diagnostic variable) -- Resolves ESCOMP/ctsm#749 (h2osno inconsistent when interpolating from - initial conditions with different snow layers) -- Resolves ESCOMP/ctsm#750 (Prevent user from trying to use the same - filename for init_interp source and destination files) Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -4832,64 +8744,65 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none - -Changes made to namelist defaults (e.g., changed parameter values): none +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): + Fixes #1354 Batch run single point sites + Fixes #1454 run_sys_test improve error for rerun option + Fixes #1456 Missing files for test tools + Fixes #1407 mkmapdata.sh failing for regional grid + Fixes #1446 modifiy_neon script changes dimension for zbedrock + Fixes #1429 Modified neon datasets have errors -Changes to the datasets (e.g., parameter, surface or initial files): none +Known bugs introduced in this tag (include issue #): + #1459 -- Change run_neon to run from any directory and add some additional options for testing -Substantial timing or memory changes: none (possibly a small improvement -in timing based on PFS run time) +Known bugs found since the previous tag (include issue #): + #1443 -- NEON site data requirements + #1442 -- Rename NEON files for CLM + #1433 -- Bring in eval data from NEON -Notes of particular relevance for developers: (including Code reviews and testing) +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 - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - -Changes to tests or testing: none - -Code reviewed by: self +Changes to tests or testing: tools testing modified add a tools test for the run_neon script +Testing summary: regular and tools +---------------- -CTSM testing: - - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - build-namelist tests: + build-namelist tests (if CLMBuildNamelist.pm has changed): - cheyenne - not run + cheyenne - PASS - tools-tests (test/tools): + tools-tests (test/tools) (if tools have been changed): - cheyenne - not run + cheyenne - OK - PTCLM testing (tools/shared/PTCLM/test): + 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 - not run + cheyenne - OK - python testing (see instructions in python/README.md; document testing done): + python testing (if python code has changed; see instructions in python/README.md; document testing done): - (any machine) - not run + cheyenne - PASS - regular tests (aux_clm): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - cheyenne ---- ok - hobart ------ ok + cheyenne ---- OK + izumi ------- OK - ok means tests pass; baseline comparisons fail as expected + any other testing (give details below): If the tag used for baseline comparisons was NOT the previous tag, note that here: @@ -4897,108 +8810,35 @@ If the tag used for baseline comparisons was NOT the previous tag, note that her Answer changes -------------- -Changes answers relative to baseline: - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): - - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Mostly roundoff; greater than roundoff/same climate for cases for - which number of snow layers is less in the case than in its - initial conditions file, due to fixing #749 - - If bitwise differences were observed, how did you show they were no worse - than roundoff? - - There was one point where h2osno_total differed from the old h2osno - by roundoff, as verified by a run of the test suite (where I verified - that (a) it only differed by 1e-11 or less, and (b) if I reset it, - there were just roundoff-level changes in a few diagnostic - fields). That one place with roundoff-level diffs can lead to - propagation of diffs, causing differences in many fields in the final - run of the test suite. In particular: I ran the test suite on - 69823de4 (which had this temporary check and reset of h2osno_total - vs. old h2osno). For nearly all tests, there were only roundoff-level - changes in a few diagnostic fields. I then removed the temporary - check and reset and ran the test suite on the result - (4353cc90). Finally, I ran the test suite on the final, cleaned-up - code, with comparison against 4353cc90 and verified bfb. - - In my testing on 69823de4: There were a few tests with greater than - roundoff-level changes due just to differences in the initial value - of h2osno_total (which was incorrect in the old due to #749). I - verified that these only had roundoff-level changes in a few - diagnostic fields if I used the following diffs in both the baseline - and my branch, indicating that the diffs just arose due to the fix of - #749: - - diff --git a/src/main/clm_initializeMod.F90 b/src/main/clm_initializeMod.F90 - index 793b36ac..f10ee5e1 100644 - --- a/src/main/clm_initializeMod.F90 - +++ b/src/main/clm_initializeMod.F90 - @@ -762,6 +762,18 @@ subroutine initialize2( ) - !$OMP END PARALLEL DO - end if - + do c = bounds_proc%begc, bounds_proc%endc - + if (col%snl(c) < 0) then - + water_inst%waterstatebulk_inst%h2osno_col(c) = 0._r8 - + do j = col%snl(c)+1, 0 - + water_inst%waterstatebulk_inst%h2osno_col(c) = & - + water_inst%waterstatebulk_inst%h2osno_col(c) + & - + water_inst%waterstatebulk_inst%h2osoi_ice_col(c,j) + & - + water_inst%waterstatebulk_inst%h2osoi_liq_col(c,j) - + end do - + end if - + end do - + - end subroutine initialize2 - end module clm_initializeMod - - - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: n/a - - URL for LMWG diagnostics output used to validate new climate: n/a - +Changes answers relative to baseline: No bit-for-bit -Detailed list of changes ------------------------- +Other details +------------- +[Remove any lines that don't apply. Remove entire section if nothing applies.] -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cism, cime, cmeps, cdeps + cism to cismwrap_2_1_87 + cime to cime6.0.4 + cmeps to cmeps0.13.23 + cdeps to cdeps0.12.19 -Pull Requests that document the changes (include PR ids): none +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + #1444 -- Wrapper script for batch running NEON sites, and NEON fixes =============================================================== =============================================================== -Tag name: ctsm1.0.dev045 -Originator(s): sacks (Bill Sacks) -Date: Thu Jun 6 12:26:57 MDT 2019 -One-line Summary: Recalculate h2osno for the sake of SnowCapping +Tag name: ctsm5.1.dev051 +Originator(s): Stefanie Falk, Sunniva Indrehus, Bill Sacks +Date: Fri Aug 6 10:30:32 MDT 2021 +One-line Summary: New LUNA-specific ozone stress option -Purpose of changes ------------------- - -SnowCapping decides whether to remove excess snow based on -h2osno. However, at the point where this is called,h2osno is out of sync -with (h2osoi_liq + h2osoi_ice): Those variables can be changed slightly -in SnowWater (which is called before SnowCapping), yet h2osno isn't -recalculated based on those changes. - -I don't think this causes a big problem in practice, but it seems like -it would improve code understandability if we had the general rule that -any code that references h2osno is using a version of h2osno that is in -sync with (h2osoi_liq + h2osoi_ice). This is also needed to prevent -answer changes in an upcoming major refactor. +Purpose and description of changes +---------------------------------- -Bugs fixed or introduced ------------------------- - -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#736 +Add a new ozone stress option that modifies jmax; this stress option is +specific to LUNA. See https://github.com/ESCOMP/CTSM/issues/1224 for a +detailed description. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -5008,251 +8848,288 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): none +Bugs fixed or introduced +------------------------ -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1224 (Add new feature: Ozone impact on Jmax in + LUNA (OzoneLUNA)) -Changes made to namelist defaults (e.g., changed parameter values): none +Known bugs introduced in this tag (include issue #): +- https://github.com/ESCOMP/CTSM/issues/1381 (Distinction between sunlit + vs. shaded leaves in Luna (e.g., for ozone stress)) -Changes to the datasets (e.g., parameter, surface or initial files): none +Notes of particular relevance for users +--------------------------------------- -Substantial timing or memory changes: none +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- use_ozone logical replaced by o3_veg_stress_method string -Notes of particular relevance for developers: (including Code reviews and testing) +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 -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Changes to tests or testing: +- Ozone tests reworked so that one covers this new option -Changes to tests or testing: none +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Code reviewed by: Sean Swenson signed off on the change, but didn't -review the final code + cheyenne ---- ok + izumi ------- ok + any other testing (give details below): + - Ran ERP_D_Ld5_P72x2.f10_f10_mg37.I2000Clm50BgcCrop.cheyenne_intel.clm-o3falk (passes) + - Ran the two old ozone tests that have been replaced; these passed + and were bit-for-bit (other than fieldlist diffs due to new ozone + diagnostic fields added in this tag) + +If the tag used for baseline comparisons was NOT the previous tag, note that here: -CTSM testing: - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Answer changes +-------------- - build-namelist tests: +Changes answers relative to baseline: YES, just roundoff-level for pgi - cheyenne - not run + Summarize any changes to answers, i.e., + - what code configurations: anything with LUNA + - what platforms/compilers: pgi + - nature of change (roundoff; larger than roundoff/same climate; new climate): + roundoff - tools-tests (test/tools): + If bitwise differences were observed, how did you show they were no worse + than roundoff? - cheyenne - not run + I verified that the answer changes just arise due to an extra + multiplication by 1 in LUNA, which must change order of operations + for pgi. (I compared with this one-off from master and was + bit-for-bit: + https://github.com/billsacks/ctsm/commit/011c79fc361a98c04a42824b74ca81209262da7c) - PTCLM testing (tools/shared/PTCLM/test): +Other details +------------- - cheyenne - not run +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1232 +https://github.com/ESCOMP/CTSM/pull/1370 - python testing (see instructions in python/README.md; document testing done): +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev050 +Originator(s): sacks (Bill Sacks) +Date: Mon Aug 2 17:17:10 MDT 2021 +One-line Summary: Improve and document method for getting diagnostics on a problem point - (any machine) - not run +Purpose and description of changes +---------------------------------- - regular tests (aux_clm): +Following from the changes in ctsm5.1.dev047 to change the lower bounds +to 1 on all processors: The one downside of that change was that it made +it a bit harder to write diagnostics on a given point. This PR cleans up +the method for writing these diagnostics and adds relevant +documentation. - cheyenne ---- ok - hobart ------ ok +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - ok means tests pass, answers change as expected +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.) -If the tag used for baseline comparisons was NOT the previous tag, note that here: + [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 -Answer changes --------------- +[ ] clm5_0 -Changes answers relative to baseline: YES +[ ] ctsm5_0-nwp - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +[ ] clm4_5 - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Larger than roundoff/same climate - Answer changes are expected to be small, since this should just - change the timing of snow capping a bit, but I haven't looked - closely at the magnitude of the answer changes. +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#164 (BalanceCheck: Calls get_proc_bounds from + threaded region) +- Resolves ESCOMP/CTSM#1424 (Change all the endrun calls to write out + the point context information) +Testing summary: +---------------- - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A + cheyenne ---- ok + izumi ------- ok - URL for LMWG diagnostics output used to validate new climate: N/A - +Answer changes +-------------- -Detailed list of changes ------------------------- +Changes answers relative to baseline: NO -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cdeps: cdeps0.12.14 -> cdeps0.12.17 -Pull Requests that document the changes (include PR ids): none +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/issues/1424 =============================================================== =============================================================== -Tag name: ctsm1.0.dev044 -Originator(s): sacks (Bill Sacks) -Date: Thu Jun 6 12:14:39 MDT 2019 -One-line Summary: Make wetland snow resetting behavior more explicit - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev049 +Originator(s): jedwards4b/erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Mon Jul 26 01:31:04 MDT 2021 +One-line Summary: Update externals, NEON updates, fix stop_option=date, move neon niwo test to match user_mods, local time option -There is some code that zeroes out h2osno over thawed wetlands. It seems -like the intended behavior here is to zero out the entire snow -pack. Currently, however, this only zeros out a very thin (zero-layer) -snow pack. For now, I'm adding an snl==0 conditional to make this -behavior explicit; long-term, we'd like to change this to actually zero -out the whole snow pack. (At that time, this code block should probably -be moved to a more appropriate home, as noted in comments in issue -ESCOMP/ctsm#735.) +Purpose and description of changes +---------------------------------- -Also, unrelated change in run_sys_tests: support machine-specific -baseline directory, in order to support new default location for CTSM -baselines on cheyenne. - -Bugs fixed or introduced ------------------------- +Move the NEON_NIWO test to NEON/NIWO to match the names in usermods. Output particular fields for the NEON +cases, and use a reduced size dataset for lightning for NEON sites. Update NEON surface datasets with +new scripts included here. Fix stop option for NUOPC. NEON NIWO test in testlist explicity uses the user-mod +as well as the defaults testmod. -Issues fixed (include CTSM Issue #): -- Partially addresses, but does NOT fix, ESCOMP/ctsm#735 +This script is for modifying the surface dataset at neon sites using data available from the neon server. -Known bugs introduced in this tag (include github issue ID): -- Partially addresses, but does NOT fix, ESCOMP/ctsm#735 +Also add the ability to output history fields for a particular time of day (in seconds) with the LXXXXX +history averaging option from Ronny Meier. +Externals are updated extensively to the version with cpl7 cime directories split out for CESM. Significant changes to scientifically-supported configurations -------------------------------------------------------------- -Does this tag change answers significantly for any of the following physics configurations? +Does this tag change answers significantly for any of the following physics configurations? No (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.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none - -Changes made to namelist defaults (e.g., changed parameter values): none -Changes to the datasets (e.g., parameter, surface or initial files): none +Bugs fixed or introduced +------------------------ -Substantial timing or memory changes: none +Issues fixed (include CTSM Issue #): #1412 + Fixes #1412 -- Reduce data requirements for NEON single point sites + Fixes #1353 -- Need script to modify NEON surface datasets -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide +CIME Issues fixed (include issue #): #3915 + Fixes cime/#3915 -- CESM nuopc build fails on izumi_nag -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Known bugs introduced in this tag (include issue #): + #1437 -- modify_singlept_site_neon.py seems to have trouble finding latest file and creates hidden file for output + #1436 -- Need subset_data.py script to be able to run from any directory -Changes to tests or testing: none +Known bugs found since the previous tag (include issue #): + #1429 -- Modified NEON surface datasets have errors -Code reviewed by: Sean Swenson and Keith Oleson approved this change, -though didn't actually review the final code. +Notes of particular relevance for users +--------------------------------------- -CTSM testing: +Caveats for users (e.g., need to interpolate initial conditions): + NEON cases now download data to $RUNDIR - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Changes to the datasets (e.g., parameter, surface or initial files): NEON sufdata - build-namelist tests: +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.] - cheyenne - not run +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + Note when you have a test with two testmod directories it won't be able to reduce any deuplication + that happens in directories used between the two. - tools-tests (test/tools): +Changes to tests or testing: + Test mods in testlists can now include multiple test mod directories and this is used for the NEON test - cheyenne - not run - PTCLM testing (tools/shared/PTCLM/test): +Testing summary: regular +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - cheyenne - not run + build-namelist tests (if CLMBuildNamelist.pm has changed): - python testing (see instructions in python/README.md; document testing done): + cheyenne - PASS (47 tests differ from before because of NEON surface dataset update) - (any machine) - pass on cgdm-bishorn - make python=python2 test - make pyhton=python3 test - make lint + tools-tests (test/tools) (if tools have been changed): - regular tests (aux_clm): + cheyenne - OK - cheyenne ---- pass - hobart ------ pass + python testing (if python code has changed; see instructions in python/README.md; document testing done): - Also ran SMS_Ly1.f09_g17.I2000Clm50SpGs.cheyenne_intel.clm-monthly - with comparison against baselines: passed and bit-for-bit. + cheyenne - PASS -If the tag used for baseline comparisons was NOT the previous tag, note that here: + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + cheyenne ---- OK + izumi ------- OK Answer changes -------------- -Changes answers relative to baseline: NO (but see notes below) +Changes answers relative to baseline: No bit-for-bit - It seems theoretically possible for this to change answers, but no - answer changes were observed in the aux_clm test suite or - SMS_Ly1.f09_g17.I2000Clm50SpGs.cheyenne_intel.clm-monthly. +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cism, mosart, rtm, cime, cmeps, cdeps (cime split) + cism to cismwrap_2_1_85 + mosart to mosart1_0_43 + rtm to rtm1_0_77 + cime to cime6.0.3 + cmeps to cmeps0.13.15 + cdeps to cdeps0.12.14 -Detailed list of changes ------------------------- + New cime-split externals: -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + cpl7.0.3 + share1.0.2 + MCT_2.11.0 + pio2_5_4 -Pull Requests that document the changes (include PR ids): none +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + + #1411 -- fix stop_option=date, move neon niwo test to match user_mods + #1375 -- Script for modifying neon surface dataset + #1374 -- Local solar time option for average flag =============================================================== =============================================================== -Tag name: ctsm1.0.dev043 -Originator(s): erik (Erik Kluzek) -Date: Wed Jun 5 10:17:06 MDT 2019 -One-line Summary: Fix FUN bug (frac_ideal_C_use was backwards in regard to delta_CN), and replace Ball-Berry mbbopt with the CLM4.5 version - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev048 +Originator(s): slevis (Samuel Levis,SLevis Consulting,303-665-1310) +Date: Sat Jul 10 11:39:55 MDT 2021 +One-line Summary: Make certain history fields descriptive inst. of labeling by number -Carbon allocation to uptake responds to CN(uptake-cost) and CN(actual). The intended implementation is: For C:N -less than the target C:N, C allocation is reduced with cost. For C:N greater than the target C:N, C allocation -is increased with high C:N. However, the actual implementation is reversed. This change fixes that problem. +Purpose and description of changes +---------------------------------- -Also the Ball-Berry mbbopt values had been changed in the creation of CLM5.0, as part of the tuning, but the new -values don't work well (as our final tuning uses Medlyn photosynshesis rather than Ball-Berry). This brings the values -for Ball-Berry for CLM5.0 back to the CLM4.5 values. - -Bugs fixed or introduced ------------------------- + I used existing infrastructure to add descriptive strings to certain history + fields that I had labeled by number in #1340. While doing this, I applied the + change to a bunch of other history fields that needed it. -Issues fixed (include CTSM Issue #): #704 #705 + Some variable names for pools was also changed to use terms consistent with the new + names as well. - Fixes #705 -- Ball-Berry parameters in CLM5.0 should go back to the previous values in CLM4.5 - Fixes #704 -- FUN code logic to reduce or increase carbon allocation used for uptake is reversed Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -5262,244 +9139,314 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[X] clm5_0 - -[X] ctsm5_0-nwp - -[ ] clm4_5 - -Notes of particular relevance for users ---------------------------------------- +[ ] clm5_1 -Caveats for users (e.g., need to interpolate initial conditions): None +[ ] clm5_0 -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None +[ ] ctsm5_0-nwp -Changes made to namelist defaults (e.g., changed parameter values): New clm5.0 paramdata file +[ ] clm4_5 -Changes to the datasets (e.g., parameter, surface or initial files): mbbopt now use the clm4_5 values - rather than the pretuned clm5_0 values (before Medlyn was being used) -Substantial timing or memory changes: None +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): #1392 + #1392 -- Some soil decomposition history fields have the pool number rather than a description in their name -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Caveats for developers (e.g., code that is duplicated that requires double maintenance): None +Notes of particular relevance for users +--------------------------------------- +Caveats for users (e.g., need to interpolate initial conditions): + The names of certain history fields have changed to be more descriptive + in place of using numbers to differentiate them. -Changes to tests or testing: None + history field name change as follows... + LITR1 becomes MET_LIT (metabolic) + LITR2 becomes CEL_LIT (cellulosic) + LITR3 becomes LIG_LIT (lignin) + SOIL1 becomes ACT_SOM (active) + SOIL2 becomes SLO_SOM (slow) + SOIL3 becomes PAS_SOM (passive) -Code reviewed by: self, olyson +Testing summary: +---------------- + build-namelist tests (if CLMBuildNamelist.pm has changed): -CTSM testing: regular + cheyenne - PASS - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + python testing (if python code has changed; see instructions in python/README.md; document testing done): - build-namelist tests: + cheyenne - PASS - cheyenne - PASS (134 tests are different from baseline as expected) + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - regular tests (aux_clm): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): cheyenne ---- OK - hobart ------ OK - -If the tag used for baseline comparisons was NOT the previous tag, note that here: + izumi ------- OK Answer changes -------------- +Changes answers relative to baseline: NO bit-for-bit -Changes answers relative to baseline: Yes! - Summarize any changes to answers, i.e., - - what code configurations: Anything with use_FUN=T (so Clm50Bgc compsets) - Also with Clm5.0 and Ball-Berry (stomatalcond_method='Ball-Berry1987') (so Clm50Nwp compsets) - - what platforms/compilers: All - - nature of change: climate is similar +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/1413 - "Our assessment is that the impact is relatively small, but would affect climate; - however it doesn’t appear to strongly affect transient C response." +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev047 +Originator(s): mvertens (Mariana Vertenstein) +Date: Thu Jul 8 12:03:31 MDT 2021 +One-line Summary: Start bounds at 1; remove references to MCT - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - Experiments were done on the release branch - - casename: oleson/clm50_release-clm5.0.15_delta_CN_FUNbug_2deg_GSWP3V1_1850 - oleson/clm50_release-clm5.0.15_delta_CN_FUNbug_2deg_GSWP3V1_hist +Purpose and description of changes +---------------------------------- - URL for LMWG diagnostics output used to validate new climate: +Users: take note of (1), and in particular the caveat for users noted +below (in the "Notes of particular relevance for users"). -http://webext.cgd.ucar.edu/I1850/clm50_release-clm5.0.15_delta_CN_FUNbug_2deg_GSWP3V1_1850/lnd/clm50_release-clm5.0.15_delta_CN_FUNbug_2deg_GSWP3V1_1850.21_40-clm50_release-clm5.0.15_2deg_GSWP3V1_1850.21_40/setsIndex.html +(1) All global index arrays on a given processor now have a starting index of 1 + - bounds_proc for each subgrid level has a starting index of 1 for each level + - bounds_clump for each subgrid level has a starting index of 1 for just + the first clump on the processor - but all the other clumps on the + processor do not start at 1 - but rather are offset with the number of + gridcells, columns, ...etc on the preceeding clumps -We've also completed a historical run. Diagnostics are here: +(2) There are no longer any references to any mct data structures other than in the mct cap + - All references to gsmap have been removed from decompMod.F90 and + replaced with new global index arrays for the various subgrid levels + - decompInitMod has been refactored to calculated these global index + arrays using pure MPI rather than mct + - ncdio_pio_F90.in has been refactored to use the new global index + arrays rather than the gsmap data structures + - the data struture ldecomp is no longer needed + - the module spmdGathScatMod.F90 is no longer needed and has been removed -http://webext.cgd.ucar.edu/I20TR/clm50_release-clm5.0.15_delta_CN_FUNbug_2deg_GSWP3V1_hist/lnd/clm50_release-clm5.0.15_delta_CN_FUNbug_2deg_GSWP3V1_hist.1995_2014-clm50_release-clm5.0.15_2deg_GSWP3V1_hist.1995_2014/setsIndex.html +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- -Detailed list of changes ------------------------- +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.) -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + [Put an [X] in the box for any configuration with significant answer changes.] -Pull Requests that document the changes (include PR ids): #727 -(https://github.com/ESCOMP/ctsm/pull) +[ ] clm5_1 - #727 -- Fix the FUN bug, where an if statement was backwards +[ ] clm5_0 -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev042 -Originator(s): slevis (Samuel Levis,SLevis Consulting LLC,303-665-1310) -Date: Tue May 21 23:29:31 MDT 2019 -One-line Summary: Rename, correct, and simplify parameters dewmx and sno_stor_max +[ ] ctsm5_0-nwp -Purpose of changes ------------------- +[ ] clm4_5 - To rename - dewmx to liq_canopy_storage_scalar - sno_stor_max to sno_canopy_storage_scalar - in the code and in the clm45 and clm50 param files. - To change snocanmx, liqcanmx, and fcansno to... - snocanmx = params_inst%snow_canopy_storage_scalar(p) * (elai(p) + esai(p)) - liqcanmx = params_inst%liq_canopy_storage_scalar(p) * (elai(p) + esai(p)) - fcansno(p) = (snocan(p) / (vegt * params_inst%sno_stor_max))**0.15_r8 +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): +- Addresses the first part of ESCOMP/CTSM#293 (Rework threading to be + done at a higher level, simplifying array argument passing) - Rewrote fwet(p) to follow the same format as fcansno(p). +Notes of particular relevance for users +--------------------------------------- +Caveats for users (e.g., need to interpolate initial conditions): +- Until now, if the model produced an error message with a gridcell or + subgrid index (e.g., "Error at p = 1234"), you could rerun the model + with write statements in conditionals like "if (p == 1234) then". With + the changes in this tag, this simple conditional is no longer + possible. Instead, you will need to also reference the processor + number that produces the error. + + If the error message is produced in the lnd log file, then you can + have a conditional like: + if (masterproc .and. p == 1234) then + + If the error message is produced in the cesm log file, then you can + have a conditional like: + if (iam == X .and. p == 1234) then + + where X is the processor number that produced the message. On some + machines (including cheyenne), this processor number is printed at the + start of each line in the cesm log file. In addition, some aborts will + now print "proc_id = X", and that value can be used. + + Soon we will update + https://escomp.github.io/ctsm-docs/versions/master/html/users_guide/trouble-shooting/trouble-shooting.html + to document the new recommended procedure. + +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + cheyenne ---- ok + izumi ------- ok -Bugs fixed or introduced ------------------------- +Answer changes +-------------- -Issues fixed (include CTSM Issue #): #710 - Fixes #710 -- rename dewmx +Changes answers relative to baseline: NO +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1420 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev046 +Originator(s): rgknox (Ryan Knox,,,) +Date: Fri Jul 2 14:36:44 MDT 2021 +One-line Summary: Updating external fates has to tag sci.1.46.2_api.16.1.0. FATES side changes expand the FATES parameter file to include new fields (unused at present). This also includes sci.1.46.1_api.16.0.0 which contained a sublte bug-fix on how FATES passes fragmentation fluxes (correcting seed decay fragmentation). + +Purpose and description of changes +---------------------------------- + + This change brings the fates external up to sci.1.46.2_api.16.1.0. FATES side changes expand + the FATES parameter file to include new fields. + + New and UNUSED parameters include: + fates_hydr_htftype_node + fates_prt_organ_id + fates_hydr_organname_node + fates_litterclass_name + fates_allom_zroot_k + fates_allom_zroot_max_dbh + fates_allom_zroot_max_z + fates_allom_zroot_min_dbh + fates_allom_zroot_min_z + fates_hydr_k_lwp + fates_hydr_vg_alpha_node + fates_hydr_vg_m_node + fates_hydr_vg_n_node + fates_hlm_pft_map + fates_maintresp_model + fates_photo_temp_acclim_timescale + fates_photo_tempsens_model + fates_vai_top_bin_width + fates_vai_width_increase_factor + + New parameters that now over-ride previously hard-coded parameters: + fates_theta_cj_c3 + fates_theta_cj_c4 + + + New parameters that are unset for developer convenience: + fates_dev_arbitrary_pft + fates_dev_arbitrary Significant changes to scientifically-supported configurations -------------------------------------------------------------- -Does this tag change answers significantly for any of the following physics configurations? +Does this tag change answers significantly for any of the following physics configurations? No (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.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): None +Bugs fixed or introduced +------------------------ -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None +Issues fixed (include CTSM Issue #): + Fixes #1383 -- changes shebang lines to python3 -Changes made to namelist defaults (e.g., changed parameter values): New default parameter file + fates issue: https://github.com/NGEET/fates/issues/753 -Changes to the datasets (e.g., parameter, surface or initial files): - Pointing to new clm45 and clm50 param files containing the two renamed - parameters listed above. +Notes of particular relevance for users +--------------------------------------- -Substantial timing or memory changes: None + The FATES parameter file now contains new fields. Users must update their personal parameter + files to contain these new fields. See src/fates/parameter_files/fates_params_default.cdl -Notes of particular relevance for developers: (including Code reviews and testing) +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 -Caveats for developers (e.g., code that is duplicated that requires double maintenance): None +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + + Developers should also be aware of the new fates parameter file format. Changes to tests or testing: None -Code reviewed by: - @billsacks +Testing summary: regular +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -CTSM testing: regular + build-namelist tests (if CLMBuildNamelist.pm has changed): - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + cheyenne - PASS (60 compare tests differ to previous tag) - build-namelist tests: + python testing (if python code has changed; see instructions in python/README.md; document testing done): - cheyenne - PASS (196 different because of new param file) + cheyenne - PASS - regular tests (aux_clm): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + fates tests: cheyenne ---- OK - hobart ------ OK - Roundoff changes were expected. + + any other testing (give details below): If the tag used for baseline comparisons was NOT the previous tag, note that here: + Original testing was done compared to ctsm5.1.dev044, but testing is being rerun now Answer changes -------------- -Changes answers relative to baseline: Yes! +Changes answers relative to baseline: Just for FATES Summarize any changes to answers, i.e., - - what code configurations: ALL - - what platforms/compilers: ALL - - nature of change: roundoff - - If bitwise differences were observed, how did you show they were no worse - than roundoff? - The code modifications causing the change were of the order-of-calculations - type in two lines of code. + - what code configurations: Just when running FATES + - what platforms/compilers: All + - nature of change: minor changes related to a bug-fix -Detailed list of changes ------------------------- +Other details +------------- -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): FATES + fates to sci.1.46.2_api.16.1.0 Pull Requests that document the changes (include PR ids): - https://github.com/ESCOMP/ctsm/pull/719 +(https://github.com/ESCOMP/ctsm/pull) + + #1414 -- Fates api16.1 (parameter file updates) =============================================================== =============================================================== -Tag name: ctsm1.0.dev041 -Originator(s): sacks (Bill Sacks) -Date: Fri May 17 06:02:38 MDT 2019 -One-line Summary: Add water tracers to CanopyHydrologyMod - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev045 +Originator(s): slevis (Samuel Levis,SLevis Consulting,303-665-1310) +Date: Tue Jun 29 20:05:21 MDT 2021 +One-line Summary: Include CWD in heterotrophic respiration (HR) -Major overhaul of CanopyHydrologyMod in order to support water tracers. +Purpose and description of changes +---------------------------------- -The part of CanopyHydrology that was actually dealing with canopy -hydrology has now been broken out into a number of small routines in -order to separate flux calculations from state updates. This is needed -in order to calculate tracer versions of the relevant variables, which -is now done here. - -The parts of CanopyHydrology that were NOT dealing with canopy hydrology -have been moved to more appropriate homes. They have not yet been -tracerized, but will be soon. - -This also makes some minor changes to diagnostic fields related to -canopy hydrology. Of particular note: QDRIP now has a different meaning: -it now corresponds to the excess liquid water that runs off from the -canopy (and is inactive by default). - -The design of this broken-out code was developed in consultation with -Mike Barlage, Erik Kluzek, Negin Sobhani, Sean Swenson and Mariana -Vertenstein. We plan to apply this design moving forward to other parts -of the code that need tracerization. See also -. - -Bugs fixed or introduced ------------------------- - -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#360 - Implement water isotopes for - CanopyHydrology -- Resolves ESCOMP/ctsm#709 - QDRIP diagnostic field misleadingly named -- Partially addresses ESCOMP/ctsm#503 - Clean up CanopyHydrology - (We still need to clean up / tracerize the parts that have now been - moved elsewhere.) + Params file sets the respiration fractions for CWD to zero: + rf_cwdl2_bgc = 0 + rf_cwdl3_bgc = 0 + The model has no code to handle rf_cwd* > 0. So... + - I have introduced cwdhr_col to track this HR the same way that we track + lithr_col for litter. + - I have removed if-statements that prevented CWD HR pools and decomposition + from writing to history. + - I have introduced a new test to the cheyenne test-suite that makes active + seven history fields pertaining to CWD HR and points to a params file with + rf_cwd* > 0. I have confirmed that the new test returns the new active + variables as greater than 0 when pointing to the new params file and equal + to 0 when pointing to the default params file. Significant changes to scientifically-supported configurations @@ -5510,176 +9457,75 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): -- Changed meaning of QDRIP diagnostic field: it now corresponds to - qflx_liqcanfall rather than qflx_prec_grnd_patch, and is default - inactive. (There is no longer a diagnostic field corresponding to - qflx_prec_grnd_patch, but there are separate diagnostic fields for the - rain and snow portions of this, both default inactive.) - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none -Changes made to namelist defaults (e.g., changed parameter values): none +Bugs fixed or introduced +------------------------ -Changes to the datasets (e.g., parameter, surface or initial files): none -Substantial timing or memory changes: none -- checked timing of hydro1 timer vs. previous canhydro timer from my - dev039 testing: differences are negligible +Notes of particular relevance for users +--------------------------------------- -Notes of particular relevance for developers: (including Code reviews and testing) +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 - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - -Changes to tests or testing: none - -Code reviewed by: -- Design reviewed by Mike Barlage, Erik Kluzek, Negin Sobhani, Sean - Swenson and Mariana Vertenstein -- Final code reviewed only by self - -CTSM testing: - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: - - cheyenne - not run - tools-tests (test/tools): +Testing summary: +---------------- - cheyenne - not run + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - PTCLM testing (tools/shared/PTCLM/test): + build-namelist tests (if CLMBuildNamelist.pm has changed): - cheyenne - not run + cheyenne - OK (2 tests fail compare because of fix in #1417) - regular tests (aux_clm): + python testing (if python code has changed; see instructions in python/README.md; document testing done): - cheyenne ---- ok - hobart ------ ok + cheyenne - PASS - ok means tests pass, baseline comparisons fail as expected + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -If the tag used for baseline comparisons was NOT the previous tag, note that here: + cheyenne ---- OK + izumi ------- OK Answer changes -------------- +Changes answers relative to baseline: No -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): - - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - roundoff - - If bitwise differences were observed, how did you show they were no worse - than roundoff? - - Ensured no-greater-than-roundoff-level by: - - First, generated baselines using code with these diffs (note extra - parentheses in multiplication): - - diff --git a/src/biogeophys/CanopyHydrologyMod.F90 b/src/biogeophys/CanopyHydrologyMod.F90 - index f848f520..31c8c550 100644 - --- a/src/biogeophys/CanopyHydrologyMod.F90 - +++ b/src/biogeophys/CanopyHydrologyMod.F90 - @@ -338,8 +338,8 @@ subroutine CanopyHydrology(bounds, & - ! Intercepted precipitation [mm/s] - qflx_prec_intr(p) = forc_snow(c)*fpisnow + qflx_liq_above_canopy(p)*fpi - ! storage of intercepted snowfall, rain, and dew - - snocan(p) = max(0._r8, snocan(p) + dtime*forc_snow(c)*fpisnow) - - liqcan(p) = max(0._r8, liqcan(p) + dtime*qflx_liq_above_canopy(p)*fpi) - + snocan(p) = max(0._r8, snocan(p) + dtime*(forc_snow(c)*fpisnow)) - + liqcan(p) = max(0._r8, liqcan(p) + dtime*(qflx_liq_above_canopy(p)*fpi)) - - ! Initialize rate of canopy runoff and snow falling off canopy - qflx_snocanfall(p) = 0._r8 - - - Then ran test suite on 1cc9d38a. This is very close to the final - branch, but had a few small tweaks in place to get bit-for-bit: - - 1. Under some conditions, the final branch code resets slightly - negative snocan and liqcan to 0, where master did not. This - commit puts in place temporary code to maintain the slightly - negative values under these conditions, along with a check to - ensure that the values are really always only slightly negative - in this situation. - - 2. When snocan > snocanmx, master reset snocan to exactly snocanmx, - whereas the final branch code can result in snocan being - roundoff-level different from snocanmx, and similar for - liqcan. This commit puts in place temporary code to set snocan - to snocanmx under appropriate circumstances, and liqcan to - liqcanmx, along with a check to ensure that this is only leading - to roundoff-level changes in these state variables. - - 3. Multiplies then divides a flux by dtime in one place - - 4. Has parentheses around a partial sum to ensure same order of - operations as before - - This was bfb with the baselines generated with the diff noted - above, except for roundoff-level changes in SNOCAN in one grid cell - in just one test - (SMS_D_Ld1.f19_g17.I1850Clm45Cn.hobart_gnu.clm-default; old: - -8.15e-322, new: -2e-323). - - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A - - URL for LMWG diagnostics output used to validate new climate: N/A - - -Detailed list of changes ------------------------- - -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Other details +------------- Pull Requests that document the changes (include PR ids): -None. But see -https://github.com/billsacks/prototypes-ctsm-canopyhydrology_tracers, -which was the source of our design discussions and contains notes from -these discussions. + https://github.com/ESCOMP/CTSM/pull/1414 =============================================================== =============================================================== -Tag name: ctsm1.0.dev040 -Originator(s): slevis (Samuel Levis,SLevis Consulting LLC,303-665-1310) -Date: Fri May 03 10:34:46 MDT 2019 -One-line Summary: Move some hard-coded parameters from code to params.nc file - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev044 +Originator(s): mvertens (Mariana Vertenstein) +Date: Thu Jun 24 15:59:08 MDT 2021 +One-line Summary: New stream functionality when using NUOPC or LILAC - Reduce the number of parameters that get hardwired directly in the code - by placing in the params.nc file where they become visible and easier - to modify. +Purpose and description of changes +---------------------------------- +This tag creates new stream functionality when using the NUOPC and LILAC +caps, and maintains backwards compatibility with the older CPL7 stream +functionality when using the MCT cap. -Bugs fixed or introduced ------------------------- +- New stream code has been placed in src/cpl/share_esmf (so that they + can also be leveraged by LILAC) +- Older stream code for mct is now in src/cpl/mct +- LILAC interface has been changed to leverage the new stream code as well -Issues fixed (include CTSM Issue #): #680 +Where possible share code was used. In particular, this holds for SatellitePhenologyMod.F90. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -5689,313 +9535,276 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 [ ] ctsm5_0-nwp [ ] clm4_5 + Notes of particular relevance for users --------------------------------------- -Caveats for users: - None - -Changes to CTSM's user interface: - Parameters that were hardwired in the code can now be seen and changed - in the params.nc file. - -Changes made to namelist defaults (e.g., changed parameter values): - None - -Changes to the datasets (e.g., parameter, surface or initial files): - Various parameters have moved out of the code and into the params.nc file. - -Substantial timing or memory changes: [For timing changes, can check PFS test(s) in the test suite] - -Notes of particular relevance for developers: - None ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): - None - -Changes to tests or testing: - None - -Code reviewed by: - @ekluzek - @billsacks - -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: - - cheyenne - - - tools-tests (test/tools): - - cheyenne - +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- New mesh stream entries are needed now for NUOPC and LILAC compsets - PTCLM testing (tools/shared/PTCLM/test): +Substantial timing or memory changes: None for mct. For +ERS_Ly3_P72x2_Vnuopc.f10_f10_mg37.IHistClm50BgcCropG.cheyenne_intel.clm-cropMonthOutput, +overall run time is slightly less than the baseline - probably within +machine variability. A more careful investigation would be needed to +determine if the CDEPS streams have changed performance significantly +relative to the MCT-based streams, but the overall timing suggests that +there probably aren't *large* differences. - cheyenne - +Testing summary: +---------------- - regular tests (aux_clm): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - cheyenne ---- OK - hobart ------ OK - Answers change as expected. + cheyenne ---- ok + izumi ------- ok -CTSM tag used for the baseline comparisons: - ctsm1.0.dev039 + Ran most testing on eb696be8d; from this hash, there were FIELDLIST + diffs for SP cases. Reran the tests with FIELDLIST diffs from the + final version and generated new, fixed baselines. Answer changes -------------- -Changes answers relative to baseline: YES +Changes answers relative to baseline: YES, just for NUOPC/LILAC configurations + Summarize any changes to answers, i.e., - - what code configurations: ALL - - what platforms/compilers: ALL - - nature of change: single-precision roundoff - Changes are due to four parameters: - accum_factor - ko25_coef - kc25_coef - frac_sat_soil_dsl_init - that were not declared "_r8" when hardwired in the code, - while now they are declared "double" in the params.nc files. I - showed that the change was no greater than single-precision roundoff - by writing the new and old values to the lnd and cesm log files and - confirming differences smaller than 1.e-6. + - what code configurations: NUOPC/LILAC + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff / same climate. Diffs arise due to changes in + the interpolation used in cdeps streams vs. the old mct-based + streams. Diffs generally keep 3-4 digits of equivalence or better. -Detailed list of changes ------------------------- +Other details +------------- - - Updated the clm5 and clm4.5 params.nc files to contain the previously - hard-coded parameters that Katie Dagon recommended moving out of the - code (listed here: https://docs.google.com/spreadsheets/d/1cRmcB0xz7CjVP6ljUoCehJx49Usxsore5ma4mWcvQwM/edit#gid=0) - - Now read the parameters in the modules that use them +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: cime5.8.47 -> branch_tags/cime5.8.47_a01 +- cdeps: cdeps0.12.4 -> cdeps0.12.11 Pull Requests that document the changes (include PR ids): - https://github.com/ESCOMP/ctsm/pull/684 +https://github.com/escomp/ctsm/issues/1356 =============================================================== =============================================================== -Tag name: ctsm1.0.dev039 -Originator(s): sacks (Bill Sacks) -Date: Wed May 1 11:12:34 MDT 2019 -One-line Summary: Remove excess canopy liquid/snow regardless of temperature - -Purpose of changes ------------------- - -Previously: if it was above freezing, snow was allowed to accumulate on -the canopy beyond the specified capacity, and if it was below freezing, -liquid was allowed to accumulate beyond the specified capacity. Sean -Swenson, Keith Oleson and Dave Lawrence agreed that this seems wrong. - -This tag changes the behavior so that both liquid and snow canopy -capacities are enforced regardless of temperature. +Tag name: ctsm5.1.dev043 +Originator(s): slevis/ekluzek (Samuel Levis,SLevis Consulting,303-665-1310) +Date: Thu Jun 3 17:14:30 MDT 2021 +One-line Summary: Refactor in preparation for MIMICS +Purpose and description of changes +---------------------------------- -Bugs fixed or introduced ------------------------- - -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#699 (Canopy liquid and snow capacities not - enforced consistently?) + Refactor aspects of the CTSM in preparation for our introduction of + MIMICS, which has started in #1318 . Significant changes to scientifically-supported configurations -------------------------------------------------------------- -Does this tag change answers significantly for any of the following physics configurations? +Does this tag change answers significantly for any of the following physics configurations? NO (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_0 +[ ] clm5_1 -[X] ctsm5_0-nwp +[ ] clm5_0 -[X] clm4_5 +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ +Known bugs introduced in this tag (include issue #): #1356, #1392 + #1356 -- CN is no longer just deprecated it breaks when you try to use it + #1392 -- Some soil decomposition history fields have the pool number rather than a descr. Notes of particular relevance for users --------------------------------------- +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + Moved initial_Cstocks_depth_bgc and initial_Cstocks_bgc from the + namelist to the params file. Also renamed tau_cwd to tau_cwd_bgc and + k_frag to k_frag_cn in the params file according to the models that use + these parameters. -Caveats for users (e.g., need to interpolate initial conditions): none +Changes made to namelist defaults (e.g., changed parameter values): + initial_Cstocks_depth_bgc and initial_Cstocks_bgc are not namelist + variables anymore. -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Changes to the datasets (e.g., parameter, surface or initial files): + There are new params files for clm45, clm50, and ctsm51. -Changes made to namelist defaults (e.g., changed parameter values): none +Substantial timing or memory changes: + FAIL PFS_Ld20.f09_g17.I2000Clm50BgcCrop.cheyenne_intel MEMCOMP Error: Memory usage increase > 10% from baseline + Throughput doesn't seem to change. There might be an increase in memory as it's indicated for 20 tests. + And some arrays were changed to add an extra dimension. -Changes to the datasets (e.g., parameter, surface or initial files): none +Testing summary: +---------------- -Substantial timing or memory changes: none + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + build-namelist tests (if CLMBuildNamelist.pm has changed): -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + cheyenne - PASS (785 tests are different because of new params files and removed namelist items) -Changes to tests or testing: none + python testing (if python code has changed; see instructions in python/README.md; document testing done): -Code reviewed by: Keith Oleson + cheyenne - PASS + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -CTSM testing: + cheyenne ---- OK (read above in "bugs introduced" about CN failures) + izumi ------- OK (read below in "other testing" about pgi failures) - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + any other testing (give details below): + Two unexpected tests fail on izumi, so I performed additional testing. + The tests that fail: + 1) SMS_D.f10_f10_mg37.I2000Clm51BgcCrop.izumi_pgi.clm-crop + BASELINE ctsm5.1.dev042: DIFF roundoff + 2) SMS.f10_f10_mg37.I2000Clm50BgcCrop.izumi_pgi.clm-crop + BASELINE ctsm5.1.dev042: DIFF greater than roundoff for CH4-related vars + I confirmed same result with my earlier commit against BASELINE dev033. - build-namelist tests: + Same tests but with gnu/intel instead of pgi pass on izumi for both + comparisons to dev042 and to dev033. These tests are part of the izumi + test-suite already. - cheyenne - not run + Additional testing: + Repeated these gnu/intel tests (had to run for baseline first) on cheyenne + and they passed. - tools-tests (test/tools): +If the tag used for baseline comparisons was NOT the previous tag, note that here: - cheyenne - not run - PTCLM testing (tools/shared/PTCLM/test): +Answer changes +-------------- - cheyenne - not run +Changes answers relative to baseline: NO - regular tests (aux_clm): - cheyenne ---- ok - hobart ------ ok +Other details +------------- - ok means tests pass, answers change as expected +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/CTSM/pull/1340 -CTSM tag used for the baseline comparisons: ctsm1.0.dev038 +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev042 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Fri May 28 14:07:45 MDT 2021 +One-line Summary: Small answer changes for double precision constants and limit on organic soil +Purpose and description of changes +---------------------------------- -Answer changes --------------- +Change more constants to double precision. Add in limits on organic matter in +soil that @olyson added to the PPE branch (Perturbed Parameter Ensemble). -Changes answers relative to baseline: YES - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - larger than roundoff; likely same climate, but this still requires - investigation +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.) - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A + [Put an [X] in the box for any configuration with significant answer changes.] - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A (Keith Oleson will run this soon) +[ ] clm5_1 - URL for LMWG diagnostics output used to validate new climate: N/A - (Keith Oleson will run this soon) - +[ ] clm5_0 -Detailed list of changes ------------------------- +[ ] ctsm5_0-nwp -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +[ ] clm4_5 -Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/ctsm/pull/703 -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev038 -Originator(s): sacks (Bill Sacks) -Date: Wed May 1 10:53:02 MDT 2019 -One-line Summary: Support for NWP configuration, NLDAS grid and NLDAS datm forcing +Bugs fixed or introduced +------------------------ -Purpose of changes ------------------- +Issues fixed (include CTSM Issue #): + #1380 -- Missing NCL script + #142 --- hard coded constants aren't all double precision (some work was done on this) -This tag includes a set of changes that, together, provide support for -running an initial Numerical Weather Prediction version of CTSM over the -Continental U.S. +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 -(1) NWP configuration: The changes in this configuration relative to the - climate (CLM5) configuration mainly target decreasing runtime by - removing features that are expensive and not as important for NWP - time scales (days to months rather than many years) and space scales - (high resolution): +Caveats for developers (e.g., code that is duplicated that requires double maintenance): - - Single dominant landunit; if vegetated, single dominant PFT + There are still more constants that should be converted to double precision. - - Only 5 soil layers, down to 3 m +Testing summary: regular +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - - Only 5 snow layers + build-namelist tests (if CLMBuildNamelist.pm has changed): - - Plant hydraulic stress off + cheyenne - PASS - - Ball-Berry rather than Medlyn stomatal conductance method (this is - a side-effect of turning plant hydraulic stress off, and is not - itself a critical aspect of the NWP configuration) + python testing (if python code has changed; see instructions in python/README.md; document testing done): - - Maximum of 3 iterations to compute canopy fluxes + cheyenne - PASS - - MEGAN is off + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - Note that the NWP compset triggers changes in two new xml variables: - CLM_CONFIGURATION ('clm' vs. 'nwp'; this controls things of a more - scientific nature, like whether plant hydraulic stress is on or - off), and CLM_STRUCTURE ('standard' vs. 'fast'; this controls - structural things like the maximum number of landunits per grid cell - and the soil layer structure). Thus, you can create a case that is a - hybrid between the CLM and NWP configurations by changing these two - xml variables independently. + cheyenne ---- OK + izumi ------- OK -(2) NLDAS2 regional grid: 0.125 deg grid over the Continental U.S. +If the tag used for baseline comparisons was NOT the previous tag, note that here: -(3) Updated version of MOSART with support for the same NLDAS2 regional - grid -(4) NLDAS2 data atmosphere forcing: over the same regional grid; forcing - data are available from 1980 - 2018. (We have excluded 1979 because - a small amount of data were missing for that year, and we didn't - have a good way to handle those missing data.) +Answer changes +-------------- -These changes can be used independently or all together. However, note -that you will get garbage if you try to use the new NLDAS2 datm forcing -for a run that extends beyond the boundaries of the NLDAS2 domain. +Changes answers relative to baseline: Yes! -There are three new NWP compsets: -- I2000Ctsm50NwpSpGswpGs: GSWP3 datm forcing; meant for global runs or - regional runs outside the NLDAS domain -- I2000Ctsm50NwpSpNldasGs: NLDAS2 datm forcing; meant for regional runs - over the NLDAS domain or some portion of it -- I2000Ctsm50NwpSpNldasRsGs: Same as above, but with a stub runoff model - in place of MOSART, for runs that aren't interested in having a runoff - model and for which you want improved throughput + Summarize any changes to answers, i.e., + - what code configurations: All + - what platforms/compilers: All + - nature of change: mostly single-precision roundoff + many constants that were single precision are now double + some limits put on soil organic that weren't there previously -The alias for the new grid is: nldas2_rnldas2_mnldas2 (indicating that -we're using the nldas2 grid for land/atmosphere, runoff ('r') and the -ocean mask ('m'). +Other details +------------- +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + #1384 -- Change some constants to double precision, and add some soil limits -Bugs fixed or introduced ------------------------- +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev041 +Originator(s): Ryan Knox +Date: Thu May 27 01:10:40 MDT 2021 +One-line Summary: Updates to coupling interface to enable FATES-CH4, and to be compatible with FATES-CNP. -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#451 (Add NWP physics option) -- Resolves ESCOMP/ctsm#452 (Add an NWP compset) +Purpose and description of changes +---------------------------------- +These changes are only relegated to the API with FATES. Boundary conditions were prepared within +FATES to enable proper use of the methane model. Further, some minor changes were made to the FATES +interface code (clmfates_interfaceMod.F90) allowing compatibility with FATES tag sci.1.46.0_api.16.0.0 +(https://github.com/NGEET/fates/releases/tag/sci.1.46.0_api.16.0.0). Most of these changes have to do +with how the FATES history interface is instantiated. 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.] +[ ] clm5_1 [ ] clm5_0 @@ -6003,107 +9812,95 @@ Does this tag change answers significantly for any of the following physics conf [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): -- The NWP configuration is still a work in progress -- The NLDAS surface data set is still a work in progress (will soon - update this to use high-res PFTs) - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): -- New xml variables: - - CLM_CONFIGURATION (will eventually be renamed to CTSM_CONFIGURATION) - - CLM_STRUCTURE (will eventually be renamed to CTSM_STRUCTURE) -- New namelist variable: - - itmax_canopy_fluxes - -Changes made to namelist defaults (e.g., changed parameter values): -No changes for existing CLM compsets; new defaults for NWP compsets -Changes to the datasets (e.g., parameter, surface or initial files): -No changes for existing grids; new surface dataset for nldas2 grid +Bugs fixed or introduced +------------------------ -Substantial timing or memory changes: none +No bugs fixed or introduced. -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Notes of particular relevance for users +--------------------------------------- -Changes to tests or testing: -- New tests covering NWP compsets, nldas grid and nldas datm forcing +This tag brings compatibility with FATES tag: sci.1.46.0_api.16.0.0 -Code reviewed by: Mike Barlage, Erik Kluzek +CTSM-FATES users should also be aware that the FATES parameter file has been +updated. An example is found here: +https://github.com/NGEET/fates/blob/sci.1.46.0_api.16.0.0/parameter_files/fates_params_default.cdl -CTSM testing: +Notes of particular relevance for developers: +--------------------------------------------- - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +A new test was added to check FATES-CH4 coupling: - build-namelist tests: +ERS_Ld9.f10_f10_mg37.I2000Clm50FatesCru.cheyenne_intel.clm-FatesColdDefCH4 - cheyenne - ok - tests pass; namelists change as expected +Testing summary: +---------------- - tools-tests (test/tools): + build-namelist tests (if CLMBuildNamelist.pm has changed): - cheyenne - not run + cheyenne - PASS (60 test different because of fates paramfile) - PTCLM testing (tools/shared/PTCLM/test): + python testing (if python code has changed; see instructions in python/README.md; document testing done): - cheyenne - not run + cheyenne - PASS - regular tests (aux_clm): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - cheyenne ---- pass - hobart ------ pass + cheyenne ---- OK + izumi ------- OK -CTSM tag used for the baseline comparisons: ctsm1.0.dev037 + fates tests: + cheyenne ---- OK Answer changes -------------- -Changes answers relative to baseline: NO +Changes answers relative to baseline: +All FATES tests will have different answers with tag: sci.1.46.0_api.16.0.0 -Detailed list of changes ------------------------- +This is mostly due to the passing of thaw-depth into more of the rooting depth algorithm. -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -- MOSART: release-cesm2.0.00 -> nldas-grid.n01_mosart1_0_31 -- CIME: ctsm/ctsm1.0/cime5.7.9/n04 -> ctsm/ctsm1.0/cime5.7.9/n05 +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): fates + fates to sci.1.46.0_api.16.0.0 -Pull Requests that document the changes (include PR ids): -- https://github.com/ESCOMP/ctsm/pull/682 -- https://github.com/ESCOMP/ctsm/pull/685 +Pull Requests that document the changes (include PR ids): #1371 +(https://github.com/ESCOMP/ctsm/pull) + #1371 -- FATES parteh scale fixes api (ie nutrient + methane coupling) =============================================================== -=============================================================== -Tag name: ctsm1.0.dev037 -Originator(s): sacks (Bill Sacks) -Date: Mon Apr 29 16:11:47 MDT 2019 -One-line Summary: Change year alignment for present-day I compsets - -Purpose of changes ------------------- -Change year alignment for present-day I compsets (typically, these -compsets have aliases beginning with "I2000"), in order to work better -for cases that are meant to replicate particular years. +=============================================================== +Tag name: ctsm5.1.dev040 +Originator(s): slevis (Samuel Levis,SLevis Consulting,303-665-1310) +Date: Thu May 20 08:28:20 MDT 2021 +One-line Summary: Replace masked with "nomask" SRC files for use with mkmapdata and mksurfdata_map -(1) Start the model in year 2000 rather than year 1 +Purpose and description of changes +---------------------------------- -(2) Change datm's year alignment so that model year 2000 uses -observations from year 2000, model year 2001 uses observations from year -2001, etc. + 1) Collapse multiple source (SRC) files of a given resolution to a + single "nomask" SRC file per SRC resolution. The mask variable is now + set to 1 everywhere in all SRC files and mkmapdata.sh generates + a single map_ file (aka weight file) per destination (DST) resolution. + 2) The executable mksurfdata_map now applies the SRC mask found in the + raw datasets, since the map_ files do not contain this information. -(This change was requested by Sean Swenson and supported by Dave -Lawrence.) + These changes simplify the introduction of new surface variables with + raw data in one of our existing SRC resolutions because we need not + create new SRC files for such variables. To introduce new surface + variables with raw data in new resolutions, the corresponding new SRC + files need mask equal to 1 everywhere. + NOTE: Answer-changing modifications have been made in mksurfdata_map, + but we have NOT recreated the out-of-the-box surface datasets. This + means that, if you create new surface datasets, you should expect small + answer changes relative to the current out-of-the-box surface datasets. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -6113,126 +9910,259 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 +[ ] ctsm5_0-nwp + [ ] clm4_5 + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #286 + + Notes of particular relevance for users --------------------------------------- Caveats for users (e.g., need to interpolate initial conditions): -- Year-2000 compsets now start in model year 2000 rather than 1 + These changes are transparent to users making surface datasets using + default SRC resolutions. Users using non-default SRC resolutions or + users introducing new surface variables with raw data in non-default + SRC resolutions, will create new SRC file(s) with mask always set to 1 + everywhere. -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + Note, though, that the out-of-the-box surface datasets now differ + slightly from what you would produce by running mksurfdata_map. So + answer changes should be expected relative to the out-of-the-box + surface datasets if you create a new surface dataset. -Changes made to namelist defaults (e.g., changed parameter values): none +Changes made to namelist defaults (e.g., changed parameter values): + Changed the names of most default SRC files and default map_ files to + the names of the "nomask" versions of these files. -Changes to the datasets (e.g., parameter, surface or initial files): none +Changes to the datasets (e.g., parameter, surface or initial files): + Replaced SRC files and map_ files with "nomask" versions. Most SRC + resolutions already had nomask files available, so I created such files + for 0.25x0.25, 0.9x1.25, 3x3min, 5x5min, and 0.125x0.125. I changed all + of the map_ files except + map_1km-merge-10min_HYDRO1K-merge-nomask SRC resolution. + I ran the rimport command as follows: + ./rimport -list /glade/work/slevis/git/mksurfdata_maps_wo_src_masks/PR_823_new_file_list -Substantial timing or memory changes: none +Substantial timing or memory changes: + - We end up with fewer SRC and map_ files by replacing multiple custom + grids per SRC resolution with one nomask grid. I list here resolutions + that had multiple custom grids per resolution before the switch to + nomask: + 0.5x0.5: AVHRR, MODIS, and 360x720cru_cruncep + 3x3min: GLOBE-Gardner-mergeGIS, GLOBE-Gardner, LandScan2004, MODIS-wCsp + 5x5min: IGBP-GSDP, ISRIC-WISE, ORNL + 10x10min_IGBPmergeICESatGIS + + UNSTRUCT info shown for comparison. NOT switching to UNSTRUCT files at + this time. + + - The nomask map_ files are larger now. E.g.: +2754246572 map_3x3min_GLOBE-Gardner_to_0.9x1.25_nomask_aave_da_c191101.nc MASKED SCRIP +3051641404 map_3x3min_nomask_to_0.9x1.25_nomask_aave_da_c191109.nc NOMASK SCRIP +2974797264 map_3x3min_nomask_to_0.9x1.25_nomask_aave_da_c191115.nc NOMASK UNSTRUCT + + - Although the nomask SCRIP cases shown below are slower because each + individual mapping file takes longer to create, the total time to + generate mapping files is reduced, possibly significantly, due to the + need for fewer mapping files in total. Note the increase in time + savings from the 0.5x0.5 to the 10x10min resolution, which suggests + even greater time savings for the 3x3min and 5x5min that went from a + total of 7 to 2 map_ files. Sample timing data: +mkmapdata 0.5x0.5 to 0.9x1.25 MASKED (2 grids) 78.0u 1.30s 1:20.08 99.1% +mkmapdata 0.5x0.5 to 0.9x1.25 NOMASK SCRIP 51.199u 0.85s 0:52.61 98.8% +mkmapdata 0.5x0.5 to 0.9x1.25 NOMASK UNSTRUC 38.316u 0.69s 0:39.51 98.7% + +mkmapdata 0.25x0.25 to 0.9x1.25 MASKED SCRI 129.288u 1.46s 2:11.38 99.5% +mkmapdata 0.25x0.25 to 0.9x1.25 NOMASK SCRI 168.443u 1.69s 2:50.77 99.6% +mkmapdata 0.25x0.25 to 0.9x1.25 NOMASK UNST 110.875u 1.46s 1:52.80 99.5% + +mkmapdata 0.125x0.125 to 0.9x1.25 MASKED SC 489.651u 3.67s 8:14.58 99.7% +mkmapdata 0.125x0.125 to 0.9x1.25 NOMASK SC 646.372u 5.07s 10:54 99.5% +mkmapdata 0.125x0.125 to 0.9x1.25 NOMASK UN 388.842u 4.20s 6:33 99.7% + +mkmapdata 10x10min to 0.9x1.25 MASKED (2 grids) 639.7u 4.8s 10:46 99.7% +mkmapdata 10x10min to 0.9x1.25 NOMASK SCRIP 380.3u 3.1s 6:24 99.7% +mkmapdata 10x10min to 0.9x1.25 NOMASK UNSTRUCT 264.2u 2.6s 4:27 99.6% + +mksurfdata_map 0.9x1.25 MASKED SCRIP: 65.846u 18.204s 1:42.64 81.8% +mksurfdata_map 0.9x1.25 NOMASK SCRIP: 74.439u 18.502s 1:57.48 79.1% -Notes of particular relevance for developers: (including Code reviews and testing) +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 -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- The out-of-the-box surface datasets now differ slightly from what you + would produce by running mksurfdata_map. So answer changes should be + expected relative to the out-of-the-box surface datasets if you create + a new surface dataset. +- We were not able to run the check_maps tool on the new mapping files: + this generated a seg fault (see + https://github.com/ESCOMP/CTSM/pull/823#issuecomment-846248591) -Changes to tests or testing: none +Testing summary: tools +---------------- -Code reviewed by: cime changes reviewed by Erik Kluzek and others +[... Remove before making master tag. Available test levels: + a) regular (must be run before handing off a tag to SEs and must be run + before committing a tag) + b) build_namelist (if namelists and/or build_system changed)) + c) tools (only if tools are modified and no CTSM source is modified) + d) short (for use during development and in rare cases where only a small + change with known behavior is added ... eg. a minor bug fix) + e) doc (no source testing required) -CTSM testing: +... ] [PASS means all tests PASS and OK means tests PASS other than expected fails.] - build-namelist tests: - - cheyenne - not run - - tools-tests (test/tools): - - cheyenne - not run + build-namelist tests (if CLMBuildNamelist.pm has changed): - PTCLM testing (tools/shared/PTCLM/test): + cheyenne - - cheyenne - not run + tools-tests (test/tools) (if tools have been changed): - regular tests (aux_clm): + cheyenne - OK + izumi - OK - cheyenne ---- ok - hobart ------ ok + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - ok means tests pass, year-2000 cases change answers as expected + cheyenne ---- + izumi ------- -CTSM tag used for the baseline comparisons: ctsm1.0.dev036 + any other testing: -Answer changes --------------- + 1) Ran in /glade/scratch/slevis/temp_work/surfdata + make -f /glade/work/slevis/git/mksurfdata_maps_wo_src_masks/tools/mksurfdata_map/Makefile.data_slevis all + to generate all surface datasets. In early 2020 this triggered an error: -Changes answers relative to baseline: YES + gridmap_check ERROR from mklakwat: mapping areas not conserved + global sum output field = 0.1513392154E+09 + global sum input field = 0.1513334049E+09 - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): + which goes away with Bob Oehmke's new ESMF build. - Summarize any changes to answers, i.e., - - what code configurations: Present-day compsets (I2000, I1Pt; also I2010 once those compsets are added) - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - larger than roundoff/same climate + 2) qcmd -- ./create_test ERP_D_Ld3_P36x2.f10_f10_mg37.I2000Clm50BgcCru.cheyenne_intel.clm-default -c /glade/p/cgd/tss/ctsm_baselines/ctsm5.1.dev038 + PASSES w default fsurdat = '/glade/p/cesmdata/cseg/inputdata/lnd/clm2/surfdata_map/release-clm5.0.18/surfdata_10x15_hist_16pfts_Irrig_CMIP6_simyr2000_c190214.nc' + gives differences from baseline as expected w new fsurdat that differs + more than roundoff from the default one = ‘/glade/p/cesm/cseg/inputdata/lnd/clm2/surfdata_map/surfdata_10x15_hist_16pfts_Irrig_CMIP6_simyr2000_c210503.nc’ - This changes the year alignment of datm. Climatological averages - should be the same as before, but the alignment of model year to - datm year changes. +If the tag used for baseline comparisons was NOT the previous tag, note that here: - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A +Answer changes +-------------- - URL for LMWG diagnostics output used to validate new climate: N/A - +Changes answers relative to baseline: YES, but for now the model results +are the same: there will be changes to surface datasets when they are +remade, but so far we are still pointing to unchanged out-of-the-box +surface datasets. -Detailed list of changes ------------------------- + Summarize any changes to answers, i.e., + - what code configurations: ALL + - what platforms/compilers: ALL + - nature of change: larger than roundoff/same climate -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -- cime: ctsm/ctsm1.0/cime5.7.9/n03 -> ctsm/ctsm1.0/cime5.7.9/n04 + For now, model results are unchanged because we are still using the old + surface datasets. However, this tag changes answers in any new surface + datasets that are created. + + I performed testing at the 0.9x1.25 degree resolution. + + Code changes were tested by comparing baseline files (a) + surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr2000_c191101.nc + surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr2000_c191101.log + generated by running baseline code pointing to masked map_ files + to (b) + surfdata_0.9x1.25_new_hist_78pfts_CMIP6_simyr2000_c191101.nc + surfdata_0.9x1.25_new_hist_78pfts_CMIP6_simyr2000_c191101.log + generated by running the new code still pointing to masked map_ files + and then comparing to (c) + surfdata_0.9x1.25_nomask_78pfts_CMIP6_simyr2000_c191101.nc + surfdata_0.9x1.25_nomask_78pfts_CMIP6_simyr2000_c191101.log + generated by running the new code pointing to nomask map_ files. + + We set an expectation of max abs relative differences of less than + roughly 1e-13. I got an actual max abs relative difference of 7e-12 in + PCT_NAT_PFT for (a) vs (b) and (a) vs (c). I refer to these here as + small diffs. + + All other variables gave smaller diffs except the four VIC variables + binfil, Ws, Ds, Dsmax between (b) and (c). These diffs appear in 5 grid + cells (along two meridians that got shifted in longitude by less than + 1e-13 degrees) that vic considers land in the baseline and + ocean in the nomask case. Vic provides valid generic data for ocean + grid cells and, therefore, also where the discrepancies occur. This + means that if the land model treats these grid cells as land, the + model will work. + + I had to generate new masked map_ files for (a) and (b) because + changes in ESMF codes over the years were leading to large differences + between all three (a) vs (b) vs (c). Generating new masked map_ files + brought the diffs back to small. + + For the 3x3min and 5x5min SRC resolutions, I made six temporary + nomask SRC files, one per surface variable pointing to 3x3min + map_ files and one per surface variable pointing to 5x5min map_ files. + I did this to get small differences relative to the baseline. I created + the temporary files by making copies of the correspoding masked SRC + files and changing mask to 1 everywhere. The temporary files had diffs + less than roughly 1e-5 from generic nomask files generated by running + mkscripgrid.ncl for 3x3min and 5x5min. Ultimately we are replacing the + temporary files with the generic nomask files, which leads to larger + diffs in the surface datasets. + + This testing occurred in late 2019 or early 2020. To confirm the + results I generated a new set of map_ files for 0.9x1.25 and then + created new fsurdat files with the baseline code and with the branch. + Only PCT_NAT_PFT triggers the error check for max abs relative + diff > 1e-13 with a max abs relative diff = 9e-12. + + +Other details +------------- Pull Requests that document the changes (include PR ids): -- cime changes documented in https://github.com/ESMCI/cime/pull/3093 + https://github.com/ESCOMP/CTSM/pull/823 =============================================================== =============================================================== -Tag name: ctsm1.0.dev036 -Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) -Date: Fri Apr 26 01:20:57 MDT 2019 -One-line Summary: Fix carbon isotope bug that caused wrong answers for isotopes under transient land-use change +Tag name: ctsm5.1.dev039 +Originator(s): jedwards4b/erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Tue May 18 14:36:25 MDT 2021 +One-line Summary: Add NEON sites -Purpose of changes ------------------- +Purpose and description of changes +---------------------------------- -We currently have a bug so that for transient land-use change cases answers are different starting in soil -carbon when Carbon isotopes (use_c13, or use_c14) are on versus off. Answers are identical if there is no -land-use change. The bug does cause bulk Carbon (C12) to be slightly different, but qualitatively the same. -There is a significant impact to the Carbon isotope simulation however. The bug was causing changes in isotopic -pools to be directed to the bulk Carbon. Because, isotopes are so much smaller than bulk Carbon, this doesn't -cause a marked difference in the bulk Carbon simulation. But, the lack of the change in the isotopic pool -does have a meaningful impact on the simulation of the Carbon isotopic fields. +Add NEON sites. Add cime/cdeps support and capability to run NEON tower sites. -Also added a general test for this and specific one to catch this case. And did some updates on documentation -files, and a small bug fix for run_sys_tests. +This also brings in Negin's first version of the subset_data.py script to create +datasets for single-point and regional cases. And a version of it was run to +create the NEON surface datasets. -Bugs fixed or introduced ------------------------- +To setup a NEON site do the following -Issues fixed (include CTSM Issue #): #692 #675 #686 - #675 -- Answers differ when carbon isotopes are on under transient cases - #686 -- Add a system test to make sure turning on carbon isotopes doesn't change answers - #692 -- run_sys_test issue +cd cime/scripts +./create_newcase --case myNEONtest --res CLM_USRDAT --compset IHist1PtClm51Bgc \ +--user-mods-dir NEON/NIWO --driver nuopc --run-unsupported + +(There's also a I1PtClm51Bgc compset that can be used for fixed conditions) + +Note, also that several externals were updated to the version in cesm2_3_alpha03a. This means that +answers change when CISM is turned on. Some of the grids for compsets tested were updated to +use the new grid name "gris" in place of the older "gland". Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -6242,281 +10172,233 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[X] clm5_0 +[ ] clm5_1 -[X] clm4_5 +[ ] clm5_0 -Notes of particular relevance for users ---------------------------------------- +[ ] ctsm5_0-nwp -Caveats for users (e.g., need to interpolate initial conditions): None +[ ] clm4_5 -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None -Changes made to namelist defaults (e.g., changed parameter values): None +Bugs fixed or introduced +------------------------ -Changes to the datasets (e.g., parameter, surface or initial files): None +Issues fixed (include CTSM Issue #): + #1368 -- Longitude isn't correct for NEON singlept fsurdat files. + #1353 -- Modify NEON surface data -Substantial timing or memory changes: None +Known bugs introduced in this tag (include issue #): + #1364 -- Change NEON surface datasets to 79PFT files to facilitate the crop sites + #1368 -- Additional modifications to subset_data.py + #1363 -- 2018 and 2018-PD compsets for NEON single point ty + #1354 -- Batch run single point sites, including NEON + #1355 -- Python scripts for NEON analyses + cime/#3970 -- cdeps library fails to build on izumi: nag, intel, and gnu compilers -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -Caveats for developers (e.g., code that is duplicated that requires double maintenance): None +Known bugs found since the previous tag (include issue #): + #1351 -- HR fluxes don't include CWD -Changes to tests or testing: Added LCISO test type and a 13 month Hist test to make sure carbon isotopes - don't cause a change to answers -Code reviewed by: dlawren, billsacks, klindsey, bishtgautum +Notes of particular relevance for users +--------------------------------------- -CTSM testing: regular +Caveats for users (e.g., need to interpolate initial conditions): + Data coming from NEON -- may be updated after it's uploaded. As such you may need to delete + previous downloaded data in order to download the latest. - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): Yes add NEONSITE, two new compsets + Add new compset aliases: I1PtClm51Bgc, and IHist1PtClm51Bgc + NEONSITE added to the env_run.xml for a case. Only used for a NEON site with the CLM_USRDAT resolution - build-namelist tests: +Changes to the datasets (e.g., parameter, surface or initial files): + Surface datasets for NEON added to the NEON user-mod-directory - cheyenne - PASS +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 - tools-tests (test/tools): +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + The two USUMB test-mods duplicate some settings and could have a parent version to inherit from - cheyenne - PASS +Changes to tests or testing: + Change _gl4 tests to _gris4 + Single point tower site tests use the CLM1PTStartDate test-mod + Add a NEON test for the NIWO site + USUMB testmod needs a MCT and NUOPC version - PTCLM testing (tools/shared/PTCLM/test): - cheyenne - PASS (compare tests fail, because of namelist updates) +Testing summary: regular +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - regular tests (aux_clm): + build-namelist tests (if CLMBuildNamelist.pm has changed): + + cheyenne - PASS (141 new tests for NEON sites) + + 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 ---- OK - hobart ------ OK + izumi ------- OK -CTSM tag used for the baseline comparisons: ctsm1.0.dev035 + any other testing (give details below): + +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: Only for Carbon isotopes on under transient land-use change! +Changes answers relative to baseline: Yes (but only when CISM is on) Summarize any changes to answers, i.e., - - what code configurations: Bgc with use_c13 or use_c14 T and with a transient land-use change after each year boundary + - what code configurations: Only with CISM on (compsets that end with G) - what platforms/compilers: All - - nature of change: same climate for bulk Carbon, isotopic Carbon is quite different for regions with land-use change - - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: - - URL for LMWG diagnostics output used to validate new climate: - + - nature of change: similar climate -Detailed list of changes ------------------------- +Other details +------------- -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime - cime from -- ctsm/ctsm1.0/cime5.7.9/n01 to ctsm/ctsm1.0/cime5.7.9/n03 - cime update allows the new test to work and starts adding NLDAS grid in +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime, cism, cmeps, cdeps + cime to cime5.8.47 + cism to cismwrap_2_1_83 + cmeps to cmeps0.13.2 + cdeps to cdeps0.12.4 -Pull Requests that document the changes (include PR ids): #696 #694 +Pull Requests that document the changes (include PR ids): (https://github.com/ESCOMP/ctsm/pull) - #696 -- run_sys_test small fix - #694 -- Carbon isotope fix + #1278 -- Neon compsets + #1360 -- Singlept and regional subsetting script (initial version) =============================================================== =============================================================== -Tag name: ctsm1.0.dev035 -Originator(s): sacks (Bill Sacks) -Date: Mon Apr 22 20:17:40 MDT 2019 -One-line Summary: Change h2ocan to a purely diagnostic variable - -Purpose of changes ------------------- - -Previously, h2ocan_patch was maintained through the driver loop as the -sum of liqcan_patch and snocan_patch. However, there were places where -it was updated separately (though consistently) - i.e., it was not -simply a matter of 'h2ocan = liqcan + snocan'. This made the code -more complex, especially for the upcoming addition of water tracers. - -This tag changes h2ocan_patch to be a purely diagnostic variable, set -once at the end of the driver loop. Prognostic equations that used to -use h2ocan now use liqcan and snocan, either directly or indirectly via -a temporary variable set equal to the current value of liqcan+snocan. - -This tag also completely removes support for snowveg_flag = 'OFF' in -order to clean up the code. - -In addition, this tag renames the namelist variable snowveg_flag to -snowveg_affects_radiation (now a logical). - -Finally, this tag includes a minor change to always compute fcansno, -even if snowveg_affects_radiation is false, in order to simplify the -code. +Tag name: ctsm5.1.dev038 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Tue Apr 27 23:51:04 MDT 2021 +One-line Summary: Bring in minor changes from the cesm2.2.0 release tag -Bugs fixed or introduced ------------------------- +Purpose and description of changes +---------------------------------- -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#199 +Bring in the changes that went in the cesm2.2.0 release tag. +Get the CLM offline tools working as well as the tools testing. +Remove the finidat file for FATES as it was shown to be problematic +in the release testing. Significant changes to scientifically-supported configurations -------------------------------------------------------------- -Does this tag change answers significantly for any of the following physics configurations? +Does this tag change answers significantly for any of the following physics configurations? No (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.] -[ ] clm5_0 +[ ] clm5_1 -[ ] clm4_5 +[ ] clm5_0 -Notes of particular relevance for users ---------------------------------------- +[ ] ctsm5_0-nwp -Caveats for users (e.g., need to interpolate initial conditions): none +[ ] clm4_5 -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): -- snowveg_flag renamed to snowveg_affects_radiation, and changed to a - logical flag -Changes made to namelist defaults (e.g., changed parameter values): none +Bugs fixed or introduced +------------------------ -Changes to the datasets (e.g., parameter, surface or initial files): none +Issues fixed (include CTSM Issue #): + Fixes #1134 mkmapdata.sh is not working + Fixes #1128 missing compset -Substantial timing or memory changes: none +Known bugs found since the previous tag (include issue #): + #1358 -- C isotope fields can have garbage values starting in ctsm5.1.dev008 + #1357 -- No output values in large lake gridcells in 0.5° resolution (hcru_hcru) -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Notes of particular relevance for users +--------------------------------------- -Changes to tests or testing: none +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + Add a new compset alias: I2000Clm50FatesCruRsGs -Code reviewed by: -- Answer-changing portion of these changes reviewed by Keith Oleson and - (at least to some extent) Sean Swenson +Changes to the datasets (e.g., parameter, surface or initial files): + Remove finidat file setting for FATES becaues it sometimes caused problems. +Notes of particular relevance for developers: +--------------------------------------------- -CTSM testing: +Changes to tests or testing: + A couple of the tools tests were changed - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - build-namelist tests: +Testing summary: regular +---------------- - cheyenne - not run + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - tools-tests (test/tools): + build-namelist tests (if CLMBuildNamelist.pm has changed): - cheyenne - not run + cheyenne - PASS - PTCLM testing (tools/shared/PTCLM/test): + tools-tests (test/tools) (if tools have been changed): - cheyenne - not run + cheyenne - PASS - regular tests (aux_clm): + 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 ---- ok - hobart ------ ok + cheyenne - OK - ok means tests pass, answers change as expected + python testing (if python code has changed; see instructions in python/README.md; document testing done): -CTSM tag used for the baseline comparisons: ctsm1.0.dev034 + cheyenne -- PASS + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Answer changes --------------- + cheyenne ---- OK + izumi ------- OK -Changes answers relative to baseline: YES + any other testing (give details below): - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): + Ran mkmapdata.sh for 1-deg maps - Summarize any changes to answers, i.e., - - what code configurations: all - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - roundoff +If the tag used for baseline comparisons was NOT the previous tag, note that here: - If bitwise differences were observed, how did you show they were no worse - than roundoff? - I split these changes into two pieces: (1) an answer-changing piece - where I made minimal changes to replace uses of h2ocan_patch with - liqcan+snocan (via temporary h2ocan variables holding this sum), - and (2) non-answer-changing code cleanup. (1) consisted of the - first two commits on this branch (461cafea and f195c105). With the - changes in (1), I added checks near each change to ensure that the - new expression differed by no more than roundoff from the old - (using an absolute cutoff of 1e-13). I ran the full test suite with - these checks in place, and generated new baselines. I then compared - the changes in (2) with the baselines from (1); this cleanup step - was bit-for-bit except for roundoff-level changes in the - now-diagnostic-only field H2OCAN. - - As noted in ESCOMP/ctsm#689, the changes in (1) were larger than I - expected, presumably because initially roundoff-level differences - can lead to divergent code behavior. The most obvious example of - this is in the check of h2ocan > 0 in subroutine FracWet. I have - found that, due to roundoff errors, it is possible for h2ocan_patch - > 0 by roundoff, while (liqcan_patch + snocan_patch) <= 0 by - roundoff. (Presumably the reverse could also be true, though I - haven't seen that – but I haven't spent much time looking for it.) - - Soon, we plan to do a more rigorous test to double check that this - change is not climate-changing. +Answer changes +-------------- - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A +Changes answers relative to baseline: No bit-for-bit - URL for LMWG diagnostics output used to validate new climate: N/A - +Other details +------------- -Detailed list of changes ------------------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): PTCLM + PTCLM to PTCLM2_20200902 -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Pull Requests that document the changes (include PR ids): #1179 +(https://github.com/ESCOMP/ctsm/pull) -Pull Requests that document the changes (include PR ids): -- First part of changes in https://github.com/ESCOMP/ctsm/pull/689 + #1179 -- Bring in changes from release-cesm2.2.01 to main-development =============================================================== =============================================================== -Tag name: ctsm1.0.dev034 -Originator(s): sacks (Bill Sacks) -Date: Sat Apr 20 06:11:23 MDT 2019 -One-line Summary: Change clm4_5: Use Justin Perket snow on vegetation - -Purpose of changes ------------------- - -This tag changes the behavior of clm4_5, making it now use Justin -Perket's snow on vegetation parameterization. This parameterization was -originally introduced in clm4_5_1_r112. At the time it was only used for -clm5_0 cases. This tag uses that parameterization for clm4_5 cases, too, -so that (like clm5_0) they use snowveg_flag = 'ON_RAD' (i.e., vegetation -snow canopy on with albedo influence). +Tag name: ctsm5.1.dev037 +Originator(s): slevis (Samuel Levis,SLevis Consulting,303-665-1310) +Date: Fri Apr 23 10:06:32 MDT 2021 +One-line Summary: Correct vertical interpolation in init_interp when soil thicknesses change -This changes climate for clm4_5, mainly through albedo changes, -particularly in the shoulder seasons. +Purpose and description of changes +---------------------------------- -The reason for this change is to allow an upcoming cleanup of the -relationship between h2ocan, snocan and liqcan. (See -https://github.com/escomp/ctsm/issues/199 for details.) - -This tag also no longer allows snowveg_flag = 'OFF'. However, code -cleanup is deferred to a follow-on tag, in order to separate the answer -changes in this tag from the no-greater-than-roundoff-level changes in -the follow-on tag. - -Bugs fixed or introduced ------------------------- - -Issues fixed (include CTSM Issue #): -- First step towards addressing ESCOMP/ctsm#199 (Clean up relationship - between h2ocan, snocan and liqcan) + To correct how init_interp handles soil variables with units of kg/m2 or mm + or mm/s (generally speaking so-called extensive properties), we now add DZSOI + and a scale_by_thickness flag to restart files. In init_interp we use these to + scale the vertical interpolation by soil layer thickness. Significant changes to scientifically-supported configurations @@ -6527,279 +10409,224 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[ ] clm5_0 - -[X] clm4_5 - -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): -- Changes the scientific configuration of clm4_5 cases, as noted above - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none - -Changes made to namelist defaults (e.g., changed parameter values): -- For clm4_5: snowveg_flag = 'ON_RAD' rather than 'OFF' - -Changes to the datasets (e.g., parameter, surface or initial files): none - -Substantial timing or memory changes: none +[X] clm5_1 -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide +[X] clm5_0 -Caveats for developers (e.g., code that is duplicated that requires double maintenance): -- Need to clean up code involving snowveg_flag, liqcan, snocan and - h2ocan. I will do this in a follow-on tag. +[X] ctsm5_0-nwp -Changes to tests or testing: -- Added a test with snowveg_flag = 'ON'. (At least some of the code - paths triggered by this setting were previously covered by clm45 - cases. Now that both clm45 and clm50 use snowveg_flag = 'ON_RAD', - there was some uncovered code. This new test covers this code.) -- Changed long single-point tests to use Qian forcing: With the default - GSWP3 forcing, the vast majority of the runtime was being spent in - datm. In addition, I was getting repeated failures of - ERS_Lm54_Mmpi-serial.1x1_numaIA.I2000Clm50BgcCropGs.cheyenne_intel.clm-cropMonthOutput, - I think due to memory issues; I'm hopeful that changing the datm - forcing will help with that. +[X] clm4_5 -Code reviewed by: self +Bugs fixed or introduced +------------------------ +[Remove any lines that don't apply. Remove entire section if nothing applies.] -CTSM testing: +Issues fixed (include CTSM Issue #): #1298 - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Notes of particular relevance for users +--------------------------------------- +[Remove any lines that don't apply. Remove entire section if nothing applies.] - build-namelist tests: +Caveats for users (e.g., need to interpolate initial conditions): + For H2OSOI_LIQ, H2OSOI_ICE, SMP, and HK, from now on init_interp interpolates + from the soil profile in finidat to the soil profile in the model by + scaling these variables by dzsoi (layer thickness). This makes the vertical + interpolation of these variables more accurate. Users need not do anything. - cheyenne - not run +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): - tools-tests (test/tools): +Changes to the datasets (e.g., parameter, surface or initial files): + From now on newly generated finidat files will contain the scale_by_thickness + flag and DZSOI for use by the new code. For backwards compatibility, the code + handles preexisting finidat files by deriving dzsoi from the node depths for + the four variables listed above. - cheyenne - not run +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.] - PTCLM testing (tools/shared/PTCLM/test): +Changes to tests or testing: + Added two unit tests to confirm that the modified vertical interpolation + behaves as expected. - cheyenne - not run - regular tests (aux_clm): +Testing summary: +---------------- +[Remove any lines that don't apply.] - cheyenne ---- ok - hobart ------ ok + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - ok means tests pass; NLCOMP and BASELINE failures for Clm45 cases, - as expected + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -CTSM tag used for the baseline comparisons: ctsm1.0.dev033 + cheyenne ---- OK + izumi ------- OK + any other testing (give details below): + Unit tests PASS Answer changes -------------- -Changes answers relative to baseline: YES +Changes answers relative to baseline: Yes - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): + [ If a tag changes answers relative to baseline comparison the + following should be filled in (otherwise remove this section). + And always remove these three lines and parts that don't apply. ] Summarize any changes to answers, i.e., - - what code configurations: Clm45 compsets - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): + - what code configurations: ALL + - what platforms/compilers: ALL + - nature of change: larger than roundoff/same climate - New climate (as in clm4_5_1_r112 for clm5_0); the main impact is - through albedo changes, particularly in the shoulder seasons. + scale_by_thickness=.true. for the four variables that require it (listed + above). This causes answers to change for all tests in the test suite that + interpolate from the soil profile found in finidat to a differing soil profile + used by the model. - Changes in clm4_5 cases are due to: +Other details +------------- - (1) Using snowveg_flag = 'ON_RAD' rather than 'OFF' +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/CTSM/pull/1301 - (2) Changed initial conditions for canopy water: Rather than using - H2OCAN, which is the meaningful state variable on previous - clm4_5 initial conditions files, now we use LIQCAN and - SNOCAN. These may be 0, although at least some clm4_5 initial - conditions files (including the two non-Fates out-of-the-box - clm4_5 initial conditions files) have non-zero (though still - reasonable) LIQCAN for reasons I can't understand. +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev036 +Originator(s): glemieux (Gregory Lemieux,LBL/NGEET,510-486-5049) +Date: Wed Apr 21 14:50:19 MDT 2021 +One-line Summary: FATES tag update and snow occlusion of LAI fix - (Also changes answers for - ERS_D_Ln9_P480x3.f19_g16.I2000Clm50SpGs.cheyenne_intel.clm-waccmx_offline, - which uses a clm45 initial file.) +Purpose and description of changes +---------------------------------- - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A +This tag updates the way in which fates is called during restarts to appropriately +handle the fates-side snow occlusion code. Additionally, this update points to the +most recent fates tag, which includes a number of fates science updates (including +the snow occlusion fix) and fates-side bug fixes (see below for list of issues +addressed). - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - URL for LMWG diagnostics output used to validate new climate: N/A - +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.) -Detailed list of changes ------------------------- + [Put an [X] in the box for any configuration with significant answer changes.] -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +[ ] clm5_1 -Pull Requests that document the changes (include PR ids): none +[ ] clm5_0 -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev033 -Originator(s): slevis (Samuel Levis, SLevis Consulting LLC, 303-665-1310) -Date: Thu Apr 11 10:51:29 MDT 2019 -One-line Summary: Limit landunit presence with thresholds set in the namelist +[ ] ctsm5_0-nwp -Purpose of changes ------------------- +[ ] clm4_5 - Faster simulations. Motivated by NWP applications: - - Introduce user-defined namelist parameters to use as thresholds - above which landunit areas are kept and - below which landunit areas are removed. - - Introduce user-defined logical namelist parameter to collapse the up to - three urban landunits to the dominant urban landunit. Bugs fixed or introduced ------------------------ -Issues fixed (include CTSM Issue #): #581 - Fixes #581 -- Allow zeroing out special landunits if their area is below some threshold +Issues fixed (include CTSM Issue #): + #1293 -- Update FATES on CTSM main-dev + NGEET/fates#359 -- ground snow is not occluding lai profile + NGEET/fates#709 -- Error Check issue in EDPatchDynamicsMod.F90: spawn_patches() causes problem with logging module + NGEET/fates#725 -- declaration of the prt pointer + NGEET/fates#713 -- Changes associated with patch fraction burnt + NGEET/fates#473 -- Update FIRE_AREA long name units + NGEET/fates#575 -- Clean up NaN and zeroing of fire variables in Patch and Cohort Dynamics +Known bugs found since the previous tag (include issue #): + #1338 -- Floating point exception in fates gnu compiler regression test with ctsm5.1.dev027 -Significant changes to scientifically-supported configurations --------------------------------------------------------------- +Testing summary: regular +---------------- -Does this tag change answers significantly for any of the following physics configurations? No + [PASS means all tests PASS; OK means tests PASS other than expected fails.] -Notes of particular relevance for users ---------------------------------------- + build-namelist tests (if CLMBuildNamelist.pm has changed): -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): - - New namelist variables with valid real values from 0._r8 to 100._r8, where - 0 means "do nothing" and other values determine the threshold above - which to keep the landunit in a gridcell. The new variables are: - toosmall_soil - toosmall_crop - toosmall_glacier - toosmall_lake - toosmall_wetland - toosmall_urban - - New logical namelist variable collapse_urban. If .true. then the up to - three urban landunits collapse to the dominant urban landunit. + cheyenne - PASS ---------------------------------------------- -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- + python testing (if python code has changed; see instructions in python/README.md; document testing done): -Caveats for developers (e.g., code that is duplicated that requires double maintenance): - There's a typo in the name for n_dom_landunits (missing the s) in bld/CLMBuildNamelist.pm - build-namelist doesn't check for toosmall_* below 0 or above 100, but the code does + cheyenne - PASS -Changes to tests or testing: Yes - New unit tests subroutine test_collapse_individual_lunits and - test_collapse_all_lunit_opts_active in test_surfrdUtils.pf - Modified standard suite test - ERS_D_Ld10.f10_f10_musgs.IHistClm50BgcCropGs.cheyenne_intel.clm-collapse_to_dominant_decStart - to - ERS_D_Ld10.f10_f10_musgs.I2000Clm50BgcCropGs.cheyenne_intel.clm-rm_indiv_lunits_and_collapse_to_dom - and introduced fatal error message when namelist parameters toosmall_* > 0 or - n_dom_* > 0 in transient simulations + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Code reviewed by: Erik Kluzek, Bill Sacks + cheyenne ---- ok + izumi ------- ok -CTSM testing: regular + ok: All non-fates testmods PASS b4b. Fates testmods have DIFF as expected due to update of fates science tag. - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + fates tests: + cheyenne ---- ok - build-namelist tests: + ok: NLCOMP failures due to clm50_param file update relative to ctsm tag used on the last fates baseline. - cheyenne - PASS (384 differences because of new namelist items) + fates baseline: fates-sci.1.44.1_api.14.2.0-ctsm5.1.dev033-C30ca1849-F6065b9a2 - regular tests (aux_clm): +Answer changes +-------------- - cheyenne ---- ok - hobart ------ ok +Changes answers relative to baseline: Yes, only for fates + + Summarize any changes to answers, i.e., + - what code configurations: all fates + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): larger than roundoff + + If bitwise differences were observed, how did you show they were no worse + than roundoff? + - fates-side review of expected differences for all PRs that changed answers (2 science updates + and 2 bug fixes) -CTSM tag used for the baseline comparisons: - cheyenne ctsm1.0.dev031 - hobart ctsm1.0.dev032 +Other details +------------- -Answer changes --------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -Changes answers relative to baseline: No - Note: Comparison to baseline gives NLCOMP failures because the new namelist - parameters always appear in the namelist now, even when they have not been - changed from their default value by the user. + fates: sci.1.43.2_api.14.2.0 -> sci.1.45.0_api.15.0.0 -Detailed list of changes ------------------------- - - Introduced call to new subroutine collapse_individual_lunits that uses - the user-defined namelist variables listed above to determine whether - a landunit gets kept or removed from a gridcell. - - Introduced new call to collapse_to_dominant for when collapse_urban = .true. - - Introduced error checks that do not allow coexistence of transient - simulations and the toosmall_* variables OR the n_dom_pfts/n_dom_landunits - variables OR the collapse_urban parameter. +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) -Pull Requests that document the changes (include PR ids): #641 - https://github.com/ESCOMP/ctsm/pull/641 - #641 -- Ability to remove individual landunits for faster runs + - https://github.com/ESCOMP/CTSM/pull/1324 + - https://github.com/NGEET/fates/pull/734 =============================================================== =============================================================== -Tag name: ctsm1.0.dev032 -Originator(s): negins (Negin Sobhani,UCAR/CSEG,303-497-1224) -Date: Mon Apr 8 08:26:57 MDT 2019 -One-line Summary: Fixing the balance check to check for possible errors over all columns/patches +Tag name: ctsm5.1.dev035 +Originator(s): sacks (Bill Sacks) +Date: Tue Apr 20 10:45:25 MDT 2021 +One-line Summary: Misc bfb enhancements and fixes -Purpose of changes ------------------- -Up until now, the BalanceCheckMod code in biogeophysics did not check all -the possible errors over all columns or patches with the error threshold for -aborting clm and it merely compared the last column/patch found (where -warning threshold is met) with the error threshold. -Therefore, there was always a possibility that the abort is not triggered -when it should have been. This issue was first mentioned in ctsm issue #55 -for soil energy balance check, but a similar issue is also present for -other balance checks in BalanceCheckMod.F90 . - -Below is the list of the balance checks with a similar issue: -1. Water balance check -2. Snow balance check -3. Solar radiation energy balance check -4. Longwave radiation energy balance check -5. Surface energy balance check -6. Soil energy balance check (Issue #55) - -For remediating this issue, we used MAXVAL and MAXLOC Fortran intrinsic functions -to compare the largest error with the warning and error thresholds instead -of checking the last column or looping over all columns. - - -In addition, this PR also makes slight changes to ./run_sys_tests outputi/case -directory structure. Previously for each case in a test suite, there were -two set of directories created by run_sys_tests as follows: - * one directory which included run/ and bld/ and named as $SCRATCH/[case-name].... - * The case directory which included logs , timings, CaseDocs/, and misc. scripts - for ./case.build, ./case.submit... under $SCRATCH/tests-[testID]/[case-name].... - -This made debugging confusing and populated many folders in user's scratch. -Now, for every case in a test, all directories related to that case -including bld/ and run/ directories are nested under the case directory under $SCRATCH/tests-[testID]/[case-name].... -This is now similar to ./create_test output folder structure. +Purpose and description of changes +---------------------------------- +(1) If CISM is running over Antarctica, use virtual glacier columns over + Antarctica +(2) Remove "mec" from some glacier/ice variable names (it is misleading + to have "mec" in variable names when the ice landunit can actually + have multiple columns *or* a single column) (ESCOMP/CTSM#1294) -Bugs fixed or introduced ------------------------- +(3) Add history file metadata on each variable's l2g_scale_type (adds a + landunit_mask attribute) (ESCOMP/CTSM#1343) -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm issue#55 +(4) Use python3 in more shebang lines - needed to run python unit tests + on cheyenne + +(5) New compset naming for IG compsets (ESCOMP/CTSM#1289) + +(6) Remove calculation of fun_cost_fix that is overwritten + (ESCOMP/CTSM#1115) + +(7) Bypass grid-level water mass check when fates hydro is active + (ESCOMP/CTSM#1334) + +(8) Remove some dead code (ESCOMP/CTSM#1333) Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -6809,158 +10636,90 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[ ] clm5_0 - -[ ] clm4_5 - -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): None - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None - -Changes made to namelist defaults (e.g., changed parameter values): None +[ ] clm5_1 -Changes to the datasets (e.g., parameter, surface or initial files): None +[ ] clm5_0 -Substantial timing or memory changes: None +[ ] ctsm5_0-nwp -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide +[ ] clm4_5 -Caveats for developers (e.g., code that is duplicated that requires double maintenance): -Changes to tests or testing: - - ./run_sys_test is changed so that it nests bld/ and run/ directories under the case directory as $SCRATCH/tests-[testID]/[case-name]... - The output folder structure now is similar to ./create_test for each case in a test. +Bugs fixed or introduced +------------------------ +[Remove any lines that don't apply. Remove entire section if nothing applies.] -Code reviewed by: Bill Sacks +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1115 (overwrite fun_cost_fix) +- Resolves ESCOMP/CTSM#1289 (After updating to cism2_1_76 or later, + change compsets involving CISM) +- Resolves ESCOMP/CTSM#1294 (Replace istice_mec with istice) +- Resolves ESCOMP/CTSM#1333 (Remove some dead code) +- Resolves ESCOMP/CTSM#1343 (Add landunit_mask (formerly l2g_scale_type) + metadata to history file) +Notes of particular relevance for users +--------------------------------------- +[Remove any lines that don't apply. Remove entire section if nothing applies.] -CTSM testing: +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- Renamed maxpatch_glcmec to maxpatch_glc - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Substantial timing or memory changes: +- Increase in land initialization time in the PFS test + (PFS_Ld20.f09_g17.I2000Clm50BgcCrop.cheyenne_intel); this is probably + due to machine variability because I don't think any of the changes in + this tag would have any significant impact on model initialization + time. - build-namelist tests: - cheyenne - not run +Testing summary: +---------------- - tools-tests (test/tools): + build-namelist tests (if CLMBuildNamelist.pm has changed): - cheyenne - not run + cheyenne - ok (tests pass, namelists differ as expected) - PTCLM testing (tools/shared/PTCLM/test): + python testing (if python code has changed; see instructions in python/README.md; document testing done): - cheyenne - not run + (any machine) - pass (ran 'make test' on cheyenne and 'make all' on my Mac) - regular tests (aux_clm): + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): cheyenne ---- ok - hobart ------ ok - - -CTSM tag used for the baseline comparisons: ctsm1.0.dev031 - + izumi ------- ok Answer changes -------------- -Changes answers relative to baseline: No - - -Detailed list of changes ------------------------- +Changes answers relative to baseline: NO -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None +Other details +------------- Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/ctsm/pull/670 +- One small piece is documented in https://github.com/ESCOMP/CTSM/pull/1334 =============================================================== =============================================================== -Tag name: ctsm1.0.dev031 -Originator(s): sacks (Bill Sacks) -Date: Wed Mar 13 15:03:42 MDT 2019 -One-line Summary: Subtract virtual states to reduce dynbal fluxes for transient glaciers - -Purpose of changes ------------------- - -Up until now, when computing the dynbal correction (conservation) fluxes -for transient glacier columns, we have been (1) counting the mass and -energy in the ice column as if that is a real state, but on the other -hand (2) NOT accounting for the fact that glacier columns don't -represent the soil under glacier. These two issues work in opposite -directions, but (1) dominates, because there is much more ice (and -energy, I think) in the roughly 50 m of glacial ice than there is in a -typical 50 m soil column. - -In discussing this issue with Bill Lipscomb, we came up with the idea of -subtracting some baseline value from each glacier column. I think that, -as long as we subtract the same baseline value throughout an entire -simulation for a given column, we will still conserve mass and energy -through dynamic landunit transitions. - -So, here we subtract baseline values from glacier columns, accounting -for the two issues mentioned above: (1) we subtract the water and energy -in the glacier ice, because this is a virtual state in CTSM, and (2) we -add the water and energy from the vegetated column(s), to account for -the fact that we don't have an explicit representation of -soil-under-glacier (this carries the assumption that the -soil-under-glacier has the same state as the initial vegetated state in -that grid cell). We set these baselines in initialization, so they begin -equal to the cold start state. Water and ice in the glacial ice stay -fixed over the course of a simulation, so the cold start values should -be the same as the current values at any point in time. The heat content -of the glacial ice does change over time, but by subtracting this -baseline value, we can potentially reduce the dynbal sensible heat -fluxes (however, note that it's also possible that these sensible heat -fluxes could increase when subtracting the cold start value, if ice -temperatures are closer to 0 deg C than to the cold start value, -currently 250 K). - -In addition, this introduces a new namelist flag, -reset_dynbal_baselines, which allows the user to reset these baselines -at some desired point in the simulation. I think that, in general, this -resetting would break conservation. But as long as it is done before the -onset of transient glaciers, I think this should be okay. In this way, -the user can minimize dynbal fluxes even further, by resetting the -baselines after the system has spun up. If the states haven't changed -much from this point to the point when glacier dynamics occur, then the -dynbal fluxes should now be very small. (See the documentation of this -flag in namelist_definition_ctsm.xml for more details.) - -Without this change, dynbal fluxes for a grid cell that undergoes 100% -glaciation / deglaciation in a single year are around 50 m ice, 1 m -liquid water, and a few tens of W m-2 (where those quantities of ice and -water are dribbled throughout the year, so we end up with an ice flux of -about 1.5e-6 mm/s throughout the year; and the energy flux is applied -evenly throughout the year - i.e., tens of W m-2 every time step for a -year). With this change, and with reset_dynbal_baselines set at an -appropriate time, these fluxes can be reduced to close to zero. - -Bugs fixed or introduced ------------------------- +Tag name: ctsm5.1.dev034 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Mon Apr 19 16:02:29 MDT 2021 +One-line Summary: Bring in Arctic changes to LUNA from Leah Birch -Issues fixed (include CTSM Issue #): -- Partially addresses ESCOMP/ctsm#274 (Dynamic landunits: improve water - and energy conservation) +Purpose and description of changes +---------------------------------- -CIME Issues fixed (include issue #): -- Fixes three issues related to inputdata checksum: - - ESCMI/cime#3033 - - ESCMI/cime#3034 - - ESCMI/cime#3036 +This is @lmbirch89 branch from #947 with the exception that Kattge is used in place of +Leuning in LUNA. Also the startup initial values in the luna bug fix branch #961 is +used in place of the updated values by @lmbirch89. The LUNA bug fixes have already come +in, so these are some changes to improve arctic plants. -Known bugs introduced in this tag (include github issue ID): -- ESCOMP/ctsm#659 (Subtract dynbal baselines from begwb and endwb) - - This can't be fixed until we're okay having this answer change on - master +We have addressed the issues in phenology and photosynthesis in the high latitudes. +Development was focused on PFT specific differences and we used observations to inform +model development. GPP is improved now such that the tundra is realistically less +productive than the boreal forest. -Known bugs found since the previous tag (include github issue ID): -- ESCOMP/ctsm#658 (Methane should not depend on gridcell-level TWS) Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -6970,156 +10729,176 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[X] clm5_0 +[x] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 -[X] clm4_5 -Significant answer changes for runs with transient glaciers. +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): + Fixes #807 -- Revisit PFT optical properties per Majasalmi and Bright (2019) + Fixes #1307 -- Turn on reseed_dead_plants when you start AD spinup mode + +Known bugs introduced in this tag (include issue #): + #1346 -- Use of floating point flag onset_thresh is confusing in CNPhenologyMod Notes of particular relevance for users --------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): -- For runs with transient glaciers, careful thought should be given to - when to set reset_dynbal_baselines -- Inconsistency between begwb/endwb and liq1/liq2/ice1/ice2 (see ESCOMP/ctsm#659) - Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): -- New namelist variable: reset_dynbal_baselines - -Changes made to namelist defaults (e.g., changed parameter values): none + New namelist items: onset_thresh_depends_on_veg and min_crtical_dayl_depends_on_lat -Changes to the datasets (e.g., parameter, surface or initial files): none +Changes made to namelist defaults (e.g., changed parameter values): + reseed_dead_plants turned on when AD spinup mode turned on + onset_thresh_depends_on_veg and min_crtical_dayl_depends_on_lat turned on for clm5_1 physics -Substantial timing or memory changes: none +Changes to the datasets (e.g., parameter, surface or initial files): + New parameter file (same as start used in PPE work) also has additional fields on it -Notes of particular relevance for developers: (including Code reviews and testing) +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): -- Inconsistency between begwb/endwb and liq1/liq2/ice1/ice2 (see ESCOMP/ctsm#659) - -Changes to tests or testing: -- Tweaked a test with transient glacier areas, including adding this new - flag to the test - -Code reviewed by: Bill Lipscomb reviewed the conceptual ideas, but -nobody has reviewed the actual code - - -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: - - cheyenne - not run - - tools-tests (test/tools): + As noted in #1346 some of the logic in CNPhenology in CNSeasonDecidPhenology is a bit confusing. + The soil layer used was put in CNSharedParameters and needed it's own subroutine to prevent circular dependencies. + There are new accumulator variables added that area always turned on even when not needed. Doing this + in a reasonable manner (without having lots of CNPhenology logic spilled into base types) would require + a refactoring of a better way to figure this out. - cheyenne - not run +Testing summary: regular +---------------- - PTCLM testing (tools/shared/PTCLM/test): + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - cheyenne - not run + build-namelist tests (if CLMBuildNamelist.pm has changed): - regular tests (aux_clm): + cheyenne - PASS - cheyenne ---- ok - hobart ------ ok + python testing (if python code has changed; see instructions in python/README.md; document testing done): - ok means tests pass, answers change as expected + cheyenne - PASS -CTSM tag used for the baseline comparisons: ctsm1.0.dev030 + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + cheyenne ---- OK + izumi ------- OK Answer changes -------------- -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +Changes answers relative to baseline: Yes for clm5_1 physics Summarize any changes to answers, i.e., - - what code configurations: ALL, but different configurations show - different levels of changes, as noted below + - what code configurations: clm5_1 - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - - new climate (at least regionally) for some configurations; - roundoff for others: see below - - There are three levels of changes here: - - (1) For runs with transient glaciers, there are large answer changes - in regions with changing glacier area. These answer changes are - in the various dynbal fluxes - for liquid water and ice runoff, - and for the dynbal sensible heat flux. - - (2) For runs with transient vegetation (Hist, Dv and Fates), there - are roundoff-level changes in the dynbal fluxes. For liquid - water and ice, these changes appear to only occur in grid cells - where there is some glacier area (because now both the before - and after gridcell water contents have changed by the same fixed - amount, which changes the difference at the roundoff level). For - heat, there are roundoff-level changes everywhere (because of - changes in the order of operations). - - (3) All runs have large changes in the diagnostic variables, - ICE_CONTENT1, LIQUID_CONTENT1 and HEAT_CONTENT1, over grid cells - containing some glacier area. - - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A + - nature of change: new 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) - - casename: N/A + oleson -- clm50_ctsm10d089_2deg_GSWP3V1_lmbirch_wkattge_jmaxb1-0.17_slatopA_1850AD - URL for LMWG diagnostics output used to validate new climate: N/A - + URL for LMWG diagnostics output used to validate new climate: + http://webext.cgd.ucar.edu/I1850/clm50_ctsm10d089_2deg_GSWP3V1_lmbirch_wkattge_jmaxb1-0.17_slatopA_1850AD/ -Detailed list of changes ------------------------- -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -- cime: cime5.7.9 -> ctsm/ctsm1.0/cime5.7.9/n01 - - Fixes issues related to inputdata checksum +Other details +------------- +Pull Requests that document the changes (include PR ids): #990 +(https://github.com/ESCOMP/ctsm/pull) -Pull Requests that document the changes (include PR ids): -- https://github.com/ESCOMP/ctsm/pull/650 + #990 -- Arctic changes branch with Kattge in place of Leuning in LUNA =============================================================== =============================================================== -Tag name: ctsm1.0.dev030 -Originator(s): sacks (Bill Sacks) -Date: Fri Mar 8 15:08:34 MST 2019 -One-line Summary: Update CIME; hookup expected test fails +Tag name: ctsm5.1.dev033 +Originator(s): mvertens (Mariana Vertenstein), sacks (Bill Sacks) +Date: Sat Apr 10 16:42:06 MDT 2021 +One-line Summary: Remove unnecessary settings of nextsw_cday -Purpose of changes ------------------- +Purpose and description of changes +---------------------------------- -Two main changes: +Remove setting of nextsw_cday in initialization: this hasn't been needed +ever since we stopped calculating albedos in initialization. -(1) Update to latest cime (from ctsm/ctsm1.0/cime5.7.5/n01 to - cime5.7.9). Some of the important changes are: - - Fix for recent cheyenne system changes - - New domain file for f19_g17 (changes answers at the roundoff - level) - - New domain file for T31_g37 (changes answers by greater than - roundoff) +Also remove nextsw_cday from clm_time_manager: this was being set but +was never referenced from here: instead, nextsw_cday was being passed as +an argument to clm_drv. + +Also, updates cime to a branch tag where I have fixed the --retry option +to create_test. + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 -(2) In system tests: Annotate cs.status output with expected failures Bugs fixed or introduced ------------------------ -Issues fixed (include CTSM Issue #): -- Fixes ESCOMP/ctsm#654 +CIME Issues fixed (include issue #): +- ESMCI/cime#3912 (create_test --retry fails if the test is doing + baseline generation) + +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: cime5.8.42 -> branch_tags/cime5.8.42_a01 + +Pull Requests that document the changes (include PR ids): +- Second part of https://github.com/ESCOMP/CTSM/pull/1330 + +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev032 +Originator(s): mvertens (Mariana Vertenstein), sacks (Bill Sacks) +Date: Sat Apr 10 09:47:25 MDT 2021 +One-line Summary: Fix bugs in co2 from atmosphere + +Purpose and description of changes +---------------------------------- -CIME Issues fixed (include issue #): (Many) +ctsm5.1.dev002 introduced bugs when receiving co2 from the atmosphere, +both for mct and nuopc: +- For mct, with spatially-varying co2 from atmosphere, all grid cells on + a given processor were given the co2 value from the last grid cell on + that processor +- For nuopc, co2 from atmosphere was ignored and overridden with a + constant co2 value +This tag fixes both of those bugs. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -7129,242 +10908,287 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[ ] clm5_0 +[X] clm5_1 -[ ] clm4_5 +[X] clm5_0 -Notes of particular relevance for users ---------------------------------------- +[X] ctsm5_0-nwp -Caveats for users (e.g., need to interpolate initial conditions): none +[X] clm4_5 -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none -Changes made to namelist defaults (e.g., changed parameter values): none +Bugs fixed or introduced +------------------------ +[Remove any lines that don't apply. Remove entire section if nothing applies.] -Changes to the datasets (e.g., parameter, surface or initial files): none +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1327 (When using co2 from atmosphere with mct, it + looks like values are taken just from the last gridcell on each proc) -Substantial timing or memory changes: none? - The PFS test showed a significant speedup (170s in the previous tag, - 124s in this tag). However, some other tests showed either a slowdown - or not much change. So I'm not sure there is a consistent pattern of - speedup in this tag. +Testing summary: +---------------- -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + cheyenne ---- OK + izumi ------- OK -Changes to tests or testing: none +Answer changes +-------------- -Code reviewed by: Erik Kluzek +Changes answers relative to baseline: YES + Summarize any changes to answers, i.e., + - what code configurations: Cases where CTSM receives CO2 from atmosphere + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + potentially new climate -CTSM testing: + Answer changes due to fixing these issues: + - For mct, with spatially-varying co2 from atmosphere, all grid cells on + a given processor were given the co2 value from the last grid cell on + that processor + - For nuopc, co2 from atmosphere was ignored and overridden with a + constant co2 value - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + In the test suite, this leads to changes in: + - ERP_D_Ld10_P36x2_Vnuopc.f10_f10_mg37.IHistClm51BgcCrop.cheyenne_intel.clm-ciso_decStart + - ERS_Ly3_P72x2_Vnuopc.f10_f10_mg37.IHistClm50BgcCropG.cheyenne_intel.clm-cropMonthOutput + - SMS_D_Ln9_P480x1_Vnuopc.f19_g17.IHistClm50Sp.cheyenne_intel.clm-waccmx_offline - build-namelist tests: + But more widespread changes are expected - including for mct - if + coupled runs can generate spatially-varying co2 from atm - cheyenne - not run +Other details +------------- +Pull Requests that document the changes (include PR ids): +- Merges the first part of the changes in + https://github.com/ESCOMP/CTSM/pull/1330 - tools-tests (test/tools): +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev031 +Originator(s): jedwards (Jim Edwards), sacks (Bill Sacks) +Date: Sat Apr 10 07:33:49 MDT 2021 +One-line Summary: Update externals and fixes for nuopc threading - cheyenne - not run +Purpose and description of changes +---------------------------------- - PTCLM testing (tools/shared/PTCLM/test): +(1) Some fixes for threading with the nuopc/cmeps driver. (However, + threading with nuopc/cmeps still doesn't work completely: see + https://github.com/ESCOMP/CTSM/issues/1331.) - cheyenne - not run +(2) Updates externals to versions needed for these nuopc threading changes - regular tests (aux_clm): +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - cheyenne ---- ok - hobart ------ ok +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.) - ok means tests pass, some baselines failed as noted below + [Put an [X] in the box for any configuration with significant answer changes.] - Most testing done with cime at eb2eb704f - excluded PR #3030, which - updated support for CAM-SE grids (but the changes in this PR were - very limited). Ran SSP tests with the final version of cime (so I'd - have a few tests covering the latest cime). +[ ] clm5_1 -CTSM tag used for the baseline comparisons: ctsm1.0.dev029 +[ ] clm5_0 +[ ] ctsm5_0-nwp -Answer changes --------------- +[ ] clm4_5 -Changes answers relative to baseline: YES - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +Bugs fixed or introduced +------------------------ +Known bugs introduced in this tag (include issue #): +- https://github.com/ESCOMP/CTSM/issues/1331 Some runs with NUOPC driver + with multiple threads can hang - Summarize any changes to answers, i.e., - - what code configurations: f19_g17, T31_g37 - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: +- Temporarily changed + SMS_D_Ln9_P480x3_Vnuopc.f19_g17.IHistClm50Sp.cheyenne_intel.clm-waccmx_offline + to use a 480x1 layout so that it will pass reliably (see + https://github.com/ESCOMP/CTSM/issues/1331) - - f19_g17: roundoff-level, presumably due to new domain file (some - diffs grew to greater than roundoff-level: some methane - variables in a long test - - SMS_Lm13.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-cropMonthOutput; - and many variables in test with flooding - - ERP_P180x2_D.f19_g17.I2000Clm50SpRtmFl.cheyenne_intel.clm-default) +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - - T31_g37: greater than roundoff-level, presumably due to new - domain file from cime commit 4fcf592ee + cheyenne ---- OK + izumi ------- OK +If the tag used for baseline comparisons was NOT the previous tag, note that here: - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A +Answer changes +-------------- - URL for LMWG diagnostics output used to validate new climate: N/A - +Changes answers relative to baseline: YES (but very limited) -Detailed list of changes ------------------------- + Summarize any changes to answers, i.e., + - what code configurations: NUOPC driver with CISM + - what platforms/compilers: cheyenne_intel; maybe others + - nature of change (roundoff; larger than roundoff/same climate; new climate): roundoff + + For an unknown reason, the new externals lead to small differences + in global sums in the CMEPS driver/mediator. For what we assume is + the same reason, lnd -> glc fields can change by roundoff (probably + due to the global renormalization). + The only test in the aux_clm test suite where this shows up is + ERS_Ly3_P72x2_Vnuopc.f10_f10_mg37.IHistClm50BgcCropG.cheyenne_intel.clm-cropMonthOutput + + If bitwise differences were observed, how did you show they were no worse + than roundoff? + + Inspection of cpl hist files + +Other details +------------- List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -- cime: ctsm/ctsm1.0/cime5.7.5/n01 -> cime5.7.9 +- cism: cism2_1_75 -> cism_1_78 +- rtm: rtm1_0_75 -> rtm1_0_76 +- mosart: mosart1_0_41 -> mosart1_0_42 +- cime: cime5.8.39 -> cime5.8.42 +- cmeps: v0.5.0 -> v0.9.0 +- cdeps: v0.5.0 -> v0.6.0 Pull Requests that document the changes (include PR ids): -- https://github.com/ESCOMP/ctsm/pull/602 +- https://github.com/ESCOMP/CTSM/pull/1319 =============================================================== =============================================================== -Tag name: ctsm1.0.dev029 -Originator(s): slevis (Samuel Levis, SLevis Consulting LLC, 303-665-1310) -Date: Tue Feb 26 23:42:39 MST 2019 -One-line Summary: Collapse landunits to the N most dominant - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev030 +Originator(s): mvertens / erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Wed Mar 31 16:46:04 MDT 2021 +One-line Summary: New single column functionality for the NUOPC cap - Allows the collapse to fewer landunits using the concept of - N most dominant for the purpose of faster runs, eg in the context - of NWP (Numerical Weather Prediction). +Purpose and description of changes +---------------------------------- -Bugs fixed or introduced ------------------------- +Implemented new nuopc/cmeps single column functionality. -Issues fixed (include CTSM Issue #): #581 +In config/cesm/config_files.xml - single point domains are only used +for mct/cpl7. For cmeps single point meshes are now generated on the +fly and component domains files are no longer needed. +env_run.xml variables PTS_LAT, PTS_LON and PTS_DOMAINFILE are used +to determine if there is a single point or single column run. +If PTS_LAT and PTS_LON are not -999 and PTS_DOMAINFILE is UNSET, +then you have a single point run and the exact values of PTS_LAT +and PTS_LON are used. If PTS_LAT and PTS_LON are not -999 and +PTS_DOMAINFILE is not UNSET, then then the cmeps driver will recognize the nearest neighbor +values of PTS_LAT and PTS_LON in PTS_DOMAINFILE as the single column lat and lon to use. Significant changes to scientifically-supported configurations -------------------------------------------------------------- -Does this tag change answers significantly for any of the following physics configurations? No +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.] +[ ] clm5_1 + [ ] clm5_0 +[ ] ctsm5_0-nwp + [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): None +Bugs fixed or introduced +------------------------ -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): - New namelist variable n_dom_landunits with valid integer values from 0 to - max_lunit currently equal to 9, where 0 means “do nothing†and other - values determine the number of active landunits when running the model. +Issues fixed (include CTSM Issue #): + Fixes #1312 -- Add NUOPC tests + Fixes #1302 -- Setup to allow landuse.timeseries file for high resolution cases for 2000-2025 + Fixes #1183 -- mkmapdata needs input option for large file support, current defaults unsuitable for high res grids. -Changes made to namelist defaults (e.g., changed parameter values): None +Known bugs introduced in this tag (include issue #): -Changes to the datasets (e.g., parameter, surface or initial files): None +Known bugs found since the previous tag (include issue #): + #1317 -- MPI timeout for some izumi_nag tests reading in datm forcing files in NUOPC cap + #1314 -- Send unset value for scol_lat/lon from driver -Substantial timing or memory changes: None +Notes of particular relevance for users +--------------------------------------- -Notes of particular relevance for developers: (including Code reviews and testing) +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): - There is a question left in on whether the collapse call needs to also - be moved to inside dynamic landunits reading. + Nine step tests changed so that they have ROF run at same frequency as ATM (like the similar CAM tests) + as these will fail with NUOPC since it doesn't allow you to end not on an even time-step for all components. + One of these tests changed to a CAM type test from decStart -Changes to tests or testing: Yes - ERS_D_Ld10.f10_f10_musgs.IHistClm50BgcCropGs.cheyenne_intel.clm-collapse_to_dominant_decStart - now replaces (by combining with) this test introduced in ctsm1.0.dev026 - ERS_D_Ld10.f10_f10_musgs.IHistClm50BgcCropGs.cheyenne_intel.clm-collapse_nat_pfts_decStart - I added subroutine test_collapse_to_dom_landunits to test_surfrdUtils.pf - to include new Unit Tests. In same file I renamed - subroutine test_collapse_nat_pfts to test_collapse_to_dom_pfts - to accurately describe the contents of the subroutine. +Changes to tests or testing: Add more NUOPC tests to test list -Code reviewed by: Erik Kluzek -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Testing summary: regular +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - build-namelist tests: + build-namelist tests (if CLMBuildNamelist.pm has changed): cheyenne - PASS - regular tests (aux_clm): + tools-tests (test/tools) (if tools have been changed): + + cheyenne - OK + + python testing (if python code has changed; see instructions in python/README.md; document testing done): + + cheyenne -- FAIL + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): cheyenne ---- OK - hobart ------ OK + izumi ------- OK -CTSM tag used for the baseline comparisons: - ctsm1.0.dev028 + any other testing (give details below): Ran full izumi test list for nuopc driver (failed tests appear above) + +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- Changes answers relative to baseline: No + (List of fields change though) -Detailed list of changes ------------------------- - Replaced existing subroutine collapse_nat_pfts with - subroutine collapse_to_dominant which can collapse to the - N dominant landunits or N dominant pfts by performing the - same actions on the data. +Other details +------------- -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime, CDEPS, CMEPS + cime to cime5.8.39 + CDEPS to v0.5.0 + CMEPS to v0.5.0 -Pull Requests that document the changes (include PR ids): #639 - https://github.com/ESCOMP/ctsm/pull/639 +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + #1309 -- New single column functionality for NUOPC/CMEPS + #1310 -- run_sys_tests: add --retry option on izumi =============================================================== =============================================================== -Tag name: ctsm1.0.dev028 -Originator(s): sacks (Bill Sacks) -Date: Tue Feb 26 14:35:01 MST 2019 -One-line Summary: Interpolate out-of-the-box initial conditions and remove expensive tests - -Purpose of changes ------------------- - -Two main changes (plus some small additional changes): - -1. Removed / reworked some expensive tests +Tag name: ctsm5.1.dev029 +Originator(s): mvertens (Mariana Vertenstein), sacks (Bill Sacks) +Date: Thu Mar 18 21:21:21 MDT 2021 +One-line Summary: Rework domain initialization for nuopc -2. Interpolated all out-of-the-box initial conditions, so that the - out-of-the-box version is now compatible with our current - configuration. The changes from before were (a) our standard - configuration now uses the gx1v7 rather than gx1v6 land mask; (b) - many inactive points are now absent in memory. +Purpose and description of changes +---------------------------------- -See https://github.com/ESCOMP/ctsm/pull/622 for details. - - -Bugs fixed or introduced ------------------------- - -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#312 -- Partially addresses ESCOMP/ctsm#275 (just a bit) +Total rework of land domain initialization - no longer need domain files +to be created with NUOPC cap. +Also, significant performance improvements with the NUOPC cap. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -7374,184 +11198,83 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[ ] clm5_0 - -[ ] clm4_5 - -Notes of particular relevance for users ---------------------------------------- +[ ] clm5_1 -Caveats for users (e.g., need to interpolate initial conditions): none - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +[ ] clm5_0 -Changes made to namelist defaults (e.g., changed parameter values): none +[ ] ctsm5_0-nwp -Changes to the datasets (e.g., parameter, surface or initial files): -- New finidat files +[ ] clm4_5 -Substantial timing or memory changes: -- Faster initialization times for cases that no longer need to interpolate initial conditions -Notes of particular relevance for developers: (including Code reviews and testing) +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 -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - -Changes to tests or testing: -- Removed or reworked expensive tests: see details in https://github.com/ESCOMP/ctsm/pull/622 - -Code reviewed by: Erik Kluzek - - -CTSM testing: - - [PASS means all tests PASS and OK means tests PASS other than expected fails.] - - build-namelist tests: - - cheyenne - not run - - tools-tests (test/tools): - - cheyenne - not run - - PTCLM testing (tools/shared/PTCLM/test): - - cheyenne - not run - - regular tests (aux_clm): +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- We still need to figure out how to apply this to LILAC: for now, LILAC + is still using the old method (as is MCT): reading domain information + from fatmlndfrac - cheyenne ---- ok - hobart ------ ok - ok: tests pass, baselines fail as expected +Testing summary: +---------------- -CTSM tag used for the baseline comparisons: ctsm1.0.dev027 + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + cheyenne ---- OK + izumi ------- PASS Answer changes -------------- -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +Changes answers relative to baseline: YES, but just for NUOPC and +limited changes for LILAC Summarize any changes to answers, i.e., - - what code configurations: all configurations that still need use_init_interp = .true. + - what code configurations: NUOPC, and limited changes for LILAC - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Not investigated carefully, but expected to be larger than roundoff/same climate - - Answers change for cases that still need to do interpolation from - these out-of-the-box finidat files. - - I first confirmed that the new finidat files are good via: - - - Compared `ncdump -h` of old vs. new initial conditions files - - - Ran the following tests, with comparison against master; verified that - these all pass and are bit-for-bit, that they use the new initial - conditions files, and that they now have `use_init_interp` unset - (whereas they used to have `use_init_interp` set to `.true.`); note - that these cover 6 of the 7 new initial conditions files: - - ``` - SMS_Ld1.f09_g17.I1850Clm45BgcGs.cheyenne_intel.clm-default - SMS_Ld1.f09_g17.I1850Clm45BgcCruGs.cheyenne_intel.clm-default - SMS_Ld1.f09_g17.I1850Clm50Sp.cheyenne_intel.clm-default - SMS_Ld1.f09_g17.I1850Clm50BgcCrop.cheyenne_intel.clm-ciso - SMS_Ld1.f09_g17.I1850Clm50BgcCropCru.cheyenne_intel.clm-ciso - SMS_Ld1.f09_g17.I1850Clm50SpCru.cheyenne_intel.clm-default - ``` + - nature of change (roundoff; larger than roundoff/same climate; new climate): + roundoff - - To cover the last new initial conditions file, ran the following test - (with the same checks as above: passes and bit-for-bit, checked - finidat, and checked `use_init_interp`), with `./xmlchange - LND_TUNING_MODE=clm5_0_cam6.0` (for the baseline for this test, I set - `init_interp_method = 'use_finidat_areas'`, which I also used in - interpolating this initial conditions file): - - ``` - SMS_Ld1.f09_g17.I1850Clm50BgcCrop.cheyenne_intel - ``` + For nuopc: changes in area (relatively large differences in the + f10 test in the test suite, but Mariana saw only very small + changes in an f09 case), landfrac; these influence l2r fields, + which in turn influence TWS and methane fields. - Details on answer changes: - - As noted above, these changes are bit-for-bit for configurations - that can now use the out-of-the-box initial conditions without - interpolation. However, answers change for configurations that still - require interpolation of the out-of-the-box initial conditions - (e.g., because they are at a different resolution than the finidat - file). - - I expected these answer changes around the Caspian Sea, due to the - fact that we are now effectively interpolating twice from the - original file: once to produce the new out-of-the-box file (which - includes an interpolation from `gx1v6` to `gx1v7`, and so - interpolates onto the Caspian Sea region) and once to go from - `f09_g17` to the target resolution (rather than interpolating - directly from `f09_g16` to the target resolution). - - However, when I ran a test with comparison to baselines - - `ERP_Ld5.f19_g17.I1850Clm50Bgc.cheyenne_intel.clm-default` - I saw - changes in regions further afield than simply around the Caspian - Sea. See images in https://github.com/ESCOMP/ctsm/pull/622 for - details. It's possible that the other differences are also due to - the Caspian Sea change, but it's also possible that there is some - other cause here that I don't understand. But Erik Kluzek and I - agreed that it isn't worth trying to understand these other - (isolated) differences. - - Also note: While most f09_g17 tests are bit-for-bit with the earlier - tag (because now use_init_interp is .false. for those tests), - `SMS_Ld2_D.f09_g17.I1850Clm50BgcCropCmip6.cheyenne_intel.clm-basic_interp` - differs in some glc forcing fields for a few grid cells in - Antarctica. This is perhaps not surprising, since this test needs to - use interpolation to get fields for the Antarctica virtual columns; - so, while I don't completely understand the cause of these answer - changes, I suspect the root cause is similar to the isolated answer - changes I saw sprinkled around the world for - `ERP_Ld5.f19_g17.I1850Clm50Bgc.cheyenne_intel.clm-default`. + For lilac: just changes in area If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A - - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A - - URL for LMWG diagnostics output used to validate new climate: N/A - + than roundoff? Examination of cprnc diffs. -Detailed list of changes ------------------------- +Other details +------------- -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- rtm: rtm1_0_74 -> rtm1_0_75 +- mosart: branch_tag/pio2.n01_mosart1_0_38 -> mosart1_0_41 Pull Requests that document the changes (include PR ids): -- https://github.com/ESCOMP/ctsm/pull/622 +- https://github.com/ESCOMP/CTSM/pull/1258 +- https://github.com/ESCOMP/CTSM/pull/1236 (closed and replaced by 1258) =============================================================== =============================================================== -Tag name: ctsm1.0.dev027 -Originator(s): negins (Negin Sobhani,UCAR/CSEG,303-497-1224) -Date: Tue Feb 19 12:57:12 MST 2019 -One-line Summary: Non-constant time initialization for soil hydrology types are moved to SoilHydrologyType.F90. - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev028 +Originator(s): swensosc (Sean Swenson) +Date: Wed Mar 17 20:08:51 MDT 2021 +One-line Summary: Change limitation of top layer evaporation/sublimation -Initalization of time-varying `zwt`, `zwt_perched`, and `frost_table` are moved to `InitCold` in `SoilHydrologyType.F90`. +Purpose and description of changes +---------------------------------- -Previously, `zwt`, `zwt_perched`, and `frost_table` were initialized in `SoilHydrologyInitTimeConstMod.F90`, which caused confusions. +Sublimation from top soil layer and evaporation/sublimation from top +snow layer needs to be limited to ensure moisture states do not become +negative. The original formulation did not always work, so we added a +new limitation to SoilFluxesMod. -Bugs fixed or introduced ------------------------- -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#575 ("Some variables initialized in SoilHydrologyInitTimeConstMod are not time-constant") +Also removes a limitation in SoilHydrologyMod that seemed not to +conserve energy and should no longer be necessary with the reworked +limitation in SoilFluxesMod. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -7561,95 +11284,86 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[ ] clm5_0 - -[ ] clm4_5 - -Notes of particular relevance for users ---------------------------------------- - -Caveats for users (e.g., need to interpolate initial conditions): none - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none - -Changes made to namelist defaults (e.g., changed parameter values): none - -Changes to the datasets (e.g., parameter, surface or initial files): none - -Substantial timing or memory changes: none - -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - -Changes to tests or testing: Updated a test. The test added in previous tag included decStart with transient glaciers, which would not work. Hence, this test is modified so the compset does not include G. -Test IHistClm50SpG is updated to IHistClm50Sp. +[ ] clm5_1 -Code reviewed by: -Bill Sacks -Erik Kluzek - -CTSM testing: +[ ] clm5_0 +[ ] ctsm5_0-nwp - build-namelist tests: +[ ] clm4_5 - cheyenne - not run - tools-tests (test/tools): +Bugs fixed or introduced +------------------------ - cheyenne - not run +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1253 (h2osoi_ice can go significantly negative) - PTCLM testing (tools/shared/PTCLM/test): - cheyenne - not run +Notes of particular relevance for users +--------------------------------------- - regular tests (aux_clm): +Caveats for users (e.g., need to interpolate initial conditions): +- The old flux limitation in SoilHydrologyMod has been replaced by a + truncation of roundoff-level values followed by a check that the final + state is non-negative. Although this check hasn't been triggered in + any of our testing, it's possible that we'll run into situations where + we need to relax the tolerance for this check. - cheyenne ---- ok - hobart ------ ok +Testing summary: +---------------- - ok means tests pass, except for the expected failures. + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -CTSM tag used for the baseline comparisons: -ctsm1.0.dev026 + cheyenne ---- OK + izumi ------- OK Answer changes -------------- +-------------- -Changes answers relative to baseline: no +Changes answers relative to baseline: YES + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Not investigated carefully, but expected to be larger than + roundoff/same climate -Detailed list of changes ------------------------- + If bitwise differences were observed, how did you show they were no worse + than roundoff? N/A -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -Pull Requests that document the changes (include PR ids): -PR #631 Soil hydrology initialization of time-constant variables moved to SoilHydrologyType -https://github.com/ESCOMP/ctsm/pull/631 +Other details +------------- +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1282 =============================================================== =============================================================== -Tag name: ctsm1.0.dev026 -Originator(s): slevis (Samuel Levis, SLevis Consulting LLC, 303-665-1310) -Date: Tue Feb 5 17:08:48 MST 2019 -One-line Summary: Collapse unmanaged PFTs to the N most dominant - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev027 +Originator(s): sacks (Bill Sacks) +Date: Mon Mar 15 14:05:20 MDT 2021 +One-line Summary: Update cime and other externals; includes switch to pio2 -To run simulations fast for applications such as NWP (Numerical Weather -Prediction), allow collapsing natural PFT's to the number the user wants. +Purpose and description of changes +---------------------------------- +Updates cime and other externals to version in cesm2_3_alpha02b (with +some minor changes to cime on top of that). This includes substantial +changes to cime, including switching to PIO2 rather than PIO1. -Bugs fixed or introduced ------------------------- +Also: -Issues fixed (include CTSM Issue #): 457 +- For LILAC, changes default pio_rearranger now that we're using PIO2 by + default +- In run_sys_tests, adds '-k oed' to qsub command on cheyenne; this is + useful now that qpeek is disabled on cheyenne (this puts the job's + stdout and stderr files directly in their final location from the + beginning, rather than keeping them in some temporary location on the + compute node until the job completes) Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -7659,117 +11373,98 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[ ] clm5_0 - -[ ] clm4_5 - -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): -New namelist parameter n_dom_pfts with valid integer values from 0 to -14, where 0 means “do nothing†and other values determine the number -of active pfts when running the model +[ ] clm5_1 -Changes made to namelist defaults (e.g., changed parameter values): None +[ ] clm5_0 -Changes to the datasets (e.g., parameter, surface or initial files): None +[ ] ctsm5_0-nwp -Substantial timing or memory changes: None (unless new option invoked) +[ ] clm4_5 -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Bugs fixed or introduced +------------------------ -Changes to tests or testing: updated tests, added new test -Updated standard testing test to include decStart -(December start). Confirmed that answers were bit-for-bit same with -baseline before introducing the change. -Added standard testing test to test n_dom_pfts = 2 in a -transient vegetation case with December start. -Added subroutine test_collapse_nat_pfts to test_surfrdUtils.pf to -include new Unit Tests. - -Code reviewed by: -Erik Kluzek -Bill Sacks +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1175 (Once there is a cime tag with pio2 as the + default, update to it) +- Resolves ESCOMP/CTSM#1194 (Once we switch to pio2 by default, change + the default rearranger used in LILAC) -CTSM testing: +Notes of particular relevance for users +--------------------------------------- - [PASS means all tests PASS and OK means tests PASS other than expected fails.] +Caveats for users (e.g., need to interpolate initial conditions): +- PIO2 is now the default. This has been tested extensively, but let us + know if you run into any I/O related issues. Also, from testing we've + done, I/O performance looks better than with PIO1 in many cases, but + also let us know if you see a substantial degradation in I/O + performance. - build-namelist tests: +Changes made to namelist defaults (e.g., changed parameter values): +- Some I/O-related defaults change with the use of PIO2 rather than PIO1 - cheyenne - PASS +Substantial timing or memory changes: +- Various changes due to the change to PIO2, some of them large. For the + most part, timing improves with PIO2, particularly for production + resolutions. +- The PFS test and many others show a substantial improvement in timing. + This is especially noticeable in initialization time. For example, the + initialization time of + PFS_Ld20.f09_g17.I2000Clm50BgcCrop.cheyenne_intel dropped from 111 sec + to 34 sec. (These tests were run a couple of weeks apart, before and + after a cheyenne upgrade, so there may be some machine variability in + these numbers, but I saw a big improvement a few months ago with a + more objective comparison.) + +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - regular tests (aux_clm): + cheyenne ---- ok + izumi ------- pass - cheyenne ---- OK - hobart ------ OK +If the tag used for baseline comparisons was NOT the previous tag, note that here: -CTSM tag used for the baseline comparisons: -ctsm1.0.dev025 Answer changes -------------- -Changes answers relative to baseline: No (bit-for-bit) - -Detailed list of changes ------------------------- +Changes answers relative to baseline: YES, but just for nuopc -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + Summarize any changes to answers, i.e., + - what code configurations: Just with nuopc driver + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Not investigated -Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/ctsm/pull/588 -- NWP collapse pfts to the N most dominant -https://github.com/ESCOMP/ctsm/pull/583 -- Add routine to find indices of max k values in data + The only test that changes answers is + SMS_D_Ld5_Vnuopc.f10_f10_mg37.I2000Clm50BgcCrop.cheyenne_intel.clm-default -Added new subroutines collapse_nat_pfts and collapse_crop_var and called -them from surfrdMod.F90. The second of these subroutines is not needed -when collapsing unmanaged PFTs; however, I created it early in the PR -and decided to keep it for use soon with crop-related variables like -irrigation water and fertilizer. + (There are NLCOMP failures in all tests, though, due to the update to pio2.) -Bill Sacks made changes to include subroutine find_k_max_indices for the -benefit of this PR (#583) +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- CISM: cism2_1_69 -> cism2_1_75 +- RTM: rtm1_0_73 -> rtm1_0_74 +- MOSART: mosart1_0_38 -> branch_tag/pio2.n01_mosart1_0_38 +- CIME: branch_tags/cime5.8.32_a02 -> branch_tags/cime5.8.37_a02 +- CMEPS: 7654038 -> c4acaa8 +- CDEPS: 45b7a85 -> 1f02a73 =============================================================== =============================================================== -Tag name: ctsm1.0.dev025 -Originator(s): Keith Oleson, Bill Sacks -Date: Wed Jan 23 10:48:01 MST 2019 -One-line Summary: History fields for vertically-resolved sums of soil C and N, and minor fixes - -Purpose of changes ------------------- - -Main change is from Keith Oleson: Add history fields for -vertically-resolved sums of SOIL1C, SOIL2C, and SOIL3C for C12, C13, -C14, and similarly for N. New fields are SOILC_vr, C13_SOILC_vr, and -C14_SOILC_vr, and SOILN_vr. For runs that use the output_bgc usermods, -including cmip6 runs, we no longer output 'SOIL1C_vr', 'SOIL1N_vr', -'SOIL2C_vr', 'SOIL2N_vr', 'SOIL3C_vr', 'SOIL3N_vr'; instead we output -'SOILC_vr', 'SOILN_vr', and similarly for C isotopes. - -Also minor fixes: -- Output cpl hist files in SSP test (resolves ESCOMP/ctsm#61) -- Remove FATES-related commented-out code in OzoneMod (this has been - moved to https://github.com/ESCOMP/ctsm/issues/618) -- Minor tweak to run_sys_tests +Tag name: ctsm5.1.dev026 +Originator(s): sacks (Bill Sacks) +Date: Mon Mar 8 13:20:33 MST 2021 +One-line Summary: Change f10 tests to use mg37 mask -Bugs fixed or introduced ------------------------- +Purpose and description of changes +---------------------------------- -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#61 +The musgs mask will soon be dropped, and has already been dropped for +nuopc Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -7779,58 +11474,100 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 +[ ] ctsm5_0-nwp + [ ] clm4_5 -Notes of particular relevance for users ---------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): none +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: All f10_f10_musgs tests changed to f10_f10_mg37 -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none -Changes made to namelist defaults (e.g., changed parameter values): -- For runs that use the output_bgc usermods, including cmip6 runs, we no - longer output 'SOIL1C_vr', 'SOIL1N_vr', 'SOIL2C_vr', 'SOIL2N_vr', - 'SOIL3C_vr', 'SOIL3N_vr'; instead we output 'SOILC_vr', 'SOILN_vr', - and similarly for C isotopes. +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): -Changes to the datasets (e.g., parameter, surface or initial files): none + cheyenne ---- pass + izumi ------- pass -Substantial timing or memory changes: none +Answer changes +-------------- -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide +Changes answers relative to baseline: NO -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + BFAIL results for all f10 tests because the tests have changed, but + no answer changes -Changes to tests or testing: none +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev025 +Originator(s): sacks (Bill Sacks) +Date: Tue Feb 23 11:20:17 MST 2021 +One-line Summary: Refactor ozone code, and misc. small fixes -Code reviewed by: Bill Sacks; Erik Kluzek reviewed the changes to the SSP test +Purpose and description of changes +---------------------------------- +(1) Restructure ozone code (https://github.com/ESCOMP/CTSM/pull/1276) in + preparation for new ozone parameterization. -CTSM testing: +(2) Fix non-standard hexadecimal constant + (https://github.com/ESCOMP/CTSM/pull/1271), needed for gfortran 10 - build-namelist tests: +(3) Remove support for CISM1 (https://github.com/ESCOMP/CTSM/pull/1226) - cheyenne - not run +(4) Move final WaterGridcellBalance call out to clm_driver (resolves + ESCOMP/CTSM#1286) - tools-tests (test/tools): +(5) Only add WA and QCHARGE history fields if use_aquifer_layer is true + (resolves ESCOMP/CTSM#1281) - cheyenne - not run +(6) Consolidate conditional structures for VIC initialization (resolves + ESCOMP/CTSM#1287) - PTCLM testing (tools/shared/PTCLM/test): +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- - cheyenne - not run +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.) - regular tests (aux_clm): + [Put an [X] in the box for any configuration with significant answer changes.] - cheyenne ---- pass - hobart ------ pass +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed or introduced +------------------------ -CTSM tag used for the baseline comparisons: ctsm1.0.dev024 +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1286 (Move call to WaterGridcellBalance out to + the driver) +- Resolves ESCOMP/CTSM#1281 (Remove deprecated history output) +- Resolves ESCOMP/CTSM#1287 (Inconsistent logic for VIC initialization + can cause crash in debug mode) +- Resolves ESCOMP/CTSM#1270 (Hexadecimal constants use non-standard + Fortran) + + +Testing summary: +---------------- + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + cheyenne ---- OK + izumi ------- OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes @@ -7838,33 +11575,35 @@ Answer changes Changes answers relative to baseline: NO + Field lists differ for Clm50 / Clm51 / Ctsm50 tests; otherwise + bit-for-bit -Detailed list of changes ------------------------- - -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none - +Other details +------------- Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/ctsm/pull/551 +- https://github.com/ESCOMP/CTSM/pull/1276 (Restructure ozone code) +- https://github.com/ESCOMP/CTSM/pull/1271 (Fix non-standard hexadecimal constant) +- https://github.com/ESCOMP/CTSM/pull/1226 (Remove support for CISM1) =============================================================== =============================================================== -Tag name: ctsm1.0.dev024 -Originator(s): slevis (Samuel Levis,SLevis Consulting, LLC, 303-665-1310) -Date: Mon Jan 14 11:07:04 MST 2019 -One-line Summary: Remove unnecessary restart variables +Tag name: ctsm5.1.dev024 +Originator(s): slevis (Samuel Levis,303-665-1310) +Date: Sat Feb 20 14:42:33 MST 2021 +One-line Summary: Grid cell-level error check for H2O Purpose of changes ------------------ -Remove unnecessary restart variables to conserve on computing resources -and disk space + For more robust mass balance error checking, introduced + grid cell-level error check for H2O following the approach + of pull requests #984 and #1022 Bugs fixed or introduced ------------------------ -Issues fixed (include CTSM Issue #): 285 +Issues fixed (include CTSM Issue #): #201 Significant changes to scientifically-supported configurations @@ -7875,86 +11614,108 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 +[ ] ctsm5_0-nwp + [ ] clm4_5 Notes of particular relevance for users --------------------------------------- Caveats for users (e.g., need to interpolate initial conditions): + None Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + None Changes made to namelist defaults (e.g., changed parameter values): + None Changes to the datasets (e.g., parameter, surface or initial files): + None -Substantial timing or memory changes: +Substantial timing or memory changes: [For timing changes, can check PFS test(s) in the test suite] + None -Notes of particular relevance for developers: -Code reviewed by Bill Sacks. -Standard testing (cheyenne and hobart) OK -Unit testing PASS +Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide Caveats for developers (e.g., code that is duplicated that requires double maintenance): + None Changes to tests or testing: - -Code reviewed by: Bill Sacks + None CTSM testing: -Regular testing (cheyenne and hobart) OK -Unit testing PASS -CTSM tag used for the baseline comparisons: -ctsm1.0.dev023 + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - + + tools-tests (test/tools): + + cheyenne - + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - + + regular tests (aux_clm): + + cheyenne ---- OK (comparisons to baseline fail as expected) + izumi ------- OK (comparisons to baseline fail as expected) + +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: NO (bfb) +Changes answers relative to baseline: YES + + Summarize any changes to answers, i.e., + - what code configurations: ALL + - what platforms/compilers: ALL + - nature of change: ROUNDOFF + + Explanation: Moving call BalanceCheck to after the call lnd2glc in + subroutine clm_drv causes a change in order of operations that leads to + roundoff change in ERRH2O. Confirmed by running ./summarize_cprnc_diffs Detailed list of changes ------------------------ List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + None Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/ctsm/pull/598 - -Variables removed from restart: -plant_nalloc -pot_f_nit_vr* -f_nit_vr* -root_depth -qflx_floodg -snounload -qflx_snofrz_lyr -sminn_to_plant_fun_patch + https://github.com/ESCOMP/ctsm/pull/1228 =============================================================== =============================================================== -Tag name: ctsm1.0.dev023 -Originator(s): sacks (Bill Sacks) -Date: Thu Jan 10 13:00:42 MST 2019 -One-line Summary: Remove CLM4.0 - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev023 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Thu Feb 11 00:14:03 MST 2021 +One-line Summary: Calculate leaf biomass for non-woody PFTS, and a few other small answer changes -Remove CLM4.0. This consists of removing code and other files that are -specific to CLM4.0, and doing some resulting cleanup of code that was -shared between CLM4.0 and later versions (primarily in build-namelist). +Purpose and description of changes +---------------------------------- -Bugs fixed or introduced ------------------------- +Replace hard code constant 0.25 for leaf mass per area with calculation based on parameter slatop (specific leaf area, top of +canopy). Also move num_iter into loop over patches; currently it sits outside a loop, so p index is incorrect. -Issues fixed (include CTSM Issue #): -- Resolves #455 (Remove CLM4.0) +Also do some small answer changes in terms of new parameter files, and some other existing issues that have mild answer changes. Significant changes to scientifically-supported configurations @@ -7965,329 +11726,269 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[ ] clm5_0 - -[ ] clm4_5 - -Notes of particular relevance for users ---------------------------------------- +[X] clm5_1 -Caveats for users (e.g., need to interpolate initial conditions): -- Can no longer run CLM4.0 cases +[ ] clm5_0 -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): -- CLM4.0 compsets no longer supported +[ ] ctsm5_0-nwp -Changes made to namelist defaults (e.g., changed parameter values): none +[ ] clm4_5 -Changes to the datasets (e.g., parameter, surface or initial files): none -Substantial timing or memory changes: none +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): + Fixes #1256 -- num_iter incorrect + Fixes #1268 -- Leaf biomass not updated for + Fixes #1262 -- pconv should be 1 for crops + Fixes #1261 -- Restarts fail in AD-spinup mode + Fixes #1255 -- mkmapdata crashes because of modules + Fixes #1252 -- New urban dataset for fsurdat fails when used with new model + Fixes #1184 -- slatop for generic crop + Fixes #932 --- Diagnostic variables are incorrect + Fixes #478 --- Bare soil g1 should be zero -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- -NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide +Known bugs found since the previous tag (include issue #): + #1274 -- Dead PFTs in PPE2_BHSon simulations -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none -Changes to tests or testing: Removed CLM4.0 tests +Notes of particular relevance for users +--------------------------------------- -Code reviewed by: Erik Kluzek +Changes made to namelist defaults (e.g., changed parameter values): + Parameter files are updated +Changes to the datasets (e.g., parameter, surface or initial files): -CTSM testing: +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 - build-namelist tests: +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + Leaf biomass should still be completely moved outside of CanopyFluxes - cheyenne - pass +Changes to tests or testing: Add ADspinup test + Add an ADspinup restart test that would've detected one of the bugs fixed here - tools-tests (test/tools): - cheyenne - pass +Testing summary: regular tools +---------------- - PTCLM testing (tools/shared/PTCLM/test): + [PASS means all tests PASS; OK means tests PASS other than expected fails.] - cheyenne - ok + build-namelist tests (if CLMBuildNamelist.pm has changed): - Total number of tests = 52 - Number of tests that PASS = 51 - Number of tests that Fail = 1 - Number of compare tests that PASS = 37 - Number of compare tests that Fail = 4 - Number of tests without compare = 11 + cheyenne - PASS (348 tests are different because of parameter file update) - The one failing test is: - FAIL fail-no_towerdata.-d+/glade/p/cesmdata/cseg/inputdata++-s+RF-Bra+--debug+--pftgrid+--soilgrid. + tools-tests (test/tools) (if tools have been changed): - These same failures occurred in ctsm1.0.dev022 (including the - compare tests that Fail). Erik Kluzek says these failures are - okay. + cheyenne - PASS - regular tests (aux_clm): + python testing (if python code has changed; see instructions in python/README.md; document testing done): - cheyenne ---- pass - hobart ------ pass + cheyenne - PASS - Notes on testing: + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - - Most testing done on b5380c7e8. Since then, updated to a version of - cime that fixes cime's configure tool (but this isn't invoked in - system tests, so I didn't rerun the system tests) and pointed cime - to a tag rather than a hash. + cheyenne ---- PASS + izumi ------- PASS - - For tools tests: In baseline, cherry-picked commit 148bc2158 into - cime + any other testing (give details below): -CTSM tag used for the baseline comparisons: ctsm1.0.dev022 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: NO - -Detailed list of changes ------------------------- - -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -- cime: points to branch tag off of cime5.7.5 - (ctsm/ctsm1.0/cime5.7.5/n01), with changes for: - (1) Removal of support for CLM4.0 (equivalent to the changes in - https://github.com/ESMCI/cime/pull/2968) +Changes answers relative to baseline: Yes, clm51, clm50-non-crop, clm45 two diagnostics - (2) Fix for cime configure (cherry-picked 148bc2158) + Summarize any changes to answers, i.e., + - what code configurations: clm5_1 for all, clm50 for non-crop (Sp and Bgc), clm4_5 two diagnostics + - what platforms/compilers: All + - nature of change: clm51--BGC climate, others similar climate +Other details +------------- Pull Requests that document the changes (include PR ids): -- https://github.com/ESCOMP/ctsm/pull/609 (Remove CLM4.0) -- https://github.com/ESCOMP/ctsm/pull/601 (Print git status and related - info when running run_sys_tests) +(https://github.com/ESCOMP/ctsm/pull) + #1254 -- replace constant leaf mass per area (lma) =============================================================== =============================================================== -Tag name: ctsm1.0.dev022 -Originator(s): sacks (Bill Sacks) -Date: Tue Jan 8 11:01:38 MST 2019 -One-line Summary: Set tracer version of irrigation fluxes - -Purpose of changes ------------------- +Tag name: ctsm5.1.dev022 +Originator(s): glemieux (Gregory Lemieux,LBL/NGEET,510-486-5049) +Date: Fri Feb 5 00:03:28 MST 2021 +One-line Summary: Merge fates_main_api into ctsm master -Set tracer version of irrigation fluxes. - -This required a substantial rewrite of ApplyIrrigation (now renamed to -CalcIrrigationFluxes). The problem was that the code was written to -compute the total irrigation withdrawal from groundwater, then use this -to compute the application fluxes (drip/sprinkler), then later divide -this total withdrawal by layer. But for tracer fluxes to be computed -correctly, we needed to reorder this, so that the per-layer withdrawals -are determined before determining the application fluxes. This is -because the application flux needs to know the tracer concentrations of -the source, which requires knowing which layers the source is drawing -from. This was made more challenging because of the mix of patch-level -and column-level variables at play: irrigation demand is patch-level, -groundwater availability and extraction is column-level, but application -is back to patch-level. - -In a somewhat-related change, I also reworked the passing of information -between soil hydrology (groundwater availability) and irrigation: -Previously, there was some near-duplicate code in -CalcAvailableUnconfinedAquifer (which was called prior to -ApplyIrrigation) and WithdrawGroundwaterIrrigation (which was called -after ApplyIrrigation). I have reworked the code to remove this -duplication, calling the new CalcIrrigWithdrawals in the midst of -CalcIrrigationFluxes. In doing so, I reconciled an accidental -discrepancy between the two original routines (see -https://github.com/escomp/ctsm/issues/595). +Purpose and description of changes +---------------------------------- +This brings fates_main_api into and up-to-date with ctsm master. +At the point of merge, fates_main_api was parallel with ctsm5.1.dev020, +only one tag behind ctsm master's head. -Bugs fixed or introduced ------------------------- - -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#521 (Set tracer versions of fluxes set by - ApplyIrrigation) -- Resolves ESCOMP/ctsm#593 (Generalize groundwater irrigation availability to - handle multiple patches per column) -- Resolves ESCOMP/ctsm#595 (Inconsistency between CalcAvailableUnconfinedAquifer - and WithdrawGroundwaterIrrigation) +The purpose of this merge is to make all future updates to fates +on the ctsm master branch instead of on the fates_main_api branch. 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.] - -[ ] clm5_0 - -[ ] clm4_5 - -[ ] clm4_0 +(Details of any changes will be given in the "Answer changes" section below.) -Notes of particular relevance for users ---------------------------------------- + [Put an [X] in the box for any configuration with significant answer changes.] -Caveats for users (e.g., need to interpolate initial conditions): none +[ ] clm5_1 -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +[ ] clm5_0 -Changes made to namelist defaults (e.g., changed parameter values): none +[ ] ctsm5_0-nwp -Changes to the datasets (e.g., parameter, surface or initial files): none +[ ] clm4_5 -Substantial timing or memory changes: none +Bugs fixed or introduced +------------------------ -Notes of particular relevance for developers: (including Code reviews and testing) ---------------------------------------------- +Issues fixed (include CTSM Issue #): + Fixes #1128 -- missing compset for FATES tests + Fixes #1002 -- allow transient land-use files when FATES is on? + Some work was done on #1272 -- namelist refactor for FATES -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Known bugs introduced in this tag (include issue #): + #1265 -- Diversifying fates testmods included in `aux_clm` test suite + #1266 - Add test for successful_ignitions mode for FATES-SPITFIRE -Changes to tests or testing: none +Known bugs found since the previous tag (include issue #): + #1269 -- GSWP3V1 atmospheric forcing for 2011-2014 is "bad" over Antarctica -Code reviewed by: +Notes of particular relevance for users +--------------------------------------- -- Sean Swenson reviewed the initial parts of the rework of - ApplyIrrigation and the passing of information between soil hydrology - and irrigation +Changes made to namelist defaults (e.g., changed parameter values): + - fates_spitfire_mode updated with multiple modes that use external datasets + - use_fates_cohort_age_tracking added to enable size and age dependent mortality + - fates_parteh_mode option 2 added for fates CNP mode -CTSM testing: +Changes to the datasets (e.g., parameter, surface or initial files): + fates_paramfile updated to fates_params_api.14.0.0_12pft_c200921.nc - build-namelist tests: +Substantial timing or memory changes: + Only the fates testmod FatesAllVars failed the MEMCOMP test due to the increase in the number of variables included - cheyenne - not run - tools-tests (test/tools): +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 - cheyenne - not run +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + There are a couple of issues we plan to address later (#1265, and #1272) + Note also that NAG compiler production tests started failing because of a compiler error + Since, we only care about NAG for DEBUG testing we removed those tests. Hopefully, a compiler + update will allow that to work in the future. - PTCLM testing (tools/shared/PTCLM/test): +Changes to tests or testing: + - Added FatesPRT2 testmod test which activates fates CNP mode + - Added FatesReducedComplexFixedBiogeo testmod which activates fates fixed biogeography mode + - Added FatesSizeAgeMort testmod which activates tracking of size and age dependent mortality in fates + - Added Fates_nat_and_anthro_ignitions testmod to activate use of external lightning and population datasets + - Non-debug mode nag tests replaced in izumi test list with debug versions due to internal compiler error. - cheyenne - not run - regular tests (aux_clm): +Testing summary: regular +---------------- - cheyenne ---- ok - hobart ------ ok + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + build-namelist tests (if CLMBuildNamelist.pm has changed): - ok means tests pass, expected baseline failures as noted below + cheyenne - PASS (61 namelists are different because of fates changes) - Additional manual testing: + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - - Out of the box, the one-timestep tracer consistency test - (SMS_D_Ln1.f10_f10_musgs.I2000Clm50BgcCropGs.hobart_nag.clm-tracer_consistency) - passed when the new check was inserted after the irrigation call, - even without the changes in this tag. Presumably this is because no - irrigation was being done in the first time step of this test. To - confirm that the changes here were both necessary and effective, I - hacked the code to force irrigation of all types (surface and - groundwater) on the first time step (see - https://github.com/billsacks/ctsm/commit/d28a03145). I confirmed - that this test, with those code hacks, failed before the changes in - this tag, and passed with these changes in place. + cheyenne ---- PASS (fates testmods DIFFs are expected) + izumi ------- OK - - I used a multi-step process to confirm that these changes are only - roundoff-level different for groundwater irrigation (because - feedbacks in the system result in - SMS_D_Ld5.f10_f10_musgs.I2000Clm50BgcCrop.hobart_nag.clm-irrig_alternate - looking greater-than-roundoff-level different from the baseline): + ok: All non-fates testmods PASS. Fates testmods have DIFF as expected due to update of fates tag. + BFAILs expected due to changing non-debug nag test to debug. See #1264 comments for discussion. - (1) Confirmed that e507fe603 is only roundoff-level different from - baseline using cprnc output from this test. + fates tests: + cheyenne ---- OK - (2) Confirmed that a4a1a626c is only roundoff-level different from - e507fe603. This was the tricky part. I did this by introducing - some temporary code that (a) computed some fluxes in both the - old and new ways, (b) compared the old and new methods for each - point and time step, confirming that they were no more than - roundoff-level different, then (c) set the fluxes to the old - method. I confirmed that this was bit-for-bit with e507fe603, - and the checks for greater-than-roundoff-level differences - between the old and new methods were never triggered. (See - https://github.com/billsacks/ctsm/commit/7d23e9e and the earlier - commits on that branch.) + ok: expected failures on COMPARE_base_rest for FatesHydro + and Fates_nat_and_anthro_ignitions. All else B4B. - (3) Confirmed that remaining changes an the branch are bit-for-bit - with a4a1a626c. + fates baseline: fates-sci.1.43.2_api.14.2.0-ctsm5.1.dev020-C5f348cac-F5534a940 -CTSM tag used for the baseline comparisons: ctsm1.0.dev021 + any other testing (give details below): +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +Changes answers relative to baseline: Yes, only for fates Summarize any changes to answers, i.e., - - what code configurations: - - - Small answer changes when groundwater irrigation is enabled. In - principle, could change answers by greater than roundoff due to - fix of #595, but I didn't see any answer changes in my 7-month - test due to that change. Other than that, just roundoff-level - changes. - - - Answer changes when tracers are enabled. - - - Roundoff-level changes in the diagnostic field, - QIRRIG_FROM_SURFACE, for many tests - + - what code configurations: all fates - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - See notes under "what code configurations" for details. + - nature of change (roundoff; larger than roundoff/same climate; new + climate): larger than roundoff - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A + Comparison made using fates suite between fates_main_api (at ctsm5.1.dev020) + and ctsm5.1.dev022. All tests PASS, except for two expected failures and + expected NLCOMP failure due to ctsm5.1.dev021 update to paramfile. - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A - URL for LMWG diagnostics output used to validate new climate: N/A - +Other details +------------- -Detailed list of changes ------------------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +fates -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + fates: sci.1.30.0_api.8.0.0 -> sci.1.43.2_api.14.2.0 Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/ctsm/pull/600 +(https://github.com/ESCOMP/ctsm/pull) + #1264 -- Merge fates_main_api into master =============================================================== =============================================================== -Tag name: ctsm1.0.dev021 -Originator(s): mvr (Mathew Rothstein,UCAR/CSEG,303-497-1304) -Date: Wed Dec 26 16:29:06 MST 2018 -One-line Summary: Added tracer ratio capability and included it in consistency checks +Tag name: ctsm5.1.dev021 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Tue Jan 12 20:21:52 MST 2021 +One-line Summary: Add option for biomass heat storage (BHS) to clm5_1 physics Purpose of changes ------------------ -These changes are needed to support the implementation of water isotopes by ensuring -that isotope-related variables are being updated consistently throughout the model. -The consistency checks include the testing of a bulk tracer that should always be -equal to the bulk, and also test tracers that maintain a fixed ratio (other than -one) to the bulk. This commit includes fixes to the cold start initialization for -the water tracers with ratios other than one. +Add heat stored in biomass (for trees and shrubs) to the surface energy balance calculation. Add +a switch for it and turn it on by default for clm5_1 physics. It's turned off for clm4_5, clm5_0 +physics and when FATES is turned on. Those cases are identical to before, answers only change +when it's turned on. + +Papers describing BHS simulations: +R. Meier, Davin, E., Swenson, S., Lawrence, D., and Schwaab, Jo. (2019). Biomass heat +storage dampens diurnal temperature variations +in forests. Environmental Research Letters. 14. 084026. 10.1088/1748-9326/ab2b4e. + +S.C. Swenson, Burns, S. P., and Lawrence, D. M. ( 2019). The impact of biomass heat storage +on the canopy energy balance and atmospheric stability in the community land model, Journal +of Advances in Modeling Earth Systems, 11, 83– 98. +https://doi.org/10.1029/2018MS001476 Bugs fixed or introduced ------------------------ -Issues fixed (include CTSM Issue #): [If none, remove this line] -#541 Only do water tracer consistency checks on tracers that are - supposed to maintain a fixed ratio -#459 Fix cold start initialization of water tracers -#508 Remove unused variables in new Water types -#357 Put in place Water isotope consistency checks - +Issues fixed (include CTSM Issue #): + #342 --- set medlynslope to C4 appropriate value for millet and sorghum + (had already been done for miscanthus and switchgrass) + #1246 -- Make spinup_factor_deadwood a variable rather than hardcoded constant +Known bugs introduced in this tag (include github issue ID): + #1247 -- FATES doesn't work with BHS Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -8297,134 +11998,111 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[X] clm5_1 + [ ] clm5_0 -[ ] clm4_5 +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): none - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none - -Changes made to namelist defaults (e.g., changed parameter values): none - -Changes to the datasets (e.g., parameter, surface or initial files): none - -Substantial timing or memory changes: none +Caveats for users (e.g., need to interpolate initial conditions): + New variables are added on the restart files (stem/leaf biomass and stem Temp) + Testing didn't show this as a problem, but theoretically could require + updating initial conditions + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): New compsets, new hist fields + I1850Clm51BgcCrop + I1850Clm51Bgc + History fields: AGSB, AGLB, FSH_STEM, DHDT_CANOPY, RAH1, RAH2, RAW1, RAW2, USTAR, UM, UAF, UM, UAF, + TAF, QAF, OBU, ZETA, VPD, num_iter, RB, TSTEM + DHSDT_CANOPY, TSTEM are default active + +Changes made to namelist defaults (e.g., changed parameter values): New use_biomass_heat_storage + New namelist item: use_biomass_heat_storage to turn on or off (by default only on for clm5_1 + physics for both SP and BGC modes) + +Changes to the datasets (e.g., parameter, surface or initial files): New parameter datasets + All of the params files were updated. New terms were BHS parameters and taper + stocking is now set as "nstem" on the parameter file + taper is now on the parameter file + +Substantial timing or memory changes: Doesn't seem to + Only one short test failed the TPUTCOMP test + Longer tests were not significantly different Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - -Changes to tests or testing: added unit tests +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Code reviewed by: bill sacks +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + Setting of leaf/stem biomass should be refactored and removed from CanopyFluxes (as described in #1247) + There's a change in CNGapMortality that could change for DV when AD mode is on + Stability cap (zera) is different for BHS on than off +Changes to tests or testing: New CLM51 FATES test -CTSM testing: +CTSM testing: regular + [PASS means all tests PASS and OK means tests PASS other than expected fails.] build-namelist tests: - cheyenne - not run - - tools-tests (test/tools): - - cheyenne - not run + cheyenne - OK (462 comparisons fail because of new namelist and params files) - PTCLM testing (tools/shared/PTCLM/test): + python testing (see instructions in python/README.md; document testing done): - cheyenne - not run + cheyenne -- PASS regular tests (aux_clm): - cheyenne ---- PASS - hobart ------ PASS + cheyenne ---- OK + izumi ------- OK -CTSM tag used for the baseline comparisons: ctsm1.0.dev020 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: no, b4b - +Changes answers relative to baseline: Yes! + Summarize any changes to answers, i.e., + - what code configurations: clm5_1 + - what platforms/compilers: all + - nature of change: new climate for tree and shrubs Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none -Pull Requests that document the changes (include PR ids): #599 Adding isotope - tracer ratios +Pull Requests that document the changes (include PR ids): (https://github.com/ESCOMP/ctsm/pull) + #1016 -- Heat Storage biomass =============================================================== =============================================================== -Tag name: ctsm1.0.dev020 -Originator(s): Sean Swenson, Bill Sacks -Date: Mon Dec 3 11:51:24 MST 2018 -One-line Summary: New options for irrigation and crop fsat +Tag name: ctsm5.1.dev020 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Wed Dec 30 00:42:16 MST 2020 +One-line Summary: Potential roundoff changes in preparation for bio-mass heat storage option Purpose of changes ------------------ -Introduce three new options: - -(1) Ability to withdraw irrigation water from groundwater if not enough - water is available from rivers. This is controlled via new namelist - flag, use_groundwater_irrigation. Water can be withdrawn from both - the unconfined (from the soil column) and confined (from wa) - aquifers. - -(2) Irrigation method: sprinkler (above canopy) vs. drip (below - canopy). This can be set on a per-crop and per-gridcell basis on the - surface dataset, but out-of-the-box support for creating the - necessary surface dataset field is not yet in place (see - ESCOMP/ctsm#565). For now, it can be controlled globally via a new - namelist flag, irrig_method_default. The default is drip, which was - what we were previously using implicitly. - -(3) Set crop fsat to zero. This is controlled by a new namelist option, - crop_fsat_equals_zero. - -Default behavior is the same as before for all three options. +This adds in some changes that may be roundoff different in preparation for bringing in the changes +that allow turning on the bio-mass heat storage option. There's a few zeroed terms added to some calculations +in CanopyFluxes. The new terms are identical to what will come in for BHS except the zeroed terms are +not arrays here but scalars. I showed the new terms are only off by roundoff with a previous commit that added +explicit tests for the terms and verified it for two tests. -Also: - -- If use_aquifer_layer is false (which is the default for CLM50), no - longer reset wa_col every time step - -- Adds indices to vector history files giving column, landunit and - gridcell indices for each patch, etc. (Resolves ESCOMP/ctsm#81: - "Restart files are different for CLM when run over different number of - tasks" (issue name is a misnomer of the remaining to-dos in that - issue.) - -- Writes 3d time-constant fields on first history file for all tapes, - not just the first - -- Small performance improvements to irrigation Bugs fixed or introduced ------------------------ -Issues fixed (include CTSM Issue #): -- Resolves ESCOMP/ctsm#81 ("Restart files are different for CLM when run - over different number of tasks", but that name was a misnomer for the - remaining work needed on the issue) - -Known bugs introduced in this tag (include github issue ID): -- ESCOMP/ctsm#565: Surface dataset enhancements needed for irrigation method - - Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -8433,181 +12111,108 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 -[ ] clm4_5 +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): none - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): -- New namelist variables: - - use_groundwater_irrigation - - irrig_method_default - - crop_fsat_equals_zero -- Partial support for new surface dataset field: irrigation_method - -Changes made to namelist defaults (e.g., changed parameter values): none - -Changes to the datasets (e.g., parameter, surface or initial files): none - -Substantial timing or memory changes: none +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): Added new Clm51 compsets + I1PtClm51SpRs + I2000Clm51Sp + I2000Clm51SpRs + I1850Clm51Sp + I2000Clm51Fates + I1850Clm51SpNoAnthro + IHistClm51Sp Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide Caveats for developers (e.g., code that is duplicated that requires double maintenance): + Here I set some terms to zero that will be non-zero even when BHS is off + Earlier commits show the smaller set of changes that are needed. -Changes to tests or testing: -- Added two tests of the new irrigation options -- Added an _includes directory to hold things that should be included by - testmods (not used directly) - - -Code reviewed by: Bill Sacks and Sean Swenson reviewed each other's code - +Changes to tests or testing: Switched one Clm50Sp test to Clm51Sp and added one HistClm51Sp test -CTSM testing: +CTSM testing: regular [PASS means all tests PASS and OK means tests PASS other than expected fails.] build-namelist tests: - cheyenne - ok - - Tests pass, namelists differ as expected - - tools-tests (test/tools): - - cheyenne - not run + cheyenne - PASS - PTCLM testing (tools/shared/PTCLM/test): + python testing (see instructions in python/README.md; document testing done): - cheyenne - not run + cheyenne - PASS regular tests (aux_clm): - cheyenne ---- ok - hobart ------ pass - - ok: tests pass, some answers change as noted below + cheyenne ---- OK + izumi ------- OK -CTSM tag used for the baseline comparisons: ctsm1.0.dev019 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +Changes answers relative to baseline: Summarize any changes to answers, i.e., - - what code configurations: Some CLM50 cases that are either cold start - or (unusually) use a CLM45 initial conditions file; it's possible - that non-cold-start configurations would see differences rarely. - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Larger than roundoff, same climate - - Differences arise due to no longer resetting wa_col to - aquifer_water_baseline every time step in BeginWaterBalanceSingle - if use_aquifer_layer is false (which is the default for - CLM50). (This change is needed to conserve water properly with the - new groundwater-based irrigation.) For the most part, wa_col - wasn't being changed when use_aquifer_layer is false (so no longer - resetting it has no effect if groundwater irrigation isn't being - used), but the one exception is the "work around of the negative - liquid water" added by Jinyun Tang in subroutine SoilWater (dated - Jan 14, 2015), which can be exercised when use_flexibleCN is - true. Sean Swenson did some experimentation, and found that the - code that updates wa_col is only exercised in the first time step - of a cold start run, and that finding is borne out in the test - suite results. However, it's possible that there are rare cases - when this is exercised later in a run. - - I have confirmed that this branch is bit-for-bit with the baseline - if I revert the addition of the use_aquifer_layer conditional - around the wa_col resetting in - BeginWaterBalanceSingle. Alternatively, nearly all tests are - bit-for-bit with the baseline if I remove the one line updating - wa_col in subroutine SoilWater (and also remove the endrun for - water balance errors from BalanceCheck); the one exception is the - waccmx_offline test, which uses a CLM45 initial conditions file in - a CLM50 configuration. - - The following tests had baseline failures: - - Cold start tests: - - ERP_D_Ld5.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-allActive - ERP_D_P36x2_Ld3.f10_f10_musgs.I2000Clm50BgcCrop.cheyenne_intel.clm-cropColdStart - ERP_P180x2_D_Ld5.f19_g17.I2000Clm50BgcDvCrop.cheyenne_intel.clm-crop - ERP_P36x2_Lm25.f10_f10_musgs.I2000Clm50BgcDvCrop.cheyenne_intel.clm-monthly - ERP_P72x2_Lm25.f10_f10_musgs.I2000Clm50BgcDvCrop.cheyenne_intel.clm-monthly - - Test that uses a CLM45 initial conditions file in a CLM50 - configuration: - - ERS_D_Ln9_P480x3.f19_g16.I2000Clm50SpGs.cheyenne_intel.clm-waccmx_offline + - what code configurations: all + - what platforms/compilers: izumi-PGI + - nature of change: roundoff If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A + than roundoff? - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A + Earlier commit tested the new terms versus the old and showed they were + order e-11 for absolute difference and e-14 relative difference. - URL for LMWG diagnostics output used to validate new climate: N/A - + Tests that change from baseline.... + + ERS_Ly5_P144x1.f10_f10_musgs.IHistClm51BgcCrop.cheyenne_intel.clm-cropMonthOutput + SMS.f10_f10_musgs.I2000Clm50BgcCrop.izumi_pgi.clm-crop + SMS_D.f10_f10_musgs.I2000Clm51BgcCrop.izumi_pgi.clm-crop Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +Pull Requests that document the changes (include PR ids): #1241 +(https://github.com/ESCOMP/ctsm/pull) -Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/ctsm/pull/523 + #1241 -- Small answer changes in preparation for adding option for bio-mass heat storage =============================================================== =============================================================== -Tag name: ctsm1.0.dev019 +Tag name: ctsm5.1.dev019 Originator(s): sacks (Bill Sacks) -Date: Fri Nov 30 13:36:57 MST 2018 -One-line Summary: Rework cold start initialization of wa and zwt +Date: Sat Dec 19 06:55:46 MST 2020 +One-line Summary: Fix ndep from coupler Purpose of changes ------------------ -Rework cold start initialization of wa and zwt when use_aquifer_layer is -false to reduce answer changes in upcoming groundwater_irrigation -branch. +There was a bug in ndep forcing (forc_ndep_grc) when receiving ndep from +CAM (ndep_from_cpl true). This first appeared in ctsm5.1.dev002. NDEP +forcings have been garbage since then when receiving ndep from CAM. + +This tag fixes that issue. -In the groundwater_irrigation branch -(https://github.com/ESCOMP/ctsm/pull/523), Sean Swenson has stopped -resetting wa_col each time step if use_aquifer_layer is false. However, -this leads to having a substantially different value of wa_col when -use_aquifer_layer is false: previously, it was reset to -aquifer_water_baseline each time step, but with Sean's changes, it stays -close to its initial values, which have been 4000 in most places. This -tag changes the initial values to match the value it was being reset to, -so it simply starts at aquifer_water_baseline - so the -every-time-step-resetting to aquifer_water_baseline can be removed -without massively changing the value of wa_col. +Bugs fixed or introduced +------------------------ -In addition to changing the cold start initialization of wa_col, we are -also changing the cold start initialization of zwt in this case where -use_aquifer_layer is false: The old initialization of zwt wouldn't work -as intended now that we have changed the initial value of wa_col; Sean -Swenson suggested this new initialization method instead. This -initialization to zi(c,nbedrock(c)) is correct if there are no saturated -layers, and close enough for a decent cold start even if there are. +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1233 (ndep forcing incorrect when receiving ndep + from CAM (starting with ctsm5.1.dev002)) Significant changes to scientifically-supported configurations @@ -8618,11 +12223,13 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 -[ ] clm4_5 +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- @@ -8635,19 +12242,16 @@ Changes made to namelist defaults (e.g., changed parameter values): none Changes to the datasets (e.g., parameter, surface or initial files): none -Substantial timing or memory changes: none +Substantial timing or memory changes: none expected (not checked) Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide Caveats for developers (e.g., code that is duplicated that requires double maintenance): none Changes to tests or testing: none -Code reviewed by: Sean Swenson - - CTSM testing: [PASS means all tests PASS and OK means tests PASS other than expected fails.] @@ -8662,37 +12266,40 @@ CTSM testing: PTCLM testing (tools/shared/PTCLM/test): - cheyenne - not run + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run regular tests (aux_clm): - cheyenne ---- ok - hobart ------ ok + cheyenne ---- pass + izumi ------- pass - ok means tests pass, answers change as expected for some cases + izumi testing: baseline generation failed due to running out of disk + space. I have sym linked the ctsm5.1.dev018 baselines to + ctsm5.1.dev019, because answers are bit-for-bit between the two tags + as far as aux_clm testing is concerned. -CTSM tag used for the baseline comparisons: ctsm1.0.dev018 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: YES +Changes answers relative to baseline: YES, but just in select coupled configurations - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): + [ If a tag changes answers relative to baseline comparison the + following should be filled in (otherwise remove this section). + And always remove these three lines and parts that don't apply. ] Summarize any changes to answers, i.e., - - what code configurations: CLM50 cold start or transient (Hist) cases + - what code configurations: Coupled configurations where CTSM + receives NDEP from CAM - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - - Larger than roundoff, same climate (not investigated completely - rigorously through long simulations, but Sean Swenson and Bill - Sacks are both pretty confident that the resulting changes will be - small, partly based on difference statistics from the test suite, - and partly based on the fact that the only change in this tag is - in cold start initialization of some values). + - nature of change (roundoff; larger than roundoff/same climate; new climate): + potentially new climate If bitwise differences were observed, how did you show they were no worse than roundoff? N/A @@ -8702,51 +12309,32 @@ Changes answers relative to baseline: YES - casename: N/A URL for LMWG diagnostics output used to validate new climate: N/A - + Detailed list of changes ------------------------ List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none -Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/ctsm/pull/577 +Pull Requests that document the changes (include PR ids): none =============================================================== =============================================================== -Tag name: ctsm1.0.dev018 -Originator(s): sacks (Bill Sacks) -Date: Thu Nov 29 16:03:50 MST 2018 -One-line Summary: Water tracer updates for initial things in driver loop +Tag name: ctsm5.1.dev018 +Originator(s): slevis (Samuel Levis,,303-665-1310) +Date: Tue Dec 8 11:19:02 MST 2020 +One-line Summary: Add ACTIVE (T/F) column to master hist fields table and alphabetize Purpose of changes ------------------ -Update water tracers for initial stuff done in driver loop. This includes -atm2lnd forcings (non-downscaled and downscaled), balance check initialization, -and dyn subgrid updates. - -Broadly speaking, the changes here are: - -(1) Reworked WaterType to make it easier / more robust for other code to loop - over tracers or bulk+tracers - -(2) The most interesting changes are probably the code to update the atm2lnd - water tracers (in Wateratm2lndType.F90 and WaterTracerUtils.F90) - -(3) In various other places, do some infrastructurey stuff (initializing water - balance, doing dyn subgrid stuff) for tracers as well as bulk - -(4) Supporting unit tests and unit test infrastructure - + For convenience, added an ACTIVE column to the master fields table and + alphabetized. Bugs fixed or introduced ------------------------ -Issues fixed (include CTSM Issue #): -Resolves ESCOMP/ctsm#487 -Resolves ESCOMP/ctsm#488 -Resolves ESCOMP/ctsm#489 +Issues fixed (include CTSM Issue #): #941 Significant changes to scientifically-supported configurations @@ -8757,44 +12345,41 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 -[ ] clm4_5 +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): none +Caveats for users (e.g., need to interpolate initial conditions): + None -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + None -Changes made to namelist defaults (e.g., changed parameter values): none +Changes made to namelist defaults (e.g., changed parameter values): + None -Changes to the datasets (e.g., parameter, surface or initial files): none +Changes to the datasets (e.g., parameter, surface or initial files): + None -Substantial timing or memory changes: none +Substantial timing or memory changes: [For timing changes, can check PFS test(s) in the test suite] + None Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide Caveats for developers (e.g., code that is duplicated that requires double maintenance): -- We have chosen not to set all water tracers as soon as possible, but instead - to do these tracer settings later in the driver loop. This keeps the driver - loop cleaner, but means that you cannot arbitrarily sprinkle calls to - TracerConsistencyCheck throughout the driver. Specifically for this tag: the - non-downscaled, gridcell-level atm2lnd water tracers are not updated until - after the call to downscale_forcings, so tracer consistency checks before that - point would fail. + None Changes to tests or testing: -- Added a PFS test - -Code reviewed by: Portions of the design (and possibly code) have been reviewed -by Mat Rothstein, David Noone and Mariana Vertenstein - + None CTSM testing: @@ -8802,84 +12387,65 @@ CTSM testing: build-namelist tests: - cheyenne - not run + cheyenne - tools-tests (test/tools): - cheyenne - not run + cheyenne - PTCLM testing (tools/shared/PTCLM/test): - cheyenne - not run + cheyenne - - regular tests (aux_clm): + python testing (see instructions in python/README.md; document testing done): - cheyenne ---- ok - hobart ------ ok + (any machine) - + + regular tests (aux_clm): - ok means tests pass, some answers change as expected + cheyenne ---- PASS + izumi ------- PASS -CTSM tag used for the baseline comparisons: ctsm1.0.dev017 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): - - Summarize any changes to answers, i.e., - - what code configurations: many - - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - roundoff-level changes in sensible heat flux from precip conversion due to - refactoring this calculation; everything else bit-for-bit - - If bitwise differences were observed, how did you show they were no worse - than roundoff? via summarize_cprnc_diffs to see differences in the test suite - - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A - - URL for LMWG diagnostics output used to validate new climate: N/A - +Changes answers relative to baseline: + No Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + None Pull Requests that document the changes (include PR ids): -https://github.com/ESCOMP/ctsm/pull/572 + https://github.com/ESCOMP/CTSM/pull/1222 =============================================================== =============================================================== -Tag name: ctsm1.0.dev017 -Originator(s): slevis (Samuel Levis, Slevis Consulting LLC,303-665-1310) -Date: Wed Nov 28 14:27:50 MST 2018 -One-line Summary: Merge the collapse2gencrop branch +Tag name: ctsm5.1.dev017 +Originator(s): slevis (Samuel Levis,303-665-1310) +Date: Tue Nov 17 18:19:20 MST 2020 +One-line Summary: Write history fields master list to separate optional file Purpose of changes ------------------ -These changes allow the model to not need to read 16-pft -datasets and rather read 78-pft datasets. The 78-pft datasets were -developed for use with prognostic crops originally. The current changes -allow the model to use the 78-pft datasets in 16-pft runs by -collapsing the crop pfts (cfts) from specific types to the model's -generic crop types. The changes are generic so that the model may still -read 16-pft datasets for 16-pft runs. Ultimately these changes will -permit users to run with any number of pfts, while the ctsm group -maintains a single set of input pft data. + User can choose to write the history fields master list in a separate + text file by setting hist_master_list_file = .true. in CTSM's namelist. + + File contents follow recommended reStructuredText "simple table" + formatting (see + https://docutils.sourceforge.io/docs/user/rst/quickref.html#tables) + for use in CTSM documentation in the sphinx environment. Bugs fixed or introduced ------------------------ -Issues fixed (include CTSM Issue #): Fixes #509 (partial) - #509 -- irrigate in 1850 is off for runs with use_crop but on for those without +Issues fixed (include CTSM Issue #): #34 #941 Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -8887,121 +12453,119 @@ 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.] + +[ ] clm5_1 + [ ] clm5_0 -[ ] clm4_5 +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- +Caveats for users (e.g., need to interpolate initial conditions): + None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + New namelist option hist_master_list_file. Setting to true generates a + new text output file containing the history fields master list. + Changes made to namelist defaults (e.g., changed parameter values): -- maxpatch_pft made obsolete -- nnegcrit was increased because of failure in the TRENDY simulations. -This was done in the source, rather than the namelist but does have an -effect on user behavior. + Default for hist_master_list_file = .false. + +Changes to the datasets (e.g., parameter, surface or initial files): + None -Substantial timing or memory changes: No +Substantial timing or memory changes: + No Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide Caveats for developers (e.g., code that is duplicated that requires double maintenance): + None - The "irrigate" attribute should now be removed from all fsurdat files for namelist generation. - Thus irrigate on or off is now an option for non-crop cases. +Changes to tests or testing: + Introduced testing for the new namelist option within the existing test + ERP_P36x2_D_Ld3.f10_f10_musgs.I1850Clm50BgcCrop.cheyenne_gnu.clm-extra_outputs + by adding hist_master_list_file = .true. to the test's user_nl_clm +CTSM testing: -Renamed parameters: -maxpatch_pft is obsolete; remove from namelist-related scripts in future PR -numpft + 1 ---> maxsoil_patches -maxpatch_pft ---> maxsoil_patches in CNDV -numpft ---> maxveg -numpft_ed ---> maxveg_fates +[... Remove before making master tag. Available test levels: -Several modules were made default private. The list of variables in them -that are public are explicitly listed now: -LakeCon.F90 -clm_initializeMod.F90 -clm_instMod.F90 -clm_varpar.F90 -pftconMod.F90 -subgridAveMod.F90 + a) regular (must be run before handing off a tag to SEs and must be run + before committing a tag) + b) build_namelist (if namelists and/or build_system changed)) + c) tools (only if tools are modified and no CTSM source is modified) + d) short (for use during development and in rare cases where only a small + change with known behavior is added ... eg. a minor bug fix) + e) doc (no source testing required) -Changes to tests or testing: -New test -New unit tests in test_surfrdUtils.pf, all containing the prefix -test_collapse_crop_types_* +... ] -Code reviewed by: -Erik Kluzek and Bill Sacks + [PASS means all tests PASS and OK means tests PASS other than expected fails.] -CTSM testing: -Regular + build-namelist tests: - [PASS means all tests PASS and OK means tests PASS other than expected fails.] + cheyenne - + + tools-tests (test/tools): + + cheyenne - + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - regular tests (aux_clm): - cheyenne_intel ---- OK - cheyenne_gnu ------ OK - hobart_nag -------- PASS - hobart_pgi -------- OK - hobart_intel ------ PASS + cheyenne ---- OK (NLCOMP tests fail as expected) + izumi ------- OK (NLCOMP tests fail as expected) + +If the tag used for baseline comparisons was NOT the previous tag, note that here: -CTSM tag used for the baseline comparisons: ctsm1.0.dev016 Answer changes -------------- -Changes answers relative to baseline: NO - +Changes answers relative to baseline: + No Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None - -Pull Requests that document the changes (include PR ids): #483 + Added section to subr. hist_printflds (called by subr. initialize2). + The new section runs when hist_master_list_file = .true. -Sam Levis cloned Erik Kluzek's collapse2gencrop branch and then -tested, corrected errors, resolved conflicts, added unit tests, while -updating to newer tags as needed. +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + None +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/CTSM/pull/1209 =============================================================== =============================================================== -Tag name: ctsm1.0.dev016 -Originator(s): sacks (Bill Sacks) -Date: Thu Nov 1 07:27:48 MDT 2018 -One-line Summary: Update cime, fix FATES DEBUG token, add script to easily run system tests +Tag name: ctsm5.1.dev016 +Originator(s): mvertens (Mariana Vertenstein), jedwards (Jim Edwards), + sacks (Bill Sacks), erik (Erik Kluzek) +Date: Tue Nov 17 10:49:40 MST 2020 +One-line Summary: Updates for nuopc Purpose of changes ------------------ -(1) Update to latest version of cime master - -(2) Update FATES with a minor change: change DEBUG to debug, to allow - working with a preprocessor-defined DEBUG token - -(3) Add a script (run_sys_tests) that allows easily running all system - tests (see - https://github.com/ESCOMP/ctsm/wiki/System-Testing-Guide#running-test-suites-with-the-run-sys-tests-wrapper - for details) +Various updates needed for NUOPC. -(4) As part of (3), start work on a CTSM python library and associated - test infrastructure. - -Bugs fixed or introduced ------------------------- - -Issues fixed (include CTSM Issue #): -- Fixes ESCOMP/ctsm#535 (Run Fortran unit tests as part of create_test) - -CIME Issues fixed (include issue #): -- Various - see CIME ChangeLog for details +Also adds mizuRoute as an external component. Significant changes to scientifically-supported configurations @@ -9012,11 +12576,13 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[X] clm5_0 +[ ] clm5_1 -[X] clm4_5 +[ ] clm5_0 + +[ ] ctsm5_0-nwp -[X] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- @@ -9033,16 +12599,16 @@ Substantial timing or memory changes: none Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - -Changes to tests or testing: -- New run_sys_tests wrapper -- Fortran unit tests now run as part of aux_clm +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Code reviewed by: Erik Kluzek +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- SoilMoistureStreamMod now is duplicated: the version used with mct is + still in src/biogeochem, but there is a new version used with nuopc + and the CDEPS data models in src/cpl/nuopc. The latter has just been + introduced for testing purposes. Eventually, once we switch everything + to use CDEPS, we'll remove this duplicated version. +Changes to tests or testing: none CTSM testing: @@ -9058,114 +12624,66 @@ CTSM testing: PTCLM testing (tools/shared/PTCLM/test): - cheyenne - not run + cheyenne - not run - regular tests (aux_clm): + python testing (see instructions in python/README.md; document testing done): - cheyenne ---- ok - hobart ------ ok + (any machine) - not run + + regular tests (aux_clm): - ok means tests pass, baselines fail as expected + cheyenne ---- pass + izumi ------- pass -CTSM tag used for the baseline comparisons: ctsm1.0.dev015 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): - - Summarize any changes to answers, i.e., - - what code configurations: All I compsets (except spinup test that uses cplhist datm forcing) - - what platforms/compilers: All - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Potentially new climate - - Changes answers for I compsets due to datm update as part of the cime - update: new presaero and CO2 datasets - (https://github.com/esmci/cime/pull/2828) - - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A - - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A - - URL for LMWG diagnostics output used to validate new climate: N/A - +Changes answers relative to baseline: NO Detailed list of changes ------------------------ List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -- cime: cime5.7.3 -> cime5.7.5 -- fates: fates_s1.8.1_a3.0.0 -> fates_s1.8.1_a3.0.0_rev2 +- Added mizuRoute (at 34723c2) +- cime: branch_tags/cime5.8.32_a01 -> branch_tags/cime5.8.32_a02 +- (Some other rearrangement of Externals files, but versions stayed the + same) -Pull Requests that document the changes (include PR ids): -- https://github.com/escomp/ctsm/pull/493 (Wrapper to system tests, and - start of a ctsm python library) +Pull Requests that document the changes (include PR ids): none =============================================================== =============================================================== -Tag name: ctsm1.0.dev015 +Tag name: ctsm5.1.dev015 Originator(s): sacks (Bill Sacks) -Date: Sun Oct 28 14:29:30 MDT 2018 -One-line Summary: CMIP6 compset modifiers, usermods for typical output, and other output enhancements +Date: Fri Nov 13 11:52:34 MST 2020 +One-line Summary: A few small fixes Purpose of changes ------------------ -(1) Support %BGC-CROP-CMIP6DECK and %BGC-CROP-CMIP6WACCMDECK compset - modifiers, so that we can turn on the necessary options - (output-related and others) via new CMIP6-specific compsets. - -(2) Turn on carbon isotopes in CMIP6 runs (from Erik Kluzek) - -(3) Remove setting of CCSM_BGC=CO2A in the cmip6 usermods - -(4) Add usermods directories for getting typical extra output that's - wanted in many cases: output_crop, output_crop_highfreq, output_bgc, - output_bgc_highfreq, output_sp, and output_sp_highfreq. These can be - enabled by adding something like '--user-mods-dir output_crop' on - the create_newcase line (that short-hand works for an I compset; for - F or B compsets, you need to provide the full path to the usermod - directory). - -(4) Allow holes in the number of history tapes. Holes are cases where, - for example, we have h0, h1 and h3 tapes, but no h2 tape (because - there are no fields on the h2 tape). (This is needed for (3).) - -(5) Fix reading and writing of 1-d logical global arrays. This fixes - ESCOMP/ctsm#24 for real (rather than just preventing an attempt to - read/write 1-d logical arrays, as was done in the previous 'fix'). - -(6) Add C13_NBP and C14_NBP diagnostic fields (from Keith Oleson) +(1) Fixes needed for PIO2 when running in pts/scam mode (from Jim + Edwards and Bill Sacks) -(7) Make a bunch of carbon isotope diagnostic fields inactive by default +(2) Fix mpi broadcast of hist_avgflag_pertape so that this namelist + variable is applied properly (from Sunniva Indrehus, Keith Oleson + and Bill Sacks) -(8) Don't allow interpolation (use_init_interp) from a case without - carbon isotopes to a case with carbon isotopes: Due to - https://github.com/ESCOMP/ctsm/issues/67, interpolation from a case - without carbon isotopes to a case with carbon isotopes yields - incorrect initialization values for the carbon isotopes. Now that - we're turning carbon isotopes on via some semi-out-of-the-box - usermods (for cmip6), it is becoming more important to check to make - sure someone doesn't shoot themselves in the foot this way. +(3) Fix invalid xml in namelist_definition_ctsm.xml -(9) Add tests of the new output usermods as well as of the CMIP6 compset - modifiers +(4) Add point of interest code for debugging Bugs fixed or introduced ------------------------ Issues fixed (include CTSM Issue #): -- Fixes #24 for real (ncd_io_1d_log_glob is broken) -- Fixes #529 (Organize usermods_dirs to facilitate running cases with - the right output) +- Resolves ESCOMP/CTSM#1191 (hist_avgflag_pertape doesn't always produce + desired averaging type for some history file streams) +- Resolves ESCOMP/CTSM#1159 (Invalid xml in + namelist_definition_ctsm.xml) +- Resolves ESCOMP/CTSM#1210 (Add "point of interest" code) Significant changes to scientifically-supported configurations @@ -9176,48 +12694,34 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 -[ ] clm4_5 +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- Caveats for users (e.g., need to interpolate initial conditions): none -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): -- New namelist variable, just for testing purposes: - for_testing_allow_interp_non_ciso_to_ciso. This bypasses an error - check, and should only be used in tests. +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none Changes made to namelist defaults (e.g., changed parameter values): none Changes to the datasets (e.g., parameter, surface or initial files): none -Substantial timing or memory changes: none +Substantial timing or memory changes: none expected (not checked) Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide Caveats for developers (e.g., code that is duplicated that requires double maintenance): none -Changes to tests or testing: -- Reworked tests of cmip6_deck usermods to use the new - %BGC-CROP-CMIP6DECK compset modifier, and changed f09_g16 to f09_g17 -- Added a test of the %BGC-CROP-CMIP6WACCMDECK compset modifier -- Added tests of output_crop_highfreq, output_bgc_highfreq and - output_sp_highfreq usermods directories -- Note that there are NO tests covering the cmip6_evolving_icesheet - usermods: this usermod directory adds very little beyond cmip6_deck, - so it didn't seem worth its own test - -Code reviewed by: Erik Kluzek - - -CTSM testing: +Changes to tests or testing: none [PASS means all tests PASS and OK means tests PASS other than expected fails.] @@ -9225,42 +12729,24 @@ CTSM testing: cheyenne - not run - unit-tests (components/clm/src): + tools-tests (test/tools): - cheyenne - pass + cheyenne - not run - tools-tests (components/clm/test/tools): + PTCLM testing (tools/shared/PTCLM/test): cheyenne - not run - PTCLM testing (components/clm/tools/shared/PTCLM/test): + python testing (see instructions in python/README.md; document testing done): - cheyenne - not run + (any machine) - not run regular tests (aux_clm): - cheyenne_intel ---- pass - cheyenne_gnu ------ pass - hobart_nag -------- pass - hobart_pgi -------- pass - hobart_intel ------ pass - - ERI_D_Ld9.T31_g37.I2000Clm50Sp.cheyenne_intel.clm-SNICARFRC - initially failed COMPARE_base_hybrid, COMPARE_base_rest and BASELINE - comparisons. I reran it and it passed. - - Manually compared all history files from - ERS_Ly3.f10_f10_musgs.I1850Clm50BgcCropCmip6.cheyenne_intel.clm-basic - with baseline - ERS_Ly3.f10_f10_musgs.I1850Clm50BgcCrop.cheyenne_intel.clm-cmip6. They - were all identical. Also compared all history files from - SMS_Ld5_D.f09_g17.I1850Clm50BgcCropCmip6.cheyenne_intel.clm-basic - with baseline - SMS_Ld5_D.f09_g17.I1850Clm50BgcCrop.cheyenne_intel.clm-cmip6. They - were all identical (but note that this basically just compared the - cpl.hi file: the test was too short to produce monthly files.) + cheyenne ---- pass + izumi ------- pass -CTSM tag used for the baseline comparisons: ctsm1.0.dev014 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes @@ -9268,55 +12754,57 @@ Answer changes Changes answers relative to baseline: NO - Detailed list of changes ------------------------ List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none Pull Requests that document the changes (include PR ids): -- https://github.com/ESCOMP/ctsm/pull/536 - Allow holes in the number of - history tapes and reorganize cmip6 usermods (main PR containing all of - these changes) -- https://github.com/ESCOMP/ctsm/pull/527 - Add carbon_isotope user-mod - directory to turn on c13 and c14 -- https://github.com/ESCOMP/ctsm/pull/539 - Support a %CMIP6DECK compset - modifier +https://github.com/ESCOMP/CTSM/pull/1214 =============================================================== =============================================================== -Tag name: ctsm1.0.dev014 -Originator(s): sacks (Bill Sacks) -Date: Fri Oct 26 06:20:34 MDT 2018 -One-line Summary: Miscellaneous minor, bit-for-bit bug fixes +Tag name: ctsm5.1.dev014 +Originator(s): dll (Danica Lombardozzi) / oleson (Keith Oleson) / sacks (Bill Sacks) +Date: Sat Nov 7 12:19:14 MST 2020 +One-line Summary: Grass/crop snow burial fraction fix, and some other fixes Purpose of changes ------------------ -Four miscellaneous minor, bit-for-bit bug fixes: - -(1) Py3 pylint check and address cime issue ESMCI/cime#2822 (from Jim - Edwards: ESCOMP/ctsm#526) +(1) Crop/grass snow burial changed based on height and lodging (Danica + Lombardozzi) - resolves ESCOMP/CTSM#516. Updates grass and crop snow + burial ('fb' in SatellitePhenologyMod.F90) from being 0.2m to change + with PFT height and accounts for 20% lodging (falling over). -(2) Change uppercase DEBUG variables to lowercase debug (requested by - Jim Edwards to avoid conflicting with the DEBUG CPP token) - (Fixes ESCOMP/ctsm#534) +(2) In BGC code, make elai and esai depend on frac_sno (Danica + Lombardozzi, Keith Oleson & Bill Sacks) - resolves ESCOMP/CTSM#1116 -(3) Remove unnecessary line of code in LunaMod.F90 that was causing - problems with some compilers due to an uninitialized variable - (Fixes ESCOMP/ctsm#322) +(3) Fix to quadratic solution error bug caused by negative shaded + photosynthesis (Danica Lombardozzi & Keith Oleson) - resolves + ESCOMP/CTSM#756 -(4) Add r8 to 0 constant to fix build issue with XLF compiler (from Jim - Edwards: ESCOMP/ctsm#531) +(4) Point to cime branch tag that avoids building CDEPS with LILAC, to + avoid dependence on unreleased ESMF code (Bill Sacks) - resolves + ESCOMP/CTSM#1203 +(5) Some tweaks to documentation and how the documentation is built + (Bill Sacks) Bugs fixed or introduced ------------------------ Issues fixed (include CTSM Issue #): -- Fixes ESCOMP/ctsm#322 (ERS_D_Ld5.f19_g16.I2000Clm50BgcCruGs run FAIL (intel)) -- Fixes ESCOMP/ctsm#534 (Rename DEBUG to debug in a few places) +- Resolves ESCOMP/CTSM#516 (crop and grass snow burial) +- Resolves ESCOMP/CTSM#1116 (elai and esai for non-SP runs should use + frac_sno) +- Resolves ESCOMP/CTSM#756 (Quadratic solution error) +- Resolves ESCOMP/CTSM#1203 (Rework LILAC build to avoid dependence on + unreleased ESMF code) +CIME Issues fixed (include issue #): +- https://github.com/ESMCI/cime/issues/3769 (Avoid building CDEPS with + CTSM's LILAC) Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -9326,11 +12814,13 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[ ] clm5_0 +[X] clm5_1 -[ ] clm4_5 +[X] clm5_0 -[ ] clm4_0 +[X] ctsm5_0-nwp + +[X] clm4_5 Notes of particular relevance for users --------------------------------------- @@ -9347,15 +12837,12 @@ Substantial timing or memory changes: none Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Caveats for developers (e.g., code that is duplicated that requires double maintenance): +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none Changes to tests or testing: none -Code reviewed by: different pieces reviewed by different people - - CTSM testing: [PASS means all tests PASS and OK means tests PASS other than expected fails.] @@ -9364,90 +12851,95 @@ CTSM testing: cheyenne - not run - unit-tests (components/clm/src): + tools-tests (test/tools): - cheyenne - pass + cheyenne - not run - tools-tests (components/clm/test/tools): + PTCLM testing (tools/shared/PTCLM/test): cheyenne - not run - PTCLM testing (components/clm/tools/shared/PTCLM/test): + python testing (see instructions in python/README.md; document testing done): - cheyenne - not run + (any machine) - not run regular tests (aux_clm): - cheyenne_intel ---- ok - cheyenne_gnu ------ ok - hobart_nag -------- ok - hobart_pgi -------- ok - hobart_intel ------ ok - - ok means tests and baseline comparisons pass. There were unexpected - NLCOMP diffs. From spot-checking a few tests, I see the following: + cheyenne ---- ok + izumi ------- ok - - (1) On both cheyenne and hobart: Diffs in logfile. This looks like a - problem in cime: it says: + ok: tests pass, baselines fail as expected - BASE: logfile = 'rof.log.136342.hobart.cgd.ucar.edu - COMP: logfile = 'rof.log +If the tag used for baseline comparisons was NOT the previous tag, note that here: - (2) On hobart: Diffs in pio_typename: netcdf vs. pnetcdf (says that - new uses pnetcdf): but when I compare files by hand, they look - the same in this respect (both baseline and new use netcdf), so - maybe this is due to a problem in the timing of when nlcomp is - run? - Since these both look like problems in the comparison script rather - than in the tag, I'm letting these go, but will open a cime issue if - we see this again. +Answer changes +-------------- +Changes answers relative to baseline: YES -CTSM tag used for the baseline comparisons: ctsm1.0.dev013 + Summarize any changes to answers, i.e., + - what code configurations: all (or at least most) + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + new climate, at least to some extent + Changes arise from (1) & (2) (large changes) and from (3) (small + changes). The change in snow burial parameterizations results in + changes to albedo and water & energy fluxes. -Answer changes --------------- + If bitwise differences were observed, how did you show they were no worse + than roundoff? N/A -Changes answers relative to baseline: NO + If this tag changes climate describe the run(s) done to evaluate the new + climate (put details of the simulations in the experiment database) + - casename: N/A + URL for LMWG diagnostics output used to validate new climate: + For analysis of diffs, see + https://github.com/danicalombardozzi/ctsm_py/blob/7543b0f3b413bae9974c11b467fdbc0413c3b7fa/notebooks/SnowBurial.ipynb Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: cime5.8.32 -> branch_tags/cime5.8.32_a01 +- doc-builder: v1.0.2 -> v1.0.4 Pull Requests that document the changes (include PR ids): -- https://github.com/ESCOMP/ctsm/pull/531 (fix build issue with xlf compiler) -- https://github.com/ESCOMP/ctsm/pull/526 (fix cime issue 2822 and pylint chk) +https://github.com/ESCOMP/CTSM/pull/1112 =============================================================== =============================================================== -Tag name: ctsm1.0.dev013 -Originator(s): erik (Erik Kluzek)/slevisconsulting -Date: Thu Oct 25 18:09:47 MDT 2018 -One-line Summary: Fix the fact that transient Bgc and SP cases had constant crop area in time +Tag name: ctsm5.1.dev013 +Originator(s): jedwards (Jim Edwards) / sacks (Bill Sacks) +Date: Wed Nov 4 14:24:55 MST 2020 +One-line Summary: Allow pnetcdf for vector history files Purpose of changes ------------------ -Fix transient non-crop cases that had constant crop area so that crop area will change in time -(and hence natural veg area will also change corresponding to it). +Ever since clm4_5_1_r091, we had been avoiding the use of pnetcdf for +vector history files (i.e., history files with dov2xy = .false.). This +was to workaround an issue that was found on the old yellowstone +supercomputer (bugzilla 1730). However, I cannot reproduce this issue on +cheyenne, either with PIO1 or with PIO2. Moreover, the workaround was +leading to very slow performance with PIO2, at least for some +tests. This tag removes that old workaround. -Also bring in changes to update mksurfdata_map to handle SSP-RCP future scenarios. Right now -it can handle SSP5-8.5 out of the box. Also add a new test for that. +See https://github.com/ESCOMP/CTSM/issues/33 for details. -Bugs fixed or introduced ------------------------- +Also change PE layouts for C96 and C192. The main motivation for this is +to get the aux_clm C96 test through the queue faster (the current test +sometimes waits for multiple hours in the queue): -Issues fixed (include CTSM Issue #): #538 - #538 -- In transient pft simulations with use_crop=.false., %crop does not advance from 1850 values - -Known bugs found since the previous tag (include github issue ID): #545 - #545 -- Antarctica ice shelves are being treated as wetlands rather than glaciers +(1) Make the out-of-the-box PE counts unthreaded, as is standard for I + compsets +(2) In the aux_clm test for C92, use a 360x2 PE layout: Use a PE layout + that (a) has threading, because CAM uses threading at this + resolution; and (b) has a smaller-than-standard task count in order + to get through the queue faster. Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -9457,138 +12949,118 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[X] clm5_0 +[ ] clm5_1 -[X] clm4_5 +[ ] clm5_0 + +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): A few more namelist checks - Added a check to make sure do_transient_pfts was the same as do_transient_crops - Don't allow use_fertilizer for non-crop case - namelist checks that create_crop_landunit=T except for FATES +Caveats for users (e.g., need to interpolate initial conditions): none -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): - New -ssp_rcp option to mksurfdata.pl +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none -Changes made to namelist defaults (e.g., changed parameter values): None +Changes made to namelist defaults (e.g., changed parameter values): none -Changes to the datasets (e.g., parameter, surface or initial files): New mksrfpft datasets in XML for SSP5-8.5 +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: + + Timing changes seem small, though not investigated carefully. No + timing changes are expected to show up in the PFS test (because it + doesn't do history output), but I looked at a few other non-debug f09 + cases: ERP_Ld5.f09_g17.I2000Clm50Vic.cheyenne_intel.clm-vrtlay, + ERP_Ld3.f09_g17.I1850Clm50BgcCropCru.cheyenne_intel.clm-ciso, + ERS_Ld3.f09_g17.I1850Clm50BgcCrop.cheyenne_intel.clm-rad_hrly_light_res_half, + ERS_Ld3.f09_g17.I2000Clm50Fates.cheyenne_intel.clm-FatesColdDef. Total + runtime of these increased in some tests and decreased in others + relative to the baseline, but on average, there was little change + relative to the baseline. I have more carefully investigated this + change in the context of pio2, which will soon become the default: + with pio2, this change is important to get good performance. -Substantial timing or memory changes: None Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): - Now, do_transient_pfts and do_transient_crops only work in unison, and hence - should be simplified to one logical called do_transient_veg +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Changes to tests or testing: Add new SSP5-8.5 mksurf test +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none -Code reviewed by: self, slevisconsulting, billsacks +Changes to tests or testing: Changed PE layout for C96 test -CTSM testing: regular, tools +CTSM testing: [PASS means all tests PASS and OK means tests PASS other than expected fails.] build-namelist tests: - cheyenne - PASS (18 of the transient test namelists are different to baseline as expected) + cheyenne - not run - unit-tests (components/clm/src): + tools-tests (test/tools): - cheyenne - PASS + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run - tools-tests (components/clm/test/tools): + python testing (see instructions in python/README.md; document testing done): - cheyenne - OK (PTCLM tests fail) + (any machine) - not run regular tests (aux_clm): - cheyenne_intel ---- OK - cheyenne_gnu ------ OK - hobart_nag -------- OK - hobart_pgi -------- OK - hobart_intel ------ OK + cheyenne ---- pass + izumi ------- pass + + Note: testing was done on 13c693d88, which was before the PE layout + change for C96 and C192. I then ran the new C96 test manually. -CTSM tag used for the baseline comparisons: ctsm1.0.dev012 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: Yes! - - Summarize any changes to answers, i.e., - - what code configurations: clm4_5/clm5_0 transient simulations without Crop (either Bgc or SP) - - what platforms/compilers: All - - nature of change: crop areas increase in time and impact simulations - - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: dll/clm50_r267_1deg_GSWP3V1_iso_hist_nocrop_transientfix +Changes answers relative to baseline: NO Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None - -Pull Requests that document the changes (include PR ids): #546, #540 -(https://github.com/ESCOMP/ctsm/pull) +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none - #546 -- Add in ability for mksurfdata_map to handle ssp_rcp scenarios and specifically SSP5-8.5 - $540 -- Transient PFT issue +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1190 =============================================================== =============================================================== -Tag name: ctsm1.0.dev012 -Originator(s): erik (Erik Kluzek) -Date: Sat Sep 29 11:49:35 MDT 2018 -One-line Summary: Add snow-free fields for snowmip, fix several issues +Tag name: ctsm5.1.dev012 +Originator(s): oleson (Keith Oleson) / sacks (Bill Sacks) +Date: Tue Nov 3 09:31:41 MST 2020 +One-line Summary: Allow nlevgrnd < nlevurb Purpose of changes ------------------ -Bring in new diagnostic fields added by Justin Perket, Sean Swenson and Mark Flanner -for Snow-MIP. Most of those are fields that represent "Snow Free" data. +Allow nlevgrnd < nlevurb. This will become more important soon, when +nlevurb is increased to 10, yet we want to allow simple soil layer +structures, e.g., for NWP applications. -Also bring in fixes for a list of issues. Add handling of the new CO2 which includes -both latitude-band and global average versions. Add some changes to make it easier -for input data processing including NOT doing the slow 1km map file creation. Have -the number of steps that are skipped at startup dependent on the time-step size. Add -a test for some requirements of WACCMX (time-step and use of ESMF). Calculations of -local time are now done in a global subroutine, that can handle negative longitudes. -Fix how FFIX_TO_SMINN is handled for history output. The namelist logical "calc_human_stress_indices" -changed from logical to a character string of three values: FAST, NONE, ALL. FAST -is the default so the less expensive ones are output, NONE turns them all off, and ] -ALL does all of them including the expensive ones. +Also some additions to ncdio-related utilities to support this, +including extending find_var_on_file to support dimensions as well as +variables. +Also add levsoi coordinate variable on history files. Bugs fixed or introduced ------------------------ -Issues fixed (include CTSM Issue #): #428, #474, #475, #476, #450, #482, #481, #491 - Fix #428 -- Update getco2_historical.ncl to handle latitude varying CO2 - Fix #474 -- Add ability to send GRIDFILE to regridbatch.sh script - Fix #475 -- Have number of steps to skip balance-check based on time - Fix #476 -- Add a test for WACCMX standalone - Fix #450 -- Add option to use global average of terrain standard deviation on surfdata files - (partial fix with simplest option) - Fix #482 -- Add extra field on CO2 streams file for global/time-averaged data - Fix #481 -- FFIX_TO_SMINN needs to be output when FUN is on - Fix #491 -- Calculations of local noon assume that longitude is 0 to 360 rather than -180 to 180 - -Known bugs introduced in this tag (include github issue ID): cime#2801 - cime#2801 -- Problem building with ESMF_LIB - -Known bugs found since the previous tag (include github issue ID): #507, #505 - #507 -- Albedo's are bad at night with negative longitudes - #505 -- CTSM input data-set tools can only work on 0-360 grids, and require monotone increasing longitude +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#674 (Allow nlevgrnd less than nlevurb) Significant changes to scientifically-supported configurations @@ -9599,142 +13071,140 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 -[ ] clm4_5 +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): None - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +Caveats for users (e.g., need to interpolate initial conditions): none - New namelist: - use_ssre -- Turn on show free fields needed for SnowMIP - - Changed namelist: - calc_human_stress_indices changed from logical to character with options: ALL, FAST, NONE - - New history fields: - Mostly added Snow Free (SF) fields - ALBDSF - ALBISF - FSRSF - FSRSFND - FSRSFNDLN - FSRSFNI - FSRSFVD - FSRSFVDLN - FSRSFVI - SSRE_FSR - SSRE_FSRND - SSRE_FSRNDLN - SSRE_FSRNI - SSRE_FSRVD - SSRE_FSRVDLN - SSRE_FSRVI +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none -Changes made to namelist defaults (e.g., changed parameter values): - calc_human_stress_indices = 'FAST' is now the default +Changes made to namelist defaults (e.g., changed parameter values): none -Changes to the datasets (e.g., parameter, surface or initial files): - mkghg_bndtvghg -- Update with new CO2 files, both monthly, lat-bands and yearly, global +Changes to the datasets (e.g., parameter, surface or initial files): none -Substantial timing or memory changes: None +Substantial timing or memory changes: none Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Caveats for developers (e.g., code that is duplicated that requires double maintenance): - I was able to reduce the duplication in SurfaceAlbedoMod where the original implementation added a cut - and paste copy of code. But, there is still a lot of duplication in this file that could be improved, by - making smaller functions/subroutines to do sections of code that are essentially repeated many times. - There's a bit of an increase in complexity to reduce the duplication, but reducing the duplication was worth it. +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none Changes to tests or testing: - Add a new waccmx_offline test mods and test with it - New test expected fail because of cime issue: ERS_D_Ln9_P480x3.f19_g16.I2000Clm50SpGs.cheyenne_intel.clm-waccmx_offline - Turn use_ssre on for most tests, off for reducedOutput - And set calc_human_stress_indices=NONE for reducedOutput, FAST for most, and ALL for KitchenSink and KSMOut tests - -Code reviewed by: self, @olyson, @billsacks +- Removed the no-longer-useful snowlayers_3_monthly test +- Added a test with nlevgrnd < nlevurb - -CTSM testing: regular +CTSM testing: [PASS means all tests PASS and OK means tests PASS other than expected fails.] build-namelist tests: - cheyenne - PASS + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run - unit-tests (components/clm/src): + python testing (see instructions in python/README.md; document testing done): - cheyenne - PASS + (any machine) - not run regular tests (aux_clm): - cheyenne_intel ---- OK - cheyenne_gnu ------ OK - hobart_nag -------- OK - hobart_pgi -------- OK - hobart_intel ------ OK + cheyenne ---- pass + izumi ------- pass -CTSM tag used for the baseline comparisons: ctsm1.0.dev011 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: no bit-for-bit +Changes answers relative to baseline: NO Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): No - -Pull Requests that document the changes (include PR ids): #462 #449 -(https://github.com/ESCOMP/ctsm/pull) +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none - #462 -- Add namelist item to calculate all heat stress indices only if requested; to speed up model - #449 -- Bring in snowmip diagnostic fields +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1195 =============================================================== =============================================================== -Tag name: ctsm1.0.dev011 -Originator(s): sacks (Bill Sacks), mvr (Mathew Rothstein) -Date: Wed Sep 12 10:50:31 MDT 2018 -One-line Summary: Add water tracer consistency checks, and other water tracer work +Tag name: ctsm5.1.dev011 +Originator(s): sacks (Bill Sacks) +Date: Mon Nov 2 10:28:35 MST 2020 +One-line Summary: Change CISM2%NOEVOLVE compsets to use SGLC; documentation updates Purpose of changes ------------------ -1. Add water tracer consistency checks - -2. Add infrastructure for looping over all water tracers - currently - just used for the tracer consistency checks +(1) Change CISM2%NOEVOLVE compsets to use SGLC. + +The use of CISM2%NOEVOLVE adds complexity and (perhaps most importantly) +increases the turnaround time of CTSM software testing, while adding +only marginal scientific value. Therefore, we are changing I compsets to +use a stub glacier (SGLC) rather than CISM2%NOEVOLVE for now. Within the +next year, we'd like to have these use a data glc model, but that will +most likely wait until we switch to using NUOPC by default (so we can +use a data glc in CDEPS: ESCOMP/CDEPS#25). + +This tag changes the meaning of compset aliases that previously had +neither a Gs (for stub glacier) or G (for CISM2%EVOLVE), so that they +now use a stub glacier (SGLC) rather than CISM2%NOEVOLVE. Compset +aliases that previously had Gs (so were already using a stub glacier) +have been changed so that there is no longer a Gs in the alias: stub +glacier is now the implied default. + +This change reduces our test build time to 40% of what it previously +was! When I ran the test suite for ctsm5.1.dev010, the cheyenne-intel +test suite (by far the largest of our test suites) took 5 hours, 8 min +to build. In yesterday's run of the test suite with this change in +place, the cheyenne-intel test suite took only 2 hours, 6 min to build! +The final test in this test suite finished running just 2 hours, 29 min +after I started the test suite. This may not be a completely fair +comparison, because the machine may have been relatively lightly loaded +during this Sunday afternoon run, but I wouldn't expect the test suite +build time (which is what I'm reporting here) to be hugely impacted by +that. + +Changes due to using SGLC in place of CISM2%NOEVOLVE are documented +here: +. + +(2) Documentation updates + +Brings in a new optional external, doc-builder, to assist with building +the documentation, specifically with a new Docker-based workflow +documented here +. + +Also updates LILAC documentation and a bit more. -3. Breakout of atm2lnd and lnd2atm water variables, needed for water tracers - -4. Add some namelist control over the addition of water tracers - -5. Add a system test that exercises the water tracer consistency checks - -6. Add a 'ratio' variable for each water tracer - -7. Add some unit tests of the new water tracer infrastructure Bugs fixed or introduced ------------------------ Issues fixed (include CTSM Issue #): -- Partially addresses #357 -- Resolves #479 -- Resolves #492 +- Resolves ESCOMP/CTSM#1135 (Replace CISM2%NOEVOLVE compsets with SGLC) + +Known bugs introduced in this tag (include github issue ID): +- See ESCOMP/CTSM#1136 (Use data glc model where we used to use CISM2%NOEVOLVE) + Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -9744,23 +13214,26 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[ ] clm5_0 +[X] clm5_1 -[ ] clm4_5 +[X] clm5_0 + +[X] ctsm5_0-nwp -[ ] clm4_0 +[X] clm4_5 Notes of particular relevance for users --------------------------------------- Caveats for users (e.g., need to interpolate initial conditions): -- Don't be fooled by the new namelist variable, enable_water_isotopes: - This is just a place-holder for now, not implying that water isotopes - are actually working. +- This tag changes the meaning of compset aliases that previously had + neither a Gs (for stub glacier) or G (for CISM2%EVOLVE), so that they + now use a stub glacier (SGLC) rather than CISM2%NOEVOLVE. Compset + aliases that previously had Gs (so were already using a stub glacier) + have been changed so that there is no longer a Gs in the alias: stub + glacier is now the implied default. -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): -- New namelist variables: enable_water_tracer_consistency_checks and - enable_water_isotopes. The latter is just a place-holder for now. +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none Changes made to namelist defaults (e.g., changed parameter values): none @@ -9770,16 +13243,19 @@ Substantial timing or memory changes: none Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide Caveats for developers (e.g., code that is duplicated that requires double maintenance): none -Changes to tests or testing: New test that runs the water tracer consistency check - I ran this test on cheyenne_gnu and cheyenne_intel along with the - out-of-the-box hobart_nag version - -Code reviewed by: Mat Rothstein and I have worked together on many of -these changes, but not all code has been reviewed by the other. +Changes to tests or testing: +- Changed compsets used in testing according to the above notes. In + particular, this involved removing the 'Gs' from compset names in + tests. +- No longer need a specific testmod for the LII test (see commit + f75335a45) +- Changed the glcMEC_changeFlags test to be more useful (see commit + e350beced) +- Removed _gl4 from resolution in tests that no longer use CISM CTSM testing: @@ -9787,68 +13263,110 @@ CTSM testing: build-namelist tests: - cheyenne - ok (tests pass, clm4_5 and clm5_0 namelists differ from - baseline as expected) + cheyenne - not run - unit-tests (components/clm/src): + tools-tests (test/tools): - cheyenne - pass + cheyenne - not run - tools-tests (components/clm/test/tools): + PTCLM testing (tools/shared/PTCLM/test): cheyenne - not run - PTCLM testing (components/clm/tools/shared/PTCLM/test): + python testing (see instructions in python/README.md; document testing done): - cheyenne - not run + (any machine) - not run regular tests (aux_clm): - cheyenne_intel ---- pass - cheyenne_gnu ------ pass - hobart_nag -------- pass - hobart_pgi -------- pass - hobart_intel ------ pass + cheyenne ---- ok + izumi ------- ok + + ok: tests pass, baselines fail as expected -CTSM tag used for the baseline comparisons: ctsm1.0.dev010 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: NO +Changes answers relative to baseline: YES + + Summarize any changes to answers, i.e., + - what code configurations: ALL + - what platforms/compilers: ALL + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff; potentially new climate regionally, over Greenland + + The changes arise from changes in the meaning of + compsets. Configurations that used to use a stub GLC (compsets + with Gs in their alias) have the same meaning as before, but a + different compset alias (so in testing, this resulted in BFAILs + due to missing baselines). Configurations that previously used + CISM2%NOEVOLVE (which included most of our standard + configurations) now instead use a stub GLC. This results in + differences over Greenland (in ways described here: + ). + + If bitwise differences were observed, how did you show they were no worse + than roundoff? N/A + + If this tag changes climate describe the run(s) done to evaluate the new + climate (put details of the simulations in the experiment database) + - casename: N/A + + URL for LMWG diagnostics output used to validate new climate: N/A + Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- New doc-builder external (at v1.0.2) -Pull Requests that document the changes (include PR ids): -- https://github.com/ESCOMP/ctsm/pull/497 +Pull Requests that document the changes (include PR ids): none =============================================================== =============================================================== -Tag name: ctsm1.0.dev010 -Originator(s): sacks (Bill Sacks) -Date: Thu Aug 30 17:14:28 MDT 2018 -One-line Summary: Update cime to cime5.7.3 +Tag name: ctsm5.1.dev010 +Originator(s): sacks (Bill Sacks), jedwards (Jim Edwards) +Date: Fri Oct 23 14:36:03 MDT 2020 +One-line Summary: Fix reading netcdf variable into a different data type Purpose of changes ------------------ -Update cime from cime5.6.10 to cime5.7.3. To support this change, there -are also minor code changes related to the pause-resume implementation -(from Erik Kluzek). +Main change is to fix the reading of a variable that is one type on a +NetCDF file but a different data type in memory. Previously, this could +lead to memory corruption (not just of the variable in question, but +other variables as well). This was not causing any problems in +out-of-the-box configurations, but it sometimes tripped up some +developers when they added new fields on datasets. + +In addition, this adds new self-test code to test ncdio_pio. This module +is hard to get under unit test, but we want to have some tests of it, to +pick up problems like the one fixed in this tag. So as a compromise +solution for now, I have introduced unit test-like tests that are built +into a standard build of CTSM and run in a standard run if a given +namelist flag is set. A better long-term solution would be to integrate +these tests into the pFUnit-based unit testing framework, but that would +take some work. I have added tests of the new code, and a bit of testing +of other code in ncdio_pio, but there's still a lot in ncdio_pio that is +not tested. I figure we can gradually add tests as we make changes to +ncdio_pio. + +Finally, an unrelated change to the unit test build: files generated by +genf90 now appear in the unit test build directory rather than the +source tree. Bugs fixed or introduced ------------------------ Issues fixed (include CTSM Issue #): -- ESCOMP/ctsm#384 (VIC test is failing at f09 resolution with signal) - (I'm not sure what fixed this, but it's passing now) - -CIME Issues fixed (include issue #): many - +- Resolves ESCOMP/CTSM#1091 (Memory corruption when reading a netcdf + variable into a variable of a different type, at least with PIO1) +- Resolves ESCOMP/CTSM#1188 (In unit test build: files generated by + genf90 should go in build dir rather than source dir) Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -9858,18 +13376,21 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[ ] clm5_1 + [ ] clm5_0 -[ ] clm4_5 +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- Caveats for users (e.g., need to interpolate initial conditions): none -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- new namelist variable, for_testing_run_ncdiopio_tests Changes made to namelist defaults (e.g., changed parameter values): none @@ -9879,14 +13400,20 @@ Substantial timing or memory changes: none Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - -Changes to tests or testing: none +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Code reviewed by: self +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- Ideally the ncdio_pio self-tests would be recoded as true unit tests, + leveraging the pFUnit framework. This would get them out of the main + source code, and would give other benefits that come with a real unit + testing framework, such as that a single failure doesn't abort the + entire test suite. +- The existence of tests for ncdio_pio should NOT be taken as a sign + that all (or even most) of this module is now under unit test: in + fact, much of it is not covered yet by my new testing module. +Changes to tests or testing: +- Added a test that triggers for_testing_run_ncdiopio_tests CTSM testing: @@ -9896,62 +13423,58 @@ CTSM testing: cheyenne - not run - unit-tests (components/clm/src): + tools-tests (test/tools): - cheyenne - pass + cheyenne - not run - tools-tests (components/clm/test/tools): + PTCLM testing (tools/shared/PTCLM/test): cheyenne - not run - PTCLM testing (components/clm/tools/shared/PTCLM/test): + python testing (see instructions in python/README.md; document testing done): - cheyenne - not run + (any machine) - not run regular tests (aux_clm): - cheyenne_intel ---- pass - cheyenne_gnu ------ pass - hobart_nag -------- pass - hobart_pgi -------- pass - hobart_intel ------ pass + cheyenne ---- pass + izumi ------- pass -CTSM tag used for the baseline comparisons: ctsm1.0.dev009 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: NO - bit-for-bit +Changes answers relative to baseline: NO Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -cime: cime5.6.10 -> cime5.7.3 +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none -Pull Requests that document the changes (include PR ids): none +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1189 +https://github.com/ESCOMP/CTSM/pull/1176 (old version, superseded by 1189) =============================================================== =============================================================== -Tag name: ctsm1.0.dev009 -Originator(s): sacks (Bill Sacks) -Date: Wed Aug 22 20:32:36 MDT 2018 -One-line Summary: Fix initialization of AnnET in InitAccVars +Tag name: ctsm5.1.dev009 +Originator(s): negins (Negin Sobhani,UCAR/TSS,303-497-1224) +Date: Wed Oct 21 11:14:25 MDT 2020 +One-line Summary: BFB changes for Perturbed Parameter Ensemble and Hydraulic redistribution Purpose of changes ------------------ -InitAccVars was mistakenly setting qflx_evap_tot_col rather than -AnnET. This fix allows us to remove now-redundant cold start and restart -code for AnnET. +Some BFB changes for PPE work and Hydraulic redistribution Bugs fixed or introduced ------------------------ -Issues fixed (include CTSM Issue #): -- Fixes #480 -- Partially addresses #285 +Issues fixed (include CTSM Issue #): [If none, remove this line] + - resolves ESCOMP/CTSM#881 + - resolves ESCOMP/CTSM#1020 Significant changes to scientifically-supported configurations @@ -9960,37 +13483,36 @@ 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.] + +[ ] clm5_1 [ ] clm5_0 -[ ] clm4_5 +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): none +Caveats for users (e.g., need to interpolate initial conditions): None -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + - maxpatch_pft is removed from namelist -Changes made to namelist defaults (e.g., changed parameter values): none +Changes made to namelist defaults (e.g., changed parameter values): None -Changes to the datasets (e.g., parameter, surface or initial files): none +Changes to the datasets (e.g., parameter, surface or initial files): None -Substantial timing or memory changes: none +Substantial timing or memory changes: [For timing changes, can check PFS test(s) in the test suite] Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): none - -Changes to tests or testing: none +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Code reviewed by: basic proposed changes reviewed by Erik Kluzek +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None +Changes to tests or testing: CTSM testing: @@ -10000,64 +13522,65 @@ CTSM testing: cheyenne - not run - unit-tests (components/clm/src): + tools-tests (test/tools): - cheyenne - pass + cheyenne - not run - tools-tests (components/clm/test/tools): + PTCLM testing (tools/shared/PTCLM/test): cheyenne - not run - PTCLM testing (components/clm/tools/shared/PTCLM/test): + python testing (see instructions in python/README.md; document testing done): - cheyenne - not run + (any machine) - None regular tests (aux_clm): - cheyenne_intel ---- pass - cheyenne_gnu ------ pass - hobart_nag -------- pass - hobart_pgi -------- pass - hobart_intel ------ pass + cheyenne ---- ok + izumi ------- ok -CTSM tag used for the baseline comparisons: ctsm1.0.dev008 +If the tag used for baseline comparisons was NOT the previous tag, note that here: N/A Answer changes -------------- -Changes answers relative to baseline: NO +Changes answers relative to baseline: + Four new fields regarding plant hydraulic processes has been added: + + - QHR (patch-level hydraulic redistribution) + - VEGWPLN (local noon vegetation water potential) + - VEGWPPD (predawn vegetation water potential) + - VPD_CAN: canopy vapor pressure deficit (functional input to Medlyn model) Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None -Pull Requests that document the changes (include PR ids): none +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1187 +https://github.com/ESCOMP/CTSM/pull/1126 =============================================================== =============================================================== -Tag name: ctsm1.0.dev008 -Originator(s): erik (Erik Kluzek) -Date: Tue Aug 14 10:25:12 MDT 2018 -One-line Summary: Update 1850 ndep file and last year for streams for Historical transient cases +Tag name: ctsm5.1.dev008 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Wed Oct 7 11:48:30 MDT 2020 +One-line Summary: Two answer changes: Clm45/50/51 with crop, and for 2000Clm51 Purpose of changes ------------------ -Bring in changes from release-clm5.0.05. Update to latest Nitrogen Deposition file from simulations with WACCM for 1850. -Also fix an issue with the last year for historical transient cases. - +Turn dribble_crophrv_xsmrpool_2atm when crop is on for clm4_5, clm5_0, and clm5_1 physics +Fix the finidat files being selected for 2000_control conditions for clm5_1 Bugs fixed or introduced ------------------------ -Issues fixed (include CTSM Issue #): 461 - #461 -- increase last year in streams for transient - -Known bugs found since the previous tag (include github issue ID): [If none, remove this line] - #478 -- Bare soil g1 should be missing value or zero - +Issues fixed (include CTSM Issue #): + Fixes #1158 -- Turn dribble_crophrv_xsmrpool_2atm on when crop is on for all physics versions + Another issue in #1166 -- correct finidat file for 2000Clm51 Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -10067,11 +13590,13 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[ ] clm5_0 +[x] clm5_1 -[ ] clm4_5 +[x] clm5_0 + +[ ] ctsm5_0-nwp -[ ] clm4_0 +[x] clm4_5 Notes of particular relevance for users --------------------------------------- @@ -10080,22 +13605,22 @@ Caveats for users (e.g., need to interpolate initial conditions): None Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None -Changes made to namelist defaults (e.g., changed parameter values): Last year extended for transient datasets +Changes made to namelist defaults (e.g., changed parameter values): + dribble_crophrv_xsmrpool_2atm now on when crop on for all physics versions -Changes to the datasets (e.g., parameter, surface or initial files): New ndep dataset for 1850 +Changes to the datasets (e.g., parameter, surface or initial files): None -Substantial timing or memory changes: +Substantial timing or memory changes: None Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): None - -Changes to tests or testing: Lengthen some tests +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Code reviewed by: self +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + The namelist dribble_crophrv_xsmrpool_2atm should now be removed as a namelist item both + in the fortran code and in build-namelist scripts. This change should be bit-for-bit. +Changes to tests or testing: None CTSM testing: regular @@ -10103,66 +13628,128 @@ CTSM testing: regular build-namelist tests: - cheyenne - PASS (11 show differences for 1850_control and 20thC_transient) + cheyenne - PASS (120 tests are different than before) - unit-tests (components/clm/src): + python testing (see instructions in python/README.md; document testing done): - cheyenne - PASS + cheyenne -- PASS regular tests (aux_clm): - cheyenne_intel ---- OK - cheyenne_gnu ------ OK - hobart_nag -------- OK - hobart_pgi -------- OK - hobart_intel ------ OK + cheyenne ---- PASS + izumi ------- PASS -CTSM tag used for the baseline comparisons: ctsm1.0.dev007 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: Yes! +Changes answers relative to baseline: Yes Summarize any changes to answers, i.e., - - what code configurations: 1850_control or 20thC_transient for Clm50 - - what platforms/compilers: all - - nature of change: similar climate + - what code configurations: Clm45/50/51 with crop (except with prognostic CO2) and 2000Clm51 + - what platforms/compilers: All + - nature of change: same climate Detailed list of changes ------------------------ List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None -Pull Requests that document the changes (include PR ids): +Pull Requests that document the changes (include PR ids): #1177 (https://github.com/ESCOMP/ctsm/pull) - #477 -- Move changes from release-clm5.0.05 onto master + #1177 -- Two answer changes turn dribble_crophrv_xsmrpool_2atm and correct clm5_1 finidat + file for 2000 conditions =============================================================== =============================================================== -Tag name: ctsm1.0.dev007 +Tag name: ctsm5.1.dev007 Originator(s): sacks (Bill Sacks) -Date: Sun Aug 5 21:03:28 MDT 2018 -One-line Summary: Avoid glacier dynamic landunit adjustments in first time step +Date: Tue Oct 6 09:29:27 MDT 2020 +One-line Summary: CNFire: btran2 fixes and general cleanup Purpose of changes ------------------ -Always avoid generating dynamic landunit adjustments for glacier area -changes in the first timestep of a startup or hybrid run - not just for -cold start or interpolated start. See the detailed discussion in -https://github.com/ESCOMP/ctsm/issues/340 for rationale. +(1) Call routine to calculate fire's btran2 from CNFireArea; this has a + few advantages: + + - It makes the logic of CNFireArea more clear (rather than depending on + a btran2 variable that is calculated from some other part of the code) + + - This avoids having the biogeophysics depend on the biogeochemistry + + - This lets us avoid doing this btran calc if using no-fire – or other, + future, fire methods that don't need it + + Note regarding testing: In the initial step, I kept this calculation + dependent on a saved version of h2osoi_vol to avoid changing + answers; I changed this in the answer changes in step (2), as noted + below. + +(2) Answer-changing fixes to CNFire's btran2 calculation and use: + + (a) Calculate fire btran2 using updated h2osoi_vol (this is an + answer-changing cleanup step from (1)) + + (b) TEMPORARY CHANGE (reverted in the cleanup in (3)): Reinitialize + fire btran2 to spval for all patches in each time step, so that + the fire code isn't trying to use btran2 from earlier time steps + for patches that were in the exposed veg filter at one point but + no longer are. + + One implication of this is that, if there is currently no + exposed veg on a column, the new code leads to the block of code + that forces fire_m = 0 (because wtlf will be 0). Previously, in + contrast, it looks like fire_m was allowed to be non-zero even + if there is currently no exposed veg, because btran2 and wtlf + were accumulated if a patch ever was exposed in the past. + + (c) Limit fire btran2 to be <= 1, rather than letting it be slightly + greater than 1. (Due to a conditional in CNFireArea, these + slightly-greater-tan-1 values were being ignored when computing + btran_col, rather than averaging in a 1 value.) + +(3) Non-answer-changing fire code cleanup: + + (a) Cleanup of the btran2 fixes, including reverting the TEMPORARY + CHANGE noted in (2b), instead relying on a better mechanism: + just doing the calculations of btran_col and wtlf over the + exposedvegp filter. Also, get rid of the checks for + shr_infnan_isnan(btran2(p)) and btran2(p) <= 1 (allowed by the + other changes in (2) and (3)). + (b) Set btran2 to 0 over non-exposed-veg points: this changes + answers for the BTRAN2 diagnostic field, but nothing else. (This + follows what is done for the standard BTRAN.) + + (c) Move calc_fire_root_wetness for CNFireLi2021 into the base type + to avoid future bugs (assuming that the next fire module will + extend the base class but will also want to use this new version + of calc_fire_root_wetness). + + (d) Change fire looping structure to be more standard + +(4) Remove some very expensive tests from aux_clm, putting some in the + new ctsm_sci test list instead + +(5) A bit of other minor cleanup Bugs fixed or introduced ------------------------ Issues fixed (include CTSM Issue #): -- Fixes #340 (Avoid generating dynamic landunit adjustment fluxes for - glacier changes in the first timestep) - +- Resolves ESCOMP/CTSM#1139 (Decrease expense of ne0ARCTICGRISne30x8 + test and C96 tests) +- Resolves ESCOMP/CTSM#1153 (Fire btran2 is only computed for exposed + veg patches, but is used over all veg patches) +- Resolves ESCOMP/CTSM#1170 (CNFire code: btran2 should not be skipped + when it's greater than 1) +- Partially addresses ESCOMP/CTSM#1142 (Add ctsm_sci test list that + would be used for releases and making sure important resolutions run + well) Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -10172,11 +13759,13 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] -[ ] clm5_0 +[X] clm5_1 -[ ] clm4_5 +[X] clm5_0 -[ ] clm4_0 +[X] ctsm5_0-nwp + +[X] clm4_5 Notes of particular relevance for users --------------------------------------- @@ -10193,14 +13782,12 @@ Substantial timing or memory changes: none Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide Caveats for developers (e.g., code that is duplicated that requires double maintenance): none -Changes to tests or testing: none - -Code reviewed by: Erik Kluzek - +Changes to tests or testing: Remove some very expensive tests from +aux_clm, putting some in the new ctsm_sci test list instead. CTSM testing: @@ -10210,75 +13797,73 @@ CTSM testing: cheyenne - not run - unit-tests (components/clm/src): + tools-tests (test/tools): cheyenne - not run - tools-tests (components/clm/test/tools): + PTCLM testing (tools/shared/PTCLM/test): cheyenne - not run - PTCLM testing (components/clm/tools/shared/PTCLM/test): + python testing (see instructions in python/README.md; document testing done): - cheyenne - not run + (any machine) - pass (on my mac) regular tests (aux_clm): - cheyenne_intel ---- ok - cheyenne_gnu ------ pass - hobart_nag -------- pass - hobart_pgi -------- pass - hobart_intel ------ pass - - ok means tests pass; baseline failures as expected in these two - tests that do not use init_interp: - - FAIL ERI_N2_Ld9.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-default BASELINE ctsm1.0.dev006 - FAIL SMS_Lm13.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-cropMonthOutput BASELINE ctsm1.0.dev006 + cheyenne ---- ok + izumi ------- ok - (The glacier area on the finidat file used in these tests - - clmi.I2000Clm50BgcCrop.2011-01-01.1.9x2.5_gx1v7_gl4_simyr2000_c180715.nc - - seems to have come from an finidat_interp_dest file, and thus does - not match the glacier area from CISM.) + ok: tests pass, many baselines fail as expected -CTSM tag used for the baseline comparisons: ctsm1.0.dev006 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): +Changes answers relative to baseline: YES, for all CN/BGC configurations Summarize any changes to answers, i.e., - - what code configurations: Startup / Hybrid runs that include CISM - (even NOEVOLVE) and do not use init_interp, due to: - - different PE layout in new case vs. the one that generated the - finidat (roundoff-level diffs) - - different glacier area on finidat file vs. what's in CISM - (greater than roundoff-level diffs) + - what code configurations: All CN/BGC configurations - what platforms/compilers: all - - nature of change (roundoff; larger than roundoff/same climate; new climate): - Roundoff-level for different PE layout, larger than roundoff but - should be same climate when there is different glacier area on the - finidat file vs. what's in CISM - - The differences arise from dynamic landunit adjustments of the - below-ground C and N states in the old code, as CTSM adjusts its - areas to match CISM's. In the new code, there are no C and N - adjustments in the first time step from this adjustment. - - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A - - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A - - URL for LMWG diagnostics output used to validate new climate: N/A - + - nature of change (roundoff; larger than roundoff/same climate; new climate): + larger than roundoff; expected to be same climate, but not + investigated yet + + + To verify that the answer changes only came from expected changes, I + did a few rounds of testing. The following numbers refer to the groups + of changes listed under "Purpose of changes", above. The changes in + groups (4) and (5) were combined with those in groups (1) and (3) - + i.e., the basically non-answer-changing sets. + + First, I tested with just the changes in (1). This led to differences + in only limited configurations, as noted in + https://github.com/ESCOMP/CTSM/pull/1155#issuecomment-695035048: + - nofire tests had diffs in BTRAN2 + - dynroots tests had extensive diffs because now btran2 is calculated + after the dyn roots updates in each time step + - tests where the compared clm2 h0 file includes the 0th time step had + diffs just in BTRAN2, for reasons I couldn't determine + + Then I tested with the changes in (2), which were expected to change + answers for all CN/BGC tests. In particular, these change answers due + to: + - using updated h2osoi_vol rather than the one earlier in the time + step when calculating btran2 + - only considering points in the exposed veg filter when averaging + btran2 from patch to column, rather than using stale values from + no-longer-exposed patches (which also means having fire_m = 0 if + there are no currently-exposed veg patches in a column) (fix for + ESCOMP/CTSM#1153) + - treating btran2 values that are slightly greater than 1 as 1, rather + than ignoring them completely (fix for ESCOMP/CTSM#1170) + + Finally, I tested with all of the changes, comparing against the + baselines generated from (2). As expected, the only answer changes in + this final round were in the BTRAN2 diagnostic field (due to setting + btran2 to 0 over non-exposed-veg points). Detailed list of changes ------------------------ @@ -10286,42 +13871,28 @@ Detailed list of changes List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none Pull Requests that document the changes (include PR ids): -- #470 (Avoid glacier dynamic landunit adjustments in first time step) +https://github.com/ESCOMP/CTSM/pull/1155 =============================================================== =============================================================== -Tag name: ctsm1.0.dev006 +Tag name: ctsm5.1.dev006 Originator(s): sacks (Bill Sacks) -Date: Sat Aug 4 07:48:09 MDT 2018 -One-line Summary: Minor bug fixes, cleanup, documentation and enhancements +Date: Sat Oct 3 19:50:41 MDT 2020 +One-line Summary: Call correct routine to calculate btran2 for CNFireLi2021 Purpose of changes ------------------ -A collection of minor bug fixes, code cleanup, documentation and -enhancements, all bit-for-bit. See list of issues fixed below for -details. - +Due to a subtle code bug, CNFireLi2021 was using the btran2 calculating +routine from the base class rather than the new one that is specific to +this formulation. Bugs fixed or introduced ------------------------ Issues fixed (include CTSM Issue #): -- Fixes #24 (ncd_io_1d_log_glob is broken) -- Fixes #120 (Incorrect comments in Biogeophysics1Mod.F90 -- Fixes #217 (Change some cheyenne_gnu tests to cheyenne_intel) -- Fixes #245 (Put all .gitignore entries in top-level file) -- Fixes #272 (Code should error on missing mxsoil_color when SOIL_COLOR - is used) -- Fixes #283 (Add more helpful message about need to do init_interp with - wrong number of vertical layers) -- Fixes #367 (For cmip6 runs: Turn on cpl hist output needed to drive a - TG compset) -- Fixes #412 (Fix documentation of init_interp_method) -- Fixes #419 (Do not allow SOYFIXN diagnostic field with FUN) -- Fixes #464 (Some lines longer than 132 characters) -- Fixes #465 (Remove backwards compatibility check for snw_rds) -- Fixes #467 (Increase wallclock limit for test) +- Resolves ESCOMP/CTSM#1173 (CNFireLi2021Mod uses the wrong btran2 + routine) Significant changes to scientifically-supported configurations @@ -10332,11 +13903,13 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[X] clm5_1 + [ ] clm5_0 -[ ] clm4_5 +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- @@ -10349,23 +13922,15 @@ Changes made to namelist defaults (e.g., changed parameter values): none Changes to the datasets (e.g., parameter, surface or initial files): none -Substantial timing or memory changes: none +Substantial timing or memory changes: not investigated (none expected) Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide Caveats for developers (e.g., code that is duplicated that requires double maintenance): none -Changes to tests or testing: -- Changed a single-point test from gnu to intel to get better debugging - information - (SMS_D_Ly6_Mmpi-serial.1x1_smallvilleIA.IHistClm45BgcCropQianGs.cheyenne_intel.clm-cropMonthOutput) -- For some single-point tests on both gnu and intel: removed one - compiler, keeping the tests on just one - -Code reviewed by: self - +Changes to tests or testing: none CTSM testing: @@ -10375,123 +13940,83 @@ CTSM testing: cheyenne - not run - unit-tests (components/clm/src): + tools-tests (test/tools): - cheyenne - pass + cheyenne - not run - tools-tests (components/clm/test/tools): + PTCLM testing (tools/shared/PTCLM/test): cheyenne - not run - PTCLM testing (components/clm/tools/shared/PTCLM/test): + python testing (see instructions in python/README.md; document testing done): - cheyenne - not run + (any machine) - not run regular tests (aux_clm): - cheyenne_intel ---- pass - cheyenne_gnu ------ pass - hobart_nag -------- pass - hobart_pgi -------- pass - hobart_intel ------ pass - - NLCOMP failures as expected for tests with the cmip6 test mod + cheyenne ---- ok + izumi ------- ok - Some long single-point gnu tests failed due to running out of - wallclock time; I have removed these, just keeping them on intel - (along with removing a few other tests after I ran the testing - see - commit 5c226bdf): + ok: tests pass, Clm51Bgc baselines fail as expected - FAIL ERS_Lm54_Mmpi-serial.1x1_numaIA.I2000Clm50BgcCropGs.cheyenne_gnu.clm-cropMonthOutput RUN time=4803 - FAIL ERS_Ly6_Mmpi-serial.1x1_smallvilleIA.IHistClm50BgcCropGs.cheyenne_gnu.clm-cropMonthOutput RUN time=6024 + Note: there were also the following BFAIL results due to missing + baselines, as documented in the previous tag: + FAIL ERS_D_Ld10.C96_C96_mg17.IHistClm50Sp.cheyenne_intel.clm-decStart BASELINE ctsm5.1.dev005: ERROR BFAIL some baseline files were missing + FAIL ERS_Ln9.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.IHistClm50SpGs.cheyenne_intel.clm-clm50cam6LndTuningMode_1979Start BASELINE ctsm5.1.dev005: ERROR BFAIL some baseline files were missing + FAIL SMS_Ln9.ne0ARCTICGRISne30x8_ne0ARCTICGRISne30x8_mt12.IHistClm50Sp.cheyenne_intel.clm-clm50cam6LndTuningMode_1979Start BASELINE ctsm5.1.dev005: ERROR BFAIL some baseline files were missing + FAIL SMS_Ln9.ne0ARCTICGRISne30x8_ne0ARCTICGRISne30x8_mt12.ISSP585Clm50BgcCrop.cheyenne_intel.clm-clm50cam6LndTuningMode BASELINE ctsm5.1.dev005: ERROR BFAIL some baseline files were missing + FAIL SMS_Ln9.ne0CONUSne30x8_ne0CONUSne30x8_mt12.IHistClm50Sp.cheyenne_intel.clm-clm50cam6LndTuningMode_2013Start BASELINE ctsm5.1.dev005: ERROR BFAIL some baseline files were missing -CTSM tag used for the baseline comparisons: ctsm1.0.dev005 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: NO - bit-for-bit - - -Detailed list of changes ------------------------- - -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none - -Pull Requests that document the changes (include PR ids): -- #392 (Remove old code for snw_rds restart that looks no longer needed) -- (Other changes not documented in PRs) - -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev005 -Originator(s): sacks (Bill Sacks), mvr (Mathew Rothstein) -Date: Fri Aug 3 07:54:59 MDT 2018 -One-line Summary: Rework water data types to accommodate isotopes and other tracers - -Purpose of changes ------------------- - -This tag reworks the various water data types to allow having multiple -instances of variables that are needed for isotopes and other water -tracers. - -Specific changes include: - -(1) Separated "water state" variables into state, diagnostic and balance - check-related variables. This separation was not essential for the - work here, but was desired by Martyn Clark and others. +Changes answers relative to baseline: YES -(2) For each of water state, diagnostic and flux variables, separated - variables into those needed for both bulk and tracers vs. those only - needed for bulk. This way, we can have multiple instances of the - variables needed by tracers, but only a single instance of variables - that only apply to bulk water. This follows the design laid out in - https://github.com/escomp/ctsm/pull/395. The separation was based - largely on what was done in the old water isotope branch; we didn't - put a lot of thought into this, because the new design allows us to - easily migrate variables between bulk-only and bulk-and-tracer as - needed. + Summarize any changes to answers, i.e., + - what code configurations: Clm51Bgc + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + larger than roundoff; whether it is climate changing was not investigated -(3) Moved water fluxes that were defined in science modules back into - waterflux_type or waterfluxbulk_type. This was needed for (2); there - is more discussion on this in - https://github.com/escomp/ctsm/pull/395 and the log message for - commit 711e5cd7. +Detailed list of changes +------------------------ -(4) Introduced a top-level water_type that holds instances of all of the - other water-related objects. This follows the design laid out in - https://github.com/escomp/ctsm/pull/395. This is particularly - valuable for the tracer instances: the logic related to number of - tracers can be encapsulated in water_type, rather than infiltrating - clm_instMod. +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none -(5) Added placeholders for water tracer instances +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1174 -(6) Added infrastructure to generate history / restart field names for - the tracer instances. Eventually, the isotope class can also hold - information specific to each isotope. +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev005 +Originator(s): sacks (Bill Sacks) +Date: Fri Oct 2 09:51:08 MDT 2020 +One-line Summary: Answer changing bug fixes for clm51: fire and organic_frac_squared -This work was a joint effort between Mathew Rothstein and myself; Mat -gets much of the credit for the actual refactoring done here. +Purpose of changes +------------------ +A few bug fixes for CLM51: +- Initialize btran2 to 0 in CNFireLi2021Mod +- Remove multiplications by col%wtgcell in CNFireLi2021Mod +- Initialize nfire to 0 in CNFireLi2021Mod +- Fix organic_frac_squared default for clm5_1 Bugs fixed or introduced ------------------------ Issues fixed (include CTSM Issue #): -- Fixes #358 (Separate WaterStateType into multiple types) -- Fixes #434 (Separate WaterFluxType into a base class and a class that just applies to bulk) -- Fixes #359 (Set up infrastructure for multiple instances of WaterState and WaterFlux types) -- Fixes #458 (Implement handling of history and restart variables for water tracers) +- Resolves ESCOMP/CTSM#1171 (btran2 not initialized to zero in + CNFireLi2021Mod.F90) +- Partially addresses ESCOMP/CTSM#1169 (CNFireLi2021Mod reintroduces a + number of bugs that were fixed in earlier versions) +- Partially addresses ESCOMP/CTSM#1166 (Possible problems with namelist + defaults starting in ctsm5.0.dev001) -Known bugs introduced in this tag (include github issue ID): -- #464 (Some lines longer than 132 characters) -- #456 (Remove backwards compatibility check for snw_rds) (not a - newly-introduced issue, but it's more important to fix this with the - separation of waterstate_type) Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -10501,11 +14026,13 @@ Does this tag change answers significantly for any of the following physics conf [Put an [X] in the box for any configuration with significant answer changes.] +[X] clm5_1 + [ ] clm5_0 -[ ] clm4_5 +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- @@ -10514,30 +14041,21 @@ Caveats for users (e.g., need to interpolate initial conditions): none Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none -Changes made to namelist defaults (e.g., changed parameter values): none +Changes made to namelist defaults (e.g., changed parameter values): +- Fixes default for organic_frac_squared for clm5_1 Changes to the datasets (e.g., parameter, surface or initial files): none -Substantial timing or memory changes: none +Substantial timing or memory changes: not investigated (none expected) Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Caveats for developers (e.g., code that is duplicated that requires double maintenance): -- Water tracers are not yet functional - they are just placeholders -- Whether to use water tracers and which water tracers to use are - currently hard-coded; eventually, this should be namelist-controlled +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none Changes to tests or testing: none -Code reviewed by: Mathew Rothstein and Bill Sacks worked together on -these changes and reviewed each other's changes to some extent. The -high-level design was also reviewed and co-developed by Mariana -Vertenstein. Martyn Clark contributed substantially to the breakout of -water state into state, diagnostic and balance check-related variables. - - CTSM testing: [PASS means all tests PASS and OK means tests PASS other than expected fails.] @@ -10546,34 +14064,48 @@ CTSM testing: cheyenne - not run - unit-tests (components/clm/src): + tools-tests (test/tools): - cheyenne - pass + cheyenne - not run - tools-tests (components/clm/test/tools): + PTCLM testing (tools/shared/PTCLM/test): cheyenne - not run - PTCLM testing (components/clm/tools/shared/PTCLM/test): + python testing (see instructions in python/README.md; document testing done): - cheyenne - not run + (any machine) - not run regular tests (aux_clm): - cheyenne_intel ---- pass - cheyenne_gnu ------ pass - hobart_nag -------- pass - hobart_pgi -------- pass - hobart_intel ------ pass + cheyenne ---- ok + izumi ------- ok + + ok: tests pass, baselines fail just for CLM51 cases, as expected + + NOTE: The following expensive tests did not run, due to a long queue + wait time; we are about to remove these tests from the test suite + anyway: -CTSM tag used for the baseline comparisons: ctsm1.0.dev004 + PEND ERS_D_Ld10.C96_C96_mg17.IHistClm50Sp.cheyenne_intel.clm-decStart RUN + PEND ERS_Ln9.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.IHistClm50SpGs.cheyenne_intel.clm-clm50cam6LndTuningMode_1979Start RUN + PEND SMS_Ln9.ne0ARCTICGRISne30x8_ne0ARCTICGRISne30x8_mt12.IHistClm50Sp.cheyenne_intel.clm-clm50cam6LndTuningMode_1979Start RUN + PEND SMS_Ln9.ne0ARCTICGRISne30x8_ne0ARCTICGRISne30x8_mt12.ISSP585Clm50BgcCrop.cheyenne_intel.clm-clm50cam6LndTuningMode RUN + PEND SMS_Ln9.ne0CONUSne30x8_ne0CONUSne30x8_mt12.IHistClm50Sp.cheyenne_intel.clm-clm50cam6LndTuningMode_2013Start RUN + +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: NO - bit-for-bit +Changes answers relative to baseline: YES - just for CLM51 + Summarize any changes to answers, i.e., + - what code configurations: CLM51 + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + possibly new climate Detailed list of changes ------------------------ @@ -10581,269 +14113,331 @@ Detailed list of changes List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none Pull Requests that document the changes (include PR ids): -- https://github.com/escomp/ctsm/pull/395 (documents the high-level design) +https://github.com/ESCOMP/CTSM/pull/1172 =============================================================== =============================================================== -Tag name: ctsm1.0.dev004 -Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) -Date: Wed Jul 18 02:10:23 MDT 2018 -One-line Summary: Add some new diagnostic fields, fix a few issues, update cmip6 output +Tag name: ctsm5.1.dev004 +Originator(s): oleson (Keith Oleson), sacks (Bill Sacks) +Date: Wed Sep 30 10:45:25 MDT 2020 +One-line Summary: Improve robustness of onset and offset counters when changing dt Purpose of changes ------------------ -Add some new diagnostic fields. Some needed for CMIP6. Update the CMIP6 user-mods output. -Fix a couple issues. Get full list of history tapes working correctly. Check for valid range -of CO2. New IC file interpolated from the previous one for f19_g17_gl4 for 2000 Clm50BgcCrop. +The logic in CNPhenology for onset_counter and offset_counter was not +robust when the model time step differed from the time step used to +generate the finidat file. This showed up when running with a 20-minute +time step using a finidat file that was generated with a 30-minute time +step. See https://github.com/ESCOMP/CTSM/issues/1163 for details. + +The fix here improves the situation significantly, but I believe still +leaves some issues remaining; see +https://github.com/ESCOMP/CTSM/issues/1167 for details. Bugs fixed or introduced ------------------------ -Issues fixed (include CTSM Issue #): $210, #427, #429 - #210 -- increase number of history tapes - $427 -- Check for zero CO2 - #429 -- New IC for present day +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1163 (onset_counter variable on (all?) restart + files is not compatible with subsequent model runs using a 20 minute + time step) + +Known bugs introduced in this tag (include github issue ID): +- ESCOMP/CTSM#1167 (Rework CNPhenology onset and offset triggers to be + more robust to changes in dt) + - This issue was not exactly introduced in this tag, but it captures + some things that I think still need to be done for complete robustness Significant changes to scientifically-supported configurations -------------------------------------------------------------- -Does this tag change answers significantly for any of the following physics configurations? No +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.] [ ] clm5_0 -[ ] clm4_5 +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- Caveats for users (e.g., need to interpolate initial conditions): none -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): New history fields - TSKIN --- skin temperature - TSL ----- temperature of near-surface soil layer - GSSUNLN - sunlit leaf stomatal conductance at local noon - GSSHALN - shaded leaf stomatal conductance at local noon +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none -Changes made to namelist defaults (e.g., changed parameter values): None +Changes made to namelist defaults (e.g., changed parameter values): none -Changes to the datasets (e.g., parameter, surface or initial files): New finidat file f19_g17_gl4 2000 Clm50BgcCrop - New file is just interpolate from the previous file to a f19_g17_gl4 gridfor Clm50BgcCrop and 2000 simulation year +Changes to the datasets (e.g., parameter, surface or initial files): none -Substantial timing or memory changes: None +Substantial timing or memory changes: not checked (none expected) Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in .CLMTrunkChecklist as well as the coding style in the Developers Guide - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): - -Changes to tests or testing: None +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Code reviewed by: self, oleson, abtawfik +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none +Changes to tests or testing: none -CTSM testing: regular +CTSM testing: [PASS means all tests PASS and OK means tests PASS other than expected fails.] build-namelist tests: - cheyenne - OK (95 are different because of finidat file change) + cheyenne - not run + + tools-tests (test/tools): - unit-tests (components/clm/src): + cheyenne - not run - cheyenne - PASS + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run regular tests (aux_clm): - cheyenne_intel ---- OK - cheyenne_gnu ------ OK - hobart_nag -------- PASS - hobart_pgi -------- FAIL - hobart_intel ------ PASS + cheyenne ---- ok + izumi ------- pass + + ok: tests pass, one test had answer changes as noted below -CTSM tag used for the baseline comparisons: ctsm1.0.dev003 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: Yes -- only 2000 cases because of new IC +Changes answers relative to baseline: YES, but in very limited circumstances Summarize any changes to answers, i.e., - - what code configurations: Just 2000 cases - - what platforms/compilers: All - - nature of change: same climate + - what code configurations: Only when the model run uses a different + time step than the initial conditions file + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + larger than roundoff; magnitude not investigated; in some cases, + the differences might be significant if the model actually + continues without aborting + + In the aux_clm test suite, this only appears in one test: + SMS_Ln9.ne30pg2_ne30pg2_mg17.I2000Clm50BgcCrop.cheyenne_intel.clm-clm50cam6LndTuningMode + + but it might appear more widely in cam / fully coupled testing Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none Pull Requests that document the changes (include PR ids): -(https://github.com/ESCOMP/ctsm/pull) - - - #338 -- Radtemp and other new diagnostic fields +https://github.com/ESCOMP/CTSM/pull/1165 =============================================================== =============================================================== -Tag name: ctsm1.0.dev003 -Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) -Date: Sun Jul 15 00:26:46 MDT 2018 -One-line Summary: Update cime/cism to work on upgraded hobart and with glade changes on cheyenne +Tag name: ctsm5.1.dev003 +Originator(s): ivanderkelen (Inne Vanderkelen) / sacks (Bill Sacks) +Date: Tue Sep 29 10:16:00 MDT 2020 +One-line Summary: Add capability for dynamic lakes Purpose of changes ------------------ -Update cime and cism so can work on upgraded hobart. Also fix an issue that the Nag6.2 compiler found -in CTSM. Also get working with glade changes that happened on cheyenne, DIN_LOC_ROOT_CLMFORC was -changed to a new directory. +Adds the capability for dynamic lake areas, read from the +landuse_timeseries file. This represents reservoir construction. For +now, this capability is off by default. Turning it on requires new +fields on the landuse_timeseries file which cannot yet be produced by +mksurfdata_map; these new fields will be added in +https://github.com/ESCOMP/CTSM/pull/1073. +A substantial part of this tag involved changing the accounting of water +and energy in lakes in order to conserve water and energy across +landunit transitions while not producing too large adjustment +fluxes. This change results in roundoff-level answer changes for all +transient cases. + +The core changes in this tag are from Inne Vanderkelen, in consultation +with Bill Sacks. Additional changes are from Bill Sacks, in consultation +with Inne Vanderkelen. Bugs fixed or introduced ------------------------ -Issues fixed (include CTSM Issue #): [If none, remove this line] - #441 -- Changes in glade invalidate previous softlinks and data locations - #438 -- Illegal argument aliasing caught by nag6.2 - #433 -- with hobart upgrade CTSM not working - -Known bugs introduced in this tag (include github issue ID): - #444 -- PGI fails on cheyenne and hobart - -Known bugs found since the previous tag (include github issue ID): - #443 -- Wood C:N ratios - #440 -- leafcn_max < target leafcn? +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#200 (Count energy of water in lakes in total + gridcell heat content) +- Resolves ESCOMP/CTSM#1140 (Add lake water to dynbal baselines) Significant changes to scientifically-supported configurations -------------------------------------------------------------- -Does this tag change answers significantly for any of the following physics configurations? No +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.] [ ] clm5_0 -[ ] clm4_5 +[ ] ctsm5_0-nwp -[ ] clm4_0 +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): None +Caveats for users (e.g., need to interpolate initial conditions): +- Using the dynamic lakes functionality will require either the + mksurfdata_map changes in https://github.com/ESCOMP/CTSM/pull/1073 or + manually adding the necessary fields to the landuse_timeseries file. -Changes to CLM's user interface (e.g., new/renamed XML or namelist variables): DIN_LOC_ROOT_CLMFORC on cheyenne - DIN_LOC_ROOT_CLMFORC was change on cheyenne +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- New namelist variable for transient runs: do_transient_lakes -Changes made to namelist defaults (e.g., changed parameter values): None +Changes made to namelist defaults (e.g., changed parameter values): none -Changes to the datasets (e.g., parameter, surface or initial files): None +Changes to the datasets (e.g., parameter, surface or initial files): none -Substantial timing or memory changes: None +Substantial timing or memory changes: none Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): None +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Changes to tests or testing: path for cheyenne specific test had to be changed - Add some gnu tests on hobart - Lengthen wallclock on a test - Fix path for DA test_mod +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- Using the dynamic lakes functionality will require either the + mksurfdata_map changes in https://github.com/ESCOMP/CTSM/pull/1073 or + manually adding the necessary fields to the landuse_timeseries file. +- For this reason, the new test + (ERS_Lm25.1x1_smallvilleIA.IHistClm50BgcCropQianRsGs.cheyenne_gnu.clm-smallville_dynlakes_monthly) + requires a manual step to create the necessary landuse_timeseries + file. This step is documented in the README file for the + clm-smallville_dynlakes_monthly testmod. -Code reviewed by: self +Changes to tests or testing: +- Added a single-point test covering dynamic lakes, using a + manually-created landuse_timeseries file: + ERS_Lm25.1x1_smallvilleIA.IHistClm50BgcCropQianRsGs.cheyenne_gnu.clm-smallville_dynlakes_monthly -CLM testing: regular +CTSM testing: [PASS means all tests PASS and OK means tests PASS other than expected fails.] build-namelist tests: - cheyenne - PASS + cheyenne - ok - unit-tests (components/clm/src): + Tests pass, differences from baseline as expected due to new + namelist variable - cheyenne - PASS + tools-tests (test/tools): - tools-tests (components/clm/test/tools): + cheyenne - not run - cheyenne - PASS + PTCLM testing (tools/shared/PTCLM/test): - PTCLM testing (components/clm/tools/shared/PTCLM/test): + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): - cheyenne - OK + (any machine) - not run regular tests (aux_clm): - cheyenne_intel ---- OK - cheyenne_gnu ------ OK - hobart_nag -------- OK - hobart_pgi -------- FAIL - hobart_gnu -------- PASS - hobart_intel ------ PASS + cheyenne ---- ok + izumi ------- ok -CLM tag used for the baseline comparisons: ctsm1.0.dev002 + Tests pass, baselines differ as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: No bit-for-bit +Changes answers relative to baseline: YES + + If a tag changes answers relative to baseline comparison the + following should be filled in (otherwise remove this section): + And always remove these three lines and parts that don't apply. + + Summarize any changes to answers, i.e., + - what code configurations: Transient cases + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Mostly roundoff-level. See below for details. + + - Differences in HEAT_CONTENT1, ICE_CONTENT1, LIQUID_CONTENT1, as + expected + + - In transient tests (including Hist/SSP, Fates, CNDV and + transient glacier), roundoff-level diffs in EFLX_DYNBAL, + QFLX_ICE_DYNBAL and QFLX_LIQ_DYNBAL, along with related flux + terms, and river volume + + - In some transient tests, roundoff-level diffs in methane terms, + presumably from downstream effects of changes in VOLR due to + roundoff-level changes in fluxes. In multi-year tests, these + methane diffs grow to bigger than roundoff-level, but I think + they originate from roundoff-level diffs. (I feel like I've seen + this high sensitivity before.) + + - glcMEC_increase test + (ERP_P180x2_D_Ld5.f19_g17_gl4.I1850Clm50BgcCropG.cheyenne_intel.clm-glcMEC_increase) + shows significant differences in river-related terms, maybe due + to glacier running over lake and now lake has different states + than before; also, FILLDIFFs in h1 file because lake remains + active even when it goes to 0 area. + + If bitwise differences were observed, how did you show they were no worse + than roundoff? + - Examined cprnc RMS diffs + + If this tag changes climate describe the run(s) done to evaluate the new + climate (put details of the simulations in the experiment database) + - casename: N/A + + URL for LMWG diagnostics output used to validate new climate: N/A + Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime, cism - cism-wrapper to release-cesm2.0.04 - cime to cime5.6.10 +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none Pull Requests that document the changes (include PR ids): -(https://github.com/ESCOMP/ctsm/pull) - #444 -- Get working on upgraded hobart and with glade changes on cheyenne +https://github.com/ESCOMP/CTSM/pull/1109 +https://github.com/billsacks/ctsm/pull/3 =============================================================== =============================================================== -Tag name: ctsm1.0.dev002 -Originator(s): erik (Erik Kluzek) -Date: Fri Jul 6 16:33:03 MDT 2018 -One-line Summary: Fix NFIX flux variables so special land-units are zeroed out, tools update, add some *_MAX fields on mksurfdata_map for transient cases +Tag name: ctsm5.1.dev002 +Originator(s): slevis (Samuel Levis,303-665-1310) +Date: Mon Sep 25 09:39:19 MDT 2020 +One-line Summary: Reduce duplication between caps Purpose of changes ------------------ -Nitrogen Fixation flux arrays were being set to missing value over non-vegetated landunits. This sets them to zero everywhere -and averages in the zero's at the gridcell level for history output. It also reads in restarts with missing values and converts -them to zero's. - -There are also some tools updates, getting the tools working on the new upgraded hobart.cgd.ucar.edu. - -And mksurfdata_map is updated to add some *_MAX files on the landuse.timeseries files that will allow us to conserve memory -for transient cases. + Eliminate duplication of the "derived quantities for required fields" + and corresponding error checking codes that repeat across the mct, + nuopc, and lilac caps. This consolidates the code and reduces + maintenance requirements. Bugs fixed or introduced ------------------------ -Issues fixed (include CTSM Issue #): #435, #436, #433 (for tools) - #435 -- intel build for tools - #426 -- Nitrogen Fixation flux variables - #433 -- hobart broken, got it working for tools - -Known bugs found since the previous tag (include github issue ID): #433, #431 +Issues fixed (include CTSM Issue #): #918 - #433 -- with hobart upgrade, hobart build isn't working - #431 -- When set_* options are used to hist_addfld be careful of ordering Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -10855,305 +14449,216 @@ Does this tag change answers significantly for any of the following physics conf [X] clm5_0 -[ ] clm4_5 +[X] ctsm5_0-nwp -[ ] clm4_0 +[X] clm4_5 Notes of particular relevance for users --------------------------------------- Caveats for users (e.g., need to interpolate initial conditions): None -Changes to CLM's user interface (e.g., new/renamed XML or namelist variables): None +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None -Changes made to namelist defaults (e.g., changed parameter values): ndep file updated for clm5_0 for 1850 +Changes made to namelist defaults (e.g., changed parameter values): None Changes to the datasets (e.g., parameter, surface or initial files): None -Substantial timing or memory changes: None +Substantial timing or memory changes: [For timing changes, can check PFS test(s) in the test suite] None Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in .CLMTrunkChecklist as well as the coding style in the Developers Guide +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -Caveats for developers (e.g., code that is duplicated that requires double maintenance): NFIX flux variables - NFIX flux variables when read from restart have special-values (missing on non veg landunits) converted to zero's - They are now initialized to zero everywhere. +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None Changes to tests or testing: None -Code reviewed by: self, wwieder, and lawrence, sacks (mksurfdata_map code) +Code reviewed by: @billsacks @slevisconsulting + -CLM testing: regular (although none on hobart!) +CTSM testing: [PASS means all tests PASS and OK means tests PASS other than expected fails.] build-namelist tests: - cheyenne - PASS (5 tests differ from previous version) + cheyenne - + + tools-tests (test/tools): - unit-tests (components/clm/src): + cheyenne - - cheyenne - PASS + PTCLM testing (tools/shared/PTCLM/test): - tools-tests (components/clm/test/tools): + cheyenne - - cheyenne - PASS - hobart --- PASS + python testing (see instructions in python/README.md; document testing done): + + (any machine) - regular tests (aux_clm): - cheyenne_intel ---- OK - cheyenne_gnu ------ OK + cheyenne ---- OK + izumi ------- PASS -CLM tag used for the baseline comparisons: ctsm1.0.dev001 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: clm5_0 BGC configurations with FUN and clm5_0 with BGC for new 1850 ndep file +Changes answers relative to baseline: Yes (Similar climate) Summarize any changes to answers, i.e., - - what code configurations: All clm5_0 BGC due to NFIX fields, and clm5_0 1850 BGC due to new ndep file + - what code configurations: All - what platforms/compilers: All - - nature of change: similar climate + - nature of change: Larger than roundoff/same climate + Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None - -Pull Requests that document the changes (include PR ids): -(https://github.com/ESCOMP/ctsm/pull) + Changes were implemented in three steps: - #437 -- ChangeLog template - #432 -- nfix - #331 -- _MAX fields on mksurfdata_map + 1) Bit-for-bit: @billsacks simplified subroutine QSat by making three + arguments optional (es, qsdT, esdT). -=============================================================== -=============================================================== -Tag name: ctsm1.0.dev001 -Originator(s): sacks (Bill Sacks) -Date: Fri Jun 22 07:31:43 MDT 2018 -One-line Summary: Begin separating SoilHydrology flux calculations + 2) Answer-changing: @slevisconsulting replaced local calculations of + qsat in /src/cpl/mct, /src/cpl/lilac, and /src/cpl/nuopc with calls to + CTSM's subroutine QSat. Subroutine QSat uses a higher-order polynomial + approximation to estimate qsat, which explains the larger than + round-off diffs. When moving the three identical local approximations + to QSat as a temporary test instead of using the higher-order + polynomial approximation, the diffs reduce to round-off. -Note the new tag naming: Starting with this tag, we are naming tags -"ctsm..." rather than "clm...". We are starting with ctsm version 1, -which for now is nearly the same as clm version 5. We are moving to this -new tag naming now because: + 3) Bit-for-bit: @slevisconsulting consolidated repeating codes in + /src/cpl/mct, /src/cpl/lilac, and /src/cpl/nuopc by placing in the new + file /src/utils/lnd_import_export_utils.F90. -(1) The changes in this tag represent the first step towards - implementing the CTSM vision (separating the biogeophysics flux - calculations from state updates, making it easier to plug in - alternative parameterizations, etc.). +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): -(2) This tag changes answers relative to the CLM5 release. (We expect - the climate to be the same, but we haven't tested this carefully - yet.) +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/CTSM/pull/1086 + https://github.com/ESCOMP/CTSM/pull/1094 +=============================================================== +=============================================================== +Tag name: ctsm5.1.dev001 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Wed Sep 23 02:29:08 MDT 2020 +One-line Summary: Start the clm5_1 physics series, with some changes to the fire model from Fang Li Purpose of changes ------------------ -First steps toward separating various flux calculations in the soil -hydrology code. The focus here is on saturated surface runoff and -infiltration excess runoff. The changes here separate flux calculations -from state updates and extract various calculations into their own -subroutines to facilitate swapping in alternative parameterizations. - -Most of the changes here are refactorings that are either bit-for-bit or -just introduce roundoff-level differences. However, there are also a few -larger answer changes, as described below. - -These are the greater-than-roundoff-level answer changes: - -(A1) Use full qflx_surf in BGC code. Previously, the subroutines ch4 and - SoilBiogeochemNLeaching had been using a flux that excluded surface - water runoff (qflx_h2osfc_surf). That was deemed to be incorrect - (by Dave Lawrence and others), so these BGC subroutines have been - changed to use the full surface runoff (saturated excess runoff + - infiltration excess runoff + h2osfc runoff). - - Configurations affected: BGC compsets - - Magnitude of change: Larger than roundoff; expected to be same - climate, but not investigated carefully - -(A2) VIC: Don't ever use the TOPModel formulation for SurfaceRunoff +Fang Li's latest Fire version - includes allowing clm5.1 phys version. New physics option is added +called "clm5_1", with currently the new feature to use the latest fire changes. This has some +adjustments to the fire model and includes some changes to the parameter file. Other new features +will be added into clm5_1 in future tags. - The code was using the TOPModel-based formulation for SurfaceRunoff - if frost_table > zwt_perched. Sean Swenson felt this shouldn't be - done, and refactoring will be easier if VIC always uses the - vic-looking formulation, so I'm stopping applying this formulation - when using VIC. +Also bring in mksurfdata changes for the raw urban dataset change. This adds some changes to +mksurfdata for a new urban raw dataset, as well as preparation for new changes for some other +urban changes that will be a future part of clm5_1. Also use the half degree lightning dataset +by default for clm5_1. - Configurations affected: VIC compsets +Start adding a new test list ctsm_sci that tests all the scientifically supported compsets. +Some of those tests fail due to existing issues, that will be fixed later. - Magnitude of change: Larger than roundoff; not investigated carefully +Some more work done to change clm to ctsm, and allow for ctsm as a component. -(A3) VIC: Remove infiltration excess runoff - - Martyn Clark reviewed the VIC implementation, and felt that the - current implementation of infiltration excess runoff is - inconsistent with the standard VIC implementation. It appears that - what was being called VIC's infiltration excess runoff was actually - just an attempt to give a better numerical approximation to the - solution for saturated surface excess runoff. So deleting this - leaves only a first-order approximation to VIC's saturated surface - excess runoff. - - Eventually we may want to put in place a more accurate solution for - VIC's saturated surface excess runoff. But Martyn's feeling is that - this can come in with other changes we want to make regarding - numerical solutions in CTSM. - - Configurations affected: VIC compsets - - Magnitude of change: Larger than roundoff; expected to be same - climate, but not investigated carefully - -(A4) Change in QOVER diagnostic field: now includes QH2OSFC. +Bugs fixed or introduced +------------------------ -These are the major refactorings (either bit-for-bit or just -roundoff-level differences): +Issues fixed (include CTSM Issue #): + Fix #1142 -- Add ctsm_sci test list + Fix #1145 -- File was corrupted on glade + Fix #1144 -- Move btran2 to just inside of fire model + Fix #889 --- Some adjustments to the Li Fire model -(R1) Extract surface runoff to its own module, and other modularization - related to what used to be subroutine SurfaceRunoff: extract a - subroutine for each fsat method, move urban surface runoff code - into different routines. +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- -(R2) Extract infiltration excess runoff to its own module, and other - modularization related to what used to be subroutine Infiltration. +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.) -NOTE: For a detailed breakdown of changes, including documentation of -which changed changed answers, see the file ChangeLog_branch which was -deleted from this branch shortly before it was merged to master. + [Put an [X] in the box for any configuration with significant answer changes.] -Bugs fixed or introduced ------------------------- +[ ] clm5_0 -Issues fixed (include CTSM Issue #): -- Fixes #424 (decStart testmod is missing an `--append` in an xmlchange command) +[ ] ctsm5_0-nwp +[ ] clm4_5 Notes of particular relevance for users --------------------------------------- -Caveats for users (e.g., need to interpolate initial conditions): +Caveats for users (e.g., need to interpolate initial conditions): None -Changes to CLM's user interface (e.g., new/renamed XML or namelist variables): +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): Adds clm5_1 option to CLM_PHYSICS_VERSION + clm5_1_GSWP3v1 is the only LND_TUNING_MDOE option for clm5_1 + New compsets added for CLM51 I2000Clm51BgcCropGs, I2000Clm51BgcGs, I1850Clm51BgcGs, IHistClm51BgcGs, IHistClm51BgcCropGs -Changes made to namelist defaults (e.g., changed parameter values): -Changes to the datasets (e.g., parameter, surface or initial files): +Changes made to namelist defaults (e.g., changed parameter values): clm5_1 physics options added in + Add the ability to set the component name in filenames (default is still clm2, but can be clm4, olr clm5) + By default lightning dataset for clm5_1 is the half degree file -Substantial timing or memory changes: +Changes to the datasets (e.g., parameter, surface or initial files): All params files updated with new fields for fire + +Substantial timing or memory changes: None Notes of particular relevance for developers: (including Code reviews and testing) --------------------------------------------- -NOTE: Be sure to review the steps in .CLMTrunkChecklist as well as the coding style in the Developers Guide +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide Caveats for developers (e.g., code that is duplicated that requires double maintenance): -Changes to tests or testing: -- Shortened a 25-month f19 test to 13-months - (SMS_Lm13.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-cropMonthOutput): - This test took a long time to run, and we already have long tests of - this configuration at coarse-resolution. I suggested removing this - test entirely, but Erik Kluzek wanted to maintain a shortened version - of it. Erik's comments were: - - How about either flip it to f45 (because Rosie is using that - resolution for science) -- or leave it at f19 and have it run for 9 - months? The 25 months was to take it just past the 2-year spinup - time. From spunup initial conditions 9-months pretty much does a - full harvest cycle. f19 and f09 are the main configurations for - science and it would be good to have something longer than just - really short tests. - - I decided on Lm13, because this still completes in significantly less - than 2-hours, and if we're running for 9 months anyway, it seems - valuable to finish out the year and run a bit into the next year, - since some crop stuff triggers at the end of the year. - -Code reviewed by: Various code reviews done last Fall, when these -changes were first implemented. - -CLM testing: +Changes to tests or testing: Add ctsm_sci test list and move some clm5_0 to clm5_1 and one one clm5_1 specific test + +Code reviewed by: self + + +CTSM testing: regular, tools [PASS means all tests PASS and OK means tests PASS other than expected fails.] build-namelist tests: - cheyenne - not run + cheyenne - PASS (853 tests are different) - unit-tests (components/clm/src): + tools-tests (test/tools): cheyenne - PASS - tools-tests (components/clm/test/tools): - - cheyenne - not run - - PTCLM testing (components/clm/tools/shared/PTCLM/test): + python testing (see instructions in python/README.md; document testing done): - cheyenne - not run + cheyenne -- PASS regular tests (aux_clm): - cheyenne_intel ---- OK - cheyenne_gnu ------ OK - hobart_nag -------- OK - hobart_pgi -------- OK - hobart_intel ------ OK - - OK means tests pass, answers change as expected. + cheyenne ---- OK + izumi ------- PASS -CLM tag used for the baseline comparisons: clm5.0.dev013 +If the tag used for baseline comparisons was NOT the previous tag, note that here: Answer changes -------------- -Changes answers relative to baseline: YES - - If a tag changes answers relative to baseline comparison the - following should be filled in (otherwise remove this section): - - Summarize any changes to answers, i.e., - - what code configurations: Essentially all (except CLM4) - - what platforms/compilers: All - - nature of change (roundoff; larger than roundoff/same climate; new climate): - - Roundoff-level changes for nearly all configurations (except CLM4). - - Greater-than-roundoff-level changes for the following - configurations: - - BGC: see (A1) note above (expected to be same climate, but not - investigated carefully) - - VIC: see (A2) and (A3) notes above (magnitude of change not - investigated carefully) - - QOVER diagnostic field: see (A4) note above - - If bitwise differences were observed, how did you show they were no worse - than roundoff? N/A - - If this tag changes climate describe the run(s) done to evaluate the new - climate (put details of the simulations in the experiment database) - - casename: N/A - - URL for LMWG diagnostics output used to validate new climate: N/A - +Changes answers relative to baseline: No (although clm5_1 is a new physics option that is different) Detailed list of changes ------------------------ -List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None Pull Requests that document the changes (include PR ids): -- https://github.com/ESCOMP/ctsm/pull/244 -- https://github.com/ESCOMP/ctsm/pull/190 -- Other PRs that existed on the old NCAR/clm-ctsm repository (which has - been deleted), which were not migrated to the new repository +(https://github.com/ESCOMP/ctsm/pull) + #1151 -- Move btran2 to inside CNFireBase + #1150 -- ctsm5.1 starting point + #1157 -- Urban mksurfdata_map changes + #1149 -- LILACSMOKE test change + #1146 -- Add --project to LILACS create_newcase =============================================================== +=============================================================== diff --git a/doc/ChangeSum b/doc/ChangeSum index b65d73cf15..e11f439658 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,5 +1,204 @@ Tag Who Date Summary ============================================================================================================================ + ctsm5.1.dev142 samrabin 09/19/2023 Merge 5 bit-for-bit pull requests + ctsm5.1.dev141 slevis 09/13/2023 Change small snocan to zero + ctsm5.1.dev140 afoster 09/12/2023 add lai_streams capability for FATES + ctsm5.1.dev139 slevis 08/28/2023 Fix problems uncovered by nag -nan tests + ctsm5.1.dev138 slevis 08/25/2023 Refactor max_patch_per_col and maxsoil_patches loops + ctsm5.1.dev137 slevis 08/23/2023 Surface roughness modifications + ctsm5.1.dev136 multiple 08/22/2023 Change order of history fields to improve performance on derecho + ctsm5.1.dev135 slevis 08/21/2023 Rename hist fields to track them down more easily + ctsm5.1.dev134 rgknox 08/16/2023 Migration of FATES to share normal soil BGC call sequence and functionality + ctsm5.1.dev133 glemieux 08/09/2023 FATES API update to facilitate fates refactor + ctsm5.1.dev132 slevis 08/04/2023 Add parameterization to allow excess ice in soil and subsidence + ctsm5.1.dev131 samrabin 07/27/2023 Enable prescribed crop calendars + ctsm5.1.dev130 glemieux 07/09/2023 FATES parameter file and test definition update + ctsm5.1.dev129 erik 06/22/2023 NEON fixes for TOOL and user-mods, add SP for NEON, some history file updates, black refactor for buildlib/buildnml + ctsm5.1.dev128 glemieux 06/01/2023 Update FATES tests to double precision + ctsm5.1.dev127 sacks 05/19/2023 Fix nuopc cplhist test + ctsm5.1.dev126 jpalex 05/18/2023 Clean up some loops in UrbanTimeVarType + ctsm5.1.dev125 jpalex 05/17/2023 Added cache for clock step_size in clm_time_manager.F90 + ctsm5.1.dev124 erik 05/09/2023 Initialization memory update, new surface datasets for new grids, add option for running NEON with PRISM data + ctsm5.1.dev123 sacks 05/01/2023 Updates needed for pFUnit 4 and other externals updates + ctsm5.1.dev122 sacks 04/23/2023 Rework handling of evaporation constraint in SoilFluxes + ctsm5.1.dev121 glemieux 04/05/2023 Changes soil moisture initialization logic for FATES + ctsm5.1.dev120 sacks 03/25/2023 Update externals and minor fixes + ctsm5.1.dev119 slevis 03/16/2023 Allow gross unrepresented land use transition (PR #309) + ctsm5.1.dev118 slevis 02/05/2023 Use conda environment rather than ncar_pylib with the fsurdat_modifier system test + ctsm5.1.dev117 afoster 02/02/2023 Updates to facilitate running FATES at NEON sites + ctsm5.1.dev116 erik 01/26/2023 Small answer changes with bug fixes, zetamaxstable=2 for BHS, new single point fsurdat files + ctsm5.1.dev115 rgknox 12/02/2022 API compatability with FATES V2 nutrient dynamics + ctsm5.1.dev114 multiple 11/19/2022 Some NEON updates fixing AG sites, update MOSART, small fixes + ctsm5.1.dev113 multiple 10/28/2022 Fix some compsets; add only clauses for ESMF use statements + ctsm5.1.dev112 multiple 10/15/2022 Rework fates test definitions and add new fates tests + ctsm5.1.dev111 multiple 10/05/2022 Fixes for NEON cases + ctsm5.1.dev110 slevis 09/26/2022 Introduction of modify_meshes tool for use in I-cases and F-cases + ctsm5.1.dev109 slevis 09/26/2022 If not MIMICS, do not output certain MIMICS history fields + ctsm5.1.dev108 afoster 09/08/2022 Connect ozone from atmosphere + ctsm5.1.dev107 afoster 09/07/2022 Update Externals + ctsm5.1.dev106 multiple 08/04/2022 Reuse some files generated in initialization when rerunning + ctsm5.1.dev105 slevis 07/26/2022 make interfaces more similar between fsurdat_modifier and subset_data tools + ctsm5.1.dev104 glemieux 07/15/2022 Update to FATES history names and machine configuration + ctsm5.1.dev103 sacks 07/12/2022 Fix accumulation variables when changing model time step + ctsm5.1.dev102 sacks 07/11/2022 Fix LILAC interface to PIO + ctsm5.1.dev101 samrabin 07/11/2022 Fix winter wheat sowing window bugs + ctsm5.1.dev100 erik 07/05/2022 Start bringing in matrixcn overall options and sparse matrix multiplier code, misc updates + ctsm5.1.dev099 rgknox 06/21/2022 Enabling FATES control over the number of patches on the natural land unit + ctsm5.1.dev098 swensosc 05/20/2022 Correct perched water table calculation + ctsm5.1.dev097 sacks 05/20/2022 Update ccs_config to fix issue on izumi and maybe elsewhere + ctsm5.1.dev096 erik 05/18/2022 Fix a few glitches from the last tag + ctsm5.1.dev095 erik 05/09/2022 Turn soil BGC off for FATES-SP mode, externals updates, FatesSP user-mod directory and compset + ctsm5.1.dev094 negins 05/06/2022 subset_data allows zeroing out nonveg landunits without any dompft selected + ctsm5.1.dev093 slevis 05/03/2022 Modifications for FATES-MIMICS to work + ctsm5.1.dev092 sacks 04/29/2022 Refactor NutrientCompetition / CNAllocation to provide hooks for AgSys + ctsm5.1.dev091 rgknox 04/22/2022 clm decomp method is now passed to fates to enabled mimics coupling + ctsm5.1.dev090 samrabin 03/31/2022 Fix misleading name of "gddplant" + ctsm5.1.dev089 sacks 03/31/2022 For CLM45 apply peaklai to aleaf in grainfill + ctsm5.1.dev088 samrabin 03/28/2022 Add outputs for annual crop sowing and harvest dates + ctsm5.1.dev087 sacks 03/24/2022 Reduce aux_clm testing cost + ctsm5.1.dev086 negins 03/22/2022 Updates necessary for NEON v2 files and server updates + ctsm5.1.dev085 sacks 03/16/2022 Expand crop reproductive pools; remove some unused options + ctsm5.1.dev084 glemieux 03/15/2022 FATES parameter file updated to align with clm pft optical parameters + ctsm5.1.dev083 multiple 03/08/2022 Implement PCT_URBAN_MAX to minimize dynamic urban memory + ctsm5.1.dev082 slevis 02/28/2022 Replace dom_nat_pft with dom_plant to enable crop in fsurdat_modifier tool + ctsm5.1.dev081 swensosc 02/24/2022 Do not subtract irrigation from QRUNOFF diagnostic + ctsm5.1.dev080 sacks 02/24/2022 Use avg days per year when converting param units + ctsm5.1.dev079 sacks 02/24/2022 Changes to CropPhenology timing + ctsm5.1.dev078 sacks 02/24/2022 Rework single-point testing + ctsm5.1.dev077 rgknox 02/22/2022 Updates to FATES API, including removal of patch dimensions from fates history and using soil instead of ground layers for fates history + ctsm5.1.dev076 negins 02/18/2022 updating subset_data.py script and move to the Python package. + ctsm5.1.dev075 erik 02/16/2022 Small answer changes: urban ventilation, fire-emission, irrigate off when not crop, fix two SSP ndep files + ctsm5.1.dev074 slevis 02/02/2022 Introduce vert. resolved MIMICS as new method to solve below ground decomp. + ctsm5.1.dev073 sacks 01/25/2022 Some fixes for Gregorian calendar + ctsm5.1.dev072 negins 01/17/2022 mksurfdat toolchain part 1: gen_mksurf_namelist + ctsm5.1.dev071 glemieux 01/16/2022 Small changes to enable new fates dimension and update fates tag + ctsm5.1.dev070 multiple 01/10/2022 Update externals, remove need for LND_DOMAIN_FILE and LND_DOMAIN_PATH, etc. + ctsm5.1.dev069 multiple 12/15/2021 Implement dynamic (transient) urban capability + ctsm5.1.dev068 multiple 12/13/2021 Adding fsurdat_modifier tool + ctsm5.1.dev067 jedwards 12/13/2021 NEON UI update, externals updates, small miscellanouse fixes + ctsm5.1.dev066 rgknox 12/04/2021 API change with FATES to enable running means inside fates, includes passing in of model timestep + ctsm5.1.dev065 glemieux 12/02/2021 Refactor static fire data input by moving variables into fire_base_type from cnveg_state_type + ctsm5.1.dev064 afoster 11/29/2021 Updates to facilitate FATES history variable overhaul + ctsm5.1.dev063 glemieux 11/23/2021 Provide access to the fraction of canopy covered by snow variable to fates + 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 + ctsm5.1.dev058 erik 10/07/2021 Some miscellaneous small answer changes + ctsm5.1.dev057 samrabin 09/20/2021 Consolidate duplicated crop phenology code + ctsm5.1.dev056 glemieux 09/17/2021 FATES Satellite Phenology mode implemented + ctsm5.1.dev055 slevis 09/10/2021 Updates to master_list_file.rst + ctsm5.1.dev054 erik 09/02/2021 New parameters on paramsfile, many bit-for-bit changes, new history fields for IWUELN,VPD_2M, allow Medlyn Photosynthesis for non-PHS cases, fixes to HumanStressIndex + ctsm5.1.dev053 sacks 08/13/2021 Add Antarctica compset and change min_snow_to_keep + ctsm5.1.dev052 negins 08/11/2021 Wrapper script for running NEON sites, and some NEON updates + ctsm5.1.dev051 multiple 08/06/2021 New LUNA-specific ozone stress option + ctsm5.1.dev050 sacks 08/02/2021 Improve and document method for getting diagnostics on a problem point + ctsm5.1.dev049 jedwards 07/26/2021 Update externals, NEON updates, fix stop_option=date, move neon niwo test to match user_mods, local time option + ctsm5.1.dev048 slevis 07/10/2021 Make certain history fields descriptive inst. of labeling by number + ctsm5.1.dev047 mvertens 07/08/2021 Start bounds at 1; remove references to MCT + ctsm5.1.dev046 rgknox 07/02/2021 Updating external fates has to tag sci.1.46.2_api.16.1.0 + ctsm5.1.dev045 slevis 06/29/2021 Include CWD in heterotrophic respiration + ctsm5.1.dev044 mvertens 06/24/2021 New stream functionality when using NUOPC or LILAC + ctsm5.1.dev043 slevis 06/03/2021 Refactor of CascadeBGC code in preparation for MIMICS + ctsm5.1.dev042 erik 05/28/2021 Small answer changes for double precision constants and soil limits + ctsm5.1.dev041 rgknox 05/27/2021 bring FATES API up to sci.1.46.0_api.16.0.0 (methane and cn hooks) + ctsm5.1.dev040 slevis 05/20/2021 mksurfdata_map: replace SRC files of various masks with SRC files w no mask + ctsm5.1.dev039 jedwards 05/18/2021 Add NEON sites + ctsm5.1.dev038 erik 04/27/2021 Bring in minor changes from the cesm2.2.0 release tag +release-cesm2.2.01 erik 09/02/2020 Fix clm4_5 initial conditions + ctsm5.1.dev037 slevis 04/23/2021 Correct vertical interpolation in init_interp when soil thicknesses change + ctsm5.1.dev036 glemieux 04/21/2021 FATES tag update and snow occlusion of LAI fix + ctsm5.1.dev035 sacks 04/20/2021 Misc bfb enhancements and fixes + ctsm5.1.dev034 erik 04/19/2021 Bring in Arctic changes to LUNA from Leah Birch + ctsm5.1.dev033 mvertens 04/10/2021 Remove unnecessary settings of nextsw_cday + ctsm5.1.dev032 mvertens 04/10/2021 Fix bugs in co2 from atmosphere + ctsm5.1.dev031 jedwards 04/10/2021 Update externals and fixes for nuopc threading + ctsm5.1.dev030 erik 03/31/2021 New single column functionality for the NUOPC cap + ctsm5.1.dev029 mvertens 03/18/2021 Rework domain initialization for nuopc + ctsm5.1.dev028 swensosc 03/17/2021 Change limitation of top layer evaporation/sublimation + ctsm5.1.dev027 sacks 03/15/2021 Update cime and other externals; includes switch to pio2 + ctsm5.1.dev026 sacks 03/08/2021 Change f10 tests to use mg37 mask + ctsm5.1.dev025 sacks 02/23/2021 Refactor ozone code, and misc. small fixes + ctsm5.1.dev024 slevis 02/20/2021 Grid cell-level error check for H2O + ctsm5.1.dev023 erik 02/11/2021 Calculate leaf biomass for non-woody PFTS, and a few other small answer changes + ctsm5.1.dev022 glemieux 02/05/2021 Merge fates_main_api into ctsm master + ctsm5.1.dev021 erik 01/12/2021 Add option for biomass heat storage (BHS) to clm5_1 physics + ctsm5.1.dev020 erik 12/30/2020 Potential roundoff changes in preparation for bio-mass heat storage option + ctsm5.1.dev019 sacks 12/19/2020 Fix ndep from coupler + ctsm5.1.dev018 slevis 12/08/2020 Add ACTIVE (T/F) column to master hist fields table and alphabetize + ctsm5.1.dev017 slevis 11/17/2020 Write history fields master list to separate optional file + ctsm5.1.dev016 multiple 11/17/2020 Updates for nuopc + ctsm5.1.dev015 sacks 11/13/2020 A few small fixes + ctsm5.1.dev014 dll/oles 11/07/2020 Grass/crop snow burial fraction fix, and some other fixes + ctsm5.1.dev013 jedwards 11/04/2020 Allow pnetcdf for vector history files + ctsm5.1.dev012 oleson/s 11/03/2020 Allow nlevgrnd < nlevurb + ctsm5.1.dev011 sacks 11/02/2020 Change CISM2%NOEVOLVE compsets to use SGLC; documentation updates + ctsm5.1.dev010 sacks/je 10/23/2020 Fix reading netcdf variable into a different data type + ctsm5.1.dev009 negins 10/21/2020 BFB changes for Perturbed Parameter Ensemble and Hydraulic redistribution + ctsm5.1.dev008 erik 10/07/2020 Two answer changes: Clm45/50/51 with crop, and for 2000Clm51 + ctsm5.1.dev007 sacks 10/06/2020 CNFire: btran2 fixes and general cleanup + ctsm5.1.dev006 sacks 10/03/2020 Call correct routine to calculate btran2 for CNFireLi2021 + ctsm5.1.dev005 sacks 10/02/2020 Answer changing bug fixes for clm51: fire and organic_frac_squared + ctsm5.1.dev004 oleson 09/30/2020 Improve robustness of onset and offset counters when changing dt + ctsm5.1.dev003 ivanderk 09/29/2020 Add capability for dynamic lakes + ctsm5.1.dev002 slevis 09/25/2020 Reduce duplication between caps + ctsm5.1.dev001 erik 09/23/2020 Start the clm5_1 physics series, with some changes to the fire model from Fang Li + ctsm1.0.dev113 negins 09/08/2020 Some bit-for-bit changes needed for the Perturbed Parameter Ensemble work + ctsm1.0.dev112 sacks/ww 08/28/2020 Small changes to mksurfdata_map, singlept tool and run_sys_tests + ctsm1.0.dev111 erik 08/28/2020 Compsets don't use 2014 for GSWP3 forcing, LUNA prevyr changed back + ctsm1.0.dev110 jedwards 08/21/2020 Fixes needed for PIO2 + ctsm1.0.dev109 negins 08/20/2020 Allow for resorbtion in transition from live to dead wood N + ctsm1.0.dev108 erik 08/19/2020 Update default PE layouts for new SE/FV3 grids + ctsm1.0.dev107 erik 08/10/2020 Answer changes needed for CESM2.2.0 + ctsm1.0.dev106 erik 08/06/2020 Bit-for-bit updates for the CESM2.2.0 release +release-clm5.0.34 erik 04/20/2020 Update doc for release-clm5.0 (SKIPPED), and fix issues with no-anthro surface dataset creation +release-clm5.0.33 erik 04/07/2020 SKIPPED ON MASTER -- Turn irrigation on for 2300 SSP extensions +release-clm5.0.32 erik 04/02/2020 SKIPPED ON MASTER -- Extensions to 2300 for SSP5-8.5,SSP5-3.4, and SSP1-2.6 +release-clm5.0.31 erik 03/29/2020 Bring raw 2100-2300 extension (SKIPPED), some other misc. changes + ctsm1.0.dev105 erik/fis 07/23/2020 Bring in some new SE grids for CAM as well as initial condition files for them + ctsm1.0.dev104 sacks 07/06/2020 Add LILAC + ctsm1.0.dev103 slevis 06/29/2020 Gridcell-level error-check for methane (CH4) + ctsm1.0.dev102 erik/ole 06/26/2020 Some important fixes for LUNA in clm5_0, and small urban issue in clm5_0 + ctsm1.0.dev101 ole/erik 06/17/2020 Changes from Keith to bring a list of variables to the parameter file + ctsm1.0.dev100 sacks 06/09/2020 Deallocate memory after running init_interp + ctsm1.0.dev099 sacks 06/08/2020 Update cime, needed for izumi machine updates + ctsm1.0.dev098 jet/erik 05/28/2020 Bring in GFDL fv3 cubed sphere grids C24, C48, C96, C192, C384 + ctsm1.0.dev097 ycheng 05/25/2020 Add two bioenergy crops (switchgrass and miscanthus) + ctsm1.0.dev096 slevis 05/21/2020 Gridcell-level balance checks for carbon and nitrogen + ctsm1.0.dev095 sacks 05/21/2020 Update cime and cmeps externals; rework initialization of CNFire object + ctsm1.0.dev094 sacks 05/15/2020 Minor bug fixes needed for latest cime + ctsm1.0.dev093 erik 05/01/2020 Bring in changes from release-clm5.0 branch to master +release-clm5.0.30 erik 01/21/2020 Update FATES to sci.1.30.0_api.8.0.0 +release-clm5.0.29 erik 11/19/2019 Some answer changes needed for prescribed soil-moisture and clm4_5 defaults (1850-ndep, and urbantv settings) +release-clm5.0.28 erik 11/14/2019 Several bit-for-bit fixes especially around soil-moisture streams +release-clm5.0.27 erik 08/13/2019 Add presoribed soil moisture streams as an option, and a few fixes +release-clm5.0.26 sacks 07/29/2019 Add a CN precision control call to fix problems related to small negative values +release-clm5.0.25 erik 05/29/2019 Change two files from NetCDF-4 format to NetCDF-3 (because some machines have trouble with NetCDF-4 in pnetcdf) +release-clm5.0.24 erik 05/22/2019 Correct ndep end year for SSPs, 2-degree CMIP6WACCMDECK with C-isotopes off, fixes mksurfdata for high resolution +release-clm5.0.23 erik 05/15/2019 Update cime to bring in CO2 transient files for the CMIP6 SSP's as well as presaero for three of them +release-clm5.0.22 erik 05/08/2019 Fix carbon isotope bug that caused wrong answers for isotopes under transient land-use change +release-clm5.0.21 erik 05/03/2019 New ndep files, update fates, fix some issues +release-clm5.0.20 erik 03/12/2019 Update all fsurdat files and bring in files for future scenarios, remove CMIP5 rcp options, bring in some bug fixes +release-clm5.0.19 erik 03/08/2019 SKIPPED ON MASTER -- Update cime version +release-clm5.0.18 erik 02/13/2019 Add NoAnthro compset, reduce fields on fsurdat in mksurfdata_map, initial add of tools/contrib directory +release-clm5.0.17 sacks 01/23/2019 History fields for vertically-resolved sums of soil C and N, and minor fixes +release-clm5.0.16 erik 01/15/2019 PtVg and ssp_rcp future scenario options and Antarctica wetlands fix to mksurfdata, and option to dribble crop harvest XSMRPOOL flux to atmosphere +release-clm5.0.15 sacks 12/06/2018 SKIPPED ON MASTER -- Option for rain-to-snow +release-clm5.0.14 erik 11/29/2018 Update cime and fix surface dataset for f05 1850 non-crop case +release-clm5.0.13 erik 11/14/2018 Update externals with new CO2/presearo/rtm/mosart, add science_support, change testing +release-clm5.0.12 erik 11/03/2018 New IC files for clm45/clm50 coupled cases, add 2010 compset (IC FILES UPDATE SKIPPED ON MASTER) + ctsm1.0.dev092 erik 04/27/2020 Update cime to version in cesm2_2_beta04 + ctsm1.0.dev091 sacks 04/24/2020 Increase tolerance on near-zero truncation for a snow state update + ctsm1.0.dev090 negins 04/23/2020 Refactoring banded diagonal matrix code in SoilTemperature module + ctsm1.0.dev089 sacks 04/07/2020 Bring documentation source to master + ctsm1.0.dev088 sacks 04/07/2020 Fix bug in snow aerosol numerics (causes occasional HUGE aerosol values) + ctsm1.0.dev087 sacks 04/06/2020 Change hard-coded soil layers in phenology to use a target depth + ctsm1.0.dev086 mvertens 03/19/2020 Updates to NUOPC cap and minor fixes to ncdio_pio + ctsm1.0.dev085 sacks 03/16/2020 Update cime + ctsm1.0.dev084 negins 02/19/2020 Bounds assertion for C isotopes when threading is on + ctsm1.0.dev083 negins 02/06/2020 Some BFB Fixes: Resolve issues #683, # 874, #878, # 885, # 745, #838 + ctsm1.0.dev082 oleson 02/01/2020 Rename variables to avoid confusion; fix QSNOEVAP diagnostic + ctsm1.0.dev081 slevis 01/13/2020 Speed up restart writes ctsm1.0.dev080 sacks 12/02/2019 Update externals, minor fixes to work with latest cime, get nuopc cap working ctsm1.0.dev079 sacks 11/04/2019 Change a few uses of shr_kind ctsm1.0.dev078 oleson 10/31/2019 Fix rootr calculation with use_hydrstress true @@ -37,7 +236,7 @@ Tag Who Date Summary ctsm1.0.dev046 sacks 06/15/2019 Separate the two uses of h2osno ctsm1.0.dev045 sacks 06/06/2019 Recalculate h2osno for the sake of SnowCapping ctsm1.0.dev044 sacks 06/06/2019 Make wetland snow resetting behavior more explicit - ctsm1.0.dev043 erik 06/05/2019 Fix FUN bug (frac_ideal_C_use was backwards in regard to delta_CN), + ctsm1.0.dev043 erik 06/05/2019 Fix FUN bug (frac_ideal_C_use was backwards in regard to delta_CN), and replace Ball-Berry mbbopt with the CLM4.5 version ctsm1.0.dev042 slevis 05/21/2019 Rename, correct, and simplify parameters dewmx and sno_stor_max ctsm1.0.dev041 sacks 05/17/2019 Add water tracers to CanopyHydrologyMod @@ -73,21 +272,21 @@ Tag Who Date Summary ctsm1.0.dev011 sacks 09/12/2018 Add water tracer consistency checks, and other water tracer work ctsm1.0.dev010 sacks 08/30/2018 Update cime to cime5.7.3 ctsm1.0.dev009 sacks 08/22/2018 Fix initialization of AnnET in InitAccVars - ctsm1.0.dev008 erik 08/14/2018 Update 1850 ndep file and last year for streams for Historical transient cases + ctsm1.0.dev008 erik 08/14/2018 Update 1850 ndep file and last year for streams for Historical transient cases (corresponds to release-clm5.0.05) ctsm1.0.dev007 sacks 08/05/2018 Avoid glacier dynamic landunit adjustments in first time step ctsm1.0.dev006 sacks 08/04/2018 Minor bug fixes, cleanup, documentation and enhancements - ctsm1.0.dev005 sacks 08/03/2018 Rework water data types to accommodate isotopes and other tracers - ctsm1.0.dev004 erik 07/18/2018 Add some new diagnostic fields, fix a few issues, update cmip6 output + ctsm1.0.dev005 sacks 08/03/2018 Rework water data types to accommodate isotopes and other tracers (skipped on release-clm5.0) + ctsm1.0.dev004 erik 07/18/2018 Add some new diagnostic fields, fix a few issues, update cmip6 output (corresponds to release-clm5.0.04) ctsm1.0.dev003 erik 07/15/2018 Update cime/cism to work on upgraded hobart and with glade changes on cheyenne ctsm1.0.dev002 erik 07/06/2018 Fix NFIX flux variables so special land-units are zeroed out, tools update, add some *_MAX fields on mksurfdata_map for transient cases - ctsm1.0.dev001 sacks 06/22/2018 Begin separating SoilHydrology flux calculations - clm5.0.dev013 erik 06/12/2018 cleanup and update cime and cism - clm5.0.dev012 sacks 05/17/2018 Fixes for variable_year orbital mode + ctsm1.0.dev001 sacks 06/22/2018 Begin separating SoilHydrology flux calculations (this was skipped on release branch) + clm5.0.dev013 erik 06/12/2018 cleanup and update cime and cism (corresponds to release-clm5.0.03) + clm5.0.dev012 sacks 05/17/2018 Fixes for variable_year orbital mode (corresponds to release-clm5.0.01 and release-clm5.0.02) clm5.0.dev011 erik 05/16/2018 1850 ndep update, cism update, PE layouts, turn BFBFLAG for testing clm5.0.dev010 erik 05/15/2018 Update cime version to version in cesm2.0.beta10, changes answers for 1850 compsets because of orbit clm5.0.dev009 sacks 05/10/2018 New init_interp method clm5.0.dev008 erik 04/27/2018 With FUN subtract out soil nitrification flux of plant uptake of soil NH3 and NO3 - clm5.0.dev007 erik 04/24/2018 Bring in a few answer changing things: FATES, cism updates, IC file fix, + clm5.0.dev007 erik 04/24/2018 Bring in a few answer changing things: FATES, cism updates, IC file fix, testing 1850 compset use 1850 orbit clm5.0.dev006 sacks 04/12/2018 Don't allocate memory for zero-weight natveg patches and urban clm5.0.dev005 sacks 04/10/2018 Two fixes for init_interp @@ -122,14 +321,14 @@ Tag Who Date Summary clm4_5_16_r253 erik 08/04/2017 Check on reasonable import/export from CLM, check ndep units from input file clm4_5_16_r252 erik 07/24/2017 Update parameter file for some crop albedo issues, and fix a bug in urban albedo for nightime clm4_5_16_r251 erik 07/14/2017 Update mksurfdata_map for soil depth/color, add new mapping files - clm4_5_16_r250 erik 07/13/2017 Update finundation dataset, new fsurdat files with updated soil color and soil depth, + clm4_5_16_r250 erik 07/13/2017 Update finundation dataset, new fsurdat files with updated soil color and soil depth, update mosart areas, fix cheyenne_gnu clm4_5_16_r249 sacks 07/06/2017 All new compsets, reworked test lists, and related fixes clm4_5_16_r248 sacks 06/28/2017 Melt most ice runoff clm4_5_16_r247 sacks 06/26/2017 New GLACIER_REGION field with CISM domain split in two clm4_5_16_r246 sacks 06/14/2017 Update to latest cime clm4_5_16_r245 sacks 06/14/2017 Only adjust glc_mec topographic heights if glc_do_dynglacier is true - clm4_5_16_r244 erik 06/09/2017 Update cime and cism externals, changes answers for IG compsets, test g17 grids, fix a few + clm4_5_16_r244 erik 06/09/2017 Update cime and cism externals, changes answers for IG compsets, test g17 grids, fix a few issues, update mksurfdata_map clm4_5_16_r243 andre 05/23/2017 History output cleanup from Dave Lawrence clm4_5_16_r242 erik 05/21/2017 Use finundated streams for CLM50, and use ndep if it comes from cpl @@ -138,7 +337,7 @@ Tag Who Date Summary clm4_5_16_r239 sacks 05/13/2017 Avoid division by zero in snow WindDriftCompaction clm4_5_16_r238 andre 05/13/2017 ED is now an external library 'fates' clm4_5_16_r237 erik 05/09/2017 Latest parameter file and some changes for CLM50, CLM45-transient changes answers also - clm4_5_15_r236 erik 05/01/2017 New surface datasets, and landuse.timeseries files, as well as interpolating initial conditions for + clm4_5_15_r236 erik 05/01/2017 New surface datasets, and landuse.timeseries files, as well as interpolating initial conditions for almost all cases clm4_5_15_r235 sacks 04/27/2017 Zero dynbal fluxes if namelist variable is set clm4_5_15_r234 andre 04/14/2017 Update rtm and mosart externals @@ -160,7 +359,7 @@ Tag Who Date Summary clm4_5_14_r218 sacks 01/13/2017 For newly initiating columns: do not copy snow state clm4_5_14_r217 sacks 01/13/2017 Bug fix for snow radiation absorption clm4_5_14_r216 erik 01/12/2017 Fix previous broken tag - clm4_5_14_r215 erik 01/12/2017 Update mksurfdata_map to work with new updated datasets from Peter, and use hand-edited + clm4_5_14_r215 erik 01/12/2017 Update mksurfdata_map to work with new updated datasets from Peter, and use hand-edited surfdata/landuse.timeseries datasets for f09/f19 clm4_5_14_r214 sacks 01/03/2017 Update column states based on dwt terms between dyn_cnbal_patch and dyn_cnbal_col, and minor fixes clm4_5_14_r213 sacks 12/30/2016 Convert buildnml to python @@ -176,7 +375,7 @@ Tag Who Date Summary clm4_5_12_r203 sacks 11/10/2016 Bug fixes for snow-on-lake clm4_5_12_r202 sacks 11/09/2016 Update to cime version used in cesm2_0_beta03 clm4_5_12_r201 sacks 11/09/2016 Rework initialization of transient weights - important with use_init_interp - clm4_5_12_r200 erik 11/08/2016 Latest parameter updates from simulations, ignore surface soil layer for plant hydraulic stress + clm4_5_12_r200 erik 11/08/2016 Latest parameter updates from simulations, ignore surface soil layer for plant hydraulic stress for greater variability in surface soil moisture clm4_5_12_r199 sacks 10/29/2016 Use CISM2 by default clm4_5_12_r198 sacks 10/20/2016 Rework mapping of irrigation from CLM to ROF @@ -190,13 +389,13 @@ Tag Who Date Summary clm4_5_12_r190 sacks 08/20/2016 Fix snow capping bug clm4_5_11_r189 erik 08/18/2016 Bring in time varying streams for urban data (currently triggers AC use) clm4_5_11_r188 erik 08/05/2016 A set of small answer changing issues for both clm45 and clm50 - clm4_5_10_r187 erik 07/26/2016 CLM45/50 changes: seperate carbon and water root profile, turn off undercanopystability, + clm4_5_10_r187 erik 07/26/2016 CLM45/50 changes: seperate carbon and water root profile, turn off undercanopystability, really turn PHS on, LUNA predict sunlit fraction N fractionation clm4_5_9_r186 sacks 07/13/2016 Initialize biogeochem balance checks AFTER column area updates clm4_5_9_r185 sacks 07/07/2016 Revert glacial melt behavior to the old treatment for mountain glaciers - clm4_5_9_r184 erik 07/06/2016 CLM50 changes: Atkin form of lmr changed, new parameters and files, turn PHS on by default, + clm4_5_9_r184 erik 07/06/2016 CLM50 changes: Atkin form of lmr changed, new parameters and files, turn PHS on by default, new cold snow density, reseed at exit AD spinup, fix fire bug, fix npool and cpool errors - clm4_5_9_r183 erik 07/02/2016 Decomposition is not water limited after reaching a field capacity parameter (maxpsi_hr) + clm4_5_9_r183 erik 07/02/2016 Decomposition is not water limited after reaching a field capacity parameter (maxpsi_hr) rather than only at soil saturation clm4_5_8_r182 erik 06/24/2016 Bring in option for plant hydraulic stress for clm50 clm4_5_8_r181 erik 06/17/2016 Update cime version which fixes several issues and changes answers @@ -225,14 +424,14 @@ Tag Who Date Summary clm4_5_6_r158 andre 12/04/2015 misc clm 5.0 bugfixes clm4_5_6_r157 sacks 11/27/2015 Reduce memory use for init_interp clm4_5_6_r156 sacks 11/24/2015 Fix QSNWCPICE and glacial inception - clm4_5_6_r155 erik 11/23/2015 Bring FUN (Fixation and Uptake of Nitrogen) code option to trunk - from Mingjie, as well as latitude varying spinup from Charlie, + clm4_5_6_r155 erik 11/23/2015 Bring FUN (Fixation and Uptake of Nitrogen) code option to trunk + from Mingjie, as well as latitude varying spinup from Charlie, and a fix for crop with dynamic roots from Beth clm4_5_6_r154 andre 11/18/2015 one year grain product pool clm4_5_6_r153 sacks 11/17/2015 Fix snow cover fraction bug clm4_5_5_r152 sacks 11/17/2015 Fix glc_mec energy conservation bug clm4_5_4_r151 erik 11/13/2015 Fix broken r150 tag, with bgc_spinup issue in it - clm4_5_4_r150 erik 11/13/2015 Some needed answer changing fixes for: fire, disallow + clm4_5_4_r150 erik 11/13/2015 Some needed answer changing fixes for: fire, disallow negative photosynthis, and reduce LAI of DBT in evergreen state clm4_5_3_r149 sacks 11/08/2015 Change cold start initialization of snow pack clm4_5_3_r148 sacks 11/07/2015 For CLM5, increase max snow depth to 20 m @@ -291,8 +490,8 @@ Tag Who Date Summary clm4_5_1_r095 andre 11/10/2014 N comp refactoring by Jinyun Tang (LBL) and transpiration sink isolation by Gautam Bisht (LBL) clm4_5_1_r094 sacks 11/07/2014 misc. glacier-related updates clm4_5_1_r093 sacks 11/07/2014 change cold-start snow initialization, update cism external - clm4_5_1_r092 muszala 11/04/2014 bug fixes from santos that address valgrind problems. update rtm external - clm4_5_1_r091 muszala 10/27/2014 update externals. fix bug so CLM runs with Intel 14x. + clm4_5_1_r092 muszala 11/04/2014 bug fixes from santos that address valgrind problems. update rtm external + clm4_5_1_r091 muszala 10/27/2014 update externals. fix bug so CLM runs with Intel 14x. clm4_5_1_r090 sacks 10/16/2014 modularize irrigation; do some unit test rework clm4_5_1_r089 erik 10/13/2014 Bring new urban building temperature to trunk as a clm5.0 feature as well as human-stress index calculations clm4_5_1_r088 muszala 10/01/2014 pull out ED deps. in TemperatureTypeMod, can now compile with pgi 14.7 @@ -358,7 +557,7 @@ Tag Who Date Summary clm4_5_28 sacks 09/20/2013 fix FracH2oSfc bug clm4_5_27 sacks 09/20/2013 fix crop nyrs bug clm4_5_26 muszala 09/19/2013 water balance and SMS_Ly1.f19_g16.ICLM45BGCCROP fix - clm4_5_25 erik 09/13/2013 Bring in Tony's changes to kick sno all the way up to the coupler layer, makes all + clm4_5_25 erik 09/13/2013 Bring in Tony's changes to kick sno all the way up to the coupler layer, makes all CESM components more similar to each other clm4_5_24 sacks 09/03/2013 update externals to cesm1_3_beta02 or later clm4_5_23 muszala 08/22/2013 refactor to allow CH4 params. to be read from netcdf file and clean up clm4_5_20 @@ -386,7 +585,7 @@ Tag Who Date Summary clm4_5_01 muszala 05/06/2013 update externals clm4_5_00 erik 05/02/2013 Official end to CLM4.5 development for CLM offline clm4_0_81 bandre 04/29/2013 Charlie Koven's variable consolidation, cryoturbation and BSW CPP changes - clm4_0_80 erik 04/26/2013 Bring Fang Li. Fire model into CLM4.5 science, update ALL CLM4.5 surface datasets, + clm4_0_80 erik 04/26/2013 Bring Fang Li. Fire model into CLM4.5 science, update ALL CLM4.5 surface datasets, provide a working initial condition file for CLM45BGC@f19_g16-1850 clm4_0_79 muszala 04/24/2013 pftdyn, pft-phys*.nc and datm8 update clm4_0_78 muszala 04/23/2013 MEGAN fixes @@ -399,7 +598,7 @@ Tag Who Date Summary clm4_0_71 muszala 04/10/2013 compsets refactoring by mvertens clm4_0_70 muszala 04/01/2013 bring in vic hydrology clm4_0_69 muszala 03/26/2013 remove hydro reorder, volr and esmf mods - clm4_0_68 erik 03/16/2013 Fix some issues in mksurfdata_map for generation of ne120np surface data file. + clm4_0_68 erik 03/16/2013 Fix some issues in mksurfdata_map for generation of ne120np surface data file. Put error back in CLM if weights don't sum to 100. Add in Keith's photosynthesis change for CLM45. clm4_0_67 muszala 03/12/2013 Jinyun photosynthesis and hydrology reorder clm4_0_66 sacks 03/07/2013 turn off subgrid topography snow parameterization for glc_mec landunits @@ -464,21 +663,21 @@ Tag Who Date Summary clm4_0_07 erik 06/03/2010 Some cleanup/fix bugs, add RTM var, add albice to namelist, allow last-millenium in mksurfdata, allow setting of datm_presaero in clm test-suite clm4_0_06 erik 05/26/2010 Update gglc to cism clm4_0_05 erik 05/25/2010 Move Nitrogen deposition stream branch to trunk - clm4_0_04 erik 05/20/2010 New namelist items: ice_runoff, scaled_harvest, carbon_only, + clm4_0_04 erik 05/20/2010 New namelist items: ice_runoff, scaled_harvest, carbon_only, new RTM hist vars, new finidat files, update esmf interface, turn off aerosol read quicker clm4_0_03 erik 05/17/2010 Changes from Francis for VOC and drydep clm4_0_02 erik 05/13/2010 Make sure dtime is initialized, so that answers are consistently the same as clm4_0_00 clm4_0_01 erik 05/11/2010 Move glacier multiple elevation class branch to the trunk so that we can work with the active glacier model - clm4_0_00 erik 05/04/2010 Update to datm8, redirect aquifer overflow - to drainage, add gx3v7 masks, script to extract regional - datasets, add harvesting for CN, modify shrubs, include urban - model, ice stream for snowcapping, new build-namelist system, - scale solar by solar zenith angle in datm, deep soil with - bedrock at bottom, organic matter in soils, SNICAR for snow + clm4_0_00 erik 05/04/2010 Update to datm8, redirect aquifer overflow + to drainage, add gx3v7 masks, script to extract regional + datasets, add harvesting for CN, modify shrubs, include urban + model, ice stream for snowcapping, new build-namelist system, + scale solar by solar zenith angle in datm, deep soil with + bedrock at bottom, organic matter in soils, SNICAR for snow radiation, sparce dense aero, snow cover changes - clm3_8_00 erik 05/04/2010 Get future scenarios working, finalize - documentation, bring in MEGAN VOC and CNDV, simplify, - mksurfdata optimization, fix bugs: snow enthalpy, BMOZ, pergro, + clm3_8_00 erik 05/04/2010 Get future scenarios working, finalize + documentation, bring in MEGAN VOC and CNDV, simplify, + mksurfdata optimization, fix bugs: snow enthalpy, BMOZ, pergro, use pft weights from fsurdat NOT finidat clm3_7_15 erik 04/27/2010 Finish User's Guide, surfdata files for urban-1pt, fix mksurfdata ifort bugs, work with testing clm3_7_14 erik 04/08/2010 Fix rcp=2.6/4.5 1-degree fndepdyn filenames @@ -515,8 +714,8 @@ used clm3_6_49 erik 08/25/2009 Fix ncl interpolation scripts, update externals, turn on CLM_CCSM_BLD for bluefire,jaguar, ESMF3 compliance clm3_6_48 erik 08/12/2009 New aerosol/nitrogen deposition datasets, mksurfdata work, scm work, clm_usr_name option to build-namelist clm3_6_47 erik 08/03/2009 Fix hybrid bug for dynpft case, update externals - clm3_6_46 erik 07/22/2009 Get more tests to work/document them, add use cases for 1850_control, 2000_control, and - 20thC_transient, straighten out single-point grids, Listen to LND_CDF64 env variable from + clm3_6_46 erik 07/22/2009 Get more tests to work/document them, add use cases for 1850_control, 2000_control, and + 20thC_transient, straighten out single-point grids, Listen to LND_CDF64 env variable from template, remove CLM_ARB_IC. clm3_6_45 erik 07/10/2009 Remove inconsistent finidat file in clm3_6_44 clm3_6_44 erik 07/09/2009 Fix C13 bug, update scripts, drv, datm. Add domain files for idmap atm-ocn grids for datm. Remove SEQ_MCT, add new ESMF env vars to template. Work with ndeplintInterp @@ -545,51 +744,51 @@ used clm3_6_17 oleson 02/26/2009 Urban model changes and mksurfdata changes to incorporate urban data clm3_6_16 erik 02/12/2009 Multiple elevation classes on surface dataset, urban fixes, mpi-serial and testing fixes clm3_6_15 erik 01/19/2009 Bring clm36sci branch to the trunk - clm3_6_14 erik 10/10/2008 Fix some global urban issues, fix pftdyn, really get compile-only option + clm3_6_14 erik 10/10/2008 Fix some global urban issues, fix pftdyn, really get compile-only option working in testing - clm3_6_13 erik 10/01/2008 Update to new version of cpl7 scripts and build, update externals for versions + clm3_6_13 erik 10/01/2008 Update to new version of cpl7 scripts and build, update externals for versions needed for clm36sci branch, add new CASA tests - clm3_6_12 erik 09/21/2008 Fix restarts for urban, add capability to do global urban experiments, + clm3_6_12 erik 09/21/2008 Fix restarts for urban, add capability to do global urban experiments, add in new forcing height changes clm3_6_11 dlawren 08/26/2008 Ice stream for snow capped regions clm3_6_10 tcraig 08/15/2008 extend rtm tracer, ascale for tri-grids, AIX O3 to O2 clm3_6_09 erik 08/11/2008 Fix clm.cpl7.template to run hybrid and branch cases clm3_6_08 erik 08/06/2008 Fix bugs, and build changes for inputdata repo clm3_6_07 erik 07/08/2008 Implement new build namelist system from Vertenstein/Eaton, bluefire, and BGP updates - clm3_6_06 erik 05/30/2008 Small fix needed for ccsm4_alpha30 + clm3_6_06 erik 05/30/2008 Small fix needed for ccsm4_alpha30 (use gx1v5 for some resolutions when OCN_GRID==ATM_GRID) - clm3_6_05 erik 05/27/2008 Fix to compile with PGI-6, update scripts, fix cpl7.template for new scripts LND_GRID, + clm3_6_05 erik 05/27/2008 Fix to compile with PGI-6, update scripts, fix cpl7.template for new scripts LND_GRID, fix 2.65x3.33 frac dataset. - clm3_6_04 erik 05/20/2008 Remove all MCT permutes, fix cpl7 script issues, remove offline mode, + clm3_6_04 erik 05/20/2008 Remove all MCT permutes, fix cpl7 script issues, remove offline mode, add ability to run over a range of years clm3_6_03 erik 05/08/2008 Fix so listen to next_swcday to calculate albedo rather than using irad clm3_6_02 erik 03/25/2008 Minor fix in configure remove perl5lib version under models/lnd/clm/bld clm3_6_01 erik 03/20/2008 40 m forcing height changes for clm - clm3_6_00 erik 03/20/2008 Fully implement sequential-ccsm mode, upgrade configure, build-namelist and testing, - upgrade interpolation tool, add mkdatadomain, write to iulog rather than 6 explicitly, - SCAM update, Update datasets, add archiving, and build-streams, add in point version + clm3_6_00 erik 03/20/2008 Fully implement sequential-ccsm mode, upgrade configure, build-namelist and testing, + upgrade interpolation tool, add mkdatadomain, write to iulog rather than 6 explicitly, + SCAM update, Update datasets, add archiving, and build-streams, add in point version of Urban model, change directory structure to mimic CCSM - clm3_5_20 erik 03/17/2008 Bug fixes before spinning off clm3_6_00, put in changes from ccsm4a01_clm3_5_18 + clm3_5_20 erik 03/17/2008 Bug fixes before spinning off clm3_6_00, put in changes from ccsm4a01_clm3_5_18 to ccsm4a04_clm3_5_18 - clm3_5_19 erik 03/06/2008 Change directory structure to mimic CCSM, fix so no NaNS on BGC interpinic output, + clm3_5_19 erik 03/06/2008 Change directory structure to mimic CCSM, fix so no NaNS on BGC interpinic output, new half degree CN clmi dataset clm3_5_18 erik 02/21/2008 Update to latest seq-ccsm4.alpha tag clm3_5_17 erik 02/06/2008 Merge Tony Craig's FMI branch fmi12_clm3_5_16 to the clm trunk clm3_5_16 erik 01/28/2008 Get point version of Urban code onto trunk (urban code can not restart) - clm3_5_15 erik 12/10/2007 Fix interpinic for half degree grid, add in large-file support, + clm3_5_15 erik 12/10/2007 Fix interpinic for half degree grid, add in large-file support, allow configure to work with ccsm directory structure clm3_5_14 erik 11/27/2007 Use build-streams, and archiving, multiple bug-fixes clm3_5_13 erik 11/16/2007 Update xml file with file needed for ccsm3_5_beta18 clm3_5_12 erik 11/08/2007 Tag with new files needed for ccsm3_5_beta17 - clm3_5_11 erik 09/28/2007 Update datasets in the DefaultCLM file for 0.23x0.31, 0.47x0.63, 0.9x1.25 and + clm3_5_11 erik 09/28/2007 Update datasets in the DefaultCLM file for 0.23x0.31, 0.47x0.63, 0.9x1.25 and add fndepdyn file for 1.9x2.5 clm3_5_10 jet 09/18/2007 SCAM update - clm3_5_09 erik 08/31/2007 Change configure to NOT have csm_share code for ccsm_con option, and add in 1x1.25 file, + clm3_5_09 erik 08/31/2007 Change configure to NOT have csm_share code for ccsm_con option, and add in 1x1.25 file, and update datm7 and csm_share clm3_5_08 tcraig 08/20/2007 convert 6 to iulog in logfile, updates for I/O clm3_5_07 erik 08/17/2007 Add mkdatadomain tool, add cprnc and perl5lib as externals - clm3_5_06 erik 08/10/2007 Update: interpolation, testing, script namelist build, and scripts. Fix bugs, - and fix possible + clm3_5_06 erik 08/10/2007 Update: interpolation, testing, script namelist build, and scripts. Fix bugs, + and fix possible clm3_5_05 tcraig 07/11/2007 seq clm mods and first hist refactor mods clm3_5_04 mvertens 06/05/2007 lnd_comp_mct.F90 change to work with sequential diagnostics clm3_5_03 tcraig 05/23/2007 reduce memory, partial I/O refactor, downscaling implementation diff --git a/doc/IMPORTANT_NOTES b/doc/IMPORTANT_NOTES index 573bdb0484..276723d843 100644 --- a/doc/IMPORTANT_NOTES +++ b/doc/IMPORTANT_NOTES @@ -8,25 +8,18 @@ Namelist items that are not regularly tested or used. Some aren't even implement ../bld/namelist_files/namelist_definition_ctsm.xml -- for definitions CN_evergreen_phenology_opt - CN_partition_opt - CN_residual_opt CNratio_floating all_active allowlakeprod carbon_resp_opt ch4offline - downreg_opt fin_use_fsat lake_decomp_fact no_frozen_nitrif_denitrif - nscalar_opt perchroot perchroot_alt - plant_ndemand_opt reduce_dayl_factor replenishlakec - substrate_term_opt - temp_scalar_opt urban_traffic use_extralakelayers use_lai_streams diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 0000000000..1b8a86ad9a --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,40 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SPHINXPROJ = clmdoc +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +# 'make fetch-images' should be run before building the documentation. (If building via +# the build_docs command, this is run automatically for you.) This is needed because we +# have configured this repository (via an .lfsconfig file at the top level) to NOT +# automatically fetch any of the large files when cloning / fetching. +fetch-images: + git lfs pull --exclude="" --include="" + +.PHONY: help fetch-images Makefile + +# For the pdf, we only build the tech note, but use the conf.py file in +# the top-level source directory (the -c option says where to find +# conf.py). Note that we also override the setting of +# numfig_secnum_depth in order to have figure numbering as desired in +# the pdf, given that the pdf just contains the tech note, so doesn't +# have the top-level numbering present in the web documentation (where +# top-level section 1 is the User's Guide and section 2 is the Tech +# Note). +# +# The use of $(0) is as in the catch-all target. +latexpdf: + $(SPHINXBUILD) -M $@ "$(SOURCEDIR)/tech_note" "$(BUILDDIR)" -c "$(SOURCEDIR)" -D numfig_secnum_depth=1 $(SPHINXOPTS) $(O) + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + $(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 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 diff --git a/doc/README.CHECKLIST.master_tags b/doc/README.CHECKLIST.master_tags index 31c09895be..ed7794130b 100644 --- a/doc/README.CHECKLIST.master_tags +++ b/doc/README.CHECKLIST.master_tags @@ -55,6 +55,14 @@ https://github.com/ESCOMP/ctsm/wiki/CTSM-development-workflow ---- THE FOLLOWING CAN ONLY BE DONE BY INTEGRATORS ---- +NOTE (especially for new integrators): Be sure to follow the recommended +git setup in +. +Especially note that you should never use something like `git merge +escomp/master` to merge the upstream master branch into your local copy: +instead, you should always use `git pull` with the recommended +configuration settings (or `git merge --ff-only`) for that scenario. + (7) Merge the PR to master when review is approved (8) Compare master to branch show that they are identical @@ -65,7 +73,10 @@ This should show no diffs (9) Make an annotated tag on master -(10) Push master and tag to ESCOMP/ctsm +(10) Push tag to ESCOMP/ctsm + +(10a) Push to master (if needed because you changed something in master after PR was merged, or +if you did step 7 above using git commands that require this step) (11) Update the CTSM upcoming tags project, if necessary (https://github.com/ESCOMP/ctsm/projects/6) diff --git a/doc/UpdateChangelog.pl b/doc/UpdateChangelog.pl index 88f8331d03..4a5329175b 100755 --- a/doc/UpdateChangelog.pl +++ b/doc/UpdateChangelog.pl @@ -41,7 +41,7 @@ sub usage { To document a new tag - $ProgName ctsm1.0.dev012 "Description of this tag" + $ProgName ctsm5.2.dev099 "Description of this tag" EOF } @@ -177,10 +177,10 @@ sub usage { # Find header line if ( $_ =~ /=====================/ ) { print FH $_; - my $format = "%16.16s %8.8s %10.10s %s\n"; + my $format = "%18.18s %8.8s %10.10s %s\n"; if ( $update ) { $_ = ; - if ( /^(.{16}) (.{8}) (.{10}) (.+)$/ ) { + if ( /^(.{18}) (.{8}) (.{10}) (.+)$/ ) { $tag = $1; $user = $2; $sum = $4; diff --git a/doc/UsersGuide/Makefile b/doc/UsersGuide/Makefile deleted file mode 100644 index 1c76bc75bd..0000000000 --- a/doc/UsersGuide/Makefile +++ /dev/null @@ -1,193 +0,0 @@ -# -# Makefile to convert DocBook CLM Users-Guide into html and/or pdf -# (rtf, txt, ps, tex, man, dvi, and texi are also valid docbook formats) -# -VPATH := ../../tools/cprnc . .. ../../bld ../../tools/ncl_scripts \ - ../../tools/mksurfdata ../../test/system ../../bld/namelist_files \ - ../../bld/config_files ../../tools ../../../../../scripts/ccsm_utils/Tools \ - ../../../../../scripts/ccsm_utils/Tools/lnd/clm/PTCLM/ ../../src/main - -PDFUG := clm_ug.pdf -HTMLUG := book1.html -DOCBKUG := clm_ug.xml -CFGLOG := config_help -CPRLOG := cprnc_readme -BNMLOG := buildnml_help -BSTLOG := build_streams_help -RESLOG := buildnml_resolutions -USCLOG := buildnml_usecases -QCKLOG := quickstart_guide -COPLOG := filecopies -MKSLOG := mksurfdata.pl -USRLOG := quickstart_usrdat -PTCLOG := ptclm_help -PTCLST := ptclm_list -TDRLOG := test_driver.sh -GETREG := getregional_datasets -CO2DIF := addco2_datm.buildnml -DATLOG := build_date -NMLDFTBL := namelist_definition_table -NMLDLTBL := namelist_defaults_clm_table -HSFLDTBL := history_fields_table -CFGDFTBL := config_definition_table -COMPLIST := compsets_list_ofIcases.xml -SOURCES := $(DOCBKUG) $(COMPLIST) $(CFGLOG).xml $(PTCLOG).xml $(BNMLOG).xml \ - $(RESLOG).xml $(USCLOG).xml $(QCKLOG).xml $(COPLOG).xml $(PTCLST).xml \ - $(USRLOG).xml $(GETREG).xml preface.xml custom.xml special_cases.xml \ - tools.xml adding_files.xml single_point.xml addco2_datm.buildnml.xml \ - appendix.xml trouble_shooting.xml ptclm.xml $(BSTLOG).xml \ - $(MKSLOG).xml $(TDRLOG).xml $(DATLOG).xml $(CPRLOG).xml \ - $(NMLDFTBL).xml $(NMLDLTBL).xml $(CFGDFTBL).xml $(HSFLDTBL).xml - -CONVAMP := sed 's/\&/\&/g' -CONVSIGNS := sed 's/>/\>/g' | sed 's/ tmpFile.txt - addxhtmlhead.pl tmpFile.txt > $@ - $(RM) tmpFile.txt - -$(NMLDLTBL).xhtml: namelist_defaults_clm.xml namelist_defaults.xsl - xsltproc ../../bld/namelist_files/namelist_defaults.xsl $< > tmpFile.txt - addxhtmlhead.pl tmpFile.txt > $@ - $(RM) tmpFile.txt - -$(CFGDFTBL).xhtml: config_definition.xml config_definition.xsl - xsltproc ../../bld/config_files/config_definition.xsl $< > tmpFile.txt - addxhtmlhead.pl tmpFile.txt > $@ - $(RM) tmpFile.txt - -history_fields.xml: findHistFields.pl - cd ../../src/main; ./findHistFields.pl >& tmpFile.txt - $(RM) tmpFile.txt - -$(HSFLDTBL).xhtml: history_fields.xml history_fields.xsl - xsltproc ../../bld/namelist_files/history_fields.xsl $< > tmpFile.txt - addxhtmlhead.pl tmpFile.txt > $@ - $(RM) tmpFile.txt - -.xhtml.xml: - xsltproc stylesheethtml2docbook.xsl $< > $@ - -.tlog.xml: - $(CONVAMP) $< | $(CONVSIGNS) > tempFile.txt - limitLineLen.pl tempFile.txt > $@ - $(RM) tempFile.txt - -.diff.xml: - $(CONVAMP) $< | $(CONVSIGNS) > $@ - -debug: - @echo "SOURCES: $(SOURCES)" - @echo "CONVAMP: $(CONVAMP)" - @echo "CONVSIGNS: $(CONVSIGNS)" - -$(COMPLIST): - ./get_Icaselist.pl > $@ - -$(HTMLUG): $(SOURCES) - docbook2html --dsl clm_stylesheet.dsl#html $< - -$(PDFUG): $(SOURCES) - docbook2pdf --dsl clm_stylesheet.dsl#print $< - -$(BNMLOG).tlog: build-namelist - @echo "The following line will fail in the make as it calls die -- but that is expected" - @echo "Check that the output $@ is good and redo your make" - ../../bld/build-namelist -help >& $@ - -$(BSTLOG).tlog: build_streams - @echo "The following line will fail in the make as it calls die -- but that is expected" - @echo "Check that the output $@ is good and redo your make" - ../../../../../scripts/ccsm_utils/Tools/build_streams --help >& $@ - -$(DATLOG).tlog: - @echo "Get current build date" - date +%b-%d-%Y >& $@ - -$(RESLOG).tlog: build-namelist - @echo "The following line will fail in the make as it calls die -- but that is expected" - @echo "Check that the output $@ is good and redo your make" - ../../bld/build-namelist -res list >& $@ - -$(USCLOG).tlog: build-namelist - @echo "The following line will fail in the make as it calls die -- but that is expected" - @echo "Check that the output $@ is good and redo your make" - ../../bld/build-namelist -use_case list >& $@ - -$(CFGLOG).tlog: configure - @echo "The following line will fail in the make as it calls die -- but that is expected" - @echo "Check that the output $@ is good and redo your make" - ../../bld/configure -help >& $@ - -$(PTCLOG).tlog: PTCLM.py - @echo "The following line will fail in the make as it calls die -- but that is expected" - @echo "Check that the output $@ is good and redo your make" - ../../../../../scripts/ccsm_utils/Tools/lnd/clm/PTCLM/PTCLM.py --help >& $@ - -$(PTCLST).tlog: PTCLM.py - @echo "The following line will fail in the make as it calls die -- but that is expected" - @echo "Check that the output $@ is good and redo your make" - cd ../../../../../scripts/ccsm_utils/Tools/lnd/clm/PTCLM; \ - PTCLM.py --list >& $(CURDIR)/$@ - -$(MKSLOG).tlog: mksurfdata.pl - @echo "The following line will fail in the make as it calls die -- but that is expected" - @echo "Check that the output $@ is good and redo your make" - ../../tools/mksurfdata/mksurfdata.pl -help >& $@ - -$(TDRLOG).tlog: test_driver.sh - @echo "The following line will fail in the make as it calls die -- but that is expected" - @echo "Check that the output $@ is good and redo your make" - ../../test/system/test_driver.sh -help >& $@ - -$(QCKLOG).tlog: Quickstart.GUIDE - cp $< $@ - -$(COPLOG).tlog: README.filecopies - cp $< $@ - -$(CPRLOG).tlog: README - cp $< $@ - -$(USRLOG).tlog: Quickstart.userdatasets - cp $< $@ - -$(GETREG).tlog: getregional_datasets.pl - @echo "The following line will fail in the make as it calls die -- but that is expected" - @echo "Check that the output $(GETREG) is good and redo your make" - ../../tools/ncl_scripts/getregional_datasets.pl -help >& $@ - -clean: - $(RM) -f $(HTMLUG) $(PDFUG) *.tlog $(DATLOG).xml *.xhtml *.tex - -realclean: clean - $(RM) -f f*.html c*.html x*.html a*.html i*.html $(COMPLIST) $(CFGLOG).xml \ - $(BNMLOG).xml $(BSTLOG).xml $(PTCLOG).xml $(PTCLST).xml \ - $(RESLOG).xml $(USCLOG).xml $(USRLOG).xml $(GETREG).xml $(QCKLOG).xml \ - $(CO2DIF).xml *.tlog $(MKSLOG).xml $(TDRLOG).xml $(DATLOG).xml \ - $(NMLDFTBL).xml $(NMLDLTBL).xml $(CFGDFTBL).xml $(CPRLOG).xml \ - $(COPLOG).xml diff --git a/doc/UsersGuide/addco2_datm.buildnml.diff b/doc/UsersGuide/addco2_datm.buildnml.diff deleted file mode 100644 index b8fbf34e36..0000000000 --- a/doc/UsersGuide/addco2_datm.buildnml.diff +++ /dev/null @@ -1,59 +0,0 @@ -*** datm.buildnml.csh.orig 2010-06-11 10:59:29.246523532 -0600 ---- datm.buildnml.csh 2010-06-11 11:06:30.710784206 -0600 -*************** -*** 34,48 **** - streams = 'clm_qian.T62.stream.Solar.txt 1895 1948 1972 ', - 'clm_qian.T62.stream.Precip.txt 1895 1948 1972 ', - 'clm_qian.T62.stream.TPQW.txt 1895 1948 1972 ', -! 'presaero.stream.txt 1849 1849 2006' - vectors = 'null' - mapmask = 'nomask', - 'nomask', - 'nomask', - 'nomask' - tintalgo = 'coszen', - 'nearest', - 'linear', - 'linear' - / - EOF1 ---- 34,56 ---- - streams = 'clm_qian.T62.stream.Solar.txt 1895 1948 1972 ', - 'clm_qian.T62.stream.Precip.txt 1895 1948 1972 ', - 'clm_qian.T62.stream.TPQW.txt 1895 1948 1972 ', -! 'presaero.stream.txt 1849 1849 2006', -! 'datm.global1val.stream.CO2.txt 1766 1766 2005 ' - vectors = 'null' - mapmask = 'nomask', - 'nomask', - 'nomask', -+ 'nomask', - 'nomask' -+ mapalgo = 'bilinear', -+ 'bilinear', -+ 'bilinear', -+ 'bilinear', -+ 'nn' - tintalgo = 'coszen', - 'nearest', - 'linear', -+ 'linear', - 'linear' - / - EOF1 -*************** -*** 1112,1121 **** ---- 1120,1132 ---- - - EOF1 - -+ cp $CASEBUILD/co2_streams.txt datm.global1val.stream.CO2.txt -+ - - $CASETOOLS/listfilesin_streams -input_data_list -t clm_qian.T62.stream.Solar.txt >> $CASEBUILD/datm.input_data_list - $CASETOOLS/listfilesin_streams -input_data_list -t clm_qian.T62.stream.Precip.txt >> $CASEBUILD/datm.input_data_list - $CASETOOLS/listfilesin_streams -input_data_list -t clm_qian.T62.stream.TPQW.txt >> $CASEBUILD/datm.input_data_list -+ $CASETOOLS/listfilesin_streams -input_data_list -t datm.global1val.stream.CO2.txt >> $CASEBUILD/datm.input_data_list - - cat >! presaero.stream.txt << EOF1 - diff --git a/doc/UsersGuide/adding_files.xml b/doc/UsersGuide/adding_files.xml deleted file mode 100644 index 18c034cbbb..0000000000 --- a/doc/UsersGuide/adding_files.xml +++ /dev/null @@ -1,357 +0,0 @@ - - -Adding New Resolutions or New Files to the build-namelist Database - -In the last chapter we gave the details on how to create new files for input into -CLM. These files could be either global resolutions, regional-grids or even a single -grid point. If you want to easily have these files available for continued use in your -development you will then want to include them in the build-namelist database so -that build-namelist can easily find them for you. You can deal with them, just by -editing your namelist by hand (or using a &usernlclm; namelist file), or by using -&CLMUSRDAT;. Another way to deal with them is to enter them into -the database for build-namelist, so that build-namelist can find them for you. -This keeps one central database for all your files, rather than having multiple locations -to keep track of files. If you have a LOT of files to keep track of it also might -be easier than keeping track by hand, especially if you have to periodically update -your files. If you just have a few quick experiments to try, for a short time period -you might be best off using the other methods mentioned above. - - -There are two parts to adding files to the build-namelist database. The first part -is adding new resolution names which is done in the -models/lnd/clm/bld/namelist_files/namelist_definition.xml file -(and in the -models/lnd/clm/bld/config_files/config_definition.xml file -when adding supported single-point datasets). -The second part is actually adding the new filenames which is done in the -models/lnd/clm/bld/namelist_files/namelist_defaults_clm.xml file -(models/lnd/clm/bld/namelist_files/namelist_defaults_clm_tools.xml -file for CLM tools). -If you aren't adding any new resolutions, and you are just changing the files for existing -resolutions, you don't need to edit the namelist_definition file. - - - -Managing Your Own Data-files - -If you are running on a supported machine (such as bluefire or jaguar) the standard -input datasets will already be available and you won't have to check them out of the -subversion inputdata server. However, you also will NOT be able to add your own datafiles -to these standard inputdata directories -- because most likely you won't have permissions -to do so. In order to add files to the XML database or to use &CLMUSRDAT; you need -to put data in the standard locations so that they can be found. The recommended -way to do this is to use the link_dirtree tool in the &cesm; scripts. -Some information on link_dirtree is available in the -&cesmrel; Scripts User's Guide. We also have -some examples of it's use here and in other sections of this User's Guide. - - -Using link_dirtree is quite simple, you give the directory where -data exists and then the directory that you want to create where datasets will point -to the original source files. In the example below we use "$HOME/inputdata", but -MYCSMDATA could be any directory you have access to where you want to -put your data. - -> cd scripts -# First make sure you have a inputdata location that you can write to -# You only need to do this step once, so you won't need to do this in the future -# (except to bring in any updated files in the original $CSMDATA location). -> setenv MYCSMDATA $HOME/inputdata # Set env var for the directory for input data -> ./link_dirtree $CSMDATA $MYCSMDATA - -Then when you create a case you will change DIN_LOC_ROOT_CSMDATA to -point to the location you linked to rather than the default location. - -> ./xmlchange -file env_run.xml -id DIN_LOC_ROOT_CSMDATA -val $MYCSMDATA - - - -In order to list the files that you have created you merely need to use the UNIX -command find to find the files that are NOT softlinks. So for -example executing the following command: - -> find $MYCSMDATA -type f -print - -for me gives the following list of &CLMUSRDAT; files that I have created. - -/blhome/erik/inputdata/atm/cam/chem/trop_mozart_aero/aero/aerosoldep_monthly_1849-2006_1x1pt_US-Ha1.nc -/blhome/erik/inputdata/atm/cam/chem/trop_mozart_aero/aero/aerosoldep_monthly_1849-2006_13x12pt_f19_alaskaUSA.nc -/blhome/erik/inputdata/atm/cam/chem/trop_mozart_aero/aero/aerosoldep_rcp8.5_monthly_1850-2100_13x12pt_f19_alaskaUSA.nc -/blhome/erik/inputdata/atm/cam/chem/trop_mozart_aero/aero/aerosoldep_rcp4.5_monthly_1850-2100_13x12pt_f19_alaskaUSA.nc -/blhome/erik/inputdata/atm/datm7/domain.clm/domain.lnd.1x1pt_US-Ha1_USGS.nc -/blhome/erik/inputdata/atm/datm7/domain.clm/domain.lnd.13x12pt_f19_alaskaUSA_gx1v6.nc -/blhome/erik/inputdata/lnd/clm2/griddata/fracdata_13x12pt_f19_alaskaUSA_gx1v6.nc -/blhome/erik/inputdata/lnd/clm2/griddata/fracdata_1x1pt_US-Ha1_USGS.nc -/blhome/erik/inputdata/lnd/clm2/griddata/topodata_13x12pt_f19_alaskaUSA.nc -/blhome/erik/inputdata/lnd/clm2/griddata/griddata_1x1pt_US-Ha1.nc -/blhome/erik/inputdata/lnd/clm2/griddata/griddata_13x12pt_f19_alaskaUSA.nc -/blhome/erik/inputdata/lnd/clm2/surfdata/surfdata_13x12pt_f19_alaskaUSA_simyr1850.nc -/blhome/erik/inputdata/lnd/clm2/surfdata/surfdata_1x1pt_US-Ha1_simyr2000.nc -/blhome/erik/inputdata/lnd/clm2/surfdata/surfdata.pftdyn_rcp4.5_13x12pt_f19_alaskaUSA_simyr1850-2100.nc -/blhome/erik/inputdata/lnd/clm2/surfdata/surfdata_1x1pt_US-Ha1_simyr1850.nc -/blhome/erik/inputdata/lnd/clm2/surfdata/surfdata_13x12pt_f19_alaskaUSA_simyr2000.nc -/blhome/erik/inputdata/lnd/clm2/surfdata/surfdata.pftdyn_1x1pt_US-Ha1_simyr1849-2006.nc -/blhome/erik/inputdata/lnd/clm2/surfdata/surfdata.pftdyn_13x12pt_f19_alaskaUSA_simyr1850-2100.nc -/blhome/erik/inputdata/lnd/clm2/surfdata/surfdata.pftdyn_rcp8.5_13x12pt_f19_alaskaUSA_simyr1850-2100.nc -/blhome/erik/inputdata/lnd/clm2/surfdata/surfdata.pftdyn_13x12pt_f19_alaskaUSA_simyr1849-2006.nc -/blhome/erik/inputdata/lnd/clm2/surfdata/surfdata.pftdyn_1x1pt_US-Ha1_simyr1850-2100.nc - -You can also use find to list files that have a particular pattern -in the name as well (using the -name option with wildcards). Also you can always rerun the -link_dirtree command if any new files are added that you need to be -linked into your directory tree. Since, the files are soft-links -- it doesn't take up -much space other than the files that you add there. This way all of the files are kept -in one place, they are organized by usage according to &cesm; standards, and you can -easily find your own files, and &clm; can find them as well. - - - - -Adding Resolution Names - -If you are adding files for new resolutions which aren't covered in the -namelist_definition file -- you'll need to add them in. The list of valid resolutions -is in the id="res" entry in the -models/lnd/clm/bld/namelist_files/namelist_definition.xml file. -You need to choose a name for your new resolution and simply add it to the comma -delimited -list of valid_values for the id="res" entry. The convention for global Gaussian grids -is number_of_latitudes x number_of_longitudes. The convention for global finite -volume grids is latitude_grid_size x longitude_grid_size where latitude and longitude -is measured in degrees. For regional or single-point datasets the names have a grid size -number_of_latitudes x number_of_longitudes followed by an underscore and then a -descriptive name such as a City name followed by an abbreviation for the Country in caps. -The only hard requirement is that names be unique for different grid files. -Here's what the entry for resolutions looks like in the file: - -<entry id="res" type="char*30" category="default_settings" - group="default_settings" - valid_values= -"128x256,64x128,48x96,32x64,8x16,94x192,0.23x0.31,0.47x0.63, -0.9x1.25,1.9x2.5,2.65x3.33,4x5,10x15,5x5_amazon, -1x1_camdenNJ,1x1_vancouverCAN,1x1_mexicocityMEX,1x1_asphaltjungleNJ, -1x1_brazil,1x1_urbanc_alpha,0.5x0.5"> -Horizontal resolutions -</entry> - -As you can see you just add your new resolution names to the end of the valid_values -list. - - -When using &ptclm; and adding supported single-point resolutions, you'll also want to -add these resolutions to the -models/lnd/clm/bld/config_files/config_definition.xml under -the sitespf_pt name. The entry in that file looks like: - -<entry id="sitespf_pt" -valid_values="none,1x1_brazil,5x5_amazon, -1x1_camdenNJ,1x1_vancouverCAN,1x1_mexicocityMEX,1x1_asphaltjungleNJ, -1x1_urbanc_alpha,1x1_numaIA,1x1_smallvilleIA" -value="none" category="physics"> -Flag to turn on site specific special configuration flags for supported single -point resolutions. -Currently the only special settings are for MEXICOCITY and VANCOUVER, which make -changes to urban parameters. -</entry> - -&ptclm; assumes that any supported single-point resolutions are valid settings for -sitespf_pt. - - - - -Adding or Changing Default Filenames - -To add or change the default filenames you edit the -models/lnd/clm/bld/namelist_files/namelist_defaults_clm.xml -and either change an existing filename or add a new one. Most entries in the -default namelist files, include different attributes that describe the different -properties that describe the differences in the datasets. Attributes include -the: resolution, year to simulation, range of years to simulate for transient -datafiles, the land-mask, the representative concentration pathway (rcp) for future -scenarios, and the type of biogeochemistry (bgc) model used. For example the -fatmgrid for the 1.9x2.5 resolution is as follows: - -<fatmgrid hgrid="1.9x2.5" >lnd/clm2/griddata/griddata_1.9x2.5_060404.nc -</fatmgrid> - -Other fatmgrid files are distinguished from this one by -their resolution (hgrid) attribute. - - -To add or change the default filenames for &clm; tools edit the -models/lnd/clm/bld/namelist_files/namelist_defaults_clm_tools.xml -and either change an existing filename or add a new one. Editing this file is -similar to the namelist_defaults_clm.xml talked about above. - - -What are the required files? - -Different types of simulations and different types of configurations for &clm; require -different lists of files. The Carbon Nitrogen (cn) Biogeochemistry model for example -requires stream_fldfilename_ndep files, which are NOT required by -other bgc modes. Transient simulations also require transient datasets, and the names -of these datasets are sometimes different from the static versions (sometimes both are -required as in the dynamic PFT cases). - - -In the following table we list the different files used by CLM, they are listed -in order of importance, dependencies, and customizing. So the required files -are all near the top, and the files used only under different conditions are listed -later, and files with the fewest dependencies are near the top, as are the files -that are least likely to be customized. - - -Required Files for Different Configurations and Simulation Types - - - - - - - Filename - Config. type - Simulation type - Resol. Dependent? - Other Dependencies? - - - Notes - - - - - - fpftcon - ALL - ALL - No - No - - - Not usually customized, as describes plant function -type properties. &ptclm; copies the file for you so that you can customize it if you -like, see . - - - fsnowoptics - ALL - ALL - No - No - - - Not usually customized as describes global snow optical properties. - - - fsnowaging - ALL - ALL - No - No - - - Not usually customized as describes global snow aging properties. - - - fatmgrid - ALL - ALL - Yes - No - - - Creating, using mkgriddata -usually gives you the amount of customization -you need, as it just describes the grid and grid extents. - - - fatmlndfrc - ALL - ALL - Yes - land-mask - - - Describes the land-mask for points with active land, as well as the fraction -of each grid-cell covered by land. You might customize it to make sure the land-fraction -of your grid-cell matches the expected values for your site. But, usually you will just -use what mkgriddata gives you. - - - fsurdat - ALL - ALL - Yes - simulation-year - - - Describes percentages of different land-units, columns and -vegetation types within each grid-cell. To customize for a specific point -or region you may want to use custom input datasets to mksurfdata when -creating the file. mksurfdata also allows you to customize the PFT, -and soil types to it see . &ptclm; takes -advantage of this to create customized datasets as well, see the chapter on &ptclm; -at . - - - flanduse_timeseries - ALL - transient land-use land-cover change - Yes - Simulation year range, and representative concentration pathway (rcp) - - - See notes on fsurdat files. - - - frivinp_rtm - RTM only - ALL - No - No - - - We only provide a half-degree global river routing file. If you want -to model river flow for a smaller scale, or a basin regional scale, you would -need to create your own custom file to do that. Normally, we turn river-routing -OFF for regional or single point simulations. - - - finidat - ALL - RUN_TYPE="startup", CLM_FORCE_COLDSTART="off" - Yes - mask, maxpft, bgc, simulation-year, start-date - - - Used for starting the model from a spun-up state. -Create these files by running the model -for multiple years and saving the restart file from the end of a spin-up -simulation. - - - - stream_fldfilename_ndep - bgc=cn/cndv - Yes - No - simulation-year - - - -You may customize this file to get the Nitrogen deposition characteristics -of your site if available. This file will be interpolated while the model is -running from it's resolution to the resolution that &clm; is running at. - - - - - -
    -
    - -
    - -
    - diff --git a/doc/UsersGuide/addxhtmlhead.pl b/doc/UsersGuide/addxhtmlhead.pl deleted file mode 100755 index d5f9615c58..0000000000 --- a/doc/UsersGuide/addxhtmlhead.pl +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env perl -# -use strict; -use Cwd; -use English; -use IO::File; -use Getopt::Long; -use IO::Handle; -#----------------------------------------------------------------------------------------------- - -# Get the directory name and filename of this script. If the command was -# issued using a relative or absolute path, that path is in $ProgDir. Otherwise assume -# the -# command was issued from the current working directory. - -(my $ProgName = $0) =~ s!(.*)/!!; # name of this script -my $ProgDir = $1; # name of directory containing this script -- may be a - # relative or absolute path, or null if the script - # is in - # the user's PATH -my $nm = "$ProgName::"; # name to use if script dies -my $scrdir; -if ($ProgDir) { - $scrdir = $ProgDir; -} else { - $scrdir = getcwd() -} - -sub usage { - my $msg = shift; - - print "ERROR:: $msg\n"; - die < -OPTIONS - NONE -EOF -} - -my %opts = ( ); - -GetOptions( -) or usage(); - -if ( $#ARGV != 0 ) { - &usage( "Wrong number of command line arguments" ); -} - -my $inputFile = $ARGV[0]; - -if ( ! -f $inputFile ) { - &usage( "Input file does NOT exist : $inputFile" ); -} - -my $fh = IO::File->new($inputFile, '<') or die "** $nm - can't open input file: -$inputFile\n"; - -# -# Add in XML XHTML headers -# -print <<"EOF"; - - - -EOF -while (my $line = <$fh>) { - if ( $line =~ /^$/ ) { - print "
    \n"; - } elsif ( $line =~ /^'."\n"; - } else { - print $line; - } -} -$fh->close(); diff --git a/doc/UsersGuide/appendix.xml b/doc/UsersGuide/appendix.xml deleted file mode 100644 index 058e67d577..0000000000 --- a/doc/UsersGuide/appendix.xml +++ /dev/null @@ -1,305 +0,0 @@ - -Editing Template Files Before Configure - -The last kind of customization that you can do for a case, before configure is run -is to edit the templates. The &clm; template is in -models/lnd/clm/bld/clm.cpl7.template, the &datm; template is -in models/atm/datm/bld/datm.cpl7.template, and the driver templates -are in the models/drv/bld directory and are named: -ccsm.template and cpl.template. When a case is -created they are also copied to the Tools/Templates directory -underneath your case. If you want to make changes that will impact all your cases, you -should edit the template files under the models directory, but -if you want to make a change ONLY for a particular case you should edit the template -under that specific case. - - - -Editing the template files is NOT for the faint of heart! We recommend this ONLY for -experts! It's difficult to do because the template is a script that actually creates -another script. So part of the script is echoing the script to be created and part of -it is a script that is run when "configure -case" is run. As a result any variables -in the part of the script that is being echoed have to be escaped like this: - -\$VARIABLE - -But, in other parts of the script that is run, you can NOT escape variables. So you -need to understand if you are in a part of the script that is echoing the script to -be created, or in the part of the script that is actually run. - - - -If you can customize your case using: compsets, env_*.xml variables, -or a user namelist, as outlined in you should do so. -The main reason to actually edit the template files, is if you are in a situation where -the template aborts when you try it run it when "configure -case" is run. The other -reason to edit the template is if you are &clm; developer and need to make adjustments -to the template because of code or script updates. An example of modifying the &datm; -template is in where sed is used to modify the path -for &CPLHIST; data. - - -Outline of the &clm; template - -The outline of the &clm; template is as follows: - -# set up options for clm configure and then run clm configure -$CODEROOT/lnd/clm*/bld/configure <options> -# set up options for clm build-namelist and then run clm build-namelist -$CODEROOT/lnd/clm*/bld/build-namelist <options> -# echo the $CASEBUILD/clm.buildnml.csh script out -cat >! $CASEBUILD/clm.buildnml.csh << EOF1 -# NOTE: variables in this section must be escaped -EOF1 -# Remove temporary namelist files - -# echo the $CASEBUILD/clm.buildexe.csh script out -cat > $CASEBUILD/clm.buildexe.csh <<EOF2 -# NOTE: variables in this section must be escaped -EOF2 -# Remove temporary configure files - - - - - -Outline of the &datm; template - -The outline of the &datm; template is as follows: - -# Check $GRID to set the $DOMAINFILE and $DOMAINPATH - -# Check DATM_PRESAERO to set the prescribed aerosol option -# If &CLMUSRDAT; is set and $DOMAINFILE is NOT -- set it by &CLMUSRDAT; -# Ensure $DOMAINFILE is set or else abort - -#============================================================================== -# Create resolved prestage data script -#============================================================================== -cat >! $CASEBUILD/datm.buildnml.csh << EOF1 -# NOTE: variables in this section must be escaped -EOF1 -# Major if blocks look at DATM_MODE: -# the if blocks setup streams and run Tools/build_streams to create stream files -#----- CLM_QIAN mode ---------------------------------------------------------- -else if ($DATM_MODE == "&CLMQIAN;" ) then -. - # Customize &CLMQIAN; options here - - # A.) Setup datm_atm_in namelist -cat >! $CASEBUILD/datm.buildnml.csh << EOF -cat >! datm_atm_in << EOF1 -# NOTE: variables in this section must be escaped -EOF1 -EOF - - # B.) Setup options to build_streams -. -. -. -#----- CLM1PT mode ---------------------------------------------------------- -else if ($DATM_MODE == "CLM1PT" ) then -. - # Customize CLM1PT options here - - # A.) Setup datm_atm_in namelist -cat >! $CASEBUILD/datm.buildnml.csh << EOF -cat >! datm_atm_in << EOF1 -# NOTE: variables in this section must be escaped -EOF1 -EOF - - # B.) Setup options to build_streams -. -. -. -. -#----- CPLHIST 3-hourly time-averaging mode ----------------------------------------------------------- -else if ($DATM_MODE == "&CPLHIST;" ) then -. - # Customize &CPLHIST; options here - - # A.) Setup datm_atm_in namelist -cat >! $CASEBUILD/datm.buildnml.csh << EOF -cat >! datm_atm_in << EOF1 -# NOTE: variables in this section must be escaped -EOF1 -EOF - - # B.) Setup options to build_streams -. -. -. -. - -#----- INVALID mode -----------------------------------------------------------else - echo "ERROR: unrecognized DATM_MODE = \$DATM_MODE " - exit -1 -endif - -#============================================================================== -# Create prescribed aero streams if appropriate -#============================================================================== -. -. -. -#============================================================================== -# Create remaining resolved namelist -#============================================================================== - -cat >! $CASEBUILD/datm.buildnml.csh << EOF -cat >! datm_in << EOF1 -# NOTE: variables in this section must be escaped -. -. -. -EOF1 - -EOF - -#============================================================================== -# Create script to build executable -#============================================================================== - -cat > $CASEBUILD/datm.buildexe.csh <<EOF -#! /bin/csh -f -# NOTE: variables in this section must be escaped -EOF - -#============================================================================== -# end of script -#============================================================================== - - - - - -Adding a new DATM_MODE to the &datm; template - - The steps to adding a new DATM_MODE - -Add a new "if" block to the &datm; template - -As you can see from above -there are major "if" blocks for the different DATM_MODE's. So adding a new -DATM_MODE means adding a new "if" block. The two major parts of each DATM_MODE -block are: - -Setup datm_atm_in namelist -Setup options to build_streams - - - - -In the "if" block create the <filename>datm_atm_in</filename> namelist - -See for some notes about the -&datm; namelist and streams files. That and the - -&datm; User's Guide should give you guidance on how to -setup the namelist for your case. - - - -In the "if" block create options to and call <command>build_streams</command> - -The next part of the "if" block in the &datm; template file to work with is the -call to build_streams. You may need to add additional options -to it. You may also need to call it multiple times for multiple streams. You will -also likely need to add a new source option to it with the "-s" option. For more -information on build_streams do the following. - -Getting help with <command>build_streams</command> for &datm; - -> scripts/ccsm_utils/Tools/build_streams -help - - -The output of the above command is: - - -&build_streams_help; - - - - - -Add new streams templates to the &datm; -<filename>datm.template.streams.xml</filename> file - -As part of modifying the behavior of build_streams you will also -have to edit the models/atm/datm7/bld/datm.template.streams.xml -file as well (or the local version in your -$CASENAME/Tools/Templates directory for a particular case). -The template is an XML file much like the output streams file, but there are attributes -to distinguish which fields will be used based on things like: RESOLUTION or datasource. -And there are filename indicators (starting with a "%") that get translated into various -things such as: - -%c = Case (from above -case command line option) -%do = Use domain file -%y = Year (through range given from begyear to endyear) -%ym = Year-Month (all 12 months through year range) -%6ym = Like %ym but 6 digit year (ie. %YYYYYY-MM). (can replace the 6 with any digit 1-9) - - - - -Add a new valid_value to the <filename>config_definition.xml</filename> file in -scripts. - -Adding a new DATM_MODE also requires adding a new valid_value to -scripts/ccsm_utils/Case.template/config_definition.xml. This -enables the scripts to recognize the new value as a valid option to DATM_MODE -in the &envconf; file. - - - - - - - -Building the Users-Guide Documentation for &clm; - -All of the documentation for &clm; can be built using GNU Makefiles that are -available in the appropriate directories. The Makefiles require the following -utilities: docbook2html, docbook2pdf, -protex, and latex2html. - - -To build the Users Guide for &clm; (requires docbook). - -> cd models/lnd/clm/doc/UsersGuide -> gmake - -Note, that when the Users-Guide is built it will get output from other &clm; -utilities that by nature abort, and hence stop the make from continuing. However, -this is expected so you should simply run gmake again until -it either completes or comes upon a legitimate issue. Here is what a sample -warning looks like when gmake is run. - -The following line will fail in the make as it calls die -- but that is expected -Check that the output config_help.tlog is good and redo your make -../../bld/configure -help >&` config_help.tlog -make: *** [config_help.tlog] Error 255 - -To build the Code Reference Guide for &clm; (requires protex and -latex2html). The make here uses a Filepath -file that points to the list of directories that you want protex -to run over. You should examine this file and make sure it is appropriate for what -you need to do, before running the make. - -> cd models/lnd/clm/doc/CodeReference -> gmake - -To build the table of tests for the &clm; test suite. The make here runs a UNIX -shell script to create a html table of the list of tests run on the different machines -from the &clm; test suite. - -> cd models/lnd/clm/test/system -> gmake - - - - - diff --git a/doc/UsersGuide/badpergro.jpg b/doc/UsersGuide/badpergro.jpg deleted file mode 100644 index 4a378cf52d..0000000000 Binary files a/doc/UsersGuide/badpergro.jpg and /dev/null differ diff --git a/doc/UsersGuide/clm_stylesheet.dsl b/doc/UsersGuide/clm_stylesheet.dsl deleted file mode 100644 index 7bc3ed0036..0000000000 --- a/doc/UsersGuide/clm_stylesheet.dsl +++ /dev/null @@ -1,154 +0,0 @@ - - -]> - - - - - - - - - -;;Default extension for filenames -(define %html-ext% ".html") -;;What font would you like for the body? -(define %body-font-family% - "Arial") - -(element emphasis -(if (equal? (normalize "bold") (attribute-string (normalize "role"))) - ($bold-seq$) - ($italic-seq$))) - -(element tgroup - (let* ((wrapper (parent (current-node))) - (frameattr (attribute-string (normalize "frame") wrapper)) - (pgwide (attribute-string (normalize "pgwide") wrapper)) - (footnotes (select-elements (descendants (current-node)) - (normalize "footnote"))) - (border (if (equal? frameattr (normalize "none")) - '(("BORDER" "0")) - '(("BORDER" "1")))) - (bgcolor '(("BGCOLOR" "#E0E0E0"))) - (width (if (equal? pgwide "1") - (list (list "WIDTH" ($table-width$))) - '())) - (head (select-elements (children (current-node)) (normalize "thead"))) - (body (select-elements (children (current-node)) (normalize "tbody"))) - (feet (select-elements (children (current-node)) (normalize "tfoot")))) - (make element gi: "TABLE" - attributes: (append - border - width - bgcolor - '(("CELLSPACING" "0")) - '(("CELLPADDING" "4")) - (if %cals-table-class% - (list (list "CLASS" %cals-table-class%)) - '())) - (process-node-list head) - (process-node-list body) - (process-node-list feet) - (make-table-endnotes)))) - - -;;Should verbatim items be 'shaded' with a table? -(define %shade-verbatim% - #t) - -;;Define shade-verbatim attributes -(define ($shade-verbatim-attr$) - (list - (list "BORDER" "0") - (list "BGCOLOR" "#E0E0E0") - (list "WIDTH" ($table-width$)))) - -;;Index -(define (generate-index) - ("1")) - -;;======================== -;;Title Pages for Books -;;======================= - -(define (book-titlepage-recto-elements) - (list (normalize "title") - (normalize "subtitle") - (normalize "authorgroup") - (normalize "author") - (normalize "date") - (normalize "releaseinfo") - (normalize "orgname") - (normalize "graphic") - (normalize "copyright") - (normalize "legalnotice"))) - - - - - - - - - -;;Index -(define ($insert.xref.page.number$) - ("yes")) - -;;Index -(define ($generate-index$) - ("1")) - -;;Tex Backend off -(define tex-backend - #f) - -;;What elements should have a LOT? -(define ($generate-book-lot-list$) - (list (normalize "example") - (normalize "table") - (normalize "figure") - (normalize "equation"))) - -;;======================== -;;Title Pages for Books -;;======================= - -(define (book-titlepage-recto-elements) - (list (normalize "title") - (normalize "subtitle") - (normalize "authorgroup") - (normalize "author") - (normalize "date") - (normalize "orgname") - (normalize "graphic") - (normalize "copyright") - (normalize "legalnotice") - (normalize "releaseinfo"))) - -(define %show-ulinks% - ;; Display URLs after ULinks? - #t) - -(define %indent-screen-lines% - ;; Indent lines in a 'Screen'? - " ") - - - - - - - - diff --git a/doc/UsersGuide/clm_ug.xml b/doc/UsersGuide/clm_ug.xml deleted file mode 100644 index 68aa69b1d6..0000000000 --- a/doc/UsersGuide/clm_ug.xml +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - build-namelist"> - configure"> - NCAR"> - CCSM"> - CCSM4.0"> - CESM"> - CESM1.0"> - CESM1.0.1"> - CESM1.0.2"> - CESM1.0.3"> - - PTCLM"> - PTCLM1"> - PTCLM1.110504"> - CLM"> - CLMCN"> - CLMSP"> - CLMU"> - CLM3.0"> - CLM3.5"> - CLM4"> - CLM4.0.00"> - - - - - - - - DATM"> - models/lnd/clm/doc/KnownBugs"> - NetCDF"> - FORTRAN"> - FORTRAN-90"> - MPI"> - PIO"> - OpenMP"> - NCL"> - Perl"> - XML"> - xmlchange"> - 2"> - - - - env_run.xml"> - env_build.xml"> - env_conf.xml"> - user_nl_clm"> - - - PTS_MODE"> - CSMDATA"> - CLM_FORCE_COLDSTART"> - CLM_CONFIG_OPTS"> - CLM_BLDNML_OPTS"> - CLM_NML_USE_CASE"> - CLM_NAMELIST_OPTS"> - CLM_PT1_NAME"> - CLM_QIAN"> - CPLHIST3HrWx"> - CLM_USRDAT_NAME"> - CLM_CO2_TYPE"> - DIN_LOC_ROOT"> - - - CLM_QIAN"> - - - - %ISOamsa; - ]]> - - - - %ISOgrk1; - ]]> - -]> - - - - -&cesm; Research Tools: &clmrel; User's Guide Documentation - - - CESM - CLM - community earth system model - climate - climate model - earth system model - land surface model - hydrology - biogeochemistry - urban model - documentation - - - - - - Erik - Kluzek - - NCAR - - - - - - - -The user's guide to &clmrel; which is the active land surface model component of &cesmrel;. -The purpose of this guide is to instruct both the novice and experienced user, as well as -&clm; developers in the use of &clm4; for land-surface climate modeling. - - - -$URL$ - -&build_date; - - - - - -Dedicated to the Land Model Working Group, winners of the 2008 &ccsm; Distinguished Achievement Award. -May you continue to collaborate together well, and continue to drive -the science of land surface modeling forward with your diligent and persistent efforts. - - - - -&preface; -&custom; -&tools; -&adding_files; -&special_cases; -&single_point; -&ptclmdoc; -&trouble; -&testing; -&appendix; - - diff --git a/doc/UsersGuide/co2_streams.txt b/doc/UsersGuide/co2_streams.txt deleted file mode 100644 index 4d38c6d06e..0000000000 --- a/doc/UsersGuide/co2_streams.txt +++ /dev/null @@ -1,50 +0,0 @@ - - - This is a streams file to pass historical CO2 from datm8 to the other - surface models. It reads in a historical dataset derived from data used - by CAM. The getco2_historical.ncl script in components/clm/tools/ncl_scripts - was used to convert the CAM file to a streams compatible format (adding domain - information and making CO2 have latitude/longitude even if only for a single - point. - - - - Input stream description file for historical CO2 reconstruction data - - 04 March 2010: Converted to form that can be used by datm8 by Erik Kluzek - 18 December 2009: Prepared by B. Eaton using data provided by - Jean-Francois Lamarque. All variables except f11 are directly from - PRE2005_MIDYR_CONC.DAT. Data from 1765 to 2007 with 2006/2007 just - a repeat of 2005. - - - CLMNCEP - - - - time time - lonc lon - latc lat - area area - mask mask - - - /fis/cgd/cseg/csm/inputdata/atm/datm7/CO2 - - - fco2_datm_1765-2007_c100614.nc - - - - - CO2 co2diag - - - /fis/cgd/cseg/csm/inputdata/atm/datm7/CO2 - - - fco2_datm_1765-2007_c100614.nc - - - - diff --git a/doc/UsersGuide/custom.xml b/doc/UsersGuide/custom.xml deleted file mode 100644 index d6a60a28f7..0000000000 --- a/doc/UsersGuide/custom.xml +++ /dev/null @@ -1,1615 +0,0 @@ - - - - - - - component set - compset - "I" compsets - "B" compsets - "E" compsets - "F" compsets - &CLMCONFIG; - &CLMNAMELIST; - &CLMFORCECOLD; - &CLMUSECASE; - &CLM1PT; - &CLMUSRDAT; - &CLMCO2; - - -How to customize the configuration for a case with &clm; - - -The -&cesm; User's Guide gives you the details on how to setup, &configure;, build, and run -a case. That is the document to give you the details on using the &cesm; scripts. The purpose -of this document is to give you the details when using &cesm; with &clm; on how to customize -and use advanced features in &clm;. You should be familiar with the &cesm; User's Guide and -how to setup cases with &cesmrel; before referring to this document. - - -In this chapter we deal with three different ways of customizing a case: Choosing a compset, -Customizing Configuration options, and customizing the &clm; Namelist. There are many different -compsets that use &clm; and many are setup to enable special features of &clm; from the start. So -the first thing you want to be familiar with are the different options in the compsets. The -next section shows the different options for customizing the configuration options for -&clm;. -Here we introduce the &clm; &configure; and &buildnml; scripts and how using the options in -&envconf; you can customize the configuration and the initial -namelist. The final section tells you about the &clm; namelist and how you can customize the -namelist once you have run "&configure; -case" and have an initial namelist in -BuildConf/clm.buildnml.csh. You can also -use &envconf; options to change your namelist as well, before "&configure; -case" is -run. - - - -Choosing a compset using &clm; - - -When setting up a new case one of the first choices to make is which "component -set" (or compset) to use. The -compset refers to which component models are used as well as specific settings for them. We label the different -types of compsets with a different letter of the alphabet from "A" (for all data model) to "X" (for all dead model). -The compsets of interest when working with &clm; are the "I" compsets (which contain -&clm; with a data atmosphere model -and a stub ocean, and stub sea-ice models), "E" and "F" compsets (which contain &clm; -with the active atmosphere model (CAM), -prescribed sea-ice model, and a data ocean model), and "B" compsets which have all active components. Below we -go into details on the "I" compsets which emphasize &clm; as the only active model, and just mention the two other categories. - - -When working with &clm; you usually want to start with a relevant "I" compset before moving to the more -complex cases that involve other active model components. The "I" compsets can exercise -&clm; in a way that -is similar to the coupled modes, but with much lower computational cost and faster turnaround times. - - -Compsets coupled to data atmosphere and stub ocean/sea-ice ("I" compsets) -&compsets_list; - - - - Compsets coupled to active atmosphere with data ocean - - CAM compsets are compsets that start with "E" or "F" in the name. They are - described more fully in the scripts documentation or the CAM documentation. "E" compsets have -a slab ocean model while "F" compsets have a data ocean model. - - - - -Fully coupled compsets with fully active ocean, sea-ice, and atmosphere - - Fully coupled compsets are compsets that start with "B" in the name. They are - described more fully in the scripts documentation. - - - - -Conclusion to choosing a compset - -We've introduced the basic type of compsets that use &clm; and given some further details -for the "standalone &clm;" (or "I" compsets). The - -config_compsets.xml lists all of the compsets and gives a full description -of each of them. In the next section we look into customizing the &configure; time options -for compsets using &clm;. - - - - - - - -Customizing the &clm; configuration - -The "Creating a Case" section of the -&cesm1; Scripts -User's-Guide -gives instructions on creating a case. What is of interest here is how to customize your -use of &clm; -for the case that you created. In this section we discuss how to customize your case before the first -step -- the "&configure; -case" step is done. In the next section we will discuss how to customize your -&clm; namelist after "&configure; -case" has already been done. - - -For &clm; when "&configure; -case" is called there are two steps that take place: - - -The &clm; "&configure;" script is called to setup the build-time -configuration for &clm; (more information on &configure; is given in -). -The &clm; "&buildnml;" script is called to generate the initial -run-time namelist for &clm; (more information on &buildnml; is given below in -. - - -When customizing your case at the &configure; step you are able to modify the process by effecting either one -or both of these steps. The &clm; "&configure;" and "&buildnml;" scripts are both available in the "models/lnd/clm/bld" -directory in the distribution. Both of these scripts have a "-help" option that is useful to examine to see what -types of options you can give either of them. - - -There are five different types of customization for the configuration that we will -discuss: &cesm1; &clm; configuration items, Configure time User Namelist, -other noteworthy &cesm; configuration items, the &clm; &configure; script options, and -the &clm; &buildnml; script options. - - -Information on all of the script, configuration, build and run items is found under -scripts/ccsm_utils/Case.template -in the -config_definition.xml - file. - - - -&clm; Script configuration items - -Below we list each of the &cesm; configuration items that are specific to &clm;. All -of these are available in your: &envconf; file. - - - - &CLMCONFIG; - &CLMBLDNML; - &CLMNAMELIST; - &CLMFORCECOLD; - &CLMUSECASE; - &CLM1PT; - &CLMUSRDAT; - &CLMCO2; - -For the precedence of the different options to &buildnml; see the section on -precedence below. - - -The first item &CLMCONFIG; has to do with customizing the &clm; configuration options for your case, the rest -all have to do with generating the initial namelist. - - - -&CLMCONFIG; - - -The option &CLMCONFIG; is all about passing command line arguments to the &clm; &configure; script. It is important -to note that some compsets, may already put a value into the &CLMCONFIG; variable. You can still add more -options to your &CLMCONFIG; but make sure you add to what is already there rather than replacing it. Hence, -we recommend using the "-append" option to the xmlchange script. In - -below we will go into more details on options that can be customized in the &clm; "&configure;" script. It's -also important to note that the &clm; template may already invoke certain &clm; &configure; options and as such those -command line options are NOT going to be available to change at this step (nor would you want to change them). -The options to &configure; are given with the "-help" option which is given in -. - - - - - -&CLMUSECASE; - - -&CLMUSECASE; is used to set a particular set of conditions that set multiple namelist items, all centering around -a particular usage of the model. -To list the valid options do the following: - - -> cd models/lnd/clm/doc -> ../bld/&buildnml; -use_case list - - -The output of the above command is: - - -&usecases_list; - - - -See the section for the precedence of this -option relative to the others. - - - - - - -&CLMBLDNML; - - -The option &CLMBLDNML; is for passing options to the &clm; "&buildnml;" script. As with the "&configure;" -script the &clm; template may already invoke certain options and as such those options will NOT be available to be -set here. The best way to see what options can be sent to the "&buildnml;" script is to do - - -> cd models/lnd/clm/bld -> ./&buildnml; -help - - -Here is the output from the above. - - -./&buildnml_help; - - -The &clm; template already sets the resolution and mask as well as the &configure; file, -the start-type, the co2_ppmv, rtm_tstep, and rtm_res, and defines an input -namelist and namelist input file, and it normally sets either "-ignore_ic_year" or -"-ignore_ic_date". Also many -of the options are designed solely for &clm; stand-alone testing and hence should NOT -be used (any of the options starting -with a "datm_" or "drv_" prefix. Hence there are then only five different options that could be set: - - - --lnd_res --sim_year --rcp --clm_demand --verbose - - - -"-lnd_res" is used to run &clm; in fine-mesh mode at a higher resolution than the atmospheric model. This can -be useful to get higher resolution from the land model, but saving computer time -by running the more expensive atmospheric model at a lower resolution. -To get a list of valid resolutions to run at do the following: - - -> cd models/lnd/clm/doc -> ../bld/&buildnml; -lnd_res list - - - -The fine-mesh mode is considered experimental, and you may run into problems when you use -it. Another option is to use the CESM level "tri-grid" capability to run the land model -on a different grid than the atmospheric model. Read the CESM User's-Guide to learn how -to do this. - - - - - -See the section for the precedence of this -option relative to the others. - - - - -"-clm_demand" asks the &buildnml; step to require that the list of variables -entered be set. Typically, this is used to require that optional filenames be used and ensure -they are set before continuing. For example, you may want to require that -flanduse_timeseries be set to get dynamically changing vegetation types. To do this -you would do the following. - -> ./xmlchange -file env_conf.xml -id &CLMBLDNML; -val "-clm_demand flanduse_timeseries" - -To see a list of valid variables that you could set do this: - -> cd models/lnd/clm/doc -> ../bld/&buildnml; -clm_demand list - - - - -Using a 20th-Century transient compset or the 20thC_transient use-case -using &CLMUSECASE; would set this as well, but would also use -dynamic nitrogen and aerosol deposition files, so using -clm_demand would be a way -to get just dynamic vegetation types and NOT the other files as well. - - - -"-sim_year" is used to set the simulation year you want the data-sets to simulate conditions for in the input -datasets. The simulation "year" can also be a range of years in order to do simulations -with changes in the dataset values as the simulation progresses. To list the valid -options do the following: - - -> cd models/lnd/clm/doc -> ../bld/&buildnml; -sim_year list - - -"-rcp" is used to set the representative concentration pathway for the future scenarios -you want the data-sets to simulate conditions for, in the input -datasets. To list the valid options do the following: - - -> cd models/lnd/clm/doc -> ../bld/&buildnml; -rcp list - - - - - -&CLMNAMELIST; - - -The option &CLMNAMELIST; is for passing namelist items into the "clm_inparm" namelist. -Any items that are set in &CLMNAMELIST; will be set in your namelist after "&configure; --case" is done. - - - -For character namelist items you need to use "&apos;" as quotes for strings so that the -scripts don't get confused with other quotes they use. - - - -Example, you want to set hist_dov2xy to .false. -so that you get vector output to your history files. To do so edit -&envconf; and add a setting for hist_dov2xy. -So do the following: - -> ./xmlchange -file env_conf.xml -id &CLMNAMELIST; -val hist_dov2xy=.false. - - - -Example, you want to set hist_fincl1 to add the variable 'HK' -to your history files. To do so edit -&envconf; and add a setting for hist_fincl1. -So do the following: - -> ./xmlchange -file env_conf.xml -id &CLMNAMELIST; -val "hist_fincl1=&apos;HK&apos;" - -For a list of the history fields available see -&clm; History Fields. - - - -See the section for the precedence of this -option relative to the others. - - - - - - -&CLMCO2; - - -&CLMCO2; sets the type of input &CO2; for either "constant", "diagnostic" or prognostic". -If "constant" the value from CCSM_CO2_PPMV will be used. If "diagnostic" -or "prognostic" the values MUST be sent from the atmosphere model. For more information on how -to send &CO2; from the data atmosphere model see . - - - - - -&CLMFORCECOLD; - - -&CLMFORCECOLD; when set to on, requires that -your simulation do a cold start from arbitrary initial conditions. If this is NOT set, it -will use an initial condition file if it can find an appropriate one, and otherwise do a cold -start. &CLMFORCECOLD; is a good way to ensure that you are doing a cold -start if that is what you want to do. - - - - - -&CLM1PT; - - -&CLM1PT; is used ONLY for a pt1_pt1 -resolution simulation to set the name of the single-point files to use. -To see a list of the valid resolutions do this: - -> cd models/lnd/clm/doc -> ../bld/&buildnml; -res list - - - -The output of the above command is: - - -&res_list; - - -the valid resolutions that can be used with &CLM1PT; are the ones that -have city or nation names such as: 5x5_amazon, 1x1_vancouverCAN 1x1_mexicocityMEX, or -1x1_brazil. The "1x1_" prefix means the file is for a single-point, while "5x5_" prefix means -it's for a region of five points in latitude by five points in longitude. Both regional -and single point datasets can be used for &CLM1PT;. If you create your own datasets -you can also use &CLM1PT; along with &CLMUSRDAT; (documented below), setting &CLM1PT; to -the value in &CLMUSRDAT; so that your datasets are used rather than the standard ones.o - - - - - -&CLMUSRDAT; - - -&CLMUSRDAT; provides a way to enter your own datasets into the initial -namelist setup at "&configure; -case". The files you create must be named with -specific naming conventions outlined in: . -To see what the expected names of the files are, use the -queryDefaultNamelist.pl to see -what the names will need to be. For example if your &CLMUSRDAT; will -be "1x1_boulderCO", with a "navy" land-mask, constant simulation year range, for 1850, -the following will list what your filenames should be: - -> cd models/lnd/clm/bld -> queryDefaultNamelist.pl -usrname "1x1_boulderCO" -options \ -mask=navy,sim_year=1850,sim_year_range="constant" -csmdata $CSMDATA - -An example of using &CLMUSRDAT; for a simulation is given in -. - - - -See the section for the precedence of this -option relative to the others. - - - - - - - - - -Configure time User Namelist - -&CLMNAMELIST; as described above allows you to set any -extra namelist items you would like to appear in your namelist after first &configure;d. -However, it only allows you a single line to enter namelist items, and strings must -be quoted with &apos; which is a bit awkward. If you have a long list of namelist -items you want to set (such as a long list of history fields) a convenient way to do it -is to create a &usernlclm; that contains just the list of namelist -variables you want to add to your initial namelist. The &usernlclm; -will only be used when &configure; is run, so if you change it after &configure; -- it won't -change anything. The file needs to be in valid FORTRAN namelist format, and the &configure; -step will abort if there are syntax errors. It merely needs to be named correctly -&usernlclm; and placed in your case directory (where your other -env_*.xml files are). The namelist name actually doesn't have to be -valid, but all the variable names must be. Here's an example &usernlclm; -namelist that sets a bunch of history file related items, to create output history files -monthly, daily, every six and 1 hours. - -Example &usernlclm; namelist file - -&clmexp - hist_fincl2 = 'TG','TBOT','FIRE','FIRA','FLDS','FSDS', - 'FSR','FSA','FGEV','FSH','FGR','TSOI', - 'ERRSOI','BUILDHEAT','SABV','SABG', - 'FSDSVD','FSDSND','FSDSVI','FSDSNI', - 'FSRVD','FSRND','FSRVI','FSRNI', - 'TSA','FCTR','FCEV','QBOT','RH2M','H2OSOI', - 'H2OSNO','SOILLIQ','SOILICE', - 'TSA_U', 'TSA_R', - 'TREFMNAV_U', 'TREFMNAV_R', - 'TREFMXAV_U', 'TREFMXAV_R', - 'TG_U', 'TG_R', - 'RH2M_U', 'RH2M_R', - 'QRUNOFF_U', 'QRUNOFF_R', - 'SoilAlpha_U', - 'Qanth', 'SWup', 'LWup', 'URBAN_AC', 'URBAN_HEAT' - hist_fincl3 = 'TG:I', 'FSA:I', 'SWup:I', 'URBAN_AC:I', 'URBAN_HEAT:I', - 'TG_U:I', 'TG_R:I', - hist_fincl4 = 'TG', 'FSA', 'SWup', 'URBAN_AC', 'URBAN_HEAT' - hist_mfilt = 1, 30, 28, 24 - hist_nhtfrq = 0, -24, -6, -1 -/ - - - - -See the section for the precedence of this -option relative to the others. - - - - -In the above example we use an invalid namelist name &clmexp -- but it works anyway -because the &clm; &buildnml; knows the namelist that specific variable names belong to, and -it puts them there. - - -Obviously, all of this would be difficult to put in the &CLMNAMELIST; -variable, especially having to put &apos; around all the character strings. For -more information on the namelist variables being set here and what they mean, see -the section on &clm; namelists below, as well as the namelist definition that gives -details on each variable. - - - - -Precedence of Options - -Note: The precedence for setting the values of namelist variables with the -different env_conf options is (highest to lowest): - -Namelist values set by specific command-line options, like, -d, -sim_year -(i.e. &CLMBLDNML; env_conf variable) -Values set on the command-line using the -namelist option, -(i.e. &CLMNAMELIST; env_conf variable) -Values read from the file specified by -infile, -(i.e. &usernlclm; file) -Datasets from the -clm_usr_name option, -(i.e. &CLMUSRDAT; env_conf variable) -Values set from a use-case scenario, e.g., -use_case -(i.e. &CLMUSECASE;env_conf variable) -Values from the namelist defaults file. - -Thus a setting in &CLMBLDNML; will override a setting for the same thing given in -a use case with &CLMUSECASE;. Likewise, a setting in &CLMNAMELIST; will override a -setting in &usernlclm;. - - - - -Setting Your Initial Conditions File - -Especially with &clmcn; starting from initial conditions is very important. Even -with &clmsp; it takes many simulation years to get the model fully spunup. There -are a couple different ways to provide an initial condition file. - - - - - - - - -Your initial condition file MUST agree with the surface dataset you are using -to run the simulation. If the two files do NOT agree you will get a -run-time about a mis-match in PFT weights, or in the number of PFT's or -columns. To get around this you'll need to use -to interpolate your initial condition dataset. - - - - - -Doing a hybrid simulation to provide initial conditions - -The first option is to setup a hybrid simulation and give a -RUN_REFCASE and RUN_REFDATE to specify the -reference case simulation name to use. -When you setup most cases, at the standard resolutions of "f09" or "f19" it -will already do this for you. For example, if you run an "I2000CN" compset -at "f09_g16" resolution the following settings will already be done for you. - -./xmlchange -file env_conf.xml -id RUN_TYPE -val hybrid -./xmlchange -file env_conf.xml -id RUN_REFCASE -val I2000CN_f09_g16_c100503 -./xmlchange -file env_conf.xml -id RUN_REFDATE -val 0001-01-01 -./xmlchange -file env_conf.xml -id GET_REFCASE -val TRUE - -Setting the GET_REFCASE option to TRUE means it -will copy the files from the: -$DIN_LOC_ROOT/ccsm4_init/I2000CN_f09_g16_c100503/0001-01-01 -directory. Note, that the RUN_REFCASE and -RUN_REFDATE variables are expanded to get the directory name -above. If you do NOT set GET_REFCASE to TRUE then -you will need to have placed the file in your run directory yourself. In either -case, the file is expected to be named: -$RUN_REFCASE.clm2.r.$RUN_REFDATE-00000.nc with the variables -expanded of course. - - - - -Doing a branch simulation to provide initial conditions - -The setup for running a branch simulation is essentially the same as for a hybrid. -With the exception of setting RUN_TYPE to branch -rather than hybrid. A branch simulation runs the case essentially -as restarting from it's place before to exactly reproduce it. While a hybrid simulation -allows you to change namelist items, and use a different code base that may have -fewer fields on it than a full restart file. The GET_REFCASE works -similarily for a branch case as for a hybrid. - - - - -Providing a finidat file in your &usernlclm; file - -Setting up a branch or hybrid simulation requires the initial condition file -to follow a standard naming convention, and a standard input directory if you -use the GET_REFCASE option. If you want to name your file willy -nilly and place it anywhere, you can set it in your &usernlclm; file as in this -example. - -&clm_inparm - finidat = '/glade/home/$USER/myinitdata/clmi_I1850CN_f09_g16_0182-01-01.c120329.nc' -/ - -Note, if you provide an initial condition file -- you can NOT set &CLMFORCECOLD; to -TRUE. - - - - -Adding a finidat file to the XML database - -Like other datasets, if you want to use a given initial condition file to -be used for all (or most of) your cases you'll want to put it in the XML -database so it will be used by default. The initial condition files, are -resolution dependent, and dependent on the number of PFT's and other variables -such as GLC_NEC or if irrigation is on or off. -See for more information on this. - - - - - -Other noteworthy configuration items - -For running "I" cases there are several other noteworthy configuration items that -you may want to work with. Most of these involve settings for the &datm;, but one -CCSM_CO2_PPMV applies to all models. If you are running an B, E, -or F case that doesn't use the &datm; obviously the DATM_* settings will not be used. -All of the settings below are in your &envconf; file - - CCSM_CO2_PPMV - CCSM_VOC - DATM_MODE - DATM_PRESAERO - DATM_CLMNCEP_YR_ALIGN - DATM_CLMNCEP_YR_START - DATM_CLMNCEP_YR_END - DATM_CPL_CASE - DATM_CPL_YR_ALIGN - DATM_CPL_YR_START - DATM_CPL_YR_END - - - - - -CCSM_CO2_PPMV - -CCSM_CO2_PPMV sets the mixing ratio of &CO2; in -parts per million by volume for ALL &cesm; components to use. Note that most compsets -already set this value to something reasonable. Also note that some compsets may -tell the atmosphere model to override this value with either historic or ramped -values. If the CCSM_BGC variable is set to something other than "none" -the atmosphere model will determine &CO2;, and &clm; will listen -and use what the atmosphere sends it. On the &clm; side the namelist item -co2_type tells &clm; to use the value sent from the atmosphere rather than -a value set on it's own namelist. - - - - -CCSM_VOC - -CCSM_VOC enables passing of the Volatile Organic Compounds (VOC) from -&clm; to the atmospheric model. This of course is only important if the atmosphere -model is a fully active model that can use these fields in it's chemistry calculations. - - - - -DATM_MODE - -DATM_MODE sets the mode that the &datm; model should run in this determines -how data is handled as well as what the source of the data will be. Many of the modes -are setup specifically to be used for ocean and/or sea-ice modeling. The modes -that are designed for use by &clm; are: - -&CLMQIAN; -CLM1PT -&CPLHIST; - - - -&CLMQIAN; is for the standard mode of using global atmospheric data -that was developed by Qian et. al. for &clm; using NCEP data from 1948 to 2004. -See for more information on -the &datm; settings for &CLMQIAN; mode. -CLM1PT is for the special cases where we have single-point tower -data for particular sites. Right now we only have data for three urban locations: -MexicoCity Mexico, Vancouver Canada, and the urban-c alpha site. -See for more information on -the &datm; settings for CLM1PT mode. -&CPLHIST; is for running with atmospheric forcing from a previous &cesm; simulation. -See for more information on -the &datm; settings for &CPLHIST; mode. - - -There is a problem with running simulations for the CLM1PT mode -that are greater than one data cycle, where the atm forcing will be held constant. -This will result in useless -results as all atmosphere forcing fields will be held constant at the last value. -See bug 1377 in the &KnownBugs; file on how to fix this problem. - - - - - - - -DATM_PRESAERO - -DATM_PRESAERO sets the prescribed aerosol mode for the data atmosphere -model. The list of valid options include: - -clim_1850 = constant year 1850 conditions -clim_2000 = constant year 2000 conditions -trans_1850-2000 = transient 1850 to year 2000 conditions -rcp2.6 = transient conditions for the rcp=2.6 -W/m2 future -scenario -rcp4.5 = transient conditions for the rcp=4.5 -W/m2 future -scenario -rcp6.0 = transient conditions for the rcp=6.0 -W/m2 future -scenario -rcp8.5 = transient conditions for the rcp=8.5 -W/m2 future -scenario -pt1_pt1 = read in single-point or regional datasets - - - - - -DATM_CLMNCEP_YR_START - -DATM_CLMNCEP_YR_START sets the beginning year to cycle the atmospheric -data over for the &CLMQIAN; mode. - - - - -DATM_CLMNCEP_YR_END - -DATM_CLMNCEP_YR_END sets the ending year to cycle the atmospheric -data over for the &CLMQIAN; mode. - - - - -DATM_CLMNCEP_YR_ALIGN - -DATM_CLMNCEP_YR_START and DATM_CLMNCEP_YR_END determine -the range of years to cycle the atmospheric data over, and DATM_CLMNCEP_YR_ALIGN -determines which year in that range of years the simulation will start with. - - - - -DATM_CPL_CASE - -DATM_CPL_CASE sets the casename to use for the &CPLHIST; mode. - - - - -DATM_CPL_YR_START - -DATM_CPL_YR_START sets the beginning year to cycle the atmospheric -data over for the &CPLHIST; mode. - - - - -DATM_CPL_YR_END - -DATM_CPL_YR_END sets the ending year to cycle the atmospheric -data over for the &CPLHIST; mode. - - - - -DATM_CPL_YR_ALIGN - -DATM_CPL_YR_START and DATM_CPL_YR_END determine -the range of years to cycle the atmospheric data over, and DATM_CPL_YR_ALIGN -determines which year in that range of years the simulation will start with. - - - - - - - - -Downloading DATM Forcing Data - -In Chapter One of the -&cesm; User's Guide -there is a section on "Downloading input data". The normal process of setting up -cases will use the "scripts/ccsm_utils/Tools/check_input_data" script to retrieve -data from the &cesm; subversion inputdata repository. However, the DATM forcing data -is unique -- because it is large compared to the rest of the input data (56 Gbytes). Most of the -data is stored in the directory set by the &envrun; variable -DIN_LOC_ROOT_CSMDATA. The &CLMQIAN; forcing data is in a (possibly) -separate directory using the &envrun; variable DIN_LOC_ROOT_CLMQIAN. -In most cases this directory will be in the directory: -atm/datm7/atm_forcing.datm7.Qian.T62.c080727 under -DIN_LOC_ROOT_CSMDATA. On bluefire there is a separate path for -the &CLMQIAN; forcing data. We have the full set of data available on a few of -the machines we use: bluefire, jaguarpf, and edinburgh. As of October, 18th, 2011 -we've uploaded the entire set of forcing data into the input data repository so -now it can be treated like other input datasets and the check_input_data script -can retreive it for you. Previously only two years of data was available. -You can also download the data from the -Earth System Grid for other machines. See the -Model Forcing Data -link under the -&clm; Documentation Page - - - - -Customizing via the template files - -The final thing that the user may wish to do before &configure; is run is to edit -the template files which determine the configuration and initial namelist. The -variables in &envconf; typically mean you will NOT have -to edit the template. But, there are rare instances where it is useful to do so. - gives the details on how to do this. -The template files are copied to your case directory and are available under -Tools/Templates. -The list of template files you might wish to edit are: - - clm.cpl7.template - datm.cpl7.template - cpl.template - - - - - - -More information on the &clm; &configure; script - -The &configure; script defines the details of a clm configuration and summarizes it into a -config_cache.xml file. The config_cache.xml -will be placed in your case directory under Buildconf/clmconf. -The config_definition.xml -in models/lnd/clm/bld/config_files -gives a definition of each &clm; configuration item, it is viewable in a web-browser. -Many of these items are things that you would NOT change, but looking through the -list gives you the valid options, and a good description of each. Below we repeat -the config_definition.xml files contents: - - - - - -Help on &clm; &configure; - -Coupling this with looking at the options to &configure; with -"-help" as below will enable you to understand how to set the different options. - -> cd models/lnd/clm/bld -> &configure; -help - - - -The output to the above command is as follows: - - -&config_help; - - -We've given details on how to use the options in &envconf; to -interact with the &clm; "&configure;" and "&buildnml;" scripts, as well as giving a good -understanding of how these scripts work and the options to them. In the next section we -give further details on the &clm; namelist. You could customize the namelist for these -options after "&configure; -case" is run. - - - - - - - - - - Customizing the &clm; namelist - -Once a case is &configure;d, we can then customize the case further, by editing the -run-time namelist for &clm;. First let's list the definition of each namelist -item and their valid values, and then we'll list the default values for them. -Next for some of the most used or tricky namelist items we'll give examples of their -use, and give you example namelists that highlight these features. - - - - -Definition of Namelist items and their default values - -Here we point to you where you can find the definition of each namelist item and -separately the default values for them. The default values may change depending on -the resolution, land-mask, simulation-year and other attributes. Both of these -files are viewable in your web browser. Below we provide the link for them, and -then expand each in turn. - - - -Definition of each Namelist Item - - -Default values of each -&clm; Namelist Item - - - -One set of the namelist items allows you to add fields to the output history files: -hist_fincl1, hist_fincl2, -hist_fincl3, hist_fincl4, -hist_fincl5, and hist_fincl6. The link -&clm; History Fields -documents all of the history fields available and gives the long-name and units -for each. - - - - - -&hisfldtbl; - - - - - - - -Examples of using different namelist features - -Below we will give examples of user namelists that activate different commonly used -namelist features. We will discuss the namelist features in different examples and then -show a user namelist that includes an example of the use of these features. First we -will show the default namelist that doesn't activate any user options. - - - -The default namelist - -Here we give the default namelist as it would be created for a I1850CN compset at 0.9x1.25 -resolution with a gx1v6 land-mask. To edit the namelist you would edit the -BuildConf/clm.buildnml.csh under your case (or before &configure; -include a user namelist with just the items you want to change). For simplicity we will -just show the namelist and NOT the entire file. In the sections below, for simplicity - we will just show the user namelist (&usernlclm;) that will add (or modify existing) -namelist items to the namelist. Again, just adding the &usernlclm; file to your case -directory, before "&configure; -case" is invoked will cause the given namelist items to -appear in your &clm; namelist. - -Default &clm; Namelist - -&clm_inparm - co2_ppmv = 284.7 - co2_type = 'constant' - create_crop_landunit = .false. - dtime = 1800 - fatmgrid = '$DIN_LOC_ROOT/lnd/clm2/griddata/griddata_0.9x1.25_070212.nc' - fatmlndfrc = -'$DIN_LOC_ROOT/lnd/clm2/griddata/fracdata_0.9x1.25_gx1v6_c090317.nc' - finidat = 'I1850CN_f09_g16_c100503.clm2.r.0001-01-01-00000.nc' - fpftcon = '$DIN_LOC_ROOT/lnd/clm2/pftdata/pft-physiology.c110425.nc' - frivinp_rtm = '$DIN_LOC_ROOT/lnd/clm2/rtmdata/rdirc_0.5x0.5_simyr2000_slpmxvl_c120717.nc' - fsnowaging = -'$DIN_LOC_ROOT/lnd/clm2/snicardata/snicar_drdt_bst_fit_60_c070416.nc' - fsnowoptics = -'$DIN_LOC_ROOT/lnd/clm2/snicardata/snicar_optics_5bnd_c090915.nc' - fsurdat = -'$DIN_LOC_ROOT/lnd/clm2/surfdata/surfdata_0.9x1.25_simyr1850_c091006.nc' - ice_runoff = .true. - outnc_large_files = .true. - rtm_nsteps = 6 - urban_hac = 'ON_WASTEHEAT' - urban_traffic = .false. -/ -&ndepdyn_nml - stream_fldfilename_ndep = -'$DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_hist_simyr1849-2006_1.9x2.5_c100428.nc' - stream_year_first_ndep = 1850 - stream_year_last_ndep = 1850 -/ - - -Note that the namelist introduces some of the history namelist options that will be -talked about in further detail below (hist_mfilt and -hist_nhtfrq). - - - - -Adding/removing fields on your primary history file - -The primary history files are output monthly, and contain an extensive list of -fieldnames, but the list of fieldnames can be added to using hist_fincl1 -or removed from by adding fieldnames to hist_fexcl1. -A sample user namelist &usernlclm; adding few new fields -(cosine of solar zenith angle, and solar declination) and excluding a few -standard fields is (ground temperature, vegetation temperature, soil temperature and soil water).: - -Example &usernlclm; namelist adding and removing fields on primary history file - -&clm_inparm - hist_fincl1 = 'COSZEN', 'DECL' - hist_fexcl1 = 'TG', 'TV', 'TSOI', 'H2OSOI' -/ - - - - - - -Adding auxiliary history files and changing output -frequency - -The hist_fincl2 through hist_fincl6 set of -namelist variables add given history fieldnames to auxiliary history file "streams", and -hist_fexcl2 through hist_fexcl6 set of -namelist variables remove given history fieldnames from history file auxiliary "streams". -A history "stream" is a set of history files that are produced at a given frequency. -By default there is only one stream of monthly data files. To add more streams you -add history fieldnames to hist_fincl2 through -hist_fincl6. The output frequency and the way averaging is done -can be different for each history file stream. By default the primary history files -are monthly and any others are daily. You can have up to six active history streams, but you need -to activate them in order. So if you activate stream "6" by setting -hist_fincl6, but if any of hist_fincl2 through -hist_fincl5 are unset, only the history streams up to the first blank one -will be activated. - - -The frequency of the history file streams is given by the namelist variable -hist_nhtfrq which is an array of rank six for each history stream. -The values of the array hist_nhtfrq must be integers, where the -following values have the given meaning: - -Positive value means the output frequency is the number of -model steps between output. - -Negative value means the output frequency is the absolute -value in hours given (i.e -1 would mean an hour and -24 would mean a full day). Daily -(-24) is the default value for all auxiliary files. - -Zero means the output frequency is monthly. This is the -default for the primary history files. - - - - -The number of samples on each history file stream is given by the namelist variable -hist_mfilt which is an array of rank six for each history stream. -The values of the array hist_mfilt must be positive integers. By -default the primary history file stream has one time sample on it (i.e. output is -to separate monthly files), and all other streams have thirty time samples on them. - - -A sample user namelist &usernlclm; turning on four extra file -streams for output: daily, six-hourly, hourly, and every time-step, -leaving the primary history files as monthly, and changing the number -of samples on the streams to: yearly (12), thirty, weekly (28), daily (24), and daily -(48) is: - -Example &usernlclm; namelist adding auxiliary history files and changing output frequency - -&clm_inparm - hist_fincl2 = 'TG', 'TV' - hist_fincl3 = 'TG', 'TV' - hist_fincl4 = 'TG', 'TV' - hist_fincl5 = 'TG', 'TV' - hist_nhtfrq = 0, -24, -6, -1, 1 - hist_mfilt = 12, 30, 28, 24, 48 -/ - - - - - - -Removing all history fields - -Sometimes for various reasons you want to remove all the history fields either -because you want to do testing without any output, or you only want a very small -custom list of output fields rather than the default extensive list of fields. -By default only the primary history files are active, so technically using -hist_fexcl1 explained in the first example, you could list -ALL of the history fields that are output in -hist_fexcl1 and then you wouldn't get any output. However, as -the list is very extensive this would be a cumbersome thing to do. So to facilitate -this hist_empty_htapes allows you to turn off all default output. -You can still use hist_fincl1 to turn your own list of fields -on, but you then start from a clean slate. -A sample user namelist &usernlclm; turning off all history -fields and then activating just a few selected fields (ground and vegetation temperatures -and absorbed solar radiation) is: - -Example &usernlclm; namelist removing all history fields - -&clm_inparm - hist_empty_htapes = .true. - hist_fincl1 = 'TG', 'TV', 'FSA' -/ - - -Note, you could also build adding the "-noio" option to &CLMCONFIG;. But, this would -build the model without history output and you wouldn't be able to add that in later. - - - - -Various ways to change history output averaging flags - -There are two ways to change the averaging of output history fields. The first is using -hist_avgflag_pertape which gives a default value for each history -stream, the second is when you add fields using hist_fincl*, you add -an averaging flag to the end of the field name after a colon (for example 'TSOI:X', would -output the maximum of TSOI). -The types of averaging that can be done are: - -A Average, over the output interval. -I Instantaneous, output the value at the output interval. -X Maximum, over the output interval. -M Minimum, over the output interval. - - -The default averaging depends on the specific fields, but for most fields is an average. -A sample user namelist &usernlclm; making the monthly output -fields all averages (except TSOI for the first two streams and FIRE for the 5th stream), -and adding auxiliary file streams for instantaneous (6-hourly), -maximum (daily), minimum (daily), and average (daily). For some of the fields we -diverge from the per-tape value given and customize to some different type of -optimization. - -Example &usernlclm; namelist with various ways to average history fields - -&clm_inparm - hist_empty_htapes = .true. - hist_fincl1 = 'TSOI:X', 'TG', 'TV', 'FIRE', 'FSR', 'FSH', - 'EFLX_LH_TOT', 'WT' - hist_fincl2 = 'TSOI:X', 'TG', 'TV', 'FIRE', 'FSR', 'FSH', - 'EFLX_LH_TOT', 'WT' - hist_fincl3 = 'TSOI', 'TG:I', 'TV', 'FIRE', 'FSR', 'FSH', - 'EFLX_LH_TOT', 'WT' - hist_fincl4 = 'TSOI', 'TG', 'TV:I', 'FIRE', 'FSR', 'FSH', - 'EFLX_LH_TOT', 'WT' - hist_fincl5 = 'TSOI', 'TG', 'TV', 'FIRE:I', 'FSR', 'FSH', - 'EFLX_LH_TOT', 'WT' - hist_avgflag_pertape = 'A', 'I', 'X', 'M', 'A' - hist_nhtfrq = 0, -6, -24, -24, -24 -/ - - - - - -In the example we put the same list of fields on each of the tapes: soil-temperature, -ground temperature, vegetation temperature, emitted longwave radiation, reflected -solar radiation, sensible heat, total latent-heat, and total water storage. We also -modify the soil-temperature for the primary and secondary auxiliary tapes by outputting -them for a maximum instead of the prescribed per-tape of average and instantaneous -respectively. For the tertiary auxiliary tape we output ground temperature instantaneous -instead of as a maximum, and for the fourth auxiliary tape we output vegetation -temperature instantaneous instead of as a minimum. Finally, for the fifth auxiliary -tapes we output FIRE instantaneously instead of as an average. - - - - -We also use hist_empty_htapes as in the previous example, -so we can list ONLY the fields that we want on the primary history tapes. - - - - - -Outputting history files as a vector in order to analyze -the plant function types within gridcells - -By default the output to history files are the grid-cell average of all land-units, and -vegetation types within that grid-cell, and output is on the -full 2D latitude/longitude grid with ocean masked out. Sometimes it's important to -understand how different land-units or vegetation types are acting within a grid-cell. -The way to do this is to output history files as a 1D-vector of all land-units and vegetation -types. In order to display this, you'll need to do extensive post-processing to make sense -of the output. Often you may only be interested in a few points, so once you figure out the -1D indices for the grid-cells of interest, you can easily view that data. 1D vector output -can also be useful for single point datasets, since it's then obvious that all data is for the -same grid cell. - - -To do this you use hist_dov2xy which is an array of rank six for -each history stream. Set it to -.false. if you want one of the history streams to be a 1D vector. -You can also use hist_type1d_pertape if you want to average over all the: -Plant-Function-Types, columns, land-units, or grid-cells. -A sample user namelist &usernlclm; leaving the primary monthly -files as 2D, and then doing grid-cell (GRID), column (COLS), -and no averaging over auxiliary tapes output daily for a single field -(ground temperature) is: - -Example &usernlclm; namelist outputting some files in 1D Vector format - -&clm_inparm - hist_fincl2 = 'TG' - hist_fincl3 = 'TG' - hist_fincl4 = 'TG' - hist_fincl5 = 'TG' - hist_fincl6 = 'TG' - hist_dov2xy = .true., .false., .false., .false. - hist_type2d_pertape = ' ', 'GRID', 'COLS', ' ' - hist_nhtfrq = 0, -24, -24, -24 -/ - - - - -LAND and COLS are also options to the pertape averaging, but currently there is a bug -with them and they fail to work. - - - - - -Technically the default for hist_nhtfrq is for primary files -output monthly and the other auxiliary tapes for daily, so we don't actually have -to include hist_nhtfrq, we could use the default for it. Here -we specify it for clarity. - - - - -Visualizing global 1D vector files will take effort. You'll probably want -to do some post-processing and possibly just extract out single points of interest -to see what is going on. Since, the output is a 1D vector, of only land-points -traditional plots won't be helpful. The number of points per grid-cell will also -vary for anything, but grid-cell averaging. You'll need to use the output fields -pfts1d_ixy, and pfts1d_jxy, to get the mapping -of the fields to the global 2D array. pfts1d_itype_veg gives you -the PFT number for each PFT. Most likely you'll want to do this analysis in a -data processing tool (such as NCL, Matlab, Mathmatica, IDL, etcetera that is able -to read and process &netcdf; data files). - - - - - -Outputting multi-layer snow history fields - -A number of history fields provide information about individual snow layers: -SNO_ABS, SNO_T, SNO_GS, -SNO_Z, SNO_LIQH2O, -SNO_ICE, SNO_TK, and -SNO_BW; there is also an auxiliary field to aid -interpretation: SNO_EXISTENCE (described below). These fields -are inactive by default, but can be enabled like other history fields. If the -maximum number of snow layers is 5 (for example), then the layers of these -fields are arranged on the history file so that layer 1 is at the top of the -snow pack, and layer 5 only exists if the snow is deep enough to support all -layers. - - -Because snow layers can come into and out of existence, these fields can be -challenging to interpret. It is easiest to analyze these fields if you do output -every time step, and do not average to the grid cell (i.e., dov2xy = -.false.). Otherwise, a few principles should be kept in mind when -working with these fields: - -Temporal averages are taken only over times when a given snow layer exists -Grid cell averages are taken only over columns in which a given snow layer exists -SNO_EXISTENCE gives the fraction of the averaging -period in which a given snow layer existed. For grid cell averages, this gives -the weighted spatial fraction of the columns in which a snow layer existed for -this averaging period. This is most useful for subsetting grid cells for -analysis. For example, grid cells that have SNO_EXISTENCE = 1 -for all snow layers can be analyzed most easily. - - - -Here is a simple example illustrating this averaging; this considers a given -snow layer, L: - - -Assume a grid cell with 2 columns, with averaging done over 4 time steps. Column -#1 has subgrid weight 0.2, and no snow in layer L in any time -step. Column #2 has subgrid weight 0.8, and has snow in layer -L in time steps 3 and 4; the snow field of interest has -values 1.0 and 2.0 in these two time steps, for this layer. - - -SNO_EXISTENCE is then 0.8*(2/4) = 0.4. The snow field's value -would be 1.5 (note that times and columns with no snow in this layer are simply -ignored). - - -Finally, note that the SNOABS field is not computed for urban -columns, so it will have a missing value if snow only exists over urban columns -for a given snow layer. - - - - -Conclusion to namelist examples - -We've given various examples of namelists that feature the use of different namelist options -to customize a case for particular uses. Most the examples revolve around how to customize the -output history fields. This should give you a good basis for setting up your own &clm; namelist. - - - - - - - - - -Customizing the &datm; Namelist and Streams files - -When running "I" compsets with &clm; you use the &datm; model to give atmospheric -forcing data to &clm;. There are four ways to customize &datm;: - - -&datm; Main Namelist (datm_in) - - -&datm; Stream Namelist (datm_atm_in) - - -&datm; stream files - - -&datm; template file -(Tools/Templates.datm.cpl7.template) - - -The -Data Model Documentation gives the details of all the options for the data -models and for &datm; specifically. It goes into detail on all namelist items both for -&datm; -and for &datm; streams. It shows examples of stream files and talks about their use. In - we talk about editing the CLM and &datm; -template files. So here we won't talk about the &datm; template file, and we won't list -ALL of the &datm; namelist options, nor go into great details about stream files. But, -we will talk about a few of the different options that are relevant for running with -&clm;. All of the options for changing the namelists or stream files is done by editing -the Buildconf/datm.buildnml.csh file. - - -Because, they aren't useful for work with &clm; we will NOT discuss any of the options -for the main &datm; namelist. Use the &datm; Users Guide at the link above to find -details of that. For the streams namelist we will discuss three items: - - -mapalgo - - -taxmode - - -tintalgo - - -And for the streams file itself we will discuss: - - offset - -Again everything else (and including the above items) are discussed in the Data Model -User's Guide. Of the above the last three: offset, taxmode and tintalgo are all closely -related and have to do with the time interpolation of the &datm; data. - - - - -mapalgo - -mapalgo sets the spatial interpolation method to go from the -&datm; input data to the output &datm; model grid. The default is -bilinear. For CLM1PT we set it to nn to just -select the nearest neighbor. This saves time and we also had problems running the -interpolation for single-point mode. - - - - -taxmode - -taxmode is the time axis mode. For &clm; we usually have it -set to cycle which means that once the end of the data is reached -it will start over at the beginning. The extend modes is used -have it use the last time-step of the forcing data once it reaches the end of forcing -data (or use the first time-step before it reaches where the forcing data starts). -See the warning below about the extend mode. - - -THE extend OPTION NEEDS TO BE USED WITH CAUTION! -It is only invoked by default for the CLM1PT mode and is only intended for the -supported urban datasets to extend the data for a single time-step. If you have the -model run extensively through periods in this mode you will effectively -be repeating that last time-step over that entire period. This means the -output of your simulation will be worthless. See bug 1377 in the &KnownBugs; file for -more information on this issue. - - - - - - -offset (in the stream file) - -offset is the time offset in seconds to give to each stream -of data. Normally it is NOT used because the time-stamps for data is set correctly -for each stream of data. Note, the offset may NEED to be -adjusted depending on the taxmode described above, or it may -need to be adjusted to account for data that is time-stamped at the END of an -interval rather than the middle or beginning of interval. The -offset can is set in the stream file rather than on the -stream namelist. For data with a taxmode method of -coszen the time-stamp needs to be for the beginning of the interval, -while for other data it should be the midpoint. The offset can be -used to adjust the time-stamps to get the data to line up correctly. - - - - -tintalgo - -tintalgo is the time interpolation algorithm. For &clm; we usually -use one of three modes: coszen, nearest, or -linear. We use coszen for solar data, -nearest for precipitation data, and linear -for everything else. If your data is half-hourly or hourly, nearest -will work fine for everything. The coszen scaling is useful for -longer periods (three hours or more) to try to get the solar to match the cosine of -the solar zenith angle over that longer period of time. If you use -linear for longer intervals, the solar will cut out at night-time -anyway, and the straight line will be a poor approximation of the cosine of the -solar zenith angle of actual solar data. nearest likewise would -be bad for longer periods where it would be much higher than the actual values. - - -For coszen the time-stamps of the data should correspond to the -beginning of the interval the data is measured for. Either make sure the time-stamps -on the datafiles is set this way, or use the offset described above -to set it. - - - - -For nearest and linear the time-stamps of the -data should correspond to the middle of the interval the data is measured for. Either -make sure the time-stamps on the datafiles is set this way, or use the -offset described above to set it. - - - - - - -In the sections below we go over each of the relevant DATM_MODE -options and what the above &datm; settings are for each. This gives you examples -of actual usage for the settings. We also describe in what ways you might want -to customize them for your own case. - - - -&CLMQIAN; mode and it's &datm; settings - -In &CLMQIAN; mode the Qian dataset is used which has 6-hourly -solar and precipitation data, and 3-hourly for everything else. -The dataset is divided into those three data streams: solar, precipitation, -and everything else (temperature, pressure, humidity and wind). The time-stamps -of the data were also adjusted so that they are the beginning of the interval -for solar, and the middle for the other two. Because, of this the -offset is set to zero, and the tintalgo -is: coszen, nearest, and -linear for the solar, precipitation and other data -respectively. taxmode is set to cycle -and mapalgo is set to bilinear so that -the data is spatially interpolated from the input T62 grid to the grid the atmosphere -model is being run at. - - -Normally you wouldn't customize the &CLMQIAN; settings, but you might replicate -it's use for your own global data that had similar temporal characteristics. - - - - -CLM1PT mode and it's &datm; settings - -In CLM1PT mode the model is assumed to have half-hourly or hourly data -for a single-point. For the supported datasets that is exactly what it has. -But, if you add your own data you may need to make adjustments accordingly. -Using the &CLMUSRDAT; option you can easily extend this mode for your own -datasets that may be regional or even global and could be at different temporal -frequencies. If you do so you'll need to make adjustments to your &datm; settings. -The dataset has all data in a single stream file. The time-stamps -of the data were also adjusted so that they are at the middle of the interval. -Because, of this the offset is set to zero, and the -tintalgo is set to nearest. -taxmode is set to extend -and mapalgo is set to nn so that -simply the nearest point is used. - - -If you are using your own data for this mode and it's not at least hourly -you'll want to adjust the &datm; settings for it. If the data is three or -six hourly, you'll need to divide it up into separate streams like in -&CLMQIAN; mode which will require fairly extensive changes to the &datm; -namelist and streams files. For an example of doing this see -. - - - - -&CPLHIST; mode and it's &datm; settings - -In &CPLHIST; mode the model is assumed to have 3-hourly for a global grid from -a previous &cesm; simulation. Like &CLMQIAN; mode the data is divided into -three streams: one for precipitation, one for solar, and one for everything else. -The time-stamps for Coupler history files for &cesm; is at the end of the interval, -so the offset needs to be set in order to adjust the time-stamps to what it needs -to be for the tintalgo settings. For precipitation -taxmode is set to nearest so the -offset is set to -5400 seconds so that -the ending time-step is adjusted by an hour and half to the middle of the interval. -For solar taxmode is set to coszen so the -offset is set to -10800 seconds so that -the ending time-step is adjust by three hours to the beginning of the interval. -For everything else taxmode is set to -linear so the offset is set to --5400 seconds so that the ending time-step is adjusted by an -hour and half to the middle of the interval. - - -Normally you wouldn't modify the &datm; settings for this mode. However, if you -had data at a different frequency than 3-hours you would need to modify the -offset and possibly the taxmode. The other -two things that you might modify would be the path to the data (which you can -change in the &datm; template see ) or -the domain file for the resolution (which is currently hardwired to f09). For -data at a different input resolution you would need to change the domain file -in the streams file to use a domain file to the resolution that the data comes in -on. - - - - - - - -Conclusion to customizing chapter - -We've given extensive details on customizing cases with &clm;, by choosing compsets, by changing -&configure; options and interacting with the &clm; "&configure;" and "&buildnml;" scripts, -we've given details on all of the &clm; namelist items, and finally given some -instruction in customizing the &datm; namelist and streams files. In the next chapter we talk -about further ways to customize cases with &clm; by creating your own datasets using the tools -provided in &clm;. - - - - diff --git a/doc/UsersGuide/get_Icaselist.pl b/doc/UsersGuide/get_Icaselist.pl deleted file mode 100755 index 6aefc26159..0000000000 --- a/doc/UsersGuide/get_Icaselist.pl +++ /dev/null @@ -1,136 +0,0 @@ -#!/usr/bin/env perl -#----------------------------------------------------------------------------------------------- -# -# get_Icaselist.pl -# -# This utility gets a list of the I cases from the CCSM compset database. -# -#----------------------------------------------------------------------------------------------- - -use strict; -use Cwd; -use English; -use Getopt::Long; -use IO::File; -use IO::Handle; -#----------------------------------------------------------------------------------------------- - -sub usage { - die <autoflush(); - -#----------------------------------------------------------------------------------------------- -my $cwd = getcwd(); # current working directory -my $cfgdir; # absolute pathname of directory that contains this script -$cfgdir = $cwd; - -#----------------------------------------------------------------------------------------------- -# Parse command-line options. -my %opts = ( - ); -GetOptions( - "h|help" => \$opts{'help'}, -) or usage(); - -# Give usage message. -usage() if $opts{'help'}; - -# Check for unparsed argumentss -if (@ARGV) { - print "ERROR: unrecognized arguments: @ARGV\n"; - usage(); -} - -# Check for manditory case input if not just listing valid values - -my %cfg = (); # build configuration - -#----------------------------------------------------------------------------------------------- - -# Check for the configuration definition file. -my $config_def_file = "config_definition.xml"; -my $case_def_dir = "$cfgdir/../../../../../scripts/ccsm_utils/Case.template"; -(-f "$case_def_dir/$config_def_file") or die <<"EOF"; -** Cannot find configuration definition file \"$config_def_file\" in directory - \"$case_def_dir\" ** -EOF - -# Compset definition file. -my $compset_file = 'config_compsets.xml'; -(-f "$case_def_dir/$compset_file") or die <<"EOF"; -** Cannot find compset parameters file \"$compset_file\" in directory - \"$case_def_dir\" ** -EOF - -my $xml_dir = "$cfgdir/../../../../../scripts/ccsm_utils/Tools/perl5lib"; -# The XML::Lite module is required to parse the XML configuration files. -(-f "$xml_dir/XML/Lite.pm") or die <<"EOF"; -** Cannot find perl module \"XML/Lite.pm\" in directory - \"$xml_dir\" ** -EOF - - -#----------------------------------------------------------------------------------------------- -my @dirs = ( $cfgdir, $xml_dir, $case_def_dir ); -unshift @INC, @dirs; -require XML::Lite; -require ConfigCase; - -#----------------------------------------------------------------------------------------------- -my $cfg_ref = ConfigCase->new("$case_def_dir/$config_def_file"); -print_compsets( "$case_def_dir/$compset_file" ); - -#----------------------------------------------------------------------------------------------- -# FINNISHED #################################################################################### -#----------------------------------------------------------------------------------------------- - -#------------------------------------------------------------------------------- - -sub print_compsets -{ - # Print all currently supported valid compsets - - my ($compset_file) = @_; - my $xml = XML::Lite->new( $compset_file ); - my $root = $xml->root_element(); - - # Check for valid root node - my $name = $root->get_name(); - $name eq "config_compset" or die - "file $compset_file is not a compset parameters file\n"; - - # Read the compset parameters from $compset_file. - my @e = $xml->elements_by_name( "compset" ); - my %a = (); - my %data; - while ( my $e = shift @e ) { - %a = $e->get_attributes(); - my $sname = $a{'SHORTNAME'}; - if ($a{GRID_MATCH} && exists($data{$sname}) && defined($data{$sname}{'DESC'} && defined($a{'DESC'}) ) ) { - if ( $data{$sname}{'DESC'} =~ /^INVALID:/ ) { - $data{$sname}{'DESC'} = $a{'DESC'}; - } - } elsif ( $a{'SHORTNAME'} =~ /^I/ ) { - $data{$sname}{'NAME'} = $a{'NAME'}; - $data{$sname}{'DESC'} = $a{'DESC'}; - } - } - print "\n"; - foreach my $sname ( sort(keys(%data)) ) { - print "$data{$sname}{'NAME'}" . - "($sname)\n"; - print "$data{$sname}{'DESC'}\n"; - } - print "\n"; -} - diff --git a/doc/UsersGuide/limitLineLen.pl b/doc/UsersGuide/limitLineLen.pl deleted file mode 100755 index 25f1216d06..0000000000 --- a/doc/UsersGuide/limitLineLen.pl +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env perl -# -# Limit the line length for output designed to go into the document. -# -use strict; -use Cwd; -use English; -use IO::File; -use Getopt::Long; -use IO::Handle; -#----------------------------------------------------------------------------------------------- - -# Get the directory name and filename of this script. If the command was -# issued using a relative or absolute path, that path is in $ProgDir. Otherwise assume the -# command was issued from the current working directory. - -(my $ProgName = $0) =~ s!(.*)/!!; # name of this script -my $ProgDir = $1; # name of directory containing this script -- may be a - # relative or absolute path, or null if the script - # is in - # the user's PATH -my $nm = "$ProgName::"; # name to use if script dies -my $scrdir; -if ($ProgDir) { - $scrdir = $ProgDir; -} else { - $scrdir = getcwd() -} -my $limitLen = 99; - -sub usage { - my $msg = shift; - - print "ERROR:: $msg\n"; - die < -OPTIONS - -l = Limit line length to this value (default $limitLen) -EOF -} - -sub LengthofwhiteSpaceNearLength { - my $line = shift; - my $leng = shift; - - my $l = $leng; - while( substr( $line, $l, 1 ) !~ /\s|:|,|\// ) { - # First search for white-space before desired length -- and then after - if ( $l <= $leng ) { - $l--; - } else { - $l++; - } - # Once reach beginning of line, go to the desired length+1 and increment - if ( $l < 0 ) { $l = $leng+1; } - # Once reach the very end of the line die as couldn't break it - if ( $l >= length($line) ) { - die "ERROR : went through entire line and did NOT find a place to break it\n"; - } - } - return( $l ); -} - -my %opts = ( limitLen => $limitLen ); - -GetOptions( - "l=s" => \$opts{'limitLen'}, -) or usage(); - -if ( $#ARGV != 0 ) { - &usage( "Wrong number of command line arguments" ); -} - -$limitLen = $opts{'limitLen'}; - -my $inputFile = $ARGV[0]; - -if ( ! -f $inputFile ) { - &usage( "Input file does NOT exist : $inputFile" ); -} - -my $fh = IO::File->new($inputFile, '<') or die "** $nm - can't open input file: $inputFile\n"; - -while (my $line = <$fh>) { - - while( length($line) > $limitLen ) { - print STDERR "Line length over $limitLen\n"; - my $lenlim = &LengthofwhiteSpaceNearLength( $line, $limitLen ); - if ( ($lenlim == length($line)) || $lenlim < 0 ) { - print "Can NOT truncate long line: $line\n"; - die "ERROR : Having trouble breaking a long line\n"; - } - my $substring = substr( $line, 0, $lenlim+1 ); - print "$substring \\ \n"; - my $newline = " " . substr( $line, $lenlim+1, length($line) ); - $line = $newline; - } - print $line; - -} -$fh->close; - - diff --git a/doc/UsersGuide/modelnl/Makefile b/doc/UsersGuide/modelnl/Makefile deleted file mode 100644 index 595a1b3a3e..0000000000 --- a/doc/UsersGuide/modelnl/Makefile +++ /dev/null @@ -1,85 +0,0 @@ -# -# Makefile to create HTML documentation of namelists -# -SCRNLDIR := ../../../../../../scripts/doc/modelnl -VPATH := . $(SCRNLDIR) ../../../../../drv/bld/namelist_files ../../../../../glc/cism/bld/namelist_files \ - ../../../../../atm/datm/bld/namelist_files ../../../../../../scripts/ccsm_utils/Case.template \ - ../../../../../../scripts/ccsm_utils/Machines ../../../../../rof/rtm/bld/namelist_files \ - ../../../bld/namelist_files ../.. -SOURCES := namelist_definition_drv.xml namelist_definition_cism.xml namelist_definition.xml \ - namelist_definition_rtm.xm namelist_definition_datm.xml config_definition.xml \ - config_grid.xml config_machines.xml config_compsets.xml ChangeSum -TAGFILE := clmtag.txt - -CWD := $(shell pwd ) -ALLOUT := $(CWD)/clm_nl_drv.html $(CWD)/clm_nl_cism.html $(CWD)/clm_nl_clm.html $(CWD)/clm_nl_rtm.html \ - $(CWD)/clm_nl_datm.html $(CWD)/clm_env_case.html $(CWD)/clm_env_build.html $(CWD)/clm_env_pesetup.html \ - $(CWD)/clm_env_run.html $(CWD)/clm_grid.html $(CWD)/clm_machines.html $(CWD)/clm_compsets.html \ - $(TAGFILE) $(CWD)/index.html - -all: $(ALLOUT) - -debug: - @echo "SOURCES = $(SOURCES)" - @echo "VPATH = $(VPATH)" - @echo "ALLOUT = $(ALLOUT)" - @echo "SCRNLDIR = $(SCRNLDIR)" - @echo "CWD = $(CWD)" - @echo "TAGFILE = $(TAGFILE)" - -.SUFFIXES: -.SUFFIXES: .xml .html .txt - -RM := /bin/rm - -CTAGNAME = $(shell cat $(TAGFILE) ) - - -$(TAGFILE): ChangeSum - head -3 $< | tail -1 | awk '{print $$1}' > $@ - -$(CWD)/index.html: $(TAGFILE) index.cpp - sed 's/CLMTAGNAME/$(CTAGNAME)/' index.cpp > $@ - -$(CWD)/clm_nl_drv.html: namelist_definition_drv.xml - cd $(SCRNLDIR) ; ./nldef2html_drv > $@ - -$(CWD)/clm_nl_cism.html: namelist_definition_cism.xml - cd $(SCRNLDIR) ; ./nldef2html_cism > $@ - -$(CWD)/clm_nl_clm.html: namelist_definition.xml - cd $(SCRNLDIR) ; ./nldef2html_clm > $@ - -$(CWD)/clm_nl_rtm.html: namelist_definition_rtm.xml - cd $(SCRNLDIR) ; ./nldef2html_rtm > $@ - -$(CWD)/clm_nl_datm.html: namelist_definition_datm.xml - cd $(SCRNLDIR) ; ./nldef2html_datm > $@ - -$(CWD)/clm_env_case.html: config_definition.xml - cd $(SCRNLDIR) ; ./xmldef2html_env_case > $@ - -$(CWD)/clm_env_build.html: config_definition.xml - cd $(SCRNLDIR) ; ./xmldef2html_env_build > $@ - -$(CWD)/clm_env_pesetup.html: config_definition.xml - cd $(SCRNLDIR) ; ./xmldef2html_env_pesetup > $@ - -$(CWD)/clm_env_run.html: config_definition.xml - cd $(SCRNLDIR) ; ./xmldef2html_env_run > $@ - -$(CWD)/clm_grid.html: config_grid.xml - cd $(SCRNLDIR) ; ./xmldef2html_grid > $@ - -$(CWD)/clm_machines.html: config_machines.xml - cd $(SCRNLDIR) ; ./xmldef2html_machines > $@ - -$(CWD)/clm_compsets.html: config_compsets.xml - cd $(SCRNLDIR) ; ./xmldef2html_compsets > $@ - -clean: - $(RM) -f $(ALLOUT) - -realclean: clean - $(RM) -f $(TAGFILE) - diff --git a/doc/UsersGuide/modelnl/index.cpp b/doc/UsersGuide/modelnl/index.cpp deleted file mode 100644 index c55aa64159..0000000000 --- a/doc/UsersGuide/modelnl/index.cpp +++ /dev/null @@ -1,45 +0,0 @@ - - - - - -CLM Namelist Definitions (CLMTAGNAME) - - - - - - -
    - - -

    CLM Tag: CLMTAGNAME

    - -

    Component Namelist Definitions

    - - -

    create_newcase files (supported machines, grids, compsets)

    - - -

    $CASEROOT xml files

    - - - - - - diff --git a/doc/UsersGuide/modelnl/showinfo.js b/doc/UsersGuide/modelnl/showinfo.js deleted file mode 100644 index fd8a608472..0000000000 --- a/doc/UsersGuide/modelnl/showinfo.js +++ /dev/null @@ -1,193 +0,0 @@ - function applyFilter(filter_text) { - - // applying a filter hides all standard names not matching filter_text - // if filter_text contains no spaces, it is treated as a regexp - // otherwise, all substrings must occur somewhere - - var is_match = false; - var search_type = 'regexp'; - var search_help_text = false; - var num_matches = 0; - var is_boolean_and = true; - - search_help_text = (document.getElementById('search_help_text').checked); - is_boolean_and = (document.getElementById('logical_operator_and').checked); - - if (filter_text.indexOf(' ') == -1) { - search_type = 'regexp'; - var re = new RegExp(filter_text, 'i') - } - else { - search_type = 'string'; - var string_parts = filter_text.split(' '); - } - - allTRs = document.getElementsByTagName('tr'); - - for (var i = 0; i < allTRs.length; i++) { - curTR = allTRs[i]; - - if (curTR.id != '') { - - if (search_type == 'regexp') { - - is_match = curTR.id.substring(0, curTR.id.length - 3).match(re); - - if (search_help_text) { - - var helpText = document.getElementById(curTR.id.substring(0,curTR.id.length - 3) + '_help').innerHTML; - is_match = is_match || helpText.match(re); - } - } - else { - - if (is_boolean_and) { - var is_name_match = true; - for (var j = 0; j < string_parts.length && is_name_match; j++) { - - if (!curTR.id.match(new RegExp(string_parts[j], 'i'))) { - is_name_match = false; - } - } - } - else { - - var is_name_match = false; - for (var j = 0; j < string_parts.length && !is_name_match; j++) { - - if (curTR.id.substring(0, curTR.id.length - 3).match(new RegExp(string_parts[j], 'i'))) { - is_name_match = true; - } - } - } - - is_match = is_name_match; - - if (search_help_text) { - var helpText = document.getElementById(curTR.id.substring(0,curTR.id.length - 3) + '_help').innerHTML; - - if (is_boolean_and) { - var is_help_match = true; - - for (var j = 0; j < string_parts.length && is_help_match; j++) { - - if (!helpText.match(new RegExp(string_parts[j], 'i'))) { - is_help_match = false; - } - } - } - else { - - var is_help_match = false; - - for (var j = 0; j < string_parts.length && !is_help_match; j++) { - - if (helpText.match(new RegExp(string_parts[j], 'i'))) { - is_help_match = true; - } - } - } - - is_match = is_match || is_help_match; - - } - } - - if (!is_match) { - curTR.style.display = 'none'; - } - else { - num_matches++; - curTR.style.display = ''; - if (search_help_text) { - showHelp(curTR.id.substring(0,curTR.id.length - 3)); - } - else { - hideHelp(curTR.id.substring(0,curTR.id.length - 3)); - } - } - } - } - - var filter_matches = document.getElementById('filter_matches'); - var filter_matches_num = document.getElementById('filter_matches_num'); - var filter_matches_query = document.getElementById('filter_matches_query'); - - if (filter_text != '') { - filter_matches.style.visibility = 'visible'; - filter_matches_num.innerHTML = num_matches; - filter_matches_query.innerHTML = filter_text; - } - else { - filter_matches.style.visibility = 'hidden'; - } - - } // end function applyFilter() - - function clearFilter() { - - allTRs = document.getElementsByTagName('tr'); - - for (var i = 0; i < allTRs.length; i++) { - curTR = allTRs[i]; - if (curTR.id != '') { - curTR.style.display = ''; - hideHelp(curTR.id.substring(0,curTR.id.length - 3)); - - } - } - - var filter_matches = document.getElementById('filter_matches'); - filter_matches.style.visibility = 'hidden'; - - document.getElementById('filter_text').value = ''; - } - - function toggleHelp(standard_name) { - - // check for the existence of the help "tr" object for this standard_name - - var helpDiv = document.getElementById(standard_name + '_help'); - - if (helpDiv) { - - if (helpDiv.style.display != 'none') { - - helpDiv.style.display = 'none'; - - curArrow = document.getElementById(standard_name + '_arrow'); - curArrow.src = "./images/arrow_right.gif"; - } - else { - helpDiv.style.display = ''; - - curArrow = document.getElementById(standard_name + '_arrow'); - curArrow.src = "./images/arrow_down.gif"; - } - } - } - - - function showHelp(standard_name) { - - var helpDiv = document.getElementById(standard_name + '_help'); - - if (helpDiv) { - - helpDiv.style.display = ''; - curArrow = document.getElementById(standard_name + '_arrow'); - curArrow.src = "./images/arrow_down.gif"; - } - } - - function hideHelp(standard_name) { - - var helpDiv = document.getElementById(standard_name + '_help'); - - if (helpDiv) { - helpDiv.style.display = 'none'; - curArrow = document.getElementById(standard_name + '_arrow'); - curArrow.src = "./images/arrow_right.gif"; - } - } - diff --git a/doc/UsersGuide/modelnl/xmldef2html_compsets b/doc/UsersGuide/modelnl/xmldef2html_compsets deleted file mode 100755 index 2659beed17..0000000000 --- a/doc/UsersGuide/modelnl/xmldef2html_compsets +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/env perl - -use strict; - -if ( $#ARGV != 0 ) { - die "Wrong number of input arguments -- should just enter one filename\n"; -} -my $infilename = $ARGV[0]; -if ( ! -f $infilename ) { - die "Input file: $infilename does NOT exist\n"; -} - -my @dirs = ('../../../../../../scripts/ccsm_utils/Tools/per5lib', '../../../../../../scripts//ccsm_utils/Tools/perl5lib/Build'); -unshift @INC, @dirs; -require XML::Lite; -use lib "../../../../../../scripts/ccsm_utils/Tools/perl5lib"; - -my $image_dir = "./images"; - -print <<"END_of_Start"; - - - - - - - CESM Component Models Namelist Definitions - - - - - - -

    Search or Browse supported component sets

    -

    -This page contains the complete list of config_grid.xml variables available. They are grouped -by categories designed to aid browsing. Clicking on the name of a variable will display descriptive -information. If search terms are entered in the text box below, the list will be condensed to contain -only matched variables. -

    - -
    - - - - - - -
    - - - -
    - - - (separate search terms with spaces) -
    - -
    -
    - - - -END_of_Start - -my $xml = XML::Lite->new( $infilename ); -my $root = $xml->root_element(); - -# Check for valid root node -my $name = $root->get_name(); -$name eq "config_compset" or die - "file $infilename is not a compset definition file\n"; - -# Print table -print_start_table("config_compsets.xml variables"); -my @e = $xml->elements_by_name( "compset" ); -my %a = (); -while ( my $e = shift @e ) { - %a = $e->get_attributes(); - - if ($a{'NAME'} =~ /I_/ ) { - my $var = $a{'NAME'}; - my $doc = "Description: $a{DESC} \n"; - my $grp = "$a{SHORTNAME}"; - print_row($var, $doc, $grp); - } -} -print_end_table(); - -# Finish -print <<"END_of_html"; - - -END_of_html - -#-------------------------------------------------------------------------------------------- - -sub print_start_table { - my $hdr = shift; - -print <<"START_table"; -

    $hdr

    - - - -START_table -} - -#-------------------------------------------------------------------------------------------- - -sub print_row { - - my $name = shift; - my $doc = shift; - my $grp = shift; - -print <<"END_of_row"; - - - - -END_of_row -} - -#-------------------------------------------------------------------------------------------- - -sub print_end_table { - -print <<"END_table"; -
    Compset NameShort Name
    - - - $name - - - $grp
    -END_table -} - -#-------------------------------------------------------------------------------------------- - diff --git a/doc/UsersGuide/pergro.jpg b/doc/UsersGuide/pergro.jpg deleted file mode 100644 index a0cb81e046..0000000000 Binary files a/doc/UsersGuide/pergro.jpg and /dev/null differ diff --git a/doc/UsersGuide/preface.xml b/doc/UsersGuide/preface.xml deleted file mode 100644 index ed063ce774..0000000000 --- a/doc/UsersGuide/preface.xml +++ /dev/null @@ -1,1419 +0,0 @@ - - - -$Id$ - -Acknowledgments - -I want to acknowledge all of the people that helped review or edit the model -documentation: David Lawrence, Samuel Levis, Keith Oleson, and Sean Swenson. -Thank you for your help in catching errors, and making the document more -understandable and readable. Our readers thank you as well, as now it is much -easier for them to digest. Any mistakes, or errors are all mine. If you run -across one of those errors, please let us know, by following -. -I also want to thank Sheri -Mickelson, for her work in doing perturbation analysis on bluefire and intrepid, -which was used in our initial versions of this User's Guide. We also want to -thank the original authors of &ptclm;: Daniel M. Ricciuto, Dali Wang, Peter E. Thornton, -Wilfred M. Post, and R. Quinn Thomas for providing a nice addition to the &cesm; -effort. We also want to thank the folks at University of Michigan Biological Stations -(US-UMB) who allowed us to use their Fluxnet station data and import it into our -inputdata repository, especially Gil Bohrer the PI on record for this site -(see for permission information on using this -data). - - - - -Introduction - - -The Community Land Model (&clmrel;) is the latest in a series of -global land models developed by the &cesm; Land Model Working Group -(LMWG) and maintained at the National Center for -Atmospheric Research (&ncar;). This guide is intended to instruct both -the novice and experienced user on running &clm;. This guide pertains to the -latest version &clmrel; available for download from the public release -subversion repository as a part of &cesmrel;. Documentation may be different if you are using an -older version, you should either update to the latest version, or use the -documentation inside your own source tree. There is information in the -ChangeLog file and in the -regarding the changes from previous versions of &cesm;. - - - -The novice user should read - in detail before beginning work, while the -expert user should read and - chapters, and then use the more detailed -chapters as reference. Before novice users go onto more technical problems covered -in , , , or they -should know the material covered in and be able -to replicate some of the examples given there. - - -All users should read the - -and sections to understand the document conventions -and the various ways of getting help on using &clm4;. Users should also read -the section to see if their planned use of the -model is something that has been scientifically validated and well tested. Users -that are NOT using &ncar; machines or our list of well tested machines should also -read the section to make sure they have -all the required UNIX utilities on the system they want to do their work. - - - - - -Introduction to the &clm4; User's Guide -What is in here anyway? - - -Here in the introduction we first give a simple guide to understand the document -conventions in . The next section -describes the differences between &clmrel; and &clm40; (for each &cesm; release version -up to &cesmrel;) as well as between -&clm40; and &clm35;, both from a scientific -as well as a software engineering point of view. It also talks about differences in the -configuration, namelist, and history fields. The next section -is for users that are already experts in using &clm; and gives a quickstart guide to the -bare details on how to use &clm4;. The next tells -you about what has been extensively tested and scientifically validated (and maybe more -importantly) what has NOT. lists the UNIX utilities -required to use &clm4; and is important if you are running on non-&ncar; machines, generic -local machines, or machines NOT as well tested by us at &ncar;. Next we -have to detail some of the best practices for using -&clm4; for science. The last introductory section is which lists -different resources for getting help with &cesm1; and &clm4;. - - - - goes into detail on how to setup and run simulations with -&clm4; and especially how to customize cases. Details of &configure; -modes and &buildnml; options as well as namelist options are given in this chapter. - - - - gives instructions on the &clm4; tools for creating input datasets -for use by &clm;, for the expert user. There's an overview of what each tool does, and some general notes on how to build -the FORTRAN tools. Then each tool is described in detail along with different ways in -which the tool might be used. -A final section -on how to customize datasets for observational sites for very savvy expert users is given as the last section of this chapter. - - - -As a followup to the tools chapter, tells how to add files to the -XML database for &buildnml; to use. This is important if you want to use the XML database to automatically select -user-created input files that you have created when you setup new cases with &clm;. - - - -In , again for the expert user, we give details on how to do some particularly -difficult special cases. For example, we give the protocol for spinning up both the &clmcn; model and &clm; with dynamic -vegetation active (CNDV). We give instructions to do a spinup case -from a previous case with Coupler history output for atmospheric forcing. We also give -instructions on running the prognostic crop model and its irrigation option. We also review -how to validate a port to a new machine using the Perturbation error -growth technique. Lastly we tell the user how to use the DATM model to send historical &CO2; data to &clm;. - - - - outlines how to do single-point or -regional simulations using &clm4;. -This is useful to either compare &clm; simulations with point observational stations, -such as tower sites (which might include your own atmospheric forcing), or -to do quick simulations with &clm; for example to test a new parameterization. There are -several different ways given on how to perform -single-point simulations which range from simple &PTSMODE; to more complex where you create all your own datasets, tying into - and also to add the -files into the &buildnml; XML database. After this chapter - chapter outlines how to use the &ptclm; python script to -help you run single-point simulations. - - - -Finally, gives some guidance on trouble-shooting -problems when using &clm4;. It doesn't cover all possible problems with &clm;, but gives -you some guidelines for things that can be done for some common problems. - - - -In the appendices we talk about some issues that are useful for advanced users and -developers of &clm;. -In we give some basic background to the &clm; -developer on how to edit the models/lnd/clm/bld/clm.cpl7.template. -This is a very difficult exercise and we don't recommend it for any, but the most -advanced users of &clm; who are also experts in UNIX and UNIX scripting. - - -In we go over how to run the script -runinit_ibm.csh" that will interpolate standard resolution -initial condition dataset to several other resolutions at once. It also runs &clm; -to create template files as well as doing the interpolation using -interpinic. In general this is only something that a developer -would want to do. Most users will only want to interpolate for a few specific -resolutions. - - -In we go over the automated testing scripts for -validating that the &clm; is working correctly. The test scripts run many different -configurations and options with &clm; making sure that they work, as well as doing -automated testing to verify restarts are working correctly, and testing at many -different resolutions. In general this is an activity important only for a developer -of &clm;, but could also be used by users who are doing extensive code modifications -and want to ensure that the model continues to work correctly. - - -Finally in we give instructions on how to build -the documentation associated with &clm; (i.e. how to build this document). This -document is included in every &clm; distribution and can be built so that you can -view a local copy rather than having to go to the &cesm; website. This also could -be useful for developers who need to update the documentation due to changes they -have made. - - - - - - - - - -Important Notes and Best Practices for Usage of &clm4; - - - -When running with CN, it is critical to begin with initial conditions -hat are provided with the release or to spin the model up following the CN spinup -procedure before conducting scientific runs (see . -Simulations without a proper spinup will effectively be starting from an unvegetated -world. See for information on how to -provide initial conditions for your simulation. - - -Initial condition files are provided for fully coupled BCN and offline -ICN cases for 1850 and 2000 at 1deg, 2deg, and T31 resolutions. There's also an -initial condition file for ICN with the prognostic crop model for 2000 at 2deg -resolution, and one with &clmsp; for 2000 at 2deg resolution. We also have initial -conditions for offline CNDV for 1850. And there are interpolated datasets for 4x5 and -10x15 resolution for 1850. The 1850 initial condition -files are in 'reasonable' equilibrium. The 2000 initial condition files represent -the model state for the year 2000, and have been taken from transient simulations. -Therefore, by design the year 2000 initial condition files do not represent an -equilibrium state. Note also that spinning the 2000 initial conditions out to -equilibrium will not reflect the best estimate of the real carbon/nitrogen state -for the year 2000. - - -Users can generate initial condition files at different resolutions by -using the &clm; tool interpinic to interpolate from one of the -provided resolutions to the resolution of interest. Interpolated initial condition -files may no longer be in 'reasonable' equilibrium. - - -Aerosol deposition is a required field to &clm4; sent from the -atmosphere model. Simulations without aerosol deposition will exhibit unreasonably -high snow albedos. The model sends aerosol deposition from the atmospheric model (either -CAM or &datm;). When running with prescribed aerosol the atmosphere -model will interpolate the aerosols from 2-degree resolution to the resolution the -atmosphere model is running at. - - - - - - - - - - - - - $EDITOR - - - -How to Use This Document -Conventions used in the document for code and commands - - -This section provides the details in using &clm; with the &cesm; modeling -system. Links to descriptions and definitions have been provided in the code below. -We use the same conventions used in the &cesm; documentation as outlined below. - - - -Throughout the document this style is used to indicate shell -commands and options, fragments of code, namelist variables, etc. -Where examples from an interactive shell session are presented, lines -starting with > indicate the shell prompt. A backslash "\" at the end -of a line means the line continues onto the next one (as it does in -standard UNIX shell). Note that $EDITOR" is used to refer to the -text editor of your choice. $EDITOR is a standard UNIX environment -variable and should be set on most UNIX systems. Comment lines are -signaled with a "#" sign, which is the standard UNIX comment sign as well. -$CSMDATA is used to denote the path to the inputdata directory for -your &cesm; data. - -> This is a shell prompt with commands \ -that continues to the following line. -> $EDITOR filename # means you are using a text editor to edit "filename" -# This is a comment line - - - - - - - - - - - &clmcn; - &clmsp; - - -What is new with &clmrel; since previous public releases? - -In this section we list the updates that have occurred to &clm4; since previous -public releases. In the first sections we describe changes in &clmrel; since the &ccsm4; release, -and in the last one we describe changes from &clm35; to &clm40; release. Note, that -the changes in the last section do NOT include the more recent changes given in the -first section, but only list the changes from &clm35; to the &clm40; release that -was part of the &ccsm4; public release. We will describe both the -changes in the science in the model as the software engineering changes. Software -engineering changes includes the configure and namelist changes, as well as the new -history fields. - - -What is new with &clmrel; since the December 8th, 2010 &cesm102; release? - - - -What is new with &clmrel; Science since &clmcesm102;? - -A prognostic crop model option was added in (based on Agro-IBIS) from work by -Samuel Levis. The crop model adds in four new vegetation types for: soybean, -winter and spring temperate cereals, and corn on their own separate columns. Winter -cereal was added as a PFT type, but doesn't exist in the input datasets, only -spring cereal is used. Winter cereal also has NOT been scientifically validated -or tested. The model manages these by modeling both planting and harvesting. See for an example of running with it. - - -An irrigation model was added from work by Samuel Levis and Bill Sacks. This -model takes water from runoff and adds it to the crop pfts for areas equipped -for irrigation. See for an example of running with it. -Please note that the irrigation model only works with the crop model active. - - - - -What is new with &clmrel; Software since &clmcesm102;? - -Since &clmcesm102; all Input/Output uses &pio; (Parallel Input/Output package). -Restart history files are now &netcdf;. Input and output files can be read/written -in parallel using PIO. We removed a list of old CPP defines and removed the -old misc/preproc.h files. Also a new tool for working with single-point sites was -added into the &cesm; scripts the Python tool &ptclm;. We have a complete chapter on it's use. - - -New configuration options: - --crop --noio - - - -Configuration options removed: - --dust --progsslt - - - -New build-namelist options: - --co2_ppmv --rtm_res --rtm_tstep - - - -New precedence for build-namelist options is... - -Values set on the command-line using the -namelist option -(&CLMNAMELIST;). -Values read from the file specified by -infile (&usernlclm; file). -Datasets from the -clm_usr_name option (&CLMUSRDAT;). -Values set from a use-case scenario, e.g., -use_case (&CLMUSECASE;). -Values from the namelist defaults file. - - - -Namelist options renamed: - -carbon_only => suplnitro (can be set to NONE or ALL) - - - -namelist options removed: - -carbon_only => suplnitro -scaled_harvest -hist_crtinic -hist_pioflag -ncd_lowmem2d -ncd_pio_def -ncd_pio_UseRearranger -ncd_pio_UseBoxRearr -ncd_pio_SerialCDF -ncd_pio_IODOF_rootonly -ncd_pio_DebugLevel -ncd_pio_num_iotasks - - - -New history fields: - -A5TMIN 5-day running mean of min 2-m temperature -(K) -A10TMIN 10-day running mean of min 2-m temperature -(K) -GDD0 Growing degree days base 0C from planting -(ddays) -GDD8 Growing degree days base 8C from planting -(ddays) -GDD10 Growing degree days base 10C from planting -(ddays) -GDD020 Twenty year average of growing degree days base 0C from planting -(ddays) -GDD820 Twenty year average of growing degree days base 8C from planting -(ddays) -GDD1020 Twenty year average of growing degree days base 10C from planting -(ddays) -GDDPLANT Accumulated growing degree days past planting date for crop -(ddays) -GDDHARV Growing degree days (gdd) needed to harvest -(ddays) -GDDTSOI Growing degree-days from planting (top two soil layers) -(ddays) -QIRRIG water added through irrigation -(mm/s) - - - -SNOWLIQ and SNOWICE changed from average to instantaneous output. - - - - -What was new with &clm4014; (in &cesm102;) since the September 17th, 2010 &cesm101; release? - -Since, &clm4010; in the &cesm101; release there were several developments made -to &clmrel;. Several new namelist items were added -a few new history fields. There were also some updates for -running the model with single-point mode. - - -Configuration options that were renamed: - -prog_seasalt => progsslt - - - -Namelist items removed: - -prog_seasalt => progsslt - - - -What was new with &clm4014; Science since &clm4010;? - -A long simulation at the course resolution of T31 (typically used for Paleo-climate -studies) was done and an spun-up initial condition file was provided for this -resolution (also by default the namelist variable ice_runoff was -turned off for T31). Also a new surface dataset and transient land-cover dataset was -provided for half-degree resolution. - - - -What was new with &clm4014; Software since &clm4010;? - -New configuration options - -sitespf_pt - - - -sitespf_pt is used for single-point/regional mode and is set to the site-name -that will be used (see the config_definition.xml for the -list of valid options). - - -Configuration options that were renamed: - -prog_seasalt => progsslt - - - -Namelist items removed: - -faerdep -fndepdat -fndepdyn -use_ndepstream - - - -Nitrogen deposition datasets are now only entered through the -ndepdyn_nml namelist (removing fndepdat, fndepdyn, and -use_ndepstream). Aerosol deposition is now a required input from -the atmosphere model, hence faerdep is removed. - - -New history fields: - -U10 10-m wind (m/s) -U10_DUST 10-m wind for dust model (m/s) -VA atmospheric wind speed plus convective velocity (m/s) -VOLR RTM storage: LIQ (m3) -VOLR_ICE RTM storage: ICE (m3) - - - - - - -What was new with &clm4010; (in &cesm101;) since the April 1st, 2010 &ccsm4; release? - -From, &clm40; in the &ccsm4; release to &clm4010; there were several developments made -to &clm;. A glacier multiple elevation class option was added that allows the -use of &clm4; with a glacier land ice model the Community Ice Sheet Model (CISM). -A bug-fix for the snow hydrology was added. Several new namelist items were added -a few new history fields. Also the capability of reading aerosol and nitrogen -deposition from stream files at one resolution and regridded on the fly rather than -with datasets at the model resolution was added in. This was important for higher -resolutions so that large datasets do not have to be created before running the model, -nor are datasets for every resolution required. - - -What was new with &clm4010; Science since &ccsm4;? - -In general, snow layers should not be thinner than - -dzmin = wice/rhoice + wliq/rholiq - -If dz < dzmin, then the value of "void" computed in subroutine -SnowCompaction is negative, which is unphysical. This doesn't cause -problems with the compaction itself, but results in unrealistic values -of vol_ice, vol_liq, and eff_porosity in subroutine SnowWater. We can -have vol_ice = 1 and vol_liq = 0 even when liquid is present, which cuts -off the runoff (qout) from the lowest snow layer. Liquid water then -accumulates in the snow column without draining, which leads to further -problems and eventually a code crash. - - -The solution to this problem was to adjust layer thickness dz for any water+ice content -changes in excess of previous layer thickness, e.g., - -dz(c,j) = max(dz(c,j),h2osoi_liq(c,j)/denh2o + h2osoi_ice(c,j)/denice) - -at appropriate steps in the snow hydrology subroutines. - - - -Snow hydrology bug fix. -Add multiple elevation class option for glaciers so can interact with -the land ice sheet model. - - - - -What was new with &clm4010; Software since &ccsm4;? - -New configuration options - -glc_nec - - - -glc_nec can be 1,3,5, or 10 and MUST match the number on the input surface dataset -the elevation classes themselves are read from the surface dataset - - -New namelist items: - -carbon_only -create_glacier_mec_landunit -glc_dyntopo -ice_runoff -ndepmapalgo -scaled_harvest - - - -carbon_only = If true, and CLMCN carbon-nitrogen model is on, Nitrogen is unlimited - rather than prognosed and vegetation will be over-productive (replaces the supplemental Nitrogen #ifdef) - - - create_glacier_mec_landunit (= T when these landunits are created; F by default) - - - glc_dyntopo (= T if &clm; topography changes dynamically; currently F) - (NOT fully implemented yet) - - -ice_runoff = If true, river runoff will be split up into liquid and ice streams, - otherwise ice runoff will be zero and all runoff directed to liquid stream - - - ndepmapalgo = Mapping method from Nitrogen deposition input file to the model - resolution (can be bilinear,nn,nnoni,nnonj,spval,copy, bilinear by default) - - -scaled_harvest = If true, harvesting will be scaled according to coefficients - determined by Johann Feddema, 2009 - - -New history fields: - -aais_area Antarctic ice area (km^2) -aais_mask Antarctic mask (unitless) -gris_area Greenland ice area (km^2) -gris_mask Greenland mask (unitless) -QICE ice growth/melt (mm/s) -QICEYR ice growth/melt (mm/s) -QTOPSOIL water input to surface (mm/s) -VOLR RTM storage: LIQ (m3) -VOLR_ICE RTM storage: ICE (m3) - - - - - - - -What was new with &clm40; since &clm35;? - - -From &clm35; to &clm40; there were advances in both the science and the software infrastructure. -There were also new configure and namelist options as well as new history fields. In this -section we will describe each of these changes in turn. - - - -What was new with &clm40; Science? - -The following aspects are changes to the science in &clm40; since &clm35;. - - -Biogeophysics and Hydrology - -Changes to &clm40; beyond &clm35; (Oleson et al., 2008a; Stockli et al., 2008) include -updates throughout the model. The hydrology scheme has been modified with a revised -numerical solution of the Richards equation (Zeng and Decker, 2009; Decker and Zeng, -2009); a revised soil evaporation parameterization that removes the soil resistance term -introduced in &clm35; and replaces it with a so-called &Bgr; formulation, as well as accounts for the role of litter and within- -canopy stability (Sakaguchi and Zeng, 2009). -&clm4; also includes a representation of the thermal and hydraulic properties of organic -soil that operates in conjunction with the mineral soil properties (Lawrence and Slater, -2008). The ground column has been extended to ~50-m depth by adding five additional -hydrologically inactive ground layers (making a total of 15 ground layers, 10 soil -layers and 5 bedrock layers; Lawrence et al., 2008). An urban landunit and associated -urban canyon model (&clmu;) has been added which permits the study of urban climate -and urban heat island effects (Oleson et al., 2008b). - - - - -Snow Model - -The snow model is significantly modified via incorporation of SNICAR (SNow and Ice Aerosol Radiation) which represents the effect of aerosol deposition (e.g. black and organic carbon and dust) on albedo, introduces a grain-size dependent snow aging parameterization, and permits vertically resolved snowpack heating (Flanner and Zender, 2005; Flanner and Zender, 2006; Flanner et al., 2007). The new snow model also includes a new density-dependent snow cover fraction parameterization (Niu and Yang, 2007), a revised snow burial fraction over short vegetation (Wang and Zeng, 2009) and corrections to snow compaction (Lawrence and Slater, 2009). - - - - -Surface Datasets - -The PFT distribution is as in Lawrence and -Chase (2007) except that a new cropping dataset is used (Ramankutty et al., 2008) and -a grass PFT restriction has been put in place to reduce a high grass PFT bias in -forested regions by replacing the herbaceous fraction with low trees rather than grass. -Grass and crop PFT optical properties have been adjusted according to values presented -in Asner et al. (1998), resulting in significantly reduced albedo biases. Soil colors -have been re-derived according to the new PFT distribution. - - - - -Biogeochemistry - -The model is extended with a carbon-nitrogen biogeochemical model (Thornton et al., 2007; -Thornton et al., 2009; Randerson et al., 2009) which is referred to as &clmcn;. CN is -based on the terrestrial biogeochemistry Biome-BGC model with prognostic carbon and -nitrogen cycle (Thornton et al., 2002; Thornton and Rosenbloom, 2005). &clmcn; is -prognostic with respect to carbon and nitrogen state variables in the vegetation, litter, -and soil organic matter. Vegetation phenology and canopy heights are also prognostic. A -detailed description of the biogeochemical component can be found in Thornton et al. -(2007). Note that &clm40; can be run with either prescribed satellite phenology -(&clmsp;) or with prognostic phenology provided by the carbon- nitrogen cycle model -(&clmcn;). Additionally, a transient land cover and land use change, including wood harvest, -capability has been introduced that enables the evaluation of the impact of historic and -future land cover and land use change on energy, water, and momentum fluxes as well as -carbon and nitrogen fluxes. The dynamic global vegetation model in &clm3; has been -revised such that the carbon dynamics (e.g. productivity, decomposition, phenology, -allocation, etc.) are controlled by CN and only the dynamic vegetation biogeography -(competition) aspect of the &clm3; DGVM is retained. -The biogenic volatile organic compounds model (BVOC) that was available in &clm3; has -been replaced with the MEGAN BVOC model (Heald et al. 2008). - - - - -Miscellaneous Changes - -Several other minor changes have been incorporated including a change to the atmospheric reference height so that it is the height above zo+d for all surface types. The convergence of -canopy roughness length zo and displacement height d to bare soil values as the -above-ground biomass, or the sum of leaf and stem area indices, goes to zero is ensured -(Zeng and Wang, 2007). Several corrections have been made to the way the offline forcing -data is interpreted. The main change is a vastly improved and smooth diurnal cycle of -incoming solar radiation that conserves the total incoming solar radiation from the -forcing dataset. Additionally, in offline mode rather than partitioning incoming solar -radiation into a constant 70%/30% direct vs diffuse split, it is partitioned according to -empirical equations that are a function of total solar radiation. Finally, to improve -global energy conservation in fully coupled simulations, runoff is split into separate -liquid and ice water streams that are passed separately to the ocean. Input to the ice -water comes from excess snowfall in snow-capped regions. - - - - -Summary of Science Changes - -Taken together, these augmentations to &clm35; in &clm40; result in improved soil moisture dynamics -that lead to higher soil moisture variability and drier soils. Excessively wet and -unvarying soil moisture was recognized as a deficiency in &clm35; (Oleson et al. 2008a, -Decker and Zeng, 2009). The revised model also simulates, on average, higher snow cover, -cooler soil temperatures in organic-rich soils, greater global river discharge, lower -albedos over forests and grasslands, and higher transition-season albedos in snow covered -regions, all of which are improvements compared to &clm35;. - - - - - -What is new with &clm40; Software Infrastructure? - -The following aspects are changes to the software infrastructure in &clm40; since &clm35;. - - - - Update to cpl7 and scripts. - Remove offline and cpl6 modes. - Remove support for CASA model. - Update to datm8 atmospheric data model. - Add gx3v7 land mask for T31 and fv-4x5 horizontal resolutions. - Add gx1v6 land mask for f05, f09, and f19 horizontal resolutions. - Add tx1v1 land mask and 1.9x2.5_tx1v1 horizontal resolution. - Add in 2.5x3.33 horizontal resolution. - Add in T62 horizontal resolution so can run at same resolution as input &datm; -data. - Allow first history tape to be 1D. - Add ability to use own version of input datasets with &CLMUSRDAT; -variable. - Add a script to extract out regional datasets. - New &buildnml; system with XML file describing all namelist -items. - Add glacier_mec use-case and stub glacier model. - Make default of maxpatch_pft=numpft+1 instead of 4. - Only output static 3D fields on first h0 history file to save space. - Add new fields for VOC (Volatile Organic Compounds) on surface datasets, - needed for the new MEGAN VOC model. - Add multiple elevation class option for glaciers in mksurfdata tool (NOT used -in &clm; yet). - Add ascale field to land model in support of model running on it's own -grid. - - - - - -What are The New Configuration Options in &clm40;? - -Describe any changes made to build system: - - - -Change directory structure to match &ccsm;. -Add BGP target. -Add choice between ESMF and MCT frameworks. -Start removing #ifdef and directives that supported Cray-X1 Phoenix as now -decommissioned. -Make default of maxpatch_pft=numpft+1 instead of 4 for all -configurations. -By default turn on CLAMP when either CN or CASA is enabled -New SNICAR_FRC, CARBON_AERO, and C13 CPP ifdef tokens. - - - - -New options added to &configure;: -More information on options to &clm; &configure; are given in . - - - - -OptionDescription --comp_intf <name>Component interface to use (ESMF or MCT) (default -MCT) --nofireTurn off wildfires for bgc setting of CN (default includes -fire for CN) --pio <name>Switch enables building with Parallel I/O library. [on -| off] (default is on) --snicar_frc <name>Turn on SNICAR radiative forcing calculation. [on | -off] (default is off) - -More information on options to &clm; &configure; are given in . - - - - -What are The New Namelist Options in &clm40;? - -&buildnml; now checks the validity of your namelist you generate by looking at data in -the namelist_definition.xml file. In order to add new namelist items you need to -change the code and also edit this file (e.g. a namelist option required for your -research project that is not currently an option in &clm40;). To view information -on the namelist view the -file: models/lnd/clm/bld/namelist_files/namelist_definition.xml -in a browser and you'll see the names, type, description and valid_values for all -namelist variables. - - -Changes to &buildnml;: - -Allow simulation year entered to include ranges of years (i.e. 1850-2000) -Remove cam_hist_case option. -Make sure options ONLY used for stand-alone testing have a "drv_" or "datm_" - prefix in them and list these options all together and last when asking for - help from &buildnml;. - - - - New option to &buildnml;: - - -clm_usr_name "name" Dataset resolution/descriptor for personal datasets. - Default: not used - Example: 1x1pt_boulderCO_c090722 to describe location, - number of pts, and date files created - - - - New list options to &buildnml; - - cd models/lnd/clm/bld - ./&buildnml; -res list # List valid resolutions - ./&buildnml; -mask list # List valid land-masks - ./&buildnml; -sim_year list # List valid simulation years and simulation year ranges - ./&buildnml; -clm_demand list # List namelist variables including those you could - # demand to be set. - ./&buildnml; -use_case list # List valid use-cases - - - - -New use-cases for &buildnml;: - - 1850_control = Conditions to simulate 1850 land-use - 2000_control = Conditions to simulate 2000 land-use -20thC_transient = Simulate transient land-use, aerosol and Nitrogen deposition - from 1850 to 2005 - - - - - New namelist items: - - urban_hac = OFF, ON or ON_WASTEHEAT (default OFF) Flag for urban Heating - and Air-Conditioning - OFF = Building internal temperature is un-regulated. - ON = Building internal temperature is bounded to reasonable range. - ON_WASTEHEAT = Building internal temperature is bounded and resultant waste - heat is given off. - urban_traffic = .true. or .false. Flag to include additional multiplicative - factor of urban traffic to sensible heat flux. - (default .false.) - fsnowoptics = filename file for snow/aerosol optical properties (required) - fsnowaging = filename file for snow aging parameters (required) - -More information on the &buildnml; options are given in -. -and in -&CLMBLDNML;. - - -More information on the &buildnml; options are given in in . - - - - -What are The New History Fields? - -New history variables: (note watt vs. W in units, 26 vs. 76) - - - - -NameLong-nameUnitsActive/Inactive -BCDEPtotal BC deposition (dry+wet) from -atmospherekg/m^2/s -BIOGENCObiogenic CO -fluxuGC/M2/H -C13_PRODUCT_CLOSSC13 total carbon loss from wood product -poolsgC13/m^2/s -DSTDEPtotal dust deposition (dry+wet) from -atmospherekg/m^2/s -EFLX_DYNBALdynamic land cover change conversion energy -fluxW/m^2 -FGR12heat flux between soil layers 1 and -2watt/m^2 -FSATfractional area with water table at -surfaceunitless -FSH_NODYNLNDUSEsensible heat flux not including correction for land use change - watt/m^2 -GC_HEAT1initial gridcell total heat -contentJ/m^2 -GC_HEAT2post land cover change total heat -contentJ/m^2inactive -GC_ICE1initial gridcell total ice -contentmm/s -GC_ICE2post land cover change total ice -contentmm/sinactive -GC_LIQ1initial gridcell total liq -contentmm -GC_LIQ2initial gridcell total liq content -mminactive -H2OSNO_TOPmass of snow in top snow -layerkg - HEAT_FROM_ACsensible heat flux put into canyon due to heat -removed from air conditioningwatt/m^2 -HKhydraulic -conductivitymm/sinactive -ISOPRENEisoprene fluxuGC/M2/H -LAND_USE_FLUXtotal C emitted from land cover conversion and -wood product poolsgC/m^2/s -LAND_UPTAKENEE minus LAND_USE_FLUX, negative for -updategC/m^2/s -LWupupwelling longwave -radiationwatt/m^2inactive -MONOTERPmonoterpene -fluxuGC/M2/H -NBPnet biome production, includes fire, landuse, and harvest -flux, positive for sinkgC/m^2/s -OCDEPtotal OC deposition (dry+wet) from -atmospherekg/m^2/s -OVOCother VOC fluxuGC/M2/H -ORVOCother reactive VOC -fluxuGC/M2/H -PBOTatmospheric pressurePa -PCO2atmospheric partial pressure of -&CO2;Pa -PRODUCT_CLOSStotal carbon loss from wood product -poolsgC/m^2/s -PRODUCT_NLOSStotal N loss from wood product -poolsgN/m^2/s -Qairatmospheric specific -humiditykg/kginactive -Qanthanthropogenic heat -fluxwatt/m^2inactive -Qtaumomentum fluxkg/m/s^2 -QFLX_LIQ_DYNBALliq dynamic land cover change conversion -runoff fluxmm/s -QFLX_ICE_DYNBALice dynamic land cover change conversion -runoff fluxmm/s -QRUNOFF_NODYNLNDUSEtotal liquid runoff not including correction for land use change (does not include QSNWCPICE) -mm/s -QSNWCPICEexcess snowfall due to snow -cappingmm/s -QSNWCPICE_NODYNLNDUSEexcess snowfall due to snow capping not including correction for land use change -mm/s -QSNWCPLIQexcess rainfall due to snow -cappingmm/sinactive -SMPsoil matric -potentialmminactive -SNOAERFRC2Lsurface forcing of all aerosols in snow, averaged only when snow is present (land) -watt/m^2 -SNOAERFRCLsurface forcing of all aerosols in snow -(land)watt/m^2 -SNOBCFRCLsurface forcing of BC in snow -(land)watt/m^2 -SNOBCMCLmass of BC in snow -columnkg/m2 -SNOBCMSLmass of BC in top snow -layerkg/m2 -SNOdTdzLtop snow layer temperature gradient -(land)K/m -SNODSTFRC2Lsurface forcing of dust in snow, averaged only when snow is present (land) -watt/m^2 -SNODSTFRCLsurface forcing of dust in snow -(land)watt/m^2 -SNODSTMCLmass of dust in snow -columnkg/m2 -SNODSTMSLmass of dust in top snow -layerkg/m2 -SNOFSRNDdirect nir reflected solar radiation from -snowwatt/m^2inactive -SNOFSRNIdiffuse nir reflected solar radiation from -snowwatt/m^2inactive -SNOFSRVDdirect vis reflected solar radiation from -snowwatt/m^2inactive -SNOFSRVIdiffuse vis reflected solar radiation from -snowwatt/m^2inactive -SNOFSDSNDdirect nir incident solar radiation on -snowwatt/m^2inactive -SNOFSDSNIdiffuse nir incident solar radiation on -snowwatt/m^2inactive -SNOFSDSVDdirect vis incident solar radiation on -snowwatt/m^2inactive -SNOFSDSVIdiffuse vis incident solar radiation on -snowwatt/m^2inactive -SNOLIQFLtop snow layer liquid water fraction -(land)fractioninactive -SNOOCMCLmass of OC in snow -columnkg/m2 -SNOOCMSLmass of OC in top snow -layerKg/m2 -SNOOCFRC2Lsurface forcing of OC in snow, averaged only when snow is present (land) -watt/m^2 -SNOOCFRCLsurface forcing of OC in snow -(land)watt/m^2 -SNORDSLtop snow layer effective grain -radiusm^-6inactive -SNOTTOPLsnow temperature (top -layer)K/minactive -SWupupwelling shortwave -radiationwatt/m^2inactive -TSOI_10CMsoil temperature in top 10cm of -soilK -URBAN_ACurban air conditioning -fluxwatt/m^2 -URBAN_HEATurban heating -fluxwatt/m^2 -VOCFLXTtotal VOC flux into -atmosphereuGC/M2/H -Windatmospheric wind velocity -magnitudem/sinactive -WOOD_HARVESTCwood harvest (to product -pools)gC/m^2/s -WOOD_HARVESTwood harvest (to product -pools)gN/m^2/s - - - - - History field name changes: - - -OldNew -ANNSUM_PLANT_NDEMAND= -ANNSUM_POTENTIAL_GPP -ANNSUM_RETRANSN= ANNMAX_RETRANSN -C13_DWT_PROD10C_LOSS= C13_PROD10C_LOSS -C13_DWT_PROD100C_LOSS= C13_PROD100C_LOSS -C13_DWT_PROD10N_LOSS= C13_PROD10N_LOSS -C13_DWT_PROD100C_LOSS= C13_PROD100C_LOSS -DWT_PROD100N_LOSS= PROD10N_LOSS -DWT_PROD100N_LOSS= PROD100N_LOSS -DWT_PROD100C_LOSS= PROD10C_LOSS -DWT_PROD100C_LOSS= PROD100C_LOSS -HCSOISNO= HC -TEMPSUM_PLANT_NDEMAND= -TEMPSUM_POTENTIAL_GPP -TEMPSUM_RETRANSN= TEMPMAX_RETRANSN - - - -History field names deleted include: SNOWAGE, TSNOW, FMICR, FCO2, DMI, QFLX_SNOWCAP - - - -Add new urban oriented _U, and _R (Urban and Rural) for the following history variables: -EFLX_LH_TOT, FGR, FIRA, FSH, FSM, Q2M, QRUNOFF, RH2M, SoilAlpha, TG, TREFMNAV, -TREFMXAV, and TSA (missing _R for SoilAlpha as the regular SoilAlpha is only defined -for rural areas anyway) - - - -We are missing the Rural soil-alpha variable: SoilAlpha_R on purpose. -SoilAlpha_U is only defined over pervious road, and missing everywhere else. -SoilAlpha is defined only for rural areas. - - - - - - - - - - - -Quickstart to using &clm4; - -Before working with &clm4; read the QuickStart Guide in the -&cesmrel; -Scripts User's Guide. Once you are familiar with how to setup cases for -any type of simulation with &cesm; you will want to direct your attention to the specifics -of using &clm;. - - -For some of the details of setting up cases for &clm4; read the README and text files available -from the "models/lnd/clm/doc" directory (see the "&clm; Web pages" section for a link to the list -of these files). Here are the important ones that you should be familiar with. - -README file describing the directory structure. -Quickstart.userdatasets file describing how to -use your own datasets in the model (also see ). -&KnownBugs; file describing known -problems in &clm4; (that we expect to eventually fix). -KnownLimitations file -describing known limitations in &clm4; and workarounds that we do NOT expect to -fix. - - -The IMPORTANT_NOTES file is given in the next chapter on what -is functional/validated in &clm4;? - -The ChangeLog/ChangeSum files are largely explained in the previous chapter on "What is new with -&clm4;?" - -Note other directories have README files that explain different components and tools used -when running &clm; and are useful in -understanding how those parts of the model work and should be consulted when using tools in those directories. -For more details on configuring and customizing a case with &clm; see . - -The Quickstart.GUIDE (which can be found in -models/lnd/clm/doc) is repeated here. - -&quickstart_guide; - - - - -What is scientifically validated and functional in &clm4;? - -In this section we go over what has been extensively tested and scientifically validated -with &clm4;, and maybe more importantly what has NOT been tested and may NOT be -scientifically validated. You can use all features of &clm;, but need to realize that -some things haven't been tested extensively or validated scientifically. When you use -these features you may run into trouble doing so, and will need to do your own work to -make sure the science is reasonable. - - - -Standard Configuration and Namelist Options that are Validated - -The standard version of the model is &clmcn; at 1-degree horizontal resolution (0.9x1.25). This version has been scientifically -validated with long simulations for: fully coupled simulations ("B" cases), coupled to -atmosphere model CAM ("F" cases), and stand-alone &clm; -cases ("I" cases). We've also done both long simulations for 1850 conditions, and transient 20th century simulations from 1850 to 2005 (with -transient land-use, Nitrogen and Aerosol deposition). There have also been transient -future scenario simulations done for fully coupled cases for different "representative -concentration pathway" (RCP) scenarios (RCP2.6, RCP4.5, RCP6.0, and RCP8.5). -To a lesser extent there have also -been simulations done at T31 and 2-degree horizontal -resolution (1.9x2.5), and with &clmsp; for these resolutions. As such we have provided -appropriate 1-degree, 2-degree, and T31 initial condition -datasets for these configurations. The irrigation and prognostic crop models were both -validated at 2-degree resolution. The irrigation model for &clmsp; for present day -conditions for an "I" compset, and the prognostic crop model for present day conditions -for a case coupled to the active land model, but using a data ocean model (an "F" -compset). Other resolutions, configurations, and namelist options are less well tested or scientifically validated. -The further you get away from the standard configurations and resolutions, the more likely you are to run into trouble, and/or need to -scientifically validate your work. - - -In the sections below we go through configuration and/or namelist options or modes that the user should be especially wary of using. You -are of course free to use these options, and you may find that they work functionally. Although in some cases you will find issues even -with functionality of using them. If so you will need to test, debug and find solutions for these issues on your own. But in every case -you will need to go through more extensive work to validate these options from a scientific standpoint. - - - - -Configure Modes NOT scientifically validated, documented, supported or, in some -cases, even advised to be used: - - - - - C13(-c13) -The C13 mode for bgc=cn is NOT scientifically validated or documented and is NOT -recommended for use. - - - - - - CASA(-bgc casa) -The bgc=casa mode is NOT scientifically validated or documented and is NOT -recommended for use. - - - - - - SNICAR_FRC(-snicar_frc) - This mode is tested and functional, but is NOT constantly scientifically validated, and should be - considered experimental. - - - - - - - -Namelist options that should NOT be exercised: - -Build-Namelist options that should NOT be exercised: - - --irrig with -bgc cn -We have only run the irrigation model with &clmsp; (i.e. without the CN model). We -recommend that if you want to run the irrigation model with CN, that you do a spinup. -But, more than that you may need to make adjustments to -irrig_factor in -models/lnd/clm/src/biogeophys/CanopyFluxesMod.F90. See the -notes on this in the description of the irrigation model in the - -Technical Descriptions of the Interactive Crop Management and Interactive -Irrigation Models. - - --irrig with -crop on -Irrigation doesn't work with the prognostic crop model. Irrigation is only applied to -generic crop currently, which negates it's practical usage. We also have a known -problem when both are on (see bug 1326 in the &KnownBugs; file). -If you try to run in this mode, the &clm; &buildnml; will return with an error. - - --lnd_res: Fine-mesh mode, functional, but experimental - --rcp: Representative Concentration Pathway (RCP) -for future scenarios, functional for limited resolutions, but experimental - --datm_*: All options that start with "datm_" they are -only used for &clm; stand-alone testing. - --drv_*: All options that start with "drv_" they are -only used for &clm; stand-alone testing. - - - - - - -Namelist items that should NOT be exercised: - - -casa namelist options: lnpp, lalloc, q10, spunup, and fcpool - - CASA has NOT been scientifically validated in &clm4;. - - - - suplnitro='ALL' - The suplnitro namelist option to the CN Biogeochemistry model supplies -unlimited nitrogen and therefore vegetation is over-productive in this mode. - - - -urban_traffic: Not currently functional - - - - - - - - - -What are the UNIX utilities required to use &clm;? - -Running the &clm; requires a suite of UNIX utilities and programs and you should -make sure you have all of these available before trying to go forward with using -it. If you are missing one of these you should contact the systems administrator -for the machine you wish to run on and make sure they are installed. - -&FORTRAN90; compiler -"C" compiler -GNU make -UNIX csh and tcsh shells -UNIX sh shell -UNIX bash shell -UNIX awk -UNIX sed -&netcdf; library -MPI Library -"C" pre-processor -&perl; -Autoconf -m4 macro processor -Parallel &netcdf; (optional) -&ncl; (for some of the offline tools for creating/modifying &clm; input -datasets see for more information on &ncl;) -Python (optional, needed for &ptclm;) -xsltproc, docbook and docbook utilities (optional, needed to build the Users-Guide) -protex and latex2html (optional, needed to build the Code-Reference Guide) - - - - - - - - - &cesm; Online Bulletin Board - &cesmrel; Scripts User's Guide - - -Other resources to get help from - - -In addition to this users-guide there are several other resources that are available -to help you use &clm4;. The first one is the &cesm; User's-Guide, which documents the entire -process of creating cases with &cesm;. The next is the &cesm; bulletin board which is -a web-site for exchanging information between users of &cesm;. There are also &clm; -web-pages specific for &clm;, and finally there is an email address to report bugs that -you find in &cesm1;. - - - -The &cesm; User's-Guide - -&clmrel; is always run from within the standard &cesmrel; build and run scripts. Therefore, the -user of &clm4; -should familiarize themselves with the &cesmrel; scripts and understand how to work with them. -User's-Guide documentation on the &cesmrel; scripts are available from the following web-page. The purpose -of this &clmrel; User's Guide is to give the &clm4; user more complete details on how to work -with &clm; and the set of tools that support &clm;, as well as to give examples that are unique to the use -of &clm;. However, the &cesmrel; Scripts User's-Guide remains the primary source to get detailed -information on how to build and run the &cesm; system. - -&cesm1; Scripts -User's-Guide - - - - - -The &cesm; Bulletin Board - -There is a rich and diverse set of people that use the &cesm;, and often it is useful to be in contact with -others to get help in solving problems or trying something new. To facilitate this we have an online -Bulletin Board for questions on the &cesm;. There are also different sections in the Bulletin Board for -the different component models or for different topics. - -&cesm; Online Bulletin Board - - - - - -The &clm; web pages - -The main &clm; web page contains information on the &clm;, it's history, developers, as well as -downloads for previous model versions. There are also documentation text files in the -models/lnd/clm/doc directory that give some quick information on using &clm;. - -&clm; web page -&clm; Documentation Text Files - -Also note that several of the XML database files can be viewed in a web browser to get -a nice table of namelist options, namelist defaults, or compsets. Simply view them -as a local file and bring up one of the following files: - -models/lnd/clm/bld/namelist_files/namelist_definition.xml --- definition of &clm; namelist items. -models/lnd/clm/bld/namelist_files/namelist_defaults_clm.xml --- default values for &clm; namelist items. -scripts/ccsm_utils/Case.template/config_definition.xml --- definition of all env_*.xml items. -scripts/ccsm_utils/Case.template/config_compsets.xml --- definition of all the compsets. -models/lnd/clm/bld/namelist_files/history_fields.xml --- definition of &clm; history fields. - - - - - -Reporting bugs in &clm4; - -If you have any problems, additional questions, bug reports, or any other feedback, please send an email to -cesmhelp@cgd.ucar.edu. If you find bad, wrong, or misleading information - in this users guide send an email to erik@ucar.edu. The current list of -known issues for &clmrel; is in the &KnownBugs; file, and the list of issues for -&cesmrel; is at... - -&cesmwebmodelrel;/tags/cesm1_0_3/#PROBLEMS -. - - - - - - - - diff --git a/doc/UsersGuide/ptclm.xml b/doc/UsersGuide/ptclm.xml deleted file mode 100644 index 6c0ef2aec8..0000000000 --- a/doc/UsersGuide/ptclm.xml +++ /dev/null @@ -1,992 +0,0 @@ - - -How to run &ptclm; - -&ptclm; (pronounced point clime) is a Python script to help you set up PoinT CLM -simulations. It runs the &clm; tools for you to get datasets set up, and copies them -to a location you can use them according to the &CLMUSRDAT; naming convention. Then -it runs create_newcase for you and modifies the env settings and -namelist appropriately. &ptclm; has a simple ASCII text file for storing basic -information for your sites. We also have complete lists for AmeriFlux and Fluxnet-Canada -sites, although we only have the meteorology data for one site. For other sites you -will need to obtain the meteorology data and translate it to a format that the &cesm; -datm model can use. But, even without meteorology data &ptclm; is useful to setup -datasets to run with standard &CLMQIAN; data. - - - -The original authors of &ptclm; are: Daniel M. Ricciuto, Dali Wang, Peter E. Thornton, -Wilfred M. Post all at Environmental Sciences Division, Oak Ridge National Laboratory -(ORNL) and R. Quinn Thomas at Cornell University. It was then modified -fairly extensively by Erik Kluzek at &ncar;. We want to thank all of these individuals -for this contribution to the &cesm; effort. We also want to thank the folks at -University of Michigan Biological Stations (US-UMB) who allowed us to use their Fluxnet -station data and import it into our inputdata repository, especially Gil Bohrer the -PI on record for this site. - - - -Introduction to PTCLM - -To get help on &ptclm; use the "--help" option as follows. - -> cd scripts/ccsm_utils/Tools/lnd/clm/PTCLM -> ./PTCLM.py --help - - - -The output to the above command is as follows: - - - -&ptclm_help; - - - - -Here we give a simple example of using &ptclm; for a straightforward case of running -at the US-UMB Fluxnet site on bluefire where we already have the meteorology data on -the machine. Note, see for permission information -to use this data. - -Example of running &ptclm; for US-UMB on bluefire - -setenv CSMDATA /fis/cgd/cseg/csm/inputdata -setenv MYCSMDATA $HOME/inputdata -setenv SITE US-UMB -setenv MYMACH bluefire -setenv MYCASE testPTCLM - -# First link the standard input files to a location you have write access -cd scripts -./link_dirtree $CSMDATA $MYCSMDATA - -# Next build all of the clm tools you will need -cd ../models/lnd/clm/tools/mksurfdata -gmake -gmake clean -cd ../mkdatadomain -gmake -gmake clean -cd ../mkgriddata -gmake -gmake clean -# next run PTCLM (NOTE -- MAKE SURE python IS IN YOUR PATH) -cd ../../../../../scripts/ccsm_utils/Tools/lnd/clm/PTCLM -./PTCLM.py -m $MYMACH --case=$MYCASE --site=$SITE --csmdata=$MYCSMDATA \ - --aerdepgrid --ndepgrid -# NOTE: we use --aerdepgrid --ndepgrid so that you use the global -# aerosol and Nitrogen deposition files rather than site-specific ones. -cd ../../../../../$MYCASE -# Finally configure, build, and run the case as normal - - - - - - -Guide to the options of &ptclm; - -There are three types of options to &ptclm;: required, configure/run-time, and -dataset generation options. The three required options are the three settings that -MUST be specified for &ptclm; to work at all. The other settings have default -values that will default to something useful. The configure/run-time options control -how the simulation will be setup and run. The dataset generation options control -the generation of datasets needed when &ptclm; is run. Most options use a double -dash "--" "longname" such as "--list", but the most common options also have a short-name -with a single dash (such as -m instead of --machine). - - -The required options to &ptclm; are: inputdata directory (-d), machine (-m) and -site-name (-s). Inputdata directory is the directory where you have the &cesm; -inputdata files, you need to have write access to this directory, so if you are -running on a machine that you do NOT have write access to the standard inputdata -location (such as &ncar; bluefire or ORNL jaguar) you need -to link the standard files to a location you do have control over. We recommend -using the scripts/link_dirtree tool to do that. "machine" is -the scripts name for the machine/compiler you will be using for your case. And -finally site-name is the name of the site that you want to run for. Site-name -can either be a valid &CLM1PT; supported dataset name or a Fluxnet site name -from the list of sites you are running on (see the --sitegroupname for more information -about the site lists). - - -After &ptclm; is run a case directory where you can then configure, build and run -your &cesm; case as normal. It also creates a README.PTCLM -in that directory that documents the commandline options to &ptclm; that were used -to create it. - - -After "help" the "list" option is one of the most useful options for getting -help on using &ptclm;. This option gives you information about some of the other -options to &ptclm;. To get a list of the machine, sites, and compsets that can be -used for &ptclm; use the "--list" option as follows. - -> cd scripts/ccsm_utils/Tools/lnd/clm/PTCLM -> ./PTCLM.py --list - - - -The output to the above command is as follows: - - - -&ptclm_list; - - - - -Overview on using &ptclm; - -Steps in running &ptclm; - -Setup Inputdata directory with write access (use -<command>link_dirtree</command> script) - -You need to setup an inputdata directory where you have write access to it. -Normally, for &ncar; machines the data is on an inputdata where the user -does NOT have write access to it. A way that you can get around this is -to use the link_dirtree script to create softlinks from -the normal location to a location you have write access to. So for example -on bluefire: - -> setenv CSMDATA /fs/cgd/csm/inputdata -> setenv MYCSMDATA $HOME/inputdata -> mkdir $MYCSMDATA -> cd scripts -> ./link_dirtree $CSMDATA $MYCSMDATA - -See for more information on this. - - - -Build the &clm; tools - -Next you need to make sure all the &clm; &FORTRAN; tools are built. - -> cd models/lnd/clm/tools/mkgriddata -> gmake -> gmake clean -> cd ../mkdatadomain -> gmake -> gmake clean -> cd ../mksurfdata -> gmake -> gmake clean - - - - -Run &ptclm; - -Next you actually run &ptclm; which does the different things listed below: - - - -&ptclm; names your case based on your input - -&ptclm; names you case based on the input you give to it. - -[Prefix_]SiteCode_Compset[_QIAN][_spinuptype] -Where: - Prefix is from the caseidprefix option (or blank if not used). - SiteCode is the site name you entered with the -s option. - Compset is the compset name you entered with the -c option. - _QIAN is part of the name only if the useQIAN is used. - _spinuptype is part of the name if one of: ad_spinup, exit_spinup, or - final_spinup is used, and the exact spinup name chosen is used. - -For example, the casename for the following will be: - -> cd scripts -> ./PTCLM.py -m bluefire -s US-UMB -d $MYCSMDATA -c I_2000_CN --ad_spinup --useQIAN - -"US-UMB_I_2000_CN_QIAN_ad_spinup". - - - -&ptclm; creates datasets for you - -It will populate $MYCSMDATA with new datasets it creates using the -&clm; tools. - - - -If a transient compset and &ptclm; finds a <filename>_dynpftdata.txt</filename> -file - -If you are running a transient compset (such as the "I_1850-2000_CN" compset) -AND you there is a file in the PTCLM_sitedata directory under -the &ptclm; directory called $SITE_dynpftdata.txt it will use -this file for the land-use changes. Otherwise it will leave land-use constant, unless -you use the pftgrid option so it uses the global dataset for landuse changes. -See for more information on this. There -is a sample transient dataset called US-Ha1_dynpftdata.txt. -Transient compsets, are compsets that create transient land-use change and -forcing conditions such as: -'I_1850-2000', 'I_1850-2000_CN', 'I_RCP8.5_CN', 'I_RCP6.0_CN', 'I_RCP4.5_CN', -or 'I_RCP2.6_CN'. - - - -&ptclm; creates a <filename>pft-physiology</filename> for you - -&ptclm; will create a local copy of the pft-physiology -specific for your site that you could then customize with changes specific -for that site. - - - -&ptclm; creates a <filename>README.PTCLM</filename> for you - -&ptclm; will create a simple text file with the command line for it in a file -called README.PTCLM in the case directory it creates for you. - - - - - - -Customize, configure, build and run case as normal - -You then customize your case as you would normally. See the chapter for more information on doing this. - - - - - - - -Details on the options of &ptclm; - -Next we discuss the configure and run-time options, dividing them up into -configure, spinup, and run-time options. - - -Configure options include: - --c MYCOMPSET, --compset=MYCOMPSET ---caseidprefix=MYCASEID ---cesm_root=BASE_CESM ---namelist=NAMELIST ---rmold ---scratchroot=SCRATCHROOT ---sitegroupname=SITEGROUP ---QIAN_tower_yrs ---useQIAN - - - - - ---compset - -The "-c" option is the most commonly used option after the required options, as it -specifies the &cesm; scripts component set to use with &ptclm;. The default compset -is the "ICN" compset with CN on for present day conditions. - - - - - ---caseidprefix - -This option gives a prefix to include in the casename when the case is created, in -case you want to customize your casenames a bit. By default, casenames are figured -out based on the other options. The argument to this option can either be a name to -prefix casenames with and/or a pathname to include. Hence, if you want cases to -appear in a specific directory you can give the pathname to that directory with this -option. - - - - - ---cesm_root - -This option is for running &ptclm; with a different root directory to &cesm; than the -version &ptclm; exists in. Normally you do NOT need to use this option. - - - - - ---namelist - -This option adds any items given into the &clm; &usernlclm; namelist. This allows you to -add customizations to the namelist before the clm.buildnml.csh file -is created for the case. - - - - - ---rmold - -This option will remove an old case directory of the same name if one exists. Otherwise, -if an old case directory already exists and you try to run &ptclm; it will return with -an error. - - - - - ---scratchroot - -This option is ONLY valid when using one of the generic machines (the -m option). -This passed onto create_newcase and gives the location where cases -will be built and run. - - - - - ---sitegroupname - -In the &ptclm; directory there is a subdirectory "PTCLM_sitedata" that contains -files with the site, PFT and soil data information for groups of sites. These site groups -are all separate ASCII files with the same prefix followed by a "_*data.txt" name. -See for more information on these files. -By default we have provided three different valid group names: - -EXAMPLE -AmeriFlux -Fluxnet-Canada - -The EXAMPLE is the group used by default and ONLY includes the US-UMB site as that -is the only site we have data provided for. The other two site groups include the -site information for all of both the AmeriFlux and Fluxnet-Canada sites. You can use -the "sitegroupname" option to use one of the other lists, or you can create your own -lists using the EXAMPLE file as an example. Your list of sites could be real world -locations or could be theoretical "virtual" sites given to exercise &clm; on -differing biomes for example. Note, see with -permission information to use the US-UMB data. - - - - - ---useQIAN - -This option says to use the standard &clm; global Qian T62 atmospheric forcing rather -than any tower site forcing data available. Otherwise, &ptclm; will try to find tower -forcing data for the specific site entered. - - - - - ---QIAN_tower_yrs - -This option is used with the "useQIAN" option to set the years to cycle over for -the Qian data. In this case Qian atmospheric forcing will be used, but the -simulation will run over the same years that tower site is available for this site. - - - - - - -Spinup options include: - ---coldstart ---ad_spinup ---exit_spinup ---final_spinup ---finidat=FINIDAT - - - - -The spinup options enable the different CN spinup modes, but also set the run -length. The coldstart option says to startup with OUT an initial condition file, while -the finidat option explicitly gives the initial condition file to use. Obviously, -the different spinup options can NOT be used together, nor can the coldstart and -finidat options be either. - - ---coldstart - -This option ensures that a cold-start will be done with arbitrary initial conditions. - - - - - ---ad_spinup - -This option enables the accelerated decomposition mode when a CN compset is used. It -also sets the run-length as given in the example for running exit spinup in -. - - - - - ---exit_spinup - -This option enables the exit spinup mode when a CN compset is used. It also sets the -run-length to a year just as given in the example for running exit spinup in -. - - - - - ---final_spinup - -This option sets the run length as given in the example for a final spinup in -. This option can be used for any compset. - - -There is a bug in the final_spinup mode for setting the run length. Because of the -bug, final_spinup mode only runs for a very short time, you'll need to edit -the run length by hand to be 50 years. See bug 1367 in the &KnownBugs; file. - - - - - - - ---finidat - -This option sets the initial condition file to startup the simulation from. - - - - - - - - - -Run-time options include: - ---debug ---run_n=MYRUN_N ---run_units=MYRUN_UNITS ---stdurbpt - - - - - - - ---debug - -This option tells &ptclm; to echo what it would do if it were run, but NOT actually -run anything. So it will show you the dataset creation commands it would use. -It does however, run create_newcase, but then it only displays -the xmlchange commands and changes that it would do. Also note -that if you give the "--rmold" option it won't delete the case directory beforehand. -Primarily this is intended for debugging the operation of &ptclm;. - - - - - ---run_n - -This option along with run_units is used to set the length for the simulation. "run_n" -is the number of units to use. -The default run length depends on the site, compset, -and configuration and for example if a "spinup" option is selected. - - - - - ---run_units - -This option is the units of time to use for the length of the simulation. It is used -along with "run_n" to set the length of the simulation. -The default run length depends on the site, compset, -and configuration and for example if a "spinup" option is selected. - - - - - ---stdurbpt - -This option turns on the "stdurbpt_pd" use-case for &CLMUSECASE;. This option -can NOT be used for compsets that set the use-case to something besides present-day. - - - - - - - - -Lastly we discuss the dataset generation options. The dataset generation options are: - ---aerdepgrid ---ndepgrid ---pftgrid ---soilgrid ---nopointdata ---owritesrfaer - - - - -The options that with a "grid" suffix all mean to create datasets using the global -gridded information rather than using the site specific point data. By default the -site specific point data is used. The "nopointdata" and "owritesrfaer" options have to -do with file creation. - - -Because supported single-point datasets already have the data created for them, you -MUST use the "nopointdata" and "ndepgrid" options when you are using a supported -single-point site. You must use "ndepgrid" even for a compset without CN. You also -can NOT use the options: "soilgrid", "pftgrid", "aerdepgrid", or "owritesrfaer". - - - - - ---aerdepgrid - -This option says to use the aerosol deposition files from the global dataset rather -than creating an interpolated version. - - -This option must NOT be used when you you are using a site that -is a supported single point dataset. - - - - - ---ndepgrid - -This option says to use the Nitrogen deposition files from the global dataset rather -than creating an interpolated version. This is only needed for compsets with CN. - - - -This option is required when you you are using a site that -is a supported single point dataset. This is true even when you are NOT using a -compset with CN. - - - - - - ---pftgrid - -This option says to use the PFT values provided on the global dataset rather than -using the specific site based values from the -PTCLM_sitedata/*_pftdata.txt file when creating the surface dataset. - - -This option must NOT be used when you you are using a site that -is a supported single point dataset. - - - - - ---soilgrid - -This option says to use the soil values provided on the global dataset rather than -using the specific site based values from the -PTCLM_sitedata/*_soildata.txt file when creating the surface dataset. - - -This option must NOT be used when you you are using a site that -is a supported single point dataset. - - - - - ---nopointdata - -This option says to NOT create any input datasets -- assume this step has already been -done. If datasets weren't already created, your case will fail when you try to run it. -In general the first time you run &ptclm; for a new site you want it to generate new -datasets, but the next time and future times you want to use this option so that it -doesn't waste a lot of time rebuilding datasets over again. - - - -This option is required when you you are using a site that -is a supported single point dataset. - - - - - - ---owritesrfaer - -This option says to overwrite any surface and/or aerosol deposition datasets that -were already created. Otherwise, the creation of these files will be skipped if a file -is already found (but it WILL create files if they don't exist). - - -This option must NOT be used when you you are using a site that -is a supported single point dataset. - - - - - - - - -Note on the aerosol and Nitrogen deposition files. When the "aerdepgrid" and "ndepgrid" -options are NOT used -- aerosol and Nitrogen deposition files will be created by -interpolating from the global datasets. However, after these interpolated files -are created you could customize them for your site with data that you provide. You -could then write protect the files and use the "nopointdata" option so that &ptclm; -doesn't try to overwrite them in the future. - - - - - - -Examples using &ptclm; - -Now let's give a few more complex examples using some of the options we have -discussed above. - - -In this first example, we'll demonstrate using a supported single point dataset, -which then requires using the "nopointdata" and "ndepgrid" options. We'll also -demonstrate the compset option, "stdurbpt" and "caseidprefix" options. - -Example of running &ptclm; for the Mexicocity supported single point -dataset - -> cd scripts/ccsm_utils/Tools/lnd/clm/PTCLM -> ./PTCLM.py -m bluefire -s 1x1_mexicocityMEX -d $CSMDATA --nopointdata --ndepgrid \ ---stdurbpt -c I --caseidprefix `pwd`/myPTCLMcases/site -> cd myPTCLMcases/site_1x1_mexicocityMEX_I -> ./configure -case -# Now build and run normally -> ./site_1x1_mexicocityMEX_I.bluefire.build -# Here we show running interactively -> ./site_1x1_mexicocityMEX_I.bluefire.run - - - - - -Now, let's demonstrate using a different group list, doing a spinup, running with Qian -global forcing data, but using tower years to set the years to run over. This uses -the options: sitegroupname, ad_spinup, useQIAN, and QIANtower_years. - -Example of running &ptclm; for a spinup simulation with Qian data for tower years. - - -> cd scripts/ccsm_utils/Tools/lnd/clm/PTCLM -> ./PTCLM.py -m bluefire -s US-Ha1 -d $CSMDATA --sitegroupname AmeriFlux \ ---ad_spinup --useQIAN --QIAN_tower_yrs -> cd ../../../../../US-Ha1_ICN_QIAN_ad_spinup -> ./configure -case -# Now build and run normally -> ./US-Ha1_ICN_QIAN_ad_spinup.bluefire.build -# Here we show running interactively -> ./US-Ha1_ICN_QIAN_ad_spinup.bluefire.run - - - - - -Finally, let's demonstrate using a generic machine (which then requires the scratchroot -option), using the global grid for PFT and soil types, and setting the run length -to two months. - -Example of running &ptclm; on a generic machine with global PFT and soil types -dataset - -> cd scripts/ccsm_utils/Tools/lnd/clm/PTCLM -# Note, see the with permission information -# to use the US-UMB data. -> ./PTCLM.py -m generic_darwin_intel -s US-UMB -d $CSMDATA --pftgrid --soilgrid \ ---scratchroot $HOME --run_n 2 --run_units nmonths -> cd ../../../../../US-UMB_ICN -> ./configure -case -# Now build -> ./US-UMB_ICN.generic_darwin_intel.build -# To get the files from the svn server... -# First list the files from the streams text file -> ../ccsm_utils/Tools/listfilesin_streams \ --t $HOME/US-UMB_ICN/run/clm1PT.1x1pt_US-UMB.stream.txt -l \ -> Buildconf/datm.input_data_list -# And now run the script to export data to your machine -> ../ccsm_utils/Tools/check_input_data -export -# Here we show running interactively -> ./US-UMB_ICN.generic_darwin_intel.run - - - - -Because of Bug 1364, when running this case as above we get a floating point -error after reaching time-step 124 for the example exactly as above. Other -machines or compilers probably won't have this problem. See the &KnownBugs; file -for more information on this problem. - - - - -As documented in Bug 1368, spinning up the US-UMB site for a I2000CN compset gives -zero Gross Primary Production (GPP). If the user wishes to use this site for &clmcn;, -they'll need to address this issue. -See the &KnownBugs; file for more information on this problem. - - - - - - -Adding data for use by &ptclm; - -&ptclm; Group Site Lists - -The "sitegroupname" option to &ptclm; looks for groups of sites in the -files in the PTCLM_sitedata directory under the &ptclm; directory. -You can add new names available for this option including your own lists of sites, by -adding more files in this directory. There are three files for each "sitegroupname": -$SITEGROUP_sitedata.txt, -$SITEGROUP_soildata.txt -and $SITEGROUP_pftdata.txt (where $SITEGROUP is the name that would -be entered as "sitegroupname" to &ptclm;). Each file needs to have the same list of sites, -but gives different information: site data, PFT data, and soil data respectively. -Although the site codes need to be the same between the three files, the files do NOT -have to be in the same order. Each file has a one-line header that lists the contents -of each column which are separated by commas. The first column for each of the files -is the "site_code" which must be consistent between the three files. The site code -can be any unique character string, but in general we use the AmeriFlux site code. - - -Site data file: $SITEGROUP_sitedata.txt): The header for -this file is: - -site_code,name,state,lon,lat,elev,startyear,endyear,alignyear - -The columns: name, state, and elevation are informational only. Name is a longer -descriptive name of the site, and state is the state for U.S. sites or country -for non U.S. sites. The columns: lon and lat are the longitude and latitude of -the location in decimal degrees. The last three columns are the start and ending -year for the data and the align year for an 1850 case for the data. The align year -is currently unused. - - -Soil data file: $SITEGROUP_soildata.txt): The header for this -file is: - -site_code,soil_depth,n_layers,layer_depth,layer_sand%,layer_clay% - -The first three fields after "site_code" are currently unused. The only two that -are used are the percent sand and clay columns to set the soil texture. - - -PFT data file: $SITEGROUP_pftdata.txt): The header for this -file is: - -site_code,pft_f1,pft_c1,pft_f2,pft_c2,pft_f3,pft_c3,pft_f4,pft_c4,pft_f5,pft_c5 - -This file gives the vegetation coverage for the different vegetation types for the site. -The file only supports up to five PFT's at the same time. The columns with "pft_f" are -the fractions for each PFT, and the columns with "pft_c" is the integer index of the -given PFT. Look at the pft-physiology file to see what the PFT index for each PFT type -is. - - - - -Dynamic Land-Use Change Files for use by &ptclm; - -There is a mechanism for giving site-specific land-use change in &ptclm;. Adding -site specific files to the PTCLM_sitedata directory under -&ptclm; allows you to specify the change in vegetation and change in harvesting -(for the CN model) for that site. Files are named: -$SITE_dynpftdata.txt. There is a sample file for the US-Ha1 -site called: US-Ha1_dynpftdata.txt. The file has a one-line -header with the information that the file has, and then one-line for each year -with a transition. The header line is as follows: - -trans_year,pft_f1,pft_c1,pft_f2,pft_c2,pft_f3,pft_c3,pft_f4,pft_c4,pft_f5,pft_c5,har_vh1,har_vh2,har_sh1,har_sh2,har_sh3,graze,hold_harv,hold_graze - -This file only requires a line for each year where a transition or harvest happens. As -in the "pftdata" file above "pft_f" refers to the fraction and "pft_c" refers to the -PFT index, and only up to five vegetation types are allowed to co-exist. The last -eight columns have to do with harvesting and grazing. The last two columns are whether -to hold harvesting and/or grazing constant until the next transition year and will -just be either 1 or 0. This file will be converted by the -PTCLM_sitedata/cnvrt_trnsyrs2_landuse_timeseries_txtfile.pl script in the &ptclm; -directory to a format that mksurfdata can read that has an entry -for each year for the range of years valid for the compset in question. - - - - -Converting AmeriFlux Data for use by &ptclm; - -AmeriFlux data comes in comma separated format and is available from: - -http://public.ornl.gov/ameriflux/dataproducts.shtml. Before you -download the data you need to agree to the usage terms. - - -Here is a copy of the usage terms from the web-site on June/13/2011. - - -"The AmeriFlux data provided on this site are freely available and were furnished by -individual AmeriFlux scientists who encourage their use. Please kindly inform the -appropriate AmeriFlux scientist(s) of how you are using the data and of any publication -plans. Please acknowledge the data source as a citation or in the acknowledgments if the -data are not yet published. If the AmeriFlux Principal Investigators (PIs) feel that they -should be acknowledged or offered participation as authors, they will let you know and we -assume that an agreement on such matters will be reached before publishing and/or use of -the data for publication. If your work directly competes with the PI's analysis they may -ask that they have the opportunity to submit a manuscript before you submit one that uses -unpublished data. In addition, when publishing, please acknowledge the agency that -supported the research. Lastly, we kindly request that those publishing papers using -AmeriFlux data provide preprints to the PIs providing the data and to the data archive at -the Carbon Dioxide Information Analysis Center (CDIAC)." - - -The above agreement applies to the "US-UMB" dataset imported into our repository as -well, and Gil Bohrer is the PI on record for that dataset. - - -The &cesm; can NOT handle missing data, so we recommend using the "Level 4" Gap filled -datasets. -The fields will also need to be renamed. The "WS" column becomes "WIND", "PREC" becomes -"PRECmms", "RH" stays as "RH", "TA" becomes "TBOT", "Rg" becomes "FSDS", "Rgl" becomes -"FLDS", "PRESS" becomes "PSRF". "ZBOT" can just be set to the constant of "30" (m). -The units of Temperature need to be converted from "Celsius" to "Kelvin" (use the -value in SHR_CONST_TKFRZ in the file -models/csm_share/shr/shr_const.F90 of 273.15. -The units of Pressure also need to be converted from "kPa" to "Pa". LATIXY, and -LONGXY should also be set to the latitude and longitude of the site. - - - -&ptclm; transient example over a shorter time period - - -Example of running &ptclm; for transient land-use 1991-2006 for US-Ha1 on bluefire - -This is an example of using &ptclm; for Harvard Forest (AmeriFlux site code US-Ha1). In -order to do this we would've needed to have converted the AmeriFlux data into &netcdf; -format as show in the section above. Also note -that this site has a site-specific dynamic land-use change file for it -PTCLM_sitedata/US-Ha1_dynpftdata.txt in the &ptclm; directory -and this file will be used for land-use change and harvesting rather than the -global dataset. - - -> cd scripts/ccsm_utils/Tools/lnd/clm/PTCLM -# We are going to use forcing data over 1991 to 2006, but we need to start with -# a transient compset to do so, so we use the 20th Century transient: 1850-2000 -# Note: When creating the flanduse_timeseries dataset for this site it will use the -# PTCLM_sitedata/US-Ha1_dynpftdata.txt -# file for land-use change and harvesting -> ./PTCLM.py -m bluefire -s US-Ha1 -d $MYCSMDATA --sitegroupname AmeriFlux \ --c I_1850-2000_CN -> mkdir $MYCSMDATA/atm/datm7/CLM1PT_data/1x1pt_US-Ha1 -> cd $MYCSMDATA/atm/datm7/CLM1PT_data/1x1pt_US-Ha1 -# Copy data in &netcdf; format to this directory, filenames should be YYYY-MM.nc -# The fieldnames on the file should be: -# FLDS,FSDS,LATIXY, LONGXY, PRECTmms,PSRF,RH,TBOT,WIND,ZBOT -# With units -# W/m2,W/m2,degrees_N,degrees_E,mm/s, Pa, %, K, m/s, m -# The time coordinate units should be: days since YYYY-MM-DD 00:00:00 -> cd ../../../../../US-Ha1_I_1850-2000_CN -# We need to turn cold-start on, so it doesn't expect an initial condition file -# preferably, you would generate your own initial condition file and then use -# the --finidat option to &ptclm; to enter it -> ./xmlchange -file env_conf.xml -id CLM_FORCE_COLDSTART -val on -# Now we need to set the start date to 1991, and have it cycle forcing data -# over 1991 to 2006 -> ./xmlchange -file env_conf.xml -id RUN_STARTDATE -val 1991-01-01 -> ./xmlchange -file env_conf.xml -id DATM_CLMNCEP_YR_ALIGN -val 1991 -> ./xmlchange -file env_conf.xml -id DATM_CLMNCEP_YR_END -val 2006 -> ./xmlchange -file env_conf.xml -id CLM_NAMELIST_OPTS -val \ -# Similarly for Nitrogen deposition data we cycle over: 1991 to 2006 -"model_year_align_ndep=1991,stream_year_first_ndep=1991,stream_year_last_ndep=2006" -# Now configure the case, and we'll edit the datm namelist for prescribed aerosols -> ./configure -case -# We also need to change the datm to run with aerosols over the 1991-2006 period -cat << EOF > patch.diff -*** datm.buildnml.csh.orig 2011-06-14 09:28:20.000000000 -0600 ---- datm.buildnml.csh 2011-06-14 09:28:57.000000000 -0600 -*************** -*** 32,38 **** - dataMode = 'CLMNCEP' - domainFile = '$DOMAINFILE' - streams = 'clm1PT.1x1pt_US-Ha1.stream.txt 1991 1991 2006 ', -! 'presaero.stream.txt 1849 1849 2006' - vectors = 'null','null' - mapmask = 'nomask','nomask' - mapalgo = 'nn','nn' ---- 32,38 ---- - dataMode = 'CLMNCEP' - domainFile = '$DOMAINFILE' - streams = 'clm1PT.1x1pt_US-Ha1.stream.txt 1991 1991 2006 ', -! 'presaero.stream.txt 1991 1991 2006' - vectors = 'null','null' - mapmask = 'nomask','nomask' - mapalgo = 'nn','nn' -EOF -# Apply the above patch to the datm build namelist file -> patch Buildconf/datm.buildnml.csh patch.diff - - - - - - -Because of bug 1361, this won't work out of the box. You'll need to add the change -to PTCLM.py given in the KnownBugs file on this issue. - - - - - - - - -A bit about the structure of &ptclm;, what it does, and how it works - -A large part of &ptclm; just sets up the different options and does error checking -on the options given. &ptclm; then uses the options provided to use -create_newcase to create a new case. It then queries both the -case directory and/or the XML database (using -queryDefaultNamelist.pl in models/lnd/clm/bld -and does other settings for the case. It then runs the different &clm; tools in turn to -create the necessary datasets and points to them in the case with the &CLMUSRDAT; option. -It runs mkgriddata, mksurfdata.pl, and -mkdatadomain as well as the aerdepregrid.ncl and -ndepregrid.ncl &ncl; scripts. mkgriddata and -mkdatadomain have template namelist files in the -scripts/ccsm_utils/Tools/lnd/clm/PTCLM/usr_files directory. -When running mksurfdata.pl if it finds a -$SITE_dynpftdata.txt in the -scripts/ccsm_utils/Tools/lnd/clm/PTCLM/PTCLM_sitedata directory -it will use that file for transient landuse changes (there's a sample file for -"US-Ha1" called US-Ha1_dynpftdata.txt). -It modifies the different env*.xml using -xmlchange and creates an initial &usernlclm; filename. After -&ptclm; is run you can then make changes to the case by hand, and configure, build -and run as normal. - - -There is a simple test script to test &ptclm;. See -for more information on using it. - - - - - diff --git a/doc/UsersGuide/single_point.xml b/doc/UsersGuide/single_point.xml deleted file mode 100644 index b07f76ecb6..0000000000 --- a/doc/UsersGuide/single_point.xml +++ /dev/null @@ -1,930 +0,0 @@ - - - -How to run Single-Point/Regional cases - -The &clm; also allows you to set up and run cases with a single-point or a local region as well -as global resolutions. This is often useful for running quick cases for testing, evaluating -specific vegetation types, or land-units, or running with observed data for a specific site. -There are four different ways to do this: &PTSMODE;, -&CLM1PT;, &CLMUSRDAT;, and with &ptclm;. - -&PTSMODE; -- to run for a single point -using global datasets. -&CLM1PT; -- to run for a supported single-point -or regional dataset. -&CLMUSRDAT; -- to run using your own datasets (single-point -or regional). -&ptclm; -- to easily setup simulations to run for -tower sites.. - - - - -&PTSMODE; and &ptclm; only work for a single point, while the other two options can -also work for regional datasets as well. - - - -Which Single Point Option Should I choose? - -In general is the quick and dirty method -that gets you started without having to create datasets -- but has limitations. It's -good for an initial attempt at seeing results for a point of interest, but since you -can NOT restart with it, it's usage is limited. It is the quickest method as you can -create a case for it directly from create_newcase. Although you -can't restart, running a single point is very fast, and you can run for long -simulation times even without restarts. If you need restarts a good solution is to use -getregional_datasets.pl and &CLMUSRDAT; -which can get you running almost as quickly as well as -&PTSMODE;. Like -&PTSMODE; - only runs for points that exist within -a global dataset. - - -Running &CLM1PT; is a great solution, if one of the supported -single-point/regional datasets, is your region of interest (see -). All the datasets are -created for you, and you can easily select one and run, pretty much, out of the box -with it. The problem is that there is a very limited set of supported datasets. You -can also use this method for your own datasets, but you have to create the datasets, -and add them to the XML database and to the &datm;. This is worthwhile if you want to -repeat many multiple cases for a given point or region. - - -Next, &CLMUSRDAT; is the best way to setup cases quickly -where you have to create your own datasets (see -). With this method you don't have to -change &datm; or add files to the XML database -- but you have to follow a strict -naming convention for files. However, once the files are named and in the proper -location, you can easily setup new cases that use these datasets. This is good -for treating all the required datasets as a "group" and for a particular -model version. For advanced &clm; developers who need to track dataset changes with -different model versions you would be best off adding these datasets as supported -datasets with the &CLM1PT; method. - - -Lastly &ptclm; is a great way to easily create datasets, -setup simulations and run simulations for tower sites. It takes advantage of both -&CLM1PT; and &CLMUSRDAT; internally. A big advantage to it, is that it's one-stop -shopping, it runs tools to create datasets, and runs create_newcase -and sets the appropriate env variables for you. So you only have to learn how to run -one tool, rather than work with many different ones. &ptclm; is described in the next -chapter . - - -Finally, if you also have meteorology data that you want to force your &clm; simulations -with you'll need to setup cases as described in . -You'll need to create &clm; datasets either according to &CLM1PT; -or &CLMUSRDAT;, but you'll also need to modify &datm; to use -your forcing data. And you'll need to change your forcing data to be in a format that -&datm; can use. In the &ptclm; chapter the -section tells you how to use AmeriFlux data for atmospheric forcing. - - - - -Running &PTSMODE; configurations - -&PTSMODE; enables you to run the model using global datasets, but just picking a -single point from those datasets and operating on it. It can be a very quick way to do fast -simulations and get a quick turnaround. - - -To setup a &PTSMODE; simulation you use the "-pts_lat" and "-pts_lon" -arguments to create_newcase to give the latitude and longitude of the point you want to -simulate for (the code will pick the point on the global grid nearest to the point you -give. Here's an example to setup a simulation for the nearest point at 2-degree resolution -to Boulder Colorado. - -> cd scripts -> ./create_newcase -case testPTS_MODE -res f19_g16 -compset I -mach bluefire \ --pts_lat 40.0 -pts_lon -105 -> cd testPTS_MODE -# We make sure the model will start up cold rather than using initial conditions -> ./xmlchange -file env_conf.xml -id &CLMFORCECOLD; -val on -> ./xmlchange -file env_conf.xml -id RUN_TYPE -val startup - -Then configure, build and run as normal. We make sure initial conditions are NOT used -since &PTSMODE; currently CAN NOT run with initial conditions. - - - -By default it sets up to run with -USE_MPISERIAL (in the env_build.xml file) turned on, -which allows you to run the model interactively. On some machines this mode is NOT -supported and you may need to change it to FALSE before you are able to build. - - - - -&PTSMODE; currently does NOT restart nor -is it able to startup from global initial condition files. See bugs "1017 and 1025" -in the KnownLimitations file. - - - - -You can change the point you are simulating for at run-time by changing the values of -PTS_LAT and PTS_LON in the env_run.xml file. - - - - -Note, that when running with &PTSMODE; the number of processors -is automatically set to one. When running a single grid point you can only use a single -processor. You might also want to set the "env_conf" variable: USE_MPISERIAL to -TRUE so that you can also run interactively without having to use -&mpi; to start up your job. - - - - -Warning about Running with a Single-Processor on a Batch Machine - -This problem always comes up when running for a single point, because you can only use -a single-processor, but may come up in other instances when you are running with -one processor. This applies to all the different ways of running in single-point mode. - - - -A warning for submitting single-point simulations to the batch que when only using -one processor. On many machines this will mean using up at least an entire node, and -being charged for all the CPU's on that node even if you aren't using them. For example, -on the &ncar; machine bluefire, there are 32 processors for each node -and the batch scripts are setup to have exclusive use of that node (and hence be charged -for all 32 processors). There are similar issues on other machines, below we show you -what to do when running on bluefire. - - -To change this on bluefire -- change the following: - -#BSUB -q regular -#BSUB -N -#BSUB -x - -to... - -#BSUB -q share -#BSUB -N - -so remove the "#BSUB -x" which gives you the entire node exclusively, and change to the -share que. One other machines you may have to do something similar, but the particulars -depend on the given machine, hence you will need to consult with the system -administrators for the given machine you are running on. - - - - -Another similar problem on many machines is that some batch ques have a minimum number -of nodes or processors that can be used. On these machine you may have to change the -queue (in some way similar to the above for bluefire) and possibly the time-limits of -the job, to get it to run in the batch que. - - - -Another way to get around this problem is to run the job interactively using -USE_MPISERIAL so that you don't submit the job to the batch que. -For single point mode you also may want to consider using a smaller workstation or -cluster, rather than a super-computer, because you can't take advantage of the -multi-processing power of the super-computer anyway. - - - - -Running Supported Single-point/Regional Datasets - -In addition to &PTSMODE; the &clm; supports running using single-point or -regional datasets that are customized to a particular region. In the section below we -tell the user how to create their own dataset, but we also support a small number of -single-point and regional datasets that are ready to setup and run in the CESM modeling -system. - - -To get the list of supported dataset resolutions see the method given in the -section on use of &CLM1PT;, which results in the following: - -&res_list; - -The resolution names that have an underscore in them ("_") are all single-point or -regional resolutions. -To run with the supported single-point and regional datasets, you setup a simulation for the -"pt1_pt1" resolution and give the short-name for the file to use in the -env_conf.xml file. - - -To run for the Brazil test site -do the following: - -Example of running &clm; over a single-point test site in Brazil -with the default Qian atmosphere data forcing. - - -> cd scripts -> ./create_newcase -case testSPDATASET -res pt1_pt1 -compset I \ --mach bluefire -> cd testSPDATASET -# Configure to run for the test site -> set SITE=1x1_brazil -> ./xmlchange -file env_conf.xml -id &CLMCONFIG; -val "-sitespf_pt $SITE" -> ./xmlchange -file env_conf.xml -id &CLM1PT; -val $SITE - - - - -Then configure, build and run normally. - - -Then to run for the urban Mexico City Mexico test site that also has atmosphere -forcing data, but to run it with the Qian forcing data, but over the period for -which it's own forcing data is provided do the following: - -Example of running &clm; over the single-point of Mexicocity Mexico -with the default Qian atmosphere data forcing. - - -> cd scripts -> ./create_newcase -case testSPDATASET -res pt1_pt1 -compset I \ --mach bluefire -> cd testSPDATASET -# Set a variable to the site you want to use (as it's used several times below) -> set SITE=1x1_mexicocityMEX -# Configure to run for the urban test site -> ./xmlchange -file env_conf.xml -id &CLMCONFIG; -val "-sitespf_pt $SITE" -> ./xmlchange -file env_conf.xml -id &CLM1PT; -val $SITE -# Set &datm; prescribed aerosols to single-point dataset -# Will then use the dataset with just the point for this $SITE -> ./xmlchange -file env_conf.xml -id DATM_PRESAERO -val pt1_pt1 -# -# Set some of the settings that are particular to this site, by values contained -# in the XML database. For some sites, or for new sites this information won't be -# stored. And the queryDefaultNamelist.pl command will abort. -# -# Set &datm; start and end range (optional just to run over the same years that -# atmospheric forcing data is available for this site) -> ./xmlchange -file env_conf.xml -id DATM_CLMNCEP_YR_START -val \ -`../../models/lnd/clm/bld/queryDefaultNamelist.pl -res $SITE \ --namelist default_settings -silent -var datm_cycle_beg_year -justvalue` -> ./xmlchange -file env_conf.xml -id DATM_CLMNCEP_YR_END -val \ -`../../models/lnd/clm/bld/queryDefaultNamelist.pl -res $SITE \ --namelist default_settings -silent -var datm_cycle_end_year -justvalue` - - - - -Then configure, build and run normally. - - - -Just like &PTSMODE; above, By default it sets up to run with -USE_MPISERIAL (in the env_build.xml file) turned on, -which allows you to run the model interactively. On some machines this mode is NOT -supported and you may need to change it to FALSE before you are able to build. - - - - -See for a warning about running single-point jobs -on batch machines. - - - - -Note, that when running a pt1_pt1 resolution the number of processors -is automatically set to one. When running a single grid point you can only use a single -processor. You might also want to set the "env_conf" variable: USE_MPISERIAL to -TRUE so that you can also run interactively without having to use -mpi to start up your job. - - - -Running Supported Single-point Datasets that have their own Atmospheric Forcing - -Of the supported single-point datasets we have three that also have atmospheric forcing data -that go with them: Mexico City (Mexico), Vancouver, (Canada, British Columbia), and -urbanc_alpha (test data for an Urban inter-comparison project). Mexico city and Vancouver -also have "#ifdef" in the source code for them to work with modified urban data -parameters that are particular to these locations. They can be turned on by using -the &CLMCONFIG; &envconf; variable to set the "-sitespf_pt" option in the &clm; -&configure;. To turn on the atmospheric forcing for these datasets, you set the -&envconf; DATM_MODE variable to "CLM1PT", and then the atmospheric -forcing datasets will be used for the point picked. - - -When running with datasets that have their own atmospheric forcing you need to be careful -to run over the period that data is available. If you have at least one year of forcing -it will cycle over the available data over and over again no matter how long of a simulation -you run. However, if you have less than a years worth of data (or if the start date doesn't -start at the beginning of the year, or the end date doesn't end at the end of the year) then -you won't be able to run over anything but the data extent. In this case you will need to -carefully set the RUN_STARTDATE, START_TOD and -STOP_N/STOP_OPTION variables for your case to run over the entire time extent -of your data. For the supported data points, these values are in the XML database -and you can use the queryDefaultNamelist.pl script to query the values -and set them for your case (they are set for the three urban test cases: Mexicocity, Vancouver, and -urbanc_alpha). - - -In the example below we will show how to do this for the Vancouver, Canada point. - - -Example of running &clm; over the single-point of Vancouver Canada with -supplied atmospheric forcing data for Vancouver. - - -> cd scripts -# Create a case at the single-point resolutions -> ./create_newcase -case testSPDATASETnAtmForcing -res pt1_pt1 -compset I \ --mach bluefire -> cd testSPDATASETnAtmForcing -# Set a variable to the site you want to use (as it's used several times below) -> set SITE=1x1_vancouverCAN -> ./xmlchange -file env_conf.xml -id &CLMCONFIG; -val "-sitespf_pt $SITE" -# Now set the CLM single-point variable to the site name -> ./xmlchange -file env_conf.xml -id &CLM1PT; -val $SITE -# Set the aerosols to use the single-point dataset for 2000 conditions -# You could also use the default global dataset, but running would be a bit slower -> ./xmlchange -file env_conf.xml -id DATM_MODE -val CLM1PT -# Set the coupling frequency to once an hour -> ./xmlchange -file env_conf.xml -id ATM_NCPL -val 24 -# Set the standard namelist options for an urban test site -> ./xmlchange -file env_conf.xml -id CLM_NML_USE_CASE -val stdurbpt -# Set many of the settings that are particular to this site, by values contained -# in the XML database. For some sites, or for new sites this information won't be -# stored. And the queryDefaultNamelist.pl command will abort. -# -# Set the start date -> setenv RUN_STARTDATE \ -`../../models/lnd/clm/bld/queryDefaultNamelist.pl -res $SITE \ --namelist default_settings -silent -var run_startdate -justvalue` -> setenv STARTDATE `echo $RUN_STARTDATE | sed s/-//g` -> @ START_YEAR = $STARTDATE / 10000 -> ./xmlchange -file env_conf.xml -id RUN_STARTDATE -val $RUN_STARTDATE -# Set the run length and start time of day -> ./xmlchange -file env_run.xml -id STOP_OPTION \ --val `../../models/lnd/clm/bld/queryDefaultNamelist.pl -res $SITE \ --namelist seq_timemgr_inparm -silent -var stop_option -justvalue` -> setenv STOP_N \ -`../../models/lnd/clm/bld/queryDefaultNamelist.pl -res $SITE \ --namelist seq_timemgr_inparm -silent -var stop_n -justvalue` -> ./xmlchange -file env_run.xml -id STOP_N -val $STOP_N -> ./xmlchange -file env_run.xml -id START_TOD \ --val `../../models/lnd/clm/bld/queryDefaultNamelist.pl -res $SITE \ --namelist seq_timemgr_inparm -silent -var start_tod -justvalue` -# Set &datm; start and end range... -> ./xmlchange -file env_conf.xml -id DATM_CLMNCEP_YR_START -val -`../../models/lnd/clm/bld/queryDefaultNamelist.pl -res $SITE \ --namelist default_settings -silent -var datm_cycle_beg_year -justvalue` -> ./xmlchange -file env_conf.xml -id DATM_CLMNCEP_YR_END -val -`../../models/lnd/clm/bld/queryDefaultNamelist.pl -res $SITE \ --namelist default_settings -silent -var datm_cycle_end_year -justvalue` -# Set the User namelist to set the output frequencies of the history files -# Setting the stdurbpt use-case option create three history file streams -# The frequencies and number of time-samples needs to be set -> cat << EOF > &usernlclm; -&clm_inparm - hist_mfilt = $STOP_N,$STOP_N,$STOP_N - hist_nhtfrq = -1,-1,-1 -/ -EOF -# Set align year to start year as defined above -> ./xmlchange -file env_conf.xml -id DATM_CLMNCEP_YR_ALIGN -val $START_YEAR -# Set &datm; prescribed aerosols to single-point dataset -# Will then use the dataset with just the point for this site -> ./xmlchange -file env_conf.xml -id DATM_PRESAERO -val pt1_pt1 -> ./configure -case - - - - -If you don't set the start-year and run-length carefully as shown above the -model will abort with a "dtlimit error" in the atmosphere model (see bug 1110 in -the KnownLimitations file for documentation on this). Since, the forcing data for -this site (and the MexicoCity site) is less than a year, the model won't be able to -run for a full year. The 1x1_urbanc_alpha site has data for more -than a full year, but neither year is complete hence, it has the same problem (see the -problem for this site above). - - - - -Just like &PTSMODE; above, By default it sets up to run with -USE_MPISERIAL (in the env_build.xml file) turned on, -which allows you to run the model interactively. On some machines this mode is NOT -supported and you may need to change it to FALSE before you are able to build. - - - - -See for a warning about running single-point jobs -on batch machines. - - - - -Note, that when running a pt1_pt1 resolution the number of processors -is automatically set to one. When running a single grid point you can only use a single -processor. You might also want to set the "env_conf" variable: USE_MPISERIAL to -TRUE so that you can also run interactively without having to use -mpi to start up your job. - - - - - - -Creating your own single-point/regional surface datasets - -The file: -Quickstart.userdatasets in the -models/lnd/clm/doc directory gives guidelines on how to create and run -with your own single-point or regional datasets. Below we reprint the above guide. - -&quickstart_userdata; - - - - -Using getregional_datasets.pl to get a complete suite of single-point/regional -surface datasets from global ones - -Use the regional extraction script to get regional datasets from the global ones -The getregional_datasets.pl script to extract out regional datasets of interest. -Note, the script works on all files other than the "finidat" file as it's a 1D vector file. -The script will extract out a block of gridpoints from all the input global datasets, -and create the full suite of input datasets to run over that block. The input datasets -will be named according to the input "id" you give them and the id can then be used -as input to &CLMUSRDAT; to create a case that uses it. See -the section on &clm; Script Configuration Items for -more information on setting &CLMUSRDAT; (in ). The list of files extracted by -their name used in the namelists are: -fatmgrid, fatmlndfrc, -fsurdat, flanduse_timeseries, -stream_fldfilename_ndep, and the &datm; files -domainfile, and faerdep. -For more information on these files see the Table on required files. - - -The alternatives to using this script are to use &PTSMODE;, -discussed earlier, to use &ptclm; discussed in the next chapter, or creating the files -individually using the different file creation tools (given in the -Tools Chapter). Creating -all the files individually takes quite a bit of effort and time. &PTSMODE; -has some limitations as discussed earlier, but also as it uses global files, is -a bit slower when running simulations than using files that just have the set -of points you want to run over. Another advantage is that once you've created the -files using this script you can customize them if you have data on this specific -location that you can replace with what's already in these files. - - -The script requires the use of both "Perl" and "NCL". See the NCL Script section in the Tools Chapter -on getting and using NCL and NCL scripts. The main script to use is a &perl; script -which will then in turn call the NCL script that actually creates the output files. -The ncl script gets it's settings from environment variables set by the perl script. -To get help with the script use "-help" as follows: - -> cd models/lnd/clm/tools/ncl_scripts -> ./getregional_datasets.pl -help - -The output of the above is: - -&getreg_datasets; - - - -The required options are: -id, --ne, and -se, for the output identifier -name to use in the filenames, latitude and longitude of the Northeast corner, and -latitude and longitude of the SouthEast corner (in degrees). Options that specify -which files will be used are: -mask, -res, --rcp, -sim_year, and -sim_yr_rng -for the land-mask to use, global resolution name, representative concentration pathway -for future scenarios, simulation year, and simulation year range. The location of the -input and output files will be determined by the option -mycsmdata -(can also be set by using the environment variable $CSMDATA). If -you are running on a machine like at &ncar; where you do NOT have write permission -to the CESM inputdata files, you should use the scripts/link_dirtree -script to create soft-links of the original files to a location that you can write -to. This way you can use both your new files you created as well as the original -files and use them from the same location. - - -The remaining options to the script are -debug, -and -verbose. -debug is used to show what -would happen if the script was run, without creating the actual files. --verbose adds extra log output while creating the files so you -can more easily see what the script is doing. - - -For example, Run the extraction for data from 52-73 North latitude, 190-220 longitude -that creates 13x12 gridcell region from the f19 (1.9x2.5) global resolution over Alaska. - -Example of running <command>getregional_datasets.pl</command> to get -datasets for a specific region over Alaska - -> cd scripts -# First make sure you have a inputdata location that you can write to -# You only need to do this step once, so you won't need to do this in the future -> setenv MYCSMDATA $HOME/inputdata # Set env var for the directory for input data -> ./link_dirtree $CSMDATA $MYCSMDATA -> cd ../models/lnd/clm/tools/ncl_scripts -> ./getregional_datasets.pl -sw 52,190 -ne 73,220 -id 13x12pt_f19_alaskaUSA -mycsmdata $MYCSMDATA - - -Repeat this process if you need files for multiple sim_year, resolutions, land-masks, -and sim_year_range values. - - - -See for a warning about running single-point jobs -on batch machines. - - - - -See for notes about managing your data -when using link_dirtree. - - - -Now to run a simulation with the datasets created above, you create a single-point -case, and set &CLMUSRDAT; to the identifier used above. Note that in the example below -we set the number of processors to use to one (-pecount 1). For a single point, you -should only use a single processor, but for a regional grid, such as the example below -you could use up to the number of grid points (12x13=156 processors. - - -Example of using &CLMUSRDAT; to run a simulation using user datasets for a -specific region over Alaska - -> cd scripts -# Create the case and set it to only use one processor -> ./create_newcase -case my_userdataset_test -res pt1_pt1 -compset I1850 \ --mach bluefire -> cd my_userdataset_test/ -> ./xmlchange -file env_run.xml -id DIN_LOC_ROOT_CSMDATA -val $MYCSMDATA -> ./xmlchange -file env_conf.xml -id &CLMUSRDAT; -val 13x12pt_f19_alaskaUSA -> ./xmlchange -file env_conf.xml -id &CLMBLDNML; -val '-mask gx1v6' -> ./xmlchange -file env_conf.xml -id &CLM1PT; -val 13x12pt_f19_alaskaUSA -> ./configure -case - - - - - - - -Running with your own atmosphere forcing - -Here we want to run with our own customized datasets for &clm; as well as -running with our own supplied atmosphere forcing datasets. Thus we effectively -combine the information from with -. First we need to follow -the procedures in to come up with &clm; -datasets that are customized for our point or region in question. This includes -running link_dirtree to create a directory location where you -can add your own files to it. Next, set -DATM_MODE to "CLM1PT" and &CLM1PT; and &CLMUSRDAT; to the -id of the data you created. To see a list of what the filenames need to be -see the section on setting &CLMUSRDAT;. - - -Next we need to setup the atmosphere forcing data in &netcdf; format that can be -read by &datm;. There is a list of eight variables that are expected to be on the input -files with the names and units on the following table (in the table TDEW and SHUM -are optional fields that can be used in place of RH). In the table we also list -which of the fields are required and if not required what the code will do to -replace them. If the names of the fields are different or the list is changed -from the standard list of eight fields: FLDS, FSDS, PRECTmms, -PSRF, RH, TBOT, WIND, and ZBOT, the resulting streams file will need to be modified -to take this into account (see an example streams file for this in below). - -Atmosphere Forcing Fields - - - - Short-name - Description - Units - Required? - If NOT required how replaced - - - - - FLDSincident longwave -(FLDS)W/m2No -calculates based on Temperature, Pressure and Humidity - - - FSDSincident solar -(FSDS)W/m2Yes- - - - FSDSdifincident solar (FSDS) -diffuseW/m2Nobased on FSDS - - - FSDSdirincident solar (FSDS) -directW/m2Nobased on FSDS - - - PRECTmmsprecipitation -(PRECTmms)mm/sYes- - - - PSRFpressure at the lowest atm level -(PSRF)PaNoassumes standard-pressure - - - RHrelative humidity at the lowest atm level -(RH)%Nocan be replaced with SHUM or TDEW - - - SHUMspecific humidity at the lowest atm level -kg/kgOptional in place of RHcan be replaced with RH or TDEW - - - TBOTtemperature at the lowest atm level -(TBOT)K (or can be C)Yes- - - - TDEWdew point temperature -K (or can be C)Optional in place of RHcan be replaced with RH or SHUM - - - WINDwind at the lowest atm level -(WIND)m/sYes- - - - ZBOTobservational heightmNo -assumes 30 meters - - - -
    -All of the variables should be dimensioned: time, lat, lon, with time being the unlimited -dimension. The coordinate variable "time" is also required with CF-compliant units in -days, hours, minutes, or seconds. It can also have a calendar attribute that can -be "noleap" or "gregorian". Normally the files will be placed in the: -$MYCSMDATA/atm/datm7/CLM1PT_data/$MYUSRDAT directory with separate files per -month called YYYY-MM.nc where YYYY-MM corresponds to the four -digit year and two digit month with a dash in-between. You also need a domain file that -gives the coordinate information for the data that should be placed in: -$MYCSMDATA/atm/datm7/domain.lnd.$MYUSRDAT_USGS.nc. - -Example of setting up a case with your own atmosphere forcing - -> cd scripts -# First make sure you have a inputdata location that you can write to -# You only need to do this step once, so you won't need to do this in the future -> setenv MYCSMDATA $HOME/inputdata # Set env var for the directory for input data -> ./link_dirtree $CSMDATA $MYCSMDATA -# Next create and move all your datasets into $MYCSMDATA with id $MYUSRDAT -# See above for naming conventions - -# Now create a single-point case -> ./create_newcase -case my_atmforc_test -res pt1_pt1 -compset I1850 \ --mach bluefire -> cd my_atmforc_test -# Set the data root to your inputdata directory, and set &CLM1PT; and &CLMUSRDAT; -# to the user id you created for your datasets above -> ./xmlchange -file env_run.xml -id DIN_LOC_ROOT_CSMDATA -val $MYCSMDATA -> ./xmlchange -file env_conf.xml -id &CLM1PT; -val $MYUSRDAT -> ./xmlchange -file env_conf.xml -id &CLMUSRDAT; -val $MYUSRDAT -# Set the land-mask to USGS, so both clm and &datm; can find files -> ./xmlchange -file env_conf.xml -id &CLMBLDNML; -val '-mask USGS' -# Then set DATM_MODE to single-point mode so &datm; will use your forcing datasets -# Put your forcing datasets into $MYCSMDATA/atm/datm7/CLM1PT_data/$MYUSRDAT -> ./xmlchange -file env_conf.xml -id DATM_MODE -val CLM1PT -> ./configure -case -# If the list of fields, or filenames, filepaths, or fieldnames are different -# you'll need to edit the &datm; namelist streams file to make it consistent -> $EDITOR Buildconf/datm.buildnml.csh - - -
    - - -See for a warning about running single-point jobs -on batch machines. - - - - -See for notes about managing your data -when using link_dirtree. - - - - -Now, we'll show an example of what the &datm; streams file might look like for a case -with your own forcing data with 3-hourly forcing. In this example, we'll leave off the -fields: ZBOT, and FLDS so they'll be calculated as given in the - table above. We'll also include: -FSDSdif and FSDSdir which aren't required, and we'll use TDEW in place of RH. In this -example the datafiles are in &netcdf; format and contain the fields: TA, Tdew, WS, -PREC, Rg, Rgdir, Rgdif, and PRESS which are translated into the &datm; internal names -in this streams file. There is also a domain file that has the position information -for this location. The normal assumption for CLM1PT mode in the &datm; is that data is -hourly or half-hourly and as such is often enough that using the data on the nearest -time-stamp is reasonable and as such the data is in a single streams file (see - for more information on -the default settings for &datm; and how to change them. If the data is less often three to six hours -- see -below, where you will need to modify the time-interpolation method as well as the -time stamp offsets. In the example below we also have to divide the single -stream file into three files to manage the time-stamps and time interpolation -algorithm for the different types of data differently. - -Example of &datm; streams files with your own forcing for 3-hourly data - -Precipitation streams file -(clm1PT.1x1pt_lapazMEX.precip.stream.txt file) . - - -<streamstemplate> -<stream> - <dataSource> - CLMNCEP - </dataSource> - <domainInfo> - <variableNames> - time time - xc lon - yc lat - area area - mask mask - </variableNames> - <filePath> - $DIN_LOC_ROOT/atm/datm7/domain.clm - </filePath> - <fileNames> - domain.lnd.1x1pt_lapazMEX_navy.nc - </fileNames> - </domainInfo> - <fieldInfo> - <variableNames> - PRECTmms PREC - </variableNames> - <offset> - -5400 - </offset> - <filePath> - $DIN_LOC_ROOT/atm/datm7/CLM1PT_data/1x1pt_lapazMEX - </filePath> - <fileNames> - 2004-01.nc - 2004-02.nc - 2004-03.nc -. -. -. - 2009-12.nc - </fileNames> - </fieldInfo> -</stream> -</streamstemplate> - - -Solar streams file (clm1PT.1x1pt_lapazMEX.solar.stream.txt file). - - -<streamstemplate> -<stream> - <dataSource> - CLMNCEP - </dataSource> - <domainInfo> - <variableNames> - time time - xc lon - yc lat - area area - mask mask - </variableNames> - <filePath> - $DIN_LOC_ROOT/atm/datm7/domain.clm - </filePath> - <fileNames> - domain.lnd.1x1pt_lapazMEX_navy.nc - </fileNames> - </domainInfo> - <fieldInfo> - <variableNames> - FSDS Rg - FSDSdir Rgdir - FSDSdif Rgdif - </variableNames> - <offset> - -10800 - </offset> - <filePath> - $DIN_LOC_ROOT/atm/datm7/CLM1PT_data/1x1pt_lapazMEX - </filePath> - <fileNames> - 2004-01.nc - 2004-02.nc - 2004-03.nc -. -. -. - 2009-12.nc - </fileNames> - </fieldInfo> -</stream> -</streamstemplate> - - -Other fields streams file. -(clm1PT.1x1pt_lapazMEX.other.stream.txt file) . - - -<streamstemplate> -<stream> - <dataSource> - CLMNCEP - </dataSource> - <domainInfo> - <variableNames> - time time - xc lon - yc lat - area area - mask mask - </variableNames> - <filePath> - $DIN_LOC_ROOT/atm/datm7/domain.clm - </filePath> - <fileNames> - domain.lnd.1x1pt_lapazMEX_navy.nc - </fileNames> - </domainInfo> - <fieldInfo> - <variableNames> - TBOT TA - TDEW Tdew - WIND WS - PSRF PRESS - </variableNames> - <offset> - -5400 - </offset> - <filePath> - $DIN_LOC_ROOT/atm/datm7/CLM1PT_data/1x1pt_lapazMEX - </filePath> - <fileNames> - 2004-01.nc - 2004-02.nc - 2004-03.nc -. -. -. - 2009-12.nc - </fileNames> - </fieldInfo> -</stream> -</streamstemplate> - - -Example streams namelist for the above streams files: - - - &shr_strdata_nml - dataMode = 'CLMNCEP' - domainFile = '$DOMAINFILE' - streams = 'clm1PT.1x1pt_lapazMEX.solar.stream.txt 1 2004 2009 ', - 'clm1PT.1x1pt_lapazMEX.precip.stream.txt 1 2004 2009 ', - 'clm1PT.1x1pt_lapazMEX.other.stream.txt 1 2004 2009 ', - 'presaero.stream.txt 1 2000 2000' - vectors = 'null','null','null','null' - mapmask = 'nomask','nomask','nomask','nomask' - mapalgo = 'nn','nn','nn','nn' - tintalgo = 'coszen','nearest','linear','linear' - taxmode = 'cycle','cycle','cycle','cycle' - / - - - - - -The example above shows the resolved namelist and streams file after &configure; -has been run. In order to save this configuration for future use, you would need -to edit the &datm; template adding new DATM_MODE see - for more information on how to do this. - - - - -We've outlined and given a few examples of using your own atmosphere -forcing. In the next chapter we go into the details of using &ptclm;. - - -
    - -
    - diff --git a/doc/UsersGuide/special_cases.xml b/doc/UsersGuide/special_cases.xml deleted file mode 100644 index ac5c7fef3b..0000000000 --- a/doc/UsersGuide/special_cases.xml +++ /dev/null @@ -1,916 +0,0 @@ - - -How to run some special cases - -In this chapter we describe how to run some special cases that take more than one step -to do. The straightforward cases have compsets and/or build-namelist use-cases setup for -them or require simple editing of a single-case. All of the cases here require you -to do at least two simulations with different configurations, or require more complex -editing of the case (changing the streams files). - - -The nine cases we will describe are: - - - -Running with the prognostic crop model on - - - - -Running with the irrigation model on - - - - -Spinning up the Satellite Phenology Model (&clmsp; spinup) - - - - -Spinning up the biogeochemistry Carbon-Nitrogen Model (CN spinup) - - - - -Spinning up the Carbon-Nitrogen Dynamic Global Vegetation Model (CNDV spinup) - - - - -Running with MOAR data as atmospheric forcing to spinup the model - - - - -Running with your own previous simulation as atmospheric forcing to spinup the model - - - - -Doing perturbation error growth tests - - - - -Running stand-alone &clm; with transient historical &CO2; -concentration - - - - - - -The cases in this chapter are more sophisticated and require more technical knowledge -and skill than cases in previous chapters. The user should be very familiar with doing -simple cases before moving onto the cases described here. - - - -Running with the prognostic crop model on - - -In &clmcesm103; a prognostic crop model was added to &clm4;. The prognostic crop -model is setup to work with CN for present day conditions and we have surface -and initial condition datasets at f19 resolution. In order to use the initial condition -file, we need to set the RUN_TYPE to startup rather -than hybrid since the compset for f19 sets up to use an initial -condition file without crop active. To activate the crop model we simply add "-crop on" -to &CLMCONFIG;. - -Example Crop Simulation - -> cd scripts -> ./create_newcase -case CROP -res f19_g16 -compset ICN -mach bluefire -> cd CROP -# Append "-crop on" to &CLMCONFIG; in env_conf.xml (you could also use an editor) -> ./xmlchange -file env_conf.xml -id &CLMCONFIG; -val "-crop on" -append -# Change to startup type so uses spunup initial conditions file for crop if it exists -# By default the model will do a hybrid startup with an initial condition file -# incompatible with the crop surface dataset. -> ./xmlchange -file env_conf.xml -id RUN_TYPE -val startup -> ./configure -case -# Now build and run normally -> ./CROP.bluefire.build -> ./CROP.bluefire.submit - - - - - - -Running with the irrigation model on - - -In &clmcesm103; an irrigation model for generic crop was added to &clm4;. Currently, -irrigation and crop can NOT be used together see bug number 1326 in the -&KnownBugs; file. -The irrigation model is tuned to work only with &clmsp; see the caution below for -for more information on this. To turn on -irrigation we simply add "-irrig on" to &CLMBLDNML;. Just as in the crop example we -also change RUN_TYPE to startup so that we don't use -an initial condition file that is incompatible with irrigation. - -Example Irrigation Simulation - -> cd scripts -# Note here we do a &clmsp; simulation as that is what has been validated -> ./create_newcase -case IRRIG -res f19_g16 -compset I -mach bluefire -> cd IRRIG -# Append "-irrig on" to &CLMBLDNML; in env_conf.xml (you could also use an editor) -> ./xmlchange -file env_conf.xml -id &CLMBLDNML; -val "-irrig" -append -# Change to startup type so uses spunup initial conditions file for irrigation if it exists -# By default the model will do a hybrid startup with an initial condition file -# incompatible with the irrigation surface dataset. -> xmlchange -file env_conf.xml -id RUN_TYPE -val startup -> ./configure -case -# Now build and run normally -> ./IRRIG.bluefire.build -> ./IRRIG.bluefire.submit - - - - -We have only run the irrigation model with &clmsp; (i.e. without the CN model). We -recommend that if you want to run the irrigation model with CN, that you do a spinup -as outlined in the examples below. But, more than that you may need to make -the adjustments we discuss in . - - - - - - -Spinning up the Satellite Phenology Model (&clmsp; spinup) - - -To spin-up the &clmsp; model you merely need to run &clmsp; for 50 simulation -years starting from arbitrary initial conditions. You then use the final -restart file for initial conditions in other simulations. -Because, this is a straight forward operation we will NOT give -the details on how to do that here, but leave it as an exercise for the reader. -See the as an example of doing this -as the last step for &clmcn;. - - - - -Spinning up the biogeochemistry Carbon-Nitrogen Model (CN spinup) - -To get the &clmcn; model to a steady state, you first run it from arbitrary initial conditions -using the "accelerated decomposition spinup" (-ad_spinup in configure) mode for 600 simulation years. After -this you branch from this mode in the "exit spinup" (-exit_spinup in configure), run -for a simulation year, and then save a restart from that and use it as initial conditions -for further spinup of CN (at least 50 simulation years). - - -Spinup of &clmcn; - -AD_SPINUP - -For the first step of running 600 years in "-ad_spinup" mode, you will setup -a case, and then edit the values in env_conf.xml and -env_run.xml so that the right configuration is turned on and -the simulation is setup to run for the required length of simulation time. -So do the following: - -Example AD_SPINUP Simulation - -> cd scripts -> ./create_newcase -case CN_spinup -res f19_g16 -compset ICN -mach bluefire -> cd CN_spinup -# Append "-ad_spinup on" to &CLMCONFIG; in env_conf.xml -> ./xmlchange -file env_conf.xml -id &CLMCONFIG; -val "-ad_spinup on" -append -# The following sets &CLMFORCECOLD; to "on" in env_conf.xml (you could also use an editor) -> ./xmlchange -file env_conf.xml -id &CLMFORCECOLD; -val on -# Make the output history files only annual, by adding the following to the &usernlclm; namelist -> echo '&clm_inparm hist_nhtfrq = -8760 /' > &usernlclm; -# Now configure -> ./configure -case -> ./xmlchange -file env_run.xml -id STOP_DATE -val 6010101 -# Now build -> ./CN_spinup.bluefire.build -# The following sets RESUBMIT to 30 times in env_run.xml (you could also use an editor) -> ./xmlchange -file env_run.xml -id RESUBMIT -val 30 -# The following sets STOP_OPTION to "nyears" in env_run.xml (you could also use an editor) -> ./xmlchange -file env_run.xml -id STOP_OPTION -val nyears -# The following sets STOP_N to 20 years in env_run.xml (you could also use an editor) -> ./xmlchange -file env_run.xml -id STOP_N -val 20 -# The following sets STOP_DATE to Jan/1 of year 601 in env_run.xml (you could also use an editor) -# Now run normally -> ./CN_spinup.bluefire.submit - - -Afterwards save the last restart file from this simulation to use in the next step. - - - - -EXIT_SPINIP - - -Example EXIT_SPINUP Simulation - -> cd scripts -> ./create_newcase -case CN_exitspinup -res f19_g16 -compset ICN -mach bluefire -> cd CN_exitspinup -# Append "-exit_spinup on" to &CLMCONFIG; in env_conf.xml -> ./xmlchange -file env_conf.xml -id &CLMCONFIG; -val "-exit_spinup on" -append -# Change run type to branch and branch from the last year of the last simulation -> ./xmlchange -file env_conf.xml -id RUN_TYPE -val branch -> ./xmlchange -file env_conf.xml -id RUN_REFCASE -val CN_spinup -> ./xmlchange -file env_conf.xml -id RUN_REFDATE -val 0601-01-01 -> ./xmlchange -file env_conf.xml -id GET_REFCASE -val FALSE -> ./configure -case -# Go ahead and build, so that the run directory is created -> ./CN_exitspinup.bluefire.build -# Now, Copy the last restart files from the earlier case into your run directory -> cp /ptmp/$LOGIN/archive/CN_spinup/rest/CN_spinup.*.r*.0601-01-01-00000* /ptmp/$LOGIN/CN_exitspinup -# And copy the rpointer files for datm and drv from the earlier case -> cp /ptmp/$LOGIN/archive/CN_spinup/rest/rpointer.atm /ptmp/$LOGIN/CN_exitspinup -> cp /ptmp/$LOGIN/archive/CN_spinup/rest/rpointer.drv /ptmp/$LOGIN/CN_exitspinup -# The following sets STOP_OPTION to "nyears" in env_run.xml (you could also use an editor) -> ./xmlchange -file env_run.xml -id STOP_OPTION -val nyears -> ./xmlchange -file env_run.xml -id STOP_N -val 1 -# Now run normally -> ./CN_exitspinup.bluefire.submit - - - - - - -Final spinup - -Next save the last restart file from this step and use it as the "finidat" file to -use for one more spinup for at least 50 years in normal mode. -So do the following: - -Example Final CN Spinup Simulation - -> cd scripts -> ./create_newcase -case CN_finalspinup -res f19_g16 -compset ICN -mach bluefire -> cd CN_finalspinup -# The following sets &CLMFORCECOLD; to "on" in env_conf.xml (you could also use an editor) -> ./xmlchange -file env_conf.xml -id &CLMFORCECOLD; -val on -# Now, Copy the last &clm; restart file from the earlier case into your run directory -> cp /ptmp/$LOGIN/archive/CN_exitspinup/rest/CN_exitspinup.clm*.r*.0602-01-01-00000.nc \ -/ptmp/$LOGIN/CN_finalspinup -# And copy the rpointer files for datm and drv from the earlier case -> cp /ptmp/$LOGIN/archive/CN_exitspinup/rest/rpointer.atm /ptmp/$LOGIN/CN_finalspinup -> cp /ptmp/$LOGIN/archive/CN_exitspinup/rest/rpointer.drv /ptmp/$LOGIN/CN_finalspinup -# Set the finidat file to the last restart file saved in previous step -> echo '&clm_inparm finidat = "CN_exitspinup.clm2.r.0602-01-01-00000.nc" /' > &usernlclm; -# Now configure -> ./configure -case -> $EDITOR Buildconf/clm.buildnml.csh -> Now build -> .CN_finalspinup.bluefire.build -# The following sets RESUBMIT to 5 times in env_run.xml (you could also use an editor) -> ./xmlchange -file env_run.xml -id RESUBMIT -val 5 -# The following sets STOP_OPTION to "nyears" in env_run.xml (you could also use an editor) -> ./xmlchange -file env_run.xml -id STOP_OPTION -val nyears -# The following sets STOP_N to 10 years in env_run.xml (you could also use an editor) -> ./xmlchange -file env_run.xml -id STOP_N -val 10 -> Now run as normal -> .CN_finalspinup.bluefire.submit - - - - -To assess if the model is spunup plot trends of CN variables of interest. If you see -a trend, you may need to run the simulation longer. -Finally save the restart file from the end of this simulation to use as an "finidat" file for future -simulations. - - - - - - -Spinning up the Carbon-Nitrogen Dynamic Global Vegetation Model (CNDV spinup) - -To spinup the &clm; CNDV model -- you first follow the procedures above to spinup the CN model. -Then you take the CN initial state file you created for the spinup with just CN, and -run CNDV for 200 more years. -We've provided such spunup files for two resolutions (f09 and f19) and two time-periods -(1850 and 2000), so in this example we will use the files provided to start from. -We've also provided a spinup file at f19 resolution for CNDV, hence the following is -NOT required when running at f19. -If you were to start from your own &clmcn; spunup files -- the procedure would require -some modification. -There are no compsets using CNDV, so in -env_conf.xml change CLM_CONFIG_OPTS to --bgc cndv. - -Example CNDV Spinup Simulation - -> cd scripts -> ./create_newcase -case CNDV_spinup -res f09_g16 -compset ICN -mach bluefire -> cd CNDV_spinup -# Set run type to startup and do a cold start -> ./xmlchange -file env_conf.xml -id RUN_TYPE -val startup -# The following sets CLM_CONFIG_OPTS to "-bgc cndv" in env_conf.xml (you could also use an editor) -> ./xmlchange -file env_conf.xml -id CLM_CONFIG_OPTS -val "-bgc cndv" -# Make the default primary history file annual and add an annual 1D vector auxiliary file -# By putting the following in a &usernlclm; file. -> cat << EOF > &usernlclm; -&clm_inparm - hist_nhtfrq = -8760, -8760 - hist_mfilt = 1, 1 - hist_fincl2 = 'TLAI', 'TSAI', 'HTOP', 'HBOT', 'NPP' - hist_dov2xy = .true., .false. -/ -> ./configure -case -# NOTE: If you were using your own CN spinup files you would edit the namelist to use it -# $EDITOR Buildconf/clm.buildnml.csh -# -# Now build and run as normal -> ./CNDV_spinup.bluefire.build -# The following sets RESUBMIT to 10 times in env_run.xml (you could also use an editor) -> ./xmlchange -file env_run.xml -id RESUBMIT -val 10 -# The following sets STOP_OPTION to "nyears" in env_run.xml (you could also use an editor) -> ./xmlchange -file env_run.xml -id STOP_OPTION -val nyears -# The following sets STOP_N to 20 years in env_run.xml (you could also use an editor) -> ./xmlchange -file env_run.xml -id STOP_N -val 20 -# Make sure you turn archiving on, so you save your files to long term archival -> ./xmlchange -file env_run.xml -id DOUT_L_MS -val TRUE -> ./CNDV_spinup.bluefire.submit - - - - - -There is a build bug with &clmcesm103; see bug 1370 in the &KnownBugs; on -how to address this. - - - - - -In a data analysis tool you should examine the auxiliary file and examine the -pfts1d_wtgcell to see where and what types of vegetation have -been established. See the caution in for more -information on visualizing and analyzing 1D vector fields. - - - -CNDV also writes out two vector fields to "hv" auxiliary files, on an annual basis by -default. - - - - -We've provided a spinup file for CNDV at f19 resolution, you could also use -interpinic to interpolate this file to other resolutions. - - - - - -Running with MOAR data as atmospheric forcing to spinup the model - -Because it takes so long to spinup the CN model (as we just saw previously), if you -are doing fully coupled simulations with active atmosphere and ocean, you will want -to do the spinup portion of this "offline". So instead of doing expensive fully -coupled simulations for the spinup duration, you run &clm; in a very cheap "I" -compset using atmospheric forcing from a shorter fully coupled simulation -(or a simulation run previously by someone else). - - -In this example we will use the I1850SPINUPCN compset to setup -&clm; to run with atmospheric forcing from a previous fully coupled simulation with -data that is already stored on disk on bluefire. There are several simulations that -have high frequency data for which we can do this. You can also do this on a machine -other than bluefire, but would need to download the data from the Earth System Grid and -change the datapath similar to . -This compset is designed for constant -1850 conditions, but unfortunately (because of bug 1354 see the &KnownBugs; file) by -default it points to a transient simulation instead of an 1850 simulation. Here we -point to an 1850 simulation and setup the forcing years to run over. - -Example Simulation with MOAR Data on bluefire - -> cd scripts -> ./create_newcase -case MOARforce1850 -res f19_g16 -compset I1850SPINUPCN -mach bluefire -> cd MOARforce1850 -# The following sets the casename to point to for atm forcing (you could also use an editor) -> ./xmlchange -file env_conf.xml -id DATM_CPL_CASE -val b40.1850.track1.1deg.006a -# The following sets the align year and years to run over for atm forcing -# (you could also use an editor) -> ./xmlchange -file env_conf.xml -id DATM_CPL_YR_ALIGN -val 1 -> ./xmlchange -file env_conf.xml -id DATM_CPL_YR_START -val 960 -> ./xmlchange -file env_conf.xml -id DATM_CPL_YR_END -val 1030 -> ./configure -case -# Now build and run as normal -> ./MOARforce1850.bluefire.build -> ./MOARforce1850.bluefire.submit - - - - -Because of bug 1339 (see the &KnownBugs; file on this) -you can't run with 83 or more years of forcing. If you do need to run with more years of -forcing, you'll need to address the issue as outlined in the &KnownBugs; file. - - - - - - -Running with your own previous simulation as atmospheric forcing to spinup the model - -Another way that you might want to spinup the model is to run your own simulation -for a relatively short period (either a B, E, or F compset) and then use it as forcing -for your "I" case later. By only running 20 to 50 years for the fully coupled case, -you'll save a substantial amount of computer time rather than running the entire spinup -period with a fully coupled model. - - -The first thing we need to do is to run a fully coupled case and save the atmospheric -coupling fields on a three hourly basis. In this example, we will run on bluefire -and archive the data to a local disk that we can then use in the next simulation. - -Example Fully Coupled Simulation to Create Data to Force Next Example Simulation - -> cd scripts -> ./create_newcase -case myBCN1850 -res f09_g16 -compset B1850CN -mach bluefire -> cd myBCN1850 -> ./configure -case -# Set histaux_a2x3hr to .true. in cpl.buildnml.csh so output from the atmosphere model -# will be saved 3 hourly -$EDITOR BuildConf/cpl.buildnml.csh -# Now build -> ./myBCN1850.bluefire.build -# The following sets the archival disk space (you could also use an editor) -> ./xmlchange -file env_run.xml -id DOUT_S_ROOT -val '/glade/home/$USER/$CASE' -# Make sure files are archived to disk, but NOT to long term storage -# (you could also use an editor) -> ./xmlchange -file env_run.xml -id DOUT_S -val TRUE -> ./xmlchange -file env_run.xml -id DOUT_L_MS -val FALSE -# Set the run length to run a total of 20 years (you could also use an editor) -> ./xmlchange -file env_run.xml -id RESUBMIT -val 9 -> ./xmlchange -file env_run.xml -id STOP_OPTION -val nyears -> ./xmlchange -file env_run.xml -id STOP_N -val 2 -# Now run as normal -> ./myBCN1850.bluefire.submit - - - - -Now we run an I compset forced with the data from the previous simulation using -the &CPLHIST; option to DATM_MODE. See - for more information on the -&datm; settings for &CPLHIST; mode. - -Example Simulation Forced with Data from the Previous Simulation - -> cd scripts -> ./create_newcase -case frcwmyBCN1850 -res f09_g16 -compset I1850SPINUPCN -mach bluefire -> cd frcWmyBCN1850 -# The following sets the casename to point to for atm forcing (you could also use an editor) -> ./xmlchange -file env_conf.xml -id DATM_CPL_CASE -val "myBCN1850" -# The following sets the align year and years to run over for atm forcing -# (you could also use an editor) -> ./xmlchange -file env_conf.xml -id DATM_CPL_YR_ALIGN -val "1" -> ./xmlchange -file env_conf.xml -id DATM_CPL_YR_START -val "1" -> ./xmlchange -file env_conf.xml -id DATM_CPL_YR_END -val "20" -# Set the datapath in the template to the archival path from the case above -> sed -E 's#set datapath = ".+"#set datapath = "/glade/home/$USER/%c/cpl/hist"#' \ - Tools/Templates/datm.cpl7.template > new.datm.cpl7.template -> mv -f new.datm.cpl7.template Tools/Templates/datm.cpl7.template -> chmod +x Tools/Templates/datm.cpl7.template -> ./configure -case -# Now build and run as normal -> ./frcwmyBCN1850.bluefire.build -> ./frcwmyBCN1850.bluefire.submit - - - - -In order to accomplish this we needed to edit the &datm; template file. See - for more information on doing this. -If your input case was at a resolution besides f09 you would have to edit -the &datm; template file even further to use a domain file at the input resolution. - - - - - - -Doing perturbation error growth tests - -Doing perturbation error growth tests is a way to validate a port of -the model to a new machine or to verify that changes are only roundoff. -The steps are the same in either case, but in the discussion below I will -assume you are doing a port validation to a new machine (but in parentheses -I will put a reminder that it could also be for code-mods). -The basic idea is to run a case on the trusted machine (trusted code) and -another with initial conditions perturbed by roundoff and compare the results of -the two. The difference between these two simulations (the error) will grow over time -and describe a curve that we compare with the error growth on the new machine (code -changes). The error growth on the new machine is the difference between the non-perturbed -state on the trusted machine and the non-perturbed state on the new machine (code -changes). If the new machine (code changes) are well-behaved -the plot of this error growth compared to the error growth curve on the trusted machine -should be similar. If the -changes are NOT well-behaved the changes from the new machine (code changes) will be -larger than the perturbation changes. In summary the simulations and steps that need to be performed are: - - -Run a simulation with the trusted code on the trusted machine. -(optionally you can use a dataset from inputdata repository). - - - -Run a simulation with the trusted code on the trusted machine with initial conditions -perturbed by roundoff (using a namelist item to do so). -(this is optional is you are using inputdata repository datasets) - - - -Run a simulation with the new code on the non-trusted machine (code changes). - - -Do a plot of the RMS difference of history variables between simulation 1 and simulation 2. - - -Do a plot of the RMS difference of history variables between simulation 1 and simulation 3. - - -Compare the two plots in steps 4 and 5. - - -If the plots compare well the new machine (code changes) is running as well as the trusted machine. - - -If the plots do NOTcompare well the new machine is -NOTrunning as well as the trusted machine. Typically the -recommendation here is to lower the optimization level on the new machine and try -again (or in the case of code changes, modify or simplify the code changes to get -something that should be closer). - -The history variables we have used to do this is either 'TSOI', and/or 'TSA'. 'TSOI' are -the 3D snow and soil temperatures for vegetated land-units. If there is a change in -soil physics it should show up in this field (and it should show up even for something -that is at a pretty deep soil depth). However, as 'TSOI' is only for vegetated -land-units, changes in lake or urban land-units -- will NOT show up. 'TSA' by contrast is -the 2m surface temperature across all land-units, so changes in urban or lake land-units -will show up. However, changes in deep soil physics will only show up as it propagates -to the surface. So one field may show something that the other doesn't. In the examples, -we use 'TSOI', but 'TSA' can be used as well. And in most cases you should check both. - - - -Now we will give a detailed description of the procedure with examples and the -exact steps to perform. - - -Using Perturbation Error Growth Analysis to Verify a Port to a New Machine - -Running non-perturbed on trusted machine - -The first step is to run a non-perturbed case on the trusted machine. You need to run -all of the steps with the same compset and same resolution. For these examples we will -use 2-degree resolution with the ICN compset for 2000 conditions. You need to run for -three days with a cold-start. - - - -As we describe below, This is optional if you will be using datasets from the -inputdata repository to take place of this step. - - - - -Example non-perturbed error growth simulation - -> cd scripts -> ./create_newcase -case trustedMachinePergro0 -compset ICN -res f19_g16 \ --mach bluefire -> cd trustedMachinePergro0 -# Set the non-perturbed PERGRO use-case -> ./xmlchange -file env_conf.xml -id CLM_NML_USE_CASE -val pergro0_pd -# Set coldstart on so arbitrary initial conditions will be used -> ./xmlchange -file env_conf.xml -id CLM_FORCE_COLDSTART -val on -> ./xmlchange -file env_conf.xml -id RUN_TYPE -val startup -# Set PERGRO on in the configure -> ./xmlchange -file env_conf.xml -id &CLMCONFIG; -val "-pergro on" -append -# Now configure and build -> ./configure -case -> ./trustedMachinePergro0.bluefire.build -# Set it to run for three days and turn archiving off -> ./xmlchange -file env_run.xml -id STOP_N -val 3 -> ./xmlchange -file env_run.xml -id DOUT_S -val FALSE -# Run the case and then you will save the history file output for later use -> ./trustedMachinePergro0.bluefire.submit - - - - - -If you aren't able to do this step, as you don't have access to a trusted machine, you -can use datasets that are available from the svn inputdata repository to take place of -running it yourself. The disadvantage is that this is only done for certain model -versions and for exactly the configuration/namelist given here. You won't be able to -test it for your own custom code or configurations. - - - - -Running perturbed on the trusted machine - -The next step is to run a perturbed case on the trusted machine. - -Example perturbed error growth simulation - -> cd scripts -> ./create_newcase -case trustedMachinePergroRnd -compset ICN -res f19_g16 \ --mach bluefire -> cd trustedMachinePergroRnd -# Set the perturbed PERGRO use-case -> ./xmlchange -file env_conf.xml -id CLM_NML_USE_CASE -val pergro_pd -# Set coldstart on so arbitrary initial conditions will be used -> ./xmlchange -file env_conf.xml -id RUN_TYPE -val startup -> ./xmlchange -file env_conf.xml -id CLM_FORCE_COLDSTART -val on -# Set PERGRO on in the configure -> ./xmlchange -file env_conf.xml -id &CLMCONFIG; -val "-pergro on" -append -# Now configure and build -> ./configure -case -> ./trustedMachinePergroRnd.bluefire.build -# Set it to run for three days and turn archiving off -> ./xmlchange -file env_run.xml -id STOP_N -val 3 -> ./xmlchange -file env_run.xml -id DOUT_S -val FALSE -# Run the case and then you will save the history file output for later use -> ./trustedMachinePergroRnd.bluefire.submit - - - - - -If you aren't able to do this step, as you don't have access to a trusted machine, you -can use datasets that are available from the svn inputdata repository to take place of -running it yourself. The disadvantage is that this is only done for certain model -versions and for exactly the configuration/namelist given here. You won't be able to -test it for your own custom code or configurations. - - - - -Running non-perturbed on the new machine - -The next step is to run a non-perturbed case on the new machine. Here -we will demonstrate using the machine intrepid. For the previous two steps -you have the option of using datasets provided in the subversion inputdata -repository to take their place -- however this step is required. - -> cd scripts -> ./create_newcase -case newMachinePergro0 -compset ICN -res f19_g16 \ --mach intrepid -> cd newMachinePergro0 -# Set the non-perturbed PERGRO use-case -> ./xmlchange -file env_conf.xml -id CLM_NML_USE_CASE -val pergro0_pd -> ./xmlchange -file env_conf.xml -id CLM_FORCE_COLDSTART -val on -> ./xmlchange -file env_conf.xml -id RUN_TYPE -val startup -# Set PERGRO on in the configure -> ./xmlchange -file env_conf.xml -id &CLMCONFIG; -val "-pergro on" -append -# Now configure and build -> ./configure -case -> ./newMachinePergro0.intrepid.build -# Set it to run for three days and turn archiving off -> ./xmlchange -file env_run.xml -id STOP_N -val 3 -> ./xmlchange -file env_run.xml -id DOUT_S -val FALSE -# Run the case and then you will save the history file output for later use -> ./newMachinePergro0.intrepid.submit - - - - - -Plotting the differences - -You can use the cprnc program to compute root mean square differences -between the relevant history files. See for more information -on it and how to build it. On many platforms you will need to set some environment -variables in order to complete the build (see for -more information on building the tools). - -# Build the cprnc program -> cd models/lnd/clm/tools/cprnc -> gmake -# Now go to your case directory and run cprnc on the trusted-machine with and without -# perturbation -> cd ../../../../../scripts/trustedMachinePergro0 -> ../../models/lnd/clm/tools/cprnc/cprnc trustedMachinePergro0.clm2.h0.001-01-01.00000.nc \ -../trustedMachinePergroRnd/trustedMachinePergroRnd.clm2.h0.001-01-01.00000.nc > trustedPergro.log -# Copy the history file from the new machine to here -# -# And now run cprnc on the trusted-machine and the new machine both without perturbation -> ../../models/lnd/clm/tools/cprnc/cprnc trustedMachinePergro0.clm2.h0.001-01-01.00000.nc \ -../newMachinePergro0/newMachinePergro0.clm2.h0.001-01-01.00000.nc > newPergro.log -# Now extract out the RMS differences of TSOI for both -# You may want to extract out the RMS differences for TSA as well -# Changes in urban or lake land-units won't be detected with TSOI -> grep "RMS TSOI" trustedPergro.log | awk '{print $3}' > RMStrusted.dat -> grep "RMS TSOI" newPergro.log | awk '{print $3}' > RMSnewmachine.dat -# And plot the two curves up to your screen -> env TYPE=x11 RMSDAT=RMSnewmachine.dat RMSDAT2=RMStrusted.dat ncl \ -../../models/lnd/clm/tools/ncl_scripts/pergroPlot.ncl - -Here is a sample plot for several trusted machines: bluefire, intrepid, jaguar, -and edinburgh (with both the lahey and intel compilers). -The green line is the error growth for bluefire, the red is the error growth -for intrepid, the dashed navy is for jaguar, the dashed maroon is for the intel -compiler on edinburgh, and the thick dashed goldenrod line is for edinburgh with the -lahey compiler. Note, the data for this plot is in -models/lnd/clm/tools/ncl_scripts the files are named: -according to the legend. Note, that the lines tend to cluster together and follow -quite closely to the bluefire line which is our main trusted machine. -
    -Sample Good Perturbation Error Growth Curves (within roundoff) - - - -
    -
    - - -When you do NOT have access to a trusted machine you can use the trusted file from -bluefire that is available on the inputdata repository. - -# Build the cprnc program -> cd models/lnd/clm/tools/cprnc -> gmake -# Get the unperturbed file from the subversion repository -> cd ../../../../../scripts/newMachinePergro0 -> set dir = "lnd/clm2/pergrodata" -> set file = bluefirePergro0.ICN.0001-01-01_1.9x2.5_gx1v6_simyr2000_clm4-cesm1_0_3.c110617.nc -> echo "trustedfile = DIN_LOC_ROOT/$dir/$file" > clm.input_data_list -> ../ccsm_utils/Tools/check_input_data -datalistdir . -export -inputdata $DIN_LOC_ROOT -# And now run cprnc on the bluefire file and the new machine both without perturbation -> ../../models/lnd/clm/tools/cprnc/cprnc $file \ -../newMachinePergro0/newMachinePergro0.clm2.h0.001-01-01.00000.nc > newPergro.log -# Now extract out the RMS difference -# You may want to extract out the RMS differences for TSA as well -# Changes in urban or lake land-units won't be detected with TSOI -> grep "RMS TSOI" newPergro.log | awk '{print $3}' > RMSnewmachine.dat -# And plot the new curve versus the trusted curve up to your screen -> env TYPE=x11 RMSDAT=RMSnewmachine.dat \ -RMSDAT2=../../models/lnd/clm/tools/ncl_scripts/RMSbluefire.dat \ -../../models/lnd/clm/tools/ncl_scripts/pergroPlot.ncl - - - -In the figure below we now show example of curves for changes that are larger than -roundoff. Once again the green curve is the trusted error growth from bluefire. The -other curves are for changes that may be fairly small, but are larger than roundoff. The -goldenrod curve is for using the 1850, and the navy is for using the 1999 Nitrogen -deposition files rather than for year 2000. The red is for using the 1850 aerosol -dataset rather than 2000, and the maroon is for adding the snow combination bug in. The -differences in changes that are greater than roundoff is that the curves climb very -steeply to the 10-6 value and then level off, while the -curve for bluefire climbs much more slowly and gradually. The curves also don't mimic -each other in any way, like the trusted machine plots do. -
    -Sample Bad Perturbation Error Growth Curves (changes greater than roundoff) - - - -
    - -
    -
    -
    -
    - - -Running stand-alone &clm; with transient historical &CO2; -concentration - -In this case you want to run a simulation with stand-alone &clm; responding -to changes in &CO2; for a historical period. -For this example, we will start with the "I_1850-2000_CN" compset that -has transient: land-use, Nitrogen and Aerosol deposition already. You could -also use another compset if you didn't want these other features to be transient. -In order to get &CO2; to be transient we need to edit the -&datm; template so that we add an extra streams file to describe how -&CO2; varies over the historical period. You also need -a &netcdf; datafile that datm can read that gives the variation. You could -supply your own file, but we have a standard file that is used by CAM for this -and our example will make use of this file. - - - -Most everything here has to do with changing datm rather than &clm; -to allow this to happen. As such the user that wishes to do this should -first become more familiar with datm and read the -&cesm; Data -Model User's Guide especially as it pertains to the datm. Note, also -that in this example we show how to edit the datm "buildnml" file for your -case, but you could do something similar by editing the datm template. - - - - -This section documents the process for doing something that is non-standard. -There may be errors with the documentation and process, and you may have to do -some work before all of this works for you. If that is the case, we recommend -that you do further research into understanding the process and the files, as -well as understanding the datm and how it works. You may have to read documentation -found in the code for datm as well as "csm_share". - - - -The datm has "streams" files that have rough XML-like syntax and specify the -location and file to get data from, as well as information on the variable names -and the data locations of the grid points. The datm expects specific variable names -and the datm "maps" the expected variable names from the file to the names expected -by datm. The file we are working with here is a file with a single-point, that covers -the entire globe (so the vertices go from -90 to 90 degrees in latitude and 0 to 360 -degrees in longitude). Since it's a single point it's a little easier to work with -than datasets that may be at a given horizontal resolution. The datm also expects -that variables will be in certain units, and only expects a limited number of -variables so arbitrary fields can NOT be exchanged this way. However, the process -would be similar for datasets that do contain more than one point. - - -The three things that are needed: a domain file, a data file, and a streams text file. -The domain file is a CF-compliant &netcdf; file that has information -on the grid points (latitudes and longitudes for cell-centers and vertices, mask -, fraction, and areas). The datafile is a CF-compliant &netcdf; file with the data that -will be mapped. The streams text file is the XML-like file that tells datm how to find -the files and how to map the variables datm knows about to the variable names on the -&netcdf; files. Note, that in our case the domain file and the data file are the same -file. In other cases, the domain file may be separate from the data file. - - -First we are going to create a case, and we will edit -the Buildconf/datm.buildnml.csh so that we add a -&CO2; data stream in. There is a streams text file -available in models/lnd/clm/doc/UsersGuide/co2_streams.txt, -that includes file with a &CO2; time-series from 1765 to 2007. - -Example Transient Simulation with Historical &CO2; - -> cd scripts -> ./create_newcase -case DATM_CO2_TSERIES -res f19_g16 -compset I_1850-2000_CN \ --mach bluefire -> cd DATM_CO2_TSERIES -# Set CCSM_BGC to CO2A so that CO2 will be passed from atmosphere to land -> ./xmlchange -file env_conf.xml -id CCSM_BGC -val CO2A -# Set CLM_CO2_TYPE to diagnostic so that the land will use the value sent from the atmosphere -> ./xmlchange -file env_conf.xml -id CLM_CO2_TYPE -val diagnostic -> ./configure -case -> cd Buildconf -# Copy the sample streams file over -> cp ../../../models/lnd/clm/doc/UsersGuide/co2_streams.txt . - - -The first thing we will do is to edit the datm buildnml script to add -a CO2 file stream in. To do this we will apply a patch with the differences -needed. The patch file addco2_datm.buildnml.diff is -in models/lnd/clm/doc/UsersGuide and looks like this... - -&co2streams_diff; - -So to apply the patch you do this... - -> cd scripts/DATM_CO2_TSERIES/Buildconf -> patch < ../../../models/lnd/clm/doc/UsersGuide/addco2_datm.buildnml.diff - -Once, you've done that you can build and run your case normally. - - - -The patch assumes you are using a I_1850-2000_CN compset out of the box, with -DATM_PRESAERO equal to trans_1850-2000. So it assumes standard -Qian atmosphere forcing, and transient prescribed aerosols from streams files. If your case changes -anything here the patch will fail, and you will need to put the changes in by hand. - - - - - -If the patch fails, you will have to add the changes to the -datm.buildnml.csh found in the above -patch file by hand. Basically, it adds an extra streams file for &CO2; to the end of the streams variable, -and other arrays associated with streams (adding mapalgo as a new array with bilinear for everything, but -the &CO2; file which should be "nn" for nearest neighbor). - - - - - -The streams file above is hard-coded for the path of the file on &ncar; computers. To use it on an outside -machine you'll need to edit the filepath in the streams file to point to the location where you have the file. - - - - -After going through these steps, you will have a case where you have datm reading -in an extra streams text file that points to a data file with &CO2; -data on it that will send that data to the &clm;. - - -
    - diff --git a/doc/UsersGuide/stylesheethtml2docbook.xsl b/doc/UsersGuide/stylesheethtml2docbook.xsl deleted file mode 100644 index 13c30ff71d..0000000000 --- a/doc/UsersGuide/stylesheethtml2docbook.xsl +++ /dev/null @@ -1,579 +0,0 @@ - - - - - -wb -file:///epicuser/AISolutions/graphics/AIWorkbench/ - - - - - - - - - - <xsl:value-of select=".//html:h1[1] - |.//html:h2[1] - |.//html:h3[1]"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - inlinemediaobject - - mediaobject - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Matched -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - No template for - - - - - - No template for - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - - - - - - - _ - - - - - - - - - - - - - - _ - - - - - - - - - - - - - - - - - - - - - - - - - <xsl:value-of select=".//html:caption"/> - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Attempting to count columns on a non-table element - - - Row parameter is not a valid row - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - diff --git a/doc/UsersGuide/tools.xml b/doc/UsersGuide/tools.xml deleted file mode 100644 index f5fd8beac4..0000000000 --- a/doc/UsersGuide/tools.xml +++ /dev/null @@ -1,1396 +0,0 @@ - - -Using the &clm; tools to create your own input datasets - -There are several tools provided with &clm; that allow you to create your own input -datasets at resolutions you choose, or to interpolate initial conditions to a different -resolution, or used to compare &clm; history files between different cases. The tools are -all available in the models/lnd/clm/tools directory. Most of the tools -are &FORTRAN; stand-alone programs in their own directory, but there is also a suite of -&ncl; -scripts in the ncl_scripts directory. Some of the &ncl; scripts are -very specialized and not meant for general use, and we won't document them here. They -still contain documentation in the script itself and the README file in the tools -directory. But, the list of generally important scripts and programs are: - - - cprnc to compare &netcdf; files with a time axis. - - - interpinic to interpolate initial condition files. - - - mkgriddata to create grid datasets. - - - mkdatadomain to create domain files from grid datasets -used by &datm; or docn. - - - mksurfdata to create surface datasets from grid datasets. - - - ncl_scripts/getregional_datasets.pl script to extract a -region or a single-point from global input datasets. See the single-point chapter -for more information on this. - - - ncl_scripts/npdepregrid.ncl interpolate the Nitrogen -deposition datasets to a new resolution. - - - ncl_scripts/aerdepregrid.ncl interpolate the Aerosol -deposition datasets to a new resolution. - - - - - -In the sections to come we will go into detailed description of how to use each of -these tools in turn. First, however we will discuss the common environment variables -and options that are used by all of the &FORTRAN; tools. Second, we go over the outline -of the entire file creation process for all input files needed by &clm; for a new -resolution, then we turn to each tool. In the last section we will -discuss how to customize files for particular observational sites. - - - -Common environment variables and options used in building the &FORTRAN; -tools - -The &FORTRAN; tools all have similar makefiles, and similar options for building. -All of the Makefiles use GNU Make extensions and thus require that you use GNU make -to use them. They also auto detect the type of platform you are on, using "uname -s" -and set the compiler, compiler flags and such accordingly. There are also environment -variables that can be set to set things that must be customized. All the tools use -&netcdf; and hence require the path to the &netcdf; libraries and include files. -On some platforms (such as Linux) multiple compilers can be used, and hence there -are env variables that can be set to change the &FORTRAN; and/or "C" compilers used. -The tools other than cprnc also allow finer control, by also -allowing the user to add compiler flags they choose, for both &FORTRAN; and "C", as -well as picking the compiler, linker and and add linker options. Finally the tools -other than cprnc allow you to turn -optimization on (which is off by default but on for the mksurfdata and -interpinic -programs) with the OPT flag so that the -tool will run faster. To get even faster performance, the interpinic, -mksurfdata, and -mkgriddata programs allow you to also use the SMP to -turn on multiple shared memory processors. -When SMP=TRUE you set the number of threads used by the program with -the OMP_NUM_THREADS environment variable. - - -Options used by all: cprnc, interpinic, -mkdatadomain, mkgriddata, and -mksurfdata - -LIB_NETCDF -- sets the location of the &netcdf; library. -INC_NETCDF -- sets the location of the &netcdf; include files. -USER_FC -- sets the name of the &FORTRAN; compiler. - -Options used by: interpinic, mkdatadomain, -mkgriddata, and mksurfdata - -MOD_NETCDF -- sets the location of the &netcdf; &FORTRAN; module. -USER_LINKER -- sets the name of the linker to use. -USER_CPPDEFS -- adds any CPP defines to use. -USER_CFLAGS -- add any "C" compiler flags to use. -USER_FFLAGS -- add any &FORTRAN; compiler flags to use. -USER_LDFLAGS -- add any linker flags to use. -USER_CC -- sets the name of the "C" compiler to use. -OPT -- set to TRUE to compile the code optimized (TRUE or FALSE) - -Options used by: interpinic, mkgriddata, and mksurfdata: - -SMP -- set to TRUE to turn on shared memory parallelism (i.e. -&omp;) (TRUE or FALSE) -Filepath -- list of directories to build source code from. -Srcfiles -- list of source code filenames to build executable from. - -Options used only by cprnc: - -EXEDIR -- sets the location where the executable will be built. -VPATH -- colon delimited path list to find the source files. - -More details on each environment variable. - - -LIB_NETCDF - -This variable sets the path to the &netcdf; library file -(libnetcdf.a). If not -set it defaults to /usr/local/lib. In order to use the tools -you need to build the &netcdf; library and be able to link to it. In order to build -the model with a particular compiler you may have to compile the &netcdf; library with -the same compiler (or at least a compatible one). - - - - - -INC_NETCDF - -This variable sets the path to the &netcdf; include directory (in order to find -the include file netcdf.inc). -if not set it defaults to /usr/local/include. - - - - - -MOD_NETCDF - -This variable sets the path to the &netcdf; module directory (in order to find -the &netcdf; &FORTRAN90; module file when &netcdf; is used with a &FORTRAN90; -use statement. When not set it defaults to the -LIB_NETCDF value. - - - - - -USER_FC - -This variable sets the command name to the &FORTRAN90; compiler to use when -compiling the tool. The default compiler to use depends on the platform. And -for example, on the AIX platform this variable is NOT used - - - - - -USER_LINKER - -This variable sets the command name to the linker to use when linking the object -files from the compiler together to build the executable. By default this is set to -the value of the &FORTRAN90; compiler used to compile the source code. - - - - - -USER_CPPDEFS - -This variable adds additional optional values to define for the C preprocessor. -Normally, there is no reason to do this as there are very few CPP tokens in the CLM -tools. However, if you modify the tools there may be a reason to define new CPP -tokens. - - - - - -USER_CC - -This variable sets the command name to the "C" compiler to use when -compiling the tool. The default compiler to use depends on the platform. And -for example, on the AIX platform this variable is NOT used - - - - - -USER_CFLAGS - -This variable adds additional compiler options for the "C" compiler to use -when compiling the tool. By default the compiler options are picked according -to the platform and compiler that will be used. - - - - - -USER_FFLAGS - -This variable adds additional compiler options for the &FORTRAN90; compiler to use -when compiling the tool. By default the compiler options are picked according -to the platform and compiler that will be used. - - - - - -USER_LDFLAGS - -This variable adds additional options to the linker that will be used when linking -the object files into the executable. By default the linker options are picked according -to the platform and compiler that is used. - - - - - -SMP - -This variable flags if shared memory parallelism (using i&omp;) should be used when -compiling the tool. It can be set to either TRUE or -FALSE, by default it is set to FALSE, so -shared memory parallelism is NOT used. When set to TRUE you can -set the number of threads by using the OMP_NUM_THREADS environment -variable. Normally, the most you would set this to would be to the number of on-node -CPU processors. Turning this on should make the tool run much faster. - - - -Note, that depending on the compiler answers may be different when SMP -is activated. - - - - - - -OPT - -This variable flags if compiler optimization should be used when -compiling the tool. It can be set to either TRUE or -FALSE, by default it is set to FALSE for -mkdatadomain and TRUE for -mksurfdata and interpinic. -Turning this on should make the tool run much faster. - - - -Note, you should expect that answers will be different when OPT -is activated. - - - - - - -Filepath - -All of the tools are stand-alone and don't need any outside code to operate. The -Filepath is the list of directories needed to compile -and hence is always simply "." the current directory. Several tools use -copies of code outside their directory that is in the &cesm; -distribution (either csm_share code or &clm; source code). - - - - - -Srcfiles - -The Srcfiles lists the filenames of the source code to use -when building the tool. - - - - - -EXEDIR - -The cprnc tool uses this variable to set the location of where the executable -will be built. The default is the current directory. - - - - - -VPATH - -The cprnc tool uses this variable to set the colon delimited pathnames of where -the source code exists. The default is the current directory. - - - - - - - - - -There are several files that are copies of the original files from either -models/lnd/clm/src/main, -models/csm_share/shr, or copies from other tool -directories. By having copies the tools can all be made stand-alone, but -any changes to the originals will have to be put into the tool directories -as well. - - - -The README.filecopies (which can be found in -models/lnd/clm/tools) is repeated here. - -&filecopies; - - - - - -General information on running the &FORTRAN; tools - -The tools run either one of two ways, with a namelist to provide options, or -with command line arguments (and NOT both). interpinic and -cprnc run with command line arguments, and the other tools -run with namelists. - - -Running &FORTRAN; tools with namelists - -mkgridata, mksurfdata and -mkdatadomain run with namelists that are read from -standard input. Hence, you create a namelist and then run them by -redirecting the namelist file into standard input as follows: - -./program < namelist - -For programs with namelists there is at least one sample namelist with the -name "program".namelist (i.e. mksurfdata.namelist -for the mksurfdata program). There may also be other sample -namelists that end in a different name besides "namelist". Namelists that you create -should be similar to the example namelist. The namelist values are also documented -along with the other namelists in the: - -models/lnd/clm/bld/namelist_files/namelist_definition.xml -file and default values in the: - -models/lnd/clm/bld/namelist_files/namelist_defaults_clm_tools.xml -file. - - - -Running &FORTRAN; tools with command line options - -interpinic and cprnc run with command line -arguments. The detailed sections below will give you more information on the command -line arguments specific to each tool. Also running the tool without any arguments -will give you a general synopsis on how to run the tool. For example to get help -on running interpinic do the following. - -cd models/lnd/clm/tools/interpinic -gmake -./interpinic - - - - -Running &FORTRAN; tools built with SMP=TRUE - -When you enable SMP=TRUE on your build of one of the tools that -make use of it, you are using &omp; for shared memory parallelism (SMP). In -SMP loops are run in parallel with different threads run on different processors -all of which access the same memory (called on-node). Thus you can only usefully -run up to the number of processors that are available on a single-node of the machine -you are running on. For example, on the &ncar; machine bluefire there are 32 processors -per node, but the SMT hardware on the machine allows you to submit twice as many -threads or 64 threads. So to run the mksurfdata on bluefire -optimized, with 64 threads you would do the following: - -cd models/lnd/clm/tools/mksurfdata -gmake OPT=TRUE SMP=TRUE -setenv OMP_NUM_THREADS 64 -./mksurfdata < mksurfdata.namelist - - - - - - -The File Creation Process - - -When just creating a replacement file for an existing one, the relevant tool should -be used directly to create the file. When you are creating a set of files for a new -resolution there are some dependencies between the tools that you need to keep in mind -when creating them. The main dependency is that the mkgriddata MUST -be done first as the grid dataset is then input into the other tools. Also look at -. - - - -Creating a complete set of files for input to &clm; - -Create grid and fraction datasets - -First use mkgriddata to create grid and fraction datasets. -See for more information on this. - - - - -Create domain dataset (if NOT already done) - -Next use mkdatadomain to create a domain file for use by -&datm; from the grid and fraction datasets just created. This is required, unless -a domain file already created was input into mkgriddata on -the previous step. -See for more information on this. - - - - -Create surface datasets - -Next use mksurfdata to create a surface dataset, using the grid -dataset as input. -See for more information on this. - - - - -Interpolate aerosol deposition datasets (optional) - -By default the atmosphere model will interpolate -these datasets on the fly, so you don't normally need to do this step. -A reason you might want to do this is to make the read and interpolation faster, -by reducing the amount of data read in and removing the need for the interpolation. -So, if you do, you can use aerdepregrid.ncl to regrid aerosol -deposition datasets to your new resolution using the grid dataset as input. -See for more information on this. - - - - -Interpolate Nitrogen deposition datasets (optional, but only needed if running &clmcn;) - -By default Nitrogen deposition is read in from stream -files at 2-degree resolution and interpolated to the resolution you are running at, -so you don't need to do this step. As with aerosol deposition datasets a reason -you might want to do this is to make the read and interpolation faster, -by reducing the amount of data read in and removing the need for the interpolation. -So, if you do you can use ndepregrid.ncl -to regrid Nitrogen deposition datasets to your new resolution using the grid dataset -as input. -See for more information on this. - - - - -Create some sort of initial condition dataset - - -You then need to do one of the following three options to have an initial dataset -to start from. - - - - - -Use spinup-procedures to create initial condition datasets - -The first option is to do the spinup procedures from arbitrary initial conditions -to get good initial datasets. This is the most robust method to use. -See , , or - for more information on this. - - - - -Use <command>interpinic</command> to interpolate existing initial -condition datasets - -The next option is to interpolate from spunup datasets at a different resolution, using -interpinic. -See for more information on this. - - - - -Start up from arbitrary initial conditions - -The last alternative is to run from arbitrary initial conditions without using any -spun-up datasets. This is inappropriate when using &clmcn; (bgc=cn or cndv) as it -takes a long time to spinup Carbon pools. - - -This is NOT recommended as many fields in &clm; take a long time to equilibrate. - - - - - - - - - - -Enter the new datasets into the &buildnml; XML database - -The last optional thing to do is to enter the new datasets into the &buildnml; -XML database. See for more information on -doing this. This is optional because the user may enter these files into their -namelists manually. The advantage of entering them into the database is so that -they automatically come up when you create new cases. - - - - - - - - -Using the <command>cprnc</command> tool to compare two history files - -cprnc is a tool shared by both CAM and &clm; to compare two -&netcdf; history files. -It differences every field that has a time-axis that is also shared on both files, -and reports a summary of the difference. The summary includes the three largest -differences, as well as the root mean square (RMS) difference. It also gives some -summary information on the field as well. You have to enter at least one file, and up to -two files. With one file it gives you summary information on the file, and with two it -gives you information on the differences between the two. At the end it will give you a -summary of the fields compared and how many fields were different and how many were -identical. - - -Options: - --m = do NOT align time-stamps before comparing --v = verbose output --ipr --jpr --kpr - -See the cprnc -README file for more details which is -repeated here: - -&cprnc_readme; - - - -To compare files with OUT a time axis you can use the cprnc.ncl -&ncl; script in models/lnd/clm/tools/ncl_scripts. It won't give -you the details on the differences but will report if the files are identical or -different. - - - - - - -Using <command>interpinic</command> to interpolate initial conditions to different -resolutions - -"interpinic" is used to interpolate initial conditions from one resolution to another. -In order to do the interpolation you must first run &clm; to create a restart file to -use as the "template" to interpolate into. Running from arbitrary initial conditions -(i.e. finidat = ' ') for a single time-step is sufficient to do this. Make sure the -model produces a restart file. You also need to make sure that you setup the same -configuration that you want to run the model with, when you create the template file. - - -Command line options to interpinic: - --i = Input filename to interpolate from --o = Output interpolated file, and starting template file - - - -There is a sample template file in the models/lnd/clm/tools/interpinic -directory and can be used to run interpolate to. -However, this file was created with an older version of &clm; and hence -we actually recommend that you would do a short run with &clm; to create a template file -to use. - - - - -Example of running &clm; to create a template file for -<command>interpinic</command> to interpolate to - -> cd scripts -> ./create_newcase -case cr_f10_TmpltI1850CN -res f10_f10 -compset I1850CN \ --mach bluefire -> cd cr_f10_TmpltI1850CN -# Set starting date to end of year -> ./xmlchange -file env_conf.xml -id RUN_STARTDATE -val 1948-12-31 -# Set year align to starting year -> ./xmlchange -file env_conf.xml -id DATM_CLMNCEP_YR_ALIGN -val 1948 -# Set to run a cold start -> ./xmlchange -file env_conf.xml -id CLM_FORCE_COLDSTART -val on -# Set to run only a single day, so a restart file will be created on Jan/1/1949 -> ./xmlchange -file env_run.xml -id STOP_N -val 1 -# Then configure, build and run as normal -> ./configure -case -> ./cr_f10_TmpltI1850CN.bluefire.build -> ./cr_f10_TmpltI1850CN.bluefire.submit -# And copy the resulting restart file to your interpinic directory -> cd ../models/lnd/clm/tools/interpinic -> cp /ptmp/$LOGIN/cr_f10_TmpltI1850CN/run/cr_f10_TmpltI1850CN.clm2.r.1949-01-01-00000.nc . - - - - -In the next example we build interpinic optimized with shared -memory on for 64 threads so that it runs as fast as possible, to interpolate one of -the standard 1-degree datasets to the above 10x15 template file that we created. - - -Example of building and running <command>interpinic</command> to -interpolate a 1-degree <filename>finidat</filename> dataset to 10x15 - -> cd models/lnd/clm/tools/interpinic -> gmake OPT=TRUE SMP=TRUE -> env OMP_NUM_THREADS=64 ./interpinic -o cr_f10_TmpltI1850CN.clm2.r.1949-01-01-00000.nc / --i /fs/cgd/csm/inputdata/ccsm4_init/b40.1850.track1.1deg.006/0863-01-01/b40.1850.track1.1deg.006.clm2.r.0863-01-01-00000.nc - - - - -Running interpinic at high resolution can take a long time, so we -recommend that you always build it optimized and with shared memory processing on, to -cut down the run time as much as possible. - - - - -interpinic does NOT work for CNDV (bgc=cndv). - - - - - - -In we give a simpler way to run -interpinic for several standard resolutions at once, with a script -to loop over several resolutions. This is useful for &clm; developers who need to -create many finidat files at once. - - - - - -Using <command>mkgriddata</command> to create grid datasets - -mkgriddata is used to create grid, fraction, and topography -datasets to run &clm; at a new resolution. It is typically the first step in creating -datasets needed to run &clm; at a new resolution (followed by -mksurfdata, and -then the interpolation programs, aerdepregrid.ncl, and -ndepregrid.ncl when running with CN). - - - -mkgriddata namelist - -mkgriddata is controlled by a namelist. There are ten different -namelist items, and you need to use enough of them so that files will be output. -The different types of input datasets contain different input data types, that -correspond to the three different types of output files: grid, fraction, and topography. -Output files for each of these will only be output if there is input data that -correspond to these. If you only have input data for grid locations -- you will only -get an output grid file. If you have both grid and fraction data you will get grid and -fraction data files. If you also have topography data you will also get topo files. - - -Namelist options to mkgriddata include: - -mksrf_fnavyoro -- Navy orography file to use for land fraction -and surface heights. -mksrf_frawtopo -- Raw topography file with just surface -heights. -mksrf_fcamfile -- CAM initial conditions file with -land-fractions and topography -mksrf_fclmgrid -- &clm; grid file -mksrf_fccsmdom -- &cesm; domain file -mksrf_fcamtopo -- CAM topography file -mksrf_lsmlon -- number of longitude for regional grid -mksrf_lsmlatnumber of latitudes for regional grid -mksrf_edgen -- Northern edge for regional grid -mksrf_edgee -- Southern edge for regional grid -mksrf_edges -- Eastern edge for regional grid -mksrf_edgew -- Western edge for regional grid - - - -You need to enter one of the following four options: - - mksrf_fnavyoro - high resolution topo dataset (topo data) - mksrf_lsmlon - number of longitudes - mksrf_lsmlat - number of latitudes - mksrf_edgen - northern edge of grid (degrees) - mksrf_edgee - eastern edge of grid (degrees) - mksrf_edges - southern edge of grid (degrees) - mksrf_edgew - western edge of grid (degrees) - -or - - mksrf_fcamfile - CAM topo file (grid and possibly fraction data) - -or - - mksrf_fccsmdom - &cesm; domain file (both grid, and fraction data) - -or - - mksrf_fclmgrid - &clm; grid or surface dataset file (grid data) - -Note, you can provide more than one of the needed datasets, and the output -data will be determined by the datasets according to an order of precedence. -The order of precedence for data is as follows: - -mksrf_fcamfile -mksrf_fclmgrid -mksrf_fnavyoro -mksrf_fccsmdom - -Grid data then will be established by the file with the highest precedence. -&cesm; domain files sometimes have latitudes and longitudes that are "off" from -the standard by a small amount. By establishing an order of precedence you can ensure -that grid locations exactly match a given standard file, even if the values in the domain -file are off from that. - - - -There are three different major modes for using "mkgriddata" to create grid files -for &clm;: - -mksrf_fnavyoro -- Navy orography file to use for land fraction -and surface heights. -mksrf_frawtopo -- Raw topography file with just surface -heights. -mksrf_fcamfile -- CAM initial conditions file with -land-fractions and topography -mksrf_fclmgrid -- &clm; grid file -mksrf_fccsmdom -- &cesm; domain file -mksrf_fcamtopo -- CAM topography file -mksrf_lsmlon -- number of longitude for regional grid -mksrf_lsmlat -- number of latitudes for regional grid -mksrf_edgen -- Northern edge for regional grid -mksrf_edgee -- Southern edge for regional grid -mksrf_edges -- Eastern edge for regional grid -mksrf_edgew -- Western edge for regional grid - - - -You need to enter one of the following four options: - - mksrf_fnavyoro - high resolution topo dataset (topo data) - mksrf_lsmlon - number of longitudes - mksrf_lsmlat - number of latitudes - mksrf_edgen - northern edge of grid (degrees) - mksrf_edgee - eastern edge of grid (degrees) - mksrf_edges - southern edge of grid (degrees) - mksrf_edgew - western edge of grid (degrees) - -or - - mksrf_fcamfile - CAM topo file (grid and possibly fraction data) - -or - - mksrf_fccsmdom - &cesm; domain file (both grid, and fraction data) - -or - - mksrf_fclmgrid - &clm; grid or surface dataset file (grid data) - -Note, you can provide more than one of the needed datasets, and the output -data will be determined by the datasets according to an order of precedence. -The order of precedence for data is as follows: - -mksrf_fcamfile -mksrf_fclmgrid -mksrf_fnavyoro -mksrf_fccsmdom - -Grid data then will be established by the file with the highest precedence. -&cesm; domain files sometimes have latitudes and longitudes that are "off" from -the standard by a small amount. By establishing an order of precedence you can ensure -that grid locations exactly match a given standard file, even if the values in the domain -file are off from that. - - - -There are three different major modes for using mkgriddata to -create grid files for &clm;: - -Convert &cesm; domain files to &clm; grid files -Create single point or regional area grid files -Convert CAM files to &clm; grid files - - - - - -Convert &cesm; domain files to &clm; grid files - -&cesm; domain files such as used for &datm;, include all the information -needed to create &clm; grid and fraction files. - -Example <command>mkgriddata</command> namelist to convert &cesm; 4x5 domain files to &clm; grid files - -&clmexp - mksrf_fccsmdom= -'/fs/cgd/csm/inputdata/lnd/dlnd7/domain.lnd.4x5_gx3v5.060404.nc' - mksrf_fclmgrid= -'/fs/cgd/csm/inputdata/lnd/clm2/griddata/griddata_4x5_060404.nc' -/ - - - - -Notice that in the above example, a &clm; grid file is included as well, even though -it's not required. The reason for this is to ensure that the latitude and longitudes -on the output files exactly match a standard grid file. - - - - - - -Create single point or regional area grid files - -The process to create single-point or regional area &clm; grid files is the same. -You enter the number of latitudes and longitudes you want on your output file and -the extent of the grid: North, East, South and West. You also tell -mkgriddata that -you are entering a "regional" grid and you also enter the standard Navy orography -dataset (or your own orography file if desired). For a single point you simply -enter "1" for the number of latitudes and longitudes, but you still enter the -grid extent (of the single grid cell). Here is a sample regional namelist to create -a 5x5 regional grid over the Amazon: - -Example <command>mkgriddata</command> namelist to create regional grid over Amazon - -&clmexp - mksrf_fnavyoro= -"/fs/cgd/csm/inputdata/lnd/clm2/rawdata/mksrf_navyoro_20min.c010129.nc" - mksrf_lsmlon = 5 - mksrf_lsmlat = 5 - mksrf_edgee = 303.75 - mksrf_edgew = 286.25 - mksrf_edges = -15. - mksrf_edgen = -4. -/ - - - - - -Currently you can NOT have regional grids that straddle both -sides of the Greenwich (longitude = zero) line. - - - - -You should enter longitudes with values from 0 to 360 East. - - - - - -Convert <acronym>CAM</acronym> files to &clm; grid files (deprecated) - -Older CAM initial files included all the information needed to create &clm; -grid files. Newer CAM files no longer include land fraction data. Hence you -can use CAM files to give you the grid coordinates, but you need other data -to give you the land-mask and topography. Since, CAM files no longer -contain the needed information, this option is now deprecated. In most cases you should -use one of the other two options. - - - - - - - -Using <command>mkdatadomain</command> to create domain datasets for &datm; or docn from &clm; grid datasets - -"mkdatadomain" is used to convert &clm; grid and fraction datasets into domain datasets -that can be used by either the "datm" or "docn" models. Most often &clm; users will want -to convert the grid datasets they just created using mkgriddata into -domain datasets to be used by &datm; for an "I" case. mkdatadomain is -controlled by a namelist, and has a very straight forward operation with only four -namelist items all of which are required. You specify which output mode you want "datm" -or "docn", and then set the input &clm; grid and frac datasets, and the output domain file. - - -Example <command>mkdatadomain</command> namelist to create a domain file from -&clm; frac and grid data files - -&domain_nl - dtype = "datm" - f_fracdata = -'/fs/cgd/csm/inputdata/lnd/clm2/griddata/fracdata_4x5_USGS_070110.nc' - f_griddata = -'/fs/cgd/csm/inputdata/lnd/clm2/griddata/griddata_4x5_060404.nc' - f_domain = -'domain.lnd.fv4x5_USGS.090117.nc' -/ - - - - - -Using mksurfdata to create surface datasets from grid datasets - -mksurfdata is used to create surface-datasets from grid datasets and raw datafiles -at half-degree resolution to produce files that describe the surface characteristics -needed by &clm; (fraction of grid cell covered by different land-unit types, and fraction -for different vegetation types, as well as things like soil color, and soil texture, -etc.). To run mksurfdata you can either use the -mksurfdata.pl script which will create namelists for you using the &buildnml; -XML database, or you can run it by hand using a namelist that you provide (possibly -modeled after an example provided in the -models/lnd/clm/tools/mksurfdata directory). The namelist for -mksurfdata is sufficiently complex that we recommend using the -mksurfdata.pl tool to build them. In the next section -we describe how to use the mksurfdata.pl script and the following -section gives more details on running mksurfdata by hand and the -various namelist input variables to it. - - -Running <command>mksurfdata.pl</command> - -The script mksurfdata.pl can be used to run the -mksurfdata program for several configurations, resolutions, -simulation-years and simulation year ranges. It will create the needed namelists for -you and move the files -over to your inputdata directory location (and create a list of the files created, and -for developers this file is also a script to import the files into the svn inputdata -repository). It will also use the &buildnml; XML database -to determine the correct input files to use, and for transient cases it will create -the appropriate mksrf_fdynuse file with the list of files for each -year needed for this case. And in the case of urban single-point -datasets (where surface datasets are actually input into mksurfdata) -it will do the additional processing required so that the output dataset -can be used once again by mksurfdata. Because, it figures out -namelist and input files for you, it is recommended that you use this script for creation -of standard surface datasets. If you need to create surface datasets for customized -cases, you might need to run mksurfdata on it's own. But you -could use mksurfdata.pl with the "-debug" option to give you -a namelist to start from. -For help on mksurfdata.pl you can use the "-help" option as below: - -> cd models/lnd/clm/tools/mksurfdata -> mksurdata.pl -help - -The output of the above command is: - -&mksurfdatapl; - - - -To run the script with optimized mksurfdata for a 4x5 degree grid -for 1850 conditions, on bluefire you would do the following: - -Example of running <command>mksurfdata.pl</command> to create a 4x5 resolution -<filename>fsurdat</filename> for a 1850 simulation year - -> cd models/lnd/clm/tools/mksurfdata -> gmake -> mksurfdata.pl -y 1850 -r 4x5 - - - - - - -Running <command>mksurfdata</command> by Hand - -In the above section we show how to run mksurfdata through -the mksurfdata.pl using input datasets that are in the &buildnml; -XML database. When you are running with input datasets that are NOT available in -the XML database you either need to add them as outlined in -, or you need to run mksurfdata -by hand, as we will outline here. - - - -Preparing your <command>mksurfdata</command> namelist - -When running mksurfdata by hand you will need to prepare your -own input namelist. There are sample namelists that are setup for running on the -&ncar; machine bluefire. You will need to change the filepaths to -run on a different machine. The list of sample namelists include - -mksurfdata.namelist -- standard sample namelist. -mksurfdata.regional -- sample namelist to -build for a regional grid dataset (5x5_amazon) -mksurfdata.singlept -- sample namelist to -build for a single point grid dataset (1x1_brazil) - -Note, that one of the inputs mksrf_fdynuse is a filename that -includes the filepaths to other files. The filepaths in this file will have to -be changed as well. You also need to make sure that the line lengths remain the same -as the read is a formatted read, so the placement of the year in the file, must remain -the same, even with the new filenames. One advantage of the mksurfdata.pl -script is that it will create the mksrf_fdynuse file for you. - - -We list the namelist items below. Most of the namelist items are filepaths to give to -the input half degree resolution datasets that you will use to scale from to the -resolution of your grid dataset. -You must first specify the input grid dataset for the resolution to output for: - -mksrf_fgrid Grid dataset - -Then you must specify settings for input high resolution datafiles - -mksrf_ffrac land fraction and land mask dataset -mksrf_fglacier Glacier dataset -mksrf_fglacierregion Glacier region ID dataset -mksrf_flai Leaf Area Index dataset -mksrf_flanwat Land water dataset -mksrf_forganic Organic soil carbon dataset -mksrf_fmax Max fractional saturated area dataset -mksrf_fsoicol Soil color dataset -mksrf_fsoitex Soil texture dataset -mksrf_ftopo Topography dataset (this is used to limit -the extent of urban regions and is used for glacier multiple elevation classes) - -mksrf_furban Urban dataset -mksrf_fvegtyp PFT vegetation type dataset -mksrf_fvocef Volatile Organic Compound Emission Factor -dataset -mksrf_fgdp GDP dataset -mksrf_fpeat Peatland dataset -mksrf_fabm Agricultural fire peak month dataset -mksrf_ftopostats Topography statistics dataset -mksrf_fvic VIC parameters dataset -mksrf_fch4 Inversion-derived CH4 parameters dataset - -You specify the ASCII text file with the land-use files. - -mksrf_fdynuse "dynamic land use" for transient -land-use/land-cover changes. This is an ASCII text file that lists the filepaths -to files for each year and then the year it represents (note: you MUST change the -filepaths inside the file when running on a machine NOT at &ncar;). -We always use this file, even for creating datasets of a fixed year. Also note -that when using the "pft_" settings this file will be an XML-like file with settings -for PFT's rather than filepaths (see below). - - - -And optionally you can specify settings for: - -all_urban If entire area is urban (typically used for -single-point urban datasets, that you want to be exclusively urban) -no_inlandwet If TRUE, set wetland to 0% over land -(renormalizing other landcover types as needed); wetland will only be used for ocean -points. (Only applies to CLM4.5 version of mksurfdata_map, for which the default is -TRUE.) -mksrf_firrig Irrigation dataset, if you want -activate the irrigation model over generic cropland -(experimental mode, normally NOT used) -mksrf_gridnm Name of output grid resolution (if not -set the files will be named according to the number of longitudes by latitudes) -mksrf_gridtype Type of grid (default is 'global') -nglcec number of glacier multiple elevation classes. -Can be 0, 1, 3, 5, or 10. When using the resulting dataset with &clm; you can then run -with glc_nec of either 0 or this value. - (experimental normally use the default of 0, when running with the land-ice -model in practice only 10 has been used) -numpft number of Plant Function Types (PFT) -in the input vegetation mksrf_fvegtyp dataset. You change -this to 20, if you want to create a dataset with prognostic crop activated. The -vegetation dataset also needs to have prognostic crop types on it as well. - (experimental normally not changed from the default of 16) -outnc_large_files If output should be in &netcdf; large file -format -outnc_double If output should be in double -precision (normally we turn this on) -pft_frc array of fractions to override PFT -data with for all gridpoints (experimental mode, normally NOT used). -pft_idx array of PFT indices to override PFT -data with for all gridpoints (experimental mode, normally NOT used). -soil_clay percent clay soil to override -all gridpoints with (experimental mode, normally NOT used). -soil_color Soil color to override -all gridpoints with (experimental mode, normally NOT used). -soil_fmax Soil maximum fraction to override -all gridpoints with (experimental mode, normally NOT used). -soil_sand percent sandy soil to -override all gridpoints with (experimental mode, normally NOT used). - - - -After creating your namelist, -when running on a non &ncar; machine you will need to get the files -from the inputdata repository. -In order to retrieve the files needed for mksurfdata you can do the following on your -namelist to get the files from the inputdata repository, using the -check_input_data script which also allows you to export data to -your local disk. - -Getting the raw datasets for <command>mksurfdata</command> to your local -machine using the <command>check_input_data</command> script - -> cd models/lnd/clm/tools/mksurfdata -# First remove any quotes and copy into a filename that can be read by the -# check_input_data script -> sed "s/'//g" namelist > clm.input_data_list -# Run the script with -export and give the location of your inputdata with $CSMDATA -> ../../../../../scripts/ccsm_utils/Tools/check_input_data -datalistdir . \ --inputdata $CSMDATA -check -export -# You must then do the same with the flanduse_timeseries file referred to in the namelist -# in this case we add a file = to the beginning of each line -> awk '{print "file = "$1}' landuse_timeseries_hist_simyr2000-2000.txt > clm.input_data_list -# Run the script with -export and give the location of your inputdata with $CSMDATA -> ../../../../../scripts/ccsm_utils/Tools/check_input_data -datalistdir . \ --inputdata $CSMDATA -check -export - - - - -Experimental options to <command>mksurfdata</command> - -The options: pft_frc, pft_idx, soil_clay, soil_color, soil_fmax, and soil_sand are also -new and considered experimental. They provide a way to override the PFT and soil -values for all grid points to the given values that you set. This is useful for -running with single-point tower sites where the soil type and vegetation is known. -Note that when you use pft_frc, all other landunits will be zeroed out, and the -sum of your pft_frc array MUST equal 100.0. Also note that when using the "pft_" -options the mksrf_fdynuse file instead of having filepath's -will be an XML-like file with PFT settings. Unlike the file of file-paths, you will -have to create this file by hand, mksurfdata.pl will NOT be able -to create it for you (other than the first year which will be set to the values -entered on the command line). Note, that when &ptclm; is run, it CAN create these -files for you from a simpler format (see ). -Instead of a filepath you have a list of XML elements that give information on the PFT's -and harvesting for example: - -<pft_f>100</pft_f><pft_i>1</pft_i><harv>0,0,0,0,0</harv><graz>0</graz> - -So the <pft_f> tags give the PFT fractions and the <pft_i> tags give the -index for that fraction. Harvest is an array of five elements, and grazing is a single -value. Like the usual file each list of XML elements goes with a year, and there is -limit on the number of characters that can be used. - - - - - -Standard Practices when using <command>mksurfdata</command> - -In this section we give the recommendations for how to use mksurfdata -to give similar results to the files that we created when using it. - - -If you look at the standard surface datasets that we have created and provided for use, -there are three practices that we have consistently done in each (you also see these in -the sample namelists and in the mksurfdata.pl script). The first is -that we always output data in double precision (hence outnc_double -is set to .true.). The next is that we always use the procedure -for creating transient datasets (using mksrf_fdynuse) even when -creating datasets for a fixed simulation year. This is to ensure that the fixed year -datasets will be consistent with the transient datasets. When this is done a -"landuse_timeseries" dataset will be created -- but will NOT be used in &clm;. If you look -at the sample namelist mksurfdata.namelist you note that it -sets mksrf_fdynuse to the file -landuse_timeseries_hist_simyr2000.txt, where the single file entered is -the same PFT file used in the rest of the namelist (as mksrf_fvegtyp). -The last practice that we always do is to always set mksrf_ftopo, -even if glacier elevation classes are NOT active. This is -important in limiting urban areas based on topographic height, and hence is important -to use all the time. The glacier multiple elevation classes will be used as well if -you are running a compset with the active glacier model. - - -There are two other important practices for creating urban single point datasets. The -first is that you often will want to set all_urban to -.true. so that the dataset will have 100% of the gridcell output -as urban rather than some mix of: urban, vegetation types, and other landunits. The -next practice is that most of our specialized urban datasets have custom values for -the urban parameters, hence we do NOT want to use the global urban dataset to get -urban parameters -- we use a previous version of the surface dataset for the urban -parameters. However, in order to do this, we need to append onto the previous surface -dataset the grid and land mask/land fraction information from the grid and fraction -datasets. This is done in mksurfdata.pl using the NCO -program ncks. An example of doing this for the Mexico City, Mexico -urban surface dataset is as follows: - -> ncks -A $CSMDATA/lnd/clm2/griddata/griddata_1x1pt_mexicocityMEX_c090715.nc \ -$CSMDATA/lnd/clm2/surfdata/surfdata_1x1_mexicocityMEX_simyr2000_c100407.nc -> ncks -A $CSMDATA/lnd/clm2/griddata/fracdata_1x1pt_mexicocityMEX_navy_c090715.nc \ -$CSMDATA/lnd/clm2/surfdata/surfdata_1x1_mexicocityMEX_simyr2000_c100407.nc - -Note, if you look at the current single point urban surface datasets you will note -that the above has already been done. - - -The final issue is how to build mksurfdata. When NOT optimized -mksurfdata is very slow, and can take many hours to days to -even run for medium resolutions such as one or two degree. So usually you will want -to run it optimized. Possibly you also want to use shared memory parallelism using -&omp; with the SMP option. The problem with running optimized is that -answers will be different when running optimized versus non-optimized for most -compilers. So if you want answers to be the same as a previous surface dataset, you -will need to run it on the same platform and optimization level. Likewise, running -with or without &omp; may also change answers (for most compilers it will NOT, however -it does for the IBM compiler). However, answers should be the same regardless of the -number of threads used when &omp; is enabled. Note, that the output surface datasets -will have attributes that describe whether the file was written out optimized or not, -with threading or not and the number of threads used, to enable the user to more -easily try to match datasets created previously. For more information on the different -compiler options for the &clm4; tools see . - - - - - - - -Using &ncl; scripts <command>ndepregrid.ncl</command> and -<command>aerdepregrid.ncl</command> to interpolate aerosol deposition datasets - -Unlike the other tools, these are &ncar; Command Language (&ncl;) scripts -and you will need to get a copy of &ncl; in order to use them. You also won't have to -build an executable in order to use them, hence no Makefile is provided. &ncl; is provided -for free download as either binaries or source code from: -http://www.ncl.ucar.edu/. The &ncl; -web-site also contains documentation on &ncl; and it's use. - - -By default at this point neither of these scripts HAS to be used, -as the model is now constructed to read aerosol and Nitrogen deposition from 2-degree -datasets and interpolate to the model resolution on the fly. The main reason you might -want to do this now, is for better performance for single-point simulations. - - -Both the ndepregrid.ncl and aerdepregrid.ncl -scripts have similar interfaces and you customize the output resolution and -characteristics based on the settings of environment variables that you set (if you -don't set any of the variables, the script has defaults that it will use). -The list of environment variables that can be set are: - -RES -- output resolution name -RCP -- representative concentration pathway for future scenarios -(example 2.6, 4.5, 6, or 8.5) -SIM_YR -- simulation year (example 1850 or 2000) -SIM_YR_RNG -- simulation year range (example 1850-2000 or -1850-2100) -GRDFIL -- full pathname of grid file to use -(in place of getting the default grid file based on the RES value) -CSMDATA -- &cesm; inputdata directory -CLM_ROOT -- root directory for &clm; (models/lnd/clm directory) - - - - -You MUST provide either RES or both -GRDFIL AND RES. If you -just give RES the default namelist database in -models/lnd/clm/bld will be used to find the default grid -file based on the resolution name RES. If you provide -GRDFIL the input pathname of the gridfile provided will be used, -and the output filename will include RES as part of it's name -to designate it as an output file at that resolution. - - - -Both scripts assume that you will be interpolating from a native resolution of 1.9x2.5 -and using the default files found in the namelist database to interpolate from. If you -want to interpolate from another resolution or use other files, you would need to edit -the scripts to do so. Both scripts also use a bilinear interpolation to do the -regridding. The environment variables: RCP, SIM_YR, -and SIM_YR_RNG will be used to query the namelist database to -determine which native dataset to interpolate from. If you don't provide valid -values for these variables, it won't be able to find a dataset to interpolate from. -You can use the build-namelist script to query what the valid values for these can -be. Likewise, when you use RES to determine the grid file to interpolate -to, it needs to be a valid value from the namelist database. - - -The scripts can be used to interpolate from (and create output) constant or -transient datasets. -Constant datasets specify the SIM_YR and set SIM_YR_RNG -to constant (which is also the default). Transient datasets need -to specify both SIM_YR and SIM_YR_RNG, where -SIM_YR is set to the first year in the interval (typically 1850). - - -The default for CSMDATA works for &ncar; computers, but will need to -be set to the top level directory location of your &cesm; input data on other computers. -If you set this as a default for your shell when you login (for example with your -$HOME/.cshrc if you use csh) you won't have to set it each time -you run the script. CLM_ROOT will default to the proper location -when you run it in the models/lnd/clm/tools/ncl_script -directory. It is only useful if you want to run the script out of a different -directory. - - -Using <command>ndepregrid.ncl</command> to interpolate Nitrogen deposition datasets - -ndepregrid.ncl interpolates the Nitrogen deposition datasets from one resolution -to another. - - - -Interpolating Nitrogen deposition files is no longer needed, because the model can -read Nitrogen deposition files at one resolution and interpolate to the resolution the -model is running at on the fly. Interpolating to another -resolution is only useful for very course resolutions, if you want to save some computing -resources in reading larger datasets. For example, this may be useful in obtaining -single-point datasets. - - - -For example, to interpolate to an output resolution of 0.9x1.25, for a constant -simulation-year of 1850, you would do the following: - -> env RES=0.9x1.25 SIM_YR=1850 ncl ndepregrid.ncl - - - - - -Using <command>aerdepregrid.ncl</command> to interpolate Aerosol deposition datasets - -aerdepregrid.ncl interpolates the Aerosol deposition datasets from one resolution. -It can be used to interpolate either constant datasets (for example: -aerosoldep_monthly_2000_0.9x1.25_c090828.nc) or transient datasets (for example: -aerosoldep_monthly_1849-2006_0.9x1.25_c090830.nc). - - - -Interpolating aerosol deposition files is no longer needed, because the &datm; model can -read aerosol deposition files at one resolution and interpolate to the resolution the -model is running at on the fly. Interpolating to another -resolution is only useful for very course resolutions, if you want to save some computing -resources in reading larger datasets. For example, this may be useful in obtaining -single-point datasets. - - - -For example, to interpolate to an output resolution of 4x5, for a transient -simulation-year range of 1850 to 2100 and the rcp of 8.5, you would do the following: - -> env RES=4x5 SIM_YR=1850 SIM_YR_RNG=1850-2100 RCP=8.5 ncl ndepregrid.ncl - - - - - - -How to Customize Datasets for particular Observational Sites - -There are two ways to customize datasets for a particular observational site. The first -is to customize the input to the tools that create the dataset, and the second is to -over-write the default data after you've created a given dataset. Depending on the tool -it might be easier to do it one way or the other. In we list the files that are most likely to be -customized and the way they might be customized. Of those files, the ones you are most -likely to customize are: fatmlndfrc, fsurdat, faerdep (for &datm;), and -stream_fldfilename_ndep. Note mksurfdata as documented previously -has options to overwrite the vegetation and soil types. For more information on this also see - and &ptclm; uses these methods to -customize datasets see . - - -Another aspect of customizing your input datasets is customizing the input atmospheric -forcing datasets. See the for more -information on this. Also the chapter on &ptclm; in -has information on using the AmeriFlux tower site data as atmospheric forcing. - - - - -Conclusion of tools description - -We've given a description of how to use the different tools with &clm; to create -customized datasets. In the next chapter we will talk about how to make these -files available for build-namelist so that you can easily create simulations -that include them. In the chapter on single-point and regional datasets we also -give an alternative way to enter new datasets without having to edit files. - - - - - diff --git a/doc/UsersGuide/trouble_shooting.xml b/doc/UsersGuide/trouble_shooting.xml deleted file mode 100644 index 418cfabaae..0000000000 --- a/doc/UsersGuide/trouble_shooting.xml +++ /dev/null @@ -1,545 +0,0 @@ - - -Trouble Shooting Problems - -In this chapter we give some guidance on what to do when you encounter some of the -most common problems. We can't cover all the problems that a user could potentially -have, but we will try to help you recognize some of the most common situations. -And we'll give you some suggestions on how to approach the problem to come up with -a solution. - - -In general you will run into one of three type of problems: - -configure-time -build-time -run-time - -You may also run into problems with create_newcase itself, or -with the archiving scripts -- for those problems you should consult the -&cesmrel; Scripts User's Guide. - - - -Trouble with Configuration - -The first type of problem happens when you invoke the configure -case -command. This indicates there is something wrong with your template files, or input -datasets, or the details of what you are trying to configure the model to do. -There's also a trouble-shooting chapter in the &cesmrel; -Scripts User's Guide. Many of the problems with configuration can be resolved -with the guidelines given there. Here we will restrict ourselves to problems from the -&clm; or &datm; templates or input files. - -Example of configure problem with missing datasets - -> ./create_newcase -case T31rcp6 -res T31_g37 -compset IRCP60CN \ --mach bluefire -> ./configure -case - -The following is what is displayed to the screen. - -Generating resolved namelist, prestage, and build scripts -configure done. -adding use_case 1850-2100_rcp6_transient defaults for var clm_demand with val flanduse_timeseries -adding use_case 1850-2100_rcp6_transient defaults for var clm_start_type with val startup -adding use_case 1850-2100_rcp6_transient defaults for var model_year_align_ndep with val -1850 -adding use_case 1850-2100_rcp6_transient defaults for var rcp with val 6 -adding use_case 1850-2100_rcp6_transient defaults for var sim_year with val 1850 -adding use_case 1850-2100_rcp6_transient defaults for var sim_year_range with val -1850-2100 -adding use_case 1850-2100_rcp6_transient defaults for var stream_year_first_ndep with val -1850 -adding use_case 1850-2100_rcp6_transient defaults for var stream_year_last_ndep with val -2100 -adding use_case 1850-2100_rcp6_transient defaults for var use_case_desc with val Simulate -transient land-use, aerosol and Nitrogen deposition changes with historical data from -1850 to 2005 and then with the RCP6 scenario from AIM - -build-namelist - No default value found for flanduse_timeseries. - Are defaults provided for this resolution and land mask? -ERROR: generate_resolved.csh error for lnd template -configure error: configure generated error in attempting to created resolved scripts - - -The important thing to note here is the line: - -ERROR: generate_resolved.csh error for lnd template - -which tells us that the problem is in the land template. It may also indicate problems -in one of the other templates (atm, ccsm, cpl, glc, ice, or ocn), in which case you -should consult the appropriate model user's guide, and examine the given template file -in Tools/Templates. For more information on working with template -files see . - - -In the example above, it's obvious that the problem is coming from the &clm; &buildnml;, -in other situations it might not be so obvious where the problem is occurring. In such -cases it might be useful to add a "set echo" command to the top of the template file so -that each command in the template will be echoed to the screen and you can see what -is happening and where the error is occurring. - -set echo - - - -In the example, the error is that the &clm; XML database does NOT have a -flanduse_timeseries for the given resolution, rcp scenario and ocean mask. -That means you will need to create the file and then supply the file into your case. See - for more information on creating files, and see - for more information on adding files to the -XML database. Alternatively, you can provide the file to your case by creating -a user namelist as shown in . - - - -The two most common problems from your &clm; template will be errors from the &clm; -&configure; or &buildnml;. For more information on these scripts see: - and -the section on &CLMBLDNML;. - - - - - -Trouble with Building - -Here's an example of running the build for a case and having it fail in the land model -build. As you can see it lists which model component is being built and the build log -for that component. - - CCSM BUILDEXE SCRIPT STARTING - - Build Libraries: mct pio csm_share -Sat Jun 19 21:21:19 MDT 2010 /ptmp/erik/test_build/mct/mct.bldlog.100619-212107 -Sat Jun 19 21:22:18 MDT 2010 /ptmp/erik/test_build/pio/pio.bldlog.100619-212107 -Sat Jun 19 21:23:18 MDT 2010 -/ptmp/erik/test_build/csm_share/csm_share.bldlog.100619-212107 -Sat Jun 19 21:24:00 MDT 2010 /ptmp/erik/test_build/run/cpl.bldlog.100619-212107 -Sat Jun 19 21:24:00 MDT 2010 /ptmp/erik/test_build/run/atm.bldlog.100619-212107 -Sat Jun 19 21:24:06 MDT 2010 /ptmp/erik/test_build/run/lnd.bldlog.100619-212107 -ERROR: clm.buildexe.csh failed, see /ptmp/erik/test_build/run/lnd.bldlog.100619-212107 -ERROR: cat /ptmp/erik/test_build/run/lnd.bldlog.100619-212107 - -You can then examine the build log that failed and see what went wrong. Most compilers -will give the full filepath and line number for the file that filed to compile. - - - - -Trouble with Running - -Tracking down problems while the model is running is much more difficult to do -than configure or build problems. In this section we will give some suggestions -on how to find run time problems. Below we show the log file results of a job -that aborted while running. - - CCSM PRESTAGE SCRIPT HAS FINISHED SUCCESSFULLY -Sun Jun 20 18:24:06 MDT 2010 -- CSM EXECUTION BEGINS HERE -Sun Jun 20 18:24:35 MDT 2010 -- CSM EXECUTION HAS FINISHED -Model did not complete - see /ptmp/erik/test_run/run/cpl.log.100620-182358 - -In the next section we will talk about using the different log files to track -down problems, and find out where the problem is coming from. In the section -after that we give some general advice on debugging problems and some suggestions -on ideas that may be helpful to track the problem down. Some of the examples -below are from the &KnownBugs; file. - - -Tracking Problems by Querying Log Files - -The first thing to do when tracking down problems is to query the different log -files to see if you can discover where the problem occurs, and any error messages about -it. It's important to figure out if the problem comes in at initialization or in the -run phase of the model, and in which model component the problem happens. There -are different log files for the different major components, and they all end -with the date and time in YYMMDD-HHMMSS format (2-digit: year, month, day, hour -minute and second). When the model runs to completion the log files will be copied -to the logs directory in the script directory, but when the -model fails they will remain in the run directory. Here's an example list of -log files from an "I" case where the model dies in the land model initialization. -For "I" cases the sea-ice and ocean components are just stubs and don't create -log files (and unless running with the active land-ice model "glc" log files won't -be created either). - -atm.log.100620-182358 -ccsm.log.100620-182358 -cpl.log.100620-182358 -lnd.log.100620-182358 - - - - -The coupler log file - -The first log file to check is the coupler log file so that you can see where -the model dies and which model component it fails in. When the model dies at -initialization the last model component listed is the component that failed. - - -Example of a case that fails in the &clm; land model initialization. - -(seq_timemgr_clockPrint) Prev Time = 00001201 00000 -(seq_timemgr_clockPrint) Next Time = 99991201 00000 -(seq_timemgr_clockPrint) Intervl yms = 9999 0 0 - -(seq_mct_drv) : Initialize each component: atm, lnd, ocn, and ice -(seq_mct_drv) : Initialize atm component -(seq_mct_drv) : Initialize lnd component - - - - - -The ccsm log file - -The ccsm log files are to some extent the "garbage collection" of log output. The -&clm; sends it's output from it's master processor, but sends other output and possibly -errors to the ccsm log file. Because, of this, often error messages are somewhere in the -ccsm log file. However, since there is so much other output it may be difficult to find. -For example, here is some output from an older version of &cesm; (&cesm102;) where the -RTM river routing file (before it was converted to &netcdf;) was not provided and -the error on the open statement for the file was embedded near the end of the ccsm log -file. - -NODE# NAME -( 0) be1105en.ucar.edu -"/gpfs/proj2/fis/cgd/home/erik/clm_trunk/models/lnd/clm/src/riverroute/RtmMod.F90", line -239: 1525-155 The file name provided in the OPEN statement for unit 1 has zero length or -contains all blanks. The program will recover by ignoring the OPEN statement. -"/gpfs/proj2/fis/cgd/home/erik/clm_trunk/models/lnd/clm/src/riverroute/RtmMod.F90", line -241: 1525-001 The READ statement on the file fort.1 cannot be completed because the end -of the file was reached. The program will stop. - -Running: ./ccsm.exe -Please wait... - -Memory usage for ./ccsm.exe (task # 0) is: 51696 KB. Exit status: 1. Signal: 0 - -Although the example is from an earlier version of the model it still serves to -illustrate finding problems from the ccsm log file. - - -When working with the ccsm log file, for a run-time problem, you will need to be able -to separate it's output into three categories: pre-crash, crash, and post-crash. The -pre-crash section is everything that is normal output for good operation of the model. -The crash section is the section where the model dies and reports on the actual problem. -the post-crash section is the cleanup and finalization after the model dies. The most -important part of this of course is the crash section. The tricky part is distinguishing -it from the other sections. Also because the ccsm log file most likely has duplicated -output from multiple processors it is even more difficult to distinguish the different -sections and to some extent the sections may be intertwined, as different processors -reach the different sections at different times. Because, of this reducing the number of -processors for your simulation may help you sort out the output in the file (see -). Also much of the output from the ccsm log file are -system level information having to do with &mpi; multiprocessing. Usually you can ignore -this information, but it makes it more difficult to trudge through. - - -Sometimes the ccsm log file is the ONLY file available, because the model terminates -early in initialization. In this case understanding the output in the ccsm log file -becomes even more important. This also indicates the model did NOT advance far enough -to reach the initialization of the individual model components. This may mean that the -initialization of the multiprocessing for &mpi; and/or &omp; failed, or that the -reading of the driver namelist file "drv_in" failed. - - -Here we show those three sections for a ccsm log file where a two task job failed on -reading the namelist file. For a typical job with many tasks similar sections of this -will be repeated not just twice but for each task and hence make it harder to read. - - -Pre-crash section of the ccsm log file - -ATTENTION: 0031-386 MP_INSTANCES setting ignored when LoadLeveler is not being used. -ATTENTION: 0031-386 MP_INSTANCES setting ignored when LoadLeveler is not being used. -ATTENTION: 0031-378 MP_EUIDEVICE setting ignored when LoadLeveler is not being used. -ATTENTION: 0031-386 MP_INSTANCES setting ignored when LoadLeveler is not being used. - 0:INFO: 0031-724 Executing program: </usr/local/lsf/7.0/aix5-64/bin/lsnrt_run> - 1:INFO: 0031-724 Executing program: </usr/local/lsf/7.0/aix5-64/bin/lsnrt_run> - 0:/contrib/bin/ccsm_launch: process 401894 bound to logical CPU 0 on host be0310en.ucar.edu ... - 1:/contrib/bin/ccsm_launch: process 439264 bound to logical CPU 1 on host be0310en.ucar.edu ... - 0:INFO: 0031-619 64bit(us, Packet striping on) ppe_rmas MPCI_MSG: MPI/MPCI library was compiled on Wed Aug 5 13:36:06 2009 - 0: - 1:LAPI version #14.26 2008/11/23 11:02:30 1.296 src/rsct/lapi/lapi.c, lapi, rsct_rpt53, rpt53s004a 09/04/29 64bit(us) library compiled on Wed Apr 29 15:30:42 2009 - 1:. - 1:LAPI is using lightweight lock. - 0:LAPI version #14.26 2008/11/23 11:02:30 1.296 src/rsct/lapi/lapi.c, lapi, rsct_rpt53, rpt53s004a 09/04/29 64bit(us) library compiled on Wed Apr 29 15:30:42 2009 - 0:. - 0:LAPI is using lightweight lock. - 0:Use health ping for failover/recovery - 1:Use health ping for failover/recovery - 0:Initial communication over instance 2. - 1:Initial communication over instance 0. - 1:IB RDMA initialization completed successfully - 1:The MPI shared memory protocol is used for the job - 0:IB RDMA initialization completed successfully - 0:LAPI job ID for this job is: 1684890719 - 0:The MPI shared memory protocol is used for the job - 0:(seq_comm_setcomm) initialize ID ( 7 GLOBAL ) pelist = 0 1 1 ( npes = 2) ( nthreads = 1) - 0:(seq_comm_setcomm) initialize ID ( 2 ATM ) pelist = 0 1 1 ( npes = 2) ( nthreads = 1) - 0:(seq_comm_setcomm) initialize ID ( 1 LND ) pelist = 0 1 1 ( npes = 2) ( nthreads = 1) - 0:(seq_comm_setcomm) initialize ID ( 4 ICE ) pelist = 0 1 1 ( npes = 2) ( nthreads = 1) - 0:(seq_comm_setcomm) initialize ID ( 5 GLC ) pelist = 0 1 1 ( npes = 2) ( nthreads = 1) - 0:(seq_comm_setcomm) initialize ID ( 3 OCN ) pelist = 0 1 1 ( npes = 2) ( nthreads = 1) - 0:(seq_comm_setcomm) initialize ID ( 6 CPL ) pelist = 0 1 1 ( npes = 2) ( nthreads = 1) - 0:(seq_comm_joincomm) initialize ID ( 8 CPLATM ) join IDs = 6 2 ( npes = 2) ( nthreads = 1) - 0:(seq_comm_joincomm) initialize ID ( 9 CPLLND ) join IDs = 6 1 ( npes = 2) ( nthreads = 1) - 0:(seq_comm_joincomm) initialize ID ( 10 CPLICE ) join IDs = 6 4 ( npes = 2) ( nthreads = 1) - 0:(seq_comm_joincomm) initialize ID ( 11 CPLOCN ) join IDs = 6 3 ( npes = 2) ( nthreads = 1) - 0:(seq_comm_joincomm) initialize ID ( 12 CPLGLC ) join IDs = 6 5 ( npes = 2) ( nthreads = 1) - 0: - 0: (seq_comm_printcomms) ID layout : global pes vs local pe for each ID - 0: gpe LND ATM OCN ICE GLC CPL GLOBAL CPLATM CPLLND CPLICE CPLOCN CPLGLC nthrds - 0: --- ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ - 0: 0 : 0 0 0 0 0 0 0 0 0 0 0 0 1 - 1: 1 : 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1: - 0: (t_initf) Read in prof_inparm namelist from: drv_in - 1: (seq_io_init) cpl_io_stride, iotasks or root out of bounds - resetting to defaults 4 0 1 - 0: piolib_mod.f90 1353 1 2 1 2 - 1: piolib_mod.f90 1353 1 2 1 2 - 0: pio_support::pio_die:: myrank= 0 : ERROR: piolib_mod.f90: 1354 : not enough procs for the stride - 1: pio_support::pio_die:: myrank= 1 : ERROR: piolib_mod.f90: 1354 : not enough procs for the stride - - - -Crash section of the ccsm log file - - 0: - 0: Traceback: - 1: - 1: Traceback: - 0: Offset 0x00000c4c in procedure __pio_support_NMOD_piodie, near line 88 in file pio_support.F90.in - 1: Offset 0x00000c4c in procedure __pio_support_NMOD_piodie, near line 88 in file pio_support.F90.in - 0: Offset 0x00000fd0 in procedure __piolib_mod_NMOD_init, near line 1354 in file piolib_mod.F90 - 1: Offset 0x00000fd0 in procedure __piolib_mod_NMOD_init, near line 1354 in file piolib_mod.F90 - 1: Offset 0x00000398 in procedure __seq_io_mod_NMOD_seq_io_init, near line 247 in file /gpfs/proj2/fis/cgd/home/erik/clm_trunk/models/drv/shr/seq_io_mod.F90 - 0: Offset 0x00000398 in procedure __seq_io_mod_NMOD_seq_io_init, near line 247 in file /gpfs/proj2/fis/cgd/home/erik/clm_trunk/models/drv/shr/seq_io_mod.F90 - 0: Offset 0x0001aa88 in procedure ccsm_driver, near line 465 in file /gpfs/proj2/fis/cgd/home/erik/clm_trunk/models/drv/driver/ccsm_driver.F90 - 0: --- End of call chain --- - 1: Offset 0x0001aa88 in procedure ccsm_driver, near line 465 in file /gpfs/proj2/fis/cgd/home/erik/clm_trunk/models/drv/driver/ccsm_driver.F90 - 1: --- End of call chain --- - - - -Post-crash section of the ccsm log file - - 1:Communication statistics of task 1 is associated with task key: 1684890719_1 - 0:Communication statistics of task 0 is associated with task key: 1684890719_0 - 0: - 0:Running: ./ccsm.exe - 0:Please wait... - 0: - 0:Memory usage for ./ccsm.exe (task # 0) is: 198892 KB. Exit status: 134. Signal: 0 - 1: - 1:Running: ./ccsm.exe - 1:Please wait... - 1: - 1:Memory usage for ./ccsm.exe (task # 0) is: 198572 KB. Exit status: 134. Signal: 0 -INFO: 0031-656 I/O file STDOUT closed by task 0 -INFO: 0031-656 I/O file STDERR closed by task 0 -ERROR: 0031-250 task 0: IOT/Abort trap -INFO: 0031-656 I/O file STDOUT closed by task 1 -INFO: 0031-656 I/O file STDERR closed by task 1 -ERROR: 0031-250 task 1: IOT/Abort trap -INFO: 0031-639 Exit status from pm_respond = 0 -ATTENTION: 0031-386 MP_INSTANCES setting ignored when LoadLeveler is not being used. -Job /usr/local/lsf/7.0/aix5-64/bin/poejob /contrib/bin/ccsm_launch /contrib/bin/job_memusage.exe ./ccsm.exe - -TID HOST_NAME COMMAND_LINE STATUS TERMINATION_TIME -===== ========== ================ ======================= =================== -00000 be0310en /contrib/bin/ccs Exit (134) 08/31/2010 12:32:57 -00001 be0310en /contrib/bin/ccs Exit (134) 08/31/2010 12:32:57 - - - - - -The &clm; log file - -Of course when you are working with and making changes to &clm;, most of your focus -will be on the &clm; log file and the errors it shows. As already pointed out -if you don't see errors in the lnd.log.* file you should look -in the ccsm.log.* to see if any errors showed up there. - - -Here's an example of the lnd.log.* file when running -&PTSMODE; with initial conditions (this is bug 1025 in the &KnownBugs; file). - - Successfully initialized variables for accumulation - - reading restart file I2000CN_f09_g16_c100503.clm2.r.0001-01-01-00000.nc - Reading restart dataset - ERROR - setlatlon.F:Cant get variable dim for lat or lsmlat - ENDRUN: called without a message string - - - - - -The &datm; log file - -When working with "I cases" the second most common problems after &clm; problems are -problems with the data atmosphere model. So examining the atm.log.* -is important. - - -Here's an example of a problem that occurs when the wrong prescribed aerosol file -is given to a pt1_pt1 simulation. - -(datm_comp_init) atm mode = CLMNCEP -(shr_strdata_init) calling shr_dmodel_mapSet for fill -(shr_strdata_init) calling shr_dmodel_mapSet for remap - ('shr_map_getWts') ERROR: yd outside bounds 19.5000000000000000 -(shr_sys_abort) ERROR: ('shr_map_getWts') ERROR yd outside 90 degree bounds -(shr_sys_abort) WARNING: calling shr_mpi_abort() and stopping - - - - - -The batch log files - -The names of the batch log files will depend on the batch system of the machine -that is being used. They will normally be in the script directory. Usually, they -don't contain important information, but they are a last resort place to look for -error messages. On the &ncar; IBM system "bluefire" the batch files are called -with names that start with "poe" and then either "stderr" or "stdout", with the -job number at the end. - - - - - - -General Advice on Debugging Run time Problems - -Here are some suggestions on how to track down a problem while running. In general -if the problem still occurs for a simpler case, it will be easier to track down. - -Run in DEBUG mode -Run with a smaller set of processors -Run in serial mode with a single processor -Run at a lower resolution -Run a simpler case -Run with a debugger - - - - -Run in DEBUG mode - -The first thing to try is to run in DEBUG mode so that float point trapping will be -triggered as well as array bounds checking and other things the compiler can turn -on to help you find problems. To do this edit the &envbuild; file and set DEBUG - to TRUE as follows: - -> ./xmlchange -file env_build.xml -id DEBUG -val TRUE - - - - - -Run with a smaller set of processors - -Another way to simplify the system is to run with a smaller set of processors. You -will need to clean the configure and edit the env_mach_pes.xml. -For example, to run with four processors: - -> ./configure -cleanall -> ./xmlchange -file env_mach_pes.xml -id NTASKS_ATM -val 4 -> ./xmlchange -file env_mach_pes.xml -id NTASKS_LND -val 4 -> ./xmlchange -file env_mach_pes.xml -id NTASKS_ICE -val 4 -> ./xmlchange -file env_mach_pes.xml -id NTASKS_OCN -val 4 -> ./xmlchange -file env_mach_pes.xml -id NTASKS_CPL -val 4 -> ./xmlchange -file env_mach_pes.xml -id NTASKS_GLC -val 4 -> ./configure -case - -Another recommended simplification is to run without threading, so set the -NTHRDS for each component to "1" if it isn't already. Sometimes, -multiprocessing problems require a certain number of processors before they occur -so you may not be able to debug the problem without enough processors. But, it's always -good to reduce it to as low a number as possible to make it simpler. For threading -problems you may have to have threading enabled to find the problem, but you can run -with 1, 2, or 3 threads to see what happens. - - - - -Run in serial mode with a single processor - -Simplifying to one processor removes all multi-processing problems and makes -the case as simple as possible. If you can enable USE_MPI_SERIAL -you will also be able to run interactively rather than having to submit to a job -queue, which sometimes makes it easier to run and debug. If you can use -USE_MPI_SERIAL you can also use threading, but still run interactively -in order to use more processors to make it faster if needed. - -> ./configure -cleanall -# Set tasks and threads for each component to 1 -# You could also set threads to something > 1 for speed, but still -# run interactively if threading isn't an issue. -> ./xmlchange -file env_mach_pes.xml -id NTASKS_ATM -val 1 -> ./xmlchange -file env_mach_pes.xml -id NTHRDS_ATM -val 1 -> ./xmlchange -file env_mach_pes.xml -id NTASKS_LND -val 1 -> ./xmlchange -file env_mach_pes.xml -id NTHRDS_LND -val 1 -> ./xmlchange -file env_mach_pes.xml -id NTASKS_ICE -val 1 -> ./xmlchange -file env_mach_pes.xml -id NTHRDS_ICE -val 1 -> ./xmlchange -file env_mach_pes.xml -id NTASKS_OCN -val 1 -> ./xmlchange -file env_mach_pes.xml -id NTHRDS_OCN -val 1 -> ./xmlchange -file env_mach_pes.xml -id NTASKS_CPL -val 1 -> ./xmlchange -file env_mach_pes.xml -id NTHRDS_CPL -val 1 -> ./xmlchange -file env_mach_pes.xml -id NTASKS_GLC -val 1 -> ./xmlchange -file env_mach_pes.xml -id NTHRDS_GLC -val 1 -# If mpi-serial capability is available on the machine you are using -# set USE_MPI_SERIAL to true so that you can run interactively -> ./xmlchange -file env_conf.xml -id USE_MPI_SERIAL -val TRUE -> ./configure -case -# Then build your case -# And finally run, by running the *.run script interactively -# (If you were able to set USE_MPI_SERIAL to true) - - - - - -Run at a lower resolution - -If you can create a new case running at a lower resolution and replicate the problem -it may be easier to solve. This of course requires creating a whole new case, and trying -out different lower resolutions. - - - - -Run a simpler case - -Along the same lines, you might try running a simpler case, trying another compset -with a simpler setup and see if you can replicate the problem and then debug from that -simpler case. Again, of course you will need to create new cases to do this. - - - - -Run with a debugger - -Another suggestion is to run the model with a debugger such as: dbx, -gdb, or totalview. Often to run with a debugger -you will need to reduce the number of processors as outlined above. Some debuggers such -as dbx will only work with one processor, while more advanced -debuggers such as totalview can work with both &mpi; tasks and OMP -threads. Even simple debuggers though can be used to query core files, to see where -the code was at when it died (for example using the where in -dbx for a core file can be very helpful. For help in running -with a debugger you will need to contact your system administrators for the machine -you are running on. - - - - - - - - diff --git a/doc/build_docs b/doc/build_docs new file mode 100755 index 0000000000..a8e8099b60 --- /dev/null +++ b/doc/build_docs @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +if [ -f doc-builder/build_docs ]; then + echo "Running: make fetch-images" + make fetch-images + echo "Running: ./doc-builder/build_docs $@" + ./doc-builder/build_docs "$@" +else + echo "Obtain doc-builder by running ./manage_externals/checkout_externals -o from the top-level" +fi diff --git a/doc/ctsm1_0_ChangeLog b/doc/ctsm1_0_ChangeLog new file mode 100644 index 0000000000..e02561d30a --- /dev/null +++ b/doc/ctsm1_0_ChangeLog @@ -0,0 +1,14843 @@ +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev113 +Originator(s): negins (Negin Sobhani,UCAR/TSS,303-497-1224) +Date: Tue Sep 8 15:57:49 MDT 2020 +One-line Summary: Some bit-for-bit changes needed for the Perturbed Parameter Ensemble work + +Purpose of changes +------------------ + +Some BFB fixes including bug fixes needed for PPE simulations. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1060 (Some code cleanup of luna bug fixes) +- Resolves ESCOMP/CTSM#1062 (PPE namelist parameter defaults) +- Resolves ESCOMP/CTSM#1053 (Non-standard namelist parameter) +- Resolves ESCOMP/CTSM#1055 (Expand potential vcmax:jmax ratio) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +cmb_cmplt_fact was a parameter under namelist control pertaining to the fire +model (combusion completion factor [unitless]), which previously included an array. +This parameter is now splitted into two real values i.e. cmb_cmplt_fact_litter and +cmb_cmplt_fact_cwd. +If the users have cmb_cmplt_fact in a user_nl_clm file that worked before, it +won't work anymore since it is now splitted into cmb_cmplt_fact_litter +and cmb_cmplt_fact_cwd. + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +Previously, denitrif_nitrateconc_exponent and denitrif_nitrateconc_coefficient +were on the params file but ALSO on the namelist. They are now removed from the namelist. + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: [For timing changes, can check PFS +test(s) in the test suite] None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double +maintenance): None + +Changes to tests or testing: None + + +CTSM testing: + + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- PASS (except for NLCOMP) + izumi ------- PASS (except for NLCOMP) + +If the tag used for baseline comparisons was NOT the previous tag, note that here: +ctsm1.0.dev111 + + +Answer changes +-------------- + +Changes answers relative to baseline: None + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +None + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1102 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev112 +Originator(s): sacks (Bill Sacks), wwieder (Will Wieder) +Date: Fri Aug 28 17:10:57 MDT 2020 +One-line Summary: Small changes to mksurfdata_map, singlept tool and run_sys_tests + +Purpose of changes +------------------ + +(1) Move mksurfdata_map rounding of special landunits to before wetland + fill: I think this may be important to avoid errors and/or wrong + behavior in some edge cases where we have < 0.5% cover of glacier + and/or lake, and other cases. See + https://github.com/ESCOMP/CTSM/issues/1118 for detailed + thoughts. May change answers in rare cases, but no answer changes + observed for present-day surface datasets at standard resolutions + (f09, f19, f10, f45). + +(2) run_sys_tests: record command-line arguments in SRCROOT_GIT_STATUS + file + +(3) (From Will Wieder) Updates to current surfdata & landuse files in + tools/contrib/singlept + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1118 (mksurfdata_map rounding/truncation of + special landunits should happen before wetland filling) + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - PASS + + Note: ran tools testing on code based off of ctsm1.0.dev110 (before + merging with ctsm1.0.dev111) + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - PASS on mac (bishorn) + + regular tests (aux_clm): + + cheyenne ---- not run + izumi ------- not run + +If the tag used for baseline comparisons was NOT the previous tag, note that here: ctsm1.0.dev110 + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +In principle, the changes to mksurfdata_map could change answers for +rare cases. No answer changes were observed for present-day surface +datasets at resolutions f09, f19, f10 or f45. Also note that no surface +datasets were actually updated in this tag, so if any answer changes +appear from these changes, they would appear the next time we update +surface datasets. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1119 +https://github.com/ESCOMP/CTSM/pull/1120 +https://github.com/ESCOMP/CTSM/pull/1122 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev111 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Fri Aug 28 14:08:25 MDT 2020 +One-line Summary: Compsets don't use 2014 for GSWP3 forcing, LUNA prevyr changed back + +Purpose of changes +------------------ + +Update cime so that default end year for GSWP3 forcing is 2013 because 2014 data is bad. Also update +the prevyr default for vcmax/jmax to what it was before ctsm1.0.dev102. + +Fix some issues for finding initial condition files for Clm45 compsets. Also bring in updated CDEPS/CMEPS +as they were required with the cime update. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): + Fixes #1107 -- Change initial values of LUNA back to previous global values + Fixes #1067 -- Stop using PIO2 in the LILAC build + Fixes #1121 -- FMOZ test fails + +CIME Issues fixed (include issue #): + Fixes ESMCI/cime#3683 -- Avoid artificial limit on string lengths in shr_string_listMerge + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): + Last time-step in Dec/2013 for GSWP3 data still has zero humidity + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + cime is pointing to a branch_tag we should update it to a trunk tag as soon as possible + +Changes to tests or testing: build-namelist unit testing improved to find problems like #1121 a #1125 + +Code reviewed by: self + + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (all identical to previous tag) + + tools-tests (test/tools): + + cheyenne - PASS + + python testing (see instructions in python/README.md; document testing done): + + cheyenne - PASS + + regular tests (aux_clm): + + cheyenne ---- OK + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes (similar climate) + + Summarize any changes to answers, i.e., + - what code configurations: (2010 and SSP compsets) and Clm50 with LUNA on (Bgc or Sp) + - what platforms/compilers: All + - nature of change: similar climate + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime, cmeps, cdeps + (fox removed as a separate checkout) + cime to branch_tags/cime5.8.31_a01 + +Pull Requests that document the changes (include PR ids): #1114 +(https://github.com/ESCOMP/ctsm/pull) + #1114 -- Update cime so default end year for GSWP3 forcing is 2013 and change prevyr default for vcmax/jmax + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev110 +Originator(s): jedwards (Jim Edwards) +Date: Fri Aug 21 10:49:08 MDT 2020 +One-line Summary: Fixes needed for PIO2 + +Purpose of changes +------------------ + +Fixes needed for CTSM to work with PIO2. There is an additional fix +needed in PIO2 itself; this is available in a later version of cime that +we will bring in soon. + +Note that this PR also includes a change in config_files.xml that is +needed for a newer version of cime when running compsets with dlnd, slnd +or xlnd; this may be incompatible with the current version of the cime +external, but this does not impact compsets with CTSM. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +The changes in this tag, together with a cime update that will be coming +in soon, resolve the following issues (I'm not sure off-hand which +issues are resolved by the changes here alone and which ones require the +cime update): +- Resolves ESCOMP/CTSM#1029 (FATES tests fail with PIO2) +- Resolves ESCOMP/CTSM#1030 (mpi-serial nag case fails with pio2 when + defining h1 history restart file) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +- May not be able to run configurations with dlnd, slnd or xlnd from this tag + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: Not investigated, but almost definitely not + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Bill Sacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- PASS + izumi ------- PASS + + Note: Standard testing was done using PIO1 (as this is still the + default), but separate testing was also done using PIO2 (using an + updated cime) and tests were found to pass. + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1095 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev109 +Originator(s): negins (Negin Sobhani,UCAR/TSS,303-497-1224) +Date: Thu Aug 20 11:40:07 MDT 2020 +One-line Summary: Allow for resorbtion in transition from live to dead wood N + +Purpose of changes +------------------ + +This PR allows for resorbtion in transition from live to dead wood N, which also move +to NPOOL for free. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): Issue #443 + + +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.) + +[x] clm5_0 + +[x] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist +variables): None + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: [For timing changes, can check PFS test(s) in the test suite] + +Notes of particular relevance for developers: None +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + +Changes to tests or testing: None + +Code reviewed by: Erik Kluzek + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- PASS + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (similar climate) + + Summarize any changes to answers, i.e., + - what code configurations: Clm50 with Bgc or Cn + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new + climate): larger than roundoff/same 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) + + Will Wieder thought the changes were small enough that we didn't need to do + a long simulation. Erik Kluzek thinks the changes were verified with single + point simulations. + +Detailed list of changes +------------------------ + +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) + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev108 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Wed Aug 19 17:23:47 MDT 2020 +One-line Summary: Update default PE layouts for new SE/FV3 grids + +Purpose of changes +------------------ + +Change PE layouts for new high resolution SE/FV3 grids. Have a version for cheyenne and a default one +as well. + +Update externals: cime, cism, CMEPS, CDEPS +Change single point tests to use stub ROF +Change tests to use gx1v7 rather than gx1v6 +Update waccmx_offline to use START=1979 + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): + Fixes #1108 Change single point tests to use stub ROF + Fixes #1098 ARCTICGRIS PE layout is very slow + Fixes #1105 Default new FV3/SE grid PE layouts are problematic + Fixes #1103 Some changes to prevent missing file for WACCMX testing + Fixes #1113 ARCTIC test is failing + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? No +(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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + Some tests were chagned to use stub ROF and one to stub GLC. @billsacks suggest we should also change + other tests in this same way. + +Changes to tests or testing: Yes + +Code reviewed by: self + + +CTSM testing: regular, tools + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS + + tools-tests (test/tools): + + cheyenne - PASS + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - OK + + python testing (see instructions in python/README.md; document testing done): + + cheyenne -- PASS + + regular tests (aux_clm): + + cheyenne ---- PASS + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: No (except for waccmx_offline test) + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime, cism, CDEPS, CMEPS + cism to cism2_1_69 + cime to cime5.8.30 + Update hash for CDEPS and CMEPS (so that nuopc test will run) + +Pull Requests that document the changes (include PR ids): #1111 +(https://github.com/ESCOMP/ctsm/pull) + + #1111 -- Adjust FV3/SE PE layouts + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev107 +Originator(s): erik (Erik Kluzek) +Date: Mon Aug 10 02:21:12 MDT 2020 +One-line Summary: Answer changes needed for CESM2.2.0 + +Purpose of changes +------------------ + +A list of small answer changes needed for CESM2.2.0. Nitrogen deposition file now properly +ends in 2015 rather than 2005. Have 2010_control compset match the 2000 IOC file rather than 2010. +Modify the waccmx_offline tests to more closely match the CAM tests. + +Interpolate IC files for an exact match. Answers are identical for an exact match, but different +when used for other resolutions. + +Two small bit-for-bit changes remove levurb and string_len dimensions on restart files. +Remove xsmrpool_loss when use_crop is NOT true. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): [If none, remove this line] + Answer changing fixes: + Fixes #1004 -- stream_year_last_ndep is set to 2005 instead of 2015 for historical with ctsm1.0.dev093 + Fixes #1012 -- Help prevent problems with WACCM-X testing by modifying our waccmx_offline test + Fixes #1090 -- Have 2010_control compset match 2000 simulation-year rather than 2010 + Fixes #1089 -- Failure in FXHIST test when running with CAM + Fixes #1037 -- Interpolate out-of-the-box initial conditions files for CESM2.2 release + (only changes answers for resolutions other than IC file resolution) + + Bit-for-bit changes: + Fixes #1101 -- levurb and string_len dimensions no longer needed on the restart files + Fixes #1097 -- xsmrpool_loss should only be written to the restart file if use_crop is true + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? No +(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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + 2010_control doesn't match 2010 finidat file + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): Interpolated IC files + Add f19 2003 IC file, f09 and 19 1979 IC file + Remove 2010 IC file + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: waccm_offline test changed to more closely match the FXHIST CAM test + +Code reviewed by: self + + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (115 tests are different than before) + + python testing (see instructions in python/README.md; document testing done): + + cheyenne - PASS + + regular tests (aux_clm): + + cheyenne ---- PASS + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes! (very small) + + Hist and SSP BGC compsets change answers because of the correction of the end year for ndep. + You wouldn't think this would matter until you get to the end of the time-sequence -- but it + does for the first time-step. + + The 2010 compset changes answers because of using the 2000 finidat file rather than 2010 + + Some finidat files interpolated to the resolution they are designed for. This causes an apparent + change of answers when these datasets are used for other resolutions (even though it does NOT for + the resolution it's interpolated to) + + waccm_offline tests are also changed in order to more closely match the FXHIST tests in CAM. + + Summarize any changes to answers, i.e., + - what code configurations: Hist, SSP, 2010 compsets, Clm45 and some f10, 1x1 because of IC files + - what platforms/compilers: All + - nature of change: same climate + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): #1100 +(https://github.com/ESCOMP/ctsm/pull) + #1100 -- Answer changes needed for CESM2.2.0 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev106 +Originator(s): erik (Erik Kluzek) +Date: Thu Aug 6 15:35:47 MDT 2020 +One-line Summary: Bit-for-bit updates for the CESM2.2.0 release + +Purpose of changes +------------------ + +Fix some bit-for-bit things needed for the CESM2.2.0 release +Bring changes needed from release-clm5.0.31-34 to trunk. ndep change. +Brings in some changes for PtVg datasets for no-anthro compset. +Do some refactoring of Fire class so that it makes sense for FATES to use the base class. +Update RTM and MOSART with NUOPC changes and an update of a NetCDF-4 file to NetCDF-5 +needed for the cesm2.2.0 release. + +The 2010 finidat file is now set in the 2010_control use-case rather than relying on the +finidat dataset matching. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): + Fixes #1087 -- wrong finidat file + Fixes #1096 -- failing tests + Fixes #1036 -- ne30 case fails + Fixes #946 --- better error message + Fixes #983 --- Fire method renames + Fixes #938 --- mscripgrid issue + +Known bugs found since the previous tag (include github issue ID): + #1098 -- ARCTICGRIS PE-layout is very slow... + #1097 -- xsmrpool_loss should only be written to the restart file if use_crop is true + + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? No +(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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +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): + if ndep file isn't found die with a warning rather than fatal error. + The warning allows you to override with CLM_BLDNML_OPTS="-ignore_warnings" + + finidat file matching will now use the sim_year rather than start-year + for a control case (transient cases used the start-year) + Add 2010 f09 finidat file for clm5_0_cam6.0 + +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: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + +Changes to tests or testing: + Add clm45cam6LndTuningMode testmod + Some tests needed more wallclock + +Code reviewed by: self + + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (one test is different than ctsm1.0.dev105) + + python testing (see instructions in python/README.md; document testing done): + + cheyenne -= PASS + + regular tests (aux_clm): + + cheyenne ---- PASS + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: No (bit-for-bit) + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): rtm, mosart + RTM to rtm1_0_72 + MOSART to mosart1_0_37 + +Pull Requests that document the changes (include PR ids): #1079 +(https://github.com/ESCOMP/ctsm/pull) + #1079 -- Bit-for-bit updates for the CESM2.2.0 release + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev105 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) / Chris Fischer +Date: Thu Jul 23 08:59:37 MDT 2020 +One-line Summary: Bring in some new SE grids for CAM as well as initial condition files for them + +Purpose of changes +------------------ + Add new SE (Spectral Element) grids: ne30np4.pg2, ne30np4.pg3, ne30np4, ne60np4, ne120np4, ne120np4.pg2, ne120np4.pg3, + ne0np4CONUS.ne30x8, ne0np4.ARCTIC.ne30x4, ne0np4.ARCTICGRIS.ne30x8 + Add new datasets for them, some new tests, and add support for their creation. + + Also add some new initial condition (IC) files for 1979, 2000, and 2013 for use when coupled to CAM + + The process for picking initial condition files was improved so that there can be more than one year that matches + and it will do the best to pick the best match. Also added the possibility for 1982 and 2013 simulation years for + specific grid matches. + + Also update cime to a newer version that supports these new grids. And update CMEPS (and hence add in fox, CDEPS) + to latest used on the nuopc_dev branch. Testing with nuopc wouldn't work without this update. The cime version updates + the tables for dry-deposition and changes answers for dry-deposition when it's turned on. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #992 #994 + Fixes #992 -- New initial conditions for 1979, 2000 + Fixes #994 -- New CAM SE grids + Fixes #888 -- Add support for various "physics grids" needed by CAM +CIME Issues fixed (include issue #): #3593, #3569, #3564, PR#3557 + cime/#3593 -- Fix mapping files for new grids + cime/#3569 -- Fix cime regression testing + cime/#3564 -- Change alias for arctic grids + cime/#3557 -- updates to dry deposition data (PR) + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? No +(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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): + Initial conditions (IC) for 1979 start date is technically 1982 + New initial condition files are ONLY for when coupled to CAM (B and F compsets) + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): Allow for new grids + User updates to cime: + - Allow a user supplied config_grids.xml file. + - Improved error message for incorrect setting of cime model. + +Changes made to namelist defaults (e.g., changed parameter values): Add IC files for 1982 and 2013 years + +Changes to the datasets (e.g., parameter, surface or initial files): New SE grid datasets + Remove conus_30_x8 grid (previous name for new ne0np4CONUS.ne30x8 grid + Add new grids: ne30np4.pg2, ne30np4.pg3, ne30np4, ne60np4, ne120np4, ne120np4.pg2, ne120np4.pg3, + ne0np4CONUS.ne30x8, ne0np4.ARCTIC.ne30x4, ne0np4.ARCTICGRIS.ne30x8 + Add new mask: tx0.1v3 + New IC files: 1982 for ARCTIC and ARCTICGRIS, ne120np4 for 2000 and 2013 for CONUS all when coupled to CAM + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + Initial condition picking will pick the file it finds with the closet simulation year to the request + for the lnd_tuning_mode desired. It will pick based on year over an exact match in resolution. + You can get around this by setting use_init_interp to be specific for a resolution + + Also realized that there is a dependence between the namelist_defaults_ctsm.xml file and namelist_defaults_overall.xml + for the clm_start_type item. It must be coordinated with use_init_interp, init_interp_attributes and finidat + to work properly. I added a comment about this. We should probably just move them into the same file. + +Changes to tests or testing: Added tests for new grids + +Code reviewed by: self, fischer-ncar, adamrher + + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - OK (130 tests fail comparison to previous verison due to new IC files) + + tools-tests (test/tools): + + izumi - OK + + PTCLM testing (tools/shared/PTCLM/test): + + izumi - OK + + python testing (see instructions in python/README.md; document testing done): + + izumi -- PASS + + regular tests (aux_clm): + + cheyenne ---- OK + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: No bit-for-bit (unless running with CAM because of new finidat files) + Running with nuopc changes answers because of updates to nuopc drivers + Dry-deposition changes answers when turned on (but doesn't effect anything else) + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime, cmeps, cdeps, fox + cime updated to cime5.8.28 (from branch_tags/cime5.8.24_a01) + fox, and cdeps added in + cmeps, cdeps and fox updated to hashes used in the nuopc_dev branch of CESM + +Pull Requests that document the changes (include PR ids): #1038 +(https://github.com/ESCOMP/ctsm/pull) + #1038 -- New fsufdat and landuse time series files for ne grids + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev104 +Originator(s): sacks (Bill Sacks) +Date: Mon Jul 6 09:58:15 MDT 2020 +One-line Summary: Add LILAC + +Purpose of changes +------------------ + +Add LILAC: The Lightweight Infrastructure for Land-Atmosphere +Coupling. This infrastructure consists of two major pieces: + +(1) A lightweight coupling infrastructure built on top of ESMF that + makes it easier for atmosphere models to call CTSM directly, rather + than using the hub-and-spoke architecture that is used by CESM. + +(2) A set of python-based tools for building CTSM and creating its + runtime inputs when running in an atmosphere model via + LILAC. Although these tools are built on top of cime, details of the + create_newcase / case.setup / case.build process are hidden from the + user, because many of the aspects of this workflow don't make sense + in the LILAC context. + +So far we have used LILAC to couple CTSM to WRF. There are plans to use +the same infrastructure to couple CTSM to other regional atmosphere +models. + +Documentation of LILAC is provided in +https://escomp.github.io/ctsm-docs/versions/master/html/lilac/index.html +(though there are still some missing sections), as well as in various +presentations on the wiki +(https://github.com/ESCOMP/CTSM/wiki/Presentations). + +There have been many contributors besides myself to the development, +testing and documentation of LILAC; chief among them being Mariana +Vertenstein, Negin Sobhani, Joe Hamman, Sam Levis, Mike Barlage and Dave +Lawrence. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- See issues in the Done column of https://github.com/ESCOMP/CTSM/projects/23 + +Known bugs introduced in this tag (include github issue ID): +- Although LILAC is working to first order, there is still some work to +do. See outstanding issues in https://github.com/ESCOMP/CTSM/projects/23 + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- dtime no longer specified on the namelist: just obtained from driver + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: +- Added LILACSMOKE test + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - ok + + Baseline comparisons fail as expected. One test failed, but it also + failed for me on master (https://github.com/ESCOMP/CTSM/issues/1074) + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - pass on my mac + + regular tests (aux_clm): + + cheyenne ---- pass + izumi ------- pass + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/1068 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev103 +Originator(s): slevis (Samuel Levis, SLevis Consulting LLC,303-665-1310) +Date: Mon Jun 29 17:16:29 MDT 2020 +One-line Summary: Gridcell-level balance-check for methane (CH4) + +Purpose of changes +------------------ + + Bracket the model time-step loop to calculate balance checks at the + gridcell level, as detailed in issue #315. The column-level check + remains unchanged. + + Subroutine ch4_init_balance_check is replaced with + ch4_init_column_balance_check. Subroutine + ch4_init_gridcell_balance_check is added. + + The implementation is similar to the one for carbon and nitrogen (see + tag ctsm1.0.dev096). + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #315 + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): + None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + None + +Changes made to namelist defaults (e.g., changed parameter values): + None + +Changes to the datasets (e.g., parameter, surface or initial files): + None + +Substantial timing or memory changes: + No + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + None + +Changes to tests or testing: + None + +Code reviewed by: + @billsacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - + + tools-tests (test/tools): + + cheyenne - + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - + + regular tests (aux_clm): + + cheyenne ---- PASS + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: No + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + None + +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/CTSM/pull/1022 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev102 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Fri Jun 26 01:32:04 MDT 2020 +One-line Summary: Some important fixes for LUNA in clm5_0, and small urban issue in clm5_0 + +Purpose of changes +------------------ + +Fix some important issues that were found in LUNA for the arctic. These changes were large enough +that we had to re-tune the clm5_0 parameters to give a similar simulation. Leah Birch noticed +that the formulations in the code disagreed with the paper. Correcting this caused arctic plants +to be less productive. In order to compensate parameters for leafcn, and slatop were adjusted for +broadleaf_deciduous_boreal_shrub and c3_arctic_grass for clm5_0. + +The total vegetation carbon threshold on exit_spinup (from accelerated decomposition (AD) mode) was +increased from 0.1 to 1.0. Without this change some PFT's can die out in exit spinup even when +they have significant carbon stores from the AD spinup mode. + +There is an implicit assumption in the urban building energy model that building width equals +street width. However, this assumption can/should be relaxed and building width can be derived +from the morphology dataset. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #738 #803 #953 #958 #1056 + Fixes #1056 -- Remove allpfts dimension + Fixes #953 -- Incorrect formula in LUNA uses day time rather than average of day/night + Fixes #958 -- LUNA day length factor missing + Fixes #738 -- Totvegc threshold increased from 0.1 to 1. + Fixes #803 -- No longer assume building width + +Known bugs introduced in this tag (include github issue ID): #1060 + #1060 -- Some code cleanup of luna bug fixes + +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_0 + +[x] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): clm5_0 climate adjusted for arctic plants + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): + +Changes to the datasets (e.g., parameter, surface or initial files): New parameter files + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): We + chose some bad names for variables, so we'll clean this up in a seperate step (see #1060) + +Changes to tests or testing: None + +Code reviewed by: self, olyson, bill-sacks, wweider + + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (266 compare differently because of update in paramsfile and jmaxb1) + + python testing (see instructions in python/README.md; document testing done): + + cheyenne - PASS + + regular tests (aux_clm): + + cheyenne ---- PASS + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes for clm5_0 (important change required retuning) + + Summarize any changes to answers, i.e., + - what code configurations: clm5_0 when Luna on as well as smaller changes for urban + - what platforms/compilers: all + - nature of change: climate changing, but tuned to respond similar to clm5.0 + + If this tag changes climate describe the run(s) done to evaluate the new + climate (put details of the simulations in the experiment database) + luna changes: oleson case clm50_ctsm10d089_2deg_GSWP3V1_luna3_jmaxb1-0.17_slatopA_leafcnA_hist + + URL for LMWG diagnostics output used to validate new climate: + + urban changes: + + +http://webext.cgd.ucar.edu/I2000/clm50_ctsm10d098_1deg_GSWP3V1_CON_FIXBUILDENERGY_2000/lnd/clm50_ctsm10d098_1deg_GSWP3V1_CON_FIXBUILDENERGY_2000.1991_2010-clm50_ctsm10d098_1deg_GSWP3V1_CON_2000.1991_2010/setsIndex.html + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): #1034 and #962 +(https://github.com/ESCOMP/ctsm/pull) + #1034 -- Building energy fix + #962 --- Fixes for the LUNA dayl bugs + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev101 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326), oleson (Keith Oleson) +Date: Wed Jun 17 23:51:22 MDT 2020 +One-line Summary: Changes from Keith to bring a list of variables to the parameter file + +Purpose of changes +------------------ + +Change some hardcoded parameters to go on the parameter files. This is needed in preparation +of running the Perturbed Parameter Ensemble. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #995 #138, #206 + +Fixes #995 -- Soil turnover times are on paramfile and hardcoded +Fixes #138 -- use tau_ values on paramfile +Fixes #206 -- add prh30 to paramfile +Some work on #290 -- LUNA refactoring + + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? No +(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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): paramfile for both clm4_5 and clm5_0 + Add 51 new parameters to the paramsfile: + bsw_adjustfactor,cpha,csol_clay,csol_om,csol_sand,denitrif_nitrateconc_coefficient,denitrif_nitrateconc_exponent, + denitrif_respiration_coefficient,denitrif_respiration_exponent,drift_gs,e_ice,enzyme_turnover_daily,eta0_anderson, + eta0_vionnet,fnps,hksat_adjustfactor,ignition_efficiency,jmaxb0,jmaxha,jmaxhd,kcha,koha,kp25ratio,lmrha,lmrhd, + lmrse,luna_theta_cj,minrelh,n_baseflow,pd,perched_baseflow_scalar,prh30,relhExp,ssi,sucsat_adjustfactor,theta_cj, + theta_ip,theta_psii,tpuha,tpuhd,tkd_clay,tkd_om,tkd_sand,tkm_om,tpu25ratio,vcmaxha,vcmaxhd,watsat_adjustfactor, + wc2wjb0,wimp,wind_min + k_nitr_max removed and replaced with k_nitr_max_perday + meta-data for the tau_* variables changed, and a roundoff difference in the clm4_5 paramfile + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): prh30 not used for clm4_5 + prh30 was added in but won't be used for the CNFireLi2014 formulation. + It's only used for the clm5_0 and following formulations + +Changes to tests or testing: None + +Code reviewed by: self, oleson + + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (170 tests differ from baseline because of new paramfiles) + + python testing (see instructions in python/README.md; document testing done): + + cheyenne - PASS + + regular tests (aux_clm): + + cheyenne ---- OK + izumi ------- OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: No bit-for-bit + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): #1039 +(https://github.com/ESCOMP/ctsm/pull) + #1039 -- move hardcoded parameters to paramfile + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev100 +Originator(s): sacks (Bill Sacks) +Date: Tue Jun 9 06:15:15 MDT 2020 +One-line Summary: Deallocate memory after running init_interp + +Purpose of changes +------------------ + +Many of the pointer arrays in init_interp were not being deallocated +when init_interp finished. This was a particular problem because some of +these arrays were allocated for the full global source grid on each +processor, so the memory use was significant. This tag fixes this issue. + +This issue is documented in https://github.com/ESCOMP/CTSM/issues/1010 +and https://github.com/ESCOMP/CTSM/issues/1032. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1032 (Memory isn't deallocated in some of the + init_interp code) + +Known bugs found since the previous tag (include github issue ID): +- This does NOT resolve ESCOMP/CTSM#1010 (WACCMX test fails with + ctsm1.0.dev093 in cesm2_2_alpha05c), even though that was the original + hope. + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none +- The initial run of the PFS test showed a very long time taken in + initialization. However, it appears that this was a system issue: + rerunning twice showed times back to normal. + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - pass (on my mac) + + regular tests (aux_clm): + + cheyenne ---- pass + izumi ------- pass + + Most testing was done on f332fafc. After that, I made a minor change + that was needed for the unit tests to pass. I then reran (1) + clm_short on cheyenne, and (2) this subset of the test list on + izumi: + + SMS.f10_f10_musgs.I2000Clm50BgcCrop.izumi_gnu.clm-crop + SMS_D.f10_f10_musgs.I2000Clm50BgcCrop.izumi_gnu.clm-crop + PEM_Ld1.f10_f10_musgs.I2000Clm50BgcCropGs.izumi_intel.clm-crop + SMS_D.f10_f10_musgs.I2000Clm50BgcCrop.izumi_intel.clm-crop + SMS.f10_f10_musgs.I2000Clm50BgcCrop.izumi_pgi.clm-crop + SMS_D.f10_f10_musgs.I2000Clm50BgcCrop.izumi_pgi.clm-crop + SMS_Ld5_D_P48x1.f10_f10_musgs.IHistClm50Bgc.izumi_nag.clm-monthly + ERP_Ld5_P48x1.f10_f10_musgs.I1850Clm50Bgc.izumi_nag.clm-default + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev099 +Originator(s): sacks (Bill Sacks) +Date: Mon Jun 8 09:29:38 MDT 2020 +One-line Summary: Update cime, needed for izumi machine updates + +Purpose of changes +------------------ + +Update cime. The most important change here is an update for izumi, +which is needed for the recent izumi machine updates. + +Also: Change izumi PEM test to use SGLC (after the machine updates, the +PEM test was failing; see also +https://github.com/ESCOMP/CTSM/issues/840). + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: not investigated; none expected + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: +- Changed izumi PEM test to use SGLC (after the machine updates, the PEM +test was failing; see also https://github.com/ESCOMP/CTSM/issues/840). + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- pass + izumi ------- ok + + izumi: tests pass, some baselines fail as expected + + ERP_D_Ld3.f09_g17.I2000Clm50SpGs.cheyenne_intel.clm-prescribed + showed differences from the stored baselines, but it appears that + the stored baselines were incorrect: when I reran this test from + master, the master version differed from the stored baselines and + was identical to this branch. + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES, just on izumi due to machine updates + + Summarize any changes to answers, i.e., + - what code configurations: some izumi tests + - what platforms/compilers: izumi gnu & pgi + - nature of change (roundoff; larger than roundoff/same climate; new climate): + not investigated; expected to be roundoff + + Answer changes were observed in these tests: + - SMS_D.f10_f10_musgs.I2000Clm50BgcCrop.izumi_gnu.clm-crop + - SMS_D.f10_f10_musgs.I2000Clm50BgcCrop.izumi_pgi.clm-crop + - SMS.f10_f10_musgs.I2000Clm50BgcCrop.izumi_pgi.clm-crop + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: branch_tags/cime5.8.23_a01 -> branch_tags/cime5.8.24_a01 + Point to a cime branch tag that is equivalent to cime5.8.24 but uses + pio1 rather than pio2, even for mpi-serial cases (the changes in + branch_tags/cime5.8.24_a01 relative to cime5.8.24 are equivalent to the + changes in branch_tags/cime5.8.23_a01 relative to cime5.8.23). + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev098 +Originator(s): John Truesdale,UCAR/AMP,303-497-1386 +Date: Thu May 28 14:39:27 MDT 2020 +One-line Summary: Bring in GFDL fv3 cubed sphere grids C24, C48, C96, C192, C384 + +Purpose of changes +------------------ + +Add support for new GFDL fv3 curbed sphere grids. Low resolution C24, and C48 +Moderate resolution C96, and high resolution C192 and C384. Add in mapping files +so all can be created. Make C96 a default resolution created with new surface +datasets. For all of these only the crop versions of surface and landuse.timeseries +are in place, as non-crop can run in CLM without needing different datasets. Also for +historical landuse.timeseries we use the SSP5-8.5 timeseries files, so that it can be +used for future, historical and beyond 2015 present day. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #1025 + Fixes #1025 -- By default only create crop version of surface/landuse.timeseries datasets + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): New surface and landuse.timeseries files + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: Add C96 tests + +Code reviewed by: @ekluzek + +CTSM testing: regular, tools + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (15 new tests for new resolutions) + + tools-tests (test/tools): + + cheyenne - OK + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - PASS (cheyenne) + + regular tests (aux_clm): + + cheyenne ---- PASS + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: previous + + +Answer changes +-------------- + +Changes answers relative to baseline: No bit-for-bit + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): #891 +(https://github.com/ESCOMP/ctsm/pull) + + #891 -- add definitions/defaults for GFDL fv3 cubed sphere grids C24, C48, C96, C192, C384 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev097 +Originator(s): ycheng (Yanyan Cheng); final changes & testing by Bill Sacks +Date: Mon May 25 15:14:56 MDT 2020 +One-line Summary: Add two bioenergy crops (switchgrass and miscanthus) + +Purpose of changes +------------------ + +Main change is from Yanyan Cheng: adding parameters and code for two +bioenergy crops, switchgrass and miscanthus. Along with this, there is a +new potential flux from crop leaves and stems to the crop product pool +at harvest, representing biofuel products; a new pft-specific parameter +controls this flux (biofuel_harvfrac). Currently, the out-of-the-box +surface datasets do not specify any area for these crops, but the new +parameter file will allow them to be present if specified on the surface +dataset or landuse_timeseries file. Note that this is only an option for +CLM5.0, NOT for CLM4.5. (See https://github.com/ESCOMP/CTSM/pull/884 for +details.) + +Also, some minor fixes from Bill Sacks: See notes under "bugs fixed" +below. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#203 - Fixes creation of harvest-related variables + on surface datasets created with the all_veg option - smallville, + PTCLM, etc. (documented in https://github.com/ESCOMP/CTSM/pull/1019) +- Resolves ESCOMP/CTSM#930 - Makes gindex_ocn intent(inout) rather than + intent(out) +- Resolves ESCOMP/CTSM#1021 - Changes SSP test to only do symlink if + needed + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +- For transient crop cases, now more crops in memory. This creates a + need for interpolation of initial conditions for initial conditions + generated from a transient case. + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): +- Changed parameter values for switchgrass and miscanthus (only for clm5.0) +- New pft-specific parameter, biofuel_harvfrac (for both clm4.5 and clm5.0) + +Changes to the datasets (e.g., parameter, surface or initial files): +- New parameter files with the above changes + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: +- Changed smallville ERS_Lm20 test to be cold start (see comment in + commit 8368f222 for details) +- Added a multi-year smallville test that includes these new crops + +Code reviewed by: Bill Sacks, Danica Lombardozzi + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - ok + + Pass except for expected baseline failures + + Ran on 633be0eb, with comparison against ctsm1.0.dev095; tests pass + except these expected baseline failures: + + 030 blf84 TBLscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_clm4_5^buildtools ....................\c + rc=7 FAIL + + 032 blfc4 TBLscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_Cycle_clm4_5^buildtools ..............\c + rc=7 FAIL + + Diffs for these are just in the harvest-related fields on the surface dataset, as expected. + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- pass + + For cheyenne testing: a few tests had baseline failures. The + differences just arise in the h1 (vector) files, due to differences + in dimension sizes. These differences are expected. See below for + details. + + Ran most testing on 8309c213. Reran two SSP tests on 4665c9ce + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES, but diagnostic only due to +change in dimension sizes - does not change answers in any meaningful +way + + Summarize any changes to answers, i.e., + - what code configurations: Transient CLM50 cases with crops; just + changes dimensions on vector (h1) history files + - what platforms/compilers: All + - nature of change (roundoff; larger than roundoff/same climate; new climate): + diagnostic change only + + Differences were observed in the following tests: + + ERS_Ly3_Mmpi-serial.1x1_smallvilleIA.IHistClm50BgcCropQianGs.cheyenne_gnu.clm-cropMonthOutput + SMS_Ld5.f10_f10_musgs.ISSP245Clm50BgcCrop.cheyenne_gnu.clm-ciso_dec2050Start + SMS_Ld5.f10_f10_musgs.ISSP370Clm50BgcCrop.cheyenne_gnu.clm-ciso_dec2050Start + ERP_D_Ld10_P36x2.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-ciso_decStart + ERP_D_Ld5.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-allActive + ERP_Ly3_P72x2.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-cropMonthOutput + ERS_D_Ld7_Mmpi-serial.1x1_smallvilleIA.IHistClm50BgcCropGs.cheyenne_intel.clm-decStart1851_noinitial + ERS_Ly3_P72x2.f10_f10_musgs.IHistClm50BgcCropG.cheyenne_intel.clm-cropMonthOutput + ERS_Ly5_P144x1.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-cropMonthOutput + ERS_Ly6_Mmpi-serial.1x1_smallvilleIA.IHistClm50BgcCropQianGs.cheyenne_intel.clm-cropMonthOutput + LCISO_Lm13.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-ciso_monthly + SMS_Ld5.f10_f10_musgs.ISSP585Clm50BgcCrop.cheyenne_intel.clm-ciso_dec2050Start + + The differences just arise in the h1 files, due to differences in + dimension sizes. I reran these tests with a paramfile where I + reverted the mergeToPft variable; then they were all bfb with + master. + + Other than this, there were FIELDLIST differences, as expected. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +- https://github.com/ESCOMP/CTSM/pull/884 +- https://github.com/ESCOMP/CTSM/pull/1019 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev096 +Originator(s): slevis (Samuel Levis,SLevis Consulting LLC,303-665-1310) +Date: Thu May 21 19:18:24 MDT 2020 +One-line Summary: Gridcell-level balance checks for carbon and nitrogen + +Purpose of changes +------------------ + + Bracket the model's time-step loop to calculate balance checks at the + gridcell level because there are terms in the carbon and nitrogen + cycles not accounted for at the column level. Balance checks at the + column level remain unchanged for now. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #314 + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: None + +Code reviewed by: + @billsacks + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - + + tools-tests (test/tools): + + cheyenne - + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - + + regular tests (aux_clm): + + cheyenne ---- OK + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: No + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/CTSM/pull/984 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev095 +Originator(s): sacks (Bill Sacks) +Date: Thu May 21 10:25:16 MDT 2020 +One-line Summary: Update cime and cmeps externals; rework initialization of CNFire object + +Purpose of changes +------------------ + +Main change is to update cime and cmeps externals. cime is now +essentially at the version used in cesm2_2_beta05 (but with one change +backed out); cmeps is at latest master. + +Also, reworks initialization of CNFire object to avoid occasional +segmentation faults. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1018 (Occasional seg faults when initializing + CNFire object) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none +- Note: Because of a change in cime, datm now uses netcdf rather than + pnetcdf, but it doesn't seem that that impacts performance + significantly + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- pass + + cheyenne tests pass; some answer changes as expected (as noted below) + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (small) + + Summarize any changes to answers, i.e., + - what code configurations: + - cheyenne_gnu - due to compiler version update + - nuopc - presumably due to the major cmeps update + - what platforms/compilers: see above + - nature of change (roundoff; larger than roundoff/same climate; new climate): + - Not investigated + + I have verified that gnu tests in 59d1dd4a are identical to those + in dcaad375 - i.e., the rework of the initialization logic for fire + didn't change answers + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: cime5.8.19 -> branch_tags/cime5.8.23_a01 + (same as cime5.8.23, but reverts to using pio1 for mpi-serial cases, + since some mpi-serial cases failed with pio2) +- cmeps + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev094 +Originator(s): sacks (Bill Sacks) +Date: Fri May 15 13:41:01 MDT 2020 +One-line Summary: Minor bug fixes needed for latest cime + +Purpose of changes +------------------ + +(1) Refactor a conditional to avoid divide by 0 (ESCOMP/CTSM#1013) + +(2) Remove some FATES coordinate variables that were writing garbage + (temporary workaround for ESCOMP/CTSM#1014) + +(3) Minor update to manage_externals + +(4) Document authorship in README.md and .zenodo.json + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#1013 +- Workaround for ESCOMP/CTSM#1014, but doesn't properly resolve that issue + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: not checked; none expected + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- pass + izumi ------- pass + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +- https://github.com/ESCOMP/ctsm/pull/1006 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev093 +Originator(s): erik (Erik Kluzek) +Date: Fri May 1 22:27:16 MDT 2020 +One-line Summary: Bring in changes from release-clm5.0 branch to master + +Purpose of changes +------------------ + +Move changes from release-clm5.0.12.13/14/16/17/18/20/21/22/23/24/25/26/27/28/29/30 to master +(note excludes release-clm5.0.15, release-clm5.0.19) + +Answer changing! +Updates FATES with PARTEH option. + +Remove CRUNCEP half degree, ne120np4, f05 surface datasets +Landuse-timeseries files for just: f09, f19, f10, ne30np4, 1x1_numaIA, 1x1_smallvilleIA, 1x1_brazil +Add datasets needed for SSP scenarios (only Tier I for ndep). Add ZWT_inversion dataset for methane. + +Add new ability to use prescribed soil moisture data (from streams files based on an earlier CTSM simulation). + +Add new MODISv2 mapping files for mksurfdata_map. Remove T5 and T21 mapping files. Add conus_30_x8 mapping files, +and T62 mapping files + +Add contrib directory to tools with contributed tools and scripts. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): 31 issues.... + #873 -- Release clm5.0.12 changes + #871 -- don't check for valid resolution for CESM cases by default + #836 -- add izumi as a place that can run tools tests + #831 -- add namelist tint_algo settings for input streams + #817 -- Have clm4_5 use the same ndep file as clm5_0 for 1850 + #809 -- mkmapdata using an old version of intel + #804 -- mksurfdata option + #791 -- fix threading for prescribed LAI and soil-moisture + #786 -- allow use_init_interp for a branch + #746 -- Some CLM45 configurations use CLM50 initial conditions files + #741 -- C13_HR, C13_NBP, FPI values result in numeric conversion not representable error (changes answers) + #734 -- Isotope historical files off of NetCDF-4 + #716 -- 2 degree CMIP6WACCMDECK needs Carbon isotopes off + #707 -- Missing mapping files for hirespft + #673 -- Ice shelf wetland fix in mksurfdata_map can lead to glacier+lake > 100% on surface datasets (changes surface dataset creation) + #653 -- To save disk on fsurdat files use zwt0 on finindated file + #629 -- Remove unused fields from surface datasets + #624 -- QSNOEVAP history output incorrect + #621 -- Fully remove rcp in place of only ssp_rcp + #608 -- Odd (blocky) spatial patterns in generic crop leafc for BGC simulation when initialized from BGC-Crop (changes answers) + #589 -- Existence of content in the lai_streams namelist makes it confusing to users + #557 -- no-anthro compset and options + #553 -- More robust mksurfdata_map logic for determining where to put wetlands + #547 -- Add conus_30_x8 grid as valid option for CTSM and mksurfdata_map + #545 -- Antarctica ice shelves are being treated as wetlands rather than glaciers + #544 -- Transient cases are matching wrong IC file + #533 -- Add -no-anthro option to mksurfdata + #276 -- Tests for pre_alpha/pre_beta + #262 -- hirespft option to mksurfdata.pl + #175 -- Set stream_year_first_urbantv/last for CLM4.5 + #150 -- mksurfdata code cleanup + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): New surface datasets do mean initial conditions + will need to be interpolated + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): Add 2010 compset option + New namelist items: ndep_tintalgo, lai_tintalgo, lightng_tintalgo, urbantv_tintalgo, dribble_crophrv_xsmrpool_2atm + New soil moisture namelist items: use_soil_moisture_streams, stream_year_first_soilm, stream_year_last_soilm, model_year_align_soilm, + model_year_align_soilm, soilm_tintalgo, soilm_offset, soilm_ignore_data_if_missing + New namelist items for FATES: fates_parteh_mode + New 2010, no-anthro, SSP use cases + New compsets: I2010Clm50Sp, I2000Clm50BgcCropQianGs, I1850Clm50BgcNoAnthro, I1850Clm50SpNoAnthro, IHistClm50SpCru, IHistClm50SpCru, + IHistClm45SpGs, IHistClm45SpGs + New SSP compsets: ISSP585Clm50BgcCrop, ISSP126Clm50BgcCrop, ISSP126Clm50BgcCrop, ISSP245Clm50BgcCrop, ISSP370Clm50BgcCrop, + ISSP434Clm50BgcCrop, ISSP460Clm50BgcCrop, ISSP460Clm50BgcCrop + LAI streams options don't show up in the namelist unless you ask for them + finundation comes from streams files, no longer from the surface dataset + FATES adds a list of new history variables and dimension types + +Changes made to namelist defaults (e.g., changed parameter values): New fsurdat files, SSP C13/C14 files + Add PtVg surface dataset + most finidat files now need to be interpolated, a few added in to get testing to work + New ndep datasets + +Changes to the datasets (e.g., parameter, surface or initial files): + New fsurdat files, finidat files need to be interpolated from now + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + Threshold to reseed dead vegetation increased from zero to 1.0 as a hard coded parameter. + Reseeding also happens for generic crop types and not just natural vegetation now. + The ability to read in 3D streams was added (input files have to be at the same resolution as the model) + +Changes to tests or testing: + Add no-anthro, 2010, f19 waccm and SSP tests + Make sure prealpha/prebeta tests are also run by aux_clm + Add prescribed soil moisture test + Lengthen waccm_offline test + Remove hcru_hcru and edison tests + Add some aux_cime_baseline tests + +Code reviewed by: self + + +CTSM testing: regular, tools + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (345 are different than baseline) + + tools-tests (test/tools): + + cheyenne - OK + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - OK + + python testing (see instructions in python/README.md; document testing done): + + cheyennne -- PASS (when ncar_pylib run) + + regular tests (aux_clm): + + cheyenne ---- OK + izumi ------- OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes (small) + + Updates in all fsurdat files leads to changes in answers + Also there are updated finidat files as they had to be interpolated + to work with the new fsurdat files + Reseeding change can effect answers on startup if activated + Extra call to SoilBiogeochemPrecisionControl can cause a small answer change + + Summarize any changes to answers, i.e., + - what code configurations: all global + - what platforms/compilers: all + - nature of change: Main change is around Antarctica + + CMIP6 simulations and release branch simulations were run with these surface datasets + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): fates, PTCLM + + fates to sci.1.30.0_api.8.0.0 + PTCLM to PTCLM2_20200121 + + FATES now points to the NGEET repository rather than the NCAR fates-release + +Pull Requests that document the changes (include PR ids): #998, #883, #849, #567, #564, #561 +(https://github.com/ESCOMP/ctsm/pull) + #998 -- Remove Copyright file + #883 -- Bring changes on release-clm5.0 branch to master PR status: ready priority: high type: enhancement + #849 -- Fix link to new forums + #567 -- Ignore patterns for vim + #564 -- Update mksurfdata_map to include glaciers outside of pft landmask + #561 -- Add list of checks that should be done when making new surface datasets + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev092 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Mon Apr 27 14:51:21 MDT 2020 +One-line Summary: Update cime to version in cesm2_2_beta04 + +Purpose of changes +------------------ + +Update cime to latest in cesm2.2 beta tag (cesm2_2_beta04) +Fix two small issues that had gone on the release-clm5.0 branch. +Update manage_externals (to manic-v1.1.8) + +NOTE: Part of the reason for updating cime, was because of some problems +Mike Mills was having on cheyenne with inputdata files being deleted out +from under him before setting up his cases. We think system issues were +interacting with issues with cime putting in place zero length +missing files for the version of cime he was using. Those issues went +away with a cime update, so we hope updating to a newer cime version here +will help prevent those issues for CTSM users. + +cime updates: + +some cleanup from the last maint-5.6 update +Add ne5np4.pg4 grid. +case.setup: Add --keep option +Add omip as option to DATM_CO2_TSERIES + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #974 #966 + Fixes #974 -- python 3 problem in ssp test + Fixes #966 -- a few history fields need to be made CF compliant +CIME Issues fixed (include issue #): 3459 3466 + 3459 -- case.setup refuses to fix corrupted env_mach_specfic.xml + 3466 -- fix for aquap + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + ./case.setup now has a --keep option + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: None + +Code reviewed by: self + + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS + + tools-tests (test/tools): + + cheyenne - OK + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - OK + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - + + regular tests (aux_clm): + + cheyenne ---- OK + izumi ------- OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: previous + + +Answer changes +-------------- + +Changes answers relative to baseline: None bit-for-bit + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime + cime to cime5.8.19 + (NOTE: CMEPS is pointing to a newer hash than used in the beta tag) + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + #996 -- Update cime to latest cesm2.2 beta tag + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev091 +Originator(s): sacks (Bill Sacks) +Date: Fri Apr 24 07:43:46 MDT 2020 +One-line Summary: Increase tolerance on near-zero truncation for a snow state update + +Purpose of changes +------------------ + +In UpdateState_TopLayerFluxes, the tolerance of 1.e-13 was occasionally +exceeded. Although I haven't done a careful analysis, it seems okay to +me to increase this tolerance slightly. Here I increase it to 1.e-12. + +Previously, if top-layer h2osoi_ice or h2osoi_liq were reduced to less +than 1e-13 times the original value (in an absolute value sense), these +masses were set to 0; now we set these masses to 0 if they are reduced +to less than 1e-12 times the original. So we can now occasionally set a +value to exactly 0 when before it was left at slightly different from +zero. If the previous code led to a small positive value, between 1e-13 +and 1e-12 times the original, this tag will change answers slightly. If +the previous code led to a small negative number, it would cause the +model to abort, leading to the issue reported in ESCOMP/CTSM#988; this +change should fix those occasional aborts. + +This tag also introduces the general ability to set tolerances to a +custom value in calls to truncate_small_values. + +See ESCOMP/CTSM#988 for details. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#988 + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none expected (not checked) + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Erik Kluzek + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- pass + izumi ------- pass + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES, in theory (but none in test suite) + + Summarize any changes to answers, i.e., + - what code configurations: potentially all, but very rarely + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Roundoff + + Potentially changes answers by roundoff (see notes above), but no + changes were observed in any test in the test suite + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/989 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev090 +Originator(s): negins (Negin Sobhani,UCAR/CSEG,303-497-1224) +Date: Thu Apr 23 09:21:18 MDT 2020 +One-line Summary: Refactoring banded diagonal matrix and solve system in SoilTemperature module + +Purpose of changes +------------------ + +Previously, the SoilTemperature module has a high level of nested subroutine +calls, which hurt its performance and readability. There were many +redundancies, logical issues, and nested conditionals in the modular code +as discussed in issue #323. In this PR, SoilTemperature module is optimized +and rewritten for better readability and performance while maintaining bfb +compatibility. + + +This PR addresses issue ESCOMP/ctsm#323 + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): + -ESCOMP/ctsm#323 + +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.) + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: The revised code improved the +performance of the previous code by ~1.5-2x. + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Bill Sacks + + +CTSM testing: + + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- OK + izumi ------- PASS + +Externals used for the testing: + [cism] + tag = cism2_1_68 + [rtm] + tag = rtm1_0_70 + [mosart] + tag = mosart1_0_35 + [cime] + tag = branch_tags/cime5.8.15_a01 + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/CTSM/pull/979) + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev089 +Originator(s): sacks (Bill Sacks) +Date: Tue Apr 7 12:01:59 MDT 2020 +One-line Summary: Bring documentation source to master + +Purpose of changes +------------------ + +1. Bring documentation source to master: Pulls in the source from + https://github.com/escomp/ctsm-docs. This is important so that + documentation can remain in sync with changes in the model + code. Images are stored here using git-lfs (Git Large File + Storage). I also made some minor fixes to get the pdf build of the + tech note working. + +2. Use a different documentation theme that supports a version dropdown + menu, and add the code needed to support this versioning on the + documentation web pages. At a high level, the way the versioned + documentation works is to have separate subdirectories in the + gh-pages branch of the ctsm-docs repository for each version of the + documentation we want to support. There is then a bit of JavaScript + code which uses a json file in the gh-pages branch to determine which + versions exist and how these should be named in the dropdown + menu. Most of these changes were borrowed from ESMCI/cime#3439, which + in turn borrowed from ESCOMP/CISM-wrapper#23, which in turn was a + slight modification of an implementation provided by @mnlevy1981 for + the MARBL documentation, which in turn borrowed from an + implementation put together by Unidata (credit where credit is due). + + I am not aware of out-of-the-box support for a version pull-down in + out-of-the-box sphinx themes (though the last time I looked was in + Fall, 2018, so there may be something available now). However, + support for a version dropdown exists in an open PR in the sphinx + readthedocs theme repository: readthedocs/sphinx_rtd_theme#438. I + have pushed this branch to a new repository in ESMCI + (https://github.com/ESMCI/sphinx_rtd_theme) to facilitate long-term + maintenance of this branch in case it disappears from the official + sphinx_rtd_theme repository. I have also cherry-picked a commit onto + that branch, which is needed to fix search functionality in sphinx1.8 + (from readthedocs/sphinx_rtd_theme#672) (which is another reason for + maintaining our own copy of this branch). The branch in this + repository is now named version-dropdown-with-fixes (branching off of + the version-dropdown branch in the sphinx_rtd_theme repository). In + the long-term, I am a little concerned about using this theme that + isn't showing any signs of being merged to the main branch of the + readthedocs theme, but this has been working for us in other projects + for the last 2 years, so I feel this is a reasonable approach in the + short-medium term. + +The new process for building the documentation is given here: +https://github.com/ESCOMP/CTSM/wiki/Directions-for-editing-CLM-documentation-on-github-and-sphinx + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#239 (Move documentation source to master) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Erik Kluzek + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- not run! + izumi ------- not run! + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/954 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev088 +Originator(s): sacks (Bill Sacks) +Date: Tue Apr 7 10:43:03 MDT 2020 +One-line Summary: Fix bug in snow aerosol numerics (causes occasional HUGE aerosol values) + +Purpose of changes +------------------ + +Multiplications / divisions by dtime were missing in a few places, in +some code that ensures that aerosol mass fluxes between the snow layers +don't exceed the total mass. This bug was introduced in ctsm1.0.dev065, +when a term was changed from a mass to a flux (per unit time), but some +of the code wasn't changed correspondingly. + +In one case this bug caused a crash, but in other cases it just causes +incorrect answers. The issue can be seen by examining the history +variables SNOBCMCL, SNOOCMCL and SNODSTMCL. In the case that led to the +crash, SNOBCMCL and SNOOCMCL became huge in one grid cell (~ 10^12) for +a long period before the crash. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#965 (Bug in snow aerosol numerics can cause + aerosol masses to blow up, starting with ctsm1.0.dev065) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none (not checked, but none expected) + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Erik Kluzek, Keith Oleson + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- pass + + ok means tests pass, some answer changes as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (Small) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + larger than roundoff/same climate + + Answer changes arise due to a bug fix for a condition that only + appears infrequently. When it does appear, answer changes can + potentially be enormous (e.g., snow aerosol concentrations 20 + orders of magnitude too large), though answer changes observed in + the test suite all appear relatively small. + + Answer changes just appeared for the following tests: + + FAIL ERP_D_P36x2_Ld3.f10_f10_musgs.I2000Clm45BgcCrop.cheyenne_gnu.clm-no_subgrid_fluxes BASELINE ctsm1.0.dev087: DIFF + FAIL SMS_Ld1.nldas2_rnldas2_mnldas2.I2000Ctsm50NwpSpNldasGs.cheyenne_gnu.clm-default BASELINE ctsm1.0.dev087: DIFF + FAIL SMS_Ld1.nldas2_rnldas2_mnldas2.I2000Ctsm50NwpSpNldasRsGs.cheyenne_gnu.clm-default BASELINE ctsm1.0.dev087: DIFF + FAIL ERI_D_Ld9.ne30_g16.I2000Clm50BgcCruGs.cheyenne_intel.clm-vrtlay BASELINE ctsm1.0.dev087: DIFF + FAIL ERI_D_Ld9.T31_g37.I2000Clm50Sp.cheyenne_intel.clm-SNICARFRC BASELINE ctsm1.0.dev087: DIFF + FAIL ERI_Ld9.f45_g37.I2000Clm50BgcCruGs.cheyenne_intel.clm-nofire BASELINE ctsm1.0.dev087: DIFF + FAIL ERI_N2_Ld9.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-default BASELINE ctsm1.0.dev087: DIFF + FAIL SMS_D_Lm6.f45_f45_mg37.I2000Clm50Fates.cheyenne_intel.clm-FatesColdDef BASELINE ctsm1.0.dev087: DIFF + FAIL SMS_D_Lm6_P144x1.f45_f45_mg37.I2000Clm50Fates.cheyenne_intel.clm-FatesColdDef BASELINE ctsm1.0.dev087: DIFF + FAIL SMS_Lm13.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-cropMonthOutput BASELINE ctsm1.0.dev087: DIFF + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/971 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev087 +Originator(s): sacks (Bill Sacks) +Date: Mon Apr 6 11:23:51 MDT 2020 +One-line Summary: Change hard-coded soil layers in phenology to use a target depth + +Purpose of changes +------------------ + +Adds infrastructure for finding the soil layer containing a given depth +(covered by unit tests). + +In phenology code, replaces hard-coded level 3 with a target soil +depth. This value is read from the parameter file. The default value is +set in a way that is bit-for-bit for standard CLM45 and CLM50 +configurations, but this will change answers for non-SP configurations +using the NWP soil layer structure or non-standard soil layer +structures. + +This is important for the sake of supporting flexible soil layers, as in +the NWP configuration. + +Also, some cleanup of the CNPhenology parameter reading code. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#952 (Change hard coded soil layers in phenology + to use a target depth) + + +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.] + +[ ] clm5_0 + +[X] ctsm5_0-nwp -- only for non-SP cases + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): +- New parameter added to NetCDF parameter file: phenology_soil_depth + +Substantial timing or memory changes: none expected (not checked) + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Erik Kluzek + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- pass + + ok means tests pass, a few answer changes as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes (only Non-SP cases with NWP) + + Summarize any changes to answers, i.e., + - what code configurations: Non-SP cases with NWP or non-standard + soil layer structures + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + larger than roundoff; same vs. new climate not investigated + + Differences in non-SP cases with soil layer structure different + from that of standard clm45 or clm50. Differences observed in + tests + ERS_D_Ld3.f10_f10_musgs.I2000Clm50BgcCruGs.cheyenne_intel.clm-deepsoil_bedrock + and + SOILSTRUCTUD_Ld5.f10_f10_musgs.I2000Clm50BgcCropGs.cheyenne_intel.clm-default. + + ERP_P36x2_D_Ld5.f10_f10_musgs.I2000Ctsm50NwpBgcCropGswpGs.cheyenne_intel.clm-default + had no differences; I'm guessing this is just because there didn't + happen to be the appropriate PFTs present to show differences in + this short, coarse-resolution test. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/963 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev086 +Originator(s): mvertens (Mariana Vertenstein) +Date: Thu Mar 19 16:03:26 MDT 2020 +One-line Summary: Updates to NUOPC cap and minor fixes to ncdio_pio + +Purpose of changes +------------------ + +This tag has updates to the NUOPC cap that are needed for the latest +version of CMEPS. + +Now each component NUOPC cap needs to compute possibly time varying +orbital parameters. Before, in cpl7, this was done in the driver and +passed to the components via seq_infodata. However, now the driver is +really just a simple ascii file - so those calculations needed to +migrate to the component caps. + +In addition, this tag contains changes to ncdio_pio.F90 that improve +performance in some situations. + +This also updates MOSART and RTM tags to include fixes for the NUOPC cap +for MOSART and implementation of an initial NUOPC cap for RTM. + +Also, I1Pt compsets now use SROF rather than using an active runoff +model in 'null' mode. This leads to differences in namelists, but not in +results. + +Mariana Vertenstein implemented most of the changes in this tag; Jim +Edwards implemented the ncdio_pio changes; Bill Sacks did final testing +and integration. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#943 (NUOPC tests will fail in ctsm1.0.dev085) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: +- I1Pt tests and cases now use SROF rather than an active runoff model + with a null grid (only impacts namelists, not results) +- Changed nuopc test to use MOSART rather than SROF +- Changed finidat file used by LII test to solve a problem that was + uncovered with the ncdio_pio changes in this tag + +Code reviewed by: Bill Sacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- pass + izumi ------- pass + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (just for NUOPC configurations) + + Summarize any changes to answers, i.e., + - what code configurations: Just some NUOPC configurations + - what platforms/compilers: + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Not investigated carefully, but likely to be larger than roundoff + / same climate (due to introduction of time-varying orbital parameters) + + Differences are expected in NUOPC configurations using time-varying + orbital parameters. Note that no differences showed up in the test + suite, however, because the only nuopc test in the test suite is + new in this tag (so did not have baselines). + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- mosart: mosart1_0_35 -> mosart1_0_36 +- rtm: rtm1_0_70 -> rtm1_0_71 +- cmeps + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/issues/943 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev085 +Originator(s): sacks (Bill Sacks) +Date: Mon Mar 16 09:19:57 MDT 2020 +One-line Summary: Update cime + +Purpose of changes +------------------ + +Update to latest version of cime master + +Bugs fixed or introduced +------------------------ + +Known bugs introduced in this tag (include github issue ID): +- https://github.com/ESCOMP/CTSM/issues/943 - NUOPC tests will fail in ctsm1.0.dev085 + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +- NUOPC cases will fail from a standalone checkout + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- pass + + Two test failures: + + PEND SMS_D_Vnuopc.f10_f10_musgs.I2000Clm50SpRsGs.cheyenne_intel.clm-default SHAREDLIB_BUILD + I have added this to the expected fails list for now + FAIL SMS_P720x1_Ln6.hcru_hcru.I2000Clm50BgcCruGs.cheyenne_intel.clm-coldStart BASELINE ctsm1.0.dev084: ERROR BFAIL baseline directory '/glade/p/cgd/tss/ctsm_baselines/ctsm1.0.dev084/SMS_P720x1_Ln6.hcru_hcru.I2000Clm50BgcCruGs.cheyenne_intel.clm-coldStart' does not exist + This test was added in the previous tag, but apparently wasn't run from there + + Note: I did testing using cime hash + 4f1880756a66ff12d304937d3c166d451ea50cf9, then updated to the tag + (cime5.8.17). The two are identical except for the cime ChangeLog. + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +cime: branch_tags/cime5.8.15_a01 -> cime5.8.17 + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev084 +Originator(s): negins (Negin Sobhani,UCAR/CSEG,303-497-1224) +Date: Wed Feb 19 15:05:03 MST 2020 +One-line Summary: Bounds assertion for C isotopes when threading is on + +Purpose of changes +------------------ + +Previously, the bounds of c13 and c14 in subroutines TruncateCStates and +TruncateCandNStates were not checked when threading was on. This PR allows us +to handle c13 and c14 arrays like everything else in CTSM including (bounds +checking). + +This PR resolves issue ESCOMP/ctsm#811 + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): + -ESCOMP/ctsm#811 + +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.) + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: + - There was an issue (wrong wallclock time ) for one of the tests in the test + definitions which got fixed: (SMS_D_Vnuopc.f10_f10_musgs.I2000Clm50SpRsGs..) + - Also, I tried making the wallclocktime for all tests in + cime_config/testdefs/testlist_clm.xml consistent in the format of hh:mm:ss. + +Code reviewed by: Bill Sacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- OK + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/CTSM/pull/923) + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev083 +Originator(s): negins (Negin Sobhani,UCAR/CSEG,303-497-1224) +Date: Thu Feb 6 12:12:26 MST 2020 +One-line Summary: Some BFB Fixes: Resolve issues #683, # 874, #878, # 885, # 745, #838 + +Purpose of changes +------------------ + +Resolved issues: + +ESCOMP/ctsm#683 : Writing out FATES parameters only on masterproc. +ESCOMP/ctsm#874 : Changing the number of timesteps to run for + SMS_P720x1_Ln3.hcru_hcru.I2000Clm50BgcCruGs.cheyenne_intel.clm-coldStar + to prevent failing with CMEPS. +ESCOMP/ctsm#878 : Removing the unused atm2lnd field. +ESCOMP/ctsm#885 : Changing the defaults for br_root in namelist_defaults to + enable FUN with CLM4.5. +ESCOMP/ctsm#745 : Removing ReadNL private subroutine from initVerticalMod.F90. +ESCOMP/ctsm#838 : Clarifying ZISNO in the variable long name. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +Resolves : + - ESCOMP/ctsm#683 + - ESCOMP/ctsm#874 + - ESCOMP/ctsm#878 + - ESCOMP/ctsm#885 + - ESCOMP/ctsm#745 + - ESCOMP/ctsm#838 + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): + Not any changes in parameter values. + changing the default for br_root in namelist_defaults to enable FUN with + CLM4.5. + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: + Changed the number of timesteps from Ln3 to Ln6 for + SMS_P720x1_Ln3.hcru_hcru.I2000Clm50BgcCruGs.cheyenne_intel.clm-coldStar + +Code reviewed by: Bill Sacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- OK + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/897 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev082 +Originator(s): oleson (Keith Oleson) +Date: Sat Feb 1 09:28:41 MST 2020 +One-line Summary: Rename variables to avoid confusion; fix QSNOEVAP diagnostic + +Purpose of changes +------------------ + +Renamed variables as discussed in ESCOMP/ctsm#118 throughout the code. + +Also made a couple of minor changes to fix a couple of potential +problems with these variables as described in the branch commit logs. + +Tested for bfb before changing the history field variables +themselves. These changes are all bfb (with the exception of QSNOEVAP) +for a 1 month global 2deg simulation, but may not be bfb under all +conditions. QSNOEVAP is not bfb because I've added in qflx_ev_snow for +lakes. + +Also, update cime slightly with a fix for izumi machine updates + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#118 + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none expected (not checked) + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Bill Sacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- ok + + ok: tests pass, answer changes in QSNOEVAP but nothing else (as expected) + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (only one diagnostic field) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + + Larger than roundoff, but only in the diagnostic field QSNOEVAP + + Possibility of other answer changes in rare circumstances, not + observed in testing. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: cime5.8.15 -> branch_tags/cime5.8.15_a01 + Minor update for izumi machine changes + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/893 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev081 +Originator(s): slevis (Samuel Levis,SLevis Consulting LLC,303-665-1310) +Date: Mon Jan 13 15:37:07 MST 2020 +One-line Summary: Speed up restart writes + +Purpose of changes +------------------ + + E3SM#3163 made some changes to speed up restart writes. I use E3SM#3163 + function GetGlobalIndexArray in place of GetGlobalIndex so as to get + global indices by array rather than looping over every element. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #801 + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: Limited testing did not show substantial timing changes + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: + @billsacks + @bishtgautam + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - + + tools-tests (test/tools): + + cheyenne - + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - + + regular tests (aux_clm): + + cheyenne ---- OK + izumi ------- PASS + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: No + + @billsacks recommended running a global test in the branch vs. in master (i.e. + with vs. without the code mods) to compare restart files because the test suite + does not compare restart files and an error in the subgrid indices on the + restart file might go undetected. I ran this test: + ERS_D_Ld6.f10_f10_musgs.I1850Clm45BgcCrop.cheyenne_intel.clm-clm50CMIP6frc + and got identical values for all variables in the two restart files. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/880 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev080 +Originator(s): sacks (Bill Sacks) +Date: Mon Dec 2 12:23:22 MST 2019 +One-line Summary: Update externals, minor fixes to work with latest cime, get nuopc cap working + +Purpose of changes +------------------ + +(1) Update to latest version of externals. This includes a significant + cime update. + +(2) Minor fixes to get things working with the latest version of cime. + +(3) Fix from Mariana Vertenstein to get NUOPC cap working, fixes to + externals cfg files to allow running NUOPC cases out of the box, and + add a NUOPC test. + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): +CIME update brings in some changes, e.g., in mapping files; otherwise, none. + +Substantial timing or memory changes: not investigated + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: +- Added NUOPC test: + SMS_D_Vnuopc.f10_f10_musgs.I2000Clm50SpRsGs.cheyenne_intel.clm-default + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- ok + + ok means tests passed, some baseline comparisons failed as expected + + Note: Most testing was done on ad1ad752; then, from the latest + version, I ran a 2-test test list of: + - SMS_D_Vnuopc.f10_f10_musgs.I2000Clm50SpRsGs.cheyenne_intel.clm-default + - SMS_D.f10_f10_musgs.I2000Clm50SpRsGs.cheyenne_intel.clm-default + + In addition to verifying that the above tests passed, I also + inspected the sharedlib build area to verify that separate builds of + the clm library were done for mct and nuopc. + +If the tag used for baseline comparisons was NOT the previous tag, note that here: +- cheyenne tests compared against ctsm1.0.dev078, since cheyenne testing +was not run on ctsm1.0.dev079. + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (only f10, same climate) + + Summarize any changes to answers, i.e., + - what code configurations: Cases at f10 resolution + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff, but probably same climate + + Answer changes are due to https://github.com/esmci/cime/pull/3186 + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: branch_tags/cime5.8.3_chint17-05 -> cime5.8.15 +- rtm: rtm1_0_68 -> rtm1_0_70 +- mosart: mosart1_0_34 -> mosart1_0_35 +- cmeps: 471ac52 -> 181ff1ed9dfb279e619e8a2173f43baf7bf1dce3 + Also, note that cmeps is now checked out automatically + + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/845 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev079 +Originator(s): sacks (Bill Sacks) +Date: Mon Nov 4 14:41:41 MST 2019 +One-line Summary: Change a few uses of shr_kind + +Purpose of changes +------------------ + +Change a few uses of shr_kind to work with latest cime. These changes +are from Mariana Vertenstein. + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Bill Sacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- NOT RUN! + izumi ------- pass + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev078 +Originator(s): oleson (Keith Oleson) +Date: Thu Oct 31 12:30:00 MDT 2019 +One-line Summary: Fix rootr calculation with use_hydrstress true + +Purpose of changes +------------------ + +In cases with use_hydrstress=.true., both rootr_patch and rootr_col had +problems. This affected the diagnostic fields ROOTR and ROOTR_COLUMN, +and (in BGC cases) fed back on other parts of the system via affecting +the methane code. See https://github.com/ESCOMP/CTSM/issues/812 for more +details. + +This tag fixes this issue via these specific changes: + +1. Calculate btran in SoilMoistStressMod.F90 regardless of + use_hydrstress + +2. Comment on the applicability of this calculation and that of rootr in + SoilMoistStressMod.F90 + +3. Add the following comment to uses of rootr and rootr_col throughout + the code: "SMS method only" + +4. Allow ROOTR_COL history field only if use_hydrstress = .false. + +5. Remove the calculation of rootr_col in subroutine + Compute_EffecRootFrac_And_VertTranSink_HydStress within module + SoilWaterPlantSinkMod.F90 since that calculation is invalid for PHS. + +6. Normalize root resistances for pervious road over nlevgrnd, not + nlevsoi + +Note that the rootr calculation is done using the non-PHS (i.e., SMS) +method. So rootr is not really consistent with PHS; this is something +that should probably be revisited later. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Fixes ESCOMP/ctsm#812 (Problems with rootr when use_hydrstress=.true.) + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: not checked; none expected + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Bill Sacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- ok + + ok means tests pass, answers change as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (PHS and methane) (same climate) + + Summarize any changes to answers, i.e., + - what code configurations: Clm50Bgc (cases with both use_hydrstress=.true. and methane active) + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + larger than roundoff / same climate + + For details on differences, see + https://github.com/ESCOMP/CTSM/issues/812#issuecomment-547924289 + + If this tag changes climate describe the run(s) done to evaluate the new + climate (put details of the simulations in the experiment database) + - casename: clm50_ctsm10d074_2deg_GSWP3V1_rootr_hist + + URL for LMWG diagnostics output used to validate new climate: + http://webext.cgd.ucar.edu/I20TR/clm50_ctsm10d074_2deg_GSWP3V1_rootr_hist/lnd/clm50_ctsm10d074_2deg_GSWP3V1_rootr_hist.1995_2014-clm50_ctsm10d074_2deg_GSWP3V1_hist.1995_2014/setsIndex.html + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev077 +Originator(s): sacks (Bill Sacks) +Date: Sun Oct 27 16:23:39 MDT 2019 +One-line Summary: Consistently use frac_sno_eff rather than frac_sno in qg calculations + +Purpose of changes +------------------ + +Consistently use frac_sno_eff rather than frac_sno in qg calculations + +The change here only changes answers for (1) urban pervious road, and +(2) more broadly with use_subgrid_fluxes = .false. + +Previously, code in CalculateSurfaceHumidity was inconsistent regarding +the use of frac_sno vs. frac_sno_eff. I wanted to make this consistent +to facilitate upcoming cleanup of CalculateSurfaceHumidity. I went back +and forth as to which one we should use here. (See also +https://github.com/ESCOMP/CTSM/issues/822). + +Argument for frac_sno_eff: This is consistent with the use of +frac_sno_eff elsewhere in the calculation of surface fluxes. + +Argument for frac_sno: Even in CLM4.0 (prior to the introduction of +frac_sno_eff and frac_h2osfc), frac_sno was used to calculate surface +relative humidity. That makes me think that the parameterizations were +improved by using frac_sno here, even though frac_sno at that point was +mainly just used for albedo / radiation calculations. So sticking with +frac_sno would be more consistent with what has been done for a long +time, and would presumably be a bit better scientifically. + +However, when I tried changing this to use frac_sno rather than +frac_sno_eff: + + qg(c) = frac_sno_eff(c)*qg_snow(c) + (1._r8 - frac_sno_eff(c) - frac_h2osfc(c))*qg_soil(c) & + + frac_h2osfc(c) * qg_h2osfc(c) + +I got a crash with use_subgrid_fluxes false (test +SMS_D_Ld1_P4x1.f10_f10_musgs.I2000Clm45BgcCropQianRsGs.bishorn_gnu.clm-no_subgrid_fluxes), +due to a check I put in relatively recently to ensure that the top-layer +soil liquid never goes significantly negative: + +WJS 218: frac_sno, frac_sno_eff, frac_h2osfc, snl = 6.6447358408778726E-005 1.0000000000000000 0.0000000000000000 -1 + qg_snow, qg_soil, qg_h2osfc, qg = 3.8414454029812475E-003 3.6634834595404343E-003 3.6635176705822736E-003 3.6634952846414733E-003 + ERROR: In UpdateState_TopLayerFluxes, h2osoi_liq has gone significantly negative + Bulk/tracer name = bulk + c, lev_top(c) = 218 0 + h2osoi_liq_top_orig = 6.6448689668604415E-004 + h2osoi_liq = -2.6754040213948407E-004 + frac_sno_eff = 1.0000000000000000 + qflx_liq_grnd*dtime = 0.0000000000000000 + qflx_dew_grnd*dtime = 0.0000000000000000 + qflx_evap_grnd*dtime = 9.3202729882552822E-004 + ENDRUN: + ERROR: In UpdateState_TopLayerFluxes, h2osoi_liq has gone significantly negative + +What seems to be going on is: With a little bit of snow present, when I +use frac_sno rather than frac_sno_eff, we end up with a qg value very +close to that of soil. But I think the later evaporation happens from +the snow, at which point I guess the dryer air above leads to there +being too large evaporation from the snow. + +So in the end, I decided to consistently use frac_sno_eff, even though +this might be a small step backwards in terms of the accuracy of surface +humidity for urban pervious road and with use_subgrid_fluxes = .false. + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self (but approved conceptually by Sean Swenson and +Keith Oleson) + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- ok + + ok means tests pass, answers change as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (Small) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Expected to be larger than roundoff/same climate, but not + investigated carefully + + For the default configuration with use_subgrid_fluxes = .true., + differences are restricted to urban pervious road. I spot-checked + a few tests to ensure that we only saw differences in FSH for + urban landunits; this was generally true, with the exception of + ERP_Ly3_P72x2.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-cropMonthOutput, + which also had differences over crop and natural veg + landunits. This spillover effect seems to be related to the + non-local interactions that arise from methane's dependence on + TWS, though I don't understand why I only saw this in a transient + case, and not in similar non-transient cases. See + https://github.com/ESCOMP/CTSM/issues/658#issuecomment-546740771 + for more details. + + For the non-default use_subgrid_fluxes = .false., there + differences in the natural vegetation and crop landunits, too. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev076 +Originator(s): sacks (Bill Sacks) +Date: Fri Oct 25 16:04:20 MDT 2019 +One-line Summary: Set frac_sno_eff=0 if frac_sno is 0; avoid unnecessary calls to QSat + +Purpose of changes +------------------ + +Two changes that are bit-for-bit except for changes in the FSNO_EFF +diagnostic field, both with an eye towards cleaning up +SurfaceHumidityMod in preparation for adding water tracers to that +module: + +(1) Set frac_sno_eff to 0 if frac_sno is 0. Previously, for cases where + frac_sno_eff was a binary 0/1 rather than being set equal to + frac_sno, frac_sno_eff was always being set to 1, even if there was + no snow. Sean Swenson thinks that didn't matter, but I found it + confusing, and it could be more problematic with some upcoming + changes I plan to make (where I'm going to use frac_sno_eff as a + weighting factor in calculating qg terms, including for landunits + that use a binary 0/1 frac_sno_eff.) + +(2) Avoid unnecessary calls to QSat, since this function is relatively + expensive. + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: No substantial changes; from a +single run of PFS_Ld20.f09_g17.I2000Clm50BgcCrop.cheyenne_intel, max +timing of the main changed section (bgp1) decreased by about 10%; this +may be within machine variability, though. + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- ok + + ok means tests pass, answer changes as expected just for FSNO_EFF + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES, but just for the diagnostic field FSNO_EFF + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + diagnostic only: just changes FSNO_EFF + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev075 +Originator(s): sacks (Bill Sacks) +Date: Fri Oct 25 15:44:52 MDT 2019 +One-line Summary: Lakes: Adjust frac_sno after updating 0-layer snow pack for dew & sublimation + +Purpose of changes +------------------ + +Main change is: for lakes, possibly adjust frac_sno after updating +0-layer snow pack for dew & sub, ensuring that zero vs. non-zero values +of frac_sno agree with whether the snow pack has zero or non-zero +amounts of snow. The main motivation for this is to ensure that, if we +have any snow, then frac_sno should be non-zero. Along with this, I'm +also ensuring that, if we go down to 0 snow, then we also go down to 0 +frac_sno. + +A related change was to move the code ensuring that h2osno_no_layers +doesn't go negative: I have moved this to before h2osno_no_layers is +referenced, to assure we don't get a slightly negative snow depth. (I +haven't noticed any problems due to the old placement, but it seems +safer to put the limiting before the reference to h2osno_no_layers.) + +Also, an unrelated change in run_sys_tests: Add option for rerunning +existing failed tests. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#827 (Lake frac_sno can remain 0 even when there + is some snow addition from frost) + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: None expected + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - pass (on my mac: 'make test' with python2 & python3 and 'make lint') + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- ok + + ok means tests pass, answers change as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (Small) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Expected to be larger than roundoff/same climate + + Changes are introduced only over lake columns, and these changes + should be small, since they only relate to the setting of frac_sno + when there is dew or sublimation on a very thin snow + pack. + + Although the direct changes should only affect lakes, I did + observe changes in crop columns in a transient test that I + spot-checked + (ERP_Ly3_P72x2.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-cropMonthOutput) + - maybe due to some of the non-local interactions in + https://github.com/ESCOMP/CTSM/wiki/Parameterizations-that-can-cause-nonlocal-interactions, + or maybe due to some other non-local interaction, either known or + buggy. (In non-transient tests that I spot checked + (ERP_P72x2_Lm36.f10_f10_musgs.I2000Clm50BgcCrop.cheyenne_intel.clm-clm50cropIrrigMonth_interp + and + SMS_Lm13.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-cropMonthOutput): + diffs in FSH in h1 file are just over lake landunits, as + expected.) + + Update: it seems that these changes in crop columns arise from + the nonlocal interactions caused by the dependence of methane + on TWS, though I don't understand why I only saw this in a + transient case, and not in similar non-transient cases. See + https://github.com/ESCOMP/CTSM/issues/658#issuecomment-546740771 + for more details. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev074 +Originator(s): sacks (Bill Sacks) +Date: Wed Oct 23 19:25:21 MDT 2019 +One-line Summary: For lakes: when reading finidat, set frac_sno=1 if h2osno_total > 0 + +Purpose of changes +------------------ + +Due to ESCOMP/ctsm#783, frac_sno used to be 0 for all lake points. That +was mostly fixed, but the issue is still present on initial conditions +files that were generated prior to that fix (which includes most or all +of our out-of-the-box restart files). This causes frac_sno to be 0 for +lake points at the start of the simulation, even if there is a snow pack +present. Currently this doesn't cause significant problems, but I'd like +to change the calculation of frac_sno_eff so that it is 0 if frac_sno is +0 - and then this frac_sno problem becomes an issue (causing divide by 0 +in at least one place). + +However, further problems were introduced if I tried to always apply +this correction: It appears that sometimes the restart file legitimately +has frac_sno == 0 for lake columns with non-zero snow cover. To avoid +changing answers for newer restart files, I am writing metadata to the +restart file documenting whether the fix has already been applied on +that restart file, and if so, we avoid reapplying the fix. + +Getting this restart metadata correct was tricky, especially when +running init_interp. I have introduced a new module to encapsulate this +complexity. This can be used in general for writing / reading metadata +on which issues have been fixed on a given restart file. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): [If none, remove this line] +- Resolves ESCOMP/ctsm#783 + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +- The setting of initial lake frac_sno to 1 isn't exactly correct, but + it's better than the old value of 0. + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none +- I didn't check the PFS test, but the only change that could have + likely led to performance changes was the addition of a metadata copy + in init_interp. I checked the timing of this piece, and found it to be + a negligible portion of the total init_interp time + (https://github.com/ESCOMP/CTSM/pull/825#issuecomment-545219601). + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Erik Kluzek gave this an initial look and gave general +approval for the restart file metadata mechanism I have added. He may +give it a more careful look, possibly accompanied by a further cleanup +tag addressing any issues he finds. + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- ok + + ok means tests passed, baselines fail as expected. + + Note that the FUNIT test failed initially; I got it passing on my + Mac, but didn't rerun it on cheyenne. + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (same climate, only at startup) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff/same climate + + The only change is in initial lake frac_sno. This should only + affect the start of the simulation, and only over lake points. I + verified that changes are only over lake points via: For both + SMS_D_Ld1.f09_g17.I1850Clm50Sp.cheyenne_intel.clm-default (which + doesn't use init_interp) and + SMS_D_Ld3.f10_f10_musgs.I2000Clm50BgcCruGs.cheyenne_gnu.clm-default + (which uses init_interp): I checked which points have differences + in FSH in the h1 (vector) history file. Diffs were only over lake + points. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/825 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev073 +Originator(s): sacks (Bill Sacks) +Date: Tue Oct 22 06:14:24 MDT 2019 +One-line Summary: Fix bug in calculation of dqgdT + +Purpose of changes +------------------ + +The calculation of dqgdT, which gives the derivative, d(qg)/dT, was +incorrect for soil/crop landunits when there is no snow. This tag fixes +that bug. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/CTSM#824 (dqgdT incorrect when there is no snow) + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: not checked, but none expected + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Sean Swenson reviewed and approved my plan, though not the final code + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- ok + + ok means tests pass, answers change as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (small) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff/same climate + + I checked the impact from one-day averages in test + SMS_D_Ld1_P4x1.f10_f10_musgs.I2000Clm50BgcCropQianRsGs.bishorn_gnu.clm-default, + by looking at differences in EFLX_LH_TOT. The impact is small: + daily-average differences in that variable are typically 0.01 W + m-2 or less; most grid cells have significantly less difference + than that; only one or a few f10 grid cells have significantly + greater differences, with the biggest difference being about 0.1 W + m-2. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev072 +Originator(s): mvertens (Mariana Vertenstein) +Date: Tue Oct 15 09:41:50 MDT 2019 +One-line Summary: Add NUOPC cap + +Purpose of changes +------------------ + +Add NUOPC cap in order to run with the new NUOPC driver/mediator. There +was some code movement / refactoring of existing code to support this, +with the biggest change being the introduction of a new subdirectory +under src/cpl. + +Most changes are from Mariana Vertenstein and Jim Edwards. + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none expected (not checked) + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- NUOPC cap currently does not have any tests in the aux_clm test suite +- There are currently no tests ensuring that the nuopc and mct caps give + bit-for-bit answers, though the nuopc_cap_bfb testmod could be used to + support such a test + +Changes to tests or testing: none + +Code reviewed by: Bill Sacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- pass + izumi ------- pass + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- mosart: mosart1_0_33 -> mosart1_0_34 (supports nuopc cap) + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev071 +Originator(s): sacks (Bill Sacks) +Date: Fri Oct 11 07:03:40 MDT 2019 +One-line Summary: Split CanopyTemperature into separate pieces + +Purpose of changes +------------------ + +CanopyTemperature was doing a few unrelated things, none of which +actually had anything to do with calculating canopy temperature. At the +driver level, I have split CanopyTemperature into BiogeophysPreFluxCalcs +and CalculateSurfaceHumidity. BiogeophysPreFluxCalcs calls out to a +number of separate routines, some in that same module and some +elsewhere, including a new routine in FrictionVelocityMod. + +Also some minor related cleanup, including + +- Made FrictionVelocityMod object-oriented + +- A bit of rework of how qflx_evap_veg and qflx_tran_veg are set. This + changes answers for the (default inactive) QFLX_EVAP_VEG history field + (see also ESCOMP/ctsm#816). + +- Removed qsat conditionals that should never be invoked + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Fixes ESCOMP/ctsm#816 (QFLX_EVAP_VEG should be 0 over lakes) + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- pass + izumi ------- pass + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES, but only for the (default-inactive) field QFLX_EVAP_VEG + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + larger than roundoff, but only for the default-inactive field QFLX_EVAP_VEG + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev070 +Originator(s): sacks (Bill Sacks) +Date: Wed Oct 9 06:16:39 MDT 2019 +One-line Summary: Fix for writing 0-d variables with PIO2 + +Purpose of changes +------------------ + +Previously, there were problems when writing 0-d (scalar) variables with +PIO2 in DEBUG mode. This change fixes that issue. + +Jim Edwards put in place an initial fix; I put in place the final fix +based on changes Mariana Vertenstein made in MOSART. I have not tested +this with PIO2, but am hopeful that it fixes the PIO2 problem since the +similar MOSART changes fixed that problem. + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self; earlier version reviewed by Erik Kluzek and Mariana Vertenstein + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- pass + izumi ------- pass + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/CTSM/pull/810 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev069 +Originator(s): sacks (Bill Sacks) +Date: Mon Oct 7 10:22:22 MDT 2019 +One-line Summary: Misc. code cleanup and minor bug fixes + +Purpose of changes +------------------ + +Resolve a variety of "simple bfb" issues. Note that some of these result +in answer changes for select diagnostic fields. See specific notes below +for details, under "Issues fixed" and answer changes. + +The fix for ESCOMP/ctsm#27 changes answers for some diagnostic fields, +as noted below. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#27 (BTRAN should be spval over all special + landunits) + - Also fixed some related fields, as noted below, under answer changes + +- Resolves ESCOMP/ctsm#31 (some CLM history fields don't restart + properly) + - This was mostly resolved previously; here I just did some final + cleanup and fixing of NFIRE + +- Resolves ESCOMP/ctsm#48 (code for initializing some isotope carbon + state variables looks wrong) + - Removed the incorrect code, which was never being exercised + +- Resolves ESCOMP/ctsm#58 (Change SHR_ASSERT calls to avoid using + errMsg) + - Purpose was to speed up DEBUG runs on some machines/compilers + +- Resolves ESCOMP/ctsm#111 (Precision of constants in + SoilTemperature.F90 is not double) + - No answer changes, because 1 (single prec) = 1 (double prec) + +- Resolves ESCOMP/ctsm#334 (Introduce a new activelayer_type) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: potentially speeds up debug runs on some machines/compilers + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- ok + + ok means tests pass, some baseline comparisons fail as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES, but just for select diagnostic fields + + Summarize any changes to answers, i.e., + - what code configurations: ALL + - what platforms/compilers: ALL + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Greater than roundoff, but only in select diagnostic field - no impact on climate + + There were changes in the following diagnostic fields, which are + now averaged over only vegetated landunits (see ESCOMP/ctsm#27): + - BTRAN + - BTRANMN + - RSSHA + - RSSUN + - ROOTR (inactive by default) + - ROOTR_COLUMN (inactive by default) + - RRESIS (inactive by default) + + Changes are also possible in rare circumstances for the NFIRE + diagnostic field, in transient cases, although no differences were + observed for this field in the test suite (see ESCOMP/ctsm#31). + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev068 +Originator(s): sacks (Bill Sacks) +Date: Mon Sep 30 09:57:04 MDT 2019 +One-line Summary: Add water tracers to CombineSnowLayers, DivideSnowLayers, ZeroEmptySnowLayers + +Purpose of changes +------------------ + +Add water tracers to CombineSnowLayers, DivideSnowLayers and +ZeroEmptySnowLayers. This completes the tracerization of the core snow +code: most or all of the code in SnowHydrologyMod is now tracerized. + +In contrast to most routines that I have tracerized, the tracerization +of these routines is done by embedding loops over tracers inside +existing code structures, rather than splitting out separate routines +that operate on bulk or tracer quantities. This is because (1) it didn't +make sense to introduce explicit fluxes for the state updates done here, +so we didn't have the extra need of having separate routines for flux +calculations vs. state updates; (2) the state updates were embedded in +loops over levels and conditionals in a way that would have been awkward +and messy to try to separately update bulk-and-tracer quantities +(h2osoi_liq, h2osoi_ice, etc.) from bulk-only quantities (dz, etc.). + +Also, a bit of reordering of LakeHydrologyMod in order to keep the snow +code more together. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#778 (Implement water tracers for combining and + dividing snow layers) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: I don't think so + Based on the changes introduced, I expect *very* small increases in + runtime of the modified routines (which would show up in the + hydro_without_drainage timer), even for cases without water tracers, + but I wouldn't expect this to have a significant impact. From PFS + test, and specifically looking at the timing of + hydro_without_drainage in that test, I see a possible small increase + (a few percent) in the timing of that section, though the differences + are within typical machine variability, so don't seem necessarily + significant. + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- pass + izumi ------- pass + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev067 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Thu Sep 26 15:02:39 MDT 2019 +One-line Summary: Add config_archive.xml to CTSM cime_config -- no testing + +Purpose of changes +------------------ + +Add config_archive.xml to cime_config for CTSM. Update the CODE_OF_CONDUCT +to the August/2019 UCAR version. + +No testing done. + +Bugs fixed or introduced +------------------------ + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: None + +Code reviewed by: self + + +CTSM testing: doc (no standard testing done) + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS + + src unit-tests: + + cheyenne - PASS + + regular tests (aux_clm): None + +If the tag used for baseline comparisons was NOT the previous tag, note that here: previous + + +Answer changes +-------------- + +Changes answers relative to baseline: No! + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): None +(https://github.com/ESCOMP/ctsm/pull) + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev066 +Originator(s): sacks (Bill Sacks) +Date: Fri Sep 20 09:07:23 MDT 2019 +One-line Summary: Add water tracers to SnowCapping + +Purpose of changes +------------------ + +Update water tracer terms in SnowCapping. As I have done elsewhere, this +has involved splitting each piece of SnowCapping into its own subroutine, +which operates either on bulk, tracers, or bulk + tracers. + +This is supported by calls to ResetCheckedTracers prior to the call to +SnowCapping, since some intervening code is not yet tracerized. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#777 (Implement water tracers for SnowCapping) + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + Small increase in total runtime of PFS test, but the relevant timing + section, hydro_without_drainage, took slightly *less* time compared + with the last tag. + + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- pass + izumi ------- pass + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev065 +Originator(s): sacks (Bill Sacks) +Date: Sat Sep 14 12:52:42 MDT 2019 +One-line Summary: Add water tracers to SnowWater + +Purpose of changes +------------------ + +Update water tracer terms in SnowWater. As I have done elsewhere, this +has involved splitting each piece of SnowWater into its own subroutine, +which operates either on bulk, tracers, or bulk + tracers. + +This is supported by calls to ResetCheckedTracers prior to the call to +SnowWater, since some intervening code is not yet tracerized. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#776 (Implement water tracers for SnowWater) + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + izumi ------- ok + + ok means tests pass, baselines fail as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (roundoff) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + + Roundoff level: answer changes just arise because I have made + qflx_snow_percolation_col a true flux, with units of + per-unit-time; this involved dividing by dtime, and later + multiplying by dtime when it is applied to states. Previously, the + corresponding variable (qout / qin) was not per-unit-time. + + If bitwise differences were observed, how did you show they were no worse + than roundoff? + + I ran comparisons against a version off of master that had the + minimal changes to exhibit these roundoff-level changes. Diffs for + this are below. My branch is bit-for-bit with this version. + + diff --git a/src/biogeophys/SnowHydrologyMod.F90 b/src/biogeophys/SnowHydrologyMod.F90 + index cad47e28..0abcc49f 100644 + --- a/src/biogeophys/SnowHydrologyMod.F90 + +++ b/src/biogeophys/SnowHydrologyMod.F90 + @@ -1140,17 +1140,17 @@ subroutine SnowWater(bounds, & + c = filter_snowc(fc) + if (j >= snl(c)+1) then + + - h2osoi_liq(c,j) = h2osoi_liq(c,j) + qin(c) + + h2osoi_liq(c,j) = h2osoi_liq(c,j) + qin(c)*dtime + + - mss_bcphi(c,j) = mss_bcphi(c,j) + qin_bc_phi(c) + - mss_bcpho(c,j) = mss_bcpho(c,j) + qin_bc_pho(c) + - mss_ocphi(c,j) = mss_ocphi(c,j) + qin_oc_phi(c) + - mss_ocpho(c,j) = mss_ocpho(c,j) + qin_oc_pho(c) + + mss_bcphi(c,j) = mss_bcphi(c,j) + qin_bc_phi(c)*dtime + + mss_bcpho(c,j) = mss_bcpho(c,j) + qin_bc_pho(c)*dtime + + mss_ocphi(c,j) = mss_ocphi(c,j) + qin_oc_phi(c)*dtime + + mss_ocpho(c,j) = mss_ocpho(c,j) + qin_oc_pho(c)*dtime + + - mss_dst1(c,j) = mss_dst1(c,j) + qin_dst1(c) + - mss_dst2(c,j) = mss_dst2(c,j) + qin_dst2(c) + - mss_dst3(c,j) = mss_dst3(c,j) + qin_dst3(c) + - mss_dst4(c,j) = mss_dst4(c,j) + qin_dst4(c) + + mss_dst1(c,j) = mss_dst1(c,j) + qin_dst1(c)*dtime + + mss_dst2(c,j) = mss_dst2(c,j) + qin_dst2(c)*dtime + + mss_dst3(c,j) = mss_dst3(c,j) + qin_dst3(c)*dtime + + mss_dst4(c,j) = mss_dst4(c,j) + qin_dst4(c)*dtime + + if (j <= -1) then + ! No runoff over snow surface, just ponding on surface + @@ -1167,8 +1167,8 @@ subroutine SnowWater(bounds, & + qout(c) = max(0._r8,(vol_liq(c,j) & + - ssi*eff_porosity(c,j))*dz(c,j)*frac_sno_eff(c)) + end if + - qout(c) = qout(c)*1000._r8 + - h2osoi_liq(c,j) = h2osoi_liq(c,j) - qout(c) + + qout(c) = (qout(c)*1000._r8)/dtime + + h2osoi_liq(c,j) = h2osoi_liq(c,j) - qout(c)*dtime + qin(c) = qout(c) + + ! mass of ice+water: in extremely rare circumstances, this can + @@ -1187,7 +1187,7 @@ subroutine SnowWater(bounds, & + if (qout_bc_phi(c) > mss_bcphi(c,j)) then + qout_bc_phi(c) = mss_bcphi(c,j) + endif + - mss_bcphi(c,j) = mss_bcphi(c,j) - qout_bc_phi(c) + + mss_bcphi(c,j) = mss_bcphi(c,j) - qout_bc_phi(c)*dtime + qin_bc_phi(c) = qout_bc_phi(c) + + ! BCPHO: + @@ -1196,7 +1196,7 @@ subroutine SnowWater(bounds, & + if (qout_bc_pho(c) > mss_bcpho(c,j)) then + qout_bc_pho(c) = mss_bcpho(c,j) + endif + - mss_bcpho(c,j) = mss_bcpho(c,j) - qout_bc_pho(c) + + mss_bcpho(c,j) = mss_bcpho(c,j) - qout_bc_pho(c)*dtime + qin_bc_pho(c) = qout_bc_pho(c) + + ! OCPHI: + @@ -1205,7 +1205,7 @@ subroutine SnowWater(bounds, & + if (qout_oc_phi(c) > mss_ocphi(c,j)) then + qout_oc_phi(c) = mss_ocphi(c,j) + endif + - mss_ocphi(c,j) = mss_ocphi(c,j) - qout_oc_phi(c) + + mss_ocphi(c,j) = mss_ocphi(c,j) - qout_oc_phi(c)*dtime + qin_oc_phi(c) = qout_oc_phi(c) + + ! OCPHO: + @@ -1214,7 +1214,7 @@ subroutine SnowWater(bounds, & + if (qout_oc_pho(c) > mss_ocpho(c,j)) then + qout_oc_pho(c) = mss_ocpho(c,j) + endif + - mss_ocpho(c,j) = mss_ocpho(c,j) - qout_oc_pho(c) + + mss_ocpho(c,j) = mss_ocpho(c,j) - qout_oc_pho(c)*dtime + qin_oc_pho(c) = qout_oc_pho(c) + + ! DUST 1: + @@ -1223,7 +1223,7 @@ subroutine SnowWater(bounds, & + if (qout_dst1(c) > mss_dst1(c,j)) then + qout_dst1(c) = mss_dst1(c,j) + endif + - mss_dst1(c,j) = mss_dst1(c,j) - qout_dst1(c) + + mss_dst1(c,j) = mss_dst1(c,j) - qout_dst1(c)*dtime + qin_dst1(c) = qout_dst1(c) + + ! DUST 2: + @@ -1232,7 +1232,7 @@ subroutine SnowWater(bounds, & + if (qout_dst2(c) > mss_dst2(c,j)) then + qout_dst2(c) = mss_dst2(c,j) + endif + - mss_dst2(c,j) = mss_dst2(c,j) - qout_dst2(c) + + mss_dst2(c,j) = mss_dst2(c,j) - qout_dst2(c)*dtime + qin_dst2(c) = qout_dst2(c) + + ! DUST 3: + @@ -1241,7 +1241,7 @@ subroutine SnowWater(bounds, & + if (qout_dst3(c) > mss_dst3(c,j)) then + qout_dst3(c) = mss_dst3(c,j) + endif + - mss_dst3(c,j) = mss_dst3(c,j) - qout_dst3(c) + + mss_dst3(c,j) = mss_dst3(c,j) - qout_dst3(c)*dtime + qin_dst3(c) = qout_dst3(c) + + ! DUST 4: + @@ -1250,7 +1250,7 @@ subroutine SnowWater(bounds, & + if (qout_dst4(c) > mss_dst4(c,j)) then + qout_dst4(c) = mss_dst4(c,j) + endif + - mss_dst4(c,j) = mss_dst4(c,j) - qout_dst4(c) + + mss_dst4(c,j) = mss_dst4(c,j) - qout_dst4(c)*dtime + qin_dst4(c) = qout_dst4(c) + + end if + @@ -1280,9 +1280,9 @@ subroutine SnowWater(bounds, & + do fc = 1, num_snowc + c = filter_snowc(fc) + ! Qout from snow bottom + - qflx_snow_drain(c) = qflx_snow_drain(c) + (qout(c) / dtime) + + qflx_snow_drain(c) = qflx_snow_drain(c) + qout(c) + + - qflx_rain_plus_snomelt(c) = (qout(c) / dtime) & + + qflx_rain_plus_snomelt(c) = qout(c) & + + (1.0_r8 - frac_sno_eff(c)) * qflx_liq_grnd(c) + int_snow(c) = int_snow(c) + frac_sno_eff(c) & + * (qflx_dew_snow(c) + qflx_dew_grnd(c) + qflx_liq_grnd(c)) * dtime + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev064 +Originator(s): slevis (Samuel Levis,SLevis Consulting LLC,303-665-1310) +Date: Mon Sep 9 13:14:51 MDT 2019 +One-line Summary: User defined top-two snow layers + +Purpose of changes +------------------ + + Instead of hardcoding, we now set: + + dzmin(1) = snow_dzmin_1 + dzmax_l(1) = snow_dzmax_l_1 + dzmax_u(1) = snow_dzmax_u_1 + dzmin(2) = snow_dzmin_2 + dzmax_l(2) = snow_dzmax_l_2 + dzmax_u(2) = snow_dzmax_u_2 + + where the right-hand-side variables get namelist-defined values and the + model calculates dzmin and dzmax_* for the remaining snow layers using + recursive formulas. The calculation is intended to match the previously + hardcoded values, except for the bottom snow layer when nlevsno < 12. + The bottom layer now always gets dzmax_* = huge(1._r8). The formulas + appear in a document titled "A firn model for CLM" that is linked to + #729. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #729 + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + New namelist parameters for specifying the top-two snow layers: + snow_dzmin_1, snow_dzmax_l_1, snow_dzmax_u_1 + snow_dzmin_2, snow_dzmax_l_2, snow_dzmax_u_2 + +Changes made to namelist defaults (e.g., changed parameter values): + Introduced default values for the new parameters so as to maintain + same answers to within roundoff + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: @billsacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - + + tools-tests (test/tools): + + cheyenne - + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - + + regular tests (aux_clm): + + cheyenne ---- OK + izumi ------- OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (roundoff) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change: roundoff + + If bitwise differences were observed, how did you show they were no worse + than roundoff? + Introduced temporary code to overwrite dzmin(j), dzmax_l(j), and + dzmax_u(j) with their original values when different by less than + 1e-13 from their original values for all but the bottom snow layer. + The bottom layer was left as dzmax_l = dzmax_u(j) = huge(1._8), i.e. + the new value. The test resulted in bit-for-bit same answers. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/792 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev063 +Originator(s): erik (Erik Kluzek) +Date: Thu Sep 5 21:28:02 MDT 2019 +One-line Summary: Two answer changing fixes (fire, DWT_SLASH) and fix for urban streams for Clm45 + +Purpose of changes +------------------ + +Fire bug fix and DWT_SLASH change and fix urban stream years for clm4_5. +The latitude used in an expression for Bgc-Fire model Li2016 (used in Clm50) +had latitude in degrees rather than in radians as it should have been. The +term is used for ignition and the cosine was being taken in degrees rather +than radians, hence the spatial pattern for ignition with latitude was incorrect. + +The history field DWT_SLASH_CFLUX was being calculated on the column, but +really should have been a patch level variable. In the same way other fields +were handled we made DWT_SLASH_CFLUX a grid-cell variable, and added +DWT_SLASH_CFLUX_PATCH on the patch level that could be added to output. The same +is true of the C13_ and C14_ versions of it. + +Clm45 was setting urbantv to year 2000, rather than 1850 or historical as it should +have. The urbantv file for Clm45 doesn't actually change, so this doesn't actually +make a difference. But, it does make the namelist look wrong. + +Note, that SP cases, Vic cases and Fates cases do NOT change answers. Or if fire is +off, or certain single-point cases. Some cold-start cases don't seem to be sensitive +to it either. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #175, #787, #780 + fixes #175 urban stream years for clm4_5 + fixes #787 DWT_SLASH field + fixes #780 Bug in CN Fire Li 2016 which used latitude in degrees rather than radians + +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_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): Defaults for urbantv for clm4_5 + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: None + +Code reviewed by: self, @olywon + + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (62 compare fail due to namelist changes) + + regular tests (aux_clm): + + cheyenne ---- OK + izumi ------- OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: previous + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes! (important clm5_0-BGC) + + Summarize any changes to answers, i.e., + - what code configurations: Clm50Bgc and some Clm45Bgc cases + - what platforms/compilers: All + - nature of change: similar climate (but fire ignition pattern changes by latitude) + DWT_SLASH_* history fields change because moved to gridcell quantity (so change is relatively minor) + + If this tag changes climate describe the run(s) done to evaluate the new + climate (put details of the simulations in the experiment database) + - casename: oleson/clm50_cesm20R_2deg_GSWP3V1_issue780_hist (for the fire change) + + URL for LMWG diagnostics output used to validate new climate: +http://webext.cgd.ucar.edu/I20TR/clm50_cesm20R_2deg_GSWP3V1_issue780_hist/lnd/clm50_cesm20R_2deg_GSWP3V1_issue780_hist.1995_2014-clm50_cesm20R_2deg_GSWP3V1_hist.1995_2014/setsIndex.html + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): #802 +(https://github.com/ESCOMP/ctsm/pull) + #802 -- Three answer changing fixes (fire, DWT_SLASH, urban streams for clm4_5) + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev062 +Originator(s): sacks (Bill Sacks) +Date: Tue Sep 3 16:04:28 MDT 2019 +One-line Summary: Move hobart tests to izumi + +Purpose of changes +------------------ + +Move all hobart testing to izumi. + + +Bugs fixed or introduced +------------------------ + +Known bugs introduced in this tag (include github issue ID): +- Recurrence of ESCOMP/ctsm#174 (ne30 case fails on hobart_nag due to floating overflow) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- Testing should now be run on izumi, not hobart + +Changes to tests or testing: +- All hobart tests moved to izumi + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- not run + izumi ------- pass + + Also ran prealpha and prebeta tests that I moved from hobart to izumi. These passed except: + - ERP_D_Ld5.ne30_g16.I1850Clm50BgcCrop.izumi_nag.clm-default (#174) + - ERP_Ld5.f19_g17.I2000Clm50SpRtmFl.izumi_pgi.clm-default + - SMS_D_Ld1.f19_g17.I1850Clm45Cn.izumi_pgi.clm-default + + The last two failed with errors like: + + i011.unified.ucar.edu.44619hfi_userinit: mmap of status page (dabbad0008040000) failed: Operation not permitted + + I wonder if the issue is that multi-node pgi cases don't work on izumi? + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: cime5.8.3_chint17-04 -> cime5.8.3_chint17-05 + Minor change on izumi to allow using run_sys_tests + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev061 +Originator(s): erik (Erik Kluzek) +Date: Sun Sep 1 22:37:07 MDT 2019 +One-line Summary: Simple b4b fixes: new params file, remove override_nsrest/anoxia_wtsat, DV deprecated + +Purpose of changes +------------------ + +New clm5 paramsfile that has the bad date of 631 changed to 701. Along with some simple bit for +bit changes. Removing some problematic options. Making Dynamic Vegetation a deprecated option +that requires you to use -ignore_warnings with it. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #463 #79 #97 #98 #104 #122 #173 #794 #795 #796 + + Fixes #463 bad date on params file that didn't allow using ESMF library with Crop + Fixes #79 correct documentation of qflx_evap_tot + Fixes #97 remove override_nsrest + Fixes #98 add warning when using single instance of a startup file for multi-instance cases + Fixes #104 use get_step_size_real when putting into a real variable + Fixes #122 decomp pool arrays should not start at 0 but 1 + Fixes #173 remove psi_soil_ref as not used + Fixes #794 remove anoxia_wtsat + Fixes #795 Correct documentation of -light_res + Fixes #796 Deprecate Dynamic Vegetation + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): Remove namelist items + Remove namelist items: anoxia_wtsat, override_nsrest + Turning dynamic Vegetation on, now displays a warning, and requires using -ignore_warnings in CLM_BLDNML_OPTS + +Changes made to namelist defaults (e.g., changed parameter values): New paramdata files + +Changes to the datasets (e.g., parameter, surface or initial files): + clm5 paramdata file has correct date for crop of 701 (rather than incorrect 631) + clm5 and clm4_5 paramdata file removed an unused variable + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: DV tests removed or changed + +Code reviewed by: self + +CTSM testing: regular + + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (compare shows changes becausse of paramdata files) + + regular tests (aux_clm): + + cheyenne ---- OK + hobart ------ OK + +An additional fail is ERP_P36x2_D_Ld5.f10_f10_musgs.I2000Clm50Cn.cheyenne_gnu.clm-default, because +of #798. Because it's an issue with cime, I'm not marking it as an expected error. + +If the tag used for baseline comparisons was NOT the previous tag, note that here: previous + + +Answer changes +-------------- + +Changes answers relative to baseline: No bit-for-bit + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): #797 +(https://github.com/ESCOMP/ctsm/pull) + + #797 -- Simple b4b fixes: new params file, remove override_nsrest/anoxia_wtsat, DV deprecated + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev060 +Originator(s): sacks (Bill Sacks) +Date: Thu Aug 29 11:18:20 MDT 2019 +One-line Summary: In SnowWater, truncate small h2osoi residuals + +Purpose of changes +------------------ + +Previously, in the handling of sublimation and evaporation from the snow +pack, if these fluxes led to negative h2osoi_ice or h2osoi_liq, these +negative values would be passed down the snow pack until they found a +layer with a large enough positive state to absorb them. This logic was +going to be a challenge for adding water tracers. + +I have done some tests to verify that these negative values never exceed +roundoff-level in either an absolute or relative sense (with tolerance +of 1.e-13). Specifically, I ran the full aux_clm test suite with the +diffs below and verified that the endrun calls were never triggered. + +So here, I simplify this logic: After truncating any near-zero states to +exactly zero, I check to confirm that the states are never negative. I +then removed the code that passed these negative values down the snow +pack: if they are only roundoff-level negative, then it seems safe to +just throw them away rather than trying to handle them. + +Here were the diffs used to verify that the negative values are never +greater than roundoff-level; these endrun calls were never triggered in +a run of the full aux_clm test suite: + + diff --git a/src/biogeophys/SnowHydrologyMod.F90 b/src/biogeophys/SnowHydrologyMod.F90 + index 3dd555cc..07776123 100644 + --- a/src/biogeophys/SnowHydrologyMod.F90 + +++ b/src/biogeophys/SnowHydrologyMod.F90 + @@ -970,6 +970,8 @@ subroutine SnowWater(bounds, & + real(r8) :: vol_ice(bounds%begc:bounds%endc,-nlevsno+1:0) ! partial volume of ice lens in layer + real(r8) :: eff_porosity(bounds%begc:bounds%endc,-nlevsno+1:0) ! effective porosity = porosity - vol_ice + real(r8) :: mss_liqice(bounds%begc:bounds%endc,-nlevsno+1:0) ! mass of liquid+ice in a layer + + real(r8) :: h2osoi_ice_orig + + real(r8) :: h2osoi_liq_orig + !----------------------------------------------------------------------- + + associate( & + @@ -1017,10 +1019,23 @@ subroutine SnowWater(bounds, & + c = filter_snowc(fc) + l=col%landunit(c) + + + h2osoi_ice_orig = h2osoi_ice(c,snl(c)+1) + + h2osoi_liq_orig = h2osoi_liq(c,snl(c)+1) + + + wgdif = h2osoi_ice(c,snl(c)+1) & + + frac_sno_eff(c) * (qflx_dew_snow(c) - qflx_sub_snow(c)) * dtime + h2osoi_ice(c,snl(c)+1) = wgdif + if (wgdif < 0._r8) then + + if (wgdif < -1.e-13_r8) then + + write(iulog,*) 'WJS: big abs wgdif ice: ', c, wgdif, h2osoi_ice_orig + + call endrun('WJS: big abs wgdif ice') + + end if + + if (h2osoi_ice_orig > 0._r8) then + + if (abs(wgdif / h2osoi_ice_orig) > 1.e-13_r8) then + + write(iulog,*) 'WJS: big rel wgdif ice: ', c, wgdif, h2osoi_ice_orig + + call endrun('WJS: big rel wgdif ice') + + end if + + end if + h2osoi_ice(c,snl(c)+1) = 0._r8 + h2osoi_liq(c,snl(c)+1) = h2osoi_liq(c,snl(c)+1) + wgdif + end if + @@ -1030,6 +1045,16 @@ subroutine SnowWater(bounds, & + + ! if negative, reduce deeper layer's liquid water content sequentially + if(h2osoi_liq(c,snl(c)+1) < 0._r8) then + + if (h2osoi_liq(c,snl(c)+1) < -1.e-13_r8) then + + write(iulog,*) 'WJS: big abs wgdif liq: ', c, h2osoi_liq(c,snl(c)+1), h2osoi_liq_orig + + call endrun('WJS: big abs wgdif liq') + + end if + + if (h2osoi_liq_orig > 0._r8) then + + if (abs(h2osoi_liq(c,snl(c)+1) / h2osoi_liq_orig) > 1.e-13_r8) then + + write(iulog,*) 'WJS: big rel wgdif liq: ', c, h2osoi_liq(c,snl(c)+1), h2osoi_liq_orig + + call endrun('WJS: big rel wgdif liq') + + end if + + end if + do j = snl(c)+1, 1 + wgdif=h2osoi_liq(c,j) + if (wgdif >= 0._r8) exit + +Bugs fixed or introduced +------------------------ + +None + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +- It's possible that the extra error checks I have added (to ensure we + don't have greater-than-roundoff-level negative residuals) will be + triggered in rare circumstances in a production run, even though they + were never triggered in the test suite. + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none +Although there was a very small increase in total lnd run time, the +timing of hydro_without_drainage actually decreased slightly in the PFS +test relative to the last tag. + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- It's possible that the extra error checks I have added (to ensure we + don't have greater-than-roundoff-level negative residuals) will be + triggered in rare circumstances in a production run, even though they + were never triggered in the test suite. + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests passed, some answer changes as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (roundoff) + + Summarize any changes to answers, i.e., + - what code configurations: potentially all, though only show up in + a few tests + - what platforms/compilers: potentially all, though only show up in + a few tests + - nature of change (roundoff; larger than roundoff/same climate; new climate): roundoff + + If bitwise differences were observed, how did you show they were no worse + than roundoff? + + First, I did some preliminary analyses as documented above, to + ensure that any negative residuals were no greater than roundoff. + + Second, note that the use of truncate_small_values can only + introduce roundoff-level changes (by truncating values that are + roundoff-level different from zero to exactly zero). + + Third, only a few tests showed answer changes, and these were only + in limited fields, and were fairly small RMS differences: + + ERP_Ly3_P72x2.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-cropMonthOutput + ERS_Ly3.f10_f10_musgs.I1850Clm50BgcCropCmip6.cheyenne_intel.clm-basic + ERS_Ly3_P72x2.f10_f10_musgs.IHistClm50BgcCropG.cheyenne_intel.clm-cropMonthOutput + ERS_Ly5_P144x1.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-cropMonthOutput + + I actually expected more tests to show differences, but most tests + were bit-for-bit. I'm guessing this is because the code added a + roundoff-level term to a larger term, and this ended up not + changing the larger term. + + Finally, as an extra precaution, I ran the test suite twice, on + two different implementations of the truncation: the final one + (which uses truncate_small_values), and one in which I did the + truncation using custom, inline code (commit 0d21ccb5). These two + were bit-for-bit with each other, giving me more confidence that I + didn't make a mistake with either implementation. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev059 +Originator(s): sacks (Bill Sacks) +Date: Sat Aug 24 15:14:06 MDT 2019 +One-line Summary: Continue adding water tracers to LakeHydrology + +Purpose of changes +------------------ + +Finish implementing water tracers for initial snow-related code in +LakeHydrology. This involved refactoring code in order to reuse existing +code in SnowHydrology rather than having near-duplicates of that code in +LakeHydrology. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#775 (Implement water tracers for initial + snow-related code in LakeHydrology) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none +Many tests took longer, including the PFS test. However, by looking at +more detailed timing numbers in the PFS test, the main increases in time +were in initialization and atm run: lnd run only showed a very small +increase. This suggests that glade slowness was probably primarily +responsible for the increased time. + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: Increased allowed wallclock time for a few tests +These tests took longer, likely due to machine variability. Increasing +their wallclock time to prevent them from timing out. + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- pass + hobart ------ pass + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev058 +Originator(s): slevis (Samuel Levis,SLevis Consulting LLC,303-665-1310) +Date: Thu Aug 22 10:02:49 MDT 2019 +One-line Summary: Soil texture interpolation bug-fix + +Purpose of changes +------------------ + + When assigning soil texture values from dataset soil levels to model + soil levels, we should be comparing zsoi (NOT zisoi) in the model with + zisoi on the file, i.e. we should be asking whether the node + center (NOT interface) of a given model level falls between two + interface depths on the file. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #772 + + +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_0 + +[X] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: + Unexpected failure of test + SMS_D_Ld10.f10_f10_musgs.I2000Clm50BgcCropGs.hobart_nag.clm-tracer_consistency + Bill Sacks did some follow-up testing and concluded that this may be a + compiler-specific issue, so he changed the test from "nag" to "intel" + and generated the new test's corresponding baseline + +Code reviewed by: @billsacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - + + tools-tests (test/tools): + + cheyenne - + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - + + regular tests (aux_clm): + + cheyenne ---- OK + hobart ------ OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes (clm5) small + + Summarize any changes to answers, i.e., + - what code configurations: not clm45 (clm5_0 and ctsm5_0-nwp) + - what platforms/compilers: all + - nature of change: larger than roundoff/same climate + based on the assumption that shifting soil texture assignments by + one level in model soil levels below the top-most level should not + generate climate-changing differences. + +Detailed list of changes +------------------------ + 1. Changed zisoi to zsoi as described in the Purpose section above. + This caused the larger than roundoff changes. Before the fix some + model soil levels were getting assigned soil textures from a deeper + soil level in the dataset than they should. + 2. In the same section of code I completed the if-block to address all + zsoi vs. zisoifl comparisons. This ensures explicit assignment of + soil textures for all model soil levels and avoids leaving some + model soil levels with the texture assignment of the previous model + soil level. + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull/788) + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev057 +Originator(s): sacks (Bill Sacks) +Date: Tue Aug 20 13:17:39 MDT 2019 +One-line Summary: Fix frac_sno bugs + +Purpose of changes +------------------ + +Two bug fixes related to frac_sno, and a third change involving +replacing a frac_sno calculation with a simpler equation that is +algebraically equivalent: + +(1) Fix lake frac_sno always being 0 + (https://github.com/ESCOMP/ctsm/issues/783). This fixes the albedo + calculation (and possibly others) over snow-covered lake surfaces. + +(2) Fix threshold for explicit snow pack initiation to use frac_sno_eff, + not frac_sno (https://github.com/ESCOMP/ctsm/issues/785). For + standard runs (which have use_subgrid_fluxes = .true.), this just + changes answers for urban columns. This also changes answers more + widely for runs with use_subgrid_fluxes = .false. + +(3) Rewrite Swenson & Lawrence 2012 frac_sno equation to be more + straightforward and less sensitive to roundoff errors + (https://github.com/ESCOMP/ctsm/issues/784) + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#783 (frac_sno is always 0 for lake points) +- Resolves ESCOMP/ctsm#785 (Threshold for explicit snow pack initiation + should use frac_sno_eff, not frac_sno) +- Resolves ESCOMP/ctsm#784 (Suggested algebraic rework of frac_sno + calculation) + +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_0 + +[X] ctsm5_0-nwp + +[X] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, answers change as expected + + Ran most testing on 95dad328 (before 8f1263a7, which removes a + temporary endrun error check). Just reran + SMS_Ld5_D_P48x1.f10_f10_musgs.IHistClm50Bgc.hobart_nag.clm-decStart + on the final version. + + There was a memleak for this test: + + FAIL SMS_D_Ld10.f10_f10_musgs.I2000Clm50BgcCropGs.hobart_nag.clm-tracer_consistency MEMLEAK memleak detected, memory went from 1250.830000 to 1518.500000 in 8 days + + I have had memleak issues for this test before + (https://github.com/ESCOMP/ctsm/issues/763), which I have chalked up + to a compiler-specific issue. I have simply increased the tolerance + for memleaks for this test moving forward. + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (small) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff; expected to be same climate in general, + because the only impacts are on urban and lake points, which + represent a small fraction of most grid cells. However, this needs + further investigation. + + See above (under "Purpose of changes") for a description of the + different answer changes in this tag. + + If bitwise differences were observed, how did you show they were no worse + than roundoff? + + I verified that change (3) is no greater than roundoff by + temporarily putting in an endrun if the new frac_sno differs from + the old by more than 1e-13; this was not triggered for any test in + the aux_clm test suite. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev056 +Originator(s): sacks (Bill Sacks) +Date: Fri Aug 16 11:44:43 MDT 2019 +One-line Summary: Start adding water tracers to LakeHydrology, and related refactoring + +Purpose of changes +------------------ + +Start adding water tracers to LakeHydrology, beginning with some initial +things done for snow. + +This also includes some significant refactoring to allow LakeHydrology +to reuse some of the same snow code used for non-lake columns. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Partially addresses ESCOMP/ctsm#775 (Implement water tracers for + initial snow-related code in LakeHydrology) + +Known bugs found since the previous tag (include github issue ID): +The following will be fixed in an upcoming tag: +- ESCOMP/ctsm#783 (frac_sno is always 0 for lake points) +- ESCOMP/ctsm#784 (Suggested algebraic rework of frac_sno calculation) +- ESCOMP/ctsm#785 (Threshold for explicit snow pack initiation should + use frac_sno_eff, not frac_sno) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, answers change as expected + + Note: Did most testing on 054dc95b (before the small change in + 7e4e52a9); just ran + LWISO_Ld10.f10_f10_musgs.I2000Clm50BgcCropGs.cheyenne_gnu.clm-coldStart + on the final commit + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (small) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): roundoff + + There are two answer-changes here: + + (1) Roundoff-level changes due to changing some order of operations + for the updating of snow_depth and dz for lakes: The previous + code effectively used (qflx_snow_grnd(c)/bifall(c))*dtime, + whereas the new code uses (qflx_snow_grnd(c)*dtime)/bifall(c); + similarly, the dz update differs. + + (2) A change in FSNO_EFF for lakes: previously, this was set to 0 + when there was no snow. Now this is set consistently with other + landunits, for which it is 1 even if there is no snow. Note that + this only affects the FSNO_EFF diagnostic field, and nothing + else. + + If bitwise differences were observed, how did you show they were no worse + than roundoff? + + I confirmed that the order-of-operations change is the only + answer-changing part of this tag by comparing against a one-off + from master with the following diffs; this comparison was + bit-for-bit except for changes in the FSNO_EFF diagnostic field: + + diff --git a/src/biogeophys/LakeHydrologyMod.F90 b/src/biogeophys/LakeHydrologyMod.F90 + index 91ddfc79..9711dad7 100644 + --- a/src/biogeophys/LakeHydrologyMod.F90 + +++ b/src/biogeophys/LakeHydrologyMod.F90 + @@ -126,6 +126,8 @@ subroutine LakeHydrology(bounds, & + real(r8) :: heatsum(bounds%begc:bounds%endc) ! used in case above [J/m^2] + real(r8) :: snowmass ! liquid+ice snow mass in a layer [kg/m2] + real(r8) :: snowcap_scl_fct ! temporary factor used to correct for snow capping + + real(r8) :: temp_snow_depth + + real(r8) :: newsnow + real(r8), parameter :: snow_bd = 250._r8 ! assumed snow bulk density (for lakes w/out resolved snow layers) [kg/m^3] + ! Should only be used for frost below. + !----------------------------------------------------------------------- + @@ -246,8 +248,10 @@ subroutine LakeHydrology(bounds, & + ! U.S.Department of Agriculture Forest Service, Project F, + ! Progress Rep. 1, Alta Avalanche Study Center:Snow Layer Densification. + + - dz_snowf = qflx_snow_grnd(c)/bifall(c) + - snow_depth(c) = snow_depth(c) + dz_snowf*dtime + + temp_snow_depth = snow_depth(c) + + newsnow = qflx_snow_grnd(c)*dtime + + snow_depth(c) = snow_depth(c) + newsnow/bifall(c) + + dz_snowf = (snow_depth(c) - temp_snow_depth)/dtime + if (snl(c) == 0) then + h2osno_no_layers(c) = h2osno_no_layers(c) + qflx_snow_grnd(c)*dtime ! snow water equivalent (mm) + else + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev055 +Originator(s): sacks (Bill Sacks) +Date: Tue Aug 6 14:06:50 MDT 2019 +One-line Summary: Modularize snow cover fraction method + +Purpose of changes +------------------ + +This tag moves the calculation of frac_sno - and the related updates of +snow_depth - into a new set of classes, with one class for each +parameterization (Niu & Yang 2007 and Swenson & Lawrence 2012). + +Previously, the code always calculated frac_sno the new way, but then +possibly overwrote it if using the older Niu & Yang method. The new code +cleans this up, only doing the calculations that are needed for each +method. + +In addition, other code that is specific to one of the two methods is +now moved to a home that makes this dependence on method explicit. This +includes the addition of newsnow to int_snow: previously, int_snow was +always updated using an equation specific to the newer CLM5 +parameterization of frac_sno, which was not appropriate if using the Niu +& Yang parameterization; this doesn't make a difference currently, since +int_snow is only referenced if using the Swenson & Lawrence +parameterization, but this clears up some confusion. Also, time-constant +parameters read from namelist or the netCDF parameter file now reside in +the appropriate class rather than being more global. + +This tag also renames two namelist options to increase clarity: +- subgridflag is renamed to use_subgrid_fluxes, and is now a logical +- oldfflag is renamed to snow_cover_fraction_method, and is now a string + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#502 (oldfflag can NOT be used with + subgridflag==1, and rename subgridflag) +- Resolves ESCOMP/ctsm#503 (Clean up CanopyHydrology) + - This tag does the last piece of cleanup called for in that issue +- Resolves ESCOMP/ctsm#571 (Add a system test: turning on water isotopes + shouldn't change answers) + - This is unrelated to the other changes in this tag + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +This tag renames two namelist options to increase clarity: +- subgridflag is renamed to use_subgrid_fluxes, and is now a logical +- oldfflag is renamed to snow_cover_fraction_method, and is now a string + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: +- Added a LWISO test, which confirms that turning on water isotopes + doesn't change answers for bulk +- Added a test with the newer snow cover fraction method but + use_subgrid_fluxes false (testmod no_subgrid_fluxes) + +Code reviewed by: Sean Swenson, Erik Kluzek + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - ok + + Tests pass; baseline comparisons not done (baseline comparisons + expected to differ) + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- pass + hobart ------ pass + + Additional tests: Compared both of these against ctsm1.0.dev052 (which + should be bit-for-bit with ctsm1.0.dev054): Both were bit-for-bit: + + ERP_D_P36x2_Ld3.f10_f10_musgs.I2000Clm45BgcCrop.cheyenne_gnu.clm-no_subgrid_fluxes + This is a new test, so did not have baselines; I created baselines + from ctsm1.0.dev052 and compared against those + SMS_Ly3.f10_f10_musgs.I2000Clm45BgcCrop.cheyenne_intel.clm-oldhyd_monthly + This was a temporary test for the sake of running a longer test with + the oldhyd testmod. This testmod was created as a one-off by + changing the current oldhyd testmod to inherit from monthly rather + than default. I ran baselines like this from ctsm1.0.dev052 then ran + this test from this branch and compared against those baselines. + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/769 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev054 +Originator(s): sacks (Bill Sacks) +Date: Fri Aug 2 07:57:51 MDT 2019 +One-line Summary: Fix interpolation of surfdat soil layers so we can use interpolation for 10SL case + +Purpose of changes +------------------ + +Previously, on master, there was special-purpose code for the 10SL case +that avoided doing interpolation from the surface dataset to the soil +variables in the model. It would be cleaner - especially now that we +allow user-defined soil layer structures - if we could use the general +interpolation code always, rather than sometimes having special-purpose +code that avoids doing the interpolation. + +This tag accomplishes that generality. In order to preserve answers for +clm45 cases, I needed to make three changes: + +1. The constant 0.025 needed an _r8 appended to it; otherwise, zisoifl + could differ by roundoff from zisoi. + +2. I changed which level is used when zisoi(lev) is exactly equal to + zisoifl(j) for some j: I changed the conditional in the following: + + if (zisoi(lev) >= zisoifl(j) .AND. zisoi(lev) < zisoifl(j+1)) then + clay = clay3d(g,j+1) + sand = sand3d(g,j+1) + om_frac = organic3d(g,j+1)/organic_max + endif + + to: + + if (zisoi(lev) > zisoifl(j) .AND. zisoi(lev) <= zisoifl(j+1)) then + + Previously, when the zisoi values in the model exactly lined up with + the zisoi values in the file, we would set clay in model level j + equal to the value from level j+1 from the surface dataset (and + similarly for sand and om_frac); in the new code, we use level j from + the surface dataset for model level j in this case. + +3. I changed the way zisoifl is calculated for the lowest layer, so that + it matches zisoi(nlevsoi) when running with 10SL_3.5m. Previously, we + had: + + zisoi(10) = 0.38018819123227207690E+01 + zisoifl(10) = 0.34330930154359391437E+01 + + This tag changes zisoifl(10) to match zisoi(10). + +Bugs fixed or introduced +------------------------ + +Known bugs found since the previous tag (include github issue ID): +- #772: Interpolation of clay, sand and om_frac can use the wrong layer + (points out more fundamental issues with this interpolation of layers + from the surface dataset) + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Sam Levis + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- pass + hobart ------ pass + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO (but see note below) + + In principle, the changes in this tag could change answers for some + soil layer structures, but there were no answer changes for any of + the cases covered by the test suite. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/771 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev053 +Originator(s): slevis (Samuel Levis,SLevis Consulting LLC,303-665-1310) +Date: Thu Aug 1 16:56:09 MDT 2019 +One-line Summary: Soil layer definition clean-up and user-defined option + +Purpose of changes +------------------ + + Code clean-up clarifes that there are two types of soil layer + definition: the node-based and the thickness-based. + + User-defined option allows user to specify a soil layer profile in the + form of a dzsoi vector (values in meters) in the thickness-based + approach. + + Default nlevsoi for NWP configurations had to change from 5 to 4 for + consistency with the new error check described in known bugs below. + + Other code clean-up removes a couple of sections of repeating code. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #279 #728 + +Known bugs found since the previous tag (include github issue ID): + #759 (this PR) bug causes model to abort when nlevsoi = nlevgrnd; + bug has been corrected with an error check + + +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.] + +[ ] clm5_0 + +[X] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): + if neither soil_layerstruct_predefined nor soil_layerstruct_userdefined + get specified in the namelist, then the model sets + soil_layerstruct_predefined to the old default setting for + soil_layerstruct (clm5: 20SL_8.5m, clm4.5: 10SL_3.5m) + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + renamed soil_layerstruct to soil_layerstruct_predefined and added + soil_layerstruct_userdefined + +Changes made to namelist defaults (e.g., changed parameter values): + Default nlevsoi for NWP configurations had to change from 5 to 4 for + consistency with the new error check described in known bugs below + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +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 + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: + 1) New test... + ERP_P36x2_D_Ld5.f10_f10_musgs.I2000Ctsm50NwpBgcCropGswpGs.cheyenne_intel.clm-default + replaces existing test + ERS_D_Ld10.f10_f10_musgs.I2000Clm50BgcCropGs.cheyenne_intel.clm-rm_indiv_lunits_and_collapse_to_dom + to check the correction described in known bugs above; the new test + together with existing unit tests cover what the old test was testing + + 2) New test and new test type... + SOILSTRUCTUD_Ld5.f10_f10_musgs.I2000Clm50BgcCropGs.cheyenne_intel.clm-default + ensures that soil_layerstruct_userdefined gives bfb same answers as + soil_layerstruct_predefined = '4SL_2m' when set with the same dzsoi + values. The new test type was put together by: + - listing the test in (1) testlist_clm.xml (as all tests) and (2) config_tests.xml + - creating the file .../cime_config/SystemTests/soilstructud.py named after the test in lower case + +Code reviewed by: @billsacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - + + tools-tests (test/tools): + + cheyenne - + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - + + regular tests (aux_clm): + + cheyenne ---- OK + hobart ------ OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (just for NWP configurations) + + Summarize any changes to answers, i.e., + - what code configurations: nwp + - what platforms/compilers: all + - nature of change: larger than roundoff/same climate + This is due to the change of nlevsoi from 5 to 4 (more info above). + I confirmed that nwp does return bfb same answers when I revert this + change. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/759 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev052 +Originator(s): sacks (Bill Sacks) +Date: Mon Jul 22 14:02:43 MDT 2019 +One-line Summary: Fix rare soil color bug in mksurfdata_map + +Purpose of changes +------------------ + +Under rare conditions, mksurfdata_map could put the default soil color +in an output cell where there is actually more information. This tag +fixes that issue. None of the out-of-the-box surface datasets are +impacted by this bug, so I have not recreated any surface datasets. (I +checked all out-of-the-box surface datasets except for +surfdata_0.125x0.125_mp24_simyr2000_c150114.nc, because it doesn't get +remade cleanly out of the box.) + +Also: + +- Add some unit tests for the creation of soil color in mksurfdata_map + +- Point to correct (existing) surface dataset for year-1850 at f05 + resolution + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#4 (Minor bug in creation of soil color in + mksurfdata_map: points can be given the default soil color, when they + should have a real color) +- Resolves ESCOMP/ctsm#765 (Year-1850 f05 surface dataset missing from + inputdata repository) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): +- Year-1850 f05 surface dataset now points to a file that actually exists + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - ok + + Most tests pass, including baseline comparisons. The following tests fail, but also failed for me on master: + + 019 smiS4 TSMscript_tools.sh ncl_scripts getregional_datasets.pl getregional ....................\c + rc=6 FAIL + 020 bliS4 TBLscript_tools.sh ncl_scripts getregional_datasets.pl getregional ....................\c + rc=4 FAIL + 027 smf84 TSMscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_clm4_5^buildtools ....................\c + rc=6 FAIL + 028 blf84 TBLscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_clm4_5^buildtools ....................\c + rc=4 FAIL + 029 smfc4 TSMscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_Cycle_clm4_5^buildtools ..............\c + rc=6 FAIL + 030 blfc4 TBLscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_Cycle_clm4_5^buildtools ..............\c + rc=4 FAIL + 031 smfg4 TSMscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_Global_clm4_5^buildtools .............\c + rc=6 FAIL + 032 blfg4 TBLscript_tools.sh PTCLM PTCLMmkdata PTCLM_USUMB_Global_clm4_5^buildtools .............\c + rc=4 FAIL + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- not run + hobart ------ not run + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev051 +Originator(s): sacks (Bill Sacks) +Date: Fri Jul 19 13:26:25 MDT 2019 +One-line Summary: Update water tracers for remainder of first stage of hydrology + +Purpose of changes +------------------ + +Main change is to do tracer updates for final pieces of first stage of +hydrology: HandleNewSnow and UpdateFracH2oSfc. Along with this, I have +introduced greater modularity into these routines (breaking the +operations down into more granular steps). + +Other changes included here (somewhat related to the main changes) are: + +- Added a routine that resets checked tracers to bulk*ratio to allow + running the tracer consistency check for more than one time step; we + now run it for 10 days + +- Change logic for rain-snow conversion terms: Use rain diff in rain to + snow, snow diff in snow to rain. This is less sensitive to roundoff + errors, and was needed in order to get the 10-day tracer consistency + test to pass. + +- Setting of qflx_snow_h2osfc moved to CanopyInterceptionAndThroughfall + +- Add col%lun_itype. col%lun_itype(ci) is the same as + lun%itype(col%landunit(ci)), but is often a more convenient way to + access this type. I got tired of having to get the landunit index just + for the sake of getting the landunit's type of a given column. I have + NOT gone through the code and replaced lun%itype(l) with + col%lun_itype(c) where applicable, but this will be useful for the + future. + +- Removed unnecessary code for backwards compatibility of FH2OSFC from + restart files + +- Point to slightly modified initial conditions files for two CLm45 + initial conditions files. These two had FH2OSFC > 0 for some glc_mec + points. I'm not sure how that came to be, but Sean Swenson and I think + that shouldn't be the case. This caused soil balance errors in these + tests: + + ERS_Ly5_P72x1.f10_f10_musgs.IHistClm45BgcCrop.cheyenne_intel.clm-cropMonthOutput + SMS_D_Ld1.f09_g17.I1850Clm45BgcCruGs.cheyenne_intel.clm-default + + I'm fixing the problem by pointing to updated files with FH2OSFC set + to 0 for special landunits, using the following python: + + ctypel = dat.variables['cols1d_ityplun'][:] + dat.variables['FH2OSFC'][ctypel > 2] = 0 + +- Small cime update to fix the SHAREDLIBBUILD phase of + ERS_D_Ln9_P480x3.f19_g16.I2000Clm50SpGs.cheyenne_intel.clm-waccmx_offline + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#718 (Implement water tracers for HandleNewSnow + and FracH2oSfc) +- Resolves ESCOMP/ctsm#498 (Do tracer consistency checks every time + step, not just first) + +CIME Issues fixed (include issue #): +- ESCMI/cime#3717 (Cheyenne ESMF missing for WACCM X) + +Known bugs introduced in this tag (include github issue ID): +- ESCOMP/ctsm#762 (Water tracers: Make sure calls to ResetCheckedTracers + are removed) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +- If you have an initial conditions file with non-zero FH2OSFC for + glacier (this was the case for some out-of-the-box clm45 files, which + are now fixed), may run into soil balance errors. To fix this, set + FH2OSFC to 0 in your restart file for all special landunits. + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): +- Point to slightly modified initial conditions files for two CLm45 + initial conditions files: see above for details. + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: +- Changed tracer consistency test to 10 days rather than a single time step + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, some roundoff-level diffs in baseline + comparisons, as noted below + + Also, in order to have a more powerful test of the changes in + SurfaceWaterMod (since the relevant code isn't triggered very often), + I introduced the following diffs: + + diff --git a/src/biogeophys/SurfaceWaterMod.F90 b/src/biogeophys/SurfaceWaterMod.F90 + index 1bc03cae..be656a15 100644 + --- a/src/biogeophys/SurfaceWaterMod.F90 + +++ b/src/biogeophys/SurfaceWaterMod.F90 + @@ -12,6 +12,7 @@ module SurfaceWaterMod + use shr_spfn_mod , only : erf => shr_spfn_erf + use clm_varcon , only : denh2o, denice, roverg, wimp, tfrz, pc, mu, rpi + use clm_varpar , only : nlevsno, nlevgrnd + + use clm_varctl , only : iulog + use clm_time_manager , only : get_step_size + use column_varcon , only : icol_roof, icol_road_imperv, icol_sunwall, icol_shadewall, icol_road_perv + use decompMod , only : bounds_type + @@ -201,7 +202,7 @@ subroutine BulkDiag_FracH2oSfc(bounds, num_soilc, filter_soilc, & + SHR_ASSERT_FL((ubound(qflx_too_small_h2osfc_to_soil, 1) == bounds%endc), sourcefile, __LINE__) + + ! arbitrary lower limit on h2osfc for safer numerics... + - min_h2osfc=1.e-8_r8 + + min_h2osfc=1.e0_r8 + + do f = 1, num_soilc + c = filter_soilc(f) + @@ -230,6 +231,9 @@ subroutine BulkDiag_FracH2oSfc(bounds, num_soilc, filter_soilc, & + + else + frac_h2osfc(c) = 0._r8 + + if (h2osfc(c) > 0._r8) then + + write(iulog,*) 'WJS: in else' + + end if + qflx_too_small_h2osfc_to_soil(c) = h2osfc(c) / dtime + ! The update of h2osfc is deferred to later, keeping with our standard + ! separation of flux calculations from state updates, and because the state + + With those diffs, I ran the tracer consistency test; it passed. In + addition, I ran + SMS_D_Ld1_P4x1.f10_f10_musgs.I2000Clm50BgcCropQianRsGs.bishorn_gnu.clm-default + with comparison against master, with the following diffs on master + (the first change changes behavior to force the relevant code to be + triggered, and is the same on master and on the branch; the second + change on master divides then multiplies by dtime to avoid + roundoff-level diffs): + + diff --git a/src/biogeophys/SurfaceWaterMod.F90 b/src/biogeophys/SurfaceWaterMod.F90 + index 959d539b..4a4a4824 100644 + --- a/src/biogeophys/SurfaceWaterMod.F90 + +++ b/src/biogeophys/SurfaceWaterMod.F90 + @@ -77,7 +77,7 @@ subroutine FracH2oSfc(bounds, num_nolakec, filter_nolakec, & + ) + + ! arbitrary lower limit on h2osfc for safer numerics... + - min_h2osfc=1.e-8_r8 + + min_h2osfc=1.e0_r8 + + call waterstatebulk_inst%CalculateTotalH2osno(bounds, num_nolakec, filter_nolakec, & + caller = 'FracH2oSfc', & + @@ -112,7 +112,7 @@ subroutine FracH2oSfc(bounds, num_nolakec, filter_nolakec, & + + else + frac_h2osfc(c) = 0._r8 + - h2osoi_liq(c,1) = h2osoi_liq(c,1) + h2osfc(c) + + h2osoi_liq(c,1) = h2osoi_liq(c,1) + (h2osfc(c) / get_step_size()) * get_step_size() + h2osfc(c)=0._r8 + endif + + This test passed and was bit-for-bit with master with the above changes. + + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes (roundoff level) + + Summarize any changes to answers, i.e., + - what code configurations: Many/all + - what platforms/compilers: All + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Roundoff: just roundoff-level changes in FSH_PRECIP_CONVERSION, + FSH_TO_COUPLER, l2x_Fall_sen due to refactored calculation of + FSH_PRECIP_CONVERSION + + If bitwise differences were observed, how did you show they were no worse + than roundoff? via summarize_cprnc_diffs + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: branch_tags/cime5.8.3_chint17-03 -> branch_tags/cime5.8.3_chint17-04 + Fixes ESMCI/cime#3171 + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev050 +Originator(s): slevis (Samuel Levis,SLevisConsulting LLC,303-665-1310) +Date: Mon Jul 15 11:40:09 MDT 2019 +One-line Summary: dz --> dz_lake bug-fix in LakeTemperatureMod.F90 line 960 + +Purpose of changes +------------------ + + Bug-fix to prevent the model from aborting when running with fewer soil + layers than lake layers; not to imply that this was not a bug when the + model wasn't aborting. It was. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #760 + +Known bugs found since the previous tag (include github issue ID): #759 bug causing model to abort when nlevsoi = nlevgrnd + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +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 + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: @dlawrenncar @billsacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - + + tools-tests (test/tools): + + cheyenne - + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - + + regular tests (aux_clm): + + cheyenne ---- OK + hobart ------ OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes (when methane on) (diagnostic only) + + Summarize any changes to answers, i.e., + - what code configurations: use_lch4 = .true. + - what platforms/compilers: all + - nature of change: diagnostic variable WTGQ only + Confirmed this on cheynne and hobart by running + ./summarize_cprnc_diffs -baseline .../tests_0712... -testid '*' + and inspecting the file cprnc.summary.*.by_varname + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/761 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev049 +Originator(s): erik (Erik Kluzek) +Date: Sun Jun 23 20:56:55 MDT 2019 +One-line Summary: Update mosart and intel to intel-19 on cheyenne + +Purpose of changes +------------------ + +Update mosart to trunk tag (that has a roundoff change to history file +output). And update intel compiler on cheyenne to intel-19. + +Bugs fixed or introduced None +------------------------ + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: [For timing changes, can check PFS test(s) in the test suite] None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: None + +Code reviewed by: self + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS + + regular tests (aux_clm): + + cheyenne ---- OK + hobart ------ OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes (roundoff level change when MOSART on) + + Summarize any changes to answers, i.e., + - what code configurations: some compsets with mosart + - what platforms/compilers: cheyenne/intel + - nature of change: roundoff + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime, and mosart + mosart to mosart1_0_33 + cime to branch_tags/cime5.8.3_chint17-03 + +Pull Requests that document the changes (include PR ids): #753 +(https://github.com/ESCOMP/ctsm/pull) + #753 -- Update cheyenne to intel/19 and update mosart + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev048 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Sun Jun 23 15:16:01 MDT 2019 +One-line Summary: Updates for buildlib changes and cime and externals updates + +Purpose of changes +------------------ + +Update of most externals: cime, mosart, rtm, cism. The cime update also includes a required CESM-wide +change in buildlib. Uses a function to get the Macros filename "get_standard_makefile_args". +The cime update brought in some answer chagnes, with an update of the intel compiler (but we backed those +out by using a cime branch). There is also a roundoff change by going to the trunk version of RTM. + +Bugs fixed or introduced None +------------------------ + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: None + +Code reviewed by: @jedwards, self + + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS + + tools-tests (test/tools): + + cheyenne - PASS + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - PASS + + python testing (see instructions in python/README.md; document testing done): + + cheyenne - PASS (for python3) + + regular tests (aux_clm): + + cheyenne ---- OK + hobart ------ OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes, but only for a few cases (compsets with RTM) + + Summarize any changes to answers, i.e., + - what code configurations: With RTM + - what platforms/compilers: All + - nature of change: roundoff + fieldlist is different for CISM in some cases + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime, mosart, rtm, cism + cime to branch_tags/cime5.8.3_chint17-02 + cism to cism2_0_68 + rtm to rtm1_0_68 + mosart to nldas-grid.n02_mosart1_0_31 + +Pull Requests that document the changes (include PR ids): #752 +(https://github.com/ESCOMP/ctsm/pull) + + #752 -- buildlib, cime and externals update + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev047 +Originator(s): sacks (Bill Sacks) +Date: Sun Jun 16 13:04:38 MDT 2019 +One-line Summary: Fix negative snow compaction during snow melt + +Purpose of changes +------------------ + +Fix an issue reported by @kjetilaas: In the presence of surface water, +the old and new snow cover fractions are inconsistently calculated in +subroutine "SnowCompaction". This can result in significant negative +compaction (snow depth increase) during snow melt. + +More details from @kjetilaas (copied from +https://github.com/escomp/ctsm/issues/573): + +There is an inconsistency in the calculation of snow cover fraction +(FSNO) in the SnowCompaction subroutine when there is surface water +present. The actual snow cover is limited to 0.99 when surface water is +present (and the surface water fraction is set to 0.01). However, +SnowCompaction recalculates the old FSNO without accounting for this +limitation. This results in an apparent decrease in FSNO, and +corresponding negative snow compaction from snow melt (ddz3). + +This can result in substantial, artificial increase in snow depth during +summer (can be more than 0.5 m during a single season). + +The problem might be masked in monthly output, but could be significant +whenever snow cover is close to 1 and surface water present. Snow mass +is indirectly affected by this as radiation and temperature fluxes in +the snow pack will be affected by artificially thick snow layers. + +This tag fixes this issue. The fix was implemented and tested by +@swensosc (Sean Swenson). + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#573 (Snow depth increase due to inconsistent snow + cover fraction calculation) + + +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_0 + +[X] ctsm5_0-nwp + +[X] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Sean Swenson, @kjetilaas, Bill Sacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, answers change as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (similar climate) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff/same climate + + Sean Swenson ran the LMWG diagnostics package and looked at the + results with Keith Oleson. Their main findings were: + + - Snow depth is a bit smaller over Greenland and polar regions on + average, as expected (up to 5-10% decrease in average snow depth + averaged over the Canadian Arctic) + + - There is a small increase in h2osno over Greenland: about 30 mm + averaged over Greenland; it looks like the main changes are + around the coasts (which makes sense given that this bug only + affects vegetated landunits) + + - There are small changes in runoff over Greenland + + - Changes in snow cover fraction are tiny + + - Overall, this doesn't look climate changing, but could + potentially have a significant impact on select grid cells, and + on some variables in polar regions + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev046 +Originator(s): sacks (Bill Sacks) +Date: Sat Jun 15 15:54:44 MDT 2019 +One-line Summary: Separate the two uses of h2osno + +Purpose of changes +------------------ + +Until now, h2osno has been used in two ways: + +1. When there are explicit snow layers, h2osno is the sum of snow + (liquid + ice) in all layers + +2. When there is a little bit of snow, but not enough to create a snow + layer, h2osno gives the amount of this very thin snow pack (assumed + to be all ice) + +This is confusing and complicates the addition of water tracers to the +code. This tag separates h2osno into two different variables: + +1. h2osno_no_layers is a fundamental state variable that gives the + amount of snow in the case where we don't have explicit snow layers + +2. h2osno_total is purely a diagnostic variable that is the sum of snow + in all explicit layers, plus h2osno_unresolved. This exists in + waterdiagnosticbulk_type, but the version there is just set once at + the end of the time step, so that version is only meant for + diagnostic (history) output. Code that needs the current sum of + h2osno at a given point now computes it locally, via a new method on + waterstate_type: CalculateTotalH2osno. If running in debug mode, that + routine also performs some consistency checks. + +Also, an unrelated change to prevent user from trying to interpolate a +file onto itself. + +Also, add a compset for testing, which is good for use on my mac. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#733 (Make h2osno purely a diagnostic variable) +- Resolves ESCOMP/ctsm#749 (h2osno inconsistent when interpolating from + initial conditions with different snow layers) +- Resolves ESCOMP/ctsm#750 (Prevent user from trying to use the same + filename for init_interp source and destination files) + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none (possibly a small improvement +in timing based on PFS run time) + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass; baseline comparisons fail as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes (mostly roundoff) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Mostly roundoff; greater than roundoff/same climate for cases for + which number of snow layers is less in the case than in its + initial conditions file, due to fixing #749 + + If bitwise differences were observed, how did you show they were no worse + than roundoff? + + There was one point where h2osno_total differed from the old h2osno + by roundoff, as verified by a run of the test suite (where I verified + that (a) it only differed by 1e-11 or less, and (b) if I reset it, + there were just roundoff-level changes in a few diagnostic + fields). That one place with roundoff-level diffs can lead to + propagation of diffs, causing differences in many fields in the final + run of the test suite. In particular: I ran the test suite on + 69823de4 (which had this temporary check and reset of h2osno_total + vs. old h2osno). For nearly all tests, there were only roundoff-level + changes in a few diagnostic fields. I then removed the temporary + check and reset and ran the test suite on the result + (4353cc90). Finally, I ran the test suite on the final, cleaned-up + code, with comparison against 4353cc90 and verified bfb. + + In my testing on 69823de4: There were a few tests with greater than + roundoff-level changes due just to differences in the initial value + of h2osno_total (which was incorrect in the old due to #749). I + verified that these only had roundoff-level changes in a few + diagnostic fields if I used the following diffs in both the baseline + and my branch, indicating that the diffs just arose due to the fix of + #749: + + diff --git a/src/main/clm_initializeMod.F90 b/src/main/clm_initializeMod.F90 + index 793b36ac..f10ee5e1 100644 + --- a/src/main/clm_initializeMod.F90 + +++ b/src/main/clm_initializeMod.F90 + @@ -762,6 +762,18 @@ subroutine initialize2( ) + !$OMP END PARALLEL DO + end if + + do c = bounds_proc%begc, bounds_proc%endc + + if (col%snl(c) < 0) then + + water_inst%waterstatebulk_inst%h2osno_col(c) = 0._r8 + + do j = col%snl(c)+1, 0 + + water_inst%waterstatebulk_inst%h2osno_col(c) = & + + water_inst%waterstatebulk_inst%h2osno_col(c) + & + + water_inst%waterstatebulk_inst%h2osoi_ice_col(c,j) + & + + water_inst%waterstatebulk_inst%h2osoi_liq_col(c,j) + + end do + + end if + + end do + + + end subroutine initialize2 + end module clm_initializeMod + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev045 +Originator(s): sacks (Bill Sacks) +Date: Thu Jun 6 12:26:57 MDT 2019 +One-line Summary: Recalculate h2osno for the sake of SnowCapping + +Purpose of changes +------------------ + +SnowCapping decides whether to remove excess snow based on +h2osno. However, at the point where this is called,h2osno is out of sync +with (h2osoi_liq + h2osoi_ice): Those variables can be changed slightly +in SnowWater (which is called before SnowCapping), yet h2osno isn't +recalculated based on those changes. + +I don't think this causes a big problem in practice, but it seems like +it would improve code understandability if we had the general rule that +any code that references h2osno is using a version of h2osno that is in +sync with (h2osoi_liq + h2osoi_ice). This is also needed to prevent +answer changes in an upcoming major refactor. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#736 + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Sean Swenson signed off on the change, but didn't +review the final code + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, answers change as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (should be small) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff/same climate + + Answer changes are expected to be small, since this should just + change the timing of snow capping a bit, but I haven't looked + closely at the magnitude of the answer changes. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev044 +Originator(s): sacks (Bill Sacks) +Date: Thu Jun 6 12:14:39 MDT 2019 +One-line Summary: Make wetland snow resetting behavior more explicit + +Purpose of changes +------------------ + +There is some code that zeroes out h2osno over thawed wetlands. It seems +like the intended behavior here is to zero out the entire snow +pack. Currently, however, this only zeros out a very thin (zero-layer) +snow pack. For now, I'm adding an snl==0 conditional to make this +behavior explicit; long-term, we'd like to change this to actually zero +out the whole snow pack. (At that time, this code block should probably +be moved to a more appropriate home, as noted in comments in issue +ESCOMP/ctsm#735.) + +Also, unrelated change in run_sys_tests: support machine-specific +baseline directory, in order to support new default location for CTSM +baselines on cheyenne. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Partially addresses, but does NOT fix, ESCOMP/ctsm#735 + +Known bugs introduced in this tag (include github issue ID): +- Partially addresses, but does NOT fix, ESCOMP/ctsm#735 + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Sean Swenson and Keith Oleson approved this change, +though didn't actually review the final code. + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + python testing (see instructions in python/README.md; document testing done): + + (any machine) - pass on cgdm-bishorn + make python=python2 test + make pyhton=python3 test + make lint + + regular tests (aux_clm): + + cheyenne ---- pass + hobart ------ pass + + Also ran SMS_Ly1.f09_g17.I2000Clm50SpGs.cheyenne_intel.clm-monthly + with comparison against baselines: passed and bit-for-bit. + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: NO (but see notes below) + + It seems theoretically possible for this to change answers, but no + answer changes were observed in the aux_clm test suite or + SMS_Ly1.f09_g17.I2000Clm50SpGs.cheyenne_intel.clm-monthly. + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev043 +Originator(s): erik (Erik Kluzek) +Date: Wed Jun 5 10:17:06 MDT 2019 +One-line Summary: Fix FUN bug (frac_ideal_C_use was backwards in regard to delta_CN), and replace Ball-Berry mbbopt with the CLM4.5 version + +Purpose of changes +------------------ + +Carbon allocation to uptake responds to CN(uptake-cost) and CN(actual). The intended implementation is: For C:N +less than the target C:N, C allocation is reduced with cost. For C:N greater than the target C:N, C allocation +is increased with high C:N. However, the actual implementation is reversed. This change fixes that problem. + +Also the Ball-Berry mbbopt values had been changed in the creation of CLM5.0, as part of the tuning, but the new +values don't work well (as our final tuning uses Medlyn photosynshesis rather than Ball-Berry). This brings the values +for Ball-Berry for CLM5.0 back to the CLM4.5 values. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #704 #705 + + Fixes #705 -- Ball-Berry parameters in CLM5.0 should go back to the previous values in CLM4.5 + Fixes #704 -- FUN code logic to reduce or increase carbon allocation used for uptake is reversed + +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_0 + +[X] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): New clm5.0 paramdata file + +Changes to the datasets (e.g., parameter, surface or initial files): mbbopt now use the clm4_5 values + rather than the pretuned clm5_0 values (before Medlyn was being used) + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: None + +Code reviewed by: self, olyson + + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (134 tests are different from baseline as expected) + + regular tests (aux_clm): + + cheyenne ---- OK + hobart ------ OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes! (Important when FUN model on) + + Summarize any changes to answers, i.e., + - what code configurations: Anything with use_FUN=T (so Clm50Bgc compsets) + Also with Clm5.0 and Ball-Berry (stomatalcond_method='Ball-Berry1987') (so Clm50Nwp compsets) + - what platforms/compilers: All + - nature of change: climate is similar + + "Our assessment is that the impact is relatively small, but would affect climate; + however it doesn’t appear to strongly affect transient C response." + + If this tag changes climate describe the run(s) done to evaluate the new + climate (put details of the simulations in the experiment database) + Experiments were done on the release branch + - casename: oleson/clm50_release-clm5.0.15_delta_CN_FUNbug_2deg_GSWP3V1_1850 + oleson/clm50_release-clm5.0.15_delta_CN_FUNbug_2deg_GSWP3V1_hist + + URL for LMWG diagnostics output used to validate new climate: + +http://webext.cgd.ucar.edu/I1850/clm50_release-clm5.0.15_delta_CN_FUNbug_2deg_GSWP3V1_1850/lnd/clm50_release-clm5.0.15_delta_CN_FUNbug_2deg_GSWP3V1_1850.21_40-clm50_release-clm5.0.15_2deg_GSWP3V1_1850.21_40/setsIndex.html + +We've also completed a historical run. Diagnostics are here: + +http://webext.cgd.ucar.edu/I20TR/clm50_release-clm5.0.15_delta_CN_FUNbug_2deg_GSWP3V1_hist/lnd/clm50_release-clm5.0.15_delta_CN_FUNbug_2deg_GSWP3V1_hist.1995_2014-clm50_release-clm5.0.15_2deg_GSWP3V1_hist.1995_2014/setsIndex.html + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): #727 +(https://github.com/ESCOMP/ctsm/pull) + + #727 -- Fix the FUN bug, where an if statement was backwards + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev042 +Originator(s): slevis (Samuel Levis,SLevis Consulting LLC,303-665-1310) +Date: Tue May 21 23:29:31 MDT 2019 +One-line Summary: Rename, correct, and simplify parameters dewmx and sno_stor_max + +Purpose of changes +------------------ + + To rename + dewmx to liq_canopy_storage_scalar + sno_stor_max to sno_canopy_storage_scalar + in the code and in the clm45 and clm50 param files. + + To change snocanmx, liqcanmx, and fcansno to... + snocanmx = params_inst%snow_canopy_storage_scalar(p) * (elai(p) + esai(p)) + liqcanmx = params_inst%liq_canopy_storage_scalar(p) * (elai(p) + esai(p)) + fcansno(p) = (snocan(p) / (vegt * params_inst%sno_stor_max))**0.15_r8 + + Rewrote fwet(p) to follow the same format as fcansno(p). + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #710 + Fixes #710 -- rename dewmx + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): New default parameter file + +Changes to the datasets (e.g., parameter, surface or initial files): + Pointing to new clm45 and clm50 param files containing the two renamed + parameters listed above. + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: None + +Code reviewed by: + @billsacks + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (196 different because of new param file) + + regular tests (aux_clm): + + cheyenne ---- OK + hobart ------ OK + Roundoff changes were expected. + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes! (roundoff) + + Summarize any changes to answers, i.e., + - what code configurations: ALL + - what platforms/compilers: ALL + - nature of change: roundoff + + If bitwise differences were observed, how did you show they were no worse + than roundoff? + The code modifications causing the change were of the order-of-calculations + type in two lines of code. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/719 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev041 +Originator(s): sacks (Bill Sacks) +Date: Fri May 17 06:02:38 MDT 2019 +One-line Summary: Add water tracers to CanopyHydrologyMod + +Purpose of changes +------------------ + +Major overhaul of CanopyHydrologyMod in order to support water tracers. + +The part of CanopyHydrology that was actually dealing with canopy +hydrology has now been broken out into a number of small routines in +order to separate flux calculations from state updates. This is needed +in order to calculate tracer versions of the relevant variables, which +is now done here. + +The parts of CanopyHydrology that were NOT dealing with canopy hydrology +have been moved to more appropriate homes. They have not yet been +tracerized, but will be soon. + +This also makes some minor changes to diagnostic fields related to +canopy hydrology. Of particular note: QDRIP now has a different meaning: +it now corresponds to the excess liquid water that runs off from the +canopy (and is inactive by default). + +The design of this broken-out code was developed in consultation with +Mike Barlage, Erik Kluzek, Negin Sobhani, Sean Swenson and Mariana +Vertenstein. We plan to apply this design moving forward to other parts +of the code that need tracerization. See also +. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#360 - Implement water isotopes for + CanopyHydrology +- Resolves ESCOMP/ctsm#709 - QDRIP diagnostic field misleadingly named +- Partially addresses ESCOMP/ctsm#503 - Clean up CanopyHydrology + (We still need to clean up / tracerize the parts that have now been + moved elsewhere.) + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +- Changed meaning of QDRIP diagnostic field: it now corresponds to + qflx_liqcanfall rather than qflx_prec_grnd_patch, and is default + inactive. (There is no longer a diagnostic field corresponding to + qflx_prec_grnd_patch, but there are separate diagnostic fields for the + rain and snow portions of this, both default inactive.) + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none +- checked timing of hydro1 timer vs. previous canhydro timer from my + dev039 testing: differences are negligible + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: +- Design reviewed by Mike Barlage, Erik Kluzek, Negin Sobhani, Sean + Swenson and Mariana Vertenstein +- Final code reviewed only by self + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, baseline comparisons fail as expected + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (roundoff) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + roundoff + + If bitwise differences were observed, how did you show they were no worse + than roundoff? + + Ensured no-greater-than-roundoff-level by: + + First, generated baselines using code with these diffs (note extra + parentheses in multiplication): + + diff --git a/src/biogeophys/CanopyHydrologyMod.F90 b/src/biogeophys/CanopyHydrologyMod.F90 + index f848f520..31c8c550 100644 + --- a/src/biogeophys/CanopyHydrologyMod.F90 + +++ b/src/biogeophys/CanopyHydrologyMod.F90 + @@ -338,8 +338,8 @@ subroutine CanopyHydrology(bounds, & + ! Intercepted precipitation [mm/s] + qflx_prec_intr(p) = forc_snow(c)*fpisnow + qflx_liq_above_canopy(p)*fpi + ! storage of intercepted snowfall, rain, and dew + - snocan(p) = max(0._r8, snocan(p) + dtime*forc_snow(c)*fpisnow) + - liqcan(p) = max(0._r8, liqcan(p) + dtime*qflx_liq_above_canopy(p)*fpi) + + snocan(p) = max(0._r8, snocan(p) + dtime*(forc_snow(c)*fpisnow)) + + liqcan(p) = max(0._r8, liqcan(p) + dtime*(qflx_liq_above_canopy(p)*fpi)) + + ! Initialize rate of canopy runoff and snow falling off canopy + qflx_snocanfall(p) = 0._r8 + + + Then ran test suite on 1cc9d38a. This is very close to the final + branch, but had a few small tweaks in place to get bit-for-bit: + + 1. Under some conditions, the final branch code resets slightly + negative snocan and liqcan to 0, where master did not. This + commit puts in place temporary code to maintain the slightly + negative values under these conditions, along with a check to + ensure that the values are really always only slightly negative + in this situation. + + 2. When snocan > snocanmx, master reset snocan to exactly snocanmx, + whereas the final branch code can result in snocan being + roundoff-level different from snocanmx, and similar for + liqcan. This commit puts in place temporary code to set snocan + to snocanmx under appropriate circumstances, and liqcan to + liqcanmx, along with a check to ensure that this is only leading + to roundoff-level changes in these state variables. + + 3. Multiplies then divides a flux by dtime in one place + + 4. Has parentheses around a partial sum to ensure same order of + operations as before + + This was bfb with the baselines generated with the diff noted + above, except for roundoff-level changes in SNOCAN in one grid cell + in just one test + (SMS_D_Ld1.f19_g17.I1850Clm45Cn.hobart_gnu.clm-default; old: + -8.15e-322, new: -2e-323). + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +None. But see +https://github.com/billsacks/prototypes-ctsm-canopyhydrology_tracers, +which was the source of our design discussions and contains notes from +these discussions. + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev040 +Originator(s): slevis (Samuel Levis,SLevis Consulting LLC,303-665-1310) +Date: Fri May 03 10:34:46 MDT 2019 +One-line Summary: Move some hard-coded parameters from code to params.nc file + +Purpose of changes +------------------ + + Reduce the number of parameters that get hardwired directly in the code + by placing in the params.nc file where they become visible and easier + to modify. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #680 + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users: + None + +Changes to CTSM's user interface: + Parameters that were hardwired in the code can now be seen and changed + in the params.nc file. + +Changes made to namelist defaults (e.g., changed parameter values): + None + +Changes to the datasets (e.g., parameter, surface or initial files): + Various parameters have moved out of the code and into the params.nc file. + +Substantial timing or memory changes: [For timing changes, can check PFS test(s) in the test suite] + +Notes of particular relevance for developers: + None +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + None + +Changes to tests or testing: + None + +Code reviewed by: + @ekluzek + @billsacks + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - + + tools-tests (test/tools): + + cheyenne - + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - + + regular tests (aux_clm): + + cheyenne ---- OK + hobart ------ OK + Answers change as expected. + +CTSM tag used for the baseline comparisons: + ctsm1.0.dev039 + +Answer changes +-------------- + +Changes answers relative to baseline: YES (single precision roundoff) + Summarize any changes to answers, i.e., + - what code configurations: ALL + - what platforms/compilers: ALL + - nature of change: single-precision roundoff + Changes are due to four parameters: + accum_factor + ko25_coef + kc25_coef + frac_sat_soil_dsl_init + that were not declared "_r8" when hardwired in the code, + while now they are declared "double" in the params.nc files. I + showed that the change was no greater than single-precision roundoff + by writing the new and old values to the lnd and cesm log files and + confirming differences smaller than 1.e-6. + +Detailed list of changes +------------------------ + + - Updated the clm5 and clm4.5 params.nc files to contain the previously + hard-coded parameters that Katie Dagon recommended moving out of the + code (listed here: https://docs.google.com/spreadsheets/d/1cRmcB0xz7CjVP6ljUoCehJx49Usxsore5ma4mWcvQwM/edit#gid=0) + - Now read the parameters in the modules that use them + +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/684 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev039 +Originator(s): sacks (Bill Sacks) +Date: Wed May 1 11:12:34 MDT 2019 +One-line Summary: Remove excess canopy liquid/snow regardless of temperature + +Purpose of changes +------------------ + +Previously: if it was above freezing, snow was allowed to accumulate on +the canopy beyond the specified capacity, and if it was below freezing, +liquid was allowed to accumulate beyond the specified capacity. Sean +Swenson, Keith Oleson and Dave Lawrence agreed that this seems wrong. + +This tag changes the behavior so that both liquid and snow canopy +capacities are enforced regardless of temperature. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#699 (Canopy liquid and snow capacities not + enforced consistently?) + + +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_0 + +[X] ctsm5_0-nwp + +[X] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Keith Oleson + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, answers change as expected + +CTSM tag used for the baseline comparisons: ctsm1.0.dev038 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (small) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + larger than roundoff; likely same climate, but this still requires + investigation + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/703 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev038 +Originator(s): sacks (Bill Sacks) +Date: Wed May 1 10:53:02 MDT 2019 +One-line Summary: Support for NWP configuration, NLDAS grid and NLDAS datm forcing + +Purpose of changes +------------------ + +This tag includes a set of changes that, together, provide support for +running an initial Numerical Weather Prediction version of CTSM over the +Continental U.S. + +(1) NWP configuration: The changes in this configuration relative to the + climate (CLM5) configuration mainly target decreasing runtime by + removing features that are expensive and not as important for NWP + time scales (days to months rather than many years) and space scales + (high resolution): + + - Single dominant landunit; if vegetated, single dominant PFT + + - Only 5 soil layers, down to 3 m + + - Only 5 snow layers + + - Plant hydraulic stress off + + - Ball-Berry rather than Medlyn stomatal conductance method (this is + a side-effect of turning plant hydraulic stress off, and is not + itself a critical aspect of the NWP configuration) + + - Maximum of 3 iterations to compute canopy fluxes + + - MEGAN is off + + Note that the NWP compset triggers changes in two new xml variables: + CLM_CONFIGURATION ('clm' vs. 'nwp'; this controls things of a more + scientific nature, like whether plant hydraulic stress is on or + off), and CLM_STRUCTURE ('standard' vs. 'fast'; this controls + structural things like the maximum number of landunits per grid cell + and the soil layer structure). Thus, you can create a case that is a + hybrid between the CLM and NWP configurations by changing these two + xml variables independently. + +(2) NLDAS2 regional grid: 0.125 deg grid over the Continental U.S. + +(3) Updated version of MOSART with support for the same NLDAS2 regional + grid + +(4) NLDAS2 data atmosphere forcing: over the same regional grid; forcing + data are available from 1980 - 2018. (We have excluded 1979 because + a small amount of data were missing for that year, and we didn't + have a good way to handle those missing data.) + +These changes can be used independently or all together. However, note +that you will get garbage if you try to use the new NLDAS2 datm forcing +for a run that extends beyond the boundaries of the NLDAS2 domain. + +There are three new NWP compsets: +- I2000Ctsm50NwpSpGswpGs: GSWP3 datm forcing; meant for global runs or + regional runs outside the NLDAS domain +- I2000Ctsm50NwpSpNldasGs: NLDAS2 datm forcing; meant for regional runs + over the NLDAS domain or some portion of it +- I2000Ctsm50NwpSpNldasRsGs: Same as above, but with a stub runoff model + in place of MOSART, for runs that aren't interested in having a runoff + model and for which you want improved throughput + +The alias for the new grid is: nldas2_rnldas2_mnldas2 (indicating that +we're using the nldas2 grid for land/atmosphere, runoff ('r') and the +ocean mask ('m'). + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#451 (Add NWP physics option) +- Resolves ESCOMP/ctsm#452 (Add an NWP compset) + + +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.] + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +- The NWP configuration is still a work in progress +- The NLDAS surface data set is still a work in progress (will soon + update this to use high-res PFTs) + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- New xml variables: + - CLM_CONFIGURATION (will eventually be renamed to CTSM_CONFIGURATION) + - CLM_STRUCTURE (will eventually be renamed to CTSM_STRUCTURE) +- New namelist variable: + - itmax_canopy_fluxes + +Changes made to namelist defaults (e.g., changed parameter values): +No changes for existing CLM compsets; new defaults for NWP compsets + +Changes to the datasets (e.g., parameter, surface or initial files): +No changes for existing grids; new surface dataset for nldas2 grid + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: +- New tests covering NWP compsets, nldas grid and nldas datm forcing + +Code reviewed by: Mike Barlage, Erik Kluzek + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - ok + + tests pass; namelists change as expected + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- pass + hobart ------ pass + +CTSM tag used for the baseline comparisons: ctsm1.0.dev037 + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- MOSART: release-cesm2.0.00 -> nldas-grid.n01_mosart1_0_31 +- CIME: ctsm/ctsm1.0/cime5.7.9/n04 -> ctsm/ctsm1.0/cime5.7.9/n05 + +Pull Requests that document the changes (include PR ids): +- https://github.com/ESCOMP/ctsm/pull/682 +- https://github.com/ESCOMP/ctsm/pull/685 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev037 +Originator(s): sacks (Bill Sacks) +Date: Mon Apr 29 16:11:47 MDT 2019 +One-line Summary: Change year alignment for present-day I compsets + +Purpose of changes +------------------ + +Change year alignment for present-day I compsets (typically, these +compsets have aliases beginning with "I2000"), in order to work better +for cases that are meant to replicate particular years. + +(1) Start the model in year 2000 rather than year 1 + +(2) Change datm's year alignment so that model year 2000 uses +observations from year 2000, model year 2001 uses observations from year +2001, etc. + +(This change was requested by Sean Swenson and supported by Dave +Lawrence.) + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +- Year-2000 compsets now start in model year 2000 rather than 1 + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: cime changes reviewed by Erik Kluzek and others + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, year-2000 cases change answers as expected + +CTSM tag used for the baseline comparisons: ctsm1.0.dev036 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (small) + + Summarize any changes to answers, i.e., + - what code configurations: Present-day compsets (I2000, I1Pt; also I2010 once those compsets are added) + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + larger than roundoff/same climate + + This changes the year alignment of datm. Climatological averages + should be the same as before, but the alignment of model year to + datm year changes. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: ctsm/ctsm1.0/cime5.7.9/n03 -> ctsm/ctsm1.0/cime5.7.9/n04 + +Pull Requests that document the changes (include PR ids): +- cime changes documented in https://github.com/ESMCI/cime/pull/3093 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev036 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Fri Apr 26 01:20:57 MDT 2019 +One-line Summary: Fix carbon isotope bug that caused wrong answers for isotopes under transient land-use change + +Purpose of changes +------------------ + +We currently have a bug so that for transient land-use change cases answers are different starting in soil +carbon when Carbon isotopes (use_c13, or use_c14) are on versus off. Answers are identical if there is no +land-use change. The bug does cause bulk Carbon (C12) to be slightly different, but qualitatively the same. +There is a significant impact to the Carbon isotope simulation however. The bug was causing changes in isotopic +pools to be directed to the bulk Carbon. Because, isotopes are so much smaller than bulk Carbon, this doesn't +cause a marked difference in the bulk Carbon simulation. But, the lack of the change in the isotopic pool +does have a meaningful impact on the simulation of the Carbon isotopic fields. + +Also added a general test for this and specific one to catch this case. And did some updates on documentation +files, and a small bug fix for run_sys_tests. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #692 #675 #686 + #675 -- Answers differ when carbon isotopes are on under transient cases + #686 -- Add a system test to make sure turning on carbon isotopes doesn't change answers + #692 -- run_sys_test issue + +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_0 + +[X] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: Added LCISO test type and a 13 month Hist test to make sure carbon isotopes + don't cause a change to answers + +Code reviewed by: dlawren, billsacks, klindsey, bishtgautum + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS + + tools-tests (test/tools): + + cheyenne - PASS + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - PASS (compare tests fail, because of namelist updates) + + regular tests (aux_clm): + + cheyenne ---- OK + hobart ------ OK + +CTSM tag used for the baseline comparisons: ctsm1.0.dev035 + + +Answer changes +-------------- + +Changes answers relative to baseline: Only for Carbon isotopes on under transient land-use change! + + Summarize any changes to answers, i.e., + - what code configurations: Bgc with use_c13 or use_c14 T and with a transient land-use change after each year boundary + - what platforms/compilers: All + - nature of change: same climate for bulk Carbon, isotopic Carbon is quite different for regions with land-use change + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime + cime from -- ctsm/ctsm1.0/cime5.7.9/n01 to ctsm/ctsm1.0/cime5.7.9/n03 + cime update allows the new test to work and starts adding NLDAS grid in + +Pull Requests that document the changes (include PR ids): #696 #694 +(https://github.com/ESCOMP/ctsm/pull) + #696 -- run_sys_test small fix + #694 -- Carbon isotope fix + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev035 +Originator(s): sacks (Bill Sacks) +Date: Mon Apr 22 20:17:40 MDT 2019 +One-line Summary: Change h2ocan to a purely diagnostic variable + +Purpose of changes +------------------ + +Previously, h2ocan_patch was maintained through the driver loop as the +sum of liqcan_patch and snocan_patch. However, there were places where +it was updated separately (though consistently) - i.e., it was not +simply a matter of 'h2ocan = liqcan + snocan'. This made the code +more complex, especially for the upcoming addition of water tracers. + +This tag changes h2ocan_patch to be a purely diagnostic variable, set +once at the end of the driver loop. Prognostic equations that used to +use h2ocan now use liqcan and snocan, either directly or indirectly via +a temporary variable set equal to the current value of liqcan+snocan. + +This tag also completely removes support for snowveg_flag = 'OFF' in +order to clean up the code. + +In addition, this tag renames the namelist variable snowveg_flag to +snowveg_affects_radiation (now a logical). + +Finally, this tag includes a minor change to always compute fcansno, +even if snowveg_affects_radiation is false, in order to simplify the +code. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#199 + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- snowveg_flag renamed to snowveg_affects_radiation, and changed to a + logical flag + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: +- Answer-changing portion of these changes reviewed by Keith Oleson and + (at least to some extent) Sean Swenson + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, answers change as expected + +CTSM tag used for the baseline comparisons: ctsm1.0.dev034 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (roundoff) + + Summarize any changes to answers, i.e., + - what code configurations: all + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + roundoff + + If bitwise differences were observed, how did you show they were no worse + than roundoff? + + I split these changes into two pieces: (1) an answer-changing piece + where I made minimal changes to replace uses of h2ocan_patch with + liqcan+snocan (via temporary h2ocan variables holding this sum), + and (2) non-answer-changing code cleanup. (1) consisted of the + first two commits on this branch (461cafea and f195c105). With the + changes in (1), I added checks near each change to ensure that the + new expression differed by no more than roundoff from the old + (using an absolute cutoff of 1e-13). I ran the full test suite with + these checks in place, and generated new baselines. I then compared + the changes in (2) with the baselines from (1); this cleanup step + was bit-for-bit except for roundoff-level changes in the + now-diagnostic-only field H2OCAN. + + As noted in ESCOMP/ctsm#689, the changes in (1) were larger than I + expected, presumably because initially roundoff-level differences + can lead to divergent code behavior. The most obvious example of + this is in the check of h2ocan > 0 in subroutine FracWet. I have + found that, due to roundoff errors, it is possible for h2ocan_patch + > 0 by roundoff, while (liqcan_patch + snocan_patch) <= 0 by + roundoff. (Presumably the reverse could also be true, though I + haven't seen that – but I haven't spent much time looking for it.) + + Soon, we plan to do a more rigorous test to double check that this + change is not climate-changing. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +- First part of changes in https://github.com/ESCOMP/ctsm/pull/689 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev034 +Originator(s): sacks (Bill Sacks) +Date: Sat Apr 20 06:11:23 MDT 2019 +One-line Summary: Change clm4_5: Use Justin Perket snow on vegetation + +Purpose of changes +------------------ + +This tag changes the behavior of clm4_5, making it now use Justin +Perket's snow on vegetation parameterization. This parameterization was +originally introduced in clm4_5_1_r112. At the time it was only used for +clm5_0 cases. This tag uses that parameterization for clm4_5 cases, too, +so that (like clm5_0) they use snowveg_flag = 'ON_RAD' (i.e., vegetation +snow canopy on with albedo influence). + +This changes climate for clm4_5, mainly through albedo changes, +particularly in the shoulder seasons. + +The reason for this change is to allow an upcoming cleanup of the +relationship between h2ocan, snocan and liqcan. (See +https://github.com/escomp/ctsm/issues/199 for details.) + +This tag also no longer allows snowveg_flag = 'OFF'. However, code +cleanup is deferred to a follow-on tag, in order to separate the answer +changes in this tag from the no-greater-than-roundoff-level changes in +the follow-on tag. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- First step towards addressing ESCOMP/ctsm#199 (Clean up relationship + between h2ocan, snocan and liqcan) + + +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.] + +[ ] clm5_0 + +[X] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +- Changes the scientific configuration of clm4_5 cases, as noted above + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): +- For clm4_5: snowveg_flag = 'ON_RAD' rather than 'OFF' + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- Need to clean up code involving snowveg_flag, liqcan, snocan and + h2ocan. I will do this in a follow-on tag. + +Changes to tests or testing: +- Added a test with snowveg_flag = 'ON'. (At least some of the code + paths triggered by this setting were previously covered by clm45 + cases. Now that both clm45 and clm50 use snowveg_flag = 'ON_RAD', + there was some uncovered code. This new test covers this code.) +- Changed long single-point tests to use Qian forcing: With the default + GSWP3 forcing, the vast majority of the runtime was being spent in + datm. In addition, I was getting repeated failures of + ERS_Lm54_Mmpi-serial.1x1_numaIA.I2000Clm50BgcCropGs.cheyenne_intel.clm-cropMonthOutput, + I think due to memory issues; I'm hopeful that changing the datm + forcing will help with that. + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass; NLCOMP and BASELINE failures for Clm45 cases, + as expected + +CTSM tag used for the baseline comparisons: ctsm1.0.dev033 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (clm4_5) Important + + Summarize any changes to answers, i.e., + - what code configurations: Clm45 compsets + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + + New climate (as in clm4_5_1_r112 for clm5_0); the main impact is + through albedo changes, particularly in the shoulder seasons. + + Changes in clm4_5 cases are due to: + + (1) Using snowveg_flag = 'ON_RAD' rather than 'OFF' + + (2) Changed initial conditions for canopy water: Rather than using + H2OCAN, which is the meaningful state variable on previous + clm4_5 initial conditions files, now we use LIQCAN and + SNOCAN. These may be 0, although at least some clm4_5 initial + conditions files (including the two non-Fates out-of-the-box + clm4_5 initial conditions files) have non-zero (though still + reasonable) LIQCAN for reasons I can't understand. + + (Also changes answers for + ERS_D_Ln9_P480x3.f19_g16.I2000Clm50SpGs.cheyenne_intel.clm-waccmx_offline, + which uses a clm45 initial file.) + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev033 +Originator(s): slevis (Samuel Levis, SLevis Consulting LLC, 303-665-1310) +Date: Thu Apr 11 10:51:29 MDT 2019 +One-line Summary: Limit landunit presence with thresholds set in the namelist + +Purpose of changes +------------------ + + Faster simulations. Motivated by NWP applications: + - Introduce user-defined namelist parameters to use as thresholds + above which landunit areas are kept and + below which landunit areas are removed. + - Introduce user-defined logical namelist parameter to collapse the up to + three urban landunits to the dominant urban landunit. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #581 + Fixes #581 -- Allow zeroing out special landunits if their area is below some threshold + + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? No + +Notes of particular relevance for users +--------------------------------------- + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + - New namelist variables with valid real values from 0._r8 to 100._r8, where + 0 means "do nothing" and other values determine the threshold above + which to keep the landunit in a gridcell. The new variables are: + toosmall_soil + toosmall_crop + toosmall_glacier + toosmall_lake + toosmall_wetland + toosmall_urban + - New logical namelist variable collapse_urban. If .true. then the up to + three urban landunits collapse to the dominant urban landunit. + +--------------------------------------------- +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + There's a typo in the name for n_dom_landunits (missing the s) in bld/CLMBuildNamelist.pm + build-namelist doesn't check for toosmall_* below 0 or above 100, but the code does + +Changes to tests or testing: Yes + New unit tests subroutine test_collapse_individual_lunits and + test_collapse_all_lunit_opts_active in test_surfrdUtils.pf + Modified standard suite test + ERS_D_Ld10.f10_f10_musgs.IHistClm50BgcCropGs.cheyenne_intel.clm-collapse_to_dominant_decStart + to + ERS_D_Ld10.f10_f10_musgs.I2000Clm50BgcCropGs.cheyenne_intel.clm-rm_indiv_lunits_and_collapse_to_dom + and introduced fatal error message when namelist parameters toosmall_* > 0 or + n_dom_* > 0 in transient simulations + +Code reviewed by: Erik Kluzek, Bill Sacks + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (384 differences because of new namelist items) + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + +CTSM tag used for the baseline comparisons: + cheyenne ctsm1.0.dev031 + hobart ctsm1.0.dev032 + + +Answer changes +-------------- + +Changes answers relative to baseline: No + Note: Comparison to baseline gives NLCOMP failures because the new namelist + parameters always appear in the namelist now, even when they have not been + changed from their default value by the user. + +Detailed list of changes +------------------------ + - Introduced call to new subroutine collapse_individual_lunits that uses + the user-defined namelist variables listed above to determine whether + a landunit gets kept or removed from a gridcell. + - Introduced new call to collapse_to_dominant for when collapse_urban = .true. + - Introduced error checks that do not allow coexistence of transient + simulations and the toosmall_* variables OR the n_dom_pfts/n_dom_landunits + variables OR the collapse_urban parameter. + +Pull Requests that document the changes (include PR ids): #641 + https://github.com/ESCOMP/ctsm/pull/641 + #641 -- Ability to remove individual landunits for faster runs + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev032 +Originator(s): negins (Negin Sobhani,UCAR/CSEG,303-497-1224) +Date: Mon Apr 8 08:26:57 MDT 2019 +One-line Summary: Fixing the balance check to check for possible errors over all columns/patches + +Purpose of changes +------------------ +Up until now, the BalanceCheckMod code in biogeophysics did not check all +the possible errors over all columns or patches with the error threshold for +aborting clm and it merely compared the last column/patch found (where +warning threshold is met) with the error threshold. +Therefore, there was always a possibility that the abort is not triggered +when it should have been. This issue was first mentioned in ctsm issue #55 +for soil energy balance check, but a similar issue is also present for +other balance checks in BalanceCheckMod.F90 . + +Below is the list of the balance checks with a similar issue: +1. Water balance check +2. Snow balance check +3. Solar radiation energy balance check +4. Longwave radiation energy balance check +5. Surface energy balance check +6. Soil energy balance check (Issue #55) + +For remediating this issue, we used MAXVAL and MAXLOC Fortran intrinsic functions +to compare the largest error with the warning and error thresholds instead +of checking the last column or looping over all columns. + + +In addition, this PR also makes slight changes to ./run_sys_tests outputi/case +directory structure. Previously for each case in a test suite, there were +two set of directories created by run_sys_tests as follows: + * one directory which included run/ and bld/ and named as $SCRATCH/[case-name].... + * The case directory which included logs , timings, CaseDocs/, and misc. scripts + for ./case.build, ./case.submit... under $SCRATCH/tests-[testID]/[case-name].... + +This made debugging confusing and populated many folders in user's scratch. +Now, for every case in a test, all directories related to that case +including bld/ and run/ directories are nested under the case directory under $SCRATCH/tests-[testID]/[case-name].... +This is now similar to ./create_test output folder structure. + + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm issue#55 + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + +Changes to tests or testing: + - ./run_sys_test is changed so that it nests bld/ and run/ directories under the case directory as $SCRATCH/tests-[testID]/[case-name]... + The output folder structure now is similar to ./create_test for each case in a test. + +Code reviewed by: Bill Sacks + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + +CTSM tag used for the baseline comparisons: ctsm1.0.dev031 + + +Answer changes +-------------- + +Changes answers relative to baseline: No + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/670 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev031 +Originator(s): sacks (Bill Sacks) +Date: Wed Mar 13 15:03:42 MDT 2019 +One-line Summary: Subtract virtual states to reduce dynbal fluxes for transient glaciers + +Purpose of changes +------------------ + +Up until now, when computing the dynbal correction (conservation) fluxes +for transient glacier columns, we have been (1) counting the mass and +energy in the ice column as if that is a real state, but on the other +hand (2) NOT accounting for the fact that glacier columns don't +represent the soil under glacier. These two issues work in opposite +directions, but (1) dominates, because there is much more ice (and +energy, I think) in the roughly 50 m of glacial ice than there is in a +typical 50 m soil column. + +In discussing this issue with Bill Lipscomb, we came up with the idea of +subtracting some baseline value from each glacier column. I think that, +as long as we subtract the same baseline value throughout an entire +simulation for a given column, we will still conserve mass and energy +through dynamic landunit transitions. + +So, here we subtract baseline values from glacier columns, accounting +for the two issues mentioned above: (1) we subtract the water and energy +in the glacier ice, because this is a virtual state in CTSM, and (2) we +add the water and energy from the vegetated column(s), to account for +the fact that we don't have an explicit representation of +soil-under-glacier (this carries the assumption that the +soil-under-glacier has the same state as the initial vegetated state in +that grid cell). We set these baselines in initialization, so they begin +equal to the cold start state. Water and ice in the glacial ice stay +fixed over the course of a simulation, so the cold start values should +be the same as the current values at any point in time. The heat content +of the glacial ice does change over time, but by subtracting this +baseline value, we can potentially reduce the dynbal sensible heat +fluxes (however, note that it's also possible that these sensible heat +fluxes could increase when subtracting the cold start value, if ice +temperatures are closer to 0 deg C than to the cold start value, +currently 250 K). + +In addition, this introduces a new namelist flag, +reset_dynbal_baselines, which allows the user to reset these baselines +at some desired point in the simulation. I think that, in general, this +resetting would break conservation. But as long as it is done before the +onset of transient glaciers, I think this should be okay. In this way, +the user can minimize dynbal fluxes even further, by resetting the +baselines after the system has spun up. If the states haven't changed +much from this point to the point when glacier dynamics occur, then the +dynbal fluxes should now be very small. (See the documentation of this +flag in namelist_definition_ctsm.xml for more details.) + +Without this change, dynbal fluxes for a grid cell that undergoes 100% +glaciation / deglaciation in a single year are around 50 m ice, 1 m +liquid water, and a few tens of W m-2 (where those quantities of ice and +water are dribbled throughout the year, so we end up with an ice flux of +about 1.5e-6 mm/s throughout the year; and the energy flux is applied +evenly throughout the year - i.e., tens of W m-2 every time step for a +year). With this change, and with reset_dynbal_baselines set at an +appropriate time, these fluxes can be reduced to close to zero. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Partially addresses ESCOMP/ctsm#274 (Dynamic landunits: improve water + and energy conservation) + +CIME Issues fixed (include issue #): +- Fixes three issues related to inputdata checksum: + - ESCMI/cime#3033 + - ESCMI/cime#3034 + - ESCMI/cime#3036 + +Known bugs introduced in this tag (include github issue ID): +- ESCOMP/ctsm#659 (Subtract dynbal baselines from begwb and endwb) + - This can't be fixed until we're okay having this answer change on + master + +Known bugs found since the previous tag (include github issue ID): +- ESCOMP/ctsm#658 (Methane should not depend on gridcell-level TWS) + +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_0 + +[X] clm4_5 + +Significant answer changes for runs with transient glaciers. + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +- For runs with transient glaciers, careful thought should be given to + when to set reset_dynbal_baselines +- Inconsistency between begwb/endwb and liq1/liq2/ice1/ice2 (see ESCOMP/ctsm#659) + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- New namelist variable: reset_dynbal_baselines + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- Inconsistency between begwb/endwb and liq1/liq2/ice1/ice2 (see ESCOMP/ctsm#659) + +Changes to tests or testing: +- Tweaked a test with transient glacier areas, including adding this new + flag to the test + +Code reviewed by: Bill Lipscomb reviewed the conceptual ideas, but +nobody has reviewed the actual code + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, answers change as expected + +CTSM tag used for the baseline comparisons: ctsm1.0.dev030 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (Important) + + Summarize any changes to answers, i.e., + - what code configurations: ALL, but different configurations show + different levels of changes, as noted below + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + - new climate (at least regionally) for some configurations; + roundoff for others: see below + + There are three levels of changes here: + + (1) For runs with transient glaciers, there are large answer changes + in regions with changing glacier area. These answer changes are + in the various dynbal fluxes - for liquid water and ice runoff, + and for the dynbal sensible heat flux. + + (2) For runs with transient vegetation (Hist, Dv and Fates), there + are roundoff-level changes in the dynbal fluxes. For liquid + water and ice, these changes appear to only occur in grid cells + where there is some glacier area (because now both the before + and after gridcell water contents have changed by the same fixed + amount, which changes the difference at the roundoff level). For + heat, there are roundoff-level changes everywhere (because of + changes in the order of operations). + + (3) All runs have large changes in the diagnostic variables, + ICE_CONTENT1, LIQUID_CONTENT1 and HEAT_CONTENT1, over grid cells + containing some glacier area. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: cime5.7.9 -> ctsm/ctsm1.0/cime5.7.9/n01 + - Fixes issues related to inputdata checksum + +Pull Requests that document the changes (include PR ids): +- https://github.com/ESCOMP/ctsm/pull/650 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev030 +Originator(s): sacks (Bill Sacks) +Date: Fri Mar 8 15:08:34 MST 2019 +One-line Summary: Update CIME; hookup expected test fails + +Purpose of changes +------------------ + +Two main changes: + +(1) Update to latest cime (from ctsm/ctsm1.0/cime5.7.5/n01 to + cime5.7.9). Some of the important changes are: + - Fix for recent cheyenne system changes + - New domain file for f19_g17 (changes answers at the roundoff + level) + - New domain file for T31_g37 (changes answers by greater than + roundoff) + +(2) In system tests: Annotate cs.status output with expected failures + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Fixes ESCOMP/ctsm#654 + +CIME Issues fixed (include issue #): (Many) + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none? + The PFS test showed a significant speedup (170s in the previous tag, + 124s in this tag). However, some other tests showed either a slowdown + or not much change. So I'm not sure there is a consistent pattern of + speedup in this tag. + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Erik Kluzek + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, some baselines failed as noted below + + Most testing done with cime at eb2eb704f - excluded PR #3030, which + updated support for CAM-SE grids (but the changes in this PR were + very limited). Ran SSP tests with the final version of cime (so I'd + have a few tests covering the latest cime). + +CTSM tag used for the baseline comparisons: ctsm1.0.dev029 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (f19_g17, T31_g37 small) + + Summarize any changes to answers, i.e., + - what code configurations: f19_g17, T31_g37 + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + + - f19_g17: roundoff-level, presumably due to new domain file (some + diffs grew to greater than roundoff-level: some methane + variables in a long test - + SMS_Lm13.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-cropMonthOutput; + and many variables in test with flooding - + ERP_P180x2_D.f19_g17.I2000Clm50SpRtmFl.cheyenne_intel.clm-default) + + - T31_g37: greater than roundoff-level, presumably due to new + domain file from cime commit 4fcf592ee + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: ctsm/ctsm1.0/cime5.7.5/n01 -> cime5.7.9 + +Pull Requests that document the changes (include PR ids): +- https://github.com/ESCOMP/ctsm/pull/602 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev029 +Originator(s): slevis (Samuel Levis, SLevis Consulting LLC, 303-665-1310) +Date: Tue Feb 26 23:42:39 MST 2019 +One-line Summary: Collapse landunits to the N most dominant + +Purpose of changes +------------------ + + Allows the collapse to fewer landunits using the concept of + N most dominant for the purpose of faster runs, eg in the context + of NWP (Numerical Weather Prediction). + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #581 + + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? No + + [Put an [X] in the box for any configuration with significant answer changes.] + +[ ] clm5_0 + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + New namelist variable n_dom_landunits with valid integer values from 0 to + max_lunit currently equal to 9, where 0 means “do nothing†and other + values determine the number of active landunits when running the model. + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + There is a question left in on whether the collapse call needs to also + be moved to inside dynamic landunits reading. + +Changes to tests or testing: Yes + ERS_D_Ld10.f10_f10_musgs.IHistClm50BgcCropGs.cheyenne_intel.clm-collapse_to_dominant_decStart + now replaces (by combining with) this test introduced in ctsm1.0.dev026 + ERS_D_Ld10.f10_f10_musgs.IHistClm50BgcCropGs.cheyenne_intel.clm-collapse_nat_pfts_decStart + I added subroutine test_collapse_to_dom_landunits to test_surfrdUtils.pf + to include new Unit Tests. In same file I renamed + subroutine test_collapse_nat_pfts to test_collapse_to_dom_pfts + to accurately describe the contents of the subroutine. + +Code reviewed by: Erik Kluzek + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS + + regular tests (aux_clm): + + cheyenne ---- OK + hobart ------ OK + +CTSM tag used for the baseline comparisons: + ctsm1.0.dev028 + + +Answer changes +-------------- + +Changes answers relative to baseline: No + +Detailed list of changes +------------------------ + + Replaced existing subroutine collapse_nat_pfts with + subroutine collapse_to_dominant which can collapse to the + N dominant landunits or N dominant pfts by performing the + same actions on the data. + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): #639 + https://github.com/ESCOMP/ctsm/pull/639 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev028 +Originator(s): sacks (Bill Sacks) +Date: Tue Feb 26 14:35:01 MST 2019 +One-line Summary: Interpolate out-of-the-box initial conditions and remove expensive tests + +Purpose of changes +------------------ + +Two main changes (plus some small additional changes): + +1. Removed / reworked some expensive tests + +2. Interpolated all out-of-the-box initial conditions, so that the + out-of-the-box version is now compatible with our current + configuration. The changes from before were (a) our standard + configuration now uses the gx1v7 rather than gx1v6 land mask; (b) + many inactive points are now absent in memory. + +See https://github.com/ESCOMP/ctsm/pull/622 for details. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#312 +- Partially addresses ESCOMP/ctsm#275 (just a bit) + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): +- New finidat files + +Substantial timing or memory changes: +- Faster initialization times for cases that no longer need to interpolate initial conditions + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: +- Removed or reworked expensive tests: see details in https://github.com/ESCOMP/ctsm/pull/622 + +Code reviewed by: Erik Kluzek + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok: tests pass, baselines fail as expected + +CTSM tag used for the baseline comparisons: ctsm1.0.dev027 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (just for initial conditions) + + Summarize any changes to answers, i.e., + - what code configurations: all configurations that still need use_init_interp = .true. + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Not investigated carefully, but expected to be larger than roundoff/same climate + + Answers change for cases that still need to do interpolation from + these out-of-the-box finidat files. + + I first confirmed that the new finidat files are good via: + + - Compared `ncdump -h` of old vs. new initial conditions files + + - Ran the following tests, with comparison against master; verified that + these all pass and are bit-for-bit, that they use the new initial + conditions files, and that they now have `use_init_interp` unset + (whereas they used to have `use_init_interp` set to `.true.`); note + that these cover 6 of the 7 new initial conditions files: + + ``` + SMS_Ld1.f09_g17.I1850Clm45BgcGs.cheyenne_intel.clm-default + SMS_Ld1.f09_g17.I1850Clm45BgcCruGs.cheyenne_intel.clm-default + SMS_Ld1.f09_g17.I1850Clm50Sp.cheyenne_intel.clm-default + SMS_Ld1.f09_g17.I1850Clm50BgcCrop.cheyenne_intel.clm-ciso + SMS_Ld1.f09_g17.I1850Clm50BgcCropCru.cheyenne_intel.clm-ciso + SMS_Ld1.f09_g17.I1850Clm50SpCru.cheyenne_intel.clm-default + ``` + + - To cover the last new initial conditions file, ran the following test + (with the same checks as above: passes and bit-for-bit, checked + finidat, and checked `use_init_interp`), with `./xmlchange + LND_TUNING_MODE=clm5_0_cam6.0` (for the baseline for this test, I set + `init_interp_method = 'use_finidat_areas'`, which I also used in + interpolating this initial conditions file): + + ``` + SMS_Ld1.f09_g17.I1850Clm50BgcCrop.cheyenne_intel + ``` + + Details on answer changes: + + As noted above, these changes are bit-for-bit for configurations + that can now use the out-of-the-box initial conditions without + interpolation. However, answers change for configurations that still + require interpolation of the out-of-the-box initial conditions + (e.g., because they are at a different resolution than the finidat + file). + + I expected these answer changes around the Caspian Sea, due to the + fact that we are now effectively interpolating twice from the + original file: once to produce the new out-of-the-box file (which + includes an interpolation from `gx1v6` to `gx1v7`, and so + interpolates onto the Caspian Sea region) and once to go from + `f09_g17` to the target resolution (rather than interpolating + directly from `f09_g16` to the target resolution). + + However, when I ran a test with comparison to baselines - + `ERP_Ld5.f19_g17.I1850Clm50Bgc.cheyenne_intel.clm-default` - I saw + changes in regions further afield than simply around the Caspian + Sea. See images in https://github.com/ESCOMP/ctsm/pull/622 for + details. It's possible that the other differences are also due to + the Caspian Sea change, but it's also possible that there is some + other cause here that I don't understand. But Erik Kluzek and I + agreed that it isn't worth trying to understand these other + (isolated) differences. + + Also note: While most f09_g17 tests are bit-for-bit with the earlier + tag (because now use_init_interp is .false. for those tests), + `SMS_Ld2_D.f09_g17.I1850Clm50BgcCropCmip6.cheyenne_intel.clm-basic_interp` + differs in some glc forcing fields for a few grid cells in + Antarctica. This is perhaps not surprising, since this test needs to + use interpolation to get fields for the Antarctica virtual columns; + so, while I don't completely understand the cause of these answer + changes, I suspect the root cause is similar to the isolated answer + changes I saw sprinkled around the world for + `ERP_Ld5.f19_g17.I1850Clm50Bgc.cheyenne_intel.clm-default`. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +- https://github.com/ESCOMP/ctsm/pull/622 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev027 +Originator(s): negins (Negin Sobhani,UCAR/CSEG,303-497-1224) +Date: Tue Feb 19 12:57:12 MST 2019 +One-line Summary: Non-constant time initialization for soil hydrology types are moved to SoilHydrologyType.F90. + +Purpose of changes +------------------ + +Initalization of time-varying `zwt`, `zwt_perched`, and `frost_table` are moved to `InitCold` in `SoilHydrologyType.F90`. + +Previously, `zwt`, `zwt_perched`, and `frost_table` were initialized in `SoilHydrologyInitTimeConstMod.F90`, which caused confusions. + +Bugs fixed or introduced +------------------------ +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#575 ("Some variables initialized in SoilHydrologyInitTimeConstMod are not time-constant") + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: Updated a test. The test added in previous tag included decStart with transient glaciers, which would not work. Hence, this test is modified so the compset does not include G. +Test IHistClm50SpG is updated to IHistClm50Sp. + +Code reviewed by: +Bill Sacks +Erik Kluzek + +CTSM testing: + + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, except for the expected failures. + +CTSM tag used for the baseline comparisons: +ctsm1.0.dev026 + +Answer changes +------------- + +Changes answers relative to baseline: no + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + +Pull Requests that document the changes (include PR ids): +PR #631 Soil hydrology initialization of time-constant variables moved to SoilHydrologyType +https://github.com/ESCOMP/ctsm/pull/631 + + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev026 +Originator(s): slevis (Samuel Levis, SLevis Consulting LLC, 303-665-1310) +Date: Tue Feb 5 17:08:48 MST 2019 +One-line Summary: Collapse unmanaged PFTs to the N most dominant + +Purpose of changes +------------------ + +To run simulations fast for applications such as NWP (Numerical Weather +Prediction), allow collapsing natural PFT's to the number the user wants. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): 457 + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +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): +New namelist parameter n_dom_pfts with valid integer values from 0 to +14, where 0 means “do nothing†and other values determine the number +of active pfts when running the model + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: None (unless new option invoked) + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: updated tests, added new test +Updated standard testing test to include decStart +(December start). Confirmed that answers were bit-for-bit same with +baseline before introducing the change. +Added standard testing test to test n_dom_pfts = 2 in a +transient vegetation case with December start. +Added subroutine test_collapse_nat_pfts to test_surfrdUtils.pf to +include new Unit Tests. + +Code reviewed by: +Erik Kluzek +Bill Sacks + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS + + regular tests (aux_clm): + + cheyenne ---- OK + hobart ------ OK + +CTSM tag used for the baseline comparisons: +ctsm1.0.dev025 + +Answer changes +-------------- + +Changes answers relative to baseline: No (bit-for-bit) + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/588 -- NWP collapse pfts to the N most dominant +https://github.com/ESCOMP/ctsm/pull/583 -- Add routine to find indices of max k values in data + +Added new subroutines collapse_nat_pfts and collapse_crop_var and called +them from surfrdMod.F90. The second of these subroutines is not needed +when collapsing unmanaged PFTs; however, I created it early in the PR +and decided to keep it for use soon with crop-related variables like +irrigation water and fertilizer. + +Bill Sacks made changes to include subroutine find_k_max_indices for the +benefit of this PR (#583) + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev025 +Originator(s): Keith Oleson, Bill Sacks +Date: Wed Jan 23 10:48:01 MST 2019 +One-line Summary: History fields for vertically-resolved sums of soil C and N, and minor fixes + +Purpose of changes +------------------ + +Main change is from Keith Oleson: Add history fields for +vertically-resolved sums of SOIL1C, SOIL2C, and SOIL3C for C12, C13, +C14, and similarly for N. New fields are SOILC_vr, C13_SOILC_vr, and +C14_SOILC_vr, and SOILN_vr. For runs that use the output_bgc usermods, +including cmip6 runs, we no longer output 'SOIL1C_vr', 'SOIL1N_vr', +'SOIL2C_vr', 'SOIL2N_vr', 'SOIL3C_vr', 'SOIL3N_vr'; instead we output +'SOILC_vr', 'SOILN_vr', and similarly for C isotopes. + +Also minor fixes: +- Output cpl hist files in SSP test (resolves ESCOMP/ctsm#61) +- Remove FATES-related commented-out code in OzoneMod (this has been + moved to https://github.com/ESCOMP/ctsm/issues/618) +- Minor tweak to run_sys_tests + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#61 + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): +- For runs that use the output_bgc usermods, including cmip6 runs, we no + longer output 'SOIL1C_vr', 'SOIL1N_vr', 'SOIL2C_vr', 'SOIL2N_vr', + 'SOIL3C_vr', 'SOIL3N_vr'; instead we output 'SOILC_vr', 'SOILN_vr', + and similarly for C isotopes. + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Bill Sacks; Erik Kluzek reviewed the changes to the SSP test + + +CTSM testing: + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- pass + hobart ------ pass + +CTSM tag used for the baseline comparisons: ctsm1.0.dev024 + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/551 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev024 +Originator(s): slevis (Samuel Levis,SLevis Consulting, LLC, 303-665-1310) +Date: Mon Jan 14 11:07:04 MST 2019 +One-line Summary: Remove unnecessary restart variables + +Purpose of changes +------------------ + +Remove unnecessary restart variables to conserve on computing resources +and disk space + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): 285 + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +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: + +Notes of particular relevance for developers: +Code reviewed by Bill Sacks. +Standard testing (cheyenne and hobart) OK +Unit testing PASS +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + +Changes to tests or testing: + +Code reviewed by: Bill Sacks + +CTSM testing: +Regular testing (cheyenne and hobart) OK +Unit testing PASS + +CTSM tag used for the baseline comparisons: +ctsm1.0.dev023 + + +Answer changes +-------------- + +Changes answers relative to baseline: NO (bfb) + + +Detailed list of changes +------------------------ + +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/598 + +Variables removed from restart: +plant_nalloc +pot_f_nit_vr* +f_nit_vr* +root_depth +qflx_floodg +snounload +qflx_snofrz_lyr +sminn_to_plant_fun_patch + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev023 +Originator(s): sacks (Bill Sacks) +Date: Thu Jan 10 13:00:42 MST 2019 +One-line Summary: Remove CLM4.0 + +Purpose of changes +------------------ + +Remove CLM4.0. This consists of removing code and other files that are +specific to CLM4.0, and doing some resulting cleanup of code that was +shared between CLM4.0 and later versions (primarily in build-namelist). + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves #455 (Remove CLM4.0) + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +- Can no longer run CLM4.0 cases + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- CLM4.0 compsets no longer supported + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: Removed CLM4.0 tests + +Code reviewed by: Erik Kluzek + + +CTSM testing: + + build-namelist tests: + + cheyenne - pass + + tools-tests (test/tools): + + cheyenne - pass + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - ok + + Total number of tests = 52 + Number of tests that PASS = 51 + Number of tests that Fail = 1 + Number of compare tests that PASS = 37 + Number of compare tests that Fail = 4 + Number of tests without compare = 11 + + The one failing test is: + FAIL fail-no_towerdata.-d+/glade/p/cesmdata/cseg/inputdata++-s+RF-Bra+--debug+--pftgrid+--soilgrid. + + These same failures occurred in ctsm1.0.dev022 (including the + compare tests that Fail). Erik Kluzek says these failures are + okay. + + regular tests (aux_clm): + + cheyenne ---- pass + hobart ------ pass + + Notes on testing: + + - Most testing done on b5380c7e8. Since then, updated to a version of + cime that fixes cime's configure tool (but this isn't invoked in + system tests, so I didn't rerun the system tests) and pointed cime + to a tag rather than a hash. + + - For tools tests: In baseline, cherry-picked commit 148bc2158 into + cime + +CTSM tag used for the baseline comparisons: ctsm1.0.dev022 + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: points to branch tag off of cime5.7.5 + (ctsm/ctsm1.0/cime5.7.5/n01), with changes for: + (1) Removal of support for CLM4.0 (equivalent to the changes in + https://github.com/ESMCI/cime/pull/2968) + + (2) Fix for cime configure (cherry-picked 148bc2158) + +Pull Requests that document the changes (include PR ids): +- https://github.com/ESCOMP/ctsm/pull/609 (Remove CLM4.0) +- https://github.com/ESCOMP/ctsm/pull/601 (Print git status and related + info when running run_sys_tests) + + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev022 +Originator(s): sacks (Bill Sacks) +Date: Tue Jan 8 11:01:38 MST 2019 +One-line Summary: Set tracer version of irrigation fluxes + +Purpose of changes +------------------ + +Set tracer version of irrigation fluxes. + +This required a substantial rewrite of ApplyIrrigation (now renamed to +CalcIrrigationFluxes). The problem was that the code was written to +compute the total irrigation withdrawal from groundwater, then use this +to compute the application fluxes (drip/sprinkler), then later divide +this total withdrawal by layer. But for tracer fluxes to be computed +correctly, we needed to reorder this, so that the per-layer withdrawals +are determined before determining the application fluxes. This is +because the application flux needs to know the tracer concentrations of +the source, which requires knowing which layers the source is drawing +from. This was made more challenging because of the mix of patch-level +and column-level variables at play: irrigation demand is patch-level, +groundwater availability and extraction is column-level, but application +is back to patch-level. + +In a somewhat-related change, I also reworked the passing of information +between soil hydrology (groundwater availability) and irrigation: +Previously, there was some near-duplicate code in +CalcAvailableUnconfinedAquifer (which was called prior to +ApplyIrrigation) and WithdrawGroundwaterIrrigation (which was called +after ApplyIrrigation). I have reworked the code to remove this +duplication, calling the new CalcIrrigWithdrawals in the midst of +CalcIrrigationFluxes. In doing so, I reconciled an accidental +discrepancy between the two original routines (see +https://github.com/escomp/ctsm/issues/595). + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#521 (Set tracer versions of fluxes set by + ApplyIrrigation) +- Resolves ESCOMP/ctsm#593 (Generalize groundwater irrigation availability to + handle multiple patches per column) +- Resolves ESCOMP/ctsm#595 (Inconsistency between CalcAvailableUnconfinedAquifer + and WithdrawGroundwaterIrrigation) + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: + +- Sean Swenson reviewed the initial parts of the rework of + ApplyIrrigation and the passing of information between soil hydrology + and irrigation + +CTSM testing: + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, expected baseline failures as noted below + + Additional manual testing: + + - Out of the box, the one-timestep tracer consistency test + (SMS_D_Ln1.f10_f10_musgs.I2000Clm50BgcCropGs.hobart_nag.clm-tracer_consistency) + passed when the new check was inserted after the irrigation call, + even without the changes in this tag. Presumably this is because no + irrigation was being done in the first time step of this test. To + confirm that the changes here were both necessary and effective, I + hacked the code to force irrigation of all types (surface and + groundwater) on the first time step (see + https://github.com/billsacks/ctsm/commit/d28a03145). I confirmed + that this test, with those code hacks, failed before the changes in + this tag, and passed with these changes in place. + + - I used a multi-step process to confirm that these changes are only + roundoff-level different for groundwater irrigation (because + feedbacks in the system result in + SMS_D_Ld5.f10_f10_musgs.I2000Clm50BgcCrop.hobart_nag.clm-irrig_alternate + looking greater-than-roundoff-level different from the baseline): + + (1) Confirmed that e507fe603 is only roundoff-level different from + baseline using cprnc output from this test. + + (2) Confirmed that a4a1a626c is only roundoff-level different from + e507fe603. This was the tricky part. I did this by introducing + some temporary code that (a) computed some fluxes in both the + old and new ways, (b) compared the old and new methods for each + point and time step, confirming that they were no more than + roundoff-level different, then (c) set the fluxes to the old + method. I confirmed that this was bit-for-bit with e507fe603, + and the checks for greater-than-roundoff-level differences + between the old and new methods were never triggered. (See + https://github.com/billsacks/ctsm/commit/7d23e9e and the earlier + commits on that branch.) + + (3) Confirmed that remaining changes an the branch are bit-for-bit + with a4a1a626c. + +CTSM tag used for the baseline comparisons: ctsm1.0.dev021 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (small) + + Summarize any changes to answers, i.e., + - what code configurations: + + - Small answer changes when groundwater irrigation is enabled. In + principle, could change answers by greater than roundoff due to + fix of #595, but I didn't see any answer changes in my 7-month + test due to that change. Other than that, just roundoff-level + changes. + + - Answer changes when tracers are enabled. + + - Roundoff-level changes in the diagnostic field, + QIRRIG_FROM_SURFACE, for many tests + + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + See notes under "what code configurations" for details. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/600 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev021 +Originator(s): mvr (Mathew Rothstein,UCAR/CSEG,303-497-1304) +Date: Wed Dec 26 16:29:06 MST 2018 +One-line Summary: Added tracer ratio capability and included it in consistency checks + +Purpose of changes +------------------ + +These changes are needed to support the implementation of water isotopes by ensuring +that isotope-related variables are being updated consistently throughout the model. +The consistency checks include the testing of a bulk tracer that should always be +equal to the bulk, and also test tracers that maintain a fixed ratio (other than +one) to the bulk. This commit includes fixes to the cold start initialization for +the water tracers with ratios other than one. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): [If none, remove this line] +#541 Only do water tracer consistency checks on tracers that are + supposed to maintain a fixed ratio +#459 Fix cold start initialization of water tracers +#508 Remove unused variables in new Water types +#357 Put in place Water isotope consistency checks + + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: added unit tests + +Code reviewed by: bill sacks + + +CTSM testing: + + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- PASS + hobart ------ PASS + +CTSM tag used for the baseline comparisons: ctsm1.0.dev020 + + +Answer changes +-------------- + +Changes answers relative to baseline: no, b4b + + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): #599 Adding isotope + tracer ratios +(https://github.com/ESCOMP/ctsm/pull) + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev020 +Originator(s): Sean Swenson, Bill Sacks +Date: Mon Dec 3 11:51:24 MST 2018 +One-line Summary: New options for irrigation and crop fsat + +Purpose of changes +------------------ + +Introduce three new options: + +(1) Ability to withdraw irrigation water from groundwater if not enough + water is available from rivers. This is controlled via new namelist + flag, use_groundwater_irrigation. Water can be withdrawn from both + the unconfined (from the soil column) and confined (from wa) + aquifers. + +(2) Irrigation method: sprinkler (above canopy) vs. drip (below + canopy). This can be set on a per-crop and per-gridcell basis on the + surface dataset, but out-of-the-box support for creating the + necessary surface dataset field is not yet in place (see + ESCOMP/ctsm#565). For now, it can be controlled globally via a new + namelist flag, irrig_method_default. The default is drip, which was + what we were previously using implicitly. + +(3) Set crop fsat to zero. This is controlled by a new namelist option, + crop_fsat_equals_zero. + +Default behavior is the same as before for all three options. + +Also: + +- If use_aquifer_layer is false (which is the default for CLM50), no + longer reset wa_col every time step + +- Adds indices to vector history files giving column, landunit and + gridcell indices for each patch, etc. (Resolves ESCOMP/ctsm#81: + "Restart files are different for CLM when run over different number of + tasks" (issue name is a misnomer of the remaining to-dos in that + issue.) + +- Writes 3d time-constant fields on first history file for all tapes, + not just the first + +- Small performance improvements to irrigation + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#81 ("Restart files are different for CLM when run + over different number of tasks", but that name was a misnomer for the + remaining work needed on the issue) + +Known bugs introduced in this tag (include github issue ID): +- ESCOMP/ctsm#565: Surface dataset enhancements needed for irrigation method + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- New namelist variables: + - use_groundwater_irrigation + - irrig_method_default + - crop_fsat_equals_zero +- Partial support for new surface dataset field: irrigation_method + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + +Changes to tests or testing: +- Added two tests of the new irrigation options +- Added an _includes directory to hold things that should be included by + testmods (not used directly) + + +Code reviewed by: Bill Sacks and Sean Swenson reviewed each other's code + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - ok + + Tests pass, namelists differ as expected + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ pass + + ok: tests pass, some answers change as noted below + +CTSM tag used for the baseline comparisons: ctsm1.0.dev019 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (same climate) + + Summarize any changes to answers, i.e., + - what code configurations: Some CLM50 cases that are either cold start + or (unusually) use a CLM45 initial conditions file; it's possible + that non-cold-start configurations would see differences rarely. + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Larger than roundoff, same climate + + Differences arise due to no longer resetting wa_col to + aquifer_water_baseline every time step in BeginWaterBalanceSingle + if use_aquifer_layer is false (which is the default for + CLM50). (This change is needed to conserve water properly with the + new groundwater-based irrigation.) For the most part, wa_col + wasn't being changed when use_aquifer_layer is false (so no longer + resetting it has no effect if groundwater irrigation isn't being + used), but the one exception is the "work around of the negative + liquid water" added by Jinyun Tang in subroutine SoilWater (dated + Jan 14, 2015), which can be exercised when use_flexibleCN is + true. Sean Swenson did some experimentation, and found that the + code that updates wa_col is only exercised in the first time step + of a cold start run, and that finding is borne out in the test + suite results. However, it's possible that there are rare cases + when this is exercised later in a run. + + I have confirmed that this branch is bit-for-bit with the baseline + if I revert the addition of the use_aquifer_layer conditional + around the wa_col resetting in + BeginWaterBalanceSingle. Alternatively, nearly all tests are + bit-for-bit with the baseline if I remove the one line updating + wa_col in subroutine SoilWater (and also remove the endrun for + water balance errors from BalanceCheck); the one exception is the + waccmx_offline test, which uses a CLM45 initial conditions file in + a CLM50 configuration. + + The following tests had baseline failures: + + Cold start tests: + + ERP_D_Ld5.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-allActive + ERP_D_P36x2_Ld3.f10_f10_musgs.I2000Clm50BgcCrop.cheyenne_intel.clm-cropColdStart + ERP_P180x2_D_Ld5.f19_g17.I2000Clm50BgcDvCrop.cheyenne_intel.clm-crop + ERP_P36x2_Lm25.f10_f10_musgs.I2000Clm50BgcDvCrop.cheyenne_intel.clm-monthly + ERP_P72x2_Lm25.f10_f10_musgs.I2000Clm50BgcDvCrop.cheyenne_intel.clm-monthly + + Test that uses a CLM45 initial conditions file in a CLM50 + configuration: + + ERS_D_Ln9_P480x3.f19_g16.I2000Clm50SpGs.cheyenne_intel.clm-waccmx_offline + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/523 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev019 +Originator(s): sacks (Bill Sacks) +Date: Fri Nov 30 13:36:57 MST 2018 +One-line Summary: Rework cold start initialization of wa and zwt + +Purpose of changes +------------------ + +Rework cold start initialization of wa and zwt when use_aquifer_layer is +false to reduce answer changes in upcoming groundwater_irrigation +branch. + +In the groundwater_irrigation branch +(https://github.com/ESCOMP/ctsm/pull/523), Sean Swenson has stopped +resetting wa_col each time step if use_aquifer_layer is false. However, +this leads to having a substantially different value of wa_col when +use_aquifer_layer is false: previously, it was reset to +aquifer_water_baseline each time step, but with Sean's changes, it stays +close to its initial values, which have been 4000 in most places. This +tag changes the initial values to match the value it was being reset to, +so it simply starts at aquifer_water_baseline - so the +every-time-step-resetting to aquifer_water_baseline can be removed +without massively changing the value of wa_col. + +In addition to changing the cold start initialization of wa_col, we are +also changing the cold start initialization of zwt in this case where +use_aquifer_layer is false: The old initialization of zwt wouldn't work +as intended now that we have changed the initial value of wa_col; Sean +Swenson suggested this new initialization method instead. This +initialization to zi(c,nbedrock(c)) is correct if there are no saturated +layers, and close enough for a decent cold start even if there are. + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Sean Swenson + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, answers change as expected for some cases + +CTSM tag used for the baseline comparisons: ctsm1.0.dev018 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (small) + + Summarize any changes to answers, i.e., + - what code configurations: CLM50 cold start or transient (Hist) cases + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + + Larger than roundoff, same climate (not investigated completely + rigorously through long simulations, but Sean Swenson and Bill + Sacks are both pretty confident that the resulting changes will be + small, partly based on difference statistics from the test suite, + and partly based on the fact that the only change in this tag is + in cold start initialization of some values). + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/577 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev018 +Originator(s): sacks (Bill Sacks) +Date: Thu Nov 29 16:03:50 MST 2018 +One-line Summary: Water tracer updates for initial things in driver loop + +Purpose of changes +------------------ + +Update water tracers for initial stuff done in driver loop. This includes +atm2lnd forcings (non-downscaled and downscaled), balance check initialization, +and dyn subgrid updates. + +Broadly speaking, the changes here are: + +(1) Reworked WaterType to make it easier / more robust for other code to loop + over tracers or bulk+tracers + +(2) The most interesting changes are probably the code to update the atm2lnd + water tracers (in Wateratm2lndType.F90 and WaterTracerUtils.F90) + +(3) In various other places, do some infrastructurey stuff (initializing water + balance, doing dyn subgrid stuff) for tracers as well as bulk + +(4) Supporting unit tests and unit test infrastructure + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +Resolves ESCOMP/ctsm#487 +Resolves ESCOMP/ctsm#488 +Resolves ESCOMP/ctsm#489 + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- We have chosen not to set all water tracers as soon as possible, but instead + to do these tracer settings later in the driver loop. This keeps the driver + loop cleaner, but means that you cannot arbitrarily sprinkle calls to + TracerConsistencyCheck throughout the driver. Specifically for this tag: the + non-downscaled, gridcell-level atm2lnd water tracers are not updated until + after the call to downscale_forcings, so tracer consistency checks before that + point would fail. + +Changes to tests or testing: +- Added a PFS test + +Code reviewed by: Portions of the design (and possibly code) have been reviewed +by Mat Rothstein, David Noone and Mariana Vertenstein + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, some answers change as expected + +CTSM tag used for the baseline comparisons: ctsm1.0.dev017 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (roundoff) + + Summarize any changes to answers, i.e., + - what code configurations: many + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + roundoff-level changes in sensible heat flux from precip conversion due to + refactoring this calculation; everything else bit-for-bit + + If bitwise differences were observed, how did you show they were no worse + than roundoff? via summarize_cprnc_diffs to see differences in the test suite + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/572 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev017 +Originator(s): slevis (Samuel Levis, Slevis Consulting LLC,303-665-1310) +Date: Wed Nov 28 14:27:50 MST 2018 +One-line Summary: Merge the collapse2gencrop branch + +Purpose of changes +------------------ + +These changes allow the model to not need to read 16-pft +datasets and rather read 78-pft datasets. The 78-pft datasets were +developed for use with prognostic crops originally. The current changes +allow the model to use the 78-pft datasets in 16-pft runs by +collapsing the crop pfts (cfts) from specific types to the model's +generic crop types. The changes are generic so that the model may still +read 16-pft datasets for 16-pft runs. Ultimately these changes will +permit users to run with any number of pfts, while the ctsm group +maintains a single set of input pft data. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): Fixes #509 (partial) + #509 -- irrigate in 1850 is off for runs with use_crop but on for those without + +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.) + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Changes made to namelist defaults (e.g., changed parameter values): +- maxpatch_pft made obsolete +- nnegcrit was increased because of failure in the TRENDY simulations. +This was done in the source, rather than the namelist but does have an +effect on user behavior. + +Substantial timing or memory changes: No + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + + The "irrigate" attribute should now be removed from all fsurdat files for namelist generation. + Thus irrigate on or off is now an option for non-crop cases. + + +Renamed parameters: +maxpatch_pft is obsolete; remove from namelist-related scripts in future PR +numpft + 1 ---> maxsoil_patches +maxpatch_pft ---> maxsoil_patches in CNDV +numpft ---> maxveg +numpft_ed ---> maxveg_fates + +Several modules were made default private. The list of variables in them +that are public are explicitly listed now: +LakeCon.F90 +clm_initializeMod.F90 +clm_instMod.F90 +clm_varpar.F90 +pftconMod.F90 +subgridAveMod.F90 + +Changes to tests or testing: +New test +New unit tests in test_surfrdUtils.pf, all containing the prefix +test_collapse_crop_types_* + +Code reviewed by: +Erik Kluzek and Bill Sacks + +CTSM testing: +Regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + regular tests (aux_clm): + + cheyenne_intel ---- OK + cheyenne_gnu ------ OK + hobart_nag -------- PASS + hobart_pgi -------- OK + hobart_intel ------ PASS + +CTSM tag used for the baseline comparisons: ctsm1.0.dev016 + +Answer changes +-------------- + +Changes answers relative to baseline: NO + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): #483 + +Sam Levis cloned Erik Kluzek's collapse2gencrop branch and then +tested, corrected errors, resolved conflicts, added unit tests, while +updating to newer tags as needed. + + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev016 +Originator(s): sacks (Bill Sacks) +Date: Thu Nov 1 07:27:48 MDT 2018 +One-line Summary: Update cime, fix FATES DEBUG token, add script to easily run system tests + +Purpose of changes +------------------ + +(1) Update to latest version of cime master + +(2) Update FATES with a minor change: change DEBUG to debug, to allow + working with a preprocessor-defined DEBUG token + +(3) Add a script (run_sys_tests) that allows easily running all system + tests (see + https://github.com/ESCOMP/ctsm/wiki/System-Testing-Guide#running-test-suites-with-the-run-sys-tests-wrapper + for details) + +(4) As part of (3), start work on a CTSM python library and associated + test infrastructure. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Fixes ESCOMP/ctsm#535 (Run Fortran unit tests as part of create_test) + +CIME Issues fixed (include issue #): +- Various - see CIME ChangeLog for details + + +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_0 + +[X] clm4_5 + +[X] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: +- New run_sys_tests wrapper +- Fortran unit tests now run as part of aux_clm + +Code reviewed by: Erik Kluzek + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- ok + hobart ------ ok + + ok means tests pass, baselines fail as expected + +CTSM tag used for the baseline comparisons: ctsm1.0.dev015 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (new presaesro and CO2 datasets) + + Summarize any changes to answers, i.e., + - what code configurations: All I compsets (except spinup test that uses cplhist datm forcing) + - what platforms/compilers: All + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Potentially new climate + + Changes answers for I compsets due to datm update as part of the cime + update: new presaero and CO2 datasets + (https://github.com/esmci/cime/pull/2828) + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +- cime: cime5.7.3 -> cime5.7.5 +- fates: fates_s1.8.1_a3.0.0 -> fates_s1.8.1_a3.0.0_rev2 + +Pull Requests that document the changes (include PR ids): +- https://github.com/escomp/ctsm/pull/493 (Wrapper to system tests, and + start of a ctsm python library) + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev015 +Originator(s): sacks (Bill Sacks) +Date: Sun Oct 28 14:29:30 MDT 2018 +One-line Summary: CMIP6 compset modifiers, usermods for typical output, and other output enhancements + +Purpose of changes +------------------ + +(1) Support %BGC-CROP-CMIP6DECK and %BGC-CROP-CMIP6WACCMDECK compset + modifiers, so that we can turn on the necessary options + (output-related and others) via new CMIP6-specific compsets. + +(2) Turn on carbon isotopes in CMIP6 runs (from Erik Kluzek) + +(3) Remove setting of CCSM_BGC=CO2A in the cmip6 usermods + +(4) Add usermods directories for getting typical extra output that's + wanted in many cases: output_crop, output_crop_highfreq, output_bgc, + output_bgc_highfreq, output_sp, and output_sp_highfreq. These can be + enabled by adding something like '--user-mods-dir output_crop' on + the create_newcase line (that short-hand works for an I compset; for + F or B compsets, you need to provide the full path to the usermod + directory). + +(4) Allow holes in the number of history tapes. Holes are cases where, + for example, we have h0, h1 and h3 tapes, but no h2 tape (because + there are no fields on the h2 tape). (This is needed for (3).) + +(5) Fix reading and writing of 1-d logical global arrays. This fixes + ESCOMP/ctsm#24 for real (rather than just preventing an attempt to + read/write 1-d logical arrays, as was done in the previous 'fix'). + +(6) Add C13_NBP and C14_NBP diagnostic fields (from Keith Oleson) + +(7) Make a bunch of carbon isotope diagnostic fields inactive by default + +(8) Don't allow interpolation (use_init_interp) from a case without + carbon isotopes to a case with carbon isotopes: Due to + https://github.com/ESCOMP/ctsm/issues/67, interpolation from a case + without carbon isotopes to a case with carbon isotopes yields + incorrect initialization values for the carbon isotopes. Now that + we're turning carbon isotopes on via some semi-out-of-the-box + usermods (for cmip6), it is becoming more important to check to make + sure someone doesn't shoot themselves in the foot this way. + +(9) Add tests of the new output usermods as well as of the CMIP6 compset + modifiers + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Fixes #24 for real (ncd_io_1d_log_glob is broken) +- Fixes #529 (Organize usermods_dirs to facilitate running cases with + the right output) + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- New namelist variable, just for testing purposes: + for_testing_allow_interp_non_ciso_to_ciso. This bypasses an error + check, and should only be used in tests. + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: +- Reworked tests of cmip6_deck usermods to use the new + %BGC-CROP-CMIP6DECK compset modifier, and changed f09_g16 to f09_g17 +- Added a test of the %BGC-CROP-CMIP6WACCMDECK compset modifier +- Added tests of output_crop_highfreq, output_bgc_highfreq and + output_sp_highfreq usermods directories +- Note that there are NO tests covering the cmip6_evolving_icesheet + usermods: this usermod directory adds very little beyond cmip6_deck, + so it didn't seem worth its own test + +Code reviewed by: Erik Kluzek + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + unit-tests (components/clm/src): + + cheyenne - pass + + tools-tests (components/clm/test/tools): + + cheyenne - not run + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne_intel ---- pass + cheyenne_gnu ------ pass + hobart_nag -------- pass + hobart_pgi -------- pass + hobart_intel ------ pass + + ERI_D_Ld9.T31_g37.I2000Clm50Sp.cheyenne_intel.clm-SNICARFRC + initially failed COMPARE_base_hybrid, COMPARE_base_rest and BASELINE + comparisons. I reran it and it passed. + + Manually compared all history files from + ERS_Ly3.f10_f10_musgs.I1850Clm50BgcCropCmip6.cheyenne_intel.clm-basic + with baseline + ERS_Ly3.f10_f10_musgs.I1850Clm50BgcCrop.cheyenne_intel.clm-cmip6. They + were all identical. Also compared all history files from + SMS_Ld5_D.f09_g17.I1850Clm50BgcCropCmip6.cheyenne_intel.clm-basic + with baseline + SMS_Ld5_D.f09_g17.I1850Clm50BgcCrop.cheyenne_intel.clm-cmip6. They + were all identical (but note that this basically just compared the + cpl.hi file: the test was too short to produce monthly files.) + +CTSM tag used for the baseline comparisons: ctsm1.0.dev014 + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +- https://github.com/ESCOMP/ctsm/pull/536 - Allow holes in the number of + history tapes and reorganize cmip6 usermods (main PR containing all of + these changes) +- https://github.com/ESCOMP/ctsm/pull/527 - Add carbon_isotope user-mod + directory to turn on c13 and c14 +- https://github.com/ESCOMP/ctsm/pull/539 - Support a %CMIP6DECK compset + modifier + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev014 +Originator(s): sacks (Bill Sacks) +Date: Fri Oct 26 06:20:34 MDT 2018 +One-line Summary: Miscellaneous minor, bit-for-bit bug fixes + +Purpose of changes +------------------ + +Four miscellaneous minor, bit-for-bit bug fixes: + +(1) Py3 pylint check and address cime issue ESMCI/cime#2822 (from Jim + Edwards: ESCOMP/ctsm#526) + +(2) Change uppercase DEBUG variables to lowercase debug (requested by + Jim Edwards to avoid conflicting with the DEBUG CPP token) + (Fixes ESCOMP/ctsm#534) + +(3) Remove unnecessary line of code in LunaMod.F90 that was causing + problems with some compilers due to an uninitialized variable + (Fixes ESCOMP/ctsm#322) + +(4) Add r8 to 0 constant to fix build issue with XLF compiler (from Jim + Edwards: ESCOMP/ctsm#531) + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Fixes ESCOMP/ctsm#322 (ERS_D_Ld5.f19_g16.I2000Clm50BgcCruGs run FAIL (intel)) +- Fixes ESCOMP/ctsm#534 (Rename DEBUG to debug in a few places) + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + +Changes to tests or testing: none + +Code reviewed by: different pieces reviewed by different people + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + unit-tests (components/clm/src): + + cheyenne - pass + + tools-tests (components/clm/test/tools): + + cheyenne - not run + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne_intel ---- ok + cheyenne_gnu ------ ok + hobart_nag -------- ok + hobart_pgi -------- ok + hobart_intel ------ ok + + ok means tests and baseline comparisons pass. There were unexpected + NLCOMP diffs. From spot-checking a few tests, I see the following: + + + (1) On both cheyenne and hobart: Diffs in logfile. This looks like a + problem in cime: it says: + + BASE: logfile = 'rof.log.136342.hobart.cgd.ucar.edu + COMP: logfile = 'rof.log + + (2) On hobart: Diffs in pio_typename: netcdf vs. pnetcdf (says that + new uses pnetcdf): but when I compare files by hand, they look + the same in this respect (both baseline and new use netcdf), so + maybe this is due to a problem in the timing of when nlcomp is + run? + + Since these both look like problems in the comparison script rather + than in the tag, I'm letting these go, but will open a cime issue if + we see this again. + + +CTSM tag used for the baseline comparisons: ctsm1.0.dev013 + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +- https://github.com/ESCOMP/ctsm/pull/531 (fix build issue with xlf compiler) +- https://github.com/ESCOMP/ctsm/pull/526 (fix cime issue 2822 and pylint chk) + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev013 +Originator(s): erik (Erik Kluzek)/slevisconsulting +Date: Thu Oct 25 18:09:47 MDT 2018 +One-line Summary: Fix the fact that transient Bgc and SP cases had constant crop area in time + +Purpose of changes +------------------ + +Fix transient non-crop cases that had constant crop area so that crop area will change in time +(and hence natural veg area will also change corresponding to it). + +Also bring in changes to update mksurfdata_map to handle SSP-RCP future scenarios. Right now +it can handle SSP5-8.5 out of the box. Also add a new test for that. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #538 + #538 -- In transient pft simulations with use_crop=.false., %crop does not advance from 1850 values + +Known bugs found since the previous tag (include github issue ID): #545 + #545 -- Antarctica ice shelves are being treated as wetlands rather than glaciers + + +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_0 + +[X] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): A few more namelist checks + Added a check to make sure do_transient_pfts was the same as do_transient_crops + Don't allow use_fertilizer for non-crop case + namelist checks that create_crop_landunit=T except for FATES + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + New -ssp_rcp option to mksurfdata.pl + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): New mksrfpft datasets in XML for SSP5-8.5 + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + Now, do_transient_pfts and do_transient_crops only work in unison, and hence + should be simplified to one logical called do_transient_veg + +Changes to tests or testing: Add new SSP5-8.5 mksurf test + +Code reviewed by: self, slevisconsulting, billsacks + +CTSM testing: regular, tools + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (18 of the transient test namelists are different to baseline as expected) + + unit-tests (components/clm/src): + + cheyenne - PASS + + tools-tests (components/clm/test/tools): + + cheyenne - OK (PTCLM tests fail) + + regular tests (aux_clm): + + cheyenne_intel ---- OK + cheyenne_gnu ------ OK + hobart_nag -------- OK + hobart_pgi -------- OK + hobart_intel ------ OK + +CTSM tag used for the baseline comparisons: ctsm1.0.dev012 + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes! (Important) + + Summarize any changes to answers, i.e., + - what code configurations: clm4_5/clm5_0 transient simulations without Crop (either Bgc or SP) + - what platforms/compilers: All + - nature of change: crop areas increase in time and impact simulations + + If this tag changes climate describe the run(s) done to evaluate the new + climate (put details of the simulations in the experiment database) + - casename: dll/clm50_r267_1deg_GSWP3V1_iso_hist_nocrop_transientfix + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): #546, #540 +(https://github.com/ESCOMP/ctsm/pull) + + #546 -- Add in ability for mksurfdata_map to handle ssp_rcp scenarios and specifically SSP5-8.5 + $540 -- Transient PFT issue + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev012 +Originator(s): erik (Erik Kluzek) +Date: Sat Sep 29 11:49:35 MDT 2018 +One-line Summary: Add snow-free fields for snowmip, fix several issues + +Purpose of changes +------------------ + +Bring in new diagnostic fields added by Justin Perket, Sean Swenson and Mark Flanner +for Snow-MIP. Most of those are fields that represent "Snow Free" data. + +Also bring in fixes for a list of issues. Add handling of the new CO2 which includes +both latitude-band and global average versions. Add some changes to make it easier +for input data processing including NOT doing the slow 1km map file creation. Have +the number of steps that are skipped at startup dependent on the time-step size. Add +a test for some requirements of WACCMX (time-step and use of ESMF). Calculations of +local time are now done in a global subroutine, that can handle negative longitudes. +Fix how FFIX_TO_SMINN is handled for history output. The namelist logical "calc_human_stress_indices" +changed from logical to a character string of three values: FAST, NONE, ALL. FAST +is the default so the less expensive ones are output, NONE turns them all off, and ] +ALL does all of them including the expensive ones. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #428, #474, #475, #476, #450, #482, #481, #491 + Fix #428 -- Update getco2_historical.ncl to handle latitude varying CO2 + Fix #474 -- Add ability to send GRIDFILE to regridbatch.sh script + Fix #475 -- Have number of steps to skip balance-check based on time + Fix #476 -- Add a test for WACCMX standalone + Fix #450 -- Add option to use global average of terrain standard deviation on surfdata files + (partial fix with simplest option) + Fix #482 -- Add extra field on CO2 streams file for global/time-averaged data + Fix #481 -- FFIX_TO_SMINN needs to be output when FUN is on + Fix #491 -- Calculations of local noon assume that longitude is 0 to 360 rather than -180 to 180 + +Known bugs introduced in this tag (include github issue ID): cime#2801 + cime#2801 -- Problem building with ESMF_LIB + +Known bugs found since the previous tag (include github issue ID): #507, #505 + #507 -- Albedo's are bad at night with negative longitudes + #505 -- CTSM input data-set tools can only work on 0-360 grids, and require monotone increasing longitude + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + + New namelist: + use_ssre -- Turn on show free fields needed for SnowMIP + + Changed namelist: + calc_human_stress_indices changed from logical to character with options: ALL, FAST, NONE + + New history fields: + Mostly added Snow Free (SF) fields + ALBDSF + ALBISF + FSRSF + FSRSFND + FSRSFNDLN + FSRSFNI + FSRSFVD + FSRSFVDLN + FSRSFVI + SSRE_FSR + SSRE_FSRND + SSRE_FSRNDLN + SSRE_FSRNI + SSRE_FSRVD + SSRE_FSRVDLN + SSRE_FSRVI + +Changes made to namelist defaults (e.g., changed parameter values): + calc_human_stress_indices = 'FAST' is now the default + +Changes to the datasets (e.g., parameter, surface or initial files): + mkghg_bndtvghg -- Update with new CO2 files, both monthly, lat-bands and yearly, global + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + I was able to reduce the duplication in SurfaceAlbedoMod where the original implementation added a cut + and paste copy of code. But, there is still a lot of duplication in this file that could be improved, by + making smaller functions/subroutines to do sections of code that are essentially repeated many times. + There's a bit of an increase in complexity to reduce the duplication, but reducing the duplication was worth it. + +Changes to tests or testing: + Add a new waccmx_offline test mods and test with it + New test expected fail because of cime issue: ERS_D_Ln9_P480x3.f19_g16.I2000Clm50SpGs.cheyenne_intel.clm-waccmx_offline + Turn use_ssre on for most tests, off for reducedOutput + And set calc_human_stress_indices=NONE for reducedOutput, FAST for most, and ALL for KitchenSink and KSMOut tests + +Code reviewed by: self, @olyson, @billsacks + + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS + + unit-tests (components/clm/src): + + cheyenne - PASS + + regular tests (aux_clm): + + cheyenne_intel ---- OK + cheyenne_gnu ------ OK + hobart_nag -------- OK + hobart_pgi -------- OK + hobart_intel ------ OK + +CTSM tag used for the baseline comparisons: ctsm1.0.dev011 + + +Answer changes +-------------- + +Changes answers relative to baseline: no bit-for-bit + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): No + +Pull Requests that document the changes (include PR ids): #462 #449 +(https://github.com/ESCOMP/ctsm/pull) + + #462 -- Add namelist item to calculate all heat stress indices only if requested; to speed up model + #449 -- Bring in snowmip diagnostic fields + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev011 +Originator(s): sacks (Bill Sacks), mvr (Mathew Rothstein) +Date: Wed Sep 12 10:50:31 MDT 2018 +One-line Summary: Add water tracer consistency checks, and other water tracer work + +Purpose of changes +------------------ + +1. Add water tracer consistency checks + +2. Add infrastructure for looping over all water tracers - currently + just used for the tracer consistency checks + +3. Breakout of atm2lnd and lnd2atm water variables, needed for water tracers + +4. Add some namelist control over the addition of water tracers + +5. Add a system test that exercises the water tracer consistency checks + +6. Add a 'ratio' variable for each water tracer + +7. Add some unit tests of the new water tracer infrastructure + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Partially addresses #357 +- Resolves #479 +- Resolves #492 + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): +- Don't be fooled by the new namelist variable, enable_water_isotopes: + This is just a place-holder for now, not implying that water isotopes + are actually working. + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): +- New namelist variables: enable_water_tracer_consistency_checks and + enable_water_isotopes. The latter is just a place-holder for now. + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: New test that runs the water tracer consistency check + I ran this test on cheyenne_gnu and cheyenne_intel along with the + out-of-the-box hobart_nag version + +Code reviewed by: Mat Rothstein and I have worked together on many of +these changes, but not all code has been reviewed by the other. + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - ok (tests pass, clm4_5 and clm5_0 namelists differ from + baseline as expected) + + unit-tests (components/clm/src): + + cheyenne - pass + + tools-tests (components/clm/test/tools): + + cheyenne - not run + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne_intel ---- pass + cheyenne_gnu ------ pass + hobart_nag -------- pass + hobart_pgi -------- pass + hobart_intel ------ pass + +CTSM tag used for the baseline comparisons: ctsm1.0.dev010 + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +- https://github.com/ESCOMP/ctsm/pull/497 + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev010 +Originator(s): sacks (Bill Sacks) +Date: Thu Aug 30 17:14:28 MDT 2018 +One-line Summary: Update cime to cime5.7.3 + +Purpose of changes +------------------ + +Update cime from cime5.6.10 to cime5.7.3. To support this change, there +are also minor code changes related to the pause-resume implementation +(from Erik Kluzek). + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- ESCOMP/ctsm#384 (VIC test is failing at f09 resolution with signal) + (I'm not sure what fixed this, but it's passing now) + +CIME Issues fixed (include issue #): many + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + unit-tests (components/clm/src): + + cheyenne - pass + + tools-tests (components/clm/test/tools): + + cheyenne - not run + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne_intel ---- pass + cheyenne_gnu ------ pass + hobart_nag -------- pass + hobart_pgi -------- pass + hobart_intel ------ pass + +CTSM tag used for the baseline comparisons: ctsm1.0.dev009 + + +Answer changes +-------------- + +Changes answers relative to baseline: NO - bit-for-bit + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): +cime: cime5.6.10 -> cime5.7.3 + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev009 +Originator(s): sacks (Bill Sacks) +Date: Wed Aug 22 20:32:36 MDT 2018 +One-line Summary: Fix initialization of AnnET in InitAccVars + +Purpose of changes +------------------ + +InitAccVars was mistakenly setting qflx_evap_tot_col rather than +AnnET. This fix allows us to remove now-redundant cold start and restart +code for AnnET. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Fixes #480 +- Partially addresses #285 + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: basic proposed changes reviewed by Erik Kluzek + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + unit-tests (components/clm/src): + + cheyenne - pass + + tools-tests (components/clm/test/tools): + + cheyenne - not run + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne_intel ---- pass + cheyenne_gnu ------ pass + hobart_nag -------- pass + hobart_pgi -------- pass + hobart_intel ------ pass + +CTSM tag used for the baseline comparisons: ctsm1.0.dev008 + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): none + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev008 +Originator(s): erik (Erik Kluzek) +Date: Tue Aug 14 10:25:12 MDT 2018 +One-line Summary: Update 1850 ndep file and last year for streams for Historical transient cases + +Purpose of changes +------------------ + +Bring in changes from release-clm5.0.05. Update to latest Nitrogen Deposition file from simulations with WACCM for 1850. +Also fix an issue with the last year for historical transient cases. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): 461 + #461 -- increase last year in streams for transient + +Known bugs found since the previous tag (include github issue ID): [If none, remove this line] + #478 -- Bare soil g1 should be missing value or zero + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): Last year extended for transient datasets + +Changes to the datasets (e.g., parameter, surface or initial files): New ndep dataset for 1850 + +Substantial timing or memory changes: + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: Lengthen some tests + +Code reviewed by: self + + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (11 show differences for 1850_control and 20thC_transient) + + unit-tests (components/clm/src): + + cheyenne - PASS + + regular tests (aux_clm): + + cheyenne_intel ---- OK + cheyenne_gnu ------ OK + hobart_nag -------- OK + hobart_pgi -------- OK + hobart_intel ------ OK + +CTSM tag used for the baseline comparisons: ctsm1.0.dev007 + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes! (ndep files, and steams years) + + Summarize any changes to answers, i.e., + - what code configurations: 1850_control or 20thC_transient for Clm50 + - what platforms/compilers: all + - nature of change: similar climate + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + + #477 -- Move changes from release-clm5.0.05 onto master + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev007 +Originator(s): sacks (Bill Sacks) +Date: Sun Aug 5 21:03:28 MDT 2018 +One-line Summary: Avoid glacier dynamic landunit adjustments in first time step + +Purpose of changes +------------------ + +Always avoid generating dynamic landunit adjustments for glacier area +changes in the first timestep of a startup or hybrid run - not just for +cold start or interpolated start. See the detailed discussion in +https://github.com/ESCOMP/ctsm/issues/340 for rationale. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Fixes #340 (Avoid generating dynamic landunit adjustment fluxes for + glacier changes in the first timestep) + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Erik Kluzek + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + unit-tests (components/clm/src): + + cheyenne - not run + + tools-tests (components/clm/test/tools): + + cheyenne - not run + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne_intel ---- ok + cheyenne_gnu ------ pass + hobart_nag -------- pass + hobart_pgi -------- pass + hobart_intel ------ pass + + ok means tests pass; baseline failures as expected in these two + tests that do not use init_interp: + + FAIL ERI_N2_Ld9.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-default BASELINE ctsm1.0.dev006 + FAIL SMS_Lm13.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-cropMonthOutput BASELINE ctsm1.0.dev006 + + (The glacier area on the finidat file used in these tests - + clmi.I2000Clm50BgcCrop.2011-01-01.1.9x2.5_gx1v7_gl4_simyr2000_c180715.nc + - seems to have come from an finidat_interp_dest file, and thus does + not match the glacier area from CISM.) + +CTSM tag used for the baseline comparisons: ctsm1.0.dev006 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (small) + + Summarize any changes to answers, i.e., + - what code configurations: Startup / Hybrid runs that include CISM + (even NOEVOLVE) and do not use init_interp, due to: + - different PE layout in new case vs. the one that generated the + finidat (roundoff-level diffs) + - different glacier area on finidat file vs. what's in CISM + (greater than roundoff-level diffs) + - what platforms/compilers: all + - nature of change (roundoff; larger than roundoff/same climate; new climate): + Roundoff-level for different PE layout, larger than roundoff but + should be same climate when there is different glacier area on the + finidat file vs. what's in CISM + + The differences arise from dynamic landunit adjustments of the + below-ground C and N states in the old code, as CTSM adjusts its + areas to match CISM's. In the new code, there are no C and N + adjustments in the first time step from this adjustment. + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +- #470 (Avoid glacier dynamic landunit adjustments in first time step) + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev006 +Originator(s): sacks (Bill Sacks) +Date: Sat Aug 4 07:48:09 MDT 2018 +One-line Summary: Minor bug fixes, cleanup, documentation and enhancements + +Purpose of changes +------------------ + +A collection of minor bug fixes, code cleanup, documentation and +enhancements, all bit-for-bit. See list of issues fixed below for +details. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Fixes #24 (ncd_io_1d_log_glob is broken) +- Fixes #120 (Incorrect comments in Biogeophysics1Mod.F90 +- Fixes #217 (Change some cheyenne_gnu tests to cheyenne_intel) +- Fixes #245 (Put all .gitignore entries in top-level file) +- Fixes #272 (Code should error on missing mxsoil_color when SOIL_COLOR + is used) +- Fixes #283 (Add more helpful message about need to do init_interp with + wrong number of vertical layers) +- Fixes #367 (For cmip6 runs: Turn on cpl hist output needed to drive a + TG compset) +- Fixes #412 (Fix documentation of init_interp_method) +- Fixes #419 (Do not allow SOYFIXN diagnostic field with FUN) +- Fixes #464 (Some lines longer than 132 characters) +- Fixes #465 (Remove backwards compatibility check for snw_rds) +- Fixes #467 (Increase wallclock limit for test) + + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: +- Changed a single-point test from gnu to intel to get better debugging + information + (SMS_D_Ly6_Mmpi-serial.1x1_smallvilleIA.IHistClm45BgcCropQianGs.cheyenne_intel.clm-cropMonthOutput) +- For some single-point tests on both gnu and intel: removed one + compiler, keeping the tests on just one + +Code reviewed by: self + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + unit-tests (components/clm/src): + + cheyenne - pass + + tools-tests (components/clm/test/tools): + + cheyenne - not run + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne_intel ---- pass + cheyenne_gnu ------ pass + hobart_nag -------- pass + hobart_pgi -------- pass + hobart_intel ------ pass + + NLCOMP failures as expected for tests with the cmip6 test mod + + Some long single-point gnu tests failed due to running out of + wallclock time; I have removed these, just keeping them on intel + (along with removing a few other tests after I ran the testing - see + commit 5c226bdf): + + FAIL ERS_Lm54_Mmpi-serial.1x1_numaIA.I2000Clm50BgcCropGs.cheyenne_gnu.clm-cropMonthOutput RUN time=4803 + FAIL ERS_Ly6_Mmpi-serial.1x1_smallvilleIA.IHistClm50BgcCropGs.cheyenne_gnu.clm-cropMonthOutput RUN time=6024 + + +CTSM tag used for the baseline comparisons: ctsm1.0.dev005 + + +Answer changes +-------------- + +Changes answers relative to baseline: NO - bit-for-bit + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +- #392 (Remove old code for snw_rds restart that looks no longer needed) +- (Other changes not documented in PRs) + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev005 +Originator(s): sacks (Bill Sacks), mvr (Mathew Rothstein) +Date: Fri Aug 3 07:54:59 MDT 2018 +One-line Summary: Rework water data types to accommodate isotopes and other tracers + +Purpose of changes +------------------ + +This tag reworks the various water data types to allow having multiple +instances of variables that are needed for isotopes and other water +tracers. + +Specific changes include: + +(1) Separated "water state" variables into state, diagnostic and balance + check-related variables. This separation was not essential for the + work here, but was desired by Martyn Clark and others. + +(2) For each of water state, diagnostic and flux variables, separated + variables into those needed for both bulk and tracers vs. those only + needed for bulk. This way, we can have multiple instances of the + variables needed by tracers, but only a single instance of variables + that only apply to bulk water. This follows the design laid out in + https://github.com/escomp/ctsm/pull/395. The separation was based + largely on what was done in the old water isotope branch; we didn't + put a lot of thought into this, because the new design allows us to + easily migrate variables between bulk-only and bulk-and-tracer as + needed. + +(3) Moved water fluxes that were defined in science modules back into + waterflux_type or waterfluxbulk_type. This was needed for (2); there + is more discussion on this in + https://github.com/escomp/ctsm/pull/395 and the log message for + commit 711e5cd7. + +(4) Introduced a top-level water_type that holds instances of all of the + other water-related objects. This follows the design laid out in + https://github.com/escomp/ctsm/pull/395. This is particularly + valuable for the tracer instances: the logic related to number of + tracers can be encapsulated in water_type, rather than infiltrating + clm_instMod. + +(5) Added placeholders for water tracer instances + +(6) Added infrastructure to generate history / restart field names for + the tracer instances. Eventually, the isotope class can also hold + information specific to each isotope. + +This work was a joint effort between Mathew Rothstein and myself; Mat +gets much of the credit for the actual refactoring done here. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Fixes #358 (Separate WaterStateType into multiple types) +- Fixes #434 (Separate WaterFluxType into a base class and a class that just applies to bulk) +- Fixes #359 (Set up infrastructure for multiple instances of WaterState and WaterFlux types) +- Fixes #458 (Implement handling of history and restart variables for water tracers) + +Known bugs introduced in this tag (include github issue ID): +- #464 (Some lines longer than 132 characters) +- #456 (Remove backwards compatibility check for snw_rds) (not a + newly-introduced issue, but it's more important to fix this with the + separation of waterstate_type) + +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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): none + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): +- Water tracers are not yet functional - they are just placeholders +- Whether to use water tracers and which water tracers to use are + currently hard-coded; eventually, this should be namelist-controlled + +Changes to tests or testing: none + +Code reviewed by: Mathew Rothstein and Bill Sacks worked together on +these changes and reviewed each other's changes to some extent. The +high-level design was also reviewed and co-developed by Mariana +Vertenstein. Martyn Clark contributed substantially to the breakout of +water state into state, diagnostic and balance check-related variables. + + +CTSM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + unit-tests (components/clm/src): + + cheyenne - pass + + tools-tests (components/clm/test/tools): + + cheyenne - not run + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne_intel ---- pass + cheyenne_gnu ------ pass + hobart_nag -------- pass + hobart_pgi -------- pass + hobart_intel ------ pass + +CTSM tag used for the baseline comparisons: ctsm1.0.dev004 + + +Answer changes +-------------- + +Changes answers relative to baseline: NO - bit-for-bit + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +- https://github.com/escomp/ctsm/pull/395 (documents the high-level design) + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev004 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Wed Jul 18 02:10:23 MDT 2018 +One-line Summary: Add some new diagnostic fields, fix a few issues, update cmip6 output + +Purpose of changes +------------------ + +Add some new diagnostic fields. Some needed for CMIP6. Update the CMIP6 user-mods output. +Fix a couple issues. Get full list of history tapes working correctly. Check for valid range +of CO2. New IC file interpolated from the previous one for f19_g17_gl4 for 2000 Clm50BgcCrop. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): $210, #427, #429 + #210 -- increase number of history tapes + $427 -- Check for zero CO2 + #429 -- New IC for present day + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? No +(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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): New history fields + TSKIN --- skin temperature + TSL ----- temperature of near-surface soil layer + GSSUNLN - sunlit leaf stomatal conductance at local noon + GSSHALN - shaded leaf stomatal conductance at local noon + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): New finidat file f19_g17_gl4 2000 Clm50BgcCrop + New file is just interpolate from the previous file to a f19_g17_gl4 gridfor Clm50BgcCrop and 2000 simulation year + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in .CLMTrunkChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + +Changes to tests or testing: None + +Code reviewed by: self, oleson, abtawfik + + +CTSM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - OK (95 are different because of finidat file change) + + unit-tests (components/clm/src): + + cheyenne - PASS + + regular tests (aux_clm): + + cheyenne_intel ---- OK + cheyenne_gnu ------ OK + hobart_nag -------- PASS + hobart_pgi -------- FAIL + hobart_intel ------ PASS + +CTSM tag used for the baseline comparisons: ctsm1.0.dev003 + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes -- only 2000 cases because of new IC + + Summarize any changes to answers, i.e., + - what code configurations: Just 2000 cases + - what platforms/compilers: All + - nature of change: same climate + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + + + #338 -- Radtemp and other new diagnostic fields + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev003 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Sun Jul 15 00:26:46 MDT 2018 +One-line Summary: Update cime/cism to work on upgraded hobart and with glade changes on cheyenne + +Purpose of changes +------------------ + +Update cime and cism so can work on upgraded hobart. Also fix an issue that the Nag6.2 compiler found +in CTSM. Also get working with glade changes that happened on cheyenne, DIN_LOC_ROOT_CLMFORC was +changed to a new directory. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): [If none, remove this line] + #441 -- Changes in glade invalidate previous softlinks and data locations + #438 -- Illegal argument aliasing caught by nag6.2 + #433 -- with hobart upgrade CTSM not working + +Known bugs introduced in this tag (include github issue ID): + #444 -- PGI fails on cheyenne and hobart + +Known bugs found since the previous tag (include github issue ID): + #443 -- Wood C:N ratios + #440 -- leafcn_max < target leafcn? + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? No +(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.] + +[ ] clm5_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CLM's user interface (e.g., new/renamed XML or namelist variables): DIN_LOC_ROOT_CLMFORC on cheyenne + DIN_LOC_ROOT_CLMFORC was change on cheyenne + +Changes made to namelist defaults (e.g., changed parameter values): None + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in .CTSMTrunkChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): None + +Changes to tests or testing: path for cheyenne specific test had to be changed + Add some gnu tests on hobart + Lengthen wallclock on a test + Fix path for DA test_mod + +Code reviewed by: self + +CLM testing: regular + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS + + unit-tests (components/clm/src): + + cheyenne - PASS + + tools-tests (components/clm/test/tools): + + cheyenne - PASS + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + cheyenne - OK + + regular tests (aux_clm): + + cheyenne_intel ---- OK + cheyenne_gnu ------ OK + hobart_nag -------- OK + hobart_pgi -------- FAIL + hobart_gnu -------- PASS + hobart_intel ------ PASS + +CLM tag used for the baseline comparisons: ctsm1.0.dev002 + + +Answer changes +-------------- + +Changes answers relative to baseline: No bit-for-bit + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): cime, cism + cism-wrapper to release-cesm2.0.04 + cime to cime5.6.10 + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + #444 -- Get working on upgraded hobart and with glade changes on cheyenne + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev002 +Originator(s): erik (Erik Kluzek) +Date: Fri Jul 6 16:33:03 MDT 2018 +One-line Summary: Fix NFIX flux variables so special land-units are zeroed out, tools update, add some *_MAX fields on mksurfdata_map for transient cases + +Purpose of changes +------------------ + +Nitrogen Fixation flux arrays were being set to missing value over non-vegetated landunits. This sets them to zero everywhere +and averages in the zero's at the gridcell level for history output. It also reads in restarts with missing values and converts +them to zero's. + +There are also some tools updates, getting the tools working on the new upgraded hobart.cgd.ucar.edu. + +And mksurfdata_map is updated to add some *_MAX files on the landuse.timeseries files that will allow us to conserve memory +for transient cases. + + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): #435, #436, #433 (for tools) + #435 -- intel build for tools + #426 -- Nitrogen Fixation flux variables + #433 -- hobart broken, got it working for tools + +Known bugs found since the previous tag (include github issue ID): #433, #431 + + #433 -- with hobart upgrade, hobart build isn't working + #431 -- When set_* options are used to hist_addfld be careful of ordering + +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_0 + +[ ] clm4_5 + +[ ] clm4_0 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): None + +Changes to CLM's user interface (e.g., new/renamed XML or namelist variables): None + +Changes made to namelist defaults (e.g., changed parameter values): ndep file updated for clm5_0 for 1850 + +Changes to the datasets (e.g., parameter, surface or initial files): None + +Substantial timing or memory changes: None + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in .CLMTrunkChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): NFIX flux variables + NFIX flux variables when read from restart have special-values (missing on non veg landunits) converted to zero's + They are now initialized to zero everywhere. + +Changes to tests or testing: None + +Code reviewed by: self, wwieder, and lawrence, sacks (mksurfdata_map code) + +CLM testing: regular (although none on hobart!) + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS (5 tests differ from previous version) + + unit-tests (components/clm/src): + + cheyenne - PASS + + tools-tests (components/clm/test/tools): + + cheyenne - PASS + hobart --- PASS + + regular tests (aux_clm): + + cheyenne_intel ---- OK + cheyenne_gnu ------ OK + +CLM tag used for the baseline comparisons: ctsm1.0.dev001 + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes, clm5_0 BGC configurations with FUN and clm5_0 with BGC for new 1850 ndep file + + Summarize any changes to answers, i.e., + - what code configurations: All clm5_0 BGC due to NFIX fields, and clm5_0 1850 BGC due to new ndep file + - what platforms/compilers: All + - nature of change: similar climate + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): None + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + + #437 -- ChangeLog template + #432 -- nfix + #331 -- _MAX fields on mksurfdata_map + +=============================================================== +=============================================================== +Tag name: ctsm1.0.dev001 +Originator(s): sacks (Bill Sacks) +Date: Fri Jun 22 07:31:43 MDT 2018 +One-line Summary: Begin separating SoilHydrology flux calculations + +Note the new tag naming: Starting with this tag, we are naming tags +"ctsm..." rather than "clm...". We are starting with ctsm version 1, +which for now is nearly the same as clm version 5. We are moving to this +new tag naming now because: + +(1) The changes in this tag represent the first step towards + implementing the CTSM vision (separating the biogeophysics flux + calculations from state updates, making it easier to plug in + alternative parameterizations, etc.). + +(2) This tag changes answers relative to the CLM5 release. (We expect + the climate to be the same, but we haven't tested this carefully + yet.) + +Purpose of changes +------------------ + +First steps toward separating various flux calculations in the soil +hydrology code. The focus here is on saturated surface runoff and +infiltration excess runoff. The changes here separate flux calculations +from state updates and extract various calculations into their own +subroutines to facilitate swapping in alternative parameterizations. + +Most of the changes here are refactorings that are either bit-for-bit or +just introduce roundoff-level differences. However, there are also a few +larger answer changes, as described below. + +These are the greater-than-roundoff-level answer changes: + +(A1) Use full qflx_surf in BGC code. Previously, the subroutines ch4 and + SoilBiogeochemNLeaching had been using a flux that excluded surface + water runoff (qflx_h2osfc_surf). That was deemed to be incorrect + (by Dave Lawrence and others), so these BGC subroutines have been + changed to use the full surface runoff (saturated excess runoff + + infiltration excess runoff + h2osfc runoff). + + Configurations affected: BGC compsets + + Magnitude of change: Larger than roundoff; expected to be same + climate, but not investigated carefully + +(A2) VIC: Don't ever use the TOPModel formulation for SurfaceRunoff + + The code was using the TOPModel-based formulation for SurfaceRunoff + if frost_table > zwt_perched. Sean Swenson felt this shouldn't be + done, and refactoring will be easier if VIC always uses the + vic-looking formulation, so I'm stopping applying this formulation + when using VIC. + + Configurations affected: VIC compsets + + Magnitude of change: Larger than roundoff; not investigated carefully + +(A3) VIC: Remove infiltration excess runoff + + Martyn Clark reviewed the VIC implementation, and felt that the + current implementation of infiltration excess runoff is + inconsistent with the standard VIC implementation. It appears that + what was being called VIC's infiltration excess runoff was actually + just an attempt to give a better numerical approximation to the + solution for saturated surface excess runoff. So deleting this + leaves only a first-order approximation to VIC's saturated surface + excess runoff. + + Eventually we may want to put in place a more accurate solution for + VIC's saturated surface excess runoff. But Martyn's feeling is that + this can come in with other changes we want to make regarding + numerical solutions in CTSM. + + Configurations affected: VIC compsets + + Magnitude of change: Larger than roundoff; expected to be same + climate, but not investigated carefully + +(A4) Change in QOVER diagnostic field: now includes QH2OSFC. + +These are the major refactorings (either bit-for-bit or just +roundoff-level differences): + +(R1) Extract surface runoff to its own module, and other modularization + related to what used to be subroutine SurfaceRunoff: extract a + subroutine for each fsat method, move urban surface runoff code + into different routines. + +(R2) Extract infiltration excess runoff to its own module, and other + modularization related to what used to be subroutine Infiltration. + +NOTE: For a detailed breakdown of changes, including documentation of +which changed changed answers, see the file ChangeLog_branch which was +deleted from this branch shortly before it was merged to master. + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Fixes #424 (decStart testmod is missing an `--append` in an xmlchange command) + + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): + +Changes to CLM'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: + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in .CLMTrunkChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + +Changes to tests or testing: +- Shortened a 25-month f19 test to 13-months + (SMS_Lm13.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-cropMonthOutput): + This test took a long time to run, and we already have long tests of + this configuration at coarse-resolution. I suggested removing this + test entirely, but Erik Kluzek wanted to maintain a shortened version + of it. Erik's comments were: + + How about either flip it to f45 (because Rosie is using that + resolution for science) -- or leave it at f19 and have it run for 9 + months? The 25 months was to take it just past the 2-year spinup + time. From spunup initial conditions 9-months pretty much does a + full harvest cycle. f19 and f09 are the main configurations for + science and it would be good to have something longer than just + really short tests. + + I decided on Lm13, because this still completes in significantly less + than 2-hours, and if we're running for 9 months anyway, it seems + valuable to finish out the year and run a bit into the next year, + since some crop stuff triggers at the end of the year. + +Code reviewed by: Various code reviews done last Fall, when these +changes were first implemented. + +CLM testing: + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - not run + + unit-tests (components/clm/src): + + cheyenne - PASS + + tools-tests (components/clm/test/tools): + + cheyenne - not run + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne_intel ---- OK + cheyenne_gnu ------ OK + hobart_nag -------- OK + hobart_pgi -------- OK + hobart_intel ------ OK + + OK means tests pass, answers change as expected. + +CLM tag used for the baseline comparisons: clm5.0.dev013 + + +Answer changes +-------------- + +Changes answers relative to baseline: YES (roundoff) + + Summarize any changes to answers, i.e., + - what code configurations: Essentially all (except CLM4) + - what platforms/compilers: All + - nature of change (roundoff; larger than roundoff/same climate; new climate): + + Roundoff-level changes for nearly all configurations (except CLM4). + + Greater-than-roundoff-level changes for the following + configurations: + - BGC: see (A1) note above (expected to be same climate, but not + investigated carefully) + - VIC: see (A2) and (A3) notes above (magnitude of change not + investigated carefully) + - QOVER diagnostic field: see (A4) note above + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +- https://github.com/ESCOMP/ctsm/pull/244 +- https://github.com/ESCOMP/ctsm/pull/190 +- Other PRs that existed on the old NCAR/clm-ctsm repository (which has + been deleted), which were not migrated to the new repository + +=============================================================== diff --git a/doc/design/design_doc_template.md b/doc/design/design_doc_template.md new file mode 100644 index 0000000000..dc487c1598 --- /dev/null +++ b/doc/design/design_doc_template.md @@ -0,0 +1,55 @@ +# Software Design Documentation + +Project Name + + +**Date:**: + +**Written By**: + +## Introduction +--------------------------------------- +*What is the goal of the software? What is the problem statement?* + +If there are any specification documents, link them in Appendix. + +## Solutions +--------------------------------------- +*Section should include alternative implementations/solutions* + +Is it feasible? How much effort does it need for each approach? Pros/cons of each approach. + +Document alternatives, why you made the decision and how it will affect the team and project. + +## Design Considerations +--------------------------------------- +Describe the issues that need to be addressed before creating a design solution. + +### Assumptions and Dependencies: +Describe any assumptions that may be wrong or any dependencies on other things + +### General Contraints: +Describe any constraints that could have an impact on the design of the software. + +## Design and Architecture +--------------------------------------- + +### System diagram or flowchart +Interaction diagram of various inputs, outputs, sub systems and dependencies. + +### Algorithm or Pseudo code for main components +Describe your logic in this section + +## Rollout Plan +--------------------------------------- +Define the roll-out phases and tests you plan to do + +## Appendix +--------------------------------------- +References, links to additional documentation + +## Review Sign-off +--------------------------------------- +* Reviewer(s): + +*Sign-off Completed on YYYY-MM-DD* diff --git a/doc/design/dynamic_urban.rst b/doc/design/dynamic_urban.rst new file mode 100644 index 0000000000..0ca5d488f4 --- /dev/null +++ b/doc/design/dynamic_urban.rst @@ -0,0 +1,45 @@ +.. sectnum:: + +.. contents:: + +================================== + Overview of this design document +================================== + +This documents some of the high-level design decisions made during implementation of +dynamic urban landunits. + +============================================================================ + The use of dzsoi_decomp for urban landunits to calculate totcolch4 in ch4Mod.F90 +============================================================================ +During the first test simulation for dynamic urban, we encountered a methane conservation +error the first time PCT_URBAN changed. The dynamic adjustments for conc_ch4_sat_col and +conc_ch4_unsat_col (the column_state_updater in subroutine DynamicColumnAdjustments within +ch4Mod.F90) were distributing non-zero values for roof and walls for layers 1,nlevsoi. +When the total column ch4 is summed over the soil layers (or in this case, urban layers), the +summation is done over nlevsoi, not nlevurb, using dz. dz is 1.e36 for roof/wall layers +that are greater than nlevurb, thus creating an imbalance. + +Rather than trying to keep the BGC variables physically meaningful in urban landunits, +we will just pack these variables in a way that should conserve these variables, even if +the values in each of the urban columns is somewhat nonsensical. Specifically: we'll take +col%wtgcell at face value in urban columns in dynColumnStateUpdaterMod - i.e., for the sake +of storing / conserving these BGC variables, we'll act as if that gives the true column +weight on the grid cell. This way we'll end up storing all of the C & N from the vegetated +column in the urban columns, and there shouldn't be any that is lost from the system. If that +urban landunit later shrinks, the stored C & N should be restored symmetrically. It shouldn't +really matter that it was stored in a non-physical way (e.g., with some C & N stored in urban +walls), since the BGC variables are irrelevant over the urban areas and we just want to be able +to restore the amount that was originally stored if an urban landunit grows and then later shrinks. +But for this to work right, we need to treat the relevant BGC variables as having the same dz over +all urban columns as over the soil column. Note that there already seems to be an implicit assumption +that dz is the same for all columns in the dynamic column state updates, in that dz doesn't enter +into the conservation equations. In terms of what needs to change, we think that the only relevant +code is the code that sums up total C / N / CH4 for the sake of balance checks: these balance checks +need to be consistent with the assumptions made in the conservation code. The C and N summations +already use dzsoi_decomp, which is the same for all columns, so this is already what we want. +The only thing that needs to change is the use of dz in totcolch4 in ch4Mod.F90: we've changed that to now use +dzsoi_decomp over urban columns. (This begs the question of why this isn't already using +dzsoi_decomp for consistency with the C & N code; we're not sure about this.) + +See issue #1445 for the original discussion on this topic. diff --git a/doc/design/python_script_user_interface.rst b/doc/design/python_script_user_interface.rst new file mode 100644 index 0000000000..3ad6a4d2cf --- /dev/null +++ b/doc/design/python_script_user_interface.rst @@ -0,0 +1,83 @@ +.. sectnum:: + +.. contents:: + +================================== + Overview of this design document +================================== + +This documents various conventions for the user interface of python scripts. The focus here is on user-visible aspects, as opposed to implementation details. + +==================================================== + Separation of front-end scripts from implementation +==================================================== + +Most python code resides in the ``python/ctsm`` directory, and modules there have a ``.py`` extension. However, scripts that are run from the command-line have small wrapper files that reside in appropriate places throughout the repository (e.g., in the ``tools`` directory). These wrapper files should *not* have a ``.py`` extension, and should contain as little python code as possible (since these files aren't checked by pylint and cannot easily be unit tested): typically they contain just enough code to setup the python path, load a python module, and then call the main function from that module. See examples throughout CTSM for details. + +Rationale: Modules meant to be imported (i.e., everything under ``python/ctsm``) should have a ``.py`` extension. However, it is valuable to keep the extension off of the scripts that users run for a few reasons: + +1. A user shouldn't need to know what language a script is in when all they want to do is to run the script +2. We want to avoid the need for retraining users, updating documentation, etc. if we change the implementation language +3. Standard Unix utilities rarely if ever require specifying the language extension when running them; the same is true for the core scripts in CIME (``create_newcase``, ``xmlchange``, etc.); we would like to stay consistent with these other scripts and utilities + +Counter-arguments: Arguments for keeping a ``.py`` extension even on the files meant to be run by users are the following: + +1. It's obvious from looking at a directory listing what language a file is in +2. This extension may be needed on Windows systems +3. The file extension is needed to support linting, unit testing, etc. + +Although there are good arguments on both sides, the stability of the user experience is supported by excluding the language extension. We choose to prioritize the user experience over developer convenience. (The possible inability of running on Windows systems does not currently feel like an issue, because users don't typically try to run these scripts on Windows systems as far as we know.) + +======================================== + Conventions for command-line arguments +======================================== + +1. Longer options: + +Options that are more than a single character should be formatted as ``--some-variable`` -- i.e., with a double leading hyphen and a hyphen as word separator. + + * Rationale: This follows the `POSIX conventions `_. + +2. Standard options: verbose, silent, help and debug: + +Scripts should support ``--verbose`` / ``-v``, ''--silent'', and ``--debug`` options. See comments at the top of ``ctsm_logging.py`` for details. +Also the help option is highly recommended as well. + +3. Value flags: + +For arguments that need a value: If there is no obvious default for the value, then the argument should be required rather than being given a default that the user will often need to override. A general rule of thumb is: if, say, 75% -- 90% of users will want a particular value, then it can be okay to have this value as the default; otherwise, it should be a required argument. This holds even for arguments that are only needed in certain circumstances: For example, if argument ``--fooval FOOVAL`` needs to be given whenever ``--bar`` is given, but there is no obvious default for ``FOOVAL``, then the argument parsing should be coded so that ``--fooval`` does not have a default, and there is error checking code that ensures that ``fooval`` has been specified (not ``None``) if ``--bar`` was given. + + * Rationale: Giving an argument a default value means that we can't catch and report when a user forgets to set it but should have set it. Leaving off the default allows for this error checking. + * Example: To set the start year for DATM forcing: ``--datm-syr 1850`` + +4. Switch flags: + +For logical flags, use a flag without an argument -- ``--feature`` for the case where something is off by default and you want to turn it on, or ``--no-feature`` for the case where something is on by default and you want to turn it off -- instead of something like ``--feature true`` / ``--feature false``. Prefer phrasing these as positives whenever possible (e.g., ``--allow-multiple-pfts`` instead of ``--no-single-pft``). To the extent possible, try to clearly document what the behavior is if you add the flag, and what the behavior is if you don't add the flag. + + * Rationale: + * This use of ``--feature`` / ``--no-feature`` is more common behavior for Unix tools. + * For something that is either on or off by default, you can see what the default operation is and what you can change just by looking at the available flag names, without needing to read through all of the documentation of default values. + * Whenever possible avoid the use of --no-feature arguments as they often are confusing. Try to express the same thing using positive wording. + * Examples: To turn prognostic crop on (or off): ``--crop`` or ``--no-crop`` + +========= + Logging +========= + +We try to follow the guide at the top of `Python's logging howto `_. In particular, print statements should be used for "console output for ordinary usage of a command line script or program"; ``logger.info`` or ``logger.debug`` should be used to "report events that occur during normal operation of a program (e.g. for status monitoring or fault investigation)", etc. + +The distinction between when to use print and when to use logging can admittedly be a bit subjective, as it comes down to the question of whether the given output is part of the fundamental operation of the script – i.e., part of what the script is designed to do is to give this output. For example, ``run_sys_tests`` prints a variety of information when it starts, particularly concerning the git and manage_externals status of the current repository. The rationale for using ``print`` statements for this is that we designed ``run_sys_tests`` to replace some of the repetitive items that we did whenever running the system tests. One of these items was running ``git status`` and ``./manage_externals/checkout_externals -S -v`` to check that the repository is in a clean state. Thus, in this case, our view is that the output from these commands is part of the fundamental purpose of ``run_sys_tests``: it is something we always want to see, and we feel that it is important for anyone running the system tests to review, and thus ``print`` statements are appropriate here. + +In general, ``print`` statements should be used sparingly, just for output that is important for the user to see. That said, users of CTSM scripts often expect more output than you would see from a typical Unix tool (where the philosophy is that there should be no output if everything worked correctly). Some examples of things that users of CTSM scripts typically want to see are: + +* A final "success" message at the end of the script +* Paths to directories or files created by the script + +More verbose output should go in ``logger.info`` or ``logger.debug`` statements for output that a normal user would rarely want to see. The difference between output that should go in ``logger.info`` vs. ``logger.debug`` statements is somewhat subjective, but some general rules are: + +* INFO statements include high-level, informational statements about the program state, the user, which files are being used and where, etc. + * e.g. A ``logging.info`` statement might be ``logger.info("Reading in file %s from %s", file_name, dir_name)``. +* DEBUG statements include fine-grained statements about program state, that really only developers digging into the code would want to see. + * e.g. You might want to output a ``logging.debug`` statement for every variable in a file you are editing. + +Near the top of each python module where logging is used, there should be a line, ``logger = logging.getLogger(__name__)``. Then logging statements should be done using statements like ``logger.info(...)``, *not* ``logging.info(...)``: this allows more contextual information in logging output. diff --git a/doc/release-cesm2.2.ChangeLog b/doc/release-cesm2.2.ChangeLog new file mode 100644 index 0000000000..1f61e49095 --- /dev/null +++ b/doc/release-cesm2.2.ChangeLog @@ -0,0 +1,96 @@ +=============================================================== +Tag name: release-cesm2.2.01 +Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326) +Date: Wed Sep 2 02:44:01 MDT 2020 +One-line Summary: Fix clm4_5 initial conditions + +Purpose of this version: +------------------------ + +Update cime so that default end year for GSWP3 forcing is 2013 because 2014 data is bad. + +Fix some issues for finding initial condition files for Clm45 compsets. Also bring in updated CDEPS/CMEPS +as they were required with the cime update. Also get the CLM offline tools working as well as the tools +testing. + + +CTSM Master Tag This Corresponds To: ctsm1.0.dev108 (with most changes from ctsm1.0.dev111) + +Summary of changes: +------------------- + +Issues fixed (include CTSM Issue #): + Fixes #1134 mkmapdata.sh is not working + Fixes #1129 two FATES tests that fail + Fixes #1128 missing compset + Fixes #1067 -- Stop using PIO2 in the LILAC build + Fixes #1121 -- FMOZ test fails +CIME Issues fixed (include issue #): + Fixes ESMCI/cime#3683 -- Avoid artificial limit on string lengths in shr_string_listMerge +PTCLM Issues fixed: + Fixes PTCLM#11 -- not running on cheyenne + +Science changes since: ctsm1.0.dev108 + 2010 and SSP compsets have forcing end in 2013 rather than 2014 + +Software changes since: ctsm1.0.dev108 + Fix issues for finding IC files for clm45 + +Changes to User Interface since: ctsm1.0.dev108 + +Testing: +-------- + + [PASS means all tests PASS and OK means tests PASS other than expected fails.] + + build-namelist tests: + + cheyenne - PASS + + tools-tests (components/clm/test/tools): + + cheyenne - PASS + izumi ---- PASS + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + cheyenne - OK + + regular tests (aux_clm): + + cheyenne_intel ---- OK + cheyenne_gnu ------ OK + izumi_nag --------- OK + izumi_pgi --------- OK + izumi_intel ------- OK + +Summary of Answer changes: +------------------------- + +If the tag used for baseline comparisons was NOT the previous tag, note that here: ctsm1.0.dev108 + +Changes answers relative to baseline: yes + + Summarize any changes to answers, i.e., + - what code configurations: 2010 and SSP compsets (because of cime update) + - what platforms/compilers: all + - nature of change: same climate + +Detailed list of changes: +------------------------ + +Externals being used: cesm2_2_alpha06e versions + CISM at cism2_1_69 + RTM at rtm1_0_72 + MOSART at mosart1_0_37 + cime at cime5.8.32 + FATES at sci.1.30.0_api.8.0.0 + PTCLM at PTCLM2_20200902 + +CTSM Tag versions pulled over from master development branch: ctsm1.0.dev111 + +Pull Requests that document the changes (include PR ids): N/A +(https://github.com/ESCOMP/ctsm/pull) + +=============================================================== +=============================================================== diff --git a/doc/source/_static/css/custom.css b/doc/source/_static/css/custom.css new file mode 100644 index 0000000000..10abb45722 --- /dev/null +++ b/doc/source/_static/css/custom.css @@ -0,0 +1,17 @@ +/* Make equation numbers float to the right */ +.eqno { + margin-left: 5px; + float: right; +} +/* Hide the link... */ +.math .headerlink { + display: none; + visibility: hidden; +} +/* ...unless the equation is hovered */ +.math:hover .headerlink { + display: inline-block; + visibility: visible; + /* Place link in margin and keep equation number aligned with boundary */ + margin-right: -0.7em; +} diff --git a/doc/source/_static/pop_ver.js b/doc/source/_static/pop_ver.js new file mode 100644 index 0000000000..b8c58658a8 --- /dev/null +++ b/doc/source/_static/pop_ver.js @@ -0,0 +1,37 @@ +$(document).ready(function() { + /* For a URL that looks like + https://blah.github.io/versions/VERSIONFOO/html/bar/index.html, set cur_version_dir to + 'VERSIONFOO' (i.e., the portion of the path following 'versions'). + */ + var proj_end = document.baseURI.indexOf("versions") + 9; + var end = document.baseURI.indexOf("/", proj_end); + var cur_version_dir = document.baseURI.substring(proj_end, end); + var mylist = $("#version-list"); + mylist.empty(); + $.getJSON(version_json_loc, function(data) { + if (data.hasOwnProperty(cur_version_dir)) { + /* First add the current version so that it appears first in the drop-down + menu and starts as the selected element of the menu. If you click on the + current version, you should stay at the current page. + + The conditional around this block should generally be true, but we check it + just in case the current version is missing from the versions.json file for + some reason. + */ + cur_version_name = data[cur_version_dir]; + mylist.append($("