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