da_transform_xtoy.inc
References to this file elsewhere.
1 subroutine da_transform_xtoy(grid, iv, y)
2
3 !-------------------------------------------------------------------------
4 ! Purpose: TBD
5 !-------------------------------------------------------------------------
6
7 implicit none
8
9 type (domain), intent(inout) :: 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 if (trace_use) call da_trace_entry("da_transform_xtoy")
14
15 !--------------------------------------------------------------------------
16 ! [1.0] observation operator y = H(x):
17 !--------------------------------------------------------------------------
18
19 if (iv%info(sound)%nlocal > 0) then
20 call da_transform_xtoy_sound (grid, iv, y)
21 call da_transform_xtoy_sonde_sfc (grid, iv, y)
22 end if
23
24 if (iv%info(synop)%nlocal > 0) call da_transform_xtoy_synop (grid, iv, y)
25 if (iv%info(geoamv)%nlocal > 0) call da_transform_xtoy_geoamv (grid, iv, y)
26 if (iv%info(polaramv)%nlocal > 0) call da_transform_xtoy_polaramv (grid, iv, y)
27 if (iv%info(airep)%nlocal > 0) call da_transform_xtoy_airep (grid, iv, y)
28 if (iv%info(metar)%nlocal > 0) call da_transform_xtoy_metar (grid, iv, y)
29 if (iv%info(ships)%nlocal > 0) call da_transform_xtoy_ships (grid, iv, y)
30 if (iv%info(gpspw)%nlocal > 0) call da_transform_xtoy_gpspw (grid, iv, y)
31 if (iv%info(gpsref)%nlocal > 0) call da_transform_xtoy_gpsref (grid, iv, y)
32 if (iv%info(ssmi_tb)%nlocal > 0) call da_transform_xtoy_ssmi_tb (grid, iv, y)
33 if (iv%info(ssmi_rv)%nlocal > 0) call da_transform_xtoy_ssmi_rv (grid, iv, y)
34 if (iv%info(pilot)%nlocal > 0) call da_transform_xtoy_pilot (grid, iv, y)
35 if (iv%info(satem)%nlocal > 0) call da_transform_xtoy_satem (grid, iv, y)
36 if (iv%info(ssmt1)%nlocal > 0) call da_transform_xtoy_ssmt1 (grid, iv, y)
37 if (iv%info(ssmt2)%nlocal > 0) call da_transform_xtoy_ssmt2 (grid, iv, y)
38 if (iv%info(qscat)%nlocal > 0) call da_transform_xtoy_qscat (grid, iv, y)
39 if (iv%info(profiler)%nlocal > 0) call da_transform_xtoy_profiler (grid, iv, y)
40 if (iv%info(buoy)%nlocal > 0) call da_transform_xtoy_buoy (grid, iv, y)
41 if (iv%info(gpsref)%nlocal > 0) call da_transform_xtoy_gpsref (grid, iv, y)
42 if (iv%info(radar)%nlocal > 0) call da_transform_xtoy_radar (grid, iv, y)
43 if (iv%info(bogus)%nlocal > 0) call da_transform_xtoy_bogus (grid, iv, y)
44 if (iv%info(airsr)%nlocal > 0) call da_transform_xtoy_airsr (grid, iv, y)
45
46 if (num_pseudo > 0) call da_transform_xtoy_pseudo (grid, iv, y)
47
48 if (use_rad) then
49 if (rtm_option == rtm_option_rttov) then
50 call da_transform_xtoy_rttov (grid, iv, y)
51 elseif (rtm_option == rtm_option_crtm) then
52 #ifdef CRTM
53 !if (use_crtm_kmatrix) then
54 ! call da_transform_xtoy_crtmk (grid, iv, y)
55 !else if (use_crtm_kmatrix_fast) then
56 ! call da_transform_xtoy_crtmk_f (grid, iv, y)
57 !else
58 call da_transform_xtoy_crtm (grid, iv, y)
59 !end if
60 #endif
61 else
62 call da_warning(__FILE__,__LINE__,(/"Unknown radiative transfer model"/))
63 end if
64 end if
65
66 if (trace_use) call da_trace_exit("da_transform_xtoy")
67
68 end subroutine da_transform_xtoy
69
70