Changes between Initial Version and Version 1 of U_cvt


Ignore:
Timestamp:
Dec 9, 2021, 2:52:31 PM (2 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • U_cvt

    v1 v1  
     1= U_cvt =
     2
     3The page document the user-supplied call-back routine `U_cvt`.
     4
     5The routine `U_cvt` 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_pdaf`, but in the full interface, the user can choose the name of the routine.
     6
     7The routine is used with all 3D-Var methods.
     8The routine is called during the iterative optimization. It has to perform the control vector transform (preconditioning) which is usually a multiplication with the square-root of the background covariance matrix '''B'''. The routine is provided with a control vector and has to return a state vector. The routine allows a user to implement the control vector transform in form of covariance operators.
     9
     10The interface is the following:
     11
     12{{{
     13SUBROUTINE cvt_pdaf(iter, dim_p, dim_cvec, cv_p, Vv_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_cvec       ! Dimension of control vector
     18  REAL, INTENT(in)    :: cv_p(dim_cvec) ! PE-local control vector
     19  REAL, INTENT(inout) :: Vv_p(dim_p)    ! PE-local result vector (state vector increment)
     20}}}
     21
     22Hints
     23 * 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 comminucation with MPI_Allreduce to obtain a global sun.