Next: C_FUNLOC, Previous: C_F_POINTER, Up: Intrinsic Procedures
C_F_PROCPOINTER
— Convert C into Fortran procedure pointerC_F_PROCPOINTER(CPTR, FPTR)
Assign the target of the C function pointer
CPTR to the Fortran procedure pointer FPTR.
Note: Due to the currently lacking support of procedure pointers in GNU Fortran
this function is not fully operable.
CALL C_F_PROCPOINTER(cptr, fptr)
CPTR | scalar of the type C_FUNPTR . It is
INTENT(IN) .
|
FPTR | procedure pointer interoperable with cptr. It is
INTENT(OUT) .
|
program main use iso_c_binding implicit none abstract interface function func(a) import :: c_float real(c_float), intent(in) :: a real(c_float) :: func end function end interface interface function getIterFunc() bind(c,name="getIterFunc") import :: c_funptr type(c_funptr) :: getIterFunc end function end interface type(c_funptr) :: cfunptr procedure(func), pointer :: myFunc cfunptr = getIterFunc() call c_f_procpointer(cfunptr, myFunc) end program main