da_add_flow_dependence_xa_adj.inc

References to this file elsewhere.
1 subroutine da_add_flow_dependence_xa_adj (ne, ep, xa, vp)
2 
3    !-----------------------------------------------------------------------
4    ! Purpose: Add flow-dependent increments in model space (xa).
5    !-----------------------------------------------------------------------
6                                       
7    implicit none
8    
9    integer, intent(in)                  :: ne  ! Ensemble size.
10    type (ep_type), intent(in)           :: ep  ! Ensemble perturbations.
11    type (x_type), intent(in)            :: xa  ! Analysis increments.
12    type (vp_type), intent(inout)        :: vp  ! CV on grid structure.
13    
14    integer                              :: n, k! Loop counters.
15 
16    vp % alpha(:,:,:) = 0.0
17 
18    do n = ne, 1, -1
19       ! ps:
20       vp % alpha(its:ite,jts:jte,n) = vp % alpha(its:ite,jts:jte,n) + &
21                                       ep % v5(its:ite,jts:jte,1,n) * & ! v5 = ps
22                                       xa % psfc(its:ite,jts:jte)
23 
24       do k = kte, kts, -1
25 
26          ! q:
27          vp % alpha(its:ite,jts:jte,n) = vp % alpha(its:ite,jts:jte,n) + &
28                                          ep % v4(its:ite,jts:jte,k,n) * & ! v4 = q
29                                          xa % q(its:ite,jts:jte,k)
30 
31          ! t:
32          vp % alpha(its:ite,jts:jte,n) = vp % alpha(its:ite,jts:jte,n) + &
33                                          ep % v3(its:ite,jts:jte,k,n) * & ! v3 = t
34                                          xa % t(its:ite,jts:jte,k)
35 
36          ! v:
37          vp % alpha(its:ite,jts:jte,n) = vp % alpha(its:ite,jts:jte,n) + &
38                                          ep % v2(its:ite,jts:jte,k,n) * & ! v2 = v
39                                          xa % v(its:ite,jts:jte,k)
40 
41          ! u:
42          vp % alpha(its:ite,jts:jte,n) = vp % alpha(its:ite,jts:jte,n) + &
43                                          ep % v1(its:ite,jts:jte,k,n) * & ! v1 = u
44                                          xa % u(its:ite,jts:jte,k)
45       end do
46    end do
47 
48    if (trace_use) call da_trace_exit("da_add_flow_dependence_xa_adj")
49 
50 end subroutine da_add_flow_dependence_xa_adj
51 
52