updated top-level README and version_decl for V4.5 (#1847)
[WRF.git] / var / da / da_gpspw / da_calculate_grady_gpspw.inc
blob143eab49fde1d23c1ba5d36b96b3897400e37861
1 subroutine da_calculate_grady_gpspw(iv, re, jo_grad_y)
3    !-----------------------------------------------------------------------
4    ! Purpose: Applies obs inverse on re-vector
5    !-----------------------------------------------------------------------
7    implicit none
9    type (iv_type), intent(in)    :: iv          ! Innovation vector.
10    type (y_type),  intent(inout) :: re          ! Residual vector.
11    type (y_type),  intent(inout) :: jo_grad_y   ! Grad_y(Jo)
13    integer :: n
15    if (trace_use_dull) call da_trace_entry("da_calculate_grady_gpspw")
17    do n=1, iv%info(gpspw)%nlocal
18       if (iv%gpspw(n)%tpw%qc < obs_qc_pointer) then
19          re%gpspw(n)%tpw = 0.0
20       end if
22       jo_grad_y%gpspw(n)%tpw = -re%gpspw(n)%tpw / (iv%gpspw(n)%tpw%error * iv%gpspw(n)%tpw%error)
23    end do
25    if (trace_use_dull) call da_trace_exit("da_calculate_grady_gpspw")
28 end subroutine da_calculate_grady_gpspw