1 SUBROUTINE da_apply_be_adj( be, cv, vp, grid )
5 TYPE (be_type), INTENT(IN) :: be ! Background error structure.
6 REAL, INTENT(INOUT) :: cv(:) ! Control variable.
7 TYPE (vp_type), INTENT(INOUT) :: vp ! Grid point/EOF equivalent.
8 type (domain), intent(inout) :: grid ! Dimensions and xpose buffers.
10 INTEGER :: i,j,k,ijk,ij,iunit
12 !-------------------------------------------------------------------------
13 ! [2.0] Transform from cv to vp:
14 !-------------------------------------------------------------------------
16 CALL da_apply_rf_adj( be, vp, grid )
18 ! [2.1] Transform control variable:
19 !!!!!!!!!!!!!!!!!!!!!!!
24 vp % v1(i,j,k)=vp % v1(i,j,k)*be % corz(i,j,k,1)
25 vp % v2(i,j,k)=vp % v2(i,j,k)*be % corz(i,j,k,2)
26 vp % v3(i,j,k)=vp % v3(i,j,k)*be % corz(i,j,k,3)
27 vp % v4(i,j,k)=vp % v4(i,j,k)*be % corz(i,j,k,4)
32 !-----Transform 5th control variable
36 vp % v5(i,j,k)=vp % v5(i,j,k)*be % corp(i,j)
40 !-------------------------------------------------------------------------
41 ! [1.0] Make global-grid copy of cc from 3-dimensional local-grid vv.
42 !-------------------------------------------------------------------------
44 call da_vv_to_cv( vp, grid%xp, be%cv_mz, be%ncv_mz, cv_size, cv )
46 END SUBROUTINE da_apply_be_adj