da_transform_xtoy_ssmi_rv.inc
References to this file elsewhere.
1 subroutine da_transform_xtoy_ssmi_rv(grid, iv, y)
2
3 !-----------------------------------------------------------------------
4 ! Purpose: TBD
5 !-----------------------------------------------------------------------
6
7 implicit none
8
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)
12
13 integer :: n ! loop counter.
14
15 real, allocatable :: tpw(:)
16 real, allocatable :: speed(:)
17
18 if (trace_use) call da_trace_entry("da_transform_xtoy_ssmi_rv")
19
20 ! SSMI observation operator y = H(x):
21
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))
24
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
32
33 deallocate (tpw)
34 deallocate (speed)
35
36 if (trace_use) call da_trace_exit("da_transform_xtoy_ssmi_rv")
37
38 end subroutine da_transform_xtoy_ssmi_rv
39
40