DART includes a flexible, powerful, and slightly complicated mechanism for incorporating new types of observations.
The
obs_def_ocean_mod
module being described here is used by the program preprocess
to insert appropriate
definitions of ocean observations into the DEFAULT_obs_def_mod.f90
template and generate the source files
obs_def_mod.f90
and obs_kind_mod.f90
that are used by filter
and other DART programs.Only
HFRADAR_RADIAL_VELOCITY
observations require a forward operator, as evidenced by the fact there is no
COMMON_CODE
in the third column of the type definitions table.
All other observations types map to quantities that must be available in the model state;
the observations types flagged with COMMON_CODE
will use the model_interpolate()
routine
as the forward operator.The mandatory header line is followed by lines that have the observation type name (an all caps Fortran 90 identifier)
and their associated generic quantity identifier from the obs_kind module. If there is no special processing needed
for an observation type, and no additional data needed beyond the standard contents of an observation, then a third
word on the line, the
COMMON_CODE
will instruct the preprocess program to automatically generate all stubs and
code needed for this type. For observation types needing any special code or additional data, this word should not be
specified and the user must supply the code manually. One of the future extensions of this module will be to support
acoustic tomographic observations, which will necessitate specific support routines.! BEGIN DART PREPROCESS TYPE DEFINITIONS ! SALINITY, QTY_SALINITY, COMMON_CODE ! TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! U_CURRENT_COMPONENT, QTY_U_CURRENT_COMPONENT, COMMON_CODE ! V_CURRENT_COMPONENT, QTY_V_CURRENT_COMPONENT, COMMON_CODE ! SEA_SURFACE_HEIGHT, QTY_SEA_SURFACE_HEIGHT, COMMON_CODE ! SEA_SURFACE_PRESSURE, QTY_SEA_SURFACE_PRESSURE, COMMON_CODE ! ARGO_U_CURRENT_COMPONENT, QTY_U_CURRENT_COMPONENT, COMMON_CODE ! ARGO_V_CURRENT_COMPONENT, QTY_V_CURRENT_COMPONENT, COMMON_CODE ! ARGO_SALINITY, QTY_SALINITY, COMMON_CODE ! ARGO_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! ADCP_U_CURRENT_COMPONENT, QTY_U_CURRENT_COMPONENT, COMMON_CODE ! ADCP_V_CURRENT_COMPONENT, QTY_V_CURRENT_COMPONENT, COMMON_CODE ! ADCP_SALINITY, QTY_SALINITY, COMMON_CODE ! ADCP_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! FLOAT_SALINITY, QTY_SALINITY, COMMON_CODE ! FLOAT_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! DRIFTER_U_CURRENT_COMPONENT, QTY_U_CURRENT_COMPONENT, COMMON_CODE ! DRIFTER_V_CURRENT_COMPONENT, QTY_V_CURRENT_COMPONENT, COMMON_CODE ! DRIFTER_SALINITY, QTY_SALINITY, COMMON_CODE ! DRIFTER_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! GLIDER_U_CURRENT_COMPONENT, QTY_U_CURRENT_COMPONENT, COMMON_CODE ! GLIDER_V_CURRENT_COMPONENT, QTY_V_CURRENT_COMPONENT, COMMON_CODE ! GLIDER_SALINITY, QTY_SALINITY, COMMON_CODE ! GLIDER_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! MOORING_U_CURRENT_COMPONENT, QTY_U_CURRENT_COMPONENT, COMMON_CODE ! MOORING_V_CURRENT_COMPONENT, QTY_V_CURRENT_COMPONENT, COMMON_CODE ! MOORING_SALINITY, QTY_SALINITY, COMMON_CODE ! MOORING_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! MOORING_PRESSURE, QTY_PRESSURE, COMMON_CODE ! BOTTLE_SALINITY, QTY_SALINITY, COMMON_CODE ! BOTTLE_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! CTD_SALINITY, QTY_SALINITY, COMMON_CODE ! CTD_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! TCTD_SALINITY, QTY_SALINITY, COMMON_CODE ! TCTD_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! STD_SALINITY, QTY_SALINITY, COMMON_CODE ! STD_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! XCTD_SALINITY, QTY_SALINITY, COMMON_CODE ! XCTD_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! MBT_SALINITY, QTY_SALINITY, COMMON_CODE ! MBT_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! XBT_SALINITY, QTY_SALINITY, COMMON_CODE ! XBT_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! DBT_SALINITY, QTY_SALINITY, COMMON_CODE ! DBT_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! APB_SALINITY, QTY_SALINITY, COMMON_CODE ! APB_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! DOPPLER_U_CURRENT_COMPONENT, QTY_U_CURRENT_COMPONENT, COMMON_CODE ! DOPPLER_V_CURRENT_COMPONENT, QTY_V_CURRENT_COMPONENT, COMMON_CODE ! DOPPLER_W_CURRENT_COMPONENT, QTY_W_CURRENT_COMPONENT, COMMON_CODE ! SATELLITE_MICROWAVE_SST, QTY_TEMPERATURE, COMMON_CODE ! SATELLITE_INFRARED_SST, QTY_TEMPERATURE, COMMON_CODE ! SATELLITE_BLENDED_SST, QTY_TEMPERATURE, COMMON_CODE ! SATELLITE_SSH, QTY_SEA_SURFACE_HEIGHT, COMMON_CODE ! SATELLITE_SSS, QTY_SALINITY, COMMON_CODE ! J1_SEA_SURFACE_ANOMALY, QTY_SEA_SURFACE_ANOMALY, COMMON_CODE ! EN_SEA_SURFACE_ANOMALY, QTY_SEA_SURFACE_ANOMALY, COMMON_CODE ! GFO_SEA_SURFACE_ANOMALY, QTY_SEA_SURFACE_ANOMALY, COMMON_CODE ! DRY_LAND, QTY_DRY_LAND, COMMON_CODE ! OI_SEA_SURFACE_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! HFRADAR_U_CURRENT_COMPONENT, QTY_U_CURRENT_COMPONENT, COMMON_CODE ! HFRADAR_V_CURRENT_COMPONENT, QTY_V_CURRENT_COMPONENT, COMMON_CODE ! HFRADAR_RADIAL_VELOCITY, QTY_VELOCITY ! FERRYBOX_SALINITY, QTY_SALINITY, COMMON_CODE ! FERRYBOX_TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE ! END DART PREPROCESS TYPE DEFINITIONS
New observation types may be added to this list with no loss of generality. Supporting the observations and actually
assimilating them are somewhat different and is controlled by the input.nml
&obs_kind_nml
assimilate_these_obs_types variable. This
provides the flexibility to have an observation sequence file containing many different observation types and being able
to selectively choose what types will be assimilated.
types_mod utilities_mod location_mod (threed_sphere) assim_model_mod obs_kind_mod ensemble_manager_mod obs_def_utilities_mod
use obs_def_ocean_mod, only : | read_hf_radial_vel |
write_hf_radial_vel | |
interactive_hf_radial_vel | |
get_expected_hf_radial_vel | |
get_obs_def_hf_radial_vel | |
set_hf_radial_vel |
Namelist interface obs_def_ocean_nml
is read from 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.
&obs_def_ocean_nml max_radial_vel_obs = 1000000 debug = .false. /
Item | Type | Description |
---|---|---|
max_radial_vel_obs | integer | The maximum number of radial velocity observations to be read at one time. An error is thrown if more observations are encountered. Increase value and rerun. |
debug | logical | Switch to control how much run-time output is created.
.false. indicates less output,
.true. indicates more output. |
none
none
none
N/A