subroutine da_transform_xtotpw(grid) 4,2
!---------------------------------------------------------------------
! Purpose: weighted sum of vertical column
!---------------------------------------------------------------------
implicit none
type (domain), intent(inout) :: grid
integer :: i, j, k
real :: pw
if (trace_use) call da_trace_entry
("da_transform_xtotpw")
do j=jts, jte
do i=its, ite
pw = 0.0
do k=kts, kte
pw = pw + (grid%xb%hf(i,j,k+1)-grid%xb%hf(i,j,k)) &
* (grid%xa%q(i,j,k)*grid%xb%rho(i,j,k) &
+ grid%xb%q(i,j,k)*grid%xa%rho(i,j,k))
end do
! To convert the unit of PW to cm:
grid%xa%tpw(i,j) = 0.1*pw
end do
end do
if (trace_use) call da_trace_exit
("da_transform_xtotpw")
end subroutine da_transform_xtotpw