109 | | I |
| 109 | |
| 110 | == Implementing your own observation operator == |
| 111 | |
| 112 | The current set of observation operators provided by PDAF-OMI is rather fundamental. However, there are also observation types which are not variables of state vector, but functions of several values. Likewise one might want to use a more sophisticated interpolation than the linear one or some interpolation that treats the horizontal and vertical directions separately. For these cases you can implement you own operators. |
| 113 | |
| 114 | The PDAF-package provides a template to implement new observation operators in `templates/omi/obs_op_pdafomi_TEMPLATE.F90`. |
| 115 | |
| 116 | Each observation operator include the following functionality: |
| 117 | - Check whether `thisobs%doassim==1`, which indicates that the observation is assimilated |
| 118 | - initialize the observation vector `ostate_p` for the observation TYPE for which the routine is called. For a parallel model this is done for for the process-local domain (for a model without parallelization this is the global domain) |
| 119 | - Call `PDAFomi_gather_obsstate` to gather the full observation vector `obs_f_all`. This call is mandatory even if theh model is not parallelized. |
| 120 | |
| 121 | |