Fortran Wiki
c_funloc

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, iso_c_binding

category: intrinsics