da_tp_to_qs_lin.inc

References to this file elsewhere.
1 subroutine da_tp_to_qs_lin(grid, qs_prime_over_qs )
2 
3    !---------------------------------------------------------------------------
4    !  Purpose: Convert es/p/es_prime to saturation specific humidity increment.
5    !
6    !  Method: qs~ = qs * ( p es'/es - p' ) / ( p - (1-rd_over_rv) es ).
7    !          use Rogers & Yau (1989) formula: es = a exp( bTc / (T_c + c) ).
8 
9    !---------------------------------------------------------------------------
10 
11    implicit none
12 
13    type (domain), intent(inout) :: grid
14    real,          intent(out)   :: qs_prime_over_qs(its:ite,jts:jte,kts:kte)
15 
16    integer :: i, j, k      ! Loop counters.
17    real    :: temp         ! Temporary array.
18    real    :: es_prime_over_es ! Sat Vap pressure ratio.
19 
20    if (trace_use_dull) call da_trace_entry("da_tp_to_qs_lin")
21 
22    do k = kts, kte
23       do j = jts, jte
24          do i = its, ite
25             temp = grid%xb % t(i,j,k) + es_gammakelvin
26             !-----------------------------------------------------------------
27             ! [2.0] Calculate saturation vapour pressure increment:
28             !-----------------------------------------------------------------
29 
30             es_prime_over_es = es_gammabeta * grid%xa % t(i,j,k) / ( temp * temp )
31 
32             !-----------------------------------------------------------------
33             ! [3.0] Calculate saturation specific humidity increment:
34             !-----------------------------------------------------------------
35 
36             qs_prime_over_qs(i,j,k) = ( grid%xb % p(i,j,k) * es_prime_over_es - &
37                                         grid%xa % p(i,j,k) ) / &
38                                       ( grid%xb % p(i,j,k) - rd_over_rv1 * &
39                                         grid%xb % es(i,j,k) )
40          end do
41       end do
42    end do
43 
44    if (trace_use_dull) call da_trace_exit("da_tp_to_qs_lin")
45 
46 end subroutine da_tp_to_qs_lin
47 
48