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