J3/17-170 To: J3 From: Malcolm Cohen Subject: Response to GB-029 Date: 2017 June 26 1. GB-029 (15.5.2.4p15, 318:30-35) comment: For a nonpointer nonallocatable assumed-rank dummy argument, [318:30-35] says that the bounds are those of the actual argument. If the actual argument is a nonpointer nonallocatable array, the lower bounds in its C descriptor are required to be zero (see [497:14-15]). Its actual lower bounds would need to be passed in a separate part of the C descriptor. We do not think this was intended. TS 29113, clause 6.3, para 1 says that the extents are assumed in this case, not the bounds. Replace "The rank ... of that dimension." with "The rank and extents of the dummy argument are the rank and extents of the corresponding actual argument. The lower bound of each dimension of the dummy argument is equal to one, and the upper bound is equal to the extent, except when the actual argument is assumed-size, the upper bound of the last dimension of the dummy argument is equal to minus one." 2. Response Agreed that this was a typo in the edits section of the TS. It is further noted that the description of the upper bound for assumed-size is nonsense, as it literally describes a zero-sized array, which is not our intention. Edits are provided to fix these flaws. Note that 8.5.8.5p4 says "An assumed-size array has no upper bound in its last dimension and therefore has no extent in its last dimension and no shape." This means that the correct response for an assumed-rank array that is associated with an assumed-size array is not to attempt to define any extent or upper bound for its last dimension. The UBOUND and SIZE intrinsics do not depend on the description here, nor does the description of the C descriptor. 3. Edits to N2123 (17-007r1) [318:30-35] 15.5.2.4 Ordinary dummy variables, p15 beginning "An actual argument of any rank may correspond to an assumed-rank dummy argument.", replace the rest of the paragraph "The rank and... that dimension." with "The rank and extents of the dummy argument are the rank and extents of the corresponding actual argument. The lower bound of each dimension of the dummy argument is equal to one. The upper bound is equal to the extent, except for the last dimension when the actual argument is assumed-size." {Correct definition of the lower bounds. The shape, when it exists, is properly defined by the rank and extents, and this avoids attempting to specify things that do not exist.} ===END===