1! { dg-do run } 2 integer :: a(3), h, ia(1) 3 integer, allocatable :: c(:) 4 logical :: l 5 logical :: l2(3) 6 7 h = -huge(h) 8 h = h - 1 9 allocate (c(3)) 10 a(:) = 5 11 ia = maxloc (a) 12 if (ia(1).ne.1) STOP 1 13 a(2) = huge(h) 14 ia = maxloc (a) 15 if (ia(1).ne.2) STOP 2 16 a(:) = h 17 ia = maxloc (a) 18 if (ia(1).ne.1) STOP 3 19 a(3) = -huge(h) 20 ia = maxloc (a) 21 if (ia(1).ne.3) STOP 4 22 c(:) = 5 23 ia = maxloc (c) 24 if (ia(1).ne.1) STOP 5 25 c(2) = huge(h) 26 ia = maxloc (c) 27 if (ia(1).ne.2) STOP 6 28 c(:) = h 29 ia = maxloc (c) 30 if (ia(1).ne.1) STOP 7 31 c(3) = -huge(h) 32 ia = maxloc (c) 33 if (ia(1).ne.3) STOP 8 34 l = .false. 35 l2(:) = .false. 36 a(:) = 5 37 ia = maxloc (a, mask = l) 38 if (ia(1).ne.0) STOP 9 39 ia = maxloc (a, mask = l2) 40 if (ia(1).ne.0) STOP 10 41 a(2) = huge(h) 42 ia = maxloc (a, mask = l) 43 if (ia(1).ne.0) STOP 11 44 ia = maxloc (a, mask = l2) 45 if (ia(1).ne.0) STOP 12 46 a(:) = h 47 ia = maxloc (a, mask = l) 48 if (ia(1).ne.0) STOP 13 49 ia = maxloc (a, mask = l2) 50 if (ia(1).ne.0) STOP 14 51 a(3) = -huge(h) 52 ia = maxloc (a, mask = l) 53 if (ia(1).ne.0) STOP 15 54 ia = maxloc (a, mask = l2) 55 if (ia(1).ne.0) STOP 16 56 c(:) = 5 57 ia = maxloc (c, mask = l) 58 if (ia(1).ne.0) STOP 17 59 ia = maxloc (c, mask = l2) 60 if (ia(1).ne.0) STOP 18 61 c(2) = huge(h) 62 ia = maxloc (c, mask = l) 63 if (ia(1).ne.0) STOP 19 64 ia = maxloc (c, mask = l2) 65 if (ia(1).ne.0) STOP 20 66 c(:) = h 67 ia = maxloc (c, mask = l) 68 if (ia(1).ne.0) STOP 21 69 ia = maxloc (c, mask = l2) 70 if (ia(1).ne.0) STOP 22 71 c(3) = -huge(h) 72 ia = maxloc (c, mask = l) 73 if (ia(1).ne.0) STOP 23 74 ia = maxloc (c, mask = l2) 75 if (ia(1).ne.0) STOP 24 76 l = .true. 77 l2(:) = .true. 78 a(:) = 5 79 ia = maxloc (a, mask = l) 80 if (ia(1).ne.1) STOP 25 81 ia = maxloc (a, mask = l2) 82 if (ia(1).ne.1) STOP 26 83 a(2) = huge(h) 84 ia = maxloc (a, mask = l) 85 if (ia(1).ne.2) STOP 27 86 ia = maxloc (a, mask = l2) 87 if (ia(1).ne.2) STOP 28 88 a(:) = h 89 ia = maxloc (a, mask = l) 90 if (ia(1).ne.1) STOP 29 91 ia = maxloc (a, mask = l2) 92 if (ia(1).ne.1) STOP 30 93 a(3) = -huge(h) 94 ia = maxloc (a, mask = l) 95 if (ia(1).ne.3) STOP 31 96 ia = maxloc (a, mask = l2) 97 if (ia(1).ne.3) STOP 32 98 c(:) = 5 99 ia = maxloc (c, mask = l) 100 if (ia(1).ne.1) STOP 33 101 ia = maxloc (c, mask = l2) 102 if (ia(1).ne.1) STOP 34 103 c(2) = huge(h) 104 ia = maxloc (c, mask = l) 105 if (ia(1).ne.2) STOP 35 106 ia = maxloc (c, mask = l2) 107 if (ia(1).ne.2) STOP 36 108 c(:) = h 109 ia = maxloc (c, mask = l) 110 if (ia(1).ne.1) STOP 37 111 ia = maxloc (c, mask = l2) 112 if (ia(1).ne.1) STOP 38 113 c(3) = -huge(h) 114 ia = maxloc (c, mask = l) 115 if (ia(1).ne.3) STOP 39 116 ia = maxloc (c, mask = l2) 117 if (ia(1).ne.3) STOP 40 118 deallocate (c) 119 allocate (c(-2:-3)) 120 ia = maxloc (c) 121 if (ia(1).ne.0) STOP 41 122end 123