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