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, 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    implicit none
11    
12    real, intent(in)  :: t                ! Temperature.
13    real, intent(in)  :: p                ! Pressure.
14    real, intent(in)  :: es               ! Sat. vapour pressure.
15    real, intent(in)  :: t_prime          ! Temperature increment.
16    real, intent(in)  :: p_prime          ! Pressure increment.
17    real, intent(out) :: qs_prime_over_qs ! qs~/qs.
18    
19    real :: temp           ! Temporary value.
20    real :: es_prime_over_es ! es~/es
21 
22    if (trace_use_dull) call da_trace_entry("da_tp_to_qs_lin1")
23 
24    !---------------------------------------------------------------------------
25    ! [1.0] initialise:
26    !---------------------------------------------------------------------------
27 
28    temp = t + es_gammakelvin
29    
30    !---------------------------------------------------------------------------
31    ! [2.0] Calculate saturation vapour pressure increment:
32    !---------------------------------------------------------------------------
33 
34    es_prime_over_es = es_gammabeta * t_prime / ( temp * temp )
35 
36    !---------------------------------------------------------------------------
37    ! [3.0] Calculate saturation specific humidity increment:
38    !---------------------------------------------------------------------------
39 
40    qs_prime_over_qs = (p * es_prime_over_es - p_prime) / (p - rd_over_rv1 * es)
41 
42    if (trace_use_dull) call da_trace_exit("da_tp_to_qs_lin1")
43 
44 
45 end subroutine da_tp_to_qs_lin1
46 
47