| | 173 | == Additional routines for 3D-Var == |
| | 174 | |
| | 175 | For the 3D-Var methods added with PDAF V2.0 two more routines are required in the observation module. |
| | 176 | |
| | 177 | === `obs_op_lin_TYPE` === |
| | 178 | |
| | 179 | This routine applies the linearized observation operator to a state vector. It returns the observed state vector to PDAF. The routine is used only by the 3D-Var methods. |
| | 180 | |
| | 181 | '''Note:''' A separate routine for `obs_op_lin_TYPE` is only required if the full observation operator in `obs_op_TYPE` is nonlinear. If `obs_op_TYPE` is linear, one can just insert calls to this operator in the routine `obs_op_lin_pdafomi` in `callback_obs_pdafomi.F90`. |
| | 182 | |
| | 183 | PDAF-OMI provides several linear observation operators. For example the observation operator for observations that are grid point values is called as: |
| | 184 | {{{ |
| | 185 | CALL PDAFomi_obs_op_gridpoint(thisobs, state_p, ostate) |
| | 186 | }}} |
| | 187 | |
| | 188 | Here, `state_p` is the state vector and `ostate` is the observed state vector. |
| | 189 | |
| | 190 | For more information on the available observation operators and on how to implement your own observation operator see the [wiki:OMI_observation_operators documentation of observation operators for OMI]. |
| | 191 | |
| | 192 | === `obs_op_adj_TYPE` === |
| | 193 | |
| | 194 | This routine applies the adjoint observation operator to an observation vector. It returns the state vector to PDAF. The routine is used only by the 3D-Var methods. |
| | 195 | |
| | 196 | PDAF-OMI provides consistent pairs of linear observation operators. For example the adjoint observation operator for observations that are grid point values is called as: |
| | 197 | {{{ |
| | 198 | CALL PDAFomi_obs_op_adj_gridpoint(thisobs, ostate, state_p) |
| | 199 | }}} |
| | 200 | |
| | 201 | Here, `ostate` is the observation vector and `state_p` is the state vector. |
| | 202 | |
| | 203 | For more information on the available observation operators and on how to implement your own observation operator see the [wiki:OMI_observation_operators documentation of observation operators for OMI]. |
| | 204 | |
| | 205 | |