08-188r1 To: J3 Subject: Interp F03/0073 From: Van Snyder/Stan Whitlock Date: 16 May 2008 References: 04-007, 08-006Ar1 This is a whack at interp F03/0073. The outcome is different. ======================================================================== NUMBER: F03/0073 TITLE: C interop of dummy procedures KEYWORDS: Interoperability, dummy procedures DEFECT TYPE: ERRATUM STATUS: J3 consideration in progress QUESTION: Is the following interface interoperable, and if yes, what is the interoperable C prototype? subroutine my_sub(my_fun) bind(c, name="My_Proc") interface function my_fun(x) bind(c) use iso_c_binding integer(c_int) :: my_fun real(c_double), value :: x end function end interface end subroutine ANSWER: Yes, this interface is interoperable with the following prototype: void My_Proc(int (*his_fun)(double)); Its formal parameters is of a pointer type, and the referenced type is a function that is interoperable with my_fun, thus satisfying the requirements in item 5 in the list in subclause 15.2.6. EDITS: None: SUBMITTED BY: Aleksandar Donev HISTORY: 06-102 m175 F03/0073 Submitted 08-188r1 m184 Answer proposed