c_f_pointer(cptr, fptr[, shape])
Assign the target, the C pointer, cptr
to the Fortran pointer fptr
and specify its shape.
Fortran 2003 and later
Subroutine
call c_f_pointer(cptr, fptr[, shape])
cptr
- scalar of the type c_ptr
. It is intent(in)
.fptr
- pointer interoperable with cptr
. It is intent(out)
.shape
- (Optional) Rank-one array of type integer
with intent(in)
. It shall be present if and only if fptr
is an array. The size must be equal to the rank of fptr
.program main
use iso_c_binding
implicit none
interface
subroutine my_routine(p) bind(c,name='myC_func')
import :: c_ptr
type(c_ptr), intent(out) :: p
end subroutine
end interface
type(c_ptr) :: cptr
real,pointer :: a(:)
call my_routine(cptr)
call c_f_pointer(cptr, a, [12])
end program main
c_loc, c_f_procpointer, iso_c_binding