1 subroutine da_obs_missing (obs, miss)
3 !-----------------------------------------------------------------------
5 !-----------------------------------------------------------------------
9 type(multi_level_type), intent(inout) :: obs
10 logical, intent(out) :: miss
14 if (trace_use_frequent) call da_trace_entry("da_obs_missing")
19 if (abs(obs % loc % pw % inv - missing_r) > 1.0) then
22 if (obs % loc % pw % qc /= missing_data) &
23 obs % loc % pw % qc = missing_data
27 if (abs(obs % loc % slp % inv - missing_r) > 1.0) then
30 if (obs % loc % slp % qc /= missing_data) &
31 obs % loc % slp % qc = missing_data
34 do i = 1, obs % info % levels
36 if (abs(obs % each(i) % u % inv - missing_r) > 1.0) then
39 if (obs % each(i) % u % qc /= missing_data) &
40 obs % each(i) % u % qc = missing_data
44 if (abs(obs % each(i) % v % inv - missing_r) > 1.0) then
47 if (obs % each(i) % v % qc /= missing_data) &
48 obs % each(i) % v % qc = missing_data
52 if (abs(obs % each(i) % p % inv - missing_r) > 1.0) then
55 if (obs % each(i) % p % qc /= missing_data) &
56 obs % each(i) % p % qc = missing_data
60 if (abs(obs % each(i) % t % inv - missing_r) > 1.0) then
63 if (obs % each(i) % t % qc /= missing_data) &
64 obs % each(i) % t % qc = missing_data
68 if (abs(obs % each(i) % q % inv - missing_r) > 1.0) then
71 if (obs % each(i) % q % qc /= missing_data) &
72 obs % each(i) % q % qc = missing_data
76 if (abs(obs % each(i) % rh % inv - missing_r) > 1.0) then
79 if (obs % each(i) % rh % qc /= missing_data) &
80 obs % each(i) % rh % qc = missing_data
84 if (abs(obs % each(i) % td % inv - missing_r) > 1.0) then
87 if (obs % each(i) % td % qc /= missing_data) &
88 obs % each(i) % td % qc = missing_data
92 if (abs(obs % each(i) % speed % inv - missing_r) > 1.0) then
95 if (obs % each(i) % speed % qc /= missing_data) &
96 obs % each(i) % speed % qc = missing_data
100 if (trace_use_frequent) call da_trace_exit("da_obs_missing")
102 end subroutine da_obs_missing