Changes between Version 8 and Version 9 of ImplementAnalysisestkf


Ignore:
Timestamp:
May 5, 2014, 12:34:21 PM (6 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ImplementAnalysisestkf

    v8 v9  
    1111<li><a href="ImplementationofAnalysisStep">Implementation of the analysis step</a></li>
    1212<ol>
     13<li>Implementation for ESTKF</li>
     14<li><a href="ImplementAnalysislestkf">Implementation for LESTKF</a></li>
     15<li><a href="ImplementAnalysisetkf">Implementation for ETKF</a></li>
     16<li><a href="ImplementAnalysisletkf">Implementation for LETKF</a></li>
    1317<li><a href="ImplementAnalysisseik">Implementation for SEIK</a></li>
    1418<li><a href="ImplementAnalysislseik">Implementation for LSEIK</a></li>
    15 <li><a href="ImplementAnalysisetkf">Implementation for ETKF</a></li>
    16 <li><a href="ImplementAnalysisletkf">Implementation for LETKF</a></li>
    1719<li><a href="ImplementAnalysisseek">Implementation for SEEK</a></li>
    1820<li><a href="ImplementAnalysisenkf">Implementation for EnKF</a></li>
    19 <li>Implementation for ESTKF</li>
    20 <li><a href="ImplementAnalysislestkf">Implementation for LESTKF</a></li>
    2121</ol>
    2222<li><a href="AddingMemoryandTimingInformation">Memory and timing information</a></li>
     
    3131With Version 1.8 of PDAF, the ESTKF [Error Subspace Transform Kalman Filter] algorithm has been introduced. The user-supplied routines required for the ESTKF are identical to those required for the SEIK filter and amost identical to those required for the ETKF method.
    3232
    33 For the analysis step of the ESTKF different operations related to the observations are needed. These operations are requested by PDAF by call-back routines supplied by the user. Intentionally, the operations are split into separate routines in order to keep the operations rather elementary and efficient. This procedure should simplify the implementation. The names of the required routines are specified in the call to the routine `PDAF_put_state_estkf` that was discussed before. With regard to the parallelization, all these routines are executed by the filter processes (`filterpe=.true.`) only.
    34 
    35 For completeness we discuss here all user-supplied routines that are specified in the interface to PDAF_put_state_estkf. Thus, some of the user-supplied routines that are explained on the page decribing the modification of the model code for the ensemble integration are repeated here.
     33For the analysis step of the ESTKF different operations related to the observations are needed. These operations are requested by PDAF by call-back routines supplied by the user. Intentionally, the operations are split into separate routines in order to keep the operations rather elementary and efficient. This procedure should simplify the implementation. The names of the required routines are specified in the call to the routine `PDAF_assimilate_estkf` (or `PDAF_put_state_estkf`) that was discussed before. With regard to the parallelization, all these routines are executed by the filter processes (`filterpe=.true.`) only.
     34
     35For completeness we discuss here all user-supplied routines that are specified in the interface to PDAF_assimilate_estkf. Thus, some of the user-supplied routines that are explained on the page describing the modification of the model code for the ensemble integration are repeated here.
    3636
    3737The ESTKF and the ETKF (Ensemble Transform Kalman Filter) are very similar. For this reason, the interface to the user-supplied routines is almost identical. Depending on the implementation it can be possible to use identical routines for the ESTKF and the ETKF. Differences are marked in the text below.
     
    5757 * [#U_init_obsvarinit_obsvar_pdaf.F90 U_init_obsvar]: The name of the user-supplied routine that provides a mean observation error variance to PDAF (This routine will only be executed, if an adaptive forgetting factor is used)
    5858 * [#U_next_observationnext_observation.F90 U_next_observation]: The name of a user supplied routine that initializes the variables `nsteps`, `timenow`, and `doexit`. The same routine is also used in `PDAF_get_state`.
    59  * `status`: The integer status flag. It is zero, if `PDAF_put_state_estkf` is exited without errors.
     59 * `status`: The integer status flag. It is zero, if `PDAF_assimilate_estkf` is exited without errors.
    6060
    6161
     
    7272== User-supplied routines ==
    7373
    74 Here all user-supplied routines are described that are required in the call to `PDAF_put_state_estkf`. For some of the generic routines, we link to the page on [ModifyModelforEnsembleIntegration modifying the model code for the ensemble integration].
     74Here all user-supplied routines are described that are required in the call to `PDAF_assimilate_estkf`. For some of the generic routines, we link to the page on [ModifyModelforEnsembleIntegration modifying the model code for the ensemble integration].
    7575
    7676To indicate user-supplied routines we use the prefix `U_`. In the template directory `templates/` as well as in the example implementation in `testsuite/src/dummymodel_1D` these routines exist without the prefix, but with the extension `_pdaf.F90`. In the section titles below we provide the name of the template file in parentheses.
     
    8282
    8383This routine is independent of the filter algorithm used.
    84 See the page on [InsertAnalysisStep#U_collect_statecollect_state.F90 inserting the analysis step] for the description of this routine.
     84See the page on [InsertAnalysisStep#U_collect_statecollect_state_pdaf.F90 inserting the analysis step] for the description of this routine.
    8585
    8686
     
    8888
    8989This routine is independent of the filter algorithm used.
    90 See the page on [InsertAnalysisStep#U_collect_statecollect_state.F90 inserting the analysis step] for the description of this routine.
     90See the page on [InsertAnalysisStep#U_distribute_statedistribute_state_pdaf.F90 inserting the analysis step] for the description of this routine.
    9191
    9292
     
    239239
    240240This routine is independent of the filter algorithm used.
    241 See the page on [InsertAnalysisStep#U_next_observationnext_observation.F90 inserting the analysis step] for the description of this routine.
     241See the page on [InsertAnalysisStep#U_next_observationnext_observation_pdaf.F90 inserting the analysis step] for the description of this routine.
    242242
    243243
    244244== Execution order of user-supplied routines ==
    245245
    246 For the ESTKF, the user-supplied routines are essentially executed in the order they are listed in the interface to `PDAF_put_state_estkf`. The order can be important as some routines can perform preparatory work for later routines. For example, `U_init_dim_obs` can prepare an index array that provides the information for executing the observation operator in `U_obs_op`.
     246For the ESTKF, the user-supplied routines are essentially executed in the order they are listed in the interface to `PDAF_assimilate_estkf`. The order can be important as some routines can perform preparatory work for later routines. For example, `U_init_dim_obs` can prepare an index array that provides the information for executing the observation operator in `U_obs_op`.
    247247
    248248Before the analysis step is called the following routine is executed: