09-148 To: J3 From: Bill Long, John Reid / Van Snyder Subject: Interpretation F03/0063 Date: 2009 February 11 References: 04-007 NUMBER: F03/0063 TITLE: Procedure pointers in BLOCK DATA program units KEYWORDS: Procedure pointer, common block, block data DEFECT TYPE: Erratum STATUS: J3 consideration in progress QUESTION: It is clear that procedure pointers are permitted in common blocks. However, due to the restrictions on BLOCK DATA program units, it seems that such a common block can not appear in a BLOCK DATA program unit. Was it intended that common blocks containing procedure pointers could be initialized in a BLOCK DATA program unit? ANSWER 1: It was a mistake to try to allow procedure pointers in common blocks. Edits are provided to correct this blunder. ANSWER 2: Yes, it was intended that common blocks containing procedure pointers could be initialized in a BLOCK DATA program unit. Edits are provided to correct this oversight. EDITS 1: All edits refer to 04-007. [98:17] Delete the second line of R558. [98:21] After "allocatable" insert "or a procedure pointer". EDITS 2: All edits refer to 04-007. [98:21-22 5.5.2 C588] Delete "a function name, an entry name," because these were originally synonyms for "a result name" (as applied to in R558). Now, "a function name" (as applied to in R558) prohibits function pointers. [253:12 11.3 C1117] After "derived-type definitions", insert ", abstract interface blocks,". [253:14 11.3 C1117] Before "and type declaration", insert "procedure declaration,". [254:3 11.3 C1118] Delete ", EXTERNAL," [254:3+ 11.3 C1118+] Insert a new constraint: C1118a (R1116) An entity in a BLOCK DATA program unit that has the EXTERNAL attribute shall also have the POINTER attribute. [416:24 16.4.3.1] After "each combination of" insert "procedureness," SUBMITTED BY: Rob James HISTORY: 05-178 m172 F03/0063 submitted 05-225 m173 Passed by J3 meeting 06-133r2 m175 Passed J3 letter ballot #12 N1658 m176 Failed WG5 ballot N1657 09-148 m187 Revised answer