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