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