File: arrays_01_logical.f90

package info (click to toggle)
lfortran 0.45.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 46,332 kB
  • sloc: cpp: 137,068; f90: 51,260; python: 6,444; ansic: 4,277; yacc: 2,285; fortran: 806; sh: 524; makefile: 30; javascript: 15
file content (49 lines) | stat: -rw-r--r-- 907 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
program arrays_01_logical
implicit none
integer :: i, j
logical :: a(3), b(4), c(2, 2)

a(1) = .true.
do i = 2, 3
    a(i) = .not. a(i - 1)
end do
if (.not. a(1)) error stop
if (a(2)) error stop
if (.not. a(3)) error stop

b(1) = .false.
do i = 12, 14
    b(i-10) = .not. b(i - 10 - 1)
end do
if (b(1)) error stop
if (.not. b(2)) error stop
if (b(3)) error stop
if (.not. b(4)) error stop

do i = 1, 3
    b(i) = a(i) .and. .false.
end do
if (b(1)) error stop
if (b(2)) error stop
if (b(3)) error stop

b(4) = b(1) .or. b(2) .or. b(3) .or. a(1)
if (.not. b(4)) error stop

b(4) = a(1)
if (.not. b(4)) error stop

do i = 1, 2
    do j = 1, 2
        if (((i + j) - 2*((i + j)/2)) == 1) then
            c(i, j) = .true.
        else
            c(i, j) = .false.
        end if
    end do
end do
if (c(1, 1)) error stop
if (.not. c(1, 2)) error stop
if (.not. c(2, 1)) error stop
if (c(2, 2)) error stop
end