Use of an ESMF library and ESMF interfaces

CCSM4 supports use of either the CCSM designed component interfaces which is based on MCT datatypes or ESMF compliant component interfaces. In both cases, the driver and component models remain fundamentally the same. The ESMF interface implementation exists in CCSM to support further development and testing of an ESMF driver or ESMF couplers and to allow CCSM model components to interact with other coupled systems using ESMF coupling standards. The ESMF implementation in CCSM4 has been tested with ESMF version 4.0.0rp1. The MCT based interfaces are used by default.

CCSM4 does not require the ESMF library nor that a local copy of the ESMF library exist. A small subset of local Fortran code exists in CCSM to support CCSM usage of the ESMF_Clock in the model. ESMF is not provided as part of the CCSM4 release. It must be downloaded and installed separately. If an ESMF library has been installed locally, the ESMF_Clock Fortran code provided with CCSM can be turned off, and the ESMF library can be used in CCSM via setting of the environment variables USE_ESMF_LIB and ESMF_LIBDIR. ESMF_LIBDIR specifies the path to the local ESMF library and USE_ESMF_LIB is a logical that specifies whether to use the external ESMF library. In general, the MCT interfaces can be run with either an external ESMF library or the local Fortran code. However, the ESMF interfaces must be run with an official version of the ESMF library.

To run with the ESMF interfaces, set the following env variables and rebuild a clean version of the model.


- cd to your case directory
- edit env_build.xml
  - set COMP_INTERFACE to "ESMF"
  - set USE_ESMF_LIB to "TRUE"
  - set ESMF_LIBDIR to a valid installation directory of ESMF version 4.0.0rp1 
- run *.clean_build to remove any previous build if necessary
- run *.build to build the model
- submit the *.run script

To run with the MCT interfaces, set the following env variables and rebuild a clean version of the model.


- cd to your case directory
- edit env_build.xml
  - set COMP_INTERFACE to "MCT"
  - set USE_ESMF_LIB to "TRUE" or "FALSE"
  - if USE_ESMF_LIB is TRUE, then set ESMF_LIBDIR to a valid installation of ESMF version 4.0.0rp1 
    directory of ESMF version 4
- run *.clean_build to remove any previous build if necessary
- run *.build to build the model
- submit the *.run script