1 subroutine da_transform_xtoy_ssmi_rv_adj(grid, iv, jo_grad_y, jo_grad_x)
3 !-----------------------------------------------------------------------
5 !-----------------------------------------------------------------------
9 type (domain), intent(in) :: grid
10 type (iv_type), intent(in) :: iv ! obs. inc. vector (o-b).
11 type (y_type) , intent(in) :: jo_grad_y ! grad_y(jo)
12 type (x_type) , intent(inout) :: jo_grad_x ! grad_x(jo)
16 real, allocatable :: tpw(:)
17 real, allocatable :: speed(:)
19 if (trace_use) call da_trace_entry("da_transform_xtoy_ssmi_rv_adj")
21 allocate (tpw(iv%info(ssmi_rv)%n1:iv%info(ssmi_rv)%n2))
22 allocate (speed(iv%info(ssmi_rv)%n1:iv%info(ssmi_rv)%n2))
24 do n=iv%info(ssmi_rv)%n1,iv%info(ssmi_rv)%n2
25 tpw(n) = jo_grad_y%ssmi_rv(n)%tpw
26 speed(n) = jo_grad_y%ssmi_rv(n)%speed
29 call da_interp_lin_2d_adj(jo_grad_x%tpw, iv%info(ssmi_rv), 1, tpw)
30 call da_interp_lin_2d_adj(jo_grad_x%speed, iv%info(ssmi_rv), 1, speed)
35 if (trace_use) call da_trace_exit("da_transform_xtoy_ssmi_rv_adj")
37 end subroutine da_transform_xtoy_ssmi_rv_adj