File: modules_65.f90

package info (click to toggle)
lfortran 0.60.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 58,412 kB
  • sloc: cpp: 173,406; f90: 80,491; python: 17,586; ansic: 9,610; yacc: 2,356; sh: 1,401; fortran: 895; makefile: 37; javascript: 15
file content (26 lines) | stat: -rw-r--r-- 572 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
program modules_65
    use modules_65_base, only: base_t, holder_t
    use modules_65_child, only: child_t
    use modules_65_worker, only: classify
    implicit none

    type(holder_t) :: h1, h2
    integer :: r

    allocate(child_t :: h1%item)
    h1%item%width = 10
    select type (x => h1%item)
    class is (child_t)
        x%extra = 99
    end select

    allocate(base_t :: h2%item)
    h2%item%width = 7

    r = classify(h1)
    if (r /= 99) error stop
    r = classify(h2)
    if (r /= 7) error stop

    print *, "PASSED: modules_65"
end program modules_65