J3/14-128r1 To: J3 From: Robert Corbett Subject: making WHERE obsolescent Date: 2014 February 13 Proposal: I propose that WHERE constructs and WHERE statements be made obsolescent in the next standard. Syntax and specifications: The syntax and specifications are unchanged, except that conforming processors will be required to diagnose the newly obsolescent feature. Rationale: Like FORALL constructs and statements, WHERE constructs and statement have failed to facilitate parallel programming. WHERE constructs and statements are difficult to understand and difficult to implement. The benefits offered by WHERE constructs and statements have proved to be too meager to justify their inclusion in the Fortran standard. Therefore, WHERE constructs and statements should be made obsolescent. The functionality of WHERE constructs and statements can be emulated using DO CONCURRENT constructs. Unlike FORALL constructs and FORALL statements, there are few references to the text that describes WHERE constructs and statements outside of the subclause that describes them (Clause 7.2.3). The changes needed to the standard to make WHERE constructs and statements obsolescent are limited, consisting mainly of the noting their changed status in the Introduction, the Deleted and Obsolescent Features clause (Clause 1.7) and the Obsolescent Features portion of Annex B, and changing the font of Clause 7.2.3 to obsolescent font. A few additional changes are needed, perhaps the most annoying of which is that the list of branch target statements in Clause 8.2.1 needs to be reordered to make the list correct when the obsolescent text is ignored.