File: c_ptr_02.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 (19 lines) | stat: -rw-r--r-- 460 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
program test_c_ptr_02
   use iso_c_binding
   implicit none
   complex, target :: c_arr(2)
   real, pointer :: r_ptr(:)

   type :: test_obj
      type(c_ptr) :: ptr = c_NULL_ptr
   end type test_obj
   type(test_obj) :: instance
   type(c_ptr) :: temp_ptr
   temp_ptr = instance%ptr

   c_arr = (1, 2)
   call c_f_pointer(c_loc(c_arr), r_ptr, shape=[4])
   print *, c_arr
   print *, r_ptr
   if (c_associated(temp_ptr) .neqv. .false.) error stop
end program