Working with Ent DGTEM (Dynamic Global Terrestrial Ecosystem Model) 
===================================================================

This document describes how to checkout, compile and run modelE
coupled to Ent DGTEM.


Getting the code
================

Ent is now part of modelE repository. All Ent code is located 
in modelE/model/Ent subdirectory. So standard 

  cvs checkout modelE

works for getting modelE with Ent. One should be aware though
that for compatibility with Ent some modelE/model code
was moved to subdirectories. If updating from some older version
of modelE make sure to use 

  cvs update -d

to force cvs to create these new subdirectories.

Compiling the code
==================

Since in this new setup some of the code is located in subdirectories
the Makefile had to be modified to be able to work with
subdirectories. Basically a completely different makefile was written
for this purpose. To switch to this new makefile you have to specify 

  NEW_MAKEFILE_FORMAT=YES

in your ~/.modelErc file. This new makefile expects two additional
sections to be present inside the rundeck. Section "Components:" lists
the names of the subdirectories (from now called "Components")
containig the code which has to be compiled with the model. The
section "Component Options:" contains the flags which have to be passed
to each component (i.e. the flags which have to be set when local
makefile is executed inside corresponding subdirectory). Each
component (subdirectory) contains a makefile which in most cases is
trivial: it contains the list of source files and includes standard
template makefiles from config/ directory (see model/shared/Makefile
for an example). If rundeck should be able to modify the list of
source files in the component that can be done by passing
corresponding "Component Options:" (see how it is done inside
model/Ent/Makefile). Current template rundeck for modelE coupled to
Ent is E1M20dv1.R (see it as an example of how to use "Components:"
and "Component Options:"). The commands supported by the new makefile
are basically the same with some small differences. To compile and set
up a typical modelE+Ent run you would do:

# remove old object files if necessary (old "vclean")
  make clean_all

# create a rundeck
  make rundeck RUN=my_run RUNSRC=E1M20dv1

# build dependencies
  make depend RUN=my_run ESMF=YES NPES=1

# compile and do setup
  make setup RUN=my_run ESMF=YES NPES=1


Running the model
=================

You run the model coupled to Ent as you would run any version of
modelE. See local_info.txt for information on how to effectively run
the model on a particular architecture.
