![]() |
Poseidon Ocean Model Html Documentation | ||
|
Contact NASA GSFC
CVSROOT=:ext:{your-username}@c-sourcemotel.gsfc.nasa.gov:/cvsroot/esma
CVS_RSH=ssh
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
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:
The procedure for building the model is
cd $MODEL_BASE/GEOSGCM/src
gmake install
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
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 Dynamics College of Science George Mason University | Home Code Support |