Changes between Version 2 and Version 3 of OMI_observation_modules
- Timestamp:
- Nov 23, 2020, 10:38:43 AM (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
OMI_observation_modules
v2 v3 18 18 == obs_f data type == 19 19 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`. afew 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.20 To 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. 21 21 22 22 The '''mandatory variables''' in `obs_f` that need to be set by the user are: … … 57 57 == init_dim_obs_TYPE == 58 58 59 This is the main routine to initialize observation information. 60 61 Please see the template `templates/omi/obs_TYPE_pdafomi_TEMPLATE.F90` for a step-by-step description of the implementation steps. 62 63 Each 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 66 The 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 76 When the observation operator performs interpolation, one further needs to initialize an array of interpolation coefficients (`thisobs%icoeff_p`). 77 78 After 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 }}} 83 This routine will complete all required initializations for OMI. As such it is mandatory to call the routine 59 84 60 85