OSDN Git Service

2011-08-18 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gfortran.dg / anyallcount_1.f90
1 ! { dg-do run }
2 program main
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 /
12
13    m1 = a > 0
14    m2 = a > 0
15    m4 = a > 0
16    m8 = a > 0
17
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
34
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
43
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
52
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
61
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
70
71 end program main