Next: , Previous: C_F_PROCPOINTER, Up: Intrinsic Procedures


9.51 C_FUNLOC — Obtain the C address of a procedure

Description:
C_FUNLOC(x) determines the C address of the argument.
Standard:
Fortran 2003 and later
Class:
Inquiry function
Syntax:
RESULT = C_FUNLOC(x)
Arguments:

x Interoperable function or pointer to such function.

Return value:
The return value is of type C_FUNPTR and contains the C address of the argument.
Example:
          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 main
            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 main

See also:
C_ASSOCIATED, C_LOC, C_F_POINTER, C_F_PROCPOINTER