da_set_boundary_xa.inc
References to this file elsewhere.
1 subroutine da_set_boundary_xa(grid)
2
3 !------------------------------------------------------------------------
4 ! Purpose:
5 !
6 ! Merge East-West boundary values for the desired grid%xa-type variables
7 !------------------------------------------------------------------------
8
9 implicit none
10
11 type (domain), intent(inout) :: grid
12
13 integer :: n, j, k
14
15 if ((its /= ids) .or. (ite /= ide)) return
16
17 if (trace_use) call da_trace_entry("da_set_boundary_xa")
18
19 ! 2d
20
21 k = kte + 1
22 do j=jms, jme
23 do n=1,bdyzone
24 grid%xa%psfc(ids-n,j) = grid%xa%psfc(ide+1-n,j)
25 grid%xa%w(ids-n,j,k) = grid%xa%w(ide+1-n,j,k)
26
27 grid%xa%psfc(ide+n,j) = grid%xa%psfc(ids-1+n,j)
28 grid%xa%w(ide+n,j,k) = grid%xa%w(ids-1+n,j,k)
29 end do
30 end do
31
32 ! 3d
33
34 do k=kts, kte
35 do j=jms, jme
36 do n=1,bdyzone
37 grid%xa%u(ids-n,j,k) = grid%xa%u(ide+1-n,j,k)
38 grid%xa%v(ids-n,j,k) = grid%xa%v(ide+1-n,j,k)
39 grid%xa%t(ids-n,j,k) = grid%xa%t(ide+1-n,j,k)
40 grid%xa%p(ids-n,j,k) = grid%xa%p(ide+1-n,j,k)
41 grid%xa%q(ids-n,j,k) = grid%xa%q(ide+1-n,j,k)
42 grid%xa%w(ids-n,j,k) = grid%xa%w(ide+1-n,j,k)
43
44 grid%xa%u(ide+n,j,k) = grid%xa%u(ids-1+n,j,k)
45 grid%xa%v(ide+n,j,k) = grid%xa%v(ids-1+n,j,k)
46 grid%xa%t(ide+n,j,k) = grid%xa%t(ids-1+n,j,k)
47 grid%xa%p(ide+n,j,k) = grid%xa%p(ids-1+n,j,k)
48 grid%xa%q(ide+n,j,k) = grid%xa%q(ids-1+n,j,k)
49 grid%xa%w(ide+n,j,k) = grid%xa%w(ids-1+n,j,k)
50 end do
51 end do
52 end do
53
54 if (trace_use) call da_trace_exit("da_set_boundary_xa")
55
56 end subroutine da_set_boundary_xa
57
58