| 1 | = Porting an exiating implementation to OMI = |
| 2 | |
| 3 | If you have an implementation of the data assimilation with PDAF without OMI, you can port it to OMI with the following steps: |
| 4 | |
| 5 | 1. Install the current PDAF version which includes the OMI functionality (V1.16 or later) |
| 6 | 1. In mod_assimilation declare an array `coords_l` for the coordinates of the local analysis domain. Then fill `coords_l` in `init_dim_l_pdaf`. These coordinates are later used in `init_dim_obs_l_pdafomi`. |
| 7 | 1. Copy the template file `callback_obs_pdafomi.F90` to your code directory. |
| 8 | 1. In `assimilate_pdaf` replace the call(s) to PDAF_put_state_X or PDAF_assimilate_X by the calls to PDAFomi_put_state_local/global or PDAFomi_assimilate_local/global (You can copy this from the template files in templates/) |
| 9 | 1. In `assimilate_pdaf` further replace the declaration of the 'EXTERNAL' subroutines following the template (several of the routines are no longer present with PDAF-OMI, while those that remain now have the suffix `_pdafomi` (like init_dim_obs_pdafomi) |
| 10 | 5. For each observation type implement an obs-module as described in the [wiki:OMI_observation_modules documention on the observation modules] |
| 11 | 7. Add a call to `deallocate_obs_pdafomi()` are the end of your routine `prepoststep`. |
| 12 | 8. Adapt the compilation to also compile `callback_obs_pdafomi.F90` and the obs-modules. |
| 13 | 9. Modify the compilation such that the include-directory of your PDAF installation is defined as an include directory (i.e. specify -IPDAF_ROOT/include where PDAF_ROOT is the root directory of your PDAF installation.) |