Changes between Version 20 and Version 21 of OMI_observation_modules
 Timestamp:
 Nov 28, 2020, 10:02:26 AM (22 months ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

OMI_observation_modules
v20 v21 28 28 The implementation of the observations with OMI is done in observation modules (obsmodules). For each observation type a separate module should be created. 29 29 30 Each obsmodule contains four routines :31 32  `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).33  `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.34  `init_dim_obs_l ` calls a PDAFOMI routine to initialize the observation information corresponding to a local analysis domain. One can set localization parameters, like the localization radius, for each observation type.35  `localize_covar ` calls a PDAFOMI routine to apply covariance localization. One can set localization parameters, like the localization radius, for each observation type.36 37 The template file obs_TYPE_pdafomi_TEMPLATE.F90shows the different steps needed when implementing these routines. The main work is to implement `init_dim_obs`, while the other routines mainly call a subroutine provided by PDAFOMI.30 Each obsmodule contains four routines (where 'TYPE' will be replaced by the name of the observation): 31 32  `init_dim_obs_TYPE` 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). 33  `obs_op_TYPE` 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. 34  `init_dim_obs_l_TYPE` calls a PDAFOMI routine to initialize the observation information corresponding to a local analysis domain. One can set localization parameters, like the localization radius, for each observation type. 35  `localize_covar_TYPE` calls a PDAFOMI routine to apply covariance localization. One can set localization parameters, like the localization radius, for each observation type. 36 37 The template file `obs_TYPE_pdafomi_TEMPLATE.F90` shows the different steps needed when implementing these routines. The main work is to implement `init_dim_obs`, while the other routines mainly call a subroutine provided by PDAFOMI. 38 38 39 39 In the obsmodule the subroutines are named according to the observation type. The template file uses generic names which can be replaced by the user. Having distinct names for each observation type is relevant to include the subroutine from the module in the callback routine with ‘use’. In the header of each obsmodule, the user can declare further variables, e.g. assim_TYPE as a flag to control whether the observation type should be assimilated. 40 40 41 '''Note:''' In contrast to the 'classical' implementation of observation routines for PDAF, the global and local filters use the same routines `init_dim_obs` and `obs_op`. PDAFOMI recognizes whether a global or local filter is used and does the necessary initializations by itself.41 '''Note:''' In contrast to the 'classical' implementation of observation routines for PDAF, the global and local filters use the same routines `init_dim_obs` and `obs_op`. PDAFOMI recognizes whether a global or local filter is used and does the necessary operations by itself. 42 42 43 43 == Data type obs_f == … … 80 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. 81 81 82 == init_dim_obs_TYPE==82 == `init_dim_obs_TYPE` == 83 83 84 84 This is the main routine to initialize observation information. … … 115 115 116 116 117 == obs_op_TYPE==117 == `obs_op_TYPE` == 118 118 119 119 This routine applies the observation operator to a state vector. It returns the observed state vector to PDAF. The routine is used by all filters. … … 129 129 130 130 131 == init_dim_obs_l_TYPE==131 == `init_dim_obs_l_TYPE` == 132 132 133 133 This routine initializes local observation information. The routine is only used by the domainlocalized filters (LESTKF, LETKF, LSEIK, LNETF). … … 150 150 151 151 152 == localize_covar_TYPE==152 == `localize_covar_TYPE` == 153 153 154 154 This routine initializes local observation information. The routine is only used by the local EnKF (LEnKF).