The Model Coupling Toolkit
MCT is a set of open-source software tools for creating
coupled models. MCT is fully parallel and can be used to couple
message-passing parallel models to create a parallel coupled model.
MCT is available as a small library and a set of Fortran90 modules.
MCT provides model interoperability through a simple API. Two models
that declare and use MCT datatypes can be coupled with a minimum of effort.
MCT provides the following core coupling services:
- a component model registry
- domain decomposition descriptors
- communications schedulers for parallel MxN intercomponent data
transfer and MxM intracomponent data redistribution
- a flexible and indexible (i.e., random-access) field data
storage datatype
- a time averaging and accumulation buffer datatype
- a general spatial grid representation capable of supporting
unstructured grids
- parallel tools for intergrid interpolation implemented as
matrix-vector multiplication spatial integration and averaging tools
(including paired integrals to support conservative interpolation)
- tools for merging data from multiple components for use by another component.
- a programming model similar to that of the Message Passing Interface.
MCT can be used in single or multiple executable systems and allows sequential or concurrent
execution.
MCT can run on any platform with a modern Fortran compiler and MPI library.
Latest Standalone Release: MCT 2.11.0 -- released February 11, 2021
MCT Users:
Download Software:
To run the climate examples, download the
mct20_test_dataLE.tar.gz file at the above link and untar it inside the MCT source directory.
It will create a directory called "data" with the needed files.
Git repository:
Source code can be browsed: https://github.com/MCSclimate/MCT
To check out the source: git clone https://github.com/MCSclimate/MCT.git
Optional Additional Downloads:
To install these options, first get the source code from one of the above links.
Then place these files in the "MCT" directory and untar.
Big Endian data file for examples [.tar.gz] 3.8MB
NO LONGER SUPPORTED: Babel
cross-language interface for MCT [.tar.gz] (0.8MB).
C++ and python bindings are available. See babel/README for more information.
Mailing list:
To receive announcements about MCT including bug fixes and new releases,
join the MCT mailing list.
This is a low-traffic mailing list.
View the mct-ann archive
Documentation:
Current MCT Application Program Interface (API) Document
[pdf]
Older vesion in HTML [html]
MPEU (included with MCT) tutorial
[pdf]
User's Guide to the Model Coupling Toolkit - Not yet available.
Please see the examples in the MCT distribution above in particular
the program examples/climate_sequen1.
Also feel free to ask lots of questions using the email addresses below (for Jacob or Larson).
Main References:
(To reference MCT, please use both of the papers below.)
Larson, Jacob, Ong "The Model Coupling Toolkit: A New Fortran90 Toolkit for Building
Multiphysics Parallel Coupled Models." 2005: Int. J. High Perf. Comp. App.,19(3),
277-292. online, [pdf]
Jacob, Larson, Ong "MxN Communication and Parallel Interpolation in CCSM3
Using the Model Coupling Toolkit." 2005: Int. J. High Perf. Comp. App.,19(3),
293-307.online, [pdf]
Other Papers/Talks:
MCT Applications:
Craig, Jacob, Kauffman, Bettge, Larson, Ong, Ding, He, 2005: "Cpl6: The New Extensible High-Performance
Parallel Coupler for the Community Climate System Model."
Int. J. High Perf. Comp. App.,19(3), 309-327.
online,
[pdf](preprint)
We welcome feedback and any suggestions for code changes. We also
welcome code contributions and will, after review, include them
with full credit. Please mail any suggestions to
Robert Jacob [email protected]
or contribute directly on GitHub
View the Change log
MCT developers:
MCT development is supported by the Earth and Environmental System Modeling program
of the Office of Biological & Environmental Research, Office of Science, U. S.
Department of Energy
MCT has been developed under the following projects:
DOE ACPI Avante Garde project,
DOE Scientific
Discovery through Advanced (SciDAC) Computing program,
the
Climate Science for a Sustainable Energy Future project and the
Energy Exascale Earth System Model project.