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