da_tp_to_qs_lin1.inc

References to this file elsewhere.
1 subroutine da_tp_to_qs_lin1( t, p, es, t_prime, p_prime, &
2                              qs_prime_over_qs )
3 
4    !---------------------------------------------------------------------------
5    ! Purpose: Convert es/p/es_prime to saturation specific humidity increment.
6    !
7    !  Method: qs~ = qs * ( p es'/es - p' ) / ( p - (1-rd_over_rv) es ).
8    !          use Rogers & Yau (1989) formula: es = a exp( bTc / (T_c + c) ).
9    !---------------------------------------------------------------------------
10 
11    implicit none
12    
13    real, intent(in)              :: t                ! Temperature.
14    real, intent(in)              :: p                ! Pressure.
15    real, intent(in)              :: es               ! Sat. vapour pressure.
16    real, intent(in)              :: t_prime          ! Temperature increment.
17    real, intent(in)              :: p_prime          ! Pressure increment.
18    real, intent(out)             :: qs_prime_over_qs ! qs~/qs.
19    
20    real                          :: temp           ! Temporary value.
21    real                          :: es_prime_over_es ! es~/es
22 
23    !---------------------------------------------------------------------------
24    ! [1.0] initialise:
25    !---------------------------------------------------------------------------
26 
27    temp = t + es_gammakelvin
28    
29    !---------------------------------------------------------------------------
30    ! [2.0] Calculate saturation vapour pressure increment:
31    !---------------------------------------------------------------------------
32 
33    es_prime_over_es = es_gammabeta * t_prime / ( temp * temp )
34 
35    !---------------------------------------------------------------------------
36    ! [3.0] Calculate saturation specific humidity increment:
37    !---------------------------------------------------------------------------
38 
39    qs_prime_over_qs = ( p * es_prime_over_es - p_prime ) / &
40                       ( p - rd_over_rv1 * es )
41 
42 end subroutine da_tp_to_qs_lin1
43 
44