Changes between Version 8 and Version 9 of ImplementAnalysisestkf
- Timestamp:
- May 5, 2014, 12:34:21 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ImplementAnalysisestkf
v8 v9 11 11 <li><a href="ImplementationofAnalysisStep">Implementation of the analysis step</a></li> 12 12 <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> 13 17 <li><a href="ImplementAnalysisseik">Implementation for SEIK</a></li> 14 18 <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>17 19 <li><a href="ImplementAnalysisseek">Implementation for SEEK</a></li> 18 20 <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>21 21 </ol> 22 22 <li><a href="AddingMemoryandTimingInformation">Memory and timing information</a></li> … … 31 31 With 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. 32 32 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.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_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 35 For 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. 36 36 37 37 The 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. … … 57 57 * [#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) 58 58 * [#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. 60 60 61 61 … … 72 72 == User-supplied routines == 73 73 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].74 Here 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]. 75 75 76 76 To 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. … … 82 82 83 83 This 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.84 See the page on [InsertAnalysisStep#U_collect_statecollect_state_pdaf.F90 inserting the analysis step] for the description of this routine. 85 85 86 86 … … 88 88 89 89 This 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.90 See the page on [InsertAnalysisStep#U_distribute_statedistribute_state_pdaf.F90 inserting the analysis step] for the description of this routine. 91 91 92 92 … … 239 239 240 240 This 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.241 See the page on [InsertAnalysisStep#U_next_observationnext_observation_pdaf.F90 inserting the analysis step] for the description of this routine. 242 242 243 243 244 244 == Execution order of user-supplied routines == 245 245 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`.246 For 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`. 247 247 248 248 Before the analysis step is called the following routine is executed: