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