MODULE DEFAULT_obs_kind_mod¶
Overview¶
preprocess
to
create the obs_kind_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_reanalysis_bufr_mod.f90
, documented in the
obs_def directory) are incorporated into the template provided by DEFAULT_obs_def_kind. If no special obs_def files
are included in the preprocessor namelist, a minimal obs_kind_mod.f90
is created which can only support identity
forward observation operators.initialize_module()
routine below. In a planned future update to the
preprocess program it is expected that this quantities table will become autogenerated, much like the types table
described below, so no editing of this file will be needed. But until then, quantities must be added by here, by hand.
And note that they must be added to the template file, DEFAULT_obs_kind_mod.F90
and not the output of the
preprocess program, obs_kind_mod.f90
. The latter file is overwritten each time preprocess runs, deleting any hand
editing done on that file.! DART PREPROCESS INTEGER DECLARATION INSERTED HERE
Each of the observation type identifiers are inserted here, and are given both the
parameter
andpublic
attributes. The associated integer values are generated sequentially, starting at 1. If a different set of special obs_def modules is specified via the namelist for preprocess, the integer value associated with a given observation type could change so these integers are for use internal to a given program execution only. Observation types are permanently and uniquely identified by a string with character values identical to the integer identifier here. In other words, an observation quantity with integer parameter identifier RAW_STATE_VARIABLE will always be associated with a string “RAW_STATE_VARIABLE” (see below).! DART PREPROCESS OBS_QTY_INFO INSERTED HERE
The entries for the obs_kind_info table are initialized here. This table has a row for each observation quantity defined in the public and integer parameter declarations discussed above. For each obs_kind, the obs_kind info table contains the following information:
The integer index associated with this observation quantity. This is the value that is defined in the integer parameter statement above.
A character string with maximum length 32 characters that uniquely identifies the observation quantity. This string is identical to the F90 identifier used in the integer parameter statements created above.
A generic variable quantity referenced by an integer. The obs_kind_mod contains a table that defines an integer parameter that uniquely identifies each generic observation quantity. Generic quantities can be associated with both a model state variable or an observation quantity. For instance, the generic quantity QTY_U_WIND_COMPONENT might be associated with model U state variables, with RADIOSONDE_U_WIND_COMPONENT observation types, and with ACARS_U_WIND_COMPONENT observation types. The distinction between generic quantites and observation types is important and potentially confusing, so be careful to understand this point.
A logical variable indicating whether observations of this type are to be assimilated in the current experiment. This variable is set from the obs_kind namelist (see obs_kind_mod.html in this directory). The default value here is false when the obs_def_mod is created by the preprocess program.
A logical variable indicating whether observations of this type are to be evaluated (forward operator computed and recorded) but not assimilated (again set by namelist). The default value here is false when the obs_def_mod is created by the preprocess program.
A logical variable indicating whether observations of this type should use precomputed forward operator values in the observation sequence file. The default value here is false when the obs_def_mod is created by the preprocess program.