File: modules_50.f90

package info (click to toggle)
lfortran 0.59.0-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 56,736 kB
  • sloc: cpp: 168,052; f90: 74,272; python: 17,537; ansic: 7,705; yacc: 2,345; sh: 1,334; fortran: 895; makefile: 37; javascript: 15
file content (47 lines) | stat: -rw-r--r-- 967 bytes parent folder | download | duplicates (3)
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
module modules_42_fpm_integer
type int_t
    integer :: i
end type int_t
end module

module modules_42_fpm_targets
use modules_42_fpm_integer, only: int_t
implicit none

contains

subroutine prune_build_targets()
    type(int_t), allocatable :: modules_used(:)

    allocate(modules_used(1))

    modules_used(1)%i = 0
    print *, modules_used
    print *, modules_used(1)%i
    if( modules_used(1)%i /= 0 ) error stop
    call collect_used_modules()
    print *, modules_used
    print *, modules_used(1)%i
    if( modules_used(1)%i /= 2 ) error stop

    contains

    recursive subroutine collect_used_modules()

        modules_used(1)%i = 2
        modules_used = [modules_used]
        ! modules_used = [modules_used, modules_used(1)]

    end subroutine collect_used_modules

end subroutine prune_build_targets

end module modules_42_fpm_targets

program modules_42
use modules_42_fpm_targets
implicit none

call prune_build_targets()

end program modules_42