Changes between Version 20 and Version 21 of OMI_observation_modules


Ignore:
Timestamp:
Nov 28, 2020, 10:02:26 AM (3 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OMI_observation_modules

    v20 v21  
    2828The implementation of the observations with OMI is done in observation modules (obs-modules). For each observation type a separate module should be created.
    2929
    30 Each obs-module 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 PDAF-OMI 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 PDAF-OMI 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 PDAF-OMI.
     30Each obs-module 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 PDAF-OMI 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 PDAF-OMI routine to apply covariance localization. One can set localization parameters, like the localization radius, for each observation type.
     36
     37The 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 PDAF-OMI.
    3838
    3939In the obs-module 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 call-back routine with ‘use’. In the header of each obs-module, the user can declare further variables, e.g. assim_TYPE as a flag to control whether the observation type should be assimilated.
    4040
    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`. PDAF-OMI 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`. PDAF-OMI recognizes whether a global or local filter is used and does the necessary operations by itself.
    4242
    4343== Data type obs_f ==
     
    8080Next 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.
    8181
    82 == init_dim_obs_TYPE ==
     82== `init_dim_obs_TYPE` ==
    8383
    8484This is the main routine to initialize observation information.
     
    115115
    116116
    117 == obs_op_TYPE ==
     117== `obs_op_TYPE` ==
    118118
    119119This routine applies the observation operator to a state vector. It returns the observed state vector to PDAF. The routine is used by all filters.
     
    129129
    130130
    131 == init_dim_obs_l_TYPE ==
     131== `init_dim_obs_l_TYPE` ==
    132132
    133133This routine initializes local observation information. The routine is only used by the domain-localized filters (LESTKF, LETKF, LSEIK, LNETF).
     
    150150
    151151
    152 == localize_covar_TYPE ==
     152== `localize_covar_TYPE` ==
    153153
    154154This routine initializes local observation information. The routine is only used by the local EnKF (LEnKF).