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
|
! { dg-do run }
integer :: a(3), h, ia(1)
integer, allocatable :: c(:)
logical :: l
logical :: l2(3)
h = -huge(h)
h = h - 1
allocate (c(3))
a(:) = 5
ia = minloc (a)
if (ia(1).ne.1) STOP 1
a(2) = h
ia = minloc (a)
if (ia(1).ne.2) STOP 2
a(:) = huge(h)
ia = minloc (a)
if (ia(1).ne.1) STOP 3
a(3) = huge(h) - 1
ia = minloc (a)
if (ia(1).ne.3) STOP 4
c(:) = 5
ia = minloc (c)
if (ia(1).ne.1) STOP 5
c(2) = h
ia = minloc (c)
if (ia(1).ne.2) STOP 6
c(:) = huge(h)
ia = minloc (c)
if (ia(1).ne.1) STOP 7
c(3) = huge(h) - 1
ia = minloc (c)
if (ia(1).ne.3) STOP 8
l = .false.
l2(:) = .false.
a(:) = 5
ia = minloc (a, mask = l)
if (ia(1).ne.0) STOP 9
ia = minloc (a, mask = l2)
if (ia(1).ne.0) STOP 10
a(2) = h
ia = minloc (a, mask = l)
if (ia(1).ne.0) STOP 11
ia = minloc (a, mask = l2)
if (ia(1).ne.0) STOP 12
a(:) = huge(h)
ia = minloc (a, mask = l)
if (ia(1).ne.0) STOP 13
ia = minloc (a, mask = l2)
if (ia(1).ne.0) STOP 14
a(3) = huge(h) - 1
ia = minloc (a, mask = l)
if (ia(1).ne.0) STOP 15
ia = minloc (a, mask = l2)
if (ia(1).ne.0) STOP 16
c(:) = 5
ia = minloc (c, mask = l)
if (ia(1).ne.0) STOP 17
ia = minloc (c, mask = l2)
if (ia(1).ne.0) STOP 18
c(2) = h
ia = minloc (c, mask = l)
if (ia(1).ne.0) STOP 19
ia = minloc (c, mask = l2)
if (ia(1).ne.0) STOP 20
c(:) = huge(h)
ia = minloc (c, mask = l)
if (ia(1).ne.0) STOP 21
ia = minloc (c, mask = l2)
if (ia(1).ne.0) STOP 22
c(3) = huge(h) - 1
ia = minloc (c, mask = l)
if (ia(1).ne.0) STOP 23
ia = minloc (c, mask = l2)
if (ia(1).ne.0) STOP 24
l = .true.
l2(:) = .true.
a(:) = 5
ia = minloc (a, mask = l)
if (ia(1).ne.1) STOP 25
ia = minloc (a, mask = l2)
if (ia(1).ne.1) STOP 26
a(2) = h
ia = minloc (a, mask = l)
if (ia(1).ne.2) STOP 27
ia = minloc (a, mask = l2)
if (ia(1).ne.2) STOP 28
a(:) = huge(h)
ia = minloc (a, mask = l)
if (ia(1).ne.1) STOP 29
ia = minloc (a, mask = l2)
if (ia(1).ne.1) STOP 30
a(3) = huge(h) - 1
ia = minloc (a, mask = l)
if (ia(1).ne.3) STOP 31
ia = minloc (a, mask = l2)
if (ia(1).ne.3) STOP 32
c(:) = 5
ia = minloc (c, mask = l)
if (ia(1).ne.1) STOP 33
ia = minloc (c, mask = l2)
if (ia(1).ne.1) STOP 34
c(2) = h
ia = minloc (c, mask = l)
if (ia(1).ne.2) STOP 35
ia = minloc (c, mask = l2)
if (ia(1).ne.2) STOP 36
c(:) = huge(h)
ia = minloc (c, mask = l)
if (ia(1).ne.1) STOP 37
ia = minloc (c, mask = l2)
if (ia(1).ne.1) STOP 38
c(3) = huge(h) - 1
ia = minloc (c, mask = l)
if (ia(1).ne.3) STOP 39
ia = minloc (c, mask = l2)
if (ia(1).ne.3) STOP 40
deallocate (c)
allocate (c(-2:-3))
ia = minloc (c)
if (ia(1).ne.0) STOP 41
end
|