| 136 | == Adjoint observation operators == |
| 137 | |
| 138 | For the application of 3D-Var, adjoint observation operators are required. These perform the operation of the transposed linear observation operator. |
| 139 | |
| 140 | OMI 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 | |
| 148 | The arguments of the observation operators are |
| 149 | {{{ |
| 150 | CALL PDAFomi_obs_op_X (thisobs,[nrows,] ostate, state_p) |
| 151 | }}} |
| 152 | Where `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 | |