midas_oMinusF¶
Dependency Diagrams:
- program midas_ominusf¶
- Purpose
Main program for Observation minus Forecast (O-F) computation.
—
- Algorithm
The non-linear observation operators map a gridded state vector into the observation space to compute the difference between the observations and that state in observation space. The gridded state vector can be background state or the analysis. In case of background state, the difference is the innovation vector:
y-H(xb)
. If asked by the user, the diagonal of the background errors standard deviation in observation space, \({diag(H B H^{T})}^{1/2}\), are also computed. The bias corrections are applied for satellite radiances before writing the observation files.–
Input and Output Files
Description of file
flnml
In - Main namelist file with parameters user may modify
flnml_static
In - The “static” namelist that should not be modified
trlm_$NN
(e.g.trlm_01
)In - Background state (a.k.a. trial) files for each timestep
analysisgrid
In - File defining grid for computing the analysis increment
obsfiles_$FAM/obs$FAM_$NNNN_$NNNN
In - Observation file for each “family” and MPI task
obserr
In - Observation error statistics
obsfiles_$FAM.updated/obs$FAM_$NNNN_$NNNN
Out - Updated obs file for each “family” and MPI task
Remainder are files related to radiance obs:
stats_$SENSOR_assim
In - Satellite radiance observation errors of different sensors
stats_tovs
In - Satellite radiance observation errors
stats_tovs_symmetricObsErr
In - User-defined symmetric TOVS errors for all sky
Cmat_$PLATFORM_$SENSOR.dat
In - Inter-channel observation-error correlations
dynbcor.coeffs.$SENSOR.*.coeffs_$SENSOR
In - Dynamic bias correction file
ceres_global.std
In - High-res surface type and water fraction for radiance obs
rtcoef_$PLATFORM_$SENSOR.dat
In - RTTOV coefficient files
rttov_h2o_limits.dat
In - Min/max humidity limits applied to analysis
ozoneclim98
In - Ozone climatology
–
- Synopsis
Below is a summary of the
oMinusF
program calling sequence:
Initial setups:
Read the NAMOMF namelist and check/modify some values.
Various modules are setup:
obsFiles_mod
,timeCoord_mod
.Setup
gridStateVector
module.Setup horizontal and vertical grid objects from either
analysisgrid
or first trial file:trlm_01
.Setup
obsSpaceData
object and read observations from files:inn_setupObs
.Applying optional bias corrections to some observation types.
Setup
columnData
module (read list of analysis variables from namelist) and allocate column object.Allocate a stateVector object and then read the state (either trials or analysis):
gio_readTrials
.Computation
Compute interpolated column on trial level
columnTrlOnTrlLev
from the state:inn_setupColumnsOnTrlLev
.Compute innovation from background state:
inn_computeInnovation
.For computing background errors in observation space,
columnTrlOnTrlLev
are interpolated from background to analysis levels,columnTrlOnAnlIncLev
, and the linearize operators are initialized:inn_setupColumnsOnAnlIncLev
.Update radiance bias correction in
obsSpaceData
and apply the bias corrections to the observations and innovations for radiances:bcs_calcBias
,bcs_applyBiasCorrection
.Write the final bias corrected results into the observation file.
–
- Options
List of namelist blocks that can affect the
oMinusF
program.
The use of
oMinusF
program is controlled by the namelist block
&NAMOMF
read by theoMinusF
program.
Some of the other relevant namelist blocks used to configure the
oMinusF
are listed in the following table:
Module
Namelist
Description of what is controlled
biasCorrectionConv_mod
NAMBIASCONV
variables to perform bias correction for conventional observations.
biasCorrectionConv_mod
NAMSONDETYPES
additional variables to perform bias correction for radiosondes conventional observations.
biasCorrectionSat_mod
NAMBIASSAT
variables to perform bias correction for satellite radiances.
burpread_mod
NAMADDTOBURP
element IDs to add to the BURP file
Needed modules
version_mod
: MODULE version_mod (prefix=’ver’ category=’8. Low-level utilities and constants’)
ominusf_mod
: MODULE oMinusF_mod (prefix=’omf’ category=’1. High-level functionality’)
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’)
obsfiles_mod
: MODULE obsFiles_mod (prefix=’obsf’ category=’3. Observation input/output’)
utilities_mod
: MODULE utilities_mod (prefix=’utl’ category=’8. Low-level utilities and constants’)
midasmpi_mod
: MODULE midasMpi_mod (prefix=’mmpi’ category=’8. Low-level utilities and constants’)
biascorrectionsat_mod
: MODULE biasCorrectionSat_mod (prefix=’bcs’ category=’1. High-level functionality’)
ensembleobservations_mod
: MODULE ensembleObservations_mod (prefix=’eob’ category=’6. High-level data objects’)
filenames_mod
: MODULE fileNames_mod (prefix=’fln’ category=’7. Low-level data objects’)Routines called
ver_printnameandversion()
,mmpi_initialize()
,utl_tmg_start()
,utl_writestatus()
,utl_abort()
,fln_ensfilename()
,omf_ominusf()
,bcs_calcbias()
,bcs_applybiascorrection()
,obs_numheader()
,obs_prnthdr()
,obs_prntbdy()
,obsf_writefiles()
,omf_ominusfens()
,obs_finalize()
,utl_tmg_stop()