Merge remote-tracking branch 'origin/release-v4.5.2'
[WRF.git] / var / da / da_ssmi / da_transform_xtoy_ssmi_rv.inc
blob054af7e670f3c6f4acecd7173ff6abbbde0ebb6b
1 subroutine da_transform_xtoy_ssmi_rv(grid, iv, y)
3    !-----------------------------------------------------------------------
4    ! Purpose: TBD
5    !-----------------------------------------------------------------------
7    implicit none
9    type (domain),  intent(in)    :: grid
10    type (iv_type), intent(in)    :: iv       ! obs. increment vector (o-b).
11    type (y_type),  intent(inout) :: y        ! y = h (grid%xa)
13    integer :: n        ! loop counter.
15    real, allocatable :: tpw(:)
16    real, allocatable :: speed(:)
18    if (trace_use) call da_trace_entry("da_transform_xtoy_ssmi_rv")
20    ! SSMI observation operator y = H(x):
22    allocate (tpw(iv%info(ssmi_rv)%n1:iv%info(ssmi_rv)%n2))
23    allocate (speed(iv%info(ssmi_rv)%n1:iv%info(ssmi_rv)%n2))
25    call da_interp_lin_2d (grid%xa%tpw,   iv%info(ssmi_rv), 1, tpw)
26    call da_interp_lin_2d (grid%xa%speed, iv%info(ssmi_rv), 1, speed)   
27    
28    do n=iv%info(ssmi_rv)%n1,iv%info(ssmi_rv)%n2
29       y%ssmi_rv(n)%tpw   = tpw(n)
30       y%ssmi_rv(n)%speed = speed(n)      
31    end do
33    deallocate (tpw)
34    deallocate (speed)
36    if (trace_use) call da_trace_exit("da_transform_xtoy_ssmi_rv")
38 end subroutine da_transform_xtoy_ssmi_rv