GEOS-5 Software Engineering: Difference between revisions
(7 intermediate revisions by the same user not shown) | |||
Line 25: | Line 25: | ||
The ESMA CVS repository has a flat directory structure designed to accommodate a variety of modeling systems. The repository holds 'Applications', 'Components' and other software libraries needed to build earth modeling systems. The directories under esma/src/ are Applications/, Components/, Config/, Couplers/, Documentation/, Shared/ and of course CVS/. | The ESMA CVS repository has a flat directory structure designed to accommodate a variety of modeling systems. The repository holds 'Applications', 'Components' and other software libraries needed to build earth modeling systems. The directories under esma/src/ are Applications/, Components/, Config/, Couplers/, Documentation/, Shared/ and of course CVS/. | ||
'''Packages:''' A collection of source files having one or more software deliverables | |||
* Libraries | * Libraries | ||
* Executables (binaries, scripts) | * Executables (binaries, scripts) | ||
Line 32: | Line 32: | ||
* Examples | * Examples | ||
'''Modules:''' CVS modules are then used to compose individual modeling systems. A module is a collection of packages comprising some stand alone application, e.g. GEOSGCM_m0 (GMAO Unified Model, GEOS-5). A complete list of ESMA CVS modules is available at CVSROOT/modules. | |||
Some examples are: | Some examples are: | ||
# ESMF/MAPL Tutorial | # ESMF/MAPL Tutorial | ||
G5tutorial -d G5tutorial/src esma/src/Applications/G5tutorial &Config | G5tutorial -d G5tutorial/src esma/src/Applications/G5tutorial &Config &GEOSgcm_Shared_m2 | ||
# Ganymed | # Ganymed | ||
Ganymed -d GEOSagcm &GEOSGCM_m3 | Ganymed -d GEOSagcm &GEOSGCM_m3 | ||
=== CVS/CVSACL === | === CVS/CVSACL === | ||
Line 129: | Line 127: | ||
==== Checking out the model ==== | ==== Checking out the model ==== | ||
Make the directory in which you wish to checkout the model: | Make the directory in which you wish to checkout the model and do the actual checkout: | ||
$ mkdir G21p5 | $ mkdir G21p5 | ||
$ cd G21p5 | $ cd G21p5 | ||
$ cvs co -r Ganymed-2_1_p5 Ganymed | $ cvs co -r Ganymed-2_1_p5 Ganymed | ||
In general | In general, one uses <tt>$ cvs co -r <Tag Name> <Module Name></tt> where <Tag Name> is the tag for the model to check out (e.g., Ganymed-2_0_UNSTABLE, Fortuna-2_5_p6) and <Module Name> is the module (e.g., Ganymed, Fortuna). | ||
where <Tag Name> is the tag for the model to check out (e.g., Ganymed-2_0_UNSTABLE, Fortuna-2_5_p6) and <Module Name> is the module (e.g., Ganymed, Fortuna). | |||
==== Build and install the model ==== | ==== Build and install the model ==== | ||
Line 245: | Line 236: | ||
These effectively let you change whatever you want - useful for debugging, etc. For example, you can set your timers in ~/.esma_base.mk. | These effectively let you change whatever you want - useful for debugging, etc. For example, you can set your timers in ~/.esma_base.mk. | ||
<!-- | <!-- | ||
=== Building ESMA Components === | === Building ESMA Components === | ||
Line 251: | Line 241: | ||
=== Building ESMA Systems === | === Building ESMA Systems === | ||
--> | --> | ||
== Testing and validation== |