/
MCT

MCT

The Model Coupling Toolkit

http://www.mcs.anl.gov/research/projects/mct/

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, SGI, Compaq, NEC, Cray X1 and Linux (with Absoft, Lahey, NAG, PGI, PathScale, or Intel compilers and MPICH, VMI and/or ChaMPIon/Pro MPI libraries) .

Usage

module load mct/2.6.0-gnu
module load mct/2.6.0-intel
module load mct/2.6.0-intel-serial

Installation

Intel version

mkdir /sw/mct/2.6.0-intel

cd /sw/mct/2.6.0-intel/source/MCT
 module load  intel-cmkl-11
module load python/2.7.1
module load intel-cc-11/11.1.072 
module load intel-mpi/4.0.1.007
module load intel-tools-11/11.1.072


 

Trying using intel mpi:
./configure --prefix=/sw/mct/2.6.0-intel FC=mpiifort CC=mpicc --enable-babel 2>&1 |tee configure.out
make  2>&1 |tee make.out
make  install 2>&1 |tee makeInstall.out

We could do this as well if mpi is not needed:

make clean all
./configure --prefix=/sw/mct/2.6.0-intel-serial FC=ifort CC=icc --enable-babel 2>&1 |tee configure-ser.out
make  2>&1 |tee make-ser.out
make  install 2>&1 |tee makeInstall-ser.out

gnu version

module load python/2.7.1
module load mpi/openMPI/1.4.3-gnu
mkdir /sw/mct/2.6.0-gnu
cd /sw/mct/2.6.0-gnu/source/MCT

 ./configure --prefix=/sw/mct/2.6.0-gnu FC=mpif90 CC=mpicc --enable-babel 2>&1 |tee configure.out
make  2>&1 |tee make.out
make install  2>&1 |tee makeInstall.out