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