Version 2 (modified by lnerger, 3 months 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.)