| 358 | | The user-supplied routines are executed in the following order: |
| 359 | | |
| 360 | | 1 [#U_collect_statecollect_state.F90 U_collect_state] |
| 361 | | 1 [#U_prepoststepprepoststep_seik.F90 U_prepoststep] |
| 362 | | 1 [#U_init_n_domainsinit_n_domains.F90 U_init_n_domains] |
| 363 | | 1 [#U_init_dim_obs_fullinit_dim_obs_full.F90 U_init_dim_obs_full] |
| 364 | | 1 [#U_obs_op_fullobs_op_full.F90 U_obs_op_full] |
| 365 | | 1 [#U_init_obs_fullinit_obs_full.F90 U_init_obs_full] |
| 366 | | 1 [#U_init_obs_localinit_obs_local.F90 U_init_obs_local] |
| 367 | | 1 [#U_prodRinvA_localprodrinva_local.F90 U_prodRinvA_local] |
| 368 | | 1 [#U_init_dim_localinit_dim_local.F90 U_init_dim_local] |
| 369 | | 1 [#U_init_dim_obs_localinit_dim_obs_local.F90 U_init_dim_obs_local] |
| 370 | | 1 [#U_global2local_stateglobal2local_state.F90 U_global2local_state] |
| 371 | | 1 [#U_local2global_statelocal2global_state.F90 U_local2global_state] |
| 372 | | 1 [#U_global2local_obsglobal2local_obs.F90 U_global2local_obs] |
| 373 | | 1 [#U_init_obsvarinit_obsvar.F90 U_init_obsvar] |
| 374 | | 1 [#U_init_obsvar_localinit_obsvar_local.F90 U_init_obsvar_local] |
| 375 | | |
| 376 | | |
| 377 | | |
| 378 | | |
| | 358 | The user-supplied routines are executed in the order listed below. The order can be important as some routines can perform preparatory work for later routines. For example, `U_init_dim_obs_local` can prepare an index array that provides the information how to localize a 'full' vector of observations. Some hints one this are given with the descriptions of the routine interfaces above. |
| | 359 | |
| | 360 | Before the analysis step is called the following is executed: |
| | 361 | 1. [#U_collect_statecollect_state.F90 U_collect_state] |
| | 362 | |
| | 363 | In the analysis step, before the loop over all local analysis domains, the following routines are executed: |
| | 364 | 1. [#U_prepoststepprepoststep_seik.F90 U_prepoststep] |
| | 365 | 1. [#U_init_n_domainsinit_n_domains.F90 U_init_n_domains] |
| | 366 | 1. [#U_init_dim_obs_fullinit_dim_obs_full.F90 U_init_dim_obs_full] |
| | 367 | 1. [#U_obs_op_fullobs_op_full.F90 U_obs_op_full] |
| | 368 | 1. [#U_init_obs_fullinit_obs_full.F90 U_init_obs_full] (Only executed, if the global adaptive forgetting factor is used (`type_forget=1` in the example implemention)) |
| | 369 | 1. [#U_init_obsvarinit_obsvar.F90 U_init_obsvar] (Only execute, if the global adaptive forgetting factor is used (`type_forget=1` in the example implemention)) |
| | 370 | |
| | 371 | The the loop over all local analysis domains, it is executed: |
| | 372 | 1. [#U_init_dim_localinit_dim_local.F90 U_init_dim_local] |
| | 373 | 1. [#U_init_dim_obs_localinit_dim_obs_local.F90 U_init_dim_obs_local] |
| | 374 | 1. [#U_global2local_stateglobal2local_state.F90 U_global2local_state] |
| | 375 | 1. [#U_global2local_obsglobal2local_obs.F90 U_global2local_obs] |
| | 376 | 1. [#U_init_obs_localinit_obs_local.F90 U_init_obs_local] |
| | 377 | 1. [#U_global2local_obsglobal2local_obs.F90 U_global2local_obs] |
| | 378 | 1. [#U_init_obsvar_localinit_obsvar_local.F90 U_init_obsvar_local] (Only, if the local adaptive forgetting factor is used (`type_forget=2` in the example implementation)) |
| | 379 | 1. [#U_prodRinvA_localprodrinva_local.F90 U_prodRinvA_local] |
| | 380 | 1. [#U_local2global_statelocal2global_state.F90 U_local2global_state] |
| | 381 | |
| | 382 | After the loop over all local analysis domains, it is executed: |
| | 383 | 1. [#U_prepoststepprepoststep_seik.F90 U_prepoststep] |
| | 384 | |
| | 385 | |
| | 386 | |