1! Program to test the MINVAL and MAXVAL intrinsics 2program testmmval 3 implicit none 4 integer, dimension (3, 3) :: a 5 integer, dimension (3) :: b 6 logical, dimension (3, 3) :: m, tr 7 integer i 8 character (len=9) line 9 10 a = reshape ((/1, 2, 3, 5, 4, 6, 9, 8, 7/), (/3, 3/)); 11 12 tr = .true. 13 14 b = minval (a, 1) 15 if (any(b .ne. (/1, 4, 7/))) call abort 16 write (line, 9000) minval (a, 1) 17 if (line .ne. ' 1 4 7') call abort 18 19 m = .true. 20 m(1, 1) = .false. 21 m(1, 2) = .false. 22 b = minval (a, 1, m) 23 if (any(b .ne. (/2, 4, 7/))) call abort 24 b = minval (a, 1, m .and. tr) 25 if (any(b .ne. (/2, 4, 7/))) call abort 26 write (line, 9000) minval(a, 1, m) 27 if (line .ne. ' 2 4 7') call abort 28 29 b = maxval (a, 1) 30 if (any(b .ne. (/3, 6, 9/))) call abort 31 write (line, 9000) maxval (a, 1) 32 if (line .ne. ' 3 6 9') call abort 33 34 m = .true. 35 m(1, 2) = .false. 36 m(1, 3) = .false. 37 b = maxval (a, 1, m) 38 if (any(b .ne. (/3, 6, 8/))) call abort 39 b = maxval (a, 1, m .and. tr) 40 if (any(b .ne. (/3, 6, 8/))) call abort 41 write (line, 9000) maxval(a, 1, m) 42 if (line .ne. ' 3 6 8') call abort 43 449000 format(3I3) 45end program 46