da_prho_to_t_lin.inc

References to this file elsewhere.
1 subroutine da_prho_to_t_lin(xb, xp, xa) 
2 
3    !---------------------------------------------------------------------------
4    ! Purpose: Calculates temperature increments from pressure/density increments
5    !
6    ! Method:  Linearised ideal gas law: T~ = T (p"/p - rho"/rho)
7    !
8    ! Assumptions: 1) Model level stored top down.
9    !---------------------------------------------------------------------------
10 
11    implicit none
12    
13    type (xb_type),    intent(in)    :: xb        ! First guess structure.
14    type (xpose_type), intent(in)    :: xp        ! Dimensions and xpose buffers.
15    type (x_type),     intent(inout) :: xa        ! increment structure.
16 
17    integer                       :: is, ie       ! 1st dim. end points.
18    integer                       :: js, je       ! 2nd dim. end points.
19    integer                       :: ks, ke       ! 3rd dim. end points.
20 
21    !---------------------------------------------------------------------------
22    ! [1.0] initialise:
23    !---------------------------------------------------------------------------
24 
25    is = xp%its
26    ie = xp%ite
27    js = xp%jts
28    je = xp%jte
29    ks = xp%kts
30    ke = xp%kte
31 
32    !---------------------------------------------------------------------------
33    ! [2.0] Calculate temperature increments:
34    !---------------------------------------------------------------------------
35 
36    xa % t(is:ie,js:je,ks:ke) = xb % t(is:ie,js:je,ks:ke) * &
37                             (xa % p(is:ie,js:je,ks:ke) / &
38                               xb % p(is:ie,js:je,ks:ke) - &
39                               xa % rho(is:ie,js:je,ks:ke) / &
40                               xb % rho(is:ie,js:je,ks:ke))     
41 
42 end subroutine da_prho_to_t_lin
43 
44