Changes between Version 21 and Version 22 of OMI_observation_modules
- Timestamp:
- Nov 30, 2020, 3:10:52 PM (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
OMI_observation_modules
v21 v22 43 43 == Data type obs_f == 44 44 45 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.45 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`. 46 46 47 47 The '''mandatory variables''' in `obs_f` that need to be set by the user are: … … 78 78 79 79 80 Next to the derived data type `obs_f`, there is a derived type `obs_l` for localization. This is only used internally. It will be filled in init_dim_obs_l when calling PDAFomi_init_dim_obs_l.80 Next to the derived data type `obs_f`, there is a derived type `obs_l` for localization. This is only used internally. It will be filled in the routine `init_dim_obs_l` when calling `PDAFomi_init_dim_obs_l`. 81 81 82 82 == `init_dim_obs_TYPE` == … … 126 126 Here, `state_p` is the state vector and `ostate` is the observed state vector. 127 127 128 For more information on the available observation operator and on how to implement your own observation operator see the [wiki:OMI_ Observation_Operators documentation of observation operators for OMI].128 For more information on the available observation operator and on how to implement your own observation operator see the [wiki:OMI_observation_operators documentation of observation operators for OMI]. 129 129 130 130 … … 172 172 173 173 To implement a new observation type, the approach is generally as follows: 174 1. Create a copy of obs_TYPE_pdafomi_TEMPLATE.F90174 1. Create a copy of `obs_TYPE_pdafomi_TEMPLATE.F90` 175 175 1. Rename the module and its subroutines according to the observation (replacing ‘TYPE’ by name of observation). 176 1. Implement init_dim_obsfor the observation type following the instructions in the template177 1. Adapt obs_obsfor the observation type178 1. Adapt init_dim_obs_lfor the observation type (if using a domain_localized filter)179 1. Adapt localize_covarfor the observation type (if using a the local EnKF)180 1. Add subroutine calls for the new observation type into the routines in callback_obs_pdafomi.F90176 1. Implement `init_dim_obs` for the observation type following the instructions in the template 177 1. Adapt `obs_op` for the observation type 178 1. Adapt `init_dim_obs_l` for the observation type (if using a domain_localized filter) 179 1. Adapt `localize_covar` for the observation type (if using a the local EnKF) 180 1. Add subroutine calls for the new observation type into the routines in `callback_obs_pdafomi.F90` 181 181 182 182