J3/01-325r2 Date: 31-Aug-2001 To: J3 From: Subgroup C Subj: Section 15.2.6 Edits Section and page/line numbers are from 01-007R2 1) The restriction in [362:1-3] is too severe. An interface for a generic procedure requires an explicit interface for each of the specific procedures that can be referenced through the generic name. It is important to allow the specific procedures to be written in C. Generic interfaces to MPI routines are significant examples. The current wording in [362:1-3] does not allow BIND(C) for a procedure which would otherwise require an explicit interface, including the requirement of the explicit interface to be part of a generic interface. Similarly, the use of the VALUE attribute on dummy arguments is not allowed. We believe this was not intended. Text already exists that prohibit allocatable, pointer, or optional dummy arguments in combination with BIND(C) [65:17-18], and the combination of the ELEMENTAL prefix with BIND(C) [259:7-8]. Additional constraints are supplied in the section specifying subprogram definition to replace the text [363:1-3]. [258:25+] C1239.1 (R1224) A shall not be specified if the function result is array valued, a pointer, or allocatable. [258:43+] C1241.1 (R1224) A shall not be specified if any dummy argument is an assumed shape array, polymorphic, or of a derived type that has type parameters. [261:4+] C1249.1 (R1231) A shall not be specified if any dummy argument is an assumed shape array, polymorphic, of a derived type that has type parameters, or asterisk. [362:1-8] Delete 2) In Note 15.19, the print statement in [362:31] outputs the whole DIGIT_ARR, including element 10. The most likely assumption about how the (missing) COPY routine works would result in DIGIT_ARR(10) having the value of the C null character. This character should not be included as part of the characters printed. Edit: [362:31] Replace "DIGIT_ARR" with "DIGIT_ARR(1:9)"