da_get_y_lhs_value.inc
References to this file elsewhere.
1 subroutine da_get_y_lhs_value( iv, y, &
2 partial_lhs, pertile_lhs, adj_ttl_lhs)
3
4 !-----------------------------------------------------------------------
5 ! Purpose: TBD
6 !-----------------------------------------------------------------------
7
8 implicit none
9
10 type(ob_type), intent(in) :: iv ! ob. increment vector.
11 type(y_type), intent(inout) :: y ! y = h(xa)
12
13 real, intent(out) :: partial_lhs, pertile_lhs, adj_ttl_lhs
14
15 partial_lhs = 0.0
16 pertile_lhs = 0.0
17
18 if (use_soundobs) then
19 call da_check_xtoy_adjoint_sound( iv, y, partial_lhs, pertile_lhs)
20 call da_check_xtoy_adjoint_sonde_sfc( iv, y, partial_lhs, pertile_lhs)
21 end if
22
23 if (use_synopobs) &
24 call da_check_xtoy_adjoint_synop( iv, y, partial_lhs, pertile_lhs)
25
26 if (use_geoamvobs) &
27 call da_check_xtoy_adjoint_geoamv( iv, y, partial_lhs, pertile_lhs)
28
29 if (use_polaramvobs) &
30 call da_check_xtoy_adjoint_polaramv( iv, y, partial_lhs, pertile_lhs)
31
32 if (use_airepobs) &
33 call da_check_xtoy_adjoint_airep( iv, y, partial_lhs, pertile_lhs)
34
35 if (use_pilotobs) &
36 call da_check_xtoy_adjoint_pilot( iv, y, partial_lhs, pertile_lhs)
37
38 if (use_radarobs) &
39 call da_check_xtoy_adjoint_radar( iv, y, partial_lhs, pertile_lhs)
40
41 if (use_satemobs) &
42 call da_check_xtoy_adjoint_satem( iv, y, partial_lhs, pertile_lhs)
43
44 if (use_metarobs) &
45 call da_check_xtoy_adjoint_metar( iv, y, partial_lhs, pertile_lhs)
46
47 if (use_shipsobs) &
48 call da_check_xtoy_adjoint_ships( iv, y, partial_lhs, pertile_lhs)
49
50 if (use_gpspwobs) &
51 call da_check_xtoy_adjoint_gpspw( iv, y, partial_lhs, pertile_lhs)
52
53 if (use_gpsrefobs) &
54 call da_check_xtoy_adjoint_gpsref( iv, y, partial_lhs, pertile_lhs)
55
56 if (use_ssmitbobs .or. use_ssmiretrievalobs) &
57 call da_check_xtoy_adjoint_ssmi( iv, y, partial_lhs, pertile_lhs)
58
59 if (use_ssmt1obs) &
60 call da_check_xtoy_adjoint_ssmt1( iv, y, partial_lhs, pertile_lhs)
61
62 if (use_ssmt2obs) &
63 call da_check_xtoy_adjoint_ssmt2( iv, y, partial_lhs, pertile_lhs)
64
65 if (use_qscatobs) &
66 call da_check_xtoy_adjoint_qscat( iv, y, partial_lhs, pertile_lhs)
67
68 if (use_profilerobs) &
69 call da_check_xtoy_adjoint_profiler( iv, y, partial_lhs, pertile_lhs)
70
71 if (use_buoyobs) &
72 call da_check_xtoy_adjoint_buoy( iv, y, partial_lhs, pertile_lhs)
73
74 if (use_bogusobs) &
75 call da_check_xtoy_adjoint_bogus( iv, y, partial_lhs, pertile_lhs)
76
77 ! JRB consider using dm_sum_real
78 #ifdef DM_PARALLEL
79 call mpi_allreduce( partial_lhs, adj_ttl_lhs, 1, true_mpi_real, mpi_sum, &
80 comm, ierr)
81 #else
82 adj_ttl_lhs = partial_lhs
83 #endif
84
85 end subroutine da_get_y_lhs_value
86
87