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