111
|
1 ! { dg-do run }
|
|
2 ! { dg-add-options ieee }
|
|
3 ! { dg-skip-if "NaN not supported" { spu-*-* } }
|
|
4 real :: a(3), nan, minf, pinf
|
|
5 integer :: ia(1)
|
|
6 real, allocatable :: c(:)
|
|
7 logical :: l
|
|
8 logical :: l2(3)
|
|
9
|
|
10 nan = 0.0
|
|
11 minf = 0.0
|
|
12 pinf = 0.0
|
|
13 nan = 0.0/nan
|
|
14 minf = -1.0/minf
|
|
15 pinf = 1.0/pinf
|
|
16
|
|
17 allocate (c(3))
|
|
18 a(:) = nan
|
|
19 ia = minloc (a)
|
131
|
20 if (ia(1).ne.1) STOP 1
|
111
|
21 a(:) = pinf
|
|
22 ia = minloc (a)
|
131
|
23 if (ia(1).ne.1) STOP 2
|
111
|
24 a(1:2) = nan
|
|
25 ia = minloc (a)
|
131
|
26 if (ia(1).ne.3) STOP 3
|
111
|
27 a(2) = 1.0
|
|
28 ia = minloc (a)
|
131
|
29 if (ia(1).ne.2) STOP 4
|
111
|
30 a(2) = minf
|
|
31 ia = minloc (a)
|
131
|
32 if (ia(1).ne.2) STOP 5
|
111
|
33 c(:) = nan
|
|
34 ia = minloc (c)
|
131
|
35 if (ia(1).ne.1) STOP 6
|
111
|
36 c(:) = pinf
|
|
37 ia = minloc (c)
|
131
|
38 if (ia(1).ne.1) STOP 7
|
111
|
39 c(1:2) = nan
|
|
40 ia = minloc (c)
|
131
|
41 if (ia(1).ne.3) STOP 8
|
111
|
42 c(2) = 1.0
|
|
43 ia = minloc (c)
|
131
|
44 if (ia(1).ne.2) STOP 9
|
111
|
45 c(2) = minf
|
|
46 ia = minloc (c)
|
131
|
47 if (ia(1).ne.2) STOP 10
|
111
|
48 l = .false.
|
|
49 l2(:) = .false.
|
|
50 a(:) = nan
|
|
51 ia = minloc (a, mask = l)
|
131
|
52 if (ia(1).ne.0) STOP 11
|
111
|
53 ia = minloc (a, mask = l2)
|
131
|
54 if (ia(1).ne.0) STOP 12
|
111
|
55 a(:) = pinf
|
|
56 ia = minloc (a, mask = l)
|
131
|
57 if (ia(1).ne.0) STOP 13
|
111
|
58 ia = minloc (a, mask = l2)
|
131
|
59 if (ia(1).ne.0) STOP 14
|
111
|
60 a(1:2) = nan
|
|
61 ia = minloc (a, mask = l)
|
131
|
62 if (ia(1).ne.0) STOP 15
|
111
|
63 ia = minloc (a, mask = l2)
|
131
|
64 if (ia(1).ne.0) STOP 16
|
111
|
65 a(2) = 1.0
|
|
66 ia = minloc (a, mask = l)
|
131
|
67 if (ia(1).ne.0) STOP 17
|
111
|
68 ia = minloc (a, mask = l2)
|
131
|
69 if (ia(1).ne.0) STOP 18
|
111
|
70 a(2) = minf
|
|
71 ia = minloc (a, mask = l)
|
131
|
72 if (ia(1).ne.0) STOP 19
|
111
|
73 ia = minloc (a, mask = l2)
|
131
|
74 if (ia(1).ne.0) STOP 20
|
111
|
75 c(:) = nan
|
|
76 ia = minloc (c, mask = l)
|
131
|
77 if (ia(1).ne.0) STOP 21
|
111
|
78 ia = minloc (c, mask = l2)
|
131
|
79 if (ia(1).ne.0) STOP 22
|
111
|
80 c(:) = pinf
|
|
81 ia = minloc (c, mask = l)
|
131
|
82 if (ia(1).ne.0) STOP 23
|
111
|
83 ia = minloc (c, mask = l2)
|
131
|
84 if (ia(1).ne.0) STOP 24
|
111
|
85 c(1:2) = nan
|
|
86 ia = minloc (c, mask = l)
|
131
|
87 if (ia(1).ne.0) STOP 25
|
111
|
88 ia = minloc (c, mask = l2)
|
131
|
89 if (ia(1).ne.0) STOP 26
|
111
|
90 c(2) = 1.0
|
|
91 ia = minloc (c, mask = l)
|
131
|
92 if (ia(1).ne.0) STOP 27
|
111
|
93 ia = minloc (c, mask = l2)
|
131
|
94 if (ia(1).ne.0) STOP 28
|
111
|
95 c(2) = minf
|
|
96 ia = minloc (c, mask = l)
|
131
|
97 if (ia(1).ne.0) STOP 29
|
111
|
98 ia = minloc (c, mask = l2)
|
131
|
99 if (ia(1).ne.0) STOP 30
|
111
|
100 l = .true.
|
|
101 l2(:) = .true.
|
|
102 a(:) = nan
|
|
103 ia = minloc (a, mask = l)
|
131
|
104 if (ia(1).ne.1) STOP 31
|
111
|
105 ia = minloc (a, mask = l2)
|
131
|
106 if (ia(1).ne.1) STOP 32
|
111
|
107 a(:) = pinf
|
|
108 ia = minloc (a, mask = l)
|
131
|
109 if (ia(1).ne.1) STOP 33
|
111
|
110 ia = minloc (a, mask = l2)
|
131
|
111 if (ia(1).ne.1) STOP 34
|
111
|
112 a(1:2) = nan
|
|
113 ia = minloc (a, mask = l)
|
131
|
114 if (ia(1).ne.3) STOP 35
|
111
|
115 ia = minloc (a, mask = l2)
|
131
|
116 if (ia(1).ne.3) STOP 36
|
111
|
117 a(2) = 1.0
|
|
118 ia = minloc (a, mask = l)
|
131
|
119 if (ia(1).ne.2) STOP 37
|
111
|
120 ia = minloc (a, mask = l2)
|
131
|
121 if (ia(1).ne.2) STOP 38
|
111
|
122 a(2) = minf
|
|
123 ia = minloc (a, mask = l)
|
131
|
124 if (ia(1).ne.2) STOP 39
|
111
|
125 ia = minloc (a, mask = l2)
|
131
|
126 if (ia(1).ne.2) STOP 40
|
111
|
127 c(:) = nan
|
|
128 ia = minloc (c, mask = l)
|
131
|
129 if (ia(1).ne.1) STOP 41
|
111
|
130 ia = minloc (c, mask = l2)
|
131
|
131 if (ia(1).ne.1) STOP 42
|
111
|
132 c(:) = pinf
|
|
133 ia = minloc (c, mask = l)
|
131
|
134 if (ia(1).ne.1) STOP 43
|
111
|
135 ia = minloc (c, mask = l2)
|
131
|
136 if (ia(1).ne.1) STOP 44
|
111
|
137 c(1:2) = nan
|
|
138 ia = minloc (c, mask = l)
|
131
|
139 if (ia(1).ne.3) STOP 45
|
111
|
140 ia = minloc (c, mask = l2)
|
131
|
141 if (ia(1).ne.3) STOP 46
|
111
|
142 c(2) = 1.0
|
|
143 ia = minloc (c, mask = l)
|
131
|
144 if (ia(1).ne.2) STOP 47
|
111
|
145 ia = minloc (c, mask = l2)
|
131
|
146 if (ia(1).ne.2) STOP 48
|
111
|
147 c(2) = minf
|
|
148 ia = minloc (c, mask = l)
|
131
|
149 if (ia(1).ne.2) STOP 49
|
111
|
150 ia = minloc (c, mask = l2)
|
131
|
151 if (ia(1).ne.2) STOP 50
|
111
|
152 deallocate (c)
|
|
153 allocate (c(-2:-3))
|
|
154 ia = minloc (c)
|
131
|
155 if (ia(1).ne.0) STOP 51
|
111
|
156 end
|