obsOperators_mod¶
Dependency Diagrams:
![]()
Direct Dependency Diagram¶
![]()
Reverse Dependency Diagram¶
Description
MODULE obsOperators_mod (prefix=’oop’ category=’5. Observation operators’)
- Purpose
All observation operators, including nonlinear, tangent-linear and adjoint versions.
Quick access
- Routines
hutoes(),hutoes_ad(),hutoes_tl(),oop_calcgpsgbjacobian(),oop_calcgpsrojacobian(),oop_chm_nl(),oop_gpsgb_nl(),oop_gpsro_nl(),oop_had(),oop_htl(),oop_hydro_nl(),oop_ice_nl(),oop_icescaling(),oop_ppp_nl(),oop_radvel_nl(),oop_sfc_nl(),oop_sst_nl(),oop_tovs_nl(),oop_vobslyrs(),oop_zzz_nl()Needed modules
codeprecision_mod: MODULE codePrecision_mod (prefix=’pre’ category=’8. Low-level utilities and constants’)
earthconstants_mod: MODULE earthConstants_mod (prefix=’ec’ category=’8. Low-level utilities and constants’)
mathphysconstants_mod: MODULE mathPhysConstants_mod (prefix=’mpc’ category=’8. Low-level utilities and constants’)
obsspacedata_mod: MODULE obsSpaceData_mod (prefix=’obs’ category=’6. High-level data objects’)
columndata_mod: MODULE columnData_mod (prefix=’col’ category=’6. High-level data objects’)
bufr_mod: MODULE bufr_mod (prefix=’bufr’ category=’8. Low-level utilities and constants’)
physicsfunctions_mod: MODULE physicsFunctions_mod (prefix=’phf’ category=’8. Low-level utilities and constants’)
gps_mod: MODULE gps_mod (prefix=’gps’ category=’5. Observation operators’)
midasmpi_mod: MODULE midasMpi_mod (prefix=’mmpi’ category=’8. Low-level utilities and constants’)
timecoord_mod: MODULE timeCoord_mod (prefix=’tim’ category=’7. Low-level data objects’)
tovsnl_mod: MODULE tovsNL_mod (prefix=’tvs’ category=’5. Observation operators’)
utilities_mod: MODULE utilities_mod (prefix=’utl’ category=’8. Low-level utilities and constants’)
tovslin_mod: MODULE tovsLin_mod (prefix=’tvslin’ category=’5. Observation operators’)
verticalcoord_mod: MODULE verticalCoord_mod (prefix=’vco’ category=’7. Low-level data objects’)
varnamelist_mod: MODULE varNameList_mod (prefix=’vnl’ category=’7. Low-level data objects’)
obsoperatorschem_mod: MODULE obsOperatorsChem_mod (prefix=’oopc’ category=’5. Observation operators’)
obserrors_mod: MODULE obsErrors_mod (prefix=’oer’ category=’2. B and R matrices’)Variables
Subroutines and functions
- subroutine obsoperators_mod/oop_vobslyrs(columntrl, obsspacedata, besilent)¶
- Purpose
Find which model levels to use for the vertical interpolation of model fields to obs data.
- Arguments
columntrl [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
besilent [logical ,in]
- Called from
inn_computeinnovation(),oop_htl(),oop_had(),ose_compute_hbht_static()- Call to
col_getnumlev(),obs_numbody(),obs_bodyelem_i(),obs_bodyset_i(),obs_bodyelem_r(),utl_abort(),bufr_isatmosconstituent(),vnl_varlevelfromvarnum(),obs_headelem_i(),col_getpressure(),obs_headelem_r(),col_getheight()
- subroutine obsoperators_mod/oop_ppp_nl(columntrlontrllev, obsspacedata, besilent, cdfam, destobscolumn)¶
- Purpose
Computation of y - H(x) for pressure-level observations. Interpolate vertically columnTrlOnTrlLev to the pressure levels of the observations. A linear interpolation in ln(p) is performed.
- Arguments
columntrlontrllev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
besilent [logical ,in]
cdfam [character ,in] :: family of obsservation
destobscolumn [integer ,in]
- Called from
- Call to
col_getnumlev(),obs_bodyelem_i(),obs_bodyelem_r(),vnl_varnamefromvarnum(),vnl_varlevelfromvarnum(),col_getpressure(),obs_headelem_r(),col_getcolumn(),hutoes(),phf_height2geopotential(),col_getelem(),col_getheight()
- subroutine obsoperators_mod/oop_zzz_nl(columntrlontrllev, obsspacedata, besilent, cdfam, destobscolumn)¶
- Purpose
Computation of y - H(x) for geometric-height observations Interpolate vertically columnTrlOnTrlLev to the geometric heights (in meters) of the observations. A linear interpolation in z is performed.
- Notes
As a first approximation, use the geopotential height. Once this is working, this should be changed for a calculation of the geometric height.
Note that, in the case of an aladin HLOS wind, the correction to zvar (OBS_VAR) is not written back to obsSpaceData. It is simply used to calculate OMP (which is written to obsSpaceData) and then is discarded. Thereafter, if one calculates OMP - O (this will be the uncorrected O), the result will be a corrected P.
- Arguments
columntrlontrllev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
besilent [logical ,in]
cdfam [character ,in] :: family of observation
destobscolumn [integer ,in]
- Called from
- Call to
utl_abort(),obs_bodyelem_i(),obs_bodyelem_r(),vnl_varlevelfromvarnum(),col_getheight(),obs_headelem_i(),obs_bodyset_i(),col_getelem(),col_getpressure(),col_getoffsetfromvarno()
- subroutine obsoperators_mod/oop_sfc_nl(columntrlontrllev, obsspacedata, besilent, cdfam, destobscolumn)¶
- Purpose
Computation of the residuals to the observations FOR SURFACE DATA (except ground-based GPS zenith delay).
- Arguments
columntrlontrllev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
besilent [logical ,in]
cdfam [character ,in] :: family of observation
destobscolumn [integer ,in]
- Called from
- Call to
utl_isnamelistpresent(),utl_abort(),obs_getheaderindex(),obs_bodyelem_i(),obs_bodyelem_r(),vnl_varlevelfromvarnum(),hutoes(),col_getelem(),col_getnumlev(),col_getpressure(),col_getoffsetfromvarno(),col_getheight()
- subroutine obsoperators_mod/oop_sst_nl(columntrlontrllev, obsspacedata, besilent, cdfam, destobscolumn)¶
- Purpose
Computation of Jo and the residuals to the observations for Sea Surface Temperature (SST) data.
- Arguments
columntrlontrllev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
besilent [logical ,in]
cdfam [character ,in] :: family of observation
destobscolumn [integer ,in]
- Called from
- Call to
obs_getheaderindex(),obs_bodyelem_i(),col_varexist(),obs_bodyelem_r(),col_getelem()
- subroutine obsoperators_mod/oop_hydro_nl(columntrlontrllev, obsspacedata, besilent, cdfam, destobscolumn)¶
- Purpose
To computate Jo and the residuals to the observations for hydrological data
- Arguments
columntrlontrllev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
besilent [logical ,in]
cdfam [character ,in] :: family of observation
destobscolumn [integer ,in]
- Called from
- Call to
obs_getheaderindex(),obs_bodyelem_i(),obs_bodyelem_r(),vnl_varnamefromvarnum(),col_getelem()
- subroutine obsoperators_mod/oop_ice_nl(columntrlontrllev, obsspacedata, besilent, cdfam, destobscolumn)¶
- Purpose
Computation of Jo and the residuals to the observations FOR SEA ICE CONCENTRATION DATA
- Arguments
columntrlontrllev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
besilent [logical ,in]
cdfam [character ,in] :: family of observation
destobscolumn [integer ,in]
- Called from
- Call to
obs_bodyelem_i(),vnl_varnamefromvarnum(),col_getelem(),obs_headelem_i(),obs_bodyelem_r()
- subroutine obsoperators_mod/oop_radvel_nl(columntrlontrllev, obsspacedata, besilent, cdfam, destobscolumn)¶
- Purpose
Computation of Jo and OMP for Radar Doppler velocity observations
- Arguments
columntrlontrllev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
besilent [logical ,in]
cdfam [character ,in] :: family of observation
destobscolumn [integer ,in]
- Called from
- Call to
obs_getheaderindex(),obs_headelem_r(),obs_bodyelem_i(),obs_bodyelem_r(),col_getheight(),col_getelem()
- subroutine obsoperators_mod/oop_gpsro_nl(columntrlontrllev, obsspacedata, besilent, destobscolumn)¶
- Purpose
Computation of Jo and the residuals to the GPSRO observations
- Note
gps_struct1sw_v2 allows calculation of partial derivatives of refractivity in gps_diff object w.r.t TT/HU/GZ/P0. The indirect dependency refractivity to TT/HU/P0 through GZ is now attributed to direct dependency of refractivity on GZ.
- Arguments
columntrlontrllev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
besilent [logical ,in]
destobscolumn [integer ,in]
- Called from
- Call to
col_getvco(),col_getnumlev(),obs_getheaderindex(),obs_headelem_i(),obs_bodyelem_i(),gps_iprofile_from_index(),obs_headelem_r(),col_getheight(),col_getelem(),col_getpressure(),utl_abort(),gps_struct1sw_v2(),obs_bodyelem_r(),gps_bndopv1(),gps_refopv()
- subroutine obsoperators_mod/oop_gpsgb_nl(columntrlontrllev, obsspacedata, besilent, destobscolumn[, analysismode_opt])¶
- Purpose
Computation of the residuals to the GB-GPS ZTD observations
- Arguments
columntrlontrllev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
besilent [logical ,in]
destobscolumn [integer ,in]
- Options
analysismode_opt [logical ,in,]
- Called from
- Call to
col_getnumlev(),obs_getheaderindex(),obs_headelem_i(),obs_elem_c(),obs_bodyelem_i(),obs_bodyelem_r(),obs_headelem_r(),col_getheight(),col_getelem(),col_getpressure(),gps_structztd_v2(),gps_ztdopv(),gps_pw(),obs_bodyset_i(),utl_abort()
- subroutine obsoperators_mod/oop_tovs_nl(columntrl, obsspacedata, datestamp, besilent[, bgckmode_opt[, option_opt[, sourceobs_opt[, destobs_opt]]]])¶
- Purpose
Computation of the residuals to the tovs observations
- Options
option_opt [character ,in,] :: only valid value is HR - ‘HR’: High Resolution background state, - ‘LR’: Low Resolution background state, (CURRENTLY NOT SUPPORTED) - ‘MO’: Model state. (CURRENTLY NOT SUPPORTED)
bgckmode_opt [logical ,in,]
sourceobs_opt [integer ,in,] :: usually set to OBS_VAR
destobs_opt [integer ,in,] :: usually set to OBS_OMP
- Arguments
columntrl [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
datestamp [integer ,in]
besilent [logical ,in]
- Called from
- Call to
obs_famexist(),utl_abort(),tvs_fillprofiles(),tvs_rttov(),obs_numbody(),obs_bodyelem_r(),obs_getheaderindex(),obs_headelem_i(),tvs_isidburptovs(),obs_bodyelem_i(),tvs_getchannelnumindexfromppp(),oer_inflateerrallsky(),tvs_printdetailledomfstatistics()
- subroutine obsoperators_mod/oop_chm_nl(columntrlontrllev, obsspacedata, destobscolumn)¶
- Purpose
Computation of the residuals to the observations for all observations of the CH (chemical constituents) family. The array columnTrlOnTrlLev contains the input model array. Stores OmP in OBS_OMP in obsSpaceData.
- Arguments
columntrlontrllev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
destobscolumn [integer ,in]
- Called from
- Call to
- subroutine obsoperators_mod/oop_htl(columnanlinc, columntrlonanlinclev, obsspacedata, min_nsim[, initializelinearization_opt])¶
- Purpose
Compute simulated observations from profiled model increments. It returns Hdx in OBS_WORK. Calls the several linear observation operators.
- Arguments
columnanlinc [struct_columndata ,in]
columntrlonanlinclev [struct_columndata ,inout]
obsspacedata [struct_obs ,inout]
min_nsim [integer ,in]
- Options
initializelinearization_opt [logical ,in,]
- Called from
fso_ensemble(),simvar(),osd_calcinflation(),ose_compute_hbht_ensemble(),midas_diaghbht- Call to
col_getvco(),oop_vobslyrs(),col_getnumlev(),col_varexist(),utl_abort(),col_getnumcol(),col_getelem(),phf_fottva(),phf_folnqva()
- subroutine obsoperators_mod/oop_had(columnanlinc, columntrlonanlinclev, obsspacedata[, initializelinearization_opt])¶
- Purpose
Call the several adjoint of observation operators
- Arguments
columnanlinc [struct_columndata ,inout]
columntrlonanlinclev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
- Options
initializelinearization_opt [logical ,in,]
- Called from
- Call to
col_getvco(),oop_vobslyrs(),col_getnumlev(),obs_bodyelem_i(),obs_bodyelem_r(),vnl_varlevelfromvarnum(),col_getoffsetfromvarno(),col_getpressure(),col_getcolumn(),hutoes_ad(),col_getelem(),hutoes()
- function obsoperators_mod/hutoes(hu, tt, pressure)¶
- Purpose
to calculate the dew point depression from specific humidity, temperature and pressure. No ice phase is permitted and the pressure vector is given.
- Arguments
hu [real ,in]
tt [real ,in]
pressure [real ,in]
- Return
es [real ]
- Called from
- Call to
- function obsoperators_mod/hutoes_tl(hu_inc, tt_inc, p_inc, hu_trl, pres_trl)¶
- Purpose
TLM VERSION to calculate the dew point depression from specific humidity, temperature and pressure. No ice phase is permitted and the pressure vector is given.
- Arguments
hu_inc [real ,in]
tt_inc [real ,in]
p_inc [real ,in]
hu_trl [real ,in]
pres_trl [real ,in]
- Return
es_inc [real ]
- Call to
phf_foefq8(),phf_fotw8(),phf_fodtw8(),phf_fqbranch(),phf_foefqa(),phf_foefqpsa()
- subroutine obsoperators_mod/hutoes_ad(hu_inc, tt_inc, p_inc, es_inc, hu_trl, pres_trl)¶
- Purpose: ADJOINT VERSION
to calculate the dew point depression from specific humidity, temperature and pressure. No ice phase is permitted and the pressure vector is given.
- Arguments
hu_inc [real ,inout]
tt_inc [real ,inout]
p_inc [real ,inout]
es_inc [real ,in]
hu_trl [real ,in]
pres_trl [real ,in]
- Called from
- Call to
phf_foefq8(),phf_fotw8(),phf_fodtw8(),phf_fqbranch(),phf_foefqa(),phf_foefqpsa()
- subroutine obsoperators_mod/oop_calcgpsrojacobian(columntrlonanlinclev, obsspacedata[, initializelinearization_opt])¶
- Purpose
Calculating the Jacobians of refractivity for oop_Hro/oop_HTro
- Arguments
columntrlonanlinclev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
- Options
initializelinearization_opt [logical ,in,]
- Call to
col_getnumlev(),obs_getheaderindex(),obs_headelem_i(),obs_bodyelem_i(),gps_iprofile_from_index(),obs_headelem_r(),col_getheight(),col_getelem(),col_getpressure(),gps_struct1sw_v2(),obs_bodyelem_r(),gps_bndopv1(),gps_refopv()
- subroutine obsoperators_mod/oop_calcgpsgbjacobian(columntrlonanlinclev, obsspacedata[, initializelinearization_opt])¶
- Purpose
Calculating the Jacobians of ZTD for oop_Hgp/oop_HTgp
- Arguments
columntrlonanlinclev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
- Options
initializelinearization_opt [logical ,in,]
- Call to
col_getvco(),col_getnumlev(),utl_abort(),obs_getheaderindex(),obs_headelem_i(),obs_bodyelem_i(),obs_bodyelem_r(),obs_headelem_r(),col_getelem(),col_getpressure(),col_getheight(),gps_structztd_v2(),gps_ztdopv(),gps_iztd_from_index(),obs_elem_c(),gps_pw()
- function obsoperators_mod/oop_icescaling(obsspacedata, bodyindex)¶
- Purpose
Calculate the scaling factor for ice related observations to convert from model space to observation space, i.e. H(iceConc) = scaling*iceConc + constant
- Arguments
obsspacedata [struct_obs ,in]
bodyindex [integer ,in]
- Return
scaling [real ]
- Called from
- Call to