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