Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / var / da / da_vtox_transforms / da_apply_be_adj.inc
blobfbd96fa9f780becaaed8cd079ccfaa13135491e7
1 SUBROUTINE da_apply_be_adj( be, cv, vp, grid )
3    IMPLICIT NONE
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 !!!!!!!!!!!!!!!!!!!!!!!
21    do k=kts,kte
22    do j=jts,jte
23    do i=its,ite
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)
28    enddo
29    enddo         
30    enddo         
32 !-----Transform 5th control variable
33       k=1
34    do j=jts,jte
35       do i=its,ite
36          vp % v5(i,j,k)=vp % v5(i,j,k)*be % corp(i,j)
37       enddo
38    enddo         
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