da_transform_xtogpsref_lin.inc
References to this file elsewhere.
1 subroutine da_transform_xtogpsref_lin(grid)
2
3 !---------------------------------------------------------------------
4 ! Purpose: TBD
5 !---------------------------------------------------------------------
6
7 implicit none
8
9 type (domain), intent(inout) :: grid
10
11 integer :: i, j, k
12 real :: partone, parttwo, dividnd
13 real :: partone9,parttwo9,dividnd9
14
15 if (trace_use_dull) call da_trace_entry("da_transform_xtogpsref_lin")
16
17 ! 2.0 Loop for a tile
18
19 do k = kts, kte
20 do j = jts, jte
21 do i = its, ite
22 !-----calculate refractivity
23 ! Note: p in Pascal, q its the specific humidity
24
25 ! 2.1 Part one: hydrostatic part
26
27 partone = 0.776*grid%xa%p(i,j,k)/grid%xb%t(i,j,k) &
28 - 0.776*grid%xb%p(i,j,k)*grid%xa%t (i,j,k)/ &
29 (grid%xb%t(i,j,k)*grid%xb%t(i,j,k))
30 partone9 = 0.776*grid%xb%p(i,j,k)/grid%xb%t(i,j,k)
31
32 ! 2.2 Part two considering the moitsture:
33
34 dividnd = grid%xa%t (i,j,k)*(0.622+0.378*grid%xb%q(i,j,k)) &
35 + grid%xb%t(i,j,k)* 0.378*grid%xa%q(i,j,k)
36 dividnd9 = grid%xb%t(i,j,k)*(0.622+0.378*grid%xb%q(i,j,k))
37
38 parttwo = coeff*grid%xa%q(i,j,k)/dividnd9 &
39 - coeff*grid%xb%q(i,j,k)*dividnd /(dividnd9*dividnd9)
40 parttwo9 = 1.0+coeff*grid%xb%q(i,j,k)/dividnd9
41
42 ! 2.3 Total refractivity
43
44 grid%xa%ref(i,j,k)= partone9 * parttwo + partone * parttwo9
45 end do
46 end do
47 end do
48
49 if (trace_use_dull) call da_trace_exit("da_transform_xtogpsref_lin")
50
51 end subroutine da_transform_xtogpsref_lin
52
53