Skip to content

ESCOMP/CESM_share

Repository files navigation

!===============================================================================
! SVN $Id: README 19883 2009-12-14 23:19:10Z erik $
! SVN $URL: https://svn-ccsm-models.cgd.ucar.edu/csm_share/trunk_tags/share3_150116/README $
!===============================================================================

                  A description of csm_share

This module exists to collect code shared between various CIME components.
Excluding this "shared code" module, CIME components are built using disjoint
sets of source code.  The use of this shared code is similar to the use of
object code libraries where each subdirectory of share is equivalant to
one library.  While object library routines are accessed by linking to libraries
during the load phase, these shared code routines are accessed by including the
appropriate source code directory path during the compile phase.

Motivation for this code sharing includes:

- facilitating consistent physics between all models.  For example, uniform
  solar-zenith-angle/orbital calculations and uniform physical constants.
- providing an interface/API between component models and the flux-coupler
  component in the CCSM framework.
- avoiding the need for redundant implementations of commonly needed
  functionality.  For example netCDF file reading, basic mapping (re-gridding)
  functionality, and common character string manipulations.

Current subsets ("libraries") of shared code only include:

util - very generic, general-purpose code that is likely to be useful to all
      CIME components.  CIME components may be explicitly required to use some
      parts of this code, for example the physical constants module.