program ch3313 use iso_c_binding implicit none integer, target :: x1 = 20 integer, target :: x2 = 30 integer, pointer :: p_x1 => null() integer, pointer :: p_x2 => null() 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 *, ' Integer kind = ', kind(i1) 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 ch3313