Merge remote-tracking branch 'origin/release-v4.5.2'
[WRF.git] / var / da / da_obs / da_set_obs_missing.inc
blob21e72534576b9fe4b32727af84d869f9e0ef2cf9
1 subroutine da_set_obs_missing (iv, n)
3    !-----------------------------------------------------------------------
4    ! Purpose: TBD
5    !-----------------------------------------------------------------------
7    implicit none
9    type(iv_type), intent(inout) :: iv
10    integer,       intent(in)    :: n    ! obs index
12    integer :: i, k
14    if (trace_use) call da_trace_entry("da_set_obs_missing")
16    do i = 1, iv%info(n)%nlocal
17       if ( iv%info(n)%thinned(1,i) ) then
18          iv%info(n)%slp(i) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
19          iv%info(n)%pw(i)  = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
20       end if
21    end do
23    select case (n)
24    case (sound)
25       do i = 1, iv%info(n)%nlocal
26          if ( iv%info(n)%thinned(1,i) ) then
27             iv%sound(i)%h(:) = missing_r
28             iv%sound(i)%p(:) = missing_r
29             iv%sound(i)%u(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
30             iv%sound(i)%v(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
31             iv%sound(i)%t(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
32             iv%sound(i)%q(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
33          end if
34       end do
35    case (synop)
36       do i = 1, iv%info(n)%nlocal
37          if ( iv%info(n)%thinned(1,i) ) then
38             iv%synop(i)%h = missing_r
39             iv%synop(i)%u = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
40             iv%synop(i)%v = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
41             iv%synop(i)%t = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
42             iv%synop(i)%p = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
43             iv%synop(i)%q = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
44          end if
45       end do
46    case (pilot)
47       do i = 1, iv%info(n)%nlocal
48          if ( iv%info(n)%thinned(1,i) ) then
49             iv%pilot(i)%h(:) = missing_r
50             iv%pilot(i)%p(:) = missing_r
51             iv%pilot(i)%u(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
52             iv%pilot(i)%v(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
53          end if
54       end do
55    case(satem)
56       do i = 1, iv%info(n)%nlocal
57          if ( iv%info(n)%thinned(1,i) ) then
58             iv%satem(i)%ref_p        = missing_r
59             iv%satem(i)%p(:)         = missing_r
60             iv%satem(i)%thickness(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
61          end if
62       end do
63    case(geoamv)
64       do i = 1, iv%info(n)%nlocal
65          if ( iv%info(n)%thinned(1,i) ) then
66             iv%geoamv(i)%p(:) = missing_r
67             iv%geoamv(i)%u(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
68             iv%geoamv(i)%v(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
69          end if
70       end do
71    case(polaramv)
72       do i = 1, iv%info(n)%nlocal
73          if ( iv%info(n)%thinned(1,i) ) then
74             iv%polaramv(i)%p(:) = missing_r
75             iv%polaramv(i)%u(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
76             iv%polaramv(i)%v(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
77          end if
78       end do
79    case(airep)
80       do i = 1, iv%info(n)%nlocal
81          if ( iv%info(n)%thinned(1,i) ) then
82             iv%airep(i)%h(:) = missing_r
83             iv%airep(i)%p(:) = missing_r
84             iv%airep(i)%u(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
85             iv%airep(i)%v(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
86             iv%airep(i)%t(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
87             iv%airep(i)%q(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
88          end if
89       end do
90    case(gpspw)
91       do i = 1, iv%info(n)%nlocal
92          if ( iv%info(n)%thinned(1,i) ) then
93             iv%gpspw(i)%tpw = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
94          end if
95       end do
96    case(gpsref)
97       do i = 1, iv%info(n)%nlocal
98          if ( iv%info(n)%thinned(1,i) ) then
99             iv%gpsref(i)%h(:)   = missing_r
100             iv%gpsref(i)%ref(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
101             iv%gpsref(i)%p(:)   = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
102             iv%gpsref(i)%t(:)   = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
103             iv%gpsref(i)%q(:)   = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
104          end if
105       end do
106    case(gpseph)
107       do i = 1, iv%info(n)%nlocal
108          if ( iv%info(n)%thinned(1,i) ) then
109             iv%gpseph(i)%h(:)   = missing_r
110             iv%gpseph(i)%eph(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
111             iv%gpseph(i)%ref(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
112             iv%gpseph(i)%azim(:)= missing_r
113             iv%gpseph(i)%lat(:) = missing_r
114             iv%gpseph(i)%lon(:) = missing_r
115          end if
116       end do
117    case(metar)
118       do i = 1, iv%info(n)%nlocal
119          if ( iv%info(n)%thinned(1,i) ) then
120             iv%metar(i)%h = missing_r
121             iv%metar(i)%u = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
122             iv%metar(i)%v = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
123             iv%metar(i)%t = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
124             iv%metar(i)%p = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
125             iv%metar(i)%q = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
126          end if
127       end do
128    case(ships)
129       do i = 1, iv%info(n)%nlocal
130          if ( iv%info(n)%thinned(1,i) ) then
131             iv%ships(i)%h = missing_r
132             iv%ships(i)%u = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
133             iv%ships(i)%v = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
134             iv%ships(i)%t = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
135             iv%ships(i)%p = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
136             iv%ships(i)%q = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
137          end if
138       end do
139    case(ssmi_rv)
140       do i = 1, iv%info(n)%nlocal
141          if ( iv%info(n)%thinned(1,i) ) then
142             iv%ssmi_rv(i)%speed = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
143             iv%ssmi_rv(i)%tpw   = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
144          end if
145       end do
146    case(qscat)
147       do i = 1, iv%info(n)%nlocal
148          if ( iv%info(n)%thinned(1,i) ) then
149             iv%qscat(i)%h = missing_r
150             iv%qscat(i)%u = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
151             iv%qscat(i)%v = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
152          end if
153       end do
154    case(profiler)
155       do i = 1, iv%info(n)%nlocal
156          if ( iv%info(n)%thinned(1,i) ) then
157             iv%profiler(i)%h(:) = missing_r
158             iv%profiler(i)%p(:) = missing_r
159             iv%profiler(i)%u(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
160             iv%profiler(i)%v(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
161          end if
162       end do
163    case(buoy)
164       do i = 1, iv%info(n)%nlocal
165          if ( iv%info(n)%thinned(1,i) ) then
166             iv%buoy(i)%h = missing_r
167             iv%buoy(i)%u = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
168             iv%buoy(i)%v = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
169             iv%buoy(i)%t = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
170             iv%buoy(i)%p = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
171             iv%buoy(i)%q = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
172          end if
173       end do
174    case(bogus)
175       do i = 1, iv%info(n)%nlocal
176          if ( iv%info(n)%thinned(1,i) ) then
177             iv%bogus(i)%h(:) = missing_r
178             iv%bogus(i)%p(:) = missing_r
179             iv%bogus(i)%u(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
180             iv%bogus(i)%v(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
181             iv%bogus(i)%t(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
182             iv%bogus(i)%q(:) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
183             iv%bogus(i)%slp  = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
184          end if
185       end do
186    case(sonde_sfc)
187       do i = 1, iv%info(n)%nlocal
188          if ( iv%info(n)%thinned(1,i) ) then
189             iv%sonde_sfc(i)%h = missing_r
190             iv%sonde_sfc(i)%u = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
191             iv%sonde_sfc(i)%v = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
192             iv%sonde_sfc(i)%t = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
193             iv%sonde_sfc(i)%p = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
194             iv%sonde_sfc(i)%q = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
195          end if
196       end do
197    case(rain)
198       do i = 1, iv%info(n)%nlocal
199          if ( iv%info(n)%thinned(1,i) ) then
200             iv%rain(i)%rain = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
201          end if
202       end do
203    case default
204       if (trace_use) call da_trace_exit("da_set_obs_missing")
205       return
206    end select
208    if (trace_use) call da_trace_exit("da_set_obs_missing")
210 end subroutine da_set_obs_missing