15 February 2007 J3/07-116r2 Sub ject: Comments on clause 13 From: Van Snyder 1 Edits 1 Edits refer to 07-007. Page and line numbers are displayed in the margin. Absent other instructions, a 2 page and line number or line number range implies all of the indicated text is to be replaced by associated 3 text, while a page and line number followed by + (-) indicates that associated text is to be inserted after 4 (before) the indicated line. Remarks are noted in the margin, or appear between [ and ] in the text. 5 [Editor: Insert "undefined or" before "not associated".] 341:9 6 [Editor: Insert "(A)" after "IS CONTIGUOUS".] 347:6 7 [It's not clear when reading the table, until after reading it, what the bullets (ยท) are for. Editor: Move 351:1-2 8 [351:1-2] to [350:7+].] 9 [Editor: Insert "or n = 1" after "absent".] 354:21 10 [Editor: Insert "or n = 1" after "absent".] 355:27 11 [Editor: Delete first "or".] 362:32 12 [Editor: Replace "or" by a comma.] 363:0+1 13 [Editor: "result" "RESULT".] 364:13 14 [Editor: Insert "or n = 1" after "absent".] 371:4 15 [Editor: Insert "and kinds" after "types".] 375:5 16 [Editor: Insert the sentence "It is recommended that the processor compute the product in double 375:25 17 precision, rather than in single precision and then converted to double precision."] 18 [Editor: "omitted" "absent".] 377:0+3 19 [Editor: "The" "If there is such a value, the".] 381:5 20 [Editor: "The" "If there is such a value, the".] 381:12 21 [Editor: "Note that this" "This".] 381:35 22 [Editor: "Note . . . 1" "This is independent of the declared lower bounds for B" (compare to [381:25]).] 381:39-40 23 [Editor: Exdent the paragraph and join to the previous line.] 382:20-22 24 [Editor: Append ", ONLY: IMAGE TEAM"] 382:23 25 [Editor: "It . . . 0," "NUMBER is allowed to be zero".] 384:5+2-3 26 [Editor: Delete "(optional)".] 388:2+1 27 [Editor: Insert a space before "IBCLR".] 388:32 28 [Editor: "it is" "the result value is".] 392:2 29 [Editor: Delete "and".] 393:23 30 [Editor: "will have" "has".] 394:12 31 [Editor: "of type" "or".] 396:28 32 [Editor: "of type" "or".] 397:8 33 [Editor: "of type" "or".] 397:21 34 15 February 2007 Page 1 of 9 15 February 2007 J3/07-116r2 [Editor: "of type" "or".] 398:6 35 [Editor: "Note that this" "This".] 403:8 36 [Editor: "has" "is of ".] 403:38 37 [Editor: "has" "is of ".] 406:30 38 [Editor: "Note that this" "This".] 406:37 39 [Editor: "Note that this" "This".] 406:39 40 [Editor: "has" "is of ".] 407:28 41 [Editor: Delete "Mold . . . length" because it duplicates [412:5-6].] 412:8-10 42 [Editor: Delete final "the".] 414:23 43 [Editor: Delete "variable".] 416:33 44 [Editor: "8" "16".] 419:23 45 p [Editor: insert "= ABS(FRACTION(X)) * RADIX(X) / EPSILON(X)" after "b ".] 420:7 46 [Editor: Add a sentence to Note 13.20: "An unlimited polmorphic entity has no declared type."] 420:20+2+ 47 [Editor: "the . . . If " "or if ".] 425:31-33 48 [Editor: Insert "of " before "SUM".] 429:16 49 [Editor: "-" (hyphen) "-" ($-$).] 429:28+2 50 [Editor: "It" "The corresponding actual argument".] 431:4+2 51 [Editor: Move the sentence to the end of the paragraph at [433:18 since it's a characteristic, not a value.] 433:20 52 NOTE 13.23 1 435:28+ 2 The types and procedures defined in standard intrinsic modules are not themselves intrinsic. 2 Nouns and verbs 53 Most but not all intrinsic function descriptions are nouns, while most but not all intrinsic subroutine 54 descriptions are imperative sentences in active voice. Make them consistent. 55 2.1 Summaries in 13.5 56 [Editor: "testing" "test".] 347:13 57 [Editor: Insert "and only if " after "if " twice.] 348:5-6 58 [Editor: "Whether" "True if and only if " twice (compare [348:5-6]).] 349:2-3 59 [Editor: "Returns disassociated" "Disassociated".] 349:12 60 [Editor: "Returns" "Generate".] 349:17 61 [Editor: "Initializes" "Initialize" and "restarts" "restart".] 349:18 62 [Editor: "Forms" "Form".] 349:25 63 [Editor: "Returns" "Get".] 349:25+1 64 [Editor: "Returns" "Get".] 349:26+1 65 2.2 Detailed descriptions 66 15 February 2007 Page 2 of 9 15 February 2007 J3/07-116r2 [Editor: "Returns the character" "Character".] 352:16 67 [Editor: Insert "toward zero" after "Truncation".] 354:3 68 [Editor: "Determine . . . in" "Logical conjunction of elements of ".] 354:15 69 [Editor: "Indicate whether" "True if and only if ".] 354:33+1 70 [Editor: "Determine . . . in" "Logical inclusive disjunction of elements of ".] 355:21 71 [Editor: "Returns . . . target" "True if and only if POINTER is associated or POINTER is associated 356:24-25 72 with TARGET".] 73 [Editor: "Returns the number" "Number".] 360:13 74 [Editor: "Convert" "Conversion".] 360:23 75 [Editor: "Return bits" "Bits".] 361:14 76 [Editor: "Tests . . . value" "True if and only if a specified bit of an integer or bits value is one.] 361:26 77 [Editor: "Returns the least" "Least".] 362:3 78 [Editor: "Returns the character" "Character".] 362:13 79 [Editor: "Convert" "Conversion".] 362:29 80 [Editor: "values" "corresponding elements of MASK".] 363:11 81 [Editor: "value" "corresponding element of MASK".] 363:21 82 [Editor: "Returns all the lower" "Lower".] 364:16 83 [Editor: "Image" "Determine the image".] 365:6 84 [Editor: "Maximum" "Determine the maximum".] 365:16 85 [Editor: "Image" "Determine the image".] 366:6 86 [Editor: "Minimum" "Determine the minimum".] 366:16 87 [Editor: "Products" "Compute the products".] 367:6 88 [Editor: "Sums of " "Sum".] 367:17 89 [Editor: "Returns all the upper" "Upper".] 368:5 90 [Editor: "Returns the number" "Number".] 369:15 91 [Editor: "Count the number" "Number".] 370:26 92 [Editor: "Returns" "Return".] 371:18 93 [Editor: "Perform a circular" "Circular" and delete "perform".] 372:2 94 [Editor: "Convert" "Conversion".] 374:2 95 [Editor: "Returns" "Return".] 373:1 96 [Editor: "Returns the number" "Number".] 374:9 97 [Editor: "The . . . zero" "The maximum of X-Y and zero".] 374:19 98 [Editor: "X . . . otherwise" "The maximum of X-Y and zero".] 374:25 99 [Editor: "Performs dot" "Dot".] 374:28 100 [Editor: "Performs a combined" "Combined".] 375:28 101 [Editor: "Performs a combined" "Combined".] 376:7 102 15 February 2007 Page 3 of 9 15 February 2007 J3/07-116r2 [Editor: "Perform an end-off " "End-off " and delete "perform".] 376:21 103 [Editor: "Returns a positive" "Positive".] 377:19 104 [Editor: Insert "function" after "Exponential".] 379:13 105 [Editor: "Returns the exponent" "Exponent".] 379:21 106 [Editor: "Inquire whether" "True if and only if ".] 380:8 107 [Editor: "Determine the location" "Location".] 380:20 108 [Editor: "Returns the greatest" "Greatest".] 381:42 109 [Editor: "Returns the fractional" "Fractional".] 383:2 110 [Editor: "Returns" "Get".] 383:19 111 [Editor: "Returns . . . argument" "Get an argument from the command by which the program was 384:1 112 invoked".] 113 [Editor: "Gets" "Get".] 385:3 114 [Editor: "Returns the largest" "Largest".] 385:12 115 [Editor: "Returns the position" "Position".] 386:9 116 [Editor: "Performs a bitwise" "Bitwise".] 387:17 117 [Editor: "Clears . . . to" "Argument with specified bit replaced by".] 388:23 118 [Editor: "Extracts a" "Specified".] 388:34 119 [Editor: "Sets . . . to" "Argument with specified bit replaced by".] 389:10 120 [Editor: "Returns the position" "Position".] 389:21 121 [Editor: "Performs a bitwise" "Bitwise".] 390:3 122 [Editor: "Returns the index" "Index".] 390:15 123 [Editor: "Returns the starting" "Starting".] 391:2 124 [Editor: "Convert" "Conversion".] 391:24 125 [Editor: "Performs a bitwise" "Bitwise".] 392:5 126 [Editor: "Performs a logical" "Logical".] 393:16 127 [Editor: "Performs a circular" "Circular".] 393:29 128 [Editor: "Determine whether" "True if and only if " thrice.] 394:7,15,22 129 [Editor: "Returns the value" "Value".] 394:29 130 [Editor: "Returns all lower" "Lower".] 395:3 131 [Editor: "Counts the number" "Number".] 395:23 132 [Editor: "Returns the length" "Length".] 395:33 133 [Editor: "Returns the length" "Length".] 396:13 134 [Editor: "Test whether" "True if and only if ".] 396:24 135 [Editor: "Test whether" "True if and only if " twice.] 397:4,17 136 [Editor: "Test whether" "True if and only if ".] 398:3 137 15 February 2007 Page 4 of 9 15 February 2007 J3/07-116r2 [Editor: "Converts" "Conversion".] 399:11 138 [Editor: "Generate a left" "Left".] 399:28 139 [Editor: "Generate a right" "Right".] 400:8 140 [Editor: "Performs matrix multiplication" "Matrix product".] 400:18 141 [Editor: "Returns the maximum" "Maximum".] 401:32 142 [Editor: "Determine . . . first" "Location of an".] 402:4 143 [Editor: "Choose . . . mask" "Value of TSOURCE or FSOURCE according to the value of MASK".] 404:9 144 [Editor: insert "of " after "Merge".] 404:22 145 [Editor: "Return the minimum" "Minimum".] 405:18 146 [Editor: "Determine . . . first" "Location of an".] 405:27 147 [Editor: "Moves" "Move".] 408:22 148 [Editor: "Copies" "Copy".] 409:15 149 [Editor: "Returns the nearest" "Nearest".] 410:2 150 [Editor: "Returns a newline" "Newline".] 410:13 151 [Editor: "Performs a bitwise" "Bitwise".] 411:7 152 [Editor: "Returns . . . constructor" " Disassociated pointer of unallocated allocatable entity".] 411:26-27 153 [Editor: "Returns the number" "Number".] 412:29 154 [Editor: "Pack . . . one" "Array of rank one packed".] 413:13 155 [Editor: "Determine whether" "True if and only if ".] 413:30 156 [Editor: "Returns the number" "Number".] 414:19 157 [Editor: "Return the bitwise" "Bitwise".] 414:30 158 [Editor: "Returns the decimal" "Decimal".] 415:2 159 [Editor: "Determine whether" "True if and only if ".] 415:13 160 [Editor: "Returns the base" "Base".] 416:20 161 [Editor: "Returns" "Generate".] 416:30 162 [Editor: "Restarts or queries" "Restart or query".] 417:8 163 [Editor: "Returns the decimal" "Decimal".] 418:6 164 [Editor: "Convert" "Conversion".] 418:19 165 [Editor: "Concatenate" "Concatenation".] 419:8 166 [Editor: "Returns the reciprocal" "Reciprocal".] 420:3 167 [Editor: "Inquires whether" "True if and only if ".] 420:13 168 [Editor: Delete "Returns".] 420:22 169 [Editor: "Scan a string for" "Position in a string of ".] 421:7 170 [Editor: "Returns a value" "Value".] 421:30 171 [Editor: "Returns the value" "Value".] 422:4 172 15 February 2007 Page 5 of 9 15 February 2007 J3/07-116r2 [Editor: "Returns a value" "Value".] 422:33 173 [Editor: "Returns a value" "Value".] 423:8 174 [Editor: "Returns the model" "Model".] 423:36 175 [Editor: "Returns the shape" "Shape".] 424:9 176 [Editor: "Performs a right" "Right".] 424:21 177 [Editor: "Performs a left" "Left".] 425:2 178 [Editor: "Performs a right" "Right".] 425:11 179 [Editor: "Returns the extent" "Extent".] 426:21 180 [Editor: "Returns the absolute" "Absolute".] 427:3 181 [Editor: "Replicates . . . greater" "Array with rank that is one greater than SOURCE formed by 427:14-16 182 broadcasting SOURCE along a specified dimension.] 183 [Editor: "Returns the storage" "Storage".] 428:11 184 [Editor: Insert "of " after "Sum".] 428:26 185 [Editor: "Returns" "Return".] 429:26 186 [Editor: "Returns a list" "Rank one array of the indices of the images" (the result is certainly not an 430:24 187 array of images).] 188 [Editor: "Returns the index" "Index".] 431:1 189 [Editor: "Returns the smallest" "Smallest".] 431:24 190 [Editor: "Count the number" "Number".] 432:3 191 [Editor: "Returns . . . with" "Data ob ject having" and delete "interpreted".] 432:12-13 192 [Editor: Insert "of " after "Transpose".] 433:5 193 [Editor: "Returns the argument" "Argument".] 433:14 194 [Editor: "Returns all the upper" "Upper".] 433:23 195 [Editor: "Unpack . . . into" "Array of rank one unpacked from".] 434:14 196 [Editor: "Verify . . . position" "Position" and "the first" "a".] 434:32-33 197 [Editor: "Returns a processor" "Processor" twice.] 436:7,16 198 3 Simplify argument descriptions 199 Argument descriptions are sometimes verbose, e.g., "shall be scalar and of type integer," and sometimes 200 terse, e.g., "shall be a scalar integer initialization expression." The verbose ones could be simpler. 201 [Editor: "of . . . an" "a logical".] 354:18 202 [Editor: "scalar . . . integer" "an integer scalar".] 354:18+1 203 [Editor: "of . . . an" "a logical array".] 355:24 204 [Editor: "scalar . . . integer" "an integer scalar".] 355:24+1 205 [Editor: "Y shall . . . argument" "no actual argument shall correspond to Y" 363:0-1 206 [Editor: "and" comma, insert "and shape" after "parameters", delete ", and shall . . . CO ARRAY".] 365:19+1-2 207 [Editor: "type . . . complex" `numeric type" twice.] 367:9+1,19+1 208 15 February 2007 Page 6 of 9 15 February 2007 J3/07-116r2 [Editor: "of . . . an" "a logical".] 370:29 209 [Editor: "scalar and of type integer" "an integer scalar".] 370:29+1 210 [Editor: "scalar . . . character" "a default character scalar".] 373:4+1 211 [Editor: "scalar . . . character" "a default character scalar".] 373:5+1 212 [Editor: "scalar . . . character" "a default character scalar".] 373:6+1 213 [Editor: "of . . . one" "a rank-one default integer array".] 373:7+1 214 [Editor: "may . . . array" "shall be an array of any type".] 376:28 215 [Editor: "scalar and of type integer" "an integer scalar".] 377:1+1 216 [Editor: "of type" "a", delete "and shall be".] 379:3+1 217 [Editor: "of type" "a", delete "and shall be".] 379:4+1 218 [Editor: "of type" "a", delete "and shall be a".] 379:5+1 219 [Editor: "of type" "a", delete "and shall be a".] 379:6+1 220 [Editor: "of type" "a", delete "and shall be a".] 379:7+1 221 [Editor: "of . . . array" "an array of intrinsic type".] 380:24 222 [Editor: "scalar . . . integer" "an integer scalar".] 380:25+1 223 [Editor: "scalar . . . logical" "a logical scalar".] 380:29 224 [Editor: "of . . . integer" "a rank-one integer array".] 382:12+1 225 [Editor: "scalar . . . integer" "default integer scalar".] 382:13+1 226 [Editor: "scalar . . . integer" "default character scalar".] 382:14+1 227 [Editor: "scalar . . . character" "a default character scalar".] 383:21+1 228 [Editor: "scalar . . . integer" "a default integer scalar".] 383:22+1 229 [Editor: "scalar . . . integer" "a default integer scalar".] 383:23+1 230 [Editor: "scalar . . . integer" "a default integer scalar".] 384:4 231 [Editor: "scalar . . . character" "a default character scalar".] 384:7+1 232 [Editor: "scalar . . . integer" "a default integer scalar".] 384:8+1 233 [Editor: "scalar . . . integer" "a default integer scalar".] 384:9+1 234 [Editor: "scalar . . . character" "a default character scalar".] 385:5+1 235 [Editor: "scalar . . . character" "a default character scalar".] 385:6+1 236 [Editor: "scalar . . . integer" "a default integer scalar".] 385:7+1 237 [Editor: "scalar . . . integer" "a default integer scalar".] 385:8+1 238 [Editor: "scalar . . . logical" "logical scalar".] 385:9+1 239 [Editor: "a scalar . . . integer" "an integer scalar".] 386:29+1 240 [Editor: "a scalar . . . integer" "an integer scalar".] 388:2+1 241 [Editor: Insert "integer" before "array" and delete "and shall be of type integer".] 390:18+1,19 242 [Editor: "a scalar . . . integer" "an integer scalar".] 392:21+1 243 15 February 2007 Page 7 of 9 15 February 2007 J3/07-116r2 [Editor: "a scalar . . . integer" "an integer scalar".] 395:6+1 244 [Editor: "of . . . an" "a character scalar or a character".] 396:2+1 245 [Editor: "If . . . two" "MATRIX A and MATRIX B shall not both have rank one".] 400:21+3-5 246 [Editor: Insert "an array" after first "be", delete "It shall be an array."] 402:8 247 [Editor: "scalar . . . integer" "an integer scalar".] 402:8+1 248 [Editor: Insert "an array" after first "be", delete "It shall be an array."] 403:17 249 [Editor: "scalar . . . integer" "an integer scalar".] 403:17+1 250 [Editor: Insert "an array" after first "be", delete "It shall be an array."] 405:31 251 [Editor: "scalar . . . integer" "an integer scalar".] 405:31+1 252 [Editor: Insert "an array" after first "be", delete "It shall be an array."] 407:5 253 [Editor: "scalar . . . integer" "an integer scalar".] 407:5+1 254 [Editor: "of . . . array" "a real array".] 411:19 255 [Editor: "may . . . array" "shall be an array of any type".] 413:16 256 [Editor: "of . . . array" "a logical array". 413:32+1 257 [Editor: "scalar . . . integer" "an integer scalar".] 414:1+1 258 [Editor: Insert "of . . . array" "an array of numeric type"] 415:27 259 [Editor: "scalar . . . integer" "an integer scalar".] 415:27+1 260 [Editor: "scalar . . . character" "a character scalar".] 419:11 261 [Editor: "scalar . . . integer" "an integer scalar".] 419:12 262 [Editor: "may . . . array" "shall be an array of any type".] 419:21+1 263 [Editor: "scalar . . . integer" "an integer scalar".] 421:32 264 [Editor: "scalar . . . integer" "an integer scalar".] 422:36 265 [Editor: "scalar . . . integer" "an integer scalar" thrice.] 423:12-14 266 [Editor: "of . . . array" "a scalar or array of any type".] 424:11+1 267 [Editor: "of . . . array" "an array of any type".] 426:24+1 268 [Editor: "scalar . . . integer" "an integer scalar".] 426:25+1 269 [Editor: "of . . . array" "a scalar or array of any type".] 427:18+1 270 [Editor: "of . . . array" "a scalar or array of any type".] 428:14+1 271 [Editor: "of . . . array" "an array of numeric type".] 429:2 272 [Editor: "scalar . . . integer" "an integer scalar".] 429:2+1 273 [Editor: "scalar . . . integer" "an integer scalar".] 429:28+1 274 [Editor: "scalar . . . real" "an integer or real scalar".] 429:29+1 275 [Editor: "scalar . . . integer" "an integer scalar".] 429:30+1 276 [Editor: Delete `and may be".] 431:4 277 [Editor: "scalar . . . integer" "a default integer scalar".] 431:4+1 278 15 February 2007 Page 8 of 9 15 February 2007 J3/07-116r2 [Editor: "of type" "a", delete ". It may be a" and "an" giving "a real scalar or array".] 431:27+1 279 [Editor: "of . . . array" "a scalar or array of any type" twice.] 432:16-17 280 [Editor: "scalar . . . integer" "an integer scalar".] 432:17+1 281 [Editor: "of type" "a", delete "and shall be".] 433:16 282 [Editor: "may . . . array" "shall be an array of any type".] 433:25+1 283 [Editor: "scalar . . . integer" "an integer scalar".] 433:26+1 284 [Editor: "may . . . one" "shall be a rank-one array of any type".] 434:16+1 285 [Editor: "an . . . logical" "a logical array".] 434:18 286 4 Shap es are arrays, not lists 287 Editor: Replace the parentheses around shapes by square brackets at the following places: 288 354:21-22 355:27-28 371:4-5 372:8+2-372:9 381:2-3 386:34 388:7 392:25-26 400:28-31 402:16 403:21-22 406:6 407:9-10 414:4-5 415:31-32 429:6-7 433:9 5 Improp er use of "absent" 289 In those intrinsic procedures that have two versions, usually having one with a DIM argument, the term 290 "absent" is used improperly: the DIM argument is not optional. Editor: Replace "is absent" by "does 291 not appear" at the following places: 292 381:1 386:33 388:6 392:25 402:14 403:21 406:4 407:9 415:31 429:6 15 February 2007 Page 9 of 9