File: arrays_op_15.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 (33 lines) | stat: -rw-r--r-- 815 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
module arrays_op_15_module_01
    implicit none

    type t
        integer :: i
    end type t
contains
    function new_value(i) result(res)
        integer :: i
        type(t) :: res
        res%i = i
    end function new_value

    function get_default_values() result(type_1)
        type(t), allocatable :: type_1(:)
        allocate(type_1(2))
        type_1 = [new_value(1), new_value(2)]
    end function get_default_values
end module arrays_op_15_module_01

program arrays_op_15
    use arrays_op_15_module_01
    implicit none
    type(t) :: res
    type(t), allocatable :: values(:)
    allocate(values(2))
    values = get_default_values()
    print *, values(1), values(2)
    res = values(1)
    if (res%i /= 1) error stop
    res = values(2)
    if (res%i /= 2) error stop
end program arrays_op_15