program ch3101 use iso_c_binding implicit none integer, target :: x1 = 20 integer, target :: x2 = 30 integer, pointer :: p_x1 integer, pointer :: p_x2 type (c_ptr) :: c_ptr1, c_ptr2, c_ptr3, c_ptr4 integer :: i1, i2, i3, i4 c_ptr1 = c_loc(x1) c_ptr2 = c_loc(x2) c_ptr3 = c_loc(p_x1) c_ptr4 = c_loc(p_x2) i1 = transfer(c_ptr1,i1) i2 = transfer(c_ptr2,i2) i3 = transfer(c_ptr3,i3) i4 = transfer(c_ptr4,i4) print *, ' i1 ', i1 print *, ' i2 ', i2 print *, ' i3 ', i3 print *, ' i4 ', i4 p_x1 => x1 p_x2 => x2 c_ptr3 = c_loc(p_x1) c_ptr4 = c_loc(p_x2) i1 = transfer(c_ptr1,i1) i2 = transfer(c_ptr2,i2) i3 = transfer(c_ptr3,i3) i4 = transfer(c_ptr4,i4) print *, ' x1 ', x1 print *, ' x2 ', x2 print *, ' p_x1 ', p_x1 print *, ' p_x2 ', p_x2 print *, ' i1 ', i1 print *, ' i2 ', i2 print *, ' i3 ', i3 print *, ' i4 ', i4 end program ch3101