wiki:Porting_to_OMI

Version 3 (modified by lnerger, 4 years ago) (diff)

--

Porting an Existing Implementation to OMI

If you have an implementation of the data assimilation with PDAF without OMI, you can port it to OMI with the following steps:

  1. Install the current PDAF version which includes the OMI functionality (V1.16 or later)
  2. 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.
  3. Copy the template file callback_obs_pdafomi.F90 to your code directory.
  4. 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/)
  5. 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)
  6. For each observation type implement an obs-module as described in the documention on the observation modules
  7. Add a call to deallocate_obs_pdafomi() are the end of your routine prepoststep.
  8. Adapt the compilation to also compile callback_obs_pdafomi.F90 and the obs-modules.
  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.)