da_transform_xtoy_ssmi_rv.inc

References to this file elsewhere.
1 subroutine da_transform_xtoy_ssmi_rv(xb, oi, xa, y)
2 
3    !-----------------------------------------------------------------------
4    ! Purpose: TBD
5    !-----------------------------------------------------------------------
6 
7    implicit none
8 
9    type (xb_type), intent(in)   :: xb       ! first guess state.
10    type (ob_type), intent(in)   :: oi       ! obs. increment vector (o-b).
11    type (x_type),  intent(in)   :: xa       ! gridded analysis increment.
12    type (y_type), intent(inout) :: y        ! y = h (xa)
13 
14    integer                      :: n        ! loop counter.
15    integer                      :: i, j
16    real                         :: dx, dy, dxm, dym
17 
18    !  SSMI observation operator y = H(x):
19 
20    do n=1, oi % num_ssmi_retrieval
21       i = oi%ssmi_retrieval(n)%loc%i
22       j = oi%ssmi_retrieval(n)%loc%j
23       dx = oi%ssmi_retrieval(n)%loc%dx
24       dy = oi%ssmi_retrieval(n)%loc%dy
25       dxm = oi%ssmi_retrieval(n)%loc%dxm
26       dym = oi%ssmi_retrieval(n)%loc%dym
27 
28       ! Interpolating from 4 grid points to obs location
29 
30       call da_interp_lin_2d(xa%tpw, xb%ims, xb%ime, xb%jms, xb%jme, &
31                             i, j, dx, dy, dxm, dym, y%ssmi_retrieval(n)%tpw)
32       call da_interp_lin_2d(xa%speed, xb%ims, xb%ime, xb%jms, xb%jme, &
33                             i, j, dx, dy, dxm, dym, y%ssmi_retrieval(n)%speed)      
34    end do
35 
36 end subroutine da_transform_xtoy_ssmi_rv
37 
38