da_obs_missing.inc
References to this file elsewhere.
1 subroutine da_obs_missing (obs, miss)
2
3 !-----------------------------------------------------------------------
4 ! Purpose: TBD
5 !-----------------------------------------------------------------------
6
7 implicit none
8
9 type(multi_level_type), intent(inout) :: obs
10 logical, intent(out) :: miss
11
12 integer :: i
13
14 miss = .true.
15
16 ! PW:
17 if (abs(obs % loc % pw % inv - missing_r) > 1.0) then
18 miss = .false.
19 else
20 if (obs % loc % pw % qc /= missing_data) &
21 obs % loc % pw % qc = missing_data
22 end if
23
24 ! SLP:
25 if (abs(obs % loc % slp % inv - missing_r) > 1.0) then
26 miss = .false.
27 else
28 if (obs % loc % slp % qc /= missing_data) &
29 obs % loc % slp % qc = missing_data
30 end if
31
32 do i = 1, obs % info % levels
33 ! U:
34 if (abs(obs % each(i) % u % inv - missing_r) > 1.0) then
35 miss = .false.
36 else
37 if (obs % each(i) % u % qc /= missing_data) &
38 obs % each(i) % u % qc = missing_data
39 end if
40
41 ! V:
42 if (abs(obs % each(i) % v % inv - missing_r) > 1.0) then
43 miss = .false.
44 else
45 if (obs % each(i) % v % qc /= missing_data) &
46 obs % each(i) % v % qc = missing_data
47 end if
48
49 ! P:
50 if (abs(obs % each(i) % p % inv - missing_r) > 1.0) then
51 miss = .false.
52 else
53 if (obs % each(i) % p % qc /= missing_data) &
54 obs % each(i) % p % qc = missing_data
55 end if
56
57 ! T:
58 if (abs(obs % each(i) % t % inv - missing_r) > 1.0) then
59 miss = .false.
60 else
61 if (obs % each(i) % t % qc /= missing_data) &
62 obs % each(i) % t % qc = missing_data
63 end if
64
65 ! Q:
66 if (abs(obs % each(i) % q % inv - missing_r) > 1.0) then
67 miss = .false.
68 else
69 if (obs % each(i) % q % qc /= missing_data) &
70 obs % each(i) % q % qc = missing_data
71 end if
72
73 ! RH:
74 if (abs(obs % each(i) % rh % inv - missing_r) > 1.0) then
75 miss = .false.
76 else
77 if (obs % each(i) % rh % qc /= missing_data) &
78 obs % each(i) % rh % qc = missing_data
79 end if
80
81 ! TD:
82 if (abs(obs % each(i) % td % inv - missing_r) > 1.0) then
83 miss = .false.
84 else
85 if (obs % each(i) % td % qc /= missing_data) &
86 obs % each(i) % td % qc = missing_data
87 end if
88
89 ! SPEED:
90 if (abs(obs % each(i) % speed % inv - missing_r) > 1.0) then
91 miss = .false.
92 else
93 if (obs % each(i) % speed % qc /= missing_data) &
94 obs % each(i) % speed % qc = missing_data
95 end if
96 end do
97
98 end subroutine da_obs_missing
99
100