da_transform_xtoy_adj.inc
References to this file elsewhere.
1 subroutine da_transform_xtoy_adj(grid, iv, jo_grad_y, jo_grad_x)
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. inc vector (o-b).
11 type (y_type), intent(inout) :: jo_grad_y ! grad_y(jo)
12 type (x_type), intent(inout) :: jo_grad_x ! grad_x(jo)
13
14 if (trace_use) call da_trace_entry("da_transform_xtoy_adj")
15
16 !--------------------------------------------------------------------------
17 ! [1.0] observation operator y = H(x):
18 !--------------------------------------------------------------------------
19
20 if (iv%info(sound)%nlocal > 0) then
21 call da_transform_xtoy_sound_adj (iv, jo_grad_y, jo_grad_x)
22 call da_transform_xtoy_sonde_sfc_adj (grid, iv, jo_grad_y, jo_grad_x)
23 end if
24
25 if (iv%info(synop)%nlocal > 0) call da_transform_xtoy_synop_adj (grid, iv, jo_grad_y, jo_grad_x)
26 if (iv%info(geoamv)%nlocal > 0) call da_transform_xtoy_geoamv_adj (iv, jo_grad_y, jo_grad_x)
27 if (iv%info(polaramv)%nlocal > 0) call da_transform_xtoy_polaramv_adj (iv, jo_grad_y, jo_grad_x)
28 if (iv%info(airep)%nlocal > 0) call da_transform_xtoy_airep_adj (iv, jo_grad_y, jo_grad_x)
29 if (iv%info(metar)%nlocal > 0) call da_transform_xtoy_metar_adj (grid, iv, jo_grad_y, jo_grad_x)
30 if (iv%info(ships)%nlocal > 0) call da_transform_xtoy_ships_adj (grid, iv, jo_grad_y, jo_grad_x)
31 if (iv%info(gpspw)%nlocal > 0) call da_transform_xtoy_gpspw_adj (grid, iv, jo_grad_y, jo_grad_x)
32 if (iv%info(gpsref)%nlocal > 0) call da_transform_xtoy_gpsref_adj (iv, jo_grad_y, jo_grad_x)
33 if (iv%info(ssmi_tb)%nlocal > 0) call da_transform_xtoy_ssmi_tb_adj (grid, iv, jo_grad_y, jo_grad_x)
34 if (iv%info(ssmi_rv)%nlocal > 0) call da_transform_xtoy_ssmi_rv_adj (grid, iv, jo_grad_y, jo_grad_x)
35 if (iv%info(pilot)%nlocal > 0) call da_transform_xtoy_pilot_adj (iv, jo_grad_y, jo_grad_x)
36 if (iv%info(satem)%nlocal > 0) call da_transform_xtoy_satem_adj (grid, iv, jo_grad_y, jo_grad_x)
37 if (iv%info(ssmt1)%nlocal > 0) call da_transform_xtoy_ssmt1_adj (iv, jo_grad_y, jo_grad_x)
38 if (iv%info(ssmt2)%nlocal > 0) call da_transform_xtoy_ssmt2_adj (iv, jo_grad_y, jo_grad_x)
39 if (iv%info(qscat)%nlocal > 0) call da_transform_xtoy_qscat_adj (iv, jo_grad_y, jo_grad_x)
40 if (iv%info(profiler)%nlocal > 0) call da_transform_xtoy_profiler_adj (iv, jo_grad_y, jo_grad_x)
41 if (iv%info(buoy)%nlocal > 0) call da_transform_xtoy_buoy_adj (grid, iv, jo_grad_y, jo_grad_x)
42 if (iv%info(gpsref)%nlocal > 0) call da_transform_xtoy_gpsref_adj (iv, jo_grad_y, jo_grad_x)
43 if (iv%info(radar)%nlocal > 0) call da_transform_xtoy_radar_adj (grid, iv, jo_grad_y, jo_grad_x)
44 if (iv%info(bogus)%nlocal > 0) call da_transform_xtoy_bogus_adj (grid, iv, jo_grad_y, jo_grad_x)
45 if (iv%info(airsr)%nlocal > 0) call da_transform_xtoy_airsr_adj (iv, jo_grad_y, jo_grad_x)
46
47 if (num_pseudo > 0) call da_transform_xtoy_pseudo_adj (iv, jo_grad_y, jo_grad_x)
48
49 if (use_rad) then
50 if (rtm_option == rtm_option_rttov) then
51 call da_transform_xtoy_rttov_adj (iv, jo_grad_y, jo_grad_x)
52 elseif (rtm_option == rtm_option_crtm) then
53 #ifdef CRTM
54 !if (use_crtm_kmatrix) then
55 ! call da_transform_xtoy_crtmk_adj (iv, jo_grad_y, jo_grad_x)
56 !else if (use_crtm_kmatrix_fast) then
57 ! call da_transform_xtoy_crtmk_f_adj (iv, jo_grad_y, jo_grad_x)
58 !else
59 call da_transform_xtoy_crtm_adj (iv, jo_grad_y, jo_grad_x)
60 !end if
61 #endif
62 else
63 call da_warning(__FILE__,__LINE__,(/"Unknown radiative transfer model"/))
64 end if
65 end if
66
67 if (trace_use) call da_trace_exit("da_transform_xtoy_adj")
68
69 end subroutine da_transform_xtoy_adj
70
71