Changes between Initial Version and Version 1 of cvt_adj_ens_pdaf


Ignore:
Timestamp:
Dec 9, 2021, 3:07:17 PM (3 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • cvt_adj_ens_pdaf

    v1 v1  
     1= cvt_adj_ens_pdaf =
     2
     3The page document the user-supplied call-back routine `cvt_adj_ens_pdaf`.
     4
     5The routine `cvt_adj_ens_pdaf` (`U_cvt_adj_ens` inside PDAF) is a call-back routine that has to be provided by the user. In the simplified interface the predefined name of the routine is `cvt_adj_ens_pdaf`, but in the full interface, the user can choose the name of the routine.
     6
     7The routine is used with the parameterized 3D-Var and the hybrid 3D-Var methods.
     8
     9The routine is called during the iterative optimization. It has to perform the adjoint of the control vector transform (preconditioning) which is usually a multiplication with the transponse square-root of the background covariance matrix '''B'''. The routine is provided with a state vector and has to return a vector in control space. The routine allows a user to implement the control vector transform in form of covariance operators.
     10
     11The interface for this routine is:
     12{{{
     13SUBROUTINE cvt_adj_ens_pdaf(iter, dim_p, dim_ens, dim_cv_ens_p, ens_p, Vcv_p, cv_p)
     14
     15  INTEGER, INTENT(in) :: iter                ! Iteration of optimization
     16  INTEGER, INTENT(in) :: dim_p               ! PE-local observation dimension
     17  INTEGER, INTENT(in) :: dim_ens             ! Ensemble size
     18  INTEGER, INTENT(in) :: dim_cv_ens_p        ! PE-local dimension of control vector
     19  REAL, INTENT(in) :: ens_p(dim_p, dim_ens)  ! PE-local ensemble
     20  REAL, INTENT(in)    :: Vcv_p(dim_p)        ! PE-local input vector
     21  REAL, INTENT(inout) :: cv_p(dim_cv_ens_p)  ! PE-local result vector
     22}}}
     23
     24Hints:
     25 * If the state vector is decomposed in case of parallelization one needs to take care that the application of the trasformation is complete. This usually requries a communication with MPI_Allreduce to obtain a global sun.