J3/06-115 Date: 2006-01-03 To: J3 From: Van Snyder Subject: Allow forward type for allocatable components Reference: J3-028, Pub-116, 04-226, 04-399 Number: TBD Title: Allow forward type for allocatable components Submitted by: J3 Status: For Consideration Basic Functionality: Do not require the type of an allocatable component to be defined before the type containing the allocatable component. Rationale: Mutually recursive types can be related by components having the POINTER attribute, which allows the types of the components to be defined after the type definition in which the components appear. Some mutually recursive types could be related by components having the ALLOCATABLE attribute, except that is presently prohibited. ALLOCATABLE is preferable to POINTER whenever possible. We should make every effort to make ALLOCATABLE as widely usable as possible. Estimated Impact: Easy to implement, improves performance, trivial change in the standard. Estimated at meeting 169 to be at 3 on the JKR scale. Detailed Specification: Do not require the type of an allocatable component to be defined before the type containing the allocatable component. Suggested Edits: The following suggested edits illustrate the magnitude of the proposal. In Constraint 438 [50:18-19], replace "the POINTER attribute is not" by "neither the POINTER nor ALLOCATABLE attribute is" and delete "shall be CLASS(*) or" (Constraint 437 requires either the POINTER or ALLOCATABLE attribute for a component declared with the CLASS keyword). In Constraint 439 [50:21], insert "or ALLOCATABLE" after "POINTER". History: Submitted as Pub-116 04-226 m167 04-399 m170