MCT: 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. Supported platforms include IBM (Power and BG/P), 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.