GEOS-5 Software Engineering: Difference between revisions

Pchakrab (talk | contribs)
Pchakrab (talk | contribs)
 
(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
'''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.
'''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
                                      &GEOSgcm_Shared_m2
   
   
  # Ganymed
  # Ganymed
  Ganymed          -d GEOSagcm &GEOSGCM_m3
  Ganymed          -d GEOSagcm &GEOSGCM_m3
etc.


=== 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
And do the actual checkout using:
  $ 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).
 
$ cvs co -r <Tag Name> <Module Name>
 
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==