da_pt_to_rho_lin.inc

References to this file elsewhere.
1 subroutine da_pt_to_rho_lin(xb, xa, xp)
2 
3    !---------------------------------------------------------------------------
4    ! Purpose: Calculates density increments from pressure/temperature increments
5    !
6    ! Method:  Linearised ideal gas law: rho~/rho = p'/p - T'/T
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 (x_type), intent(inout)  :: xa           ! increment structure.
15    type (xpose_type), intent(in) :: xp           ! Dimensions and xpose buffers.
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 % rho(is:ie,js:je,ks:ke) = xb % rho(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 % t(is:ie,js:je,ks:ke) / &
40                                  xb % t(is:ie,js:je,ks:ke))                       
41 
42 end subroutine da_pt_to_rho_lin
43 
44