pyPDAF.assim_offline_3dvar_nondiagr

pyPDAF.assim_offline_3dvar_nondiagr()

Offline 3DVar DA for a single DA step using non-diagnoal observation error covariance matrix.

See pyPDAF.PDAF3.assim_offline_3dvar_all() for diagonal observation error covariance matrix.

When 3DVar is used, the background error covariance matrix has to be modelled for cotrol variable transformation. This is a deterministic filtering scheme so no ensemble and parallelisation is needed. This function should be called at each model time step.

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

  2. py__init_dim_obs_pdaf

  3. py__obs_op_pdaf

  4. Iterative optimisation:
    1. py__cvt_pdaf

    2. py__obs_op_lin_pdaf

    3. py__prodRinvA_pdaf

    4. py__obs_op_adj_pdaf

    5. py__cvt_adj_pdaf

    6. core DA algorithm

  5. py__cvt_pdaf

  6. py__prepoststep_state_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_pdaf (Callable) – Apply control vector transform matrix to control vector

  • py__cvt_adj_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__prepoststep_pdaf (Callable) – User supplied pre/poststep routine

  • py__next_observation_pdaf (Callable) – Provide information on next forecast

Returns:

outflag – Status flag

Return type:

int