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