da_add_flow_dependence_xa.inc

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