Poseidon Simulation Poseidon Ocean Model Html Documentation
Poseidon GEMS Eq_State

Instructions for obtaining and building the Poseidon Ocean Model

1) Establish ssh access to sourcemotel

Contact NASA GSFC

2) Set environment variables for CVS:

    CVSROOT=:ext:{your-username}@c-sourcemotel.gsfc.nasa.gov:/cvsroot/esma
    CVS_RSH=ssh

3) plan your directory structure:

I have $MODEL_BASE=/data/Models as my base from which I run cvs

The generic command to get a source is

        cd $MODEL_BASE
        cvs co -r {tag name} {module name}

the module you want is GEOSGCM

the most recent release for ocean only is GEOSogcm-Poseidon-beta3p3

        cvs co -r GEOSogcm-Poseidon-beta3p3 GEOSGCM

4) Investigate Source Tree:

When you do this, you will get a long source tree, for instance

At the top level is the basic Application, which couples the GCM (GEOSgcm_GridComp) and the History (GEOShistory_GridComp) gridded components:

    ~ | ls $MODEL_BASE/GEOSGCM/src/                                              
    Application/          Config/               GNUmakefile*
    CVS/                  GEOSgcm_GridComp/     Shared/
    ChangeLog             GEOShistory_GridComp/

The GCM has a "dataatm" component (GEOSdataatm_GridComp)which uses files of data to represent the atmosphere, and an ocean GCM (GEOSogcm_GridComp):

    ~ | ls $MODEL_BASE/GEOSGCM/src/GEOSgcm_GridComp
    CVS/                  GEOSagcm_GridComp/    GNUmakefile*
    GEOS_GcmGridComp.F90  GEOSdataatm_GridComp/
    GEOS_UnitTests/       GEOSogcm_GridComp/

The OGCM has components for dynamics (GEOSocean_GridComp), biogeochemistry (GEOSoceanbiogeochem_GridComp), physics (GEOSorad_GridComp), sea ice (GEOSseaice_GridComp) and data assimilation (GMAOodas_GridComp)

    ~ | ls $MODEL_BASE/GEOSGCM/src/GEOSgcm_GridComp/GEOSogcm_GridComp/
    CVS/                          GEOSorad_GridComp/
    GEOS_OgcmGridComp.F90         GEOSseaice_GridComp/
    GEOSocean_GridComp/           GMAOodas_GridComp/
    GEOSoceanbiogeochem_GridComp/ GNUmakefile*

Poseidon is the current module for ocean dynamics, and this directory contains a "data" sea ice. (don't worry, the makefile will know which sea-ice version to build and in which directory)

    ~ | ls $MODEL_BASE/GEOSGCM/src/GEOSgcm_GridComp/GEOSogcm_GridComp/GEOSocean_GridComp/
    CVS/                  GNUmakefile*          Poseidon_GridComp/
    GEOSdatasea_GridComp/ MOM_GridComp/

Poseidon contains special wrapper codes for the GEOS5 style of coding (the .F90 codes seen here), a set of codes for the equation of state (eq_state/), and the base model codes (neptune/)

    ~ | ls $MODEL_BASE/GEOSGCM/src/GEOSgcm_GridComp/GEOSogcm_GridComp/GEOSocean_GridComp/Poseidon_GridComp/
    CVS/                      Poseidon_GridComp.F90     eq_state/
    GNUmakefile               Poseidon_Initialize.F90   neptune/
    POSEIDON.rc               Poseidon_Run.F90          odas_iau.F90
    Poseidon_Finalize.F90     Poseidon_SetServices.F90

neptune/ contains the basic ocean model codes:

5) Build

The procedure for building the model is

    cd $MODEL_BASE/GEOSGCM/src
    gmake install

6) Oops

If this does not work, the first place to start is to examine the ESMA_arch.mk file in $MODEL_BASE/GEOSGCM/src/Config Perhaps you need to change compiler information or library locations (this should not be a problem on nccs machines)

if you do change anything in src/Config, you need to re-make:

        cd $MODEL_BASE/GEOSGCM/src
        gmake realclean
        gmake install

7) Warnings:

Do not run make from the sub-directories unless you know what you are doing. There are several environment variables that are passed recursively through make.

If you change code in Poseidon_GridComp/neptune, you should realize that the .f90 codes get preprocessed into .F90 codes, which are sometimes not erased - This can mean that the next time you build, the compiler will simply use the old .F90 file, even though the underlying .f90 file has changed (this is a bug in the makefiles)

It is good to rm *.F90 from within Poseidon_GridComp/neptune/ before running make

 

©2006 Paul Schopf, Department of Climate DynamicsCollege of ScienceGeorge Mason University HomeCodeSupport