File: modules_41.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 (50 lines) | stat: -rw-r--r-- 1,105 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
module modules_41_fpm_targets
implicit none

type :: fpm_model_t
    character(len=40) :: package_name
end type fpm_model_t

contains

subroutine build_target_list(model)

    type(fpm_model_t), intent(inout), pointer :: model
    integer :: result

    if( model%package_name /= "fpm_targets" ) error stop

    associate (x=>model)
         result = get_object_name()
         if( result /= 0 ) error stop
         print *, result
    end associate

    print *, model%package_name
    if( model%package_name /= "fpm_targets_new" ) error stop

    contains

        function get_object_name() result(int)
            integer :: int
            int = 0
            model%package_name = "fpm_targets_new"
        end function get_object_name

end subroutine build_target_list

end module modules_41_fpm_targets

program modules_41
use modules_41_fpm_targets
implicit none

type(fpm_model_t), target :: fpm_model
type(fpm_model_t), pointer :: fpm_model_ptr

fpm_model%package_name = "fpm_targets"
print *, fpm_model%package_name
fpm_model_ptr => fpm_model
call build_target_list(fpm_model_ptr)

end program