To: J3 J3/14-156r2 From: John Reid & Bill Long Subject: Minor edits to N2007 Date: 2014 June 24 References: N2007, N2013 Discussion ---------- This paper contains minor edits that were suggested in votes in N2013, address comments that were made in votes in N2013, or have arisen in email discussion. Edits to N2007: --------------- [iv:p2:6] Delete "for". [Vote of Van Snyder] [iv:p2:8] Replace "progress" with "proceed" [Vote of Van Snyder] [3:5+] Add para: ISO/IEC 1539-1:2010/Cor 1:2012, Information technology - Programming languages - Fortran - Part 1: Base language TECHNICAL CORRIGENDUM 1 [Vote of David Muxworthy] [9:24] Add sentence to end of paragraph "A coarray dummy argument is not established in any ancestor team even if the corresponding actual argument is established in one or more of them." [Vote of Reinhold Bader. Changed to normative text.] [10:1] Remove R504. [ is not a defined bnf term, so R504 is invalid. The edits to [10:17] and [10:27] give the intended effect.] [10:7 C503] Replace "A" with "An". [Vote of Van Snyder] [10:14] After "" add "or the same as a in another in the ". [Vote of Van Snyder] [10:17] Change "" to "coselector name identifies a coarray. The coarray". [See edit for [10:1].] [10:27] Change "coselector" to "established coarray". [See edit for [10:1].] [10:27] Change "Apart from its final upper cobound, its" to "Its". [In 5.3.6 CODIMENSION attribute of 10-007r1, there is no mention of the final upper cobound. It is understood that the declaration of a coarray does not specify the final upper cobound - this is affected at run time by the number of images. This convention is respected in the next paragraph [10:29-30] which makes the words here misleading.] [10:35-37] Change "All nonfailed ... same CHANGE TEAM statement." to "All nonfailed images of the current team shall execute the same CHANGE TEAM statement." [Vote of Van Snyder and email discussion: Our intention is that all images of the current team execute the CHANGE TEAM statement, but that the synchronization is within each of the new teams that are formed.] [12:6] Change "greater than zero" to "positive". [Vote of Van Snyder] [12:9] Change "greater than zero" to "positive". [Vote of Van Snyder] [12:12] Replace "assigned by the processor" with "a processor dependent value that shall be positive and not greater than the number of images in the team". [Vote of Van Snyder. We don't say anywhere that the image indices in a team are positive and not greater than the number of images in the team.] [13:8+] Delete the word "randomly" in the last line of NOTE 5.6. [Vote of Reinhold Bader] [13:8+] In the last line of Note 5.6, after "second" add "if the random number generators on different images are independent". [Vote of Van Snyder.] [13:21+] Replace the final sentence of NOTE 5.7 by "An image that references data on an image that has failed may be unable to make progress and fail for that reason." [See the vote of John Reid. We should explain that stalling can occur.] [14:Note 5.8] Replace "image 1" with "image 1 in the initial team" twice. [Vote of Van Snyder] [15:19] and [15:24] Replace "where" with "if". [Vote of Van Snyder] [15:24+] Add Note 6.0 The restrictions against changing an event variable except via EVENT POST and EVENT WAIT statements ensure the integrity of its value and facilitate efficient implementation, particularly when special synchronization is needed for correct event handling. [Vote of Van Snyder] [15:29] Delete "the". [Vote of Van Snyder] [15:30] Before "increments" insert "atomically". [Vote of Van Snyder. This is a simpler edit than that suggested by Van. The the current text based on trying to match the style of F2008 - for example SYNC ALL or SYNC IMAGES.] [16:2] Replace "an event is" by "events are". [Vote of Van Snyder. This is a simple edit that meets the same point.] [16:8] Replace "threshold of its event argument" by "threshold value". [Vote of Van Snyder] [16:12] Replace "event count is decreased" with "count of the event variable is atomically decremented". [Vote of Van Snyder, with the addition of the atomic property.] [17:12] After "argument" add "or the count of its EVENT argument". [A consequence of accepting the edit for [23:26] suggested by Reinhold Bader and John Reid] [18:25-26] Change to "CALL ATOMIC ADD(I[3], 7, OLD) causes I on image 3 to become defined with the value 12 and the value of OLD on the image executing the statement to be defined with the value 5 if the value of I[3] was 5 when the atomic ADD operation executed." [This change is needed to make the text like that for the other new atomic subroutines. It avoids a race condition.] [20:7] Repair the typesetting so the line doesn't end with left parenthesis. [Vote of Van Snyder] [20:19] Change "type and type parameters" to "dynamic type and type parameter values". [Vote of Van Snyder. We allow polymorphism here. ] [23:26] Change "Subroutine" to "Atomic subroutine". [Votes of Reinhold Bader and John Reid] [23:32] Change "number of successful posts minus the number of successful waits for" to "count of". [Change needed now that we have UNTIL_COUNT in EVENT WAIT.] [23:35] Change "and a processor-defined positive value if an error condition" to ", the value STAT_STOPPED_IMAGE in the intrinsic module ISO_FORTRAN_ENV if the event variable is on an image that has stopped, the value STAT_FAILED_IMAGE in the intrinsic module ISO_FORTRAN_ENV if the event variable is on an image that has failed, and a processor-dependent positive value if any other error condition occurs". [Votes of Reinhold Bader and Van Snyder] [26:15] Replace the comment by ! Code for images with odd image indices in parent team [Clearer, see vote of Nick Maclaren] [26:17] Replace the comment by ! Code for images with even image indices in parent team [Clearer, see vote of Nick Maclaren] [29:9] Replace "a" with "as". [Vote of Van Snyder] [31:3+] Add {in 4.5.2.1 Syntax, replace C433 by} C433 (R425) If EXTENDS appears and the type defined has \sout{an ultimate} \uwave{a} component of type \uwave{EVENT_TYPE or} LOCK_TYPE from the intrinsic module ISO_FORTRAN_ENV, \uwave{at any level of nonpointer component selection}, its parent type shall have \sout{an ultimate} \uwave{a} component \uwave{at some component of nonpointer component selection} of type \uwave{EVENT_TYPE or} LOCK_TYPE \uwave{, respectively}. [Vote of Van Snyder.] [32:5] Insert "allocation" before "status". [Vote of Van Snyder] [33:37+] Insert a new subclause 8.7a Edits to Clause 9 {In 9.5.1, Referring to a file, edit the first sentence of paragraph 4 as follows} In a READ statement, an io-unit that is an asterisk identifies an external unit that is preconnected for sequential formatted input on image 1 {\ul of the initial team} only (9.6.4.3). [Vote of Van Snyder] [34:14+] In the changes for Table 13.1, in the description of EVENT_QUERY, change the classification from "S" to "A". [A consequence of accepting the edit for [23:26] suggested by Reinhold Bader and John Reid] [35:1-] Insert "{In 13.5, Standard generic intrinsic procedures, paragraph 3, insert 'in the initial team' after 'image 1'}." [Vote of Van Snyder] [35:27], [35:29], [35:32] Change "{In 13.7.165 THIS_IMAGE( ) or THIS_IMAGE( COARRAY [,DIM])" to "{In 13.7.165, as modified by ISO/IEC 1539-1:2010/Cor 1:2012, THIS_IMAGE( ) or THIS_IMAGE(COARRAY) or THIS_IMAGE(COARRAY, DIM)" [Vote of David Muxworthy.] [35:28] Change "THIS_IMAGE(COARRAY [,DIM])" to "THIS_IMAGE(COARRAY) or THIS_IMAGE(COARRAY, DIM)" [Vote of David Muxworthy.] [36:9] Change "5.6" to "5.8". [Vote of Bill Long] [36:11+] Add {In 13.8.2 The ISO_FORTRAN_ENV intrinsic module, append a new subclause: <<13.8.2.26a Uniqueness of values of named constants>> The values of the named constants IOSTAT_INQUIRE_INTERNAL_UNIT, STAT_FAILED_IMAGE, STAT_LOCKED, STAT_LOCKED_OTHER_IMAGE, STAT_STOPPED_IMAGE, and STAT_UNLOCKED shall be distinct.} [Vote of Van Snyder] [36:12+] Insert "{In 16.4 Statement and construct entities, in paragraph 1, after 'DO CONCURRENT' replace 'or' with a comma; after 'ASSOCIATE construct' insert ', or as a coarray specified by a in a CHANGE TEAM construct,'}". [Vote of Van Snyder] [36:14-15] Replace "and bounds... coselector" with ", bounds, and cobounds as specified in 8.1.4a". [Vote of Van Snyder] [36:18+] Insert "{In 16.6.7, Variable definition context, after item (13) insert a new list item} '(13a) a coarray in a in a CHANGE TEAM construct if the coarray named by the corresponding of that construct [", or a subobject thereof," if 14-136 passes] appears in a variable definition context within that construct;'" [Vote of Van Snyder] [36:23+] Insert "{In A.2 Processor dependencies, list item concerning COMMAND_ARGUMENT_COUNT etc., insert 'in the initial team' after 'image 1'}". [Vote of Van Snyder] [36:23+] Insert "{In A.2 Processor dependencies, list item concerning CMDSTAT, replace 'CMDSTAT or STATUS' with 'CMDSTAT, STAT, or STATUS'.}" [Vote of Van Snyder] [40:3] Insert "in the initial team" after "image 1". [Vote of Van Snyder] [42:18] Replace "p**q" by "p*q". [Vote of Reinhold Bader] [47:11] Delete "in". [Vote of Van Snyder]