da_tprh_to_q_lin1.inc

References to this file elsewhere.
1 subroutine da_tprh_to_q_lin1( t, p, es, q, rh, t_prime, p_prime, rh_prime, q_prime )
2 
3    !---------------------------------------------------------------------------
4    !  Purpose: Convert T/pressure/rh to specific humidity increments.
5    !
6    !  Method: q~ = q (rh~/rh + qs~/qs)
7    !---------------------------------------------------------------------------
8 
9    implicit none
10 
11    real, intent(in)  :: t        ! Temperature.
12    real, intent(in)  :: p        ! Pressure.
13    real, intent(in)  :: es       ! Saturation vapour pressure.
14    real, intent(in)  :: q        ! Specific humidity.
15    real, intent(in)  :: rh       ! Relative Humidity.
16    real, intent(in)  :: t_prime  ! Temperature increment.
17    real, intent(in)  :: p_prime  ! Pressure increment.
18    real, intent(in)  :: rh_prime ! Pressure increment.
19    real, intent(out) :: q_prime  ! Pressure increment.
20    
21    real :: qs_prime_over_qs ! qs~/qs.
22 
23    if (trace_use_dull) call da_trace_entry("da_tprh_to_q_lin1")
24 
25    !---------------------------------------------------------------------------
26    ! [1.0] Calculate saturation specific humidity ratio qs~/qs:
27    !---------------------------------------------------------------------------
28 
29    call da_tp_to_qs_lin1( t, p, es, t_prime, p_prime, qs_prime_over_qs )
30    
31    !---------------------------------------------------------------------------
32    ! [2.0] Calculate specific humidity increment:
33    !---------------------------------------------------------------------------
34 
35    q_prime = q * ( rh_prime / rh + qs_prime_over_qs )
36 
37    if (trace_use_dull) call da_trace_exit("da_tprh_to_q_lin1")
38 
39 end subroutine da_tprh_to_q_lin1
40 
41