File: submodule_32.f90

package info (click to toggle)
lfortran 0.61.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 61,892 kB
  • sloc: cpp: 181,767; f90: 92,175; python: 17,616; ansic: 10,170; yacc: 2,377; sh: 1,444; fortran: 892; makefile: 38; javascript: 15
file content (39 lines) | stat: -rw-r--r-- 852 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
module mod_submodule_32
    use iso_c_binding, only: c_int, c_ptr, c_f_pointer
    implicit none

    type :: team_t
        integer(c_int) :: num_images
    end type

    type :: event_t
        integer(c_int) :: counter = 0
    end type

    type(team_t), target :: initial_team
    type(event_t), pointer :: si_evt(:)

    interface
        module subroutine sync_init()
        end subroutine
    end interface

end module

submodule(mod_submodule_32) private_s
    implicit none
contains
    module procedure sync_init
        type(c_ptr) :: ptr
        associate(n => initial_team%num_images)
            call c_f_pointer(ptr, si_evt, [n])
        end associate
    end procedure
end submodule

program test_submodule_32
    use mod_submodule_32, only: initial_team
    implicit none
    initial_team%num_images = 5
    print *, "ok"
end program