da_transform_xtoy.inc

References to this file elsewhere.
1 subroutine da_transform_xtoy(xb, iv, xa, xp, 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)    :: iv       ! obs. increment vector (o-b).
11    type (x_type),  intent(inout) :: xa       ! gridded analysis increment.
12    type (xpose_type), intent(in) :: xp       ! Domain decomposition vars.
13    type (y_type), intent(inout)  :: y        ! y = h (xa)
14 
15    if (trace_use) call da_trace_entry("da_transform_xtoy")
16    
17    !--------------------------------------------------------------------------
18    ! [1.0] Radiosonde observation operator y = H(x):
19    !--------------------------------------------------------------------------
20   
21    call da_transform_xtoy_sound (xa, iv, xp, y) 
22    call da_transform_xtoy_sonde_sfc (xa, xb, iv, xp, y) 
23 
24    !---------------------------------------------------------------------------
25    ! [2.0] Surface observation operator y = H(x):
26    !---------------------------------------------------------------------------
27 
28    call da_transform_xtoy_synop (xa, xb, iv, xp, y)
29 
30    !---------------------------------------------------------------------------
31    ! [3.0] Cloud track wind observation operator y = H(x):
32    !---------------------------------------------------------------------------
33 
34    ! Geostationary Satellite
35    call da_transform_xtoy_geoamv(xa, iv, xp, y)
36    ! Polar orbiting Satellite
37    call da_transform_xtoy_polaramv(xa, iv, xp, y)
38 
39    !---------------------------------------------------------------------------
40    ! [4.0] Aircraft observation operator y = H(x):
41    !---------------------------------------------------------------------------
42    
43    call da_transform_xtoy_airep (xa, iv, xp, y)
44 
45    !---------------------------------------------------------------------------
46    ! [5.0] Metar observation operator y = H(x):
47    !---------------------------------------------------------------------------
48 
49    call da_transform_xtoy_metar (xa, xb, iv, xp, y)
50 
51    !---------------------------------------------------------------------------
52    ! [6.0] Ship observation operator y = H(x):
53    !---------------------------------------------------------------------------
54 
55    call da_transform_xtoy_ships (xa, xb, iv, xp, y)
56 
57    !---------------------------------------------------------------------------
58    ! [7.0] GPS TPW/ZTD observation operator y = H(x):
59    !---------------------------------------------------------------------------
60 
61    call da_transform_xtoy_gpspw (xb, iv, xa, xp, y)
62 
63 
64    !---------------------------------------------------------------------------
65    ! [8.0] SSMI observation operator y = H(x):
66    !------------------------------------------------------------------------------
67 
68    call da_transform_xtoy_ssmi (xb, iv, xa, y)
69 
70    !---------------------------------------------------------------------------
71    ! [9.0] Pilot observation operator y = H(x):
72    !---------------------------------------------------------------------------
73   
74    call da_transform_xtoy_pilot (xa, iv, xp, y)
75 
76    !---------------------------------------------------------------------------
77    ! [10.0] Pseudo obs observation operator y = H(x):
78    !----------------------------------------------------------------------------
79 
80    call da_transform_xtoy_pseudo (xa, iv, xp, y)
81 
82    !---------------------------------------------------------------------------
83    ! [11.0] Satem observation operator y = H(x):
84    !---------------------------------------------------------------------------
85    
86    call da_transform_xtoy_satem (xa, xb, iv, xp, y)
87 
88    !---------------------------------------------------------------------------
89    ! [12.0] SSM/T1 observation operator y = H(x):
90    !---------------------------------------------------------------------------
91 
92    call da_transform_xtoy_ssmt1 (xa, iv, xp, y)
93    
94    !---------------------------------------------------------------------------
95    ! [13.0] SSM/T2 observation operator y = H(x):
96    !---------------------------------------------------------------------------
97 
98    call da_transform_xtoy_ssmt2 (xa, iv, xp, y)
99    
100    !---------------------------------------------------------------------------
101    ! [14.0] Scatterometer observation operator y = H(x):
102    !---------------------------------------------------------------------------
103 
104    call da_transform_xtoy_qscat (xa, iv, xp, y)
105 
106    !---------------------------------------------------------------------------
107    ! [15.0] Profiler observation operator y = H(x):
108    !---------------------------------------------------------------------------
109 
110    call da_transform_xtoy_profiler (xa, iv, xp, y)
111 
112    !---------------------------------------------------------------------------
113    ! [16.0] Buoy observation operator y = H(x):
114    !---------------------------------------------------------------------------
115 
116    call da_transform_xtoy_buoy  (xa, xb, iv, xp, y)
117 
118    !---------------------------------------------------------------------------
119    ! [17.0] GPS Refractivity observation operator y = H(x):
120    !---------------------------------------------------------------------------
121 
122    call da_transform_xtoy_gpsref (xa, iv, xp, y)
123 
124    !---------------------------------------------------------------------------
125    ! [18.0] Radar observation operator y = H(x):
126    !------------------------------------------------------------------------------
127 
128    call da_transform_xtoy_radar (xa, xb, iv, xp, y)
129 
130    !---------------------------------------------------------------------------
131    ! [19.0] TC bogus observation operator y = H(x):
132    !---------------------------------------------------------------------------
133 
134    call da_transform_xtoy_bogus (xa, xb, iv, xp, y)
135 
136    !---------------------------------------------------------------------------
137    ! [20.0] AIRS retrievals observation operator y = H(x):
138    !---------------------------------------------------------------------------
139 
140    call da_transform_xtoy_airsr (xa, iv, xp, y) 
141 
142    !---------------------------------------------------------------------------
143    ! [20.0] Radiance observation operator y = H(x):
144    !---------------------------------------------------------------------------
145 
146    if (use_rad) then
147       if (rtm_option == rtm_option_rttov) then
148          call da_transform_xtoy_rttov (xa, iv, xp, y)
149       elseif (rtm_option == rtm_option_crtm) then
150 #ifdef CRTM
151          !if (use_crtm_kmatrix) then
152          !   call da_transform_xtoy_crtmk (xa, iv, xp, y)
153          !else if (use_crtm_kmatrix_fast) then
154          !   call da_transform_xtoy_crtmk_f (xa, iv, xp, y)
155          !else
156             call da_transform_xtoy_crtm (xa, iv, xp, y)
157          !end if
158 #endif
159        else
160           call da_warning(__FILE__,__LINE__,(/"Unknown radiative transfer model"/))
161        endif
162    end if
163 
164    if (trace_use) call da_trace_exit("da_transform_xtoy")
165 
166 end subroutine da_transform_xtoy
167 
168