obsOperators_mod¶
Dependency Diagrams:
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