File: intrinsics_30.f90

package info (click to toggle)
lfortran 0.45.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, 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 (61 lines) | stat: -rw-r--r-- 1,714 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
50
51
52
53
54
55
56
57
58
59
60
61
program intrinsics_30
    use iso_fortran_env, only : int8, int16
    implicit none
    integer, parameter :: a1 = range(11)
    integer, parameter :: a2 = range(22.90)
    integer, parameter :: a3 = range((1,2))
    integer(4) :: i1
    integer(8) :: i2
    integer(int8) :: i3
    integer(int16) :: i4
    real(4) :: r1
    real(8) :: r2
    complex(4) :: c1
    complex(8) :: c2
    integer, parameter :: ri3 = range(i3)
    integer, parameter :: ri4 = range(i4)
    integer, parameter :: ar1 = range([1, 21, 13])
    integer, parameter :: ar2 = range([1.0, 21.0, 13.0])
    integer, parameter :: ar3 = range([(1, 2), (31, 4), (51, 62)])
    integer :: arr1(3) = [1, 21, 13]
    real(8) :: arr2(3) = [1.0, 21.0, 13.0]
    complex :: arr3(3) = [(1, 2), (31, 4), (51, 62)]

    print *, a1
    if (a1 /= 9) error stop
    print *, a2
    if (a2 /= 37) error stop
    print *, a3
    if (a3 /= 37) error stop

    print *, ar1
    if (ar1 /= 9) error stop
    print *, ar2
    if (ar2 /= 37) error stop
    print *, ar3
    if (ar3 /= 37) error stop

    print *, range(ri3)
    if (ri3 /= 2) error stop
    print *, range(ri4)
    if (ri4 /= 4) error stop
    print *, range(i1)
    if (range(i1) /= 9) error stop
    print *, range(i2)
    if (range(i2) /= 18) error stop
    print *, range(r1)
    if (range(r1) /= 37) error stop
    print *, range(r2)
    if (range(r2) /= 307) error stop
    print *, range(c1)
    if (range(c1) /= 37) error stop
    print *, range(c2)
    if (range(c2) /= 307) error stop

    print *, range(arr1)
    if (range(arr1) /= 9) error stop
    print *, range(arr2)
    if (range(arr2) /= 307) error stop
    print *, range(arr3)
    if (range(arr3) /= 37) error stop
end program