To: J3 11-251r1 From: Van Snyder Subject: DIN4: edits to PDTR 29113 Date: 2011 October 12 Reference: WG5/N1869, WG5/N1882 Discussion from DIN 4 --------------------- For specification of callback routines in the MPI-3 interface, it is considered desirable to allow noninteroperable procedure arguments in BIND(C) interfaces. By way of functionality, this would provide the analogous facility as the descriptorless TYPE(*) does for data. The syntax could be very simple: It would be sufficient to allow specifying the EXTERNAL attribute for a procedure dummy argument in a BIND(C) interface. Furthermore, a rule would be needed that if the actual procedure argument is not interoperable, it is not allowed to invoke the procedure from C; if the actual procedure is interoperable, an invocation from C is permitted. Edits ----- [29113:11 5.1 subclause heading] Replace "and C_LOC" with ", C_LOC and C_FUNLOC". [29113:11 5.1 after paragraph 2, insert a paragraph] "The function C_FUNLOC from the intrinsic module ISO_C_BINDING has the restriction that its argument shall be interoperable." [29113:31 6.9 between edits for 15.2.3.3 and 15.2.3.6 insert edits for 15.2.3.5] "{In 15.2.3.5 paragraph 3 delete 'that is interoperable' and replace 'associated with an interoperable procedure' with 'associated with a procedure'." [29113:31 6.9 edits for {At the end of clause 15}] Replace editing instructions with "{Before subclause 15.5}". [29113:31 end of 6.9 insert additional edit] "In subclause 15.5.1 paragraph 4 append a sentence 'A C function shall not invoke a Fortran procedure that is not interoperable.'"