MODULE DEFAULT_obs_def_mod

Contact: Jeff Anderson
Reviewers:  
Revision: $Revision: 1.1 $
Release Name: $Name: iceland $
Change Date: $Date: 2005/10/17 19:47:35 $
Change history: see CVS log

OVERVIEW

Beginning with the I-release of DART, a more flexible. powerful (and complicated) mechanism for incorporating new types of observations is part of DART. The DEFAULT_obs_def module being described here is used by the program preprocess.f90 to create the obs_def_mod.f90 (documented separately in this directory). Information from zero or more special obs_def modules (such as obs_def_1d_state_mod.f90 or obs_def_reanalyis_bufr_mod.f90) which are also documented in this directory are incorporated into the template provided by DEFAULT_obs_def_mod. If no special obs_def files are included in the preprocessor namelist, a minimal obs_def_mod.f90 is created which can only support identity forward observation operators.

This documentation file only describes the special formatting that is included in the DEFAULT_obs_def_mod in order to guide the preprocess program. Up to six sections of code are inserted into the DEFAULT_obs_def_mod from each of the special obs_def modules that are requested. The insertion point for each section is denoted by a special comment line that must be included VERBATIM in DEFAULT_obs_def_mod. These special comment lines and their significance are:

1. ! DART PREPROCES USE FOR OBS_KIND_MOD INSERTED HERE
Integer identifiers with a unique integer value corresponding to each available observation kind are defined in a table in the obs_kind_mod which is also created by the preprocessor. The use statements for these entries are inserted here.

2. ! DART PREPROCESS USE OF SPECIAL OBS_DEF MODULE INSERTED HERE
Some special observation definition modules (see for instance obs_def_1d_raw_state_mod.f90) contain code for evaluating forward observation operators, reading or writing special information about an observation definition to an obs sequence file, or for interactive definition of an observation. The use statements for these routines from the special observation definition modules are inserted here.

3. ! DART PREPROCESS GET_EXPECTED_OBS_FROM_DEF INSERTED HERE
Special observation definition modules must contain case statement code saying what to do to evaluate a forward observation operator for each observation kind that they define. This code is inserted here.

4. ! DART PREPROCESS READ_OBS_DEF INSERTED HERE
Special observation definition modules must contain case statement code saying what to do to read any additional information required for each observation kind that they define from an observation sequence file. This code is inserted here.

5. ! DART PREPROCESS WRITE_OBS_DEF INSERTED HERE
Special observation definition modules must contain case statement code saying what to do to write any additional information required for each observation kind that they define to an observation sequence file. This code is inserted here.

6. ! DART PREPROCESS INTERACTIVE_OBS_DEF INSERTED HERE
Special observation definition modules must contain case statement code saying what to do to interactively create any additional information required for each observation kind that they define. This code is inserted here.