3 character(len
=*), parameter :: f
='(3L1)'
4 character(len
=*), parameter :: g
='(3I1)'
5 real, dimension(3,3) :: a
6 logical(kind
=1), dimension(3,3) :: m1
7 logical(kind
=2), dimension(3,3) :: m2
8 logical(kind
=4), dimension(3,3) :: m4
9 logical(kind
=8), dimension(3,3) :: m8
10 character(len
=3) :: res
11 data a
/-1.0, -2.0, -3.0, 2.0, 1.0, -2.1, 1.0, 2.0, 3.0 /
18 write (unit
=res
,fmt
=f
) any(m1
,dim
=1)
19 if (res
/= 'FTT') call abort
20 write (unit
=res
,fmt
=f
) any(m2
,dim
=1)
21 if (res
/= 'FTT') call abort
22 write (unit
=res
,fmt
=f
) any(m4
,dim
=1)
23 if (res
/= 'FTT') call abort
24 write (unit
=res
,fmt
=f
) any(m8
,dim
=1)
25 if (res
/= 'FTT') call abort
26 write (unit
=res
,fmt
=f
) any(m1
,dim
=2)
27 if (res
/= 'TTT') call abort
28 write (unit
=res
,fmt
=f
) any(m2
,dim
=2)
29 if (res
/= 'TTT') call abort
30 write (unit
=res
,fmt
=f
) any(m4
,dim
=2)
31 if (res
/= 'TTT') call abort
32 write (unit
=res
,fmt
=f
) any(m8
,dim
=2)
33 if (res
/= 'TTT') call abort
35 write (unit
=res
,fmt
=f
) all(m1
,dim
=1)
36 if (res
/= 'FFT') call abort
37 write (unit
=res
,fmt
=f
) all(m2
,dim
=1)
38 if (res
/= 'FFT') call abort
39 write (unit
=res
,fmt
=f
) all(m4
,dim
=1)
40 if (res
/= 'FFT') call abort
41 write (unit
=res
,fmt
=f
) all(m8
,dim
=1)
42 if (res
/= 'FFT') call abort
44 write (unit
=res
,fmt
=f
) all(m1
,dim
=2)
45 if (res
/= 'FFF') call abort
46 write (unit
=res
,fmt
=f
) all(m2
,dim
=2)
47 if (res
/= 'FFF') call abort
48 write (unit
=res
,fmt
=f
) all(m4
,dim
=2)
49 if (res
/= 'FFF') call abort
50 write (unit
=res
,fmt
=f
) all(m8
,dim
=2)
51 if (res
/= 'FFF') call abort
53 write (unit
=res
,fmt
=g
) count(m1
,dim
=1)
54 if (res
/= '023') call abort
55 write (unit
=res
,fmt
=g
) count(m2
,dim
=1)
56 if (res
/= '023') call abort
57 write (unit
=res
,fmt
=g
) count(m4
,dim
=1)
58 if (res
/= '023') call abort
59 write (unit
=res
,fmt
=g
) count(m8
,dim
=1)
60 if (res
/= '023') call abort
62 write (unit
=res
,fmt
=g
) count(m1
,dim
=2)
63 if (res
/= '221') call abort
64 write (unit
=res
,fmt
=g
) count(m2
,dim
=2)
65 if (res
/= '221') call abort
66 write (unit
=res
,fmt
=g
) count(m4
,dim
=2)
67 if (res
/= '221') call abort
68 write (unit
=res
,fmt
=g
) count(m8
,dim
=2)
69 if (res
/= '221') call abort