pyPDAF.assimilate_en3dvar_lestkf_nondiagr

pyPDAF.assimilate_en3dvar_lestkf_nondiagr()

3DEnVar for a single DA step where the ensemble anomaly is generated by LESTKF using non-diagonal observation error covariance matrix.

PDAFlocal-OMI modules require fewer user-supplied functions and improved efficiency.

3DEnVar for a single DA step where the ensemble anomaly is generated by LESTKF using non-diagnoal observation error covariance matrix. The background error covariance matrix is estimated by ensemble. The 3DEnVar only calculates the analysis of the ensemble mean. An LESTKF is used to generate ensemble perturbations. This function should be called at each model time step.

User-supplied functions are executed in the following sequence:
  1. py__collect_state_pdaf

  2. py__prepoststep_state_pdaf

  3. py__init_dim_obs_pdaf

  4. py__obs_op_pdaf

  5. Starting the iterative optimisation:
    1. py__cvt_ens_pdaf

    2. py__obs_op_lin_pdaf

    3. py__prodRinvA_pdaf

    4. py__obs_op_adj_pdaf

    5. py__cvt_adj_ens_pdaf

    6. core DA algorithm

  6. py__cvt_ens_pdaf

  7. Perform LESTKF:
    1. py__init_n_domains_p_pdaf

    2. py__init_dim_obs_pdaf

    3. py__obs_op_pdaf (for each ensemble member)

    4. loop over each local domain:
      1. py__init_dim_l_pdaf

      2. py__init_dim_obs_l_pdaf

      3. py__prodRinvA_l_pdaf

      4. core DA algorithm

  8. py__prepoststep_state_pdaf

  9. py__distribute_state_pdaf

  10. py__next_observation_pdaf

Parameters:
  • py__collect_state_pdaf (Callable) – Routine to collect a state vector

  • py__distribute_state_pdaf (Callable) – Routine to distribute a state vector

  • py__init_dim_obs_pdaf (Callable) – Initialize dimension of full observation vector

  • py__obs_op_pdaf (Callable) – Full observation operator

  • py__prodrinva_pdaf (Callable) – Provide product R^-1 A

  • py__cvt_ens_pdaf (Callable) – Apply control vector transform matrix to control vector

  • py__cvt_adj_ens_pdaf (Callable) – Apply adjoint control vector transform matrix

  • py__obs_op_lin_pdaf (Callable) – Linearized observation operator

  • py__obs_op_adj_pdaf (Callable) – Adjoint observation operator

  • py__prodrinva_l_pdaf (Callable) – Provide product R^-1 A and apply localizations

  • py__init_n_domains_p_pdaf (Callable) – Provide number of local analysis domains

  • py__init_dim_l_pdaf (Callable) – Init state dimension for local ana. domain

  • py__init_dim_obs_l_pdaf (Callable) – Initialize local dimimension of obs. vector

  • py__prepoststep_pdaf (Callable) – User supplied pre/poststep routine

  • py__next_observation_pdaf (Callable) – Provide information on next forecast

  • outflag (int) – Status flag

Returns:

outflag – Status flag

Return type:

int