wrf svn trunk commit r4103
[wrffire.git] / wrfv2_fire / var / da / da_physics / da_integrat_dz.inc
blobc58c8b11fadc7a5851fe6951cae292f1be9bfcd5
1 subroutine da_integrat_dz(grid)
3    !---------------------------------------------------------------------------
4    ! Non-linear PW forward operator.
5    ! ===============================
6    !
7    ! Purpose: To calculate the IWV from the model QV and PP, TT.
8    !
9    ! Method:  IWV = sum {QV * RHO * dZ}
10    !
11    !           Unit: Qv (Kg/Kg), RHO(Kg/M^3), dZ(M)
12    !                 PW (cm)
13    !
14    ! input     : QV, PP, TT
15    !
16    ! output    : PW
17    !
18    !---------------------------------------------------------------------------
20    implicit none
22    type (domain), intent(inout) :: grid
24    integer :: i, j, K, ij 
26    real    :: pw
28    if (trace_use) call da_trace_entry("da_integrat_dz")
30    ! weighted sum of vertical column 
32    !$OMP PARALLEL DO &
33    !$OMP PRIVATE (ij, i, j, pw)
34    do ij = 1, grid%num_tiles
36    do j=jts, jte
37       do i=its, ite
38          pw = 0.0
39          do k=kts, kte
40             pw = pw + (grid%xb%hf(i,j,k+1)-grid%xb%hf(i,j,k)) * grid%xb%q(i,j,k)*grid%xb%rho(i,j,k)
41          end do
43          grid%xb%tpw(i,j) = 0.1*pw
44       end do
45    end do
47    end do
48    !$OMP END PARALLEL DO
50    if (trace_use) call da_trace_exit("da_integrat_dz")
52 end subroutine da_integrat_dz