! { dg-do run } ! { dg-add-options ieee } real :: a(3,3), b(3), nan, minf, pinf, h logical :: l, l2 logical :: l3(3,3), l4(3,3), l5(3,3) nan = 0.0 minf = 0.0 pinf = 0.0 nan = 0.0/nan minf = -1.0/minf pinf = 1.0/pinf h = huge(h) l = .false. l2 = .true. l3 = .false. l4 = .true. l5 = .true. l5(1,1) = .false. l5(1,2) = .false. l5(2,3) = .false. a = reshape ((/ nan, nan, nan, pinf, pinf, pinf, pinf, minf, pinf /), (/ 3, 3 /)) if (minval (a).ne.minf) STOP 1 if (any (minloc (a).ne.(/ 2, 3 /))) STOP 2 b = minval (a, dim = 1) if (.not.isnan(b(1))) STOP 3 b(1) = 0.0 if (any (b.ne.(/ 0.0, pinf, minf /))) STOP 4 if (any (minloc (a, dim = 1).ne.(/ 1, 1, 2 /))) STOP 5 b = minval (a, dim = 2) if (any (b.ne.(/ pinf, minf, pinf /))) STOP 6 if (any (minloc (a, dim = 2).ne.(/ 2, 3, 2 /))) STOP 7 if (minval (a, mask = l).ne.h) STOP 8 if (any (minloc (a, mask = l).ne.(/ 0, 0 /))) STOP 9 b = minval (a, dim = 1, mask = l) if (any (b.ne.(/ h, h, h /))) STOP 10 if (any (minloc (a, dim = 1, mask = l).ne.(/ 0, 0, 0 /))) STOP 11 b = minval (a, dim = 2, mask = l) if (any (b.ne.(/ h, h, h /))) STOP 12 if (any (minloc (a, dim = 2, mask = l).ne.(/ 0, 0, 0 /))) STOP 13 if (minval (a, mask = l3).ne.h) STOP 14 if (any (minloc (a, mask = l3).ne.(/ 0, 0 /))) STOP 15 b = minval (a, dim = 1, mask = l3) if (any (b.ne.(/ h, h, h /))) STOP 16 if (any (minloc (a, dim = 1, mask = l3).ne.(/ 0, 0, 0 /))) STOP 17 b = minval (a, dim = 2, mask = l3) if (any (b.ne.(/ h, h, h /))) STOP 18 if (any (minloc (a, dim = 2, mask = l3).ne.(/ 0, 0, 0 /))) STOP 19 if (minval (a, mask = l2).ne.minf) STOP 20 if (minval (a, mask = l4).ne.minf) STOP 21 if (any (minloc (a, mask = l2).ne.(/ 2, 3 /))) STOP 22 if (any (minloc (a, mask = l4).ne.(/ 2, 3 /))) STOP 23 b = minval (a, dim = 1, mask = l2) if (.not.isnan(b(1))) STOP 24 b(1) = 0.0 if (any (b.ne.(/ 0.0, pinf, minf /))) STOP 25 if (any (minloc (a, dim = 1, mask = l2).ne.(/ 1, 1, 2 /))) STOP 26 b = minval (a, dim = 2, mask = l2) if (any (b.ne.(/ pinf, minf, pinf /))) STOP 27 if (any (minloc (a, dim = 2, mask = l2).ne.(/ 2, 3, 2 /))) STOP 28 b = minval (a, dim = 1, mask = l4) if (.not.isnan(b(1))) STOP 29 b(1) = 0.0 if (any (b.ne.(/ 0.0, pinf, minf /))) STOP 30 if (any (minloc (a, dim = 1, mask = l2).ne.(/ 1, 1, 2 /))) STOP 31 b = minval (a, dim = 2, mask = l4) if (any (b.ne.(/ pinf, minf, pinf /))) STOP 32 if (any (minloc (a, dim = 2, mask = l2).ne.(/ 2, 3, 2 /))) STOP 33 if (minval (a, mask = l5).ne.pinf) STOP 34 if (any (minloc (a, mask = l5).ne.(/ 2, 2 /))) STOP 35 b = minval (a, dim = 1, mask = l5) if (.not.isnan(b(1))) STOP 36 b(1) = 0.0 if (any (b.ne.(/ 0.0, pinf, pinf /))) STOP 37 if (any (minloc (a, dim = 1, mask = l5).ne.(/ 2, 2, 1 /))) STOP 38 b = minval (a, dim = 2, mask = l5) if (any (b.ne.(/ pinf, pinf, pinf /))) STOP 39 if (any (minloc (a, dim = 2, mask = l5).ne.(/ 3, 2, 2 /))) STOP 40 a = nan if (.not.isnan(minval (a))) STOP 41 if (minval (a, mask = l).ne.h) STOP 42 if (.not.isnan(minval (a, mask = l2))) STOP 43 if (minval (a, mask = l3).ne.h) STOP 44 if (.not.isnan(minval (a, mask = l4))) STOP 45 if (.not.isnan(minval (a, mask = l5))) STOP 46 if (any (minloc (a).ne.(/ 1, 1 /))) STOP 47 if (any (minloc (a, mask = l).ne.(/ 0, 0 /))) STOP 48 if (any (minloc (a, mask = l2).ne.(/ 1, 1 /))) STOP 49 if (any (minloc (a, mask = l3).ne.(/ 0, 0 /))) STOP 50 if (any (minloc (a, mask = l4).ne.(/ 1, 1 /))) STOP 51 if (any (minloc (a, mask = l5).ne.(/ 2, 1 /))) STOP 52 a = pinf if (minval (a).ne.pinf) STOP 53 if (minval (a, mask = l).ne.h) STOP 54 if (minval (a, mask = l2).ne.pinf) STOP 55 if (minval (a, mask = l3).ne.h) STOP 56 if (minval (a, mask = l4).ne.pinf) STOP 57 if (minval (a, mask = l5).ne.pinf) STOP 58 if (any (minloc (a).ne.(/ 1, 1 /))) STOP 59 if (any (minloc (a, mask = l).ne.(/ 0, 0 /))) STOP 60 if (any (minloc (a, mask = l2).ne.(/ 1, 1 /))) STOP 61 if (any (minloc (a, mask = l3).ne.(/ 0, 0 /))) STOP 62 if (any (minloc (a, mask = l4).ne.(/ 1, 1 /))) STOP 63 if (any (minloc (a, mask = l5).ne.(/ 2, 1 /))) STOP 64 a = nan a(1,3) = pinf if (minval (a).ne.pinf) STOP 65 if (minval (a, mask = l).ne.h) STOP 66 if (minval (a, mask = l2).ne.pinf) STOP 67 if (minval (a, mask = l3).ne.h) STOP 68 if (minval (a, mask = l4).ne.pinf) STOP 69 if (minval (a, mask = l5).ne.pinf) STOP 70 if (any (minloc (a).ne.(/ 1, 3 /))) STOP 71 if (any (minloc (a, mask = l).ne.(/ 0, 0 /))) STOP 72 if (any (minloc (a, mask = l2).ne.(/ 1, 3 /))) STOP 73 if (any (minloc (a, mask = l3).ne.(/ 0, 0 /))) STOP 74 if (any (minloc (a, mask = l4).ne.(/ 1, 3 /))) STOP 75 if (any (minloc (a, mask = l5).ne.(/ 1, 3 /))) STOP 76 end