CTSM
The Community Land Model is the land model for the Community Earth System Model, which formalises and quantifies concepts of ecological climatology.
https://github.com/ESCOMP/CTSM
Category: Climate Change
Sub Category: Earth and Climate Modeling
Keywords
cesm climate clm ecosystem hydrology land land-surface-model ncar
Keywords from Contributors
climate-model datamodeling earth-system-model climate-science e3sm snl-applications nwp community numerical-modeling numerical-weather-prediction
Last synced: about 23 hours ago
JSON representation
Repository metadata
Community Terrestrial Systems Model (includes the Community Land Model of CESM)
- Host: GitHub
- URL: https://github.com/ESCOMP/CTSM
- Owner: ESCOMP
- License: other
- Created: 2017-12-16T20:05:16.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2025-12-10T23:16:26.000Z (15 days ago)
- Last Synced: 2025-12-11T11:37:37.644Z (15 days ago)
- Topics: cesm, climate, clm, ecosystem, hydrology, land, land-surface-model, ncar
- Language: Fortran
- Homepage: http://www.cesm.ucar.edu/models/cesm2.0/land/
- Size: 52 MB
- Stars: 337
- Watchers: 33
- Forks: 342
- Open Issues: 914
- Releases: 47
-
Metadata Files:
- Readme: README
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Zenodo: .zenodo.json
README
$CTSMROOT/README 11/24/2025
Community Terrestrial Systems Model (CTSM) science version 5.4 series -- source code, tools,
offline-build and test scripts. This gives you everything you need
to run CTSM with CESM with the CMEPS driver and CDEPS data models to provide CRUJRA or GSWP3 forcing data (some older options also available) 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
For Code of Conduct (how to work with each other on the CTSM project):
https://github.com/ESCOMP/CTSM?tab=coc-ov-file
INFORMATION ON THE CMEPS DRIVER:
https://escomp.github.io/CMEPS
https://earthsystemmodeling.org/nuopc/
IMPORTANT NOTE ON CESM CHECKOUT VERSUS A CTSM CHECKOUT:
If this is the top level directory from making a clone of CTSM the
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.
IMPORTANT NOTE ABOUT (deprecated)
Anything marked with (deprecated) is something is going to be removed in a future update.
Often this means it will be replaced with something else.
General directory structure ($CTSMROOT):
doc --------------- Documentation of CTSM.
bld --------------- build-namelist scripts for CTSM.
src --------------- CTSM Source code.
lilac ------------- Lightweight Infrastructure for Land-Atmosphere Coupling (for coupling to a host atmosphere model)
tools ------------- CTSM Offline tools to prepare input datasets and process output.
cime_config ------- Configuration files of cime for compsets and CTSM settings
bin/git-fleximod -- Script to manage the needed sub-component source directories (handled with git submodule)
py_env_create ----- Script to setup the python environment for CTSM python tools using conda
python ------------ Python modules used in tools and testing and automated checking of ALL CTSM python scripts
Directory structure only for a CTSM checkout:
components -------- Other active sub-components needed for CTSM to run (river routing and land-ice models)
libraries --------- CESM libraries: PIO (deprecated)
share ------------- CESM shared code
ccs_config -------- CIME configure files (for grids, compsets, and machines) for CESM
cime/scripts --------------- cesm/cime driver scripts
components/cmeps -------------------- CESM top level driver (for NUOPC driver [which is the default]) source code.
components/cdeps -------------------- CESM top level data model shared code (for NUOPC driver).
components/cism --------------------- CESM Community land Ice Sheet Model.
components/mosart ------------------- Model for Scale Adaptive River Transport
components/mizuroute ---------------- Reached based river transport model for water routing
(allows both gridded river and Hydrologic Responce Unit river grids)
components/rtm ---------------------- CESM River Transport Model.
Top level documentation ($CTSMROOT):
README ------------------- This file
README.md ---------------- File that displays on github under https::/github.com/ESCOMP/CTSM.git
README.rst --------------- File that displays under the project in github
README_GITFLEXIMOD.rst --- Information on how to work with git-fleximod for CTSM
WhatsNewInCTSM5.4.md ----- Overview document of the changes between ctsm5.3 and ctsm5.4
Copyright ---------------- CESM Copyright file
doc/UpdateChangeLog.pl --- Script to add documentation on a tag to the
ChangeLog/ChangeSum files
doc/ChangeLog ------------ Documents different CTSM versions
doc/ChangeSum ------------ Summary documentation of different CTSM versions
doc/design --------------- Software Engineering and code design document files
Checklists for standard Software Engineering tasks
./doc/README.CHECKLIST.master_tags
./bld/namelist_files/README.CHECKLIST.interpolating_initial_conditions.md
Documentation of Namelist Items: (view the following in a web browser)
bld/namelist_files/namelist_definition_ctsm.xml --- Definition of all namelist items
bld/namelist_files/namelist_defaults_ctsm.xml ----- Default values
=============================================================================================
Important files in main directories (under $CTSMROOT):
=============================================================================================
run_sys_tests --------------- Python script to send the standard CTSM testing off (submits
the create_test test suite for several different compilers on the
machines we do standard CTSM testing on).
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 NUOPC scripts.
doc/IMPORTANT_NOTES.md ------ Some important notes about this version of
CTSM, configuration modes and namelist items
that are not validated or functional.
doc/ChangeLog --------------- Detailed list of changes for each model version.
doc/ChangeSum --------------- Summary one-line list of changes for each
model version.
doc/UsersGuide -------------- CTSM Users Guide
bld/README ------------------ Description of how to use the build-namelist scripts.
bld/build-namelist ---------- Lower level 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/clm ---- 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 clm/*)
tools/mksurfdata_esmf --------- Directory to build program to create surface dataset
at any resolution.
tools/mkmapgrids -------------- NCL script to create a SCRIP grid file for a regular lat/lon grid (deprecated)
tools/crop_calendars ---------- Tools to process and process and create crop calendar datasets for CTSM
tools/modify_input_files ------ Script to modify existing CTSM input datasets in standard ways
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.
.vscode ----------------------- Suggested settings for using MS Visual Studio code with CTSM.
=============================================================================================
Source code directory structure:
=============================================================================================
src/biogeochem ---- Biogeochemisty
src/main ---------- Main control and high level code
src/cpl ----------- Land model high level caps for NUOPC driver (and LILAC)
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)
Ecosystem Demography model
src/utils --------- Utility codes
src/self_tests ---- Internal testing (unit tests run as a part of a CTSM system test)
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 NUOPC driver scripts
=============================================================================================
cd $CIMEROOT/scripts
./create_newcase # get help on how to run create_newcase
./create_newcase --case testI --res f09_t232 --compset I2000Clm60BgcCrop
# create new "I" case for default machine at 1.9x2.5_gx1v7
# "I2000Clm60BgcCrop" case is clm6_0 physics, CDEPS, and inactive ice/ocn/glc
# and MOSART for river-routing
cd testI
./case.setup # create the $CASE.run file
./case.build # build model and create namelists
./case.submit # submit script
# (NOTE: ./xmlchange RESUBMIT=10 to set RESUBMIT to number
# # of times to automatically resubmit -- 10 in this example)
Owner metadata
- Name: Earth System Community Modeling Portal
- Login: ESCOMP
- Email:
- Kind: organization
- Description:
- Website: https://escomp.github.io/
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/33552285?v=4
- Repositories: 65
- Last ynced at: 2024-06-05T19:10:08.483Z
- Profile URL: https://github.com/ESCOMP
GitHub Events
Total
- Create event: 71
- Commit comment event: 5
- Release event: 1
- Delete event: 2
- Member event: 2
- Pull request event: 375
- Fork event: 31
- Issues event: 607
- Watch event: 23
- Issue comment event: 2099
- Push event: 193
- Pull request review comment event: 802
- Pull request review event: 944
- Gollum event: 114
Last Year
- Create event: 70
- Commit comment event: 5
- Release event: 1
- Delete event: 2
- Member event: 2
- Pull request event: 357
- Fork event: 29
- Issues event: 590
- Watch event: 23
- Issue comment event: 1955
- Push event: 187
- Gollum event: 113
- Pull request review comment event: 760
- Pull request review event: 900
Committers metadata
Last synced: 5 days ago
Total Commits: 13,014
Total Committers: 119
Avg Commits per committer: 109.361
Development Distribution Score (DDS): 0.735
Commits in past year: 1,918
Committers in past year: 23
Avg Commits per committer in past year: 83.391
Development Distribution Score (DDS) in past year: 0.582
| Name | Commits | |
|---|---|---|
| Erik Kluzek | e****k@u****u | 3447 |
| Sam Rabin | s****n@g****m | 2236 |
| Bill Sacks | s****s@u****u | 1888 |
| Samuel Levis | s****g@g****m | 1776 |
| Gregory Lemieux | g****x | 541 |
| Negin Sobhani | n****3@g****m | 504 |
| Mariana Vertenstein | m****s@u****u | 319 |
| Ryan Knox | r****x@l****v | 292 |
| Sean Swenson | s****c@u****u | 217 |
| Keith Oleson | o****n@u****u | 207 |
| Teagan King | t****g@u****u | 166 |
| adrifoster | a****t@u****u | 160 |
| Jim Edwards | j****s@u****u | 140 |
| wwieder | w****r@u****u | 133 |
| Adrianna Foster | a****r@u****u | 70 |
| mvdebolskiy | m****y@a****u | 70 |
| chen693 | y****g@p****v | 56 |
| Stefan Muszala | m****a@u****u | 54 |
| Ben Andre | a****e@u****u | 51 |
| sunnivin | s****s@g****m | 50 |
| Joseph Hamman | j****n@u****u | 44 |
| Danny M. Leung | d****g@u****u | 36 |
| cathyxinchangli | 5****i | 33 |
| rosiealice | r****r@g****m | 31 |
| ckoven | c****n@g****m | 26 |
| Daniel Kennedy | d****0@c****u | 23 |
| Danica Lombardozzi | d****l@t****u | 21 |
| Keith Oleson | o****n@r****u | 19 |
| ivanderkelen | i****n@v****e | 19 |
| Mathew Rothstein | m****r@u****u | 19 |
| and 89 more... | ||
Committer domains:
- ucar.edu: 27
- thorodin.cgd.ucar.edu: 8
- cheyenne3.ib0.cheyenne.ucar.edu: 4
- cheyenne4.ib0.cheyenne.ucar.edu: 4
- cheyenne6.ib0.cheyenne.ucar.edu: 3
- cheyenne5.ib0.cheyenne.ucar.edu: 3
- cheyenne2.ib0.cheyenne.ucar.edu: 3
- cheyenne1.ib0.cheyenne.ucar.edu: 2
- izumi.unified.ucar.edu: 2
- izumi.cgd.ucar.edu: 2
- lbl.gov: 2
- thetruesdales.com: 1
- alaska.edu: 1
- env.ethz.ch: 1
- uu.nl: 1
- kit.edu: 1
- vub.be: 1
- redcloud.cgd.ucar.edu: 1
- logan.cgd.ucar.edu: 1
- pnnl.gov: 1
- columbia.edu: 1
- ucla.edu: 1
- cheyenne4.cheyenne.ucar.edu: 1
- cheyenne2.cheyenne.ucar.edu: 1
- platies.cgd.ucar.edu: 1
- sunshine.cgd.ucar.edu: 1
- n0000.scs00: 1
- leehill.cgd.ucar.edu: 1
- colorado.edu: 1
- bnl.gov: 1
- noaa.gov: 1
- mail.iap.ac.cn: 1
- ou.edu: 1
- pop-os.localdomain: 1
- yaqiongs-mbp-2.ml-guest.ucar.edu: 1
- cheyenne5.cheyenne.ucar.edu: 1
- eureka.cgd.ucar.edu: 1
- cornell.edu: 1
- hobart.cgd.ucar.edu: 1
- cheyenne1.cheyenne.ucar.edu: 1
- cheyenne3.cheyenne.ucar.edu: 1
- cheyenne6.cheyenne.ucar.edu: 1
- pm.me: 1
Issue and Pull Request metadata
Last synced: 6 days ago
Total issues: 1,192
Total pull requests: 880
Average time to close issues: about 1 year
Average time to close pull requests: 2 months
Total issue authors: 76
Total pull request authors: 50
Average comments per issue: 3.25
Average comments per pull request: 5.61
Merged pull request: 570
Bot issues: 0
Bot pull requests: 12
Past year issues: 385
Past year pull requests: 342
Past year average time to close issues: 22 days
Past year average time to close pull requests: 13 days
Past year issue authors: 29
Past year pull request authors: 26
Past year average comments per issue: 1.25
Past year average comments per pull request: 2.68
Past year merged pull request: 216
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- ekluzek (409)
- samsrabin (282)
- billsacks (115)
- slevis-lmwg (81)
- wwieder (79)
- olyson (46)
- rgknox (24)
- glemieux (23)
- adrifoster (13)
- lifang0209 (6)
- djk2120 (6)
- jedwards4b (6)
- mvdebolskiy (6)
- mvertens (5)
- dlawrenncar (5)
Top Pull Request Authors
- samsrabin (270)
- slevis-lmwg (160)
- ekluzek (118)
- rgknox (55)
- olyson (37)
- glemieux (30)
- adrifoster (25)
- jedwards4b (21)
- wwieder (19)
- billsacks (16)
- TeaganKing (13)
- dependabot[bot] (12)
- mvdebolskiy (11)
- swensosc (10)
- ShannonRoos (7)
Top Issue Labels
- enhancement (247)
- bfb (207)
- bug (202)
- science (143)
- priority: low (101)
- testing (96)
- type: enhancement (93)
- type: bug (86)
- documentation (83)
- code health (69)
- usability (65)
- closed: wontfix (63)
- next (49)
- type: code cleanup (47)
- priority: high (47)
- good first issue (42)
- type: tests (36)
- done (35)
- tag: next (31)
- devops (31)
- investigation (28)
- size: small (27)
- docs-loc:users-guide (25)
- type: documentation (23)
- test: python (22)
- blocked: dependency (21)
- tag: simple bfb (21)
- tag: enh - new science (21)
- external (20)
- non-bfb (19)
Top Pull Request Labels
- bfb (275)
- enhancement (174)
- type: enhancement (84)
- science (69)
- PR status: ready (67)
- bug (65)
- documentation (45)
- priority: high (45)
- tag: simple bfb (44)
- testing (42)
- devops (42)
- test: aux_clm (41)
- code health (37)
- tag: enh - new science (34)
- non-bfb (33)
- size: small (29)
- test: python (28)
- usability (27)
- blocked: dependency (27)
- priority: Immediate (25)
- PR status: needs testing (24)
- type: tests (22)
- blocker (21)
- next (21)
- PR status: awaiting review (20)
- test: fates (20)
- tag: bfb (19)
- FATES update requiring an API change (17)
- type: code cleanup (16)
- type: documentation (16)
Dependencies
- actions/checkout v2 composite
- psf/black stable composite
- jhamman/esmf latest build
- numpy *
- sphinx ==1.6.7
- sphinx-fortran *
- autopep8 >=1.3.0 test
- coverage >=4.4.0 test
- coveralls >=1.2.0 test
- pylint >=1.7.0 test
- sphinx >=1.6.0 test
- Requirementsfortesting *
- thestandardlibraryinpython3.3 *
Score: 11.910822003578442