Changes between Version 2 and Version 3 of OMI_observation_modules


Ignore:
Timestamp:
Nov 23, 2020, 10:38:43 AM (6 months ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OMI_observation_modules

    v2 v3  
    1818== obs_f data type ==
    1919
    20 To ensure the functionality within each obs-module, we rely on a derived data type called `obs_f` that describes the observation. One instance of this data type is allocated in each obs-module as the variable `thisobs`. a few of the elements of `obs_f` are initialized by the user when the observation information is initialized on `init_dim_obs_f`. Further variables is set in a call to the routine `PDAFomi_gather_obs`. This information is then used by all other routines in the obs-module. The template file obs_TYPE_pdafomi_TEMPLATE.F90 shows the different steps needed to initialize thisobs.
     20To ensure the functionality within each obs-module, we rely on a derived data type called `obs_f` that contains all information about the observation. One instance of this data type is allocated in each obs-module with the generic variable name `thisobs`. A few of the elements of `obs_f` are initialized by the user when the observation information is initialized on `init_dim_obs_f`. Further variables is set in a call to the routine `PDAFomi_gather_obs`. This information is then used by all other routines in the obs-module. The template file obs_TYPE_pdafomi_TEMPLATE.F90 shows the different steps needed to initialize thisobs.
    2121
    2222The '''mandatory variables''' in `obs_f` that need to be set by the user are:
     
    5757== init_dim_obs_TYPE ==
    5858
     59This is the main routine to initialize observation information.
     60
     61Please see the template `templates/omi/obs_TYPE_pdafomi_TEMPLATE.F90` for a step-by-step description of the implementation steps.
     62
     63Each observation module uses the generic name '''thisobs''' for the variable with observation type `obs_f`. Elements of `thisobs` are accessed like
     64`thisobs%doassim`.
     65
     66The main steps performed in this routine are
     67 1. `thisobs%doassim`: Specify whether this observation type is assimilated
     68 1. `thisobs%disttype`: Specify the type of distance computation
     69 1. `thisobs%ncoord`: Specify the number of dimensions used to compute distances
     70 1. `dim_obs_p`: Count the number of available observations
     71 1. `obs_p`: Fill the vector of observations
     72 1. `ocoord_p`: store the coordinates of the observations
     73 1. `ivar_obs_p`: store the inverse error variance of each observation
     74 1. `thisobs%id_obs_p`: store the indices of state vector elements that correspond to an observation (A single value for observation at grid points, or multiple values for derived quantities or interpolation)
     75
     76When the observation operator performs interpolation, one further needs to initialize an array of interpolation coefficients (`thisobs%icoeff_p`).
     77
     78After these variables are filled, one calls
     79{{{
     80    CALL PDAFomi_gather_obs(thisobs, dim_obs_p, obs_p, ivar_obs_p, ocoord_p, &
     81         thisobs%ncoord, local_range, dim_obs)
     82}}}
     83This routine will complete all required initializations for OMI. As such it is mandatory to call the routine
    5984
    6085