innovation_mod¶
Dependency Diagrams:
Description
MODULE innovation_mod (prefix=’inn’ category=’1. High-level functionality’)
- Purpose
Several high-level subroutines used to compute the innovations: that is, the observation-minus-background values. This includes the subroutine that reads in the gridded high-res background state from standard files.
Quick access
- Routines
inn_computeinnovation()
,inn_gethcovcofromtrlmfile()
,inn_perturbobs()
,inn_setupcolumnsonanlinclev()
,inn_setupcolumnsontrllev()
,inn_setupobs()
,setobsmpistrategy()
Needed modules
midasmpi_mod
: MODULE midasMpi_mod (prefix=’mmpi’ 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’)
timecoord_mod
: MODULE timeCoord_mod (prefix=’tim’ category=’7. Low-level data objects’)
obstimeinterp_mod
: MODULE obsTimeInterp_mod (prefix=’oti’ category=’4. Data Object transformations’)
obsoperators_mod
: MODULE obsOperators_mod (prefix=’oop’ category=’5. Observation operators’)
mathphysconstants_mod
: MODULE mathPhysConstants_mod (prefix=’mpc’ category=’8. Low-level utilities and constants’)
horizontalcoord_mod
: MODULE horizontalCoord_mod (prefix=’hco’ category=’7. Low-level data objects’)
varnamelist_mod
: MODULE varNameList_mod (prefix=’vnl’ category=’7. Low-level data objects’)
verticalcoord_mod
: MODULE verticalCoord_mod (prefix=’vco’ category=’7. Low-level data objects’)
gridstatevector_mod
: MODULE gridStateVector_mod (prefix=’gsv’ category=’6. High-level data objects’)
utilities_mod
: MODULE utilities_mod (prefix=’utl’ category=’8. Low-level utilities and constants’)
message_mod
: MODULE message_mod (prefix=’msg’ category=’8. Low-level utilities and constants’)
obsfilter_mod
: MODULE obsFilter_mod (prefix=’filt’ category=’5. Observation operators’)
gps_mod
: MODULE gps_mod (prefix=’gps’ category=’5. Observation operators’)
tovsnl_mod
: MODULE tovsNL_mod (prefix=’tvs’ category=’5. Observation operators’)
multiirbgck_mod
: MODULE multiIRbgck_mod (prefix=’irbg’ category=’1. High-level functionality’)
obsfiles_mod
: MODULE obsFiles_mod (prefix=’obsf’ category=’3. Observation input/output’)
randomnumber_mod
: MODULE randomNumber_mod (prefix=’rng’ category=’8. Low-level utilities and constants’)
obserrors_mod
: MODULE obsErrors_mod (prefix=’oer’ category=’2. B and R matrices’)
bufr_mod
: MODULE bufr_mod (prefix=’bufr’ category=’8. Low-level utilities and constants’)
statetocolumn_mod
: MODULE stateToColumn_mod (prefix=’s2c’ category=’4. Data Object transformations’)
biascorrectionsat_mod
: MODULE biasCorrectionSat_mod (prefix=’bcs’ category=’1. High-level functionality’)
rmatrix_mod
: MODULE rMatrix_mod (prefix=’rmat’ category=’2. B and R matrices’)
costfunction_mod
: MODULE costFunction_mod, (prefix=’cfn’ category=’5. Observation operators’)
varqc_mod
: MODULE varQC_mod (prefix=’vqc’ category=’1. High-level functionality’)
humiditylimits_mod
: MODULE humidityLimits_mod (prefix=’qlim’ category=’4. Data Object transformations’)
interpolation_mod
: MODULE interpolation_mod (prefix=’int’ category=’4. Data Object transformations’)Variables
Subroutines and functions
- subroutine innovation_mod/inn_setupobs(obsspacedata, hco_anl, obscolumnmode, obsmpistrategy, innovationmode_in[, obsclean_opt])¶
- Purpose
To initialize the observation parameters and constants
- Arguments
obsspacedata [struct_obs ,out]
hco_anl [struct_hco ,in,pointer]
obscolumnmode [character ,in]
obsmpistrategy [character ,in]
innovationmode_in [character ,in]
- Options
obsclean_opt [logical ,in,]
- Called from
omf_ominusf()
,omf_ominusfens()
,midas_analysiserroroi
,midas_diaghbht
,midas_ensembleh
,midas_gencoeff
,midas_letkf
,midas_obsimpact
,midas_obsselection
,midas_sstbias
,midas_var
,midas_var1d
- Call to
utl_tmg_start()
,obs_class_initialize()
,obs_initialize()
,obsf_filessplit()
,filt_setup()
,tvs_setup()
,obsf_readfiles()
,utl_tmg_stop()
,gps_setupro()
,obs_famexist()
,gps_setupgb()
,filt_suprep()
,bcs_setup()
,bcs_filterobs()
,obs_clean2()
,setobsmpistrategy()
,obs_squeeze()
,obs_columnactive_ih()
,obs_mpiredistribute()
,obs_reducetompilocal()
,tvs_setupalloc()
,irbg_setup()
,oer_setinterchancorr()
- subroutine innovation_mod/inn_setupcolumnsontrllev(columntrlontrllev, obsspacedata, hco_core, statevectorupdatehighres[, deallocinterpinfonl_opt])¶
- Purpose
To compute vertical (and potentially slanted) columns of trial data interpolated to obs location
- Arguments
columntrlontrllev [struct_columndata ,out]
obsspacedata [struct_obs ,inout]
hco_core [struct_hco ,in,pointer]
statevectorupdatehighres [struct_gsv ,inout]
- Options
deallocinterpinfonl_opt [logical ,in,]
- Called from
omf_ominusf()
,midas_diaghbht
,midas_gencoeff
,midas_obsimpact
,midas_obsselection
,midas_var
,midas_var1d
- Call to
utl_isnamelistpresent()
,utl_abort()
,gsv_getvco()
,col_setvco()
,col_allocate()
,obs_numheader()
,obs_extractobsrealheadercolumn()
,s2c_nl()
,col_getnumcol()
,col_varexist()
,col_getcolumn()
- subroutine innovation_mod/inn_setupcolumnsonanlinclev(columntrlontrllev, columntrlonanlinclev)¶
- Purpose
To create trial data columns on analysis increment levels
- Arguments
columntrlontrllev [struct_columndata ,in]
columntrlonanlinclev [struct_columndata ,inout]
- Called from
omf_ominusf()
,omf_ominusfens()
,midas_diaghbht
,midas_obsimpact
,midas_obsselection
,midas_var
,midas_var1d
- Call to
col_getnumcol()
,msg()
,col_varexist()
,col_getcolumn()
,int_vinterp_col()
,col_getnumlev()
,vnl_iscloudvar()
,qlim_getminvaluecloud()
,qlim_getmaxvaluecloud()
,vnl_varkindfromvarname()
,vnl_varlistindex()
- subroutine innovation_mod/inn_computeinnovation(columntrlontrllev, obsspacedata[, filterobsandinitoer_opt[, applyvarqconnljo_opt[, destobscolumn_opt[, besilent_opt[, callfilttopo_opt[, callseterrgpsgb_opt[, analysismode_opt]]]]]]])¶
- Purpose
To initialize observation innovations using the nonlinear H
- Arguments
columntrlontrllev [struct_columndata ,in]
obsspacedata [struct_obs ,inout]
- Options
filterobsandinitoer_opt [logical ,in,]
applyvarqconnljo_opt [logical ,in,]
destobscolumn_opt [integer ,in,] :: column where result stored, default is OBS_OMP
besilent_opt [logical ,in,]
callfilttopo_opt [logical ,in,] :: whether to make call to FiltTopo
callseterrgpsgb_opt [logical ,in,] :: whether to make call to oer_SETERRGPSGB
analysismode_opt [logical ,in,] :: analysisMode argument for oer_SETERRGPSGB and oop_gpsgb_nl
- Called from
omf_ominusf()
,omf_ominusfens()
,midas_diaghbht
,midas_ensembleh
,midas_gencoeff
,midas_letkf
,midas_obsimpact
,midas_obsselection
,midas_var
,midas_var1d
- Call to
utl_tmg_start()
,oti_timebinning()
,filt_topo()
,filt_surfacewind()
,oop_vobslyrs()
,col_getnumlev()
,oop_ppp_nl()
,oer_sw()
,oop_sfc_nl()
,filt_radvel()
,oop_radvel_nl()
,oop_sst_nl()
,filt_iceconcentration()
,filt_backscatanisice()
,oer_seterrbackscatanisice()
,oop_ice_nl()
,oop_hydro_nl()
,oop_tovs_nl()
,tim_getdatestamp()
,oop_zzz_nl()
,obs_famexist()
,filt_gpsro()
,oer_seterrgpsro()
,oop_gpsro_nl()
,oop_chm_nl()
,oer_seterrgpsgb()
,oop_gpsgb_nl()
,utl_tmg_stop()
,rmat_rsqrtinverseallobs()
,cfn_calcjo()
,vqc_nltl()
,cfn_sumjo()
- subroutine innovation_mod/setobsmpistrategy(obsspacedata, hco_anl, mpistrategy)¶
- Purpose
To distribute header indices following the chosen strategy, current options: “LIKESPLITFILES”, “ROUNDROBIN”, “LATLONTILES”.
- Arguments
obsspacedata [struct_obs ,inout]
hco_anl [struct_hco ,in,pointer]
mpistrategy [character ,in]
- Called from
- Call to
obs_numheader()
,obs_headset_i()
,obs_columnactive_ih()
,obs_headelem_r()
,mmpi_myidyfromlat()
,mmpi_myidxfromlon()
,utl_abort()
- subroutine innovation_mod/inn_perturbobs(obsspacedata, numanalyses, indexanalysis, indexbatch, obs_column_index_src, obs_column_index_dest)¶
- Purpose
To perturb the innovation vector to simulate effect of observation uncertainty
Warning
perturbations are not the same when MPI topology changes!!!
- Arguments
obsspacedata [struct_obs ,inout]
numanalyses [integer ,in]
indexanalysis [integer ,in]
indexbatch [integer ,in]
obs_column_index_src [integer ,in]
obs_column_index_dest [integer ,in]
- Call to
obs_numbody()
,rng_setup()
,rng_gaussian()
,obs_bodyelem_r()
,obs_getfamily()
,obs_bodyelem_i()
- subroutine innovation_mod/inn_gethcovcofromtrlmfile(hco_trl, vco_trl)¶
- Purpose
Get hco/vco of the trials
- Arguments
hco_trl [struct_hco ,inout,pointer]
vco_trl [struct_vco ,inout,pointer]
- Called from
omf_ominusf()
,midas_diaghbht
,midas_gencoeff
,midas_obsimpact
,midas_obsselection
,midas_var
,midas_var1d
- Call to
gsv_isinitialized()
,gsv_setup()
,gsv_varnameslist()
,hco_setupfromfile()
,vco_setupfromfile()