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