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_transforms) 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