da_transform_xtoy_adj.inc
References to this file elsewhere.
1 subroutine da_transform_xtoy_adj(xb, iv, xp, jo_grad_y, jo_grad_x)
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. inc vector (o-b).
11 type (xpose_type), intent(in) :: xp ! Domain decomposition vars.
12 type (y_type), intent(inout) :: jo_grad_y ! grad_y(jo)
13 type (x_type), intent(inout) :: jo_grad_x ! grad_x(jo)
14
15 if (trace_use) call da_trace_entry("da_transform_xtoy_adj")
16
17 !--------------------------------------------------------------------------
18 ! [1.0] Radiosonde observation operator y = H(x):
19 !--------------------------------------------------------------------------
20
21 call da_transform_xtoy_sound_adj (iv, xp, jo_grad_y, jo_grad_x)
22 call da_transform_xtoy_sonde_sfc_adj (xb, iv, xp, jo_grad_y, jo_grad_x)
23
24 !---------------------------------------------------------------------------
25 ! [2.0] Surface observation operator y = H(x):
26 !---------------------------------------------------------------------------
27
28 call da_transform_xtoy_synop_adj (xb, iv, xp, jo_grad_y, jo_grad_x)
29
30 !---------------------------------------------------------------------------
31 ! [3.0] Cloud track wind observation operator y = H(x):
32 !---------------------------------------------------------------------------
33
34 ! Geostationary Satellite
35 call da_transform_xtoy_geoamv_adj (iv, xp, jo_grad_y, jo_grad_x)
36
37 ! Polar orbitting Satellite
38 call da_transform_xtoy_polaramv_adj (iv, xp, jo_grad_y, jo_grad_x)
39
40 !---------------------------------------------------------------------------
41 ! [4.0] Aircraft observation operator y = H(x):
42 !---------------------------------------------------------------------------
43
44 call da_transform_xtoy_airep_adj (iv, xp, jo_grad_y, jo_grad_x)
45
46 !---------------------------------------------------------------------------
47 ! [5.0] Metar observation operator y = H(x):
48 !---------------------------------------------------------------------------
49
50 call da_transform_xtoy_metar_adj (xb, iv, xp, jo_grad_y, jo_grad_x)
51
52 !---------------------------------------------------------------------------
53 ! [6.0] Ship observation operator y = H(x):
54 !---------------------------------------------------------------------------
55
56 call da_transform_xtoy_ships_adj (xb, iv, xp, jo_grad_y, jo_grad_x)
57
58 !---------------------------------------------------------------------------
59 ! [7.0] GPS TPW/ZTD observation operator y = H(x):
60 !---------------------------------------------------------------------------
61
62 call da_transform_xtoy_gpspw_adj (xb, iv, xp, jo_grad_y, jo_grad_x)
63
64 !---------------------------------------------------------------------------
65 ! [8.0] SSMI observation operator y = H(x):
66 !---------------------------------------------------------------------------
67
68 call da_transform_xtoy_ssmi_adj (xb, iv, jo_grad_y, jo_grad_x)
69
70 !---------------------------------------------------------------------------
71 ! [9.0] Pilot observation operator y = H(x):
72 !---------------------------------------------------------------------------
73
74 call da_transform_xtoy_pilot_adj (iv, xp, jo_grad_y, jo_grad_x)
75
76 !---------------------------------------------------------------------------
77 ! [10.0] Pseudo obs observation operator y = H(x):
78 !---------------------------------------------------------------------------
79
80 call da_transform_xtoy_pseudo_adj (iv, xp, jo_grad_y, jo_grad_x)
81
82 !---------------------------------------------------------------------------
83 ! [11.0] Satem observation operator y = H(x):
84 !---------------------------------------------------------------------------
85
86 call da_transform_xtoy_satem_adj (iv, xp, jo_grad_y, jo_grad_x, xb)
87
88 !---------------------------------------------------------------------------
89 ! [12.0] SSM/T1 observation operator y = H(x):
90 !---------------------------------------------------------------------------
91
92 call da_transform_xtoy_ssmt1_adj (iv, xp, jo_grad_y, jo_grad_x)
93
94 !---------------------------------------------------------------------------
95 ! [13.0] SSM/T2 observation operator y = H(x):
96 !---------------------------------------------------------------------------
97
98 call da_transform_xtoy_ssmt2_adj (iv, xp, jo_grad_y, jo_grad_x)
99
100 !---------------------------------------------------------------------------
101 ! [14.0] Scatterometer observation operator y = H(x):
102 !---------------------------------------------------------------------------
103
104 call da_transform_xtoy_qscat_adj (iv, xp, jo_grad_y, jo_grad_x)
105
106 !---------------------------------------------------------------------------
107 ! [15.0] Scatterometer observation operator y = H(x):
108 !---------------------------------------------------------------------------
109
110 call da_transform_xtoy_profiler_adj (iv, xp, jo_grad_y, jo_grad_x)
111
112 !---------------------------------------------------------------------------
113 ! [16.0] Scatterometer observation operator y = H(x):
114 !---------------------------------------------------------------------------
115
116 call da_transform_xtoy_buoy_adj (xb, iv, xp, jo_grad_y, jo_grad_x)
117
118 !---------------------------------------------------------------------------
119 ! [17.0] GPS Refractivity observation operator y = H(x):
120 !---------------------------------------------------------------------------
121
122 call da_transform_xtoy_gpsref_adj(iv, xp, jo_grad_y, jo_grad_x)
123
124 !---------------------------------------------------------------------------
125 ! [18.0] Radar observation operator y = H(x):
126 !---------------------------------------------------------------------------
127
128 call da_transform_xtoy_radar_adj (xb, iv, xp, jo_grad_y, jo_grad_x)
129
130 !---------------------------------------------------------------------------
131 ! [19.0] TC bogus observation operator y = H(x):
132 !---------------------------------------------------------------------------
133
134 call da_transform_xtoy_bogus_adj (xb, iv, xp, jo_grad_y, jo_grad_x)
135
136 !---------------------------------------------------------------------------
137 ! [20.0] Radiance observation operator y = H(x):
138 !---------------------------------------------------------------------------
139
140 if (use_rad) then
141 if (rtm_option == rtm_option_rttov) then
142 call da_transform_xtoy_rttov_adj (iv, xp, jo_grad_y, jo_grad_x)
143 elseif (rtm_option == rtm_option_crtm) then
144 #ifdef CRTM
145 !if (use_crtm_kmatrix) then
146 ! call da_transform_xtoy_crtmk_adj (iv, xp, jo_grad_y, jo_grad_x)
147 !else if (use_crtm_kmatrix_fast) then
148 ! call da_transform_xtoy_crtmk_f_adj (iv, xp, jo_grad_y, jo_grad_x)
149 !else
150 call da_transform_xtoy_crtm_adj (iv, xp, jo_grad_y, jo_grad_x)
151 !end if
152 #endif
153 else
154 call da_warning(__FILE__,__LINE__,(/"Unknown radiative transfer model"/))
155 endif
156 end if
157
158 !---------------------------------------------------------------------------
159 ! [21.0] AIRS retrievals adjoint observation operator y = H(x):
160 !---------------------------------------------------------------------------
161
162 call da_transform_xtoy_airsr_adj (iv, xp, jo_grad_y, jo_grad_x)
163
164 if (trace_use) call da_trace_exit("da_transform_xtoy_adj")
165
166 end subroutine da_transform_xtoy_adj
167
168