File: c_ptr_03.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 (21 lines) | stat: -rw-r--r-- 503 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
program c_ptr_03
    use iso_c_binding, only: c_ptr, c_loc, c_int, c_f_pointer
    implicit none
    integer(c_int), target :: x, y
    type(c_ptr), dimension(2) :: c_requests
    integer(c_int), pointer :: px, py

    x = 10
    y = 20

    c_requests(1) = c_loc(x)
    c_requests(2) = c_loc(y)
    call c_f_pointer(c_requests(1), px)
    call c_f_pointer(c_requests(2), py)

    print *, "px: ", px
    if (px /= x) error stop

    print *, "py: ", py
    if (py /= y) error stop
end program c_ptr_03