Changes between Version 9 and Version 10 of OMI_observation_operators


Ignore:
Timestamp:
Dec 9, 2021, 1:45:14 PM (3 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OMI_observation_operators

    v9 v10  
    1515<li><a href="ImplementAnalysisLocal">Implementation for Local Filters</a></li>
    1616<li><a href="ImplementAnalysislenkfOmi">Implementation for LEnKF</a></li>
     17<li><a href="ImplementAnalysis_3DVar">Implementation for 3D-Var</a></li>
     18<li><a href="ImplementAnalysis_3DEnVar">Implementation for 3D Ensemble Var</a></li>
     19<li><a href="ImplementAnalysis_Hyb3DVar">Implementation for Hybrid 3D-Var</a></li>
    1720</ol>
    1821<li><a href="Porting_to_OMI">Porting an existing implemention to OMI</a></li>
     
    131134
    132135
     136== Adjoint observation operators ==
     137
     138For the application of 3D-Var, adjoint observation operators are required. These perform the operation of the transposed linear observation operator.
     139
     140OMI provides the adjoint observation operators corresponding to the forward observation operators:
     141 - '''PDAFomi_obs_op_adj_gridpoint'''[[br]]
     142  This observation operator is used for the case that observations are model variables located at grid points. Thus, the operation is to select single element from the state vector according to the index array `thisobs%id_obs_p` initialized in `init_dim_obs_f_TYPE`.
     143 - '''PDAFomi_obs_op_adj_gridavg'''[[br]]
     144  This observation operator is used for the case that observations are the average of model variables at grid points. The averages are computed according to the number of rows in the index array `thisobs%id_obs_p` initialized in `init_dim_obs_f_TYPE`.
     145 - '''PDAFomi_obs_op_adj_interp_lin'''[[br]]
     146  This observation operator is used for the case of linear interpolation. It uses the index array `thisobs%id_obs_p` and the array `thisobs%icoeff_p` holding interpolation coefficients initialized in `init_dim_obs_f_TYPE`. To use this observation operator, one has to allocate and initialize `thisobs%icoeff_p` as described below.
     147
     148The arguments of the observation operators are
     149{{{
     150       CALL PDAFomi_obs_op_X (thisobs,[nrows,] ostate, state_p)
     151}}}
     152Where `thisobs` is the observation type variable, `ostate` is the input vector in the observation space provided by PDAF and `state_p` is the output state vector that will be returned to PDAF. `nrows` only exists for the observation operators X=gridavg and X=interp_lin and specifies the number of grid points involved in the observation operation. For X=gridpoint, this argument does not exist.
     153
     154
    133155== Implementing your own observation operator ==
    134156