C_F_POINTER — Convert C into Fortran pointerC_F_POINTER(CPTR, FPTR[, SHAPE]) Assign the target the C pointer
CPTR to the Fortran pointer FPTR and specify its
shape.
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