Contact: | Jeff Anderson |
Reviewers: | |
Revision: | $Revision: 1.3 $ |
Change Date: | $Date: 2005/10/17 19:48:28 $ |
Change history: | see CVS log (cop-out, I know) |
Program to create observation kind and observation defintion modules (normally obs_kind_mod.f90 and obs_def_mod.f90) from a set of other extended format Fortran90 files. There are three kinds of input files: a default template for the obs_kind_mod normally DEFAULT_obs_kind_mod.F90 in the obs_kind directory; a default template of the obs_def_mod, normally DEFAULT_obs_def_mod.F90 in the obs_def directory; 0 or more special obs_def modules such as obs_def_mod_reanalysis_bufr_mod.f90 found in the obs_def directory. The DEFAULT_obs_kind_mod.F90 and DEFAULT_obs_def_mod.F90 are used as templates into which required information from all specified special obs_def modules is inserted. If no special obs_def modules are specified by the namelist, then the DEFAULT_obs_kind_mod.F90 and DEFAULT_obs_def_mod.F90 are copied directly to the final obs_kind and obs_def modules, normally obs_kind_mod.f90 in the obs_kind directory and obs_def_mod.f90 in the obs_def directory. In this default case, only identity observations can be used by the filter (i.e. the state variable values are directly observed; forward operator is an identity).
If one or more special obs_def files are specified, information from these files is incorporated into the output obs_def and obs_kind modules and the observation types specified in the special obs_def files will be available for use by the filter programs.
The special obs_def files must contain a number of sections of specially formatted F90 comments. They can also contain F90 code required for implementing operations needed for the observations. These sections are described in the documentation for the special obs_def modules, especially see obs_def_1d_state_mod.f90.
The DEFAULT obs_kind and obs_def modules also require specially commented sections to indicate where code from the special obs_def modules is to be inserted. See the documentation for the DEFAULT_obs_kind_mod.F90 and the DEFAULT_obs_def_mod.F90 for details.
types_mod utilities_mod
Namelist interface &preprocess_nml must be read from file input.nml.
We adhere to the F90 standard of starting a namelist with an ampersand '&' and terminating with a slash '/'.
namelist / preprocess_nml/ & input_obs_def_mod_file, input_obs_kind_mod_file, output_obs_def_mod_file, output_obs_kind_mod_file, input_files(max_input_files)
This namelist is read in a file called input.nml
Contents | Type | Description |
---|---|---|
input_obs_def_mod_file | character(len=129) [default: 'null'] |
Path name of input obs definition module to be preprocessed. Normally this is DEFAULT_obs_def_mod.F90 in the obs_def directory. This file must have the appropriate commented lines indicating where the different parts of the input special obs definition modules are to be inserted. |
output_obs_def_mod_file | character(len=129) [default: 'null'] |
Path name of output obs definition module to be created by preprocessor. Normally this is obs_def_mod.f90 in the obs_def directory. |
input_obs_kind_mod_file | character(len=129) [default: 'null'] |
Path name of input obs kind module to be preprocessed. Normally this is DEFAULT_obs_kind_mod.F90 in the obs_kind directory. This file must have the appropriate commented lines indicating where the different parts of the input special obs definition modules are to be inserted. |
output_obs_kind_mod_file | character(len=129) [default: 'null'] |
Path name of output obs kind module to be created by the preprocessor. Normally this is obs_kind_mod.F90 in the obs_kind directory. |
input_files | character(len=129) [default: 'null'] |
A list of up to max_input_files file names that contain special format obs definition files that are to be incorporated into the preprocessed obs_kind_mod.f90 and obs_def_mod.f90. The files must be in the special obs definition format that includes commented F90 lines delimitting information about the observation type(s). These files normally reside in the obs_def directory in files such as obs_def_reanalysis_bufr_mod.f90. |
Routine | Message | Comment |
---|---|---|
preprocess | Namelist must provide input_obs_def_mod_file | Need an input obs_def file to preprocess. |
preprocess | Namelist must provide input_obs_kind_mod_file | Need an input obs_kind file to preprocess. |
preprocess | Namelist must provide output_obs_def_mod_file | Need an output obs_def file to create. |
preprocess | Namelist must provide output_obs_kind_mod_file | Need an output obs_kind file to create. |
preprocess | file ____ does not exist | The input obs_def and obs_kind files must exist. |
preprocess | file ______ exists: Please Rename | The output obs_kind and obs_def files must not exist. Want to avoid overwriting something important. |
preprocess | input_files _______ does NOT exist | All of the specified special obs_def input modules must exist. |
preprocess | file _____ does NOT contain ! BEGIN DART PREPROCESS KIND LIST | Each special obs_def input file must contain this comment string. |
preprocess | file _____ does NOT contain " END DART PREPROCESS KIND LIST | Each special obs_def input file must contain this comment string. |
preprocess | Input DEFAULT obs_kind file ended unexpectedly. | Did not find strings indicating where to insert special obs_def sections in the input obs_kind module. |
preprocess | Input DEFAULT obs_def file ended unexpectedly. | Did not find strings indicating where to insert special obs_def sections in the input obs_def module. |
preprocess | file _____ does NOT contain ! BEGIN DART PREPROCESS. | Input special obs_def file must contain this comment string. |
preprocess | file _____ does NOT contain ! END DART PREPROCESS. | Input special obs_def file must contain this comment string. |