Changes between Initial Version and Version 1 of OMI_observation_modules

Nov 23, 2020, 9:44:13 AM (2 years ago)



  • OMI_observation_modules

    v1 v1  
     1= PDAF-OMI Observation Modules =
     3[[PageOutline(2-3,Contents of this page)]]
     5The implementation of the observations with OMI is done in observation modules (obs-modules). For each observation type a separate module should be created.
     7Each obs-module contains four routines:
     9 - init_dim_obs initializes all variables holding the information about one observation type. The information about the observation type is stored in a data structure (Fortran derived type).
     10 - obs_op applies the observation operator to a state vector. One can call an observation operator routine provided by PDAF, or one can to implement a new operator.
     11 - init_dim_obs_l calls a PDAF-OMI routine to initialize the observation information corresponding to a local analysis domain. One can set localization parameters, liek the localization radius, for each observation type.
     12 - localize_covar calls a PDAF-OMI routine to apply covariance localization. One can set localization parameters, liek the localization radius, for each observation type.
     14== obs_f data type ==
     16To 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 information 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.
     19! ---- Mandatory variables to be set in init_dim_obs_f ----
     20  INTEGER :: doassim                    ! Whether to assimilate this observation type
     21  INTEGER :: disttype                   ! Type of distance computation to use for localization
     22                                        !   (0) Cartesian, (1) Cartesian periodic
     23                                        !   (2) simplified geographic, (3) geographic haversine function
     24  INTEGER :: ncoord                     ! Number of coordinates use for distance computation
     25  INTEGER, ALLOCATABLE :: id_obs_p(:,:) ! Indices of observed field in state vector (process-local)