Changes between Version 9 and Version 10 of ImplementAnalysislnetf
- Timestamp:
- May 29, 2025, 8:02:04 AM (3 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ImplementAnalysislnetf
v9 v10 52 52 53 53 54 == `PDAF_ put_state_lnetf` ==54 == `PDAF_assimilate_lnetf` == 55 55 56 56 The general aspects of the filter-specific routines `PDAF_assimilate_*` have been described on the page [ModifyModelforEnsembleIntegration Modification of the model code for the ensemble integration]. … … 61 61 For the update of each single vertical column, observations from some larger domain surrounding the vertical column are required. If the influence radius for the observations is sufficiently small there will be vertical columns for which the relevant observations reside completely inside the model sub-domain of the process. However, if a vertical column is considered that is located close to the boundary of the model sub-domain, there will be some observations that don't belong spatially to the local model sub-domain, but to a neighboring model sub-domain. Nonetheless, these observations are required on the local model sub-domain. A simple way to handle this situation is to initialize for each process all globally available observations, together with their coordinates. While this method is simple, it can also become inefficient if the assimilation program is executed using a large number of processes. As for an initial implementation it is usually not the concern to obtain the highest parallel efficiency, the description below assumes that 'full' refers to the global model domain. 62 62 63 The interface when using the LNETF algorithm is the following:63 The interface when using PDAF V3.0 and later is: 64 64 {{{ 65 65 SUBROUTINE PDAF_assimilate_lnetf(U_collect_state, U_distribute_state, U_init_dim_obs_f, U_obs_op_f, & 66 66 U_init_obs_f, U_init_obs_l, U_prepoststep, U_likelihood_l, & 67 U_init_n_domains, U_init_dim_l, U_init_dim_obs_l, & 68 U_g2l_state, U_l2g_state, U_g2l_obs, & 69 U_next_observation, status) 70 }}} 71 72 In PDAF V2.3.1 and before, the routine `U_inis_obs_f` is not present. Thus the interface is: 73 {{{ 74 SUBROUTINE PDAF_assimilate_lnetf(U_collect_state, U_distribute_state, U_init_dim_obs_f, U_obs_op_f, & 75 U_init_obs_l, U_prepoststep, U_likelihood_l, & 67 76 U_init_n_domains, U_init_dim_l, U_init_dim_obs_l, & 68 77 U_g2l_state, U_l2g_state, U_g2l_obs, & … … 95 104 When the 'flexible' implementation variant is chosen for the assimilation system, the routine `PDAF_put_state_lnetf` has to be used instead of `PDAF_assimilate_lnetf`. The general aspects of the filter specific routines `PDAF_put_state_*` have been described on the page [ModifyModelforEnsembleIntegration Modification of the model code for the ensemble integration]. The interface of the routine is identical with that of `PDAF_assimilate_lnetf` with the exception the specification of the user-supplied routines `U_distribute_state` and `U_next_observation` are missing. 96 105 97 The interface when using the LNETF algorithm is the following: 98 {{{ 99 SUBROUTINE PDAF_put_state_lnetf(U_collect_state, U_init_dim_obs_f, U_obs_op_f, U_init_obs_f, & 100 U_init_obs_l, U_prepoststep, U_likelihood_l, U_init_n_domains, & 101 U_init_dim_l, U_init_dim_obs_l, & 102 U_g2l_state, U_l2g_state, U_g2l_obs, & 103 status) 106 The interface when using PDAF V3.0 and later is: 107 {{{ 108 SUBROUTINE PDAF_assimilate_lnetf(U_collect_state, U_init_dim_obs_f, U_obs_op_f, & 109 U_init_obs_f, U_init_obs_l, U_prepoststep, U_likelihood_l, & 110 U_init_n_domains, U_init_dim_l, U_init_dim_obs_l, & 111 U_g2l_state, U_l2g_state, U_g2l_obs, status) 112 }}} 113 114 In PDAF V2.3.1 and before, the routine `U_inis_obs_f` is not present. Thus the interface is: 115 {{{ 116 SUBROUTINE PDAF_assimilate_lnetf(U_collect_state, U_init_dim_obs_f, U_obs_op_f, & 117 U_init_obs_l, U_prepoststep, U_likelihood_l, & 118 U_init_n_domains, U_init_dim_l, U_init_dim_obs_l, & 119 U_g2l_state, U_l2g_state, U_g2l_obs, status) 104 120 }}} 105 121