J3/00-343 Date: 13 December, 2000 To: J3 From: Steidel, /interop Subject: Unresolved issue 110 The first paragraph of unresolved issue 110 states there is no syntax which allows a language binding spec on a procedure. Since the note was written, the syntax rules have been added to chapter 12 on the SUBROUTINE, FUNCTION, ENTRY, and PROCEDURE statements. The note assumes two preceeding restrictions will be moved to follow the syntax. The restrictions remain where they are at as the syntax allowing a language binding spec for procedures is located in four spots in chapter 12, and the restrictions need only be stated once in section 16.2.6, Interoperation with C Functions. The second paragraph states some confusion about the restriction that a language binding spec cannot be specified for a procedure which requires an explicit interface unless the procedure is defined by a Fortran subprogram. The intent of the restriction is to prohibit Fortran from calling a C function and passing POINTERs, assumed shape arrays, allocatable arrays, or any of the other Fortran features which require and explicit interface to "get it right". The "unless" clause permitted a Fortran procedure to call a procedure with a language binding spec if the procedure itself is written in Fortran, in which case it is alright to pass POINTERS, assumed shape arrays, and allocatable arrays as the called procedure is also written in Fortan. Subgroup decided to remove the "unless" clause as the primary use of BIND is to make interlanguage calls, not to make intra-Fortran calls. Note 16.18 states what is prohibited by the second restriction. The following edit removes the "unless" clause. The third paragraph of the unresolved issue points out an obvious problem with the second restriction. That is, if a procedure has a language binding spec, it requires and explicit interface to be called, and the restriction says such a procedure must not have a language binding spec. The following edit rewords the restriction to remove the problem. Edit: Page 399:26-27 replace with "A shall not be specified for a procedure that requires an explicit interface for any reason other than the presence of the ." Delete unresolved issue 110. Edit: Page 399:33-47 delete Miscellaneous fixes in 16.2.6 Edit: Page 398:16 change "theh" to "the" Data objects have attributes. Function result variables are data objects, procedures are not. Thus, it is incorrect to refer to procedures with the BIND attribute. Modify second to the last sentence of 16.2.6 to fix this. Edit: Page 399:25 change "The BIND attribute" to "A " Notes to editor: The BIND(C) is modified by an edit in 336 to read merely BIND. As this sentence refers to asterisk dummy arguments (alternate return subroutines), the sentence should be in obsolesent font.