Skip to content

Commit

Permalink
Merge tag 'clm5.0.dev013' into release-clm5.0
Browse files Browse the repository at this point in the history
Update cime and cism to newer versions used in release. These bring in some answer
changes. The cime version updates the orbit for 2000 compsets. The cism version
changes answers for two fields with NO_EVOLVE and more fields for EVOLVE.

Fixes an important bug needed for use with Data Assimulation. Several changes
to testing. Adding wallclock as needed, changing a few compsets so science
supported compsets are used, added tput_tolerance to some tests known to be
variable.

Many changes to the clm tools for creating input files. Added the version by
querying "git describe" and adding it as an attribute to NetCDF files. Changes
to get tools working, and tested. Also changed so that tools can be run in either
a CTSM checkout or a CESM checkout.

Updated README files so they are accurate.
  • Loading branch information
ekluzek committed Jun 12, 2018
2 parents db6ac1c + fd7a88a commit f0febfe
Show file tree
Hide file tree
Showing 135 changed files with 1,406 additions and 9,762 deletions.
21 changes: 21 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
### General Type of Issue:
Some example types are:
- bug
- enhancement
- question

### Details of Issue:
(Be sure to give enough details that the issue can be understood sufficiently
to replicate or to make the required changes)

### For bugs fill out the following: (Otherwise remove, and remove any prompts that aren't useful)
-----------------------------------------------------------------
#### Important Details of your setup/configuration (compset, settings, etc.):

#### Important output or errors that show the problem:

#### What is the CTSM version you are using (output of git describe)?:

#### What is the machine you are running on:?

-----------------------------------------------------------------
16 changes: 16 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
### Description of changes

### Specific notes

CTSM Issues Fixed (include github issue #):

Are answers expected to change (and if so in what way)?

Any User Interface Changes (namelist or namelist defaults changes)?

Testing performed:
(List what testing you did to show your changes worked as expected)
(This can be manual testing or running of the different test suites)

**NOTE: Be sure to check your Coding style against the standard:**
https://github.com/ESCOMP/ctsm/wiki/CTSM-coding-guidelines
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,17 @@ clm.input_data_list.previous
tools/mksurfdata_map/mksurfdata_map
tools/mkprocdata_map/mkprocdata_map

# mkmapdata output files
tools/mkmapdata/PET*.RegridWeightGen.Log
tools/mkmapdata/regrid.*.out
tools/mkmapdata/regrid.*.err
tools/mkmapdata/regrid.o*

# build output
*.o
*.mod
core.*
*.gz
*.log !run.log
*.pyc
Depends
44 changes: 44 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
## How to contribute:

It's recommended that you first contact [email protected] to discuss the changes or additions that you propose.
Work with them to think about the design and implemention of the changes as well as the planning
and scheduling for the change to come into CTSM.

It's also recommened that you join the [email protected] google groups in order
to be informed about the science that is happening in CTSM as well as the latest develepments and tags.
The ctsm-dev group is here:

https://groups.google.com/a/ucar.edu/forum/#!forum/ctsm-dev

Use the help from the wiki below to setup a fork and personal branch in GitHub to put your developments
on and keep up to date with the master branch of CTSM. Once the changes are sufficiently advanced you
can form a Pull Request on GitHub. Either from your fork on GitHub, or from the main ESCOMP GitHub page
for CTSM (be sure to hit the "compare across forks" link at the top of the page when you first create
the pull request).

https://github.com/ESCOMP/ctsm/pulls

This allows you to show your proposed changes and start getting feedback on them (even if they aren't finished).
This also allows your changes to be planned for and slated for a time to come into CTSM master. In most
cases you won't merge the Pull Request yourself, but a software engineer responsible for CTSM will do
additional testing and bring the changes to CTSM master.

### CTSM Developers Guide:

https://wiki.ucar.edu/display/ccsm/Community+Land+Model+Developers+Guide

## Getting Started:

The following resources give you information on the project and how to get started.

#### CTSM Wiki:

https://github.com/ESCOMP/ctsm/wiki

#### Coding Practices and Style:

Code conventions: https://github.com/ESCOMP/ctsm/wiki/CTSM-coding-guidelines

#### Code of Conduct:

See the "CODE_OF_CONDUCT.md" file for expectations of how to work in the community.
11 changes: 6 additions & 5 deletions Copyright
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,12 @@ POP,SCRIP,CICE Los Alamos National Copyright 2008 Los Alamos National Security,
National
Security, LLC

Glimmer-CISM LANL/U. Copyright GNU General Public License
Bristol/U. 2004-2010,
Edinburgh/U. GNU General
Montana/U. Public License
Swansea
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,
Expand Down
8 changes: 4 additions & 4 deletions Externals.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,29 @@ required = True
local_path = components/cism
protocol = git
repo_url = https://github.com/ESCOMP/cism-wrapper
tag = release-v2.1.00
tag = release-v2.1.01
externals = Externals_CISM.cfg
required = True

[rtm]
local_path = components/rtm
protocol = git
repo_url = https://github.com/ESCOMP/rtm
tag = rtm1_0_66
tag = release-cesm2.0.00
required = True

[mosart]
local_path = components/mosart
protocol = git
repo_url = https://github.com/ESCOMP/mosart
tag = mosart1_0_31
tag = release-cesm2.0.00
required = True

[cime]
local_path = cime
protocol = git
repo_url = https://github.com/ESMCI/cime
hash = a67dceae95567cc7529c4cfed153017f4b65b210
tag = cime_cesm2_0_rel_03
required = True

[externals_description]
Expand Down
2 changes: 1 addition & 1 deletion Externals_CLM.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ required = True
local_path = tools/PTCLM
protocol = git
repo_url = https://github.com/ESCOMP/ptclm
tag = PTCLM2_180214
tag = PTCLM2_180611
required = True

[externals_description]
Expand Down
86 changes: 58 additions & 28 deletions README
Original file line number Diff line number Diff line change
@@ -1,15 +1,29 @@
README 02/05/2018
$CTSMROOT/README 06/08/2018

Community Land Surface Model (CLM) science version 5.0.0 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
place of a modeled atmosphere.

For lists of current bugs (issues) and current development see the CTSM github page:
For lists of current bugs (issues) and current development see the CTSM GitHub page:

https://github.com/ESCOMP/ctsm

General directory structure:
IMPORTANT NOTE ON CESM CHECKOUT VERSUS A CTSM CHECKOUT:

If this is the top level directory from making a clone of CTSM the
directory structure is a little bit different than if CTSM is from
a clone of the entire CESM. If this is part of CESM this directory
will be under components/clm alongside other CESM component models.
For a CTSM checkout this will be the top level directory.

Other documentation will refer to $CTSMROOT and it means the directory
that this file is at. CIMEROOT is the directory where "cime" is for
this checkout. For a CESM checkout $CIMEROOT will be the "cime" directory
beneath the top level directory. For a CTSM checkout $CIMEROOT will
be $CTSMROOT/cime.

General directory structure ($CTSMROOT):

doc --------------- Documentation of CLM.
bld --------------- Template, configure and build-namelist scripts for clm.
Expand All @@ -19,14 +33,15 @@ tools ------------- CLM Offline tools to prepare input datasets and process outp
cime_config ------- Configuration files of cime for compsets and CLM settings
manage_externals -- Script to manage the external source directories

cime/scripts --------------- CPL7 scripts
Directory structure only for a CTSM checkout:

components -------- Other active sub-components needed for CLM to run (river routing and land-ice models)

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.
components/cism --------------------- CESM Community land Ice Sheet Model.
components/mosart ------------------- Model for Scale Adaptive River Transport
components/rtm ---------------------- CESM River Transport Model.
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.
Expand All @@ -35,11 +50,16 @@ cime/src/externals ------------------ CESM external utility codes
(Earth System Model Framework)
(timing -- code timing utility)
(pio -- Parallel Input/Output)
components/cism --------------------- CESM Community land Ice Sheet Model.
components/mosart ------------------- Model for Scale Adaptive River Transport
components/rtm ---------------------- CESM River Transport Model.

Top level documentation:
Top level documentation ($CTSMROOT):

README ------------------- This file
README.rst --------------- File that displays under the project in github
README_EXTERNALS.rst ----- Information on how to work with subversion externals for clm
CODE_OF_CONDUCT.md ------- Code of Conduct for how to work with each other on the CTSM project
Copyright ---------------- CESM Copyright file
doc/UpdateChangeLog.pl ------- Script to add documentation on a tag to the
ChangeLog/ChangeSum files
Expand All @@ -48,18 +68,17 @@ doc/ChangeSum ---------------- Summary documentation of different CLM versions

Documentation of Namelist Items: (view the following in a web browser)

components/clm/bld/namelist_files/namelist_definition.xml --- Definition of all namelist items
components/clm/bld/namelist_files/namelist_defaults_clm4_5.xml - Default values for CLM4.5/CLM5.0
bld/namelist_files/namelist_definition.xml --- Definition of all namelist items
bld/namelist_files/namelist_defaults_clm4_5.xml - Default values for CLM4.5/CLM5.0

=============================================================================================
Important files in main directories:
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)
parse_cime.cs.status -------- Script to parse test status files cs.status.* created by create_test
doc/Quickstart.GUIDE -------- Quick guide to using cpl7 scripts.
doc/Quickstart.userdatasets - Quick guide to using your own datasets.
doc/IMPORTANT_NOTES --------- Some important notes about this version of
clm, configuration modes and namelist items
that are not validated or functional.
Expand All @@ -79,7 +98,14 @@ 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
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
simulations created using "cime/scripts/create_newcase --user-mods-dir".
Current sub directories are for various CMIP6 configurations)

test/tools/test_driver.sh -- Script for general software testing of
CLM's offline tools.
Expand All @@ -101,28 +127,32 @@ tools/ncl_scripts ------------ Directory of NCL and perl scripts to do various
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/biogeophys -- Biogeophysics (Hydrology)
src/dyn_subgrid - Dynamic land unit change
src/init_interp - Online interpolation
scr/fates ------- FATES model and sub-directories
Functionally Assembled Terrestrial Ecosystem Simulator (FATES)
Experimental Ecosystem Demography model
src/utils ------- Utility codes

scr_clm40 ------- CLM4.0 source code directory
src/biogeochem ---- Biogeochemisty
src/main ---------- Main control and high level code
src/cpl ----------- Land model high level MCT and ESMF drivers
src/biogeophys ---- Biogeophysics (Hydrology)
src/dyn_subgrid --- Dynamic land unit change
src/init_interp --- Online interpolation
scr/fates --------- FATES model and sub-directories
Functionally Assembled Terrestrial Ecosystem Simulator (FATES)
Experimental Ecosystem Demography model
src/utils --------- Utility codes
src/unit_test_shr - Unit test shared modules for unit testing
src/unit_test_stubs Unit test stubs that replicate CTSM code simpler

src_clm40 --------- CLM4.0 source code directory

=============================================================================================
QUICKSTART: using the CPL7 scripts:
QUICKSTART: using the CPL7 scripts
=============================================================================================

cd cime/scripts
cd $CIMEROOT/scripts
./create_newcase # get help on how to run create_newcase
./create_newcase --case testI --res f19_g17_gl4 --compset I2000Clm50BgcCrop --mach cheyenne
# create new "I" case for cheyenne_intel at 1.9x2.5_gx1v7 res
./create_newcase --case testI --res f19_g17_gl4 --compset I2000Clm50BgcCrop
# create new "I" case for default machine at 1.9x2.5_gx1v7
# with 4km greenland ice sheetres resolution
# "I2000Clm50BgcCrop" case is clm5_0 active, datm8, and inactive ice/ocn
# With no-evolve ice-sheet, and MOSART for river-routing
cd testI
./case.setup # create the $CASE.run file
./case.build # build model and create namelists
Expand Down
4 changes: 2 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ CTSM

The Community Terrestrial Systems Model.

This includes the Community Land Model (CLM5 and CLM4.5) of the Community Earth System 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
Expand All @@ -28,4 +28,4 @@ join our low traffic email list:

https://groups.google.com/a/ucar.edu/forum/#!forum/ctsm-dev

(Send email to ctsm-core@ucar.edu if you have problems with any of this)
(Send email to ctsm-software@ucar.edu if you have problems with any of this)
4 changes: 2 additions & 2 deletions README_EXTERNALS.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Obtaining the full model code and associated scripting infrastructure
=====================================================================

CTSM is released via github. You will need some familiarity with git in order
CTSM is released via GitHub. You will need some familiarity with git in order
to modify the code and commit these changes. However, to simply checkout and run the
code, no git knowledge is required other than what is documented in the following steps.

Expand Down Expand Up @@ -115,7 +115,7 @@ Committing your change to Externals.cfg
After making this change, it's a good idea to commit the change in your
local CTSM git repository. First create a branch in your local
repository, then commit it. (Unlike with subversion, branches are stored
locally unless you explicitly push them up to github. Feel free to
locally unless you explicitly push them up to GitHub. Feel free to
create whatever local branches you'd like.) For example::

git checkout -b my_ctsm_branch
Expand Down
Loading

0 comments on commit f0febfe

Please sign in to comment.