Changes between Version 14 and Version 15 of ImplementAnalysislseik
- Timestamp:
- Sep 2, 2010, 9:25:35 AM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ImplementAnalysislseik
v14 v15 38 38 SUBROUTINE PDAF_put_state_lseik(U_collect_state, U_init_dim_obs_full, U_obs_op_full, U_init_obs_full, & 39 39 U_init_obs_local, U_prepoststep, U_prodRinvA_local, U_init_n_domains, & 40 U_init_dim_local, U_init_dim_obs_local, U_g2l_state, U_l2g_state, U_g2l_obs, & 40 U_init_dim_local, U_init_dim_obs_local, & 41 U_global2local_state, U_local2glocal_state, U_glocal2local_obs, & 41 42 U_init_obsvar, U_init_obsvar_local, status) 42 43 }}} … … 112 113 113 114 This routine is used by all local filter algorithms (LSEIK, LETKF). 115 The routine is only called if the globally adaptive forgetting factor is used (`type_forget=1` in the example implementation). For the local filters there is also the alternative to use locally adaptive forgetting factors (`type_forget=2` in the example implementation) 114 116 115 117 The interface for this routine is: … … 122 124 }}} 123 125 124 The routine is called during the analysis step before the loop over the local analysis domains is entered. 125 It has to provide the full vector of observations in `observation_f` for the current time step. 126 The routine is called during the analysis step before the loop over the local analysis domains is entered. The caller is the routine that computes an adaptive forgetting factor (PDAF_set_forget). It has to provide the full vector of observations in `observation_f` for the current time step. 126 127 127 128 Hints: … … 241 242 242 243 244 === `U_global2local_state` (global2local_state.F90) === 245 246 This routine is used by all local filter algorithms (LSEIK, LETKF). 247 248 The interface for this routine is: 249 {{{ 250 SUBROUTINE global2local_state(step, domain_p, dim_p, state_p, dim_l, state_l) 251 252 INTEGER, INTENT(in) :: step ! Current time step 253 INTEGER, INTENT(in) :: domain_ ! Current local analysis domain 254 INTEGER, INTENT(in) :: dim_p ! PE-local full state dimension 255 INTEGER, INTENT(in) :: dim_l ! Local state dimension 256 REAL, INTENT(in) :: state_p(dim_p) ! PE-local full state vector 257 REAL, INTENT(out) :: state_l(dim_l) ! State vector on local analysis domain 258 }}} 259 260 The routine is called during the loop over the local analysis domains in the analysis step. It has to provide the local state vector `state_l` that corresponds to the local analysis domain with index `domain_p`. With a domain decomposed model, the state vector `state_p` for the local model sub-domain is provided to the routine. 261 262 Hints: 263 * In the simple case that a local analysis domain is a single vertical column of the model grid, the operation in this routine would be to take out the data for the vertical column indexed by `domain_p`. 264 243 265 === `U_init_obsvar` (init_obsvar.F90) === 244 266