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:
MCT can be used in single or multiple executable systems and allows sequential or concurrent
- 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
- a time averaging and accumulation buffer datatype
- a general spatial grid representation capable of supporting
- 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.
Supported platforms include IBM (Power and BG), Cray XT*, Linux clusters (with Absoft, GNU, Lahey, NAG, PGI, PathScale, or Intel compilers and MPICH, OpenMPI, VMI and/or ChaMPIon/Pro MPI libraries), NEC.
Latest Standalone Release: MCT 2.10.0 -- released April 19, 2018
MCT source (including data for example programs) [.tar.gz] 3.8 MB
MCT source only [.tar.gz]. Only 0.5MB
Optional Additional Downloads:
To install these options, first download and untar one of the packages above.
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.
Source code can be browsed: https://github.com/MCSclimate/MCT
To check out the source: git clone https://github.com/MCSclimate/MCT.git
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
Current MCT Application Program Interface (API) Document
MPEU (included with MCT) tutorial
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).
(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),
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.
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 firstname.lastname@example.org
or contribute directly on GitHub
View the Change log
MCT development is supported by the Climate and Environmental Sciences Division
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,
Discovery through Advanced (SciDAC) Computing program,
Climate Science for a Sustainable Energy Future project and the
Energy Exascale Earth System Model project.