1 subroutine da_transform_xtoy_ssmi_rv(grid, iv, y)
3 !-----------------------------------------------------------------------
5 !-----------------------------------------------------------------------
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)
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)
36 if (trace_use) call da_trace_exit("da_transform_xtoy_ssmi_rv")
38 end subroutine da_transform_xtoy_ssmi_rv