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
|