c_funloc(3f) - [FORTRAN:INTRINSIC:ISO_C_BINDING] Obtain the C address of a procedure
result = c_funloc(x)
c_funloc(x) determines the C address of the argument.
X Interoperable function or pointer to such function.
The return value is of type c_funptr and contains the C address of the argument.
Sample program:
! program demo_c_funloc and module module x use iso_c_binding implicit none contains subroutine sub(a) bind(c) real(c_float) :: a a = sqrt(a)+5.0 end subroutine sub end module x ! program demo_c_funloc use iso_c_binding use x implicit none interface subroutine my_routine(p) bind(c,name=myC_func) import :: c_funptr type(c_funptr), intent(in) :: p end subroutine end interface call my_routine(c_funloc(sub)) ! end program demo_c_funloc
[[Fortran 2003]] and later
[[Inquiry function]]
c_associated(3), c_loc(3), c_f_pointer(3), c_f_procpointer(3), iso_c_binding(3)
c_funloc (3) | March 11, 2021 |