Jump to DART Documentation Main Index
Preprocess is a DART-supplied preprocessor program which
creates observation kind and observation definition modules from a set of
other specially formatted Fortran 90 files.
The output files are normally named
observations/forward_operators/obs_def_mod.f90, but can
be renamed by namelist control if needed.
There are three kinds of input files:
The DEFAULT files contain specially formatted comment lines which are
used as markers to insert additional information into the templates
and create the output files.
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 templates 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.
Although uncommon, it is possible to list no obs_def modules in the namelist, which results in DEFAULT_obs_kind_mod.F90 and DEFAULT_obs_def_mod.F90 being copied directly to the final obs_kind and obs_def modules. In this case, only identity observations can be used by the filter (i.e. the state variable values are directly observed; forward operator is an identity).
This namelist is read from the file input.nml. Namelists start with an ampersand '&' and terminate with a slash '/'. Character strings that contain a '/' must be enclosed in quotes to prevent them from prematurely terminating the namelist.
&preprocess_nml overwrite_output = .true., input_obs_def_mod_file = '../../../observations/forward_operators/DEFAULT_obs_def_mod.F90', output_obs_def_mod_file = '../../../observations/forward_operators/obs_def_mod.f90', input_obs_kind_mod_file = '../../../assimilation_code/modules/observations/DEFAULT_obs_kind_mod.F90', output_obs_kind_mod_file = '../../../assimilation_code/modules/observations/obs_kind_mod.f90', input_files = '../../../observations/forward_operators/null /
|input_obs_def_mod_file||character(len=129)||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)||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)||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)||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)(:)||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.|
|overwrite_output||logical||If set to .true., will allow preprocess to overwrite existing obs_kind_mod.f90 and obs_def_mod.f90 files without complaint. The default setting has changed from .FALSE. to .TRUE., so by default it will not complain about existing files but will silently update them in place.|
Namelist interface &preprocess_nml must be read from file input.nml.
|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.|
|Contact:||DART core group|
|Revision:||$Revision: 11427 $|
|Source:||$URL: https://svn-dares-dart.cgd.ucar.edu/DART/releases/Manhattan/assimilation_code/programs/preprocess/preprocess.html $|
|Change Date:||$Date: 2017-03-31 15:24:30 -0600 (Fri, 31 Mar 2017) $|
|Change history:||try "svn log" or "svn diff"|