J3/14-238 To: J3 From: John Reid and Bill Long Subject: Collectives Date: 2014 October 01 Discussion ---------- We propose here several independent changes to the collectives. The reason for each change is given with the edit. Edits to N2027: --------------- [18:8] Before "If the A" add "The argument A to a collective subroutine shall not be coindexed." Reason. The principal argument of no collective should be permitted to be coindexed. It was not intended to allow this. [23:37] Before "arguments" add "scalar". Reason. The result of CO_REDUCE is defined elementally. [23:37] Before "Its" add "It shall not be such that a reference to it would require its interface to be explicit." Reason: It is intended that the code for CO_REDUCE be permitted to be written in C. [23:39] Before "OPERATOR" add "OPERATOR shall not reference or define a coindexed variable". Reason. The principal argument of CO_REDUCE may be of a type with a coarray component. Without an additional restriction, this means that OPERATOR might be written to access remote data. I think we intended OPERATOR to work only on local data. [24:7-8] Change "execution of r = OPERATOR(x,y)" to "evaluation of OPERATOR(x,y)" and "addition of r" to "addition of the value of OPERATOR(x,y)". Reason. It was not intended that the existence of defined assignment for the type and type parameters of the argument A of CO_REDUCE should have any bearing on the result of CO_REDUCE.