Changes between Initial Version and Version 1 of U_obs_op_adj


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

--

Legend:

Unmodified
Added
Removed
Modified
  • U_obs_op_adj

    v1 v1  
     1= U_obs_op_adj =
     2
     3The page document the user-supplied call-back routine `U_obs_op_adj`.
     4
     5The routine `U_obs_op_adj` is a call-back routine that has to be provided by the user. In the simplified interface the predefined name of the routine is `obs_op_adj_pdaf`, but in the full interface, the user can choose the name of the routine.
     6
     7The routine is used with the all 3D-Var methods. It has to perform the operation of the adjoint observation operator. It has to perform the operation of the adjoint observation operator. The operator acts on a vector in observation space that is provided as m_state_p. The resulting state vector has to be returned in `state_p`.
     8
     9The interface is the following:
     10{{{
     11SUBROUTINE U_obs_op_adj(step, dim_p, dim_obs_p, state_p, m_state_p)
     12
     13  INTEGER, INTENT(in) :: step                 ! Current time step
     14  INTEGER, INTENT(in) :: dim_p                ! PE-local dimension of state
     15  INTEGER, INTENT(in) :: dim_obs_p            ! Dimension of observed state
     16  REAL, INTENT(in)    :: m_state_p(dim_obs_p) ! PE-local observed state
     17  REAL, INTENT(out)   :: state_p(dim_p)       ! PE-local model state
     18}}}
     19
     20Hints:
     21 * For a model using domain decomposition, the operation is on the PE-local sub-domain of the model and has to provide the observed sub-state for the PE-local domain.
     22 * If the observation operator involves a global operation, e.g. some global integration, while using domain-decomposition one has to gather the information from the other model domains using MPI communication.