<HTML> <BODY BGCOLOR=#ccccdd LINK=#0000aa VLINK=#0000ff ALINK=#ff0000 ><BASE TARGET="bottom_target"><PRE>
<A NAME='DA_TRANSFORM_XTOY'><A href='../../html_code/obs/da_transform_xtoy.inc.html#DA_TRANSFORM_XTOY' TARGET='top_target'><IMG SRC="../../gif/bar_red.gif" border=0></A>
subroutine da_transform_xtoy(cv_size, cv, grid, iv, y) 3,32
!-------------------------------------------------------------------------
! Purpose: TBD
!-------------------------------------------------------------------------
implicit none
integer, intent(in) :: cv_size ! Size of cv array.
real, intent(in) :: cv(1:cv_size) ! control variables.
type (domain), intent(inout) :: grid
type (iv_type), intent(inout) :: iv ! obs. increment vector (o-b).
type (y_type), intent(inout) :: y ! y = h (grid%xa)
if (trace_use) call da_trace_entry
("da_transform_xtoy")
!--------------------------------------------------------------------------
! [1.0] observation operator y = H(x):
!--------------------------------------------------------------------------
if (iv%info(sound)%nlocal > 0) call da_transform_xtoy_sound
(grid, iv, y)
if (iv%info(sonde_sfc)%nlocal > 0) call da_transform_xtoy_sonde_sfc
(grid, iv, y)
if (iv%info(mtgirs)%nlocal > 0) call da_transform_xtoy_mtgirs
(grid, iv, y)
if (iv%info(tamdar)%nlocal > 0) call da_transform_xtoy_tamdar
(grid, iv, y)
if (iv%info(tamdar_sfc)%nlocal > 0) call da_transform_xtoy_tamdar_sfc
(grid, iv, y)
if (iv%info(synop)%nlocal > 0) call da_transform_xtoy_synop
(grid, iv, y)
if (iv%info(geoamv)%nlocal > 0) call da_transform_xtoy_geoamv
(grid, iv, y)
if (iv%info(polaramv)%nlocal > 0) call da_transform_xtoy_polaramv
(grid, iv, y)
if (iv%info(airep)%nlocal > 0) call da_transform_xtoy_airep
(grid, iv, y)
if (iv%info(metar)%nlocal > 0) call da_transform_xtoy_metar
(grid, iv, y)
if (iv%info(ships)%nlocal > 0) call da_transform_xtoy_ships
(grid, iv, y)
if (iv%info(gpspw)%nlocal > 0) then
if (use_gpspwobs) then
call da_transform_xtoy_gpspw
(grid, iv, y)
else if (use_gpsztdobs) then
call da_transform_xtoy_gpsztd
(grid, iv, y)
endif
end if
if (iv%info(ssmi_tb)%nlocal > 0) call da_transform_xtoy_ssmi_tb
(grid, iv, y)
if (iv%info(ssmi_rv)%nlocal > 0) call da_transform_xtoy_ssmi_rv
(grid, iv, y)
if (iv%info(pilot)%nlocal > 0) call da_transform_xtoy_pilot
(grid, iv, y)
if (iv%info(satem)%nlocal > 0) call da_transform_xtoy_satem
(grid, iv, y)
if (iv%info(ssmt1)%nlocal > 0) call da_transform_xtoy_ssmt1
(grid, iv, y)
if (iv%info(ssmt2)%nlocal > 0) call da_transform_xtoy_ssmt2
(grid, iv, y)
if (iv%info(qscat)%nlocal > 0) call da_transform_xtoy_qscat
(grid, iv, y)
if (iv%info(profiler)%nlocal > 0) call da_transform_xtoy_profiler
(grid, iv, y)
if (iv%info(buoy)%nlocal > 0) call da_transform_xtoy_buoy
(grid, iv, y)
if (iv%info(gpsref)%nlocal > 0) call da_transform_xtoy_gpsref
(grid, iv, y)
if (iv%info(radar)%nlocal > 0) call da_transform_xtoy_radar
(grid, iv, y)
if (iv%info(bogus)%nlocal > 0) call da_transform_xtoy_bogus
(grid, iv, y)
if (iv%info(airsr)%nlocal > 0) call da_transform_xtoy_airsr
(grid, iv, y)
if (iv%info(pseudo)%nlocal > 0) call da_transform_xtoy_pseudo
(grid, iv, y)
if (use_rad) then
if (rtm_option == rtm_option_rttov) then
#ifdef RTTOV
call da_transform_xtoy_rttov
(grid, iv, y)
#endif
elseif (rtm_option == rtm_option_crtm) then
#ifdef CRTM
!if (use_crtm_kmatrix) then
! call da_transform_xtoy_crtmk (grid, iv, y)
!else if (use_crtm_kmatrix_fast) then
! call da_transform_xtoy_crtmk_f (grid, iv, y)
!else
call da_transform_xtoy_crtm
(cv_size, cv, grid, iv, y)
!end if
#endif
else
call da_warning
(__FILE__,__LINE__,(/"Unknown radiative transfer model"/))
end if
end if
if (trace_use) call da_trace_exit
("da_transform_xtoy")
end subroutine da_transform_xtoy