4 integer, parameter :: n
=5
5 character(kind
=4,len
=6), dimension(n
,n
) :: a
6 integer, dimension(n
,n
) :: v
7 character(kind
=4,len
=6), dimension(n
) :: r1
, r2
8 character(kind
=4,len
=6), dimension(:,:), allocatable
:: a_alloc
9 integer, dimension(:,:), allocatable
:: v_alloc
10 character(kind
=4,len
=6), parameter :: zero
= achar(0,4) // achar(0,4) // achar(0,4) // achar(0,4) // achar(0,4) // achar(0,4)
12 character(kind
=4,len
=6),dimension(1) :: ret
13 logical, dimension(n
,n
) :: mask
16 v
= reshape([(i
*i
+200-17*i
,i
=1,n
*n
)],shape(v
))
17 write (unit
=a
,fmt
='(I6.6)') (i
*i
+200-17*i
,i
=1,n
*n
)
20 write (unit
=r2
,fmt
='(I6.6)') maxval(v
,dim
=1)
21 if (any (r1
/= r2
)) STOP 1
23 write (unit
=r1
,fmt
='(I6.6)') maxval(v
,dim
=1)
24 if (any (r1
/= r2
)) STOP 2
28 write (unit
=r2
,fmt
='(I6.6)') maxval(v
,dim
=2)
29 if (any (r1
/= r2
)) STOP 3
31 write (unit
=r1
,fmt
='(I6.6)') maxval(v
,dim
=2)
32 if (any (r1
/= r2
)) STOP 4
34 allocate (a_alloc(0,1), v_alloc(0,1))
36 ret
= maxval(a_alloc
,dim
=1)
37 if (ret(1) /= zero
) STOP 5
40 r1
= maxval(a
, dim
=1, mask
=a
>4_
"000200");
41 if (any(r1
/= zero
.neqv
. maxval(v
,dim
=1, mask
=v
>200) > 0)) STOP 6
42 if (any(maxval(a
, dim
=1, mask
=a
>4_
"000200") /= zero
.neqv
. maxval(v
,dim
=1, mask
=v
>200) > 0)) STOP 7
45 r1
= maxval(a
, dim
=2, mask
=a
>4_
"000200");
46 if (any(r1
/= zero
.neqv
. maxval(v
,dim
=2, mask
=v
>200) > 0)) STOP 8
47 if (any(maxval(a
, dim
=2, mask
=a
>4_
"000200") /= zero
.neqv
. maxval(v
,dim
=2, mask
=v
>200) > 0)) STOP 9
55 r1
= maxval(a
, dim
=1, mask
=mask
)
56 write(unit
=r2
,fmt
='(I6.6)') maxval(v
,dim
=1, mask
=mask
)
57 if (any(r1
/= r2
)) STOP 10
61 r1
= maxval(a
, dim
=1, mask
=smask
)
62 write (unit
=r2
,fmt
='(I6.6)') maxval(v
,dim
=1)
63 if (any (r1
/= r2
)) STOP 11
67 r1
= maxval(a
, dim
=1, mask
=smask
)
68 if (any(r1
/= zero
)) STOP 12