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