da_transform_xtowtq_adj.inc
References to this file elsewhere.
1 subroutine da_transform_xtowtq_adj (grid)
2
3 !--------------------------------------------------------------------------
4 ! Purpose: TBD
5 !--------------------------------------------------------------------------
6
7 implicit none
8
9 type (domain), intent(inout) :: grid
10
11 integer :: i, j, is, js, ie, je
12 real :: height
13
14 if (trace_use) call da_trace_entry("da_transform_xtowtq_adj")
15
16 is = its
17 js = jts
18
19 ie = ite
20 je = jte
21
22 if (test_wrfvar) then
23 is = its-1
24 js = jts-1
25
26 ie = ite+1
27 je = jte+1
28
29 if (is < ids) is = ids
30 if (js < jds) js = jds
31
32 if (ie > ide) ie = ide
33 if (je > jde) je = jde
34 end if
35
36 ! Adjoint from Gridded 10-m wind and 2-m moisture and temperature
37 ! to the model adjoint variables
38
39 do j=js, je
40 do i=is, ie
41 grid%xa%tgrn(i,j)=0.0
42
43 height = grid%xb%h(i,j,kts) - grid%xb%terr(i,j)
44 if (height <= 0.0) then
45 message(1) = "Negative height found"
46 write(unit=message(2),FMT='(2I6,A,F10.2,A,F10.2)') &
47 i,j,' ht = ',grid%xb%h(i,j,kts) ,' terr = ',grid%xb%terr(i,j)
48 call da_error(__FILE__,__LINE__,message(1:2))
49 end if
50 call da_sfc_wtq_adj(grid%xb%psfc(i,j), grid%xb%tgrn(i,j), &
51 grid%xb%p(i,j,kts), grid%xb%t(i,j,kts), grid%xb%q(i,j,kts), &
52 grid%xb%u(i,j,kts), grid%xb%v(i,j,kts), &
53 grid%xb%regime(i,j), &
54 grid%xa%psfc(i,j), grid%xa%tgrn(i,j), &
55 grid%xa%p(i,j,kts), grid%xa%t(i,j,kts), grid%xa%q(i,j,kts), &
56 grid%xa%u(i,j,kts), grid%xa%v(i,j,kts), &
57 height , grid%xb%rough(i,j), grid%xb%xland(i,j), &
58 grid%xa%u10(i,j),grid%xa%v10(i,j), &
59 grid%xa%t2 (i,j),grid%xa%q2 (i,j))
60
61 grid%xa%tgrn(i,j)=0.0
62 end do
63 end do
64
65 if (trace_use) call da_trace_exit("da_transform_xtowtq_adj")
66
67 end subroutine da_transform_xtowtq_adj
68
69