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