Changes between Version 7 and Version 8 of OMI_observation_operators


Ignore:
Timestamp:
Nov 30, 2020, 3:15:13 PM (3 months ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OMI_observation_operators

    v7 v8  
    2424[[PageOutline(2-3,Contents of this page)]]
    2525
    26 The observation operator is called for each observation type in the routine `obs_op_pdafomi` in the file `callback_obs_pdafomi.F90`.
     26An observation operator routine is called for each observation type in the routine `obs_op_pdafomi` in the file `callback_obs_pdafomi.F90`.
     27
     28== Observation operators ==
    2729
    2830OMI currently provides 3 observation operators:
     
    5153 Determine barycentric interpolation coefficients for triangular grids based on the coordinates of grid points and the observation
    5254
    53 An example of initializing interpolation coefficients with PDAFomi_get_interp_coeff_lin and of using PDAFomi_obs_op_interp_lin is provided in `tutorial/online_2D_serialmodel_omi/obs_C_pdafomi.F90`.
     55An example of initializing interpolation coefficients with PDAFomi_get_interp_coeff_lin and of using PDAFomi_obs_op_interp_lin is provided in `tutorial/online_2D_serialmodel/obs_C_pdafomi.F90`.
    5456
    5557
     
    133135The 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.
    134136
    135 The PDAF-package provides a template to implement new observation operators in `templates/omi/obs_op_pdafomi_TEMPLATE.F90`.
     137The PDAF-package provides a template to implement new observation operators in `/templates/omi/obs_op_pdafomi_TEMPLATE.F90`.
    136138
    137139Each observation operator include the following functionality:
    138140 1. Check whether `thisobs%doassim==1`, which indicates that the observation is assimilated
    139141 2. 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)
    140  3. Call `PDAFomi_gather_obsstate` to gather the full observation vector `obs_f_all`. This call is mandatory even if theh model is not parallelized.
     142 3. Call `PDAFomi_gather_obsstate` to gather the full observation vector `obs_f_all`. This call is mandatory even if the model is not parallelized.
    141143
    142 Generally one can implement and function that computes an observation from the elements of the state vector that is provided to the routine as `state_p`. The coordinate information is provided in `thisobs`. One can also modify the interface to the obsration operator routine if, e.g., additional information is required.
     144Generally one can implement any function that computes an observation from the elements of the state vector that is provided to the routine as `state_p`. The coordinate information is provided in `thisobs`. One can also modify the interface to the obsration operator routine if, e.g., additional information is required.
    143145
    144146Dependent on the complexity of an observation operator it might be useful to separate the functional computations from the interpolation. For this one could consider multi-step observation operators in separate routines.