07-240 To: J3 From: Van Snyder Subject: Comments on Clause 9 Date: 2007 July 05 1. Edits w.r.t. 07-007r2 [222:5]------------------------------------------------------------------- What is the point of this paragraph? Does one really need the standard to give permission to prepare formatted records by some means not specified by the standard? If we really need this paragraph, it ought to be a note, and there ought to be a similar one in 9.2.3, something like "Although unformatted records may also be prepared by means other than Fortran, it is probably more difficult than preparing formatted records." Then one is led to wonder "Do I need permission from the standard to read records prepared by Fortran using some means other than Fortran?" I prefer Editor: Delete the paragraph. [222:30-223:2]------------------------------------------------------------ A file has a set of names, but it only has one if it's opened with TEAM=? Editor: Replace the "has" in "has the same name..." by "shall be opened using". Question without edit: Does the NAME= specifier of an INQUIRE statement return the same name on every image? [226:35-227:19]----------------------------------------------------------- What if an error condition occurred before a REWIND or BACKSPACE statement? Either specify "occurred after what" or replace "occurred" by "occurs" throughout 9.3.4.4. Maybe use "occurs during data transfer" or "occurs during execution of a data transfer statement" at [226:35], and maybe insert "upon completion of execution of that statement" after "indeterminate". It isn't necessary to include all that detail throughout the subclause since the first paragraph isn't about any particular kind of connection. [230:22]------------------------------------------------------------------ Does I/O in the main program interfere with I/O in a procedure defined by a different language? I think the intended answer is "no". Editor: Insert "main program or" before "procedure" twice. [231:25-28]--------------------------------------------------------------- Editor: Move to [235:21+]. [231:29-30]--------------------------------------------------------------- Duplicates [230:11-12]. Editor: Delete the paragraph. [232:19-22]--------------------------------------------------------------- Editor: Move to [235:20+]. [232:23-25]--------------------------------------------------------------- Editor: Move to [234:13+]. [234:17]------------------------------------------------------------------ "previous" doesn't contribute anything. It makes more sense to discuss the unit that NEWUNIT identifies. Editor: Delete "previous" and replace "file" by "unit". [234:39]------------------------------------------------------------------ Could specify more precisely than "processor dependent" for character types the same as the encoding. Editor: Replace "type default character" by "of the same character type as the file encoding"; replace "nondefault characters" by "characters of a type different from the encoding type". (Does this work for UTF-8?) [236:18]------------------------------------------------------------------ Editor: At the end of the paragraph insert "If the file no longer exists, a file of the same name may be created and connected to the program." [236:23]------------------------------------------------------------------ Editor: Insert a blank after "step". [238:22+]----------------------------------------------------------------- Editor: Delete extraneous newpage. [239:2,3]----------------------------------------------------------------- Editor: Insert "(R913)" at the beginning of C910 and C911. [239:10-12, 19-20]-------------------------------------------------------- Editor: Combine C916 and C917, and part of C921: C916 (R913) A shall not appear if a REC= specifier, , , or appears. At [239:19-20] delete ", a shall not be a whole assumed-size array or a procedure pointer. [245:7-9]----------------------------------------------------------------- Editor: Simplify the item: o In an unformatted input//output statement, an effective list item of derived type that is not processed by a user-defined derived-type input/output procedure (9.6.4.7) is treated as a single value in a processor-dependent form. [245:13]------------------------------------------------------------------ In light of [244:14], what is the point of the naked "or allocatable"? Editor: Insert "unallocated" before "allocatable". Then insert "effective" before "input" and before "output" at [244:14], and move that paragraph to [246:2+] (to put it after the definition of "effective list item"). The effect of this is that allocatable components (or their elements or components) can be ordinary effective list items, while unallocated ones have to be processed by DTIO procedures. [245:17-20, Note 9.38, 245:23-246:2]-------------------------------------- These list items have nothing to do with deciding whether to expand a composite list item, as announced in the preamble to the list at [244:19-20]. Editor: Move [245:17-20] and Note 9.38 to [245:23-], then make the moved item and the one beginning at [245:23] ordinary paragraphs. [248:25-26]--------------------------------------------------------------- Editor: Move to [248:6+]. [248:30]------------------------------------------------------------------ Editor: Insert "is" or "becomes" before "established". [249:27]------------------------------------------------------------------ Editor: Move to [249:1+]. [249:33]------------------------------------------------------------------ Editor: Move to [249:28+]. [254:9[------------------------------------------------------------------- "therefore" sounds like execution will inevitably be terminated if a DTIO procedure returns a nonzero value in iostat. This is not true (hopefully) if the parent data transfer statement had an IOSTAT=, ERR= or END= specifier Editor: Replace "therefore" by "consequently" or some other less inevitable term than "therefore". [254:34]------------------------------------------------------------------ Editor: Replace "location" by "unit". [257:14]------------------------------------------------------------------ Editor: Insert "or colon" after "data". [258:14,15]--------------------------------------------------------------- Editor: Insert "(R921)" at the beginning of C939 and C940. [258:26+3]---------------------------------------------------------------- Editor: In the second line of Note 9.55, replace "And" by "An". [259:9,12-13]-------------------------------------------------------------- Editor: Insert "or whose connect team has more than one image" after "access". Then delete "A unit whose connect team ... statement." [259:18-19]---------------------------------------------------------------- Editor: Insert "(R926)" at the beginning of C942 and C943. [261:2,3]----------------------------------------------------------------- Editor: Insert "(R927)" at the beginning of C945 and C946. [261:11-14]--------------------------------------------------------------- The paragraph doesn't make it clear that one has to execute a FLUSH statement before a READ statement. Editor: Replace the first sentence by "Execution of a <> causes data written to an external unit in one segment by one image of a connect team to be available to a READ statement for that unit on a different image of the connect team, provided that image executes a FLUSH statement for that unit in a subsequent segment, and before the READ statement." Insert "subsequent" before "READ" in the second sentence. [261: Note 9.62]---------------------------------------------------------- Editor: Insert a blank before the closing parenthesis. [263:23]------------------------------------------------------------------ Editor: Replace "it" by "the " for consistency with subclauses 9.10.2.4-8. [264:21]------------------------------------------------------------------ Editor: Replace "variable" by "". [264:31]------------------------------------------------------------------ Editor: Replace "it" by "the ". [267:21]------------------------------------------------------------------ Editor: Replace "than" by "from". [269:34]------------------------------------------------------------------ Editor: Replace "error" by "end-of-file condition". [269:36]------------------------------------------------------------------ Editor: Replace "in" by "during". ========================================================================== 2. Questions without answers or edits I couldn't find any explicit specification whether unformatted I/O is permitted on INPUT_UNIT, OUTPUT_UNIT or ERROR_UNIT. Is there one? Should there be one? Should we have "for unformatted input [output]" after "preconnected" in 13.8.[6]9[17]? [224:5-6]----------------------------------------------------------------- With FLUSH an WAIT, especially WAIT for a complete output operation, is this sentence still true? With INQUIRE was it ever true? [225:7-9]----------------------------------------------------------------- Do the record markers have to occupy file storage units, or can they be represented by a separate data structure? Also see Note 9.9. [225:17-18]--------------------------------------------------------------- The file specified in an INQUIRE statement is not required to be connected for formatted stream access if the POS= specifier appears. So why is positioning using POS= not mentioned for unformatted stream access? [229:6]------------------------------------------------------------------- Should "on all images" be qualified by whether the unit was opened on the several images on which it is open by TEAM open? [230:1, 230:8, 258:24-26]------------------------------------------------- What benefit accrues by allowing a WAIT operation for a unit that does not exist or is not connected to a file? If WAIT is OK, what's wrong with BACKSPACE or REWIND? [231:10-13, 231:17-18, 231:25-26]----------------------------------------- Is the fact that a unit is already connected to the same file as the one to which it is to be connected determined by comparing the name in the FILE= specifier to the name of the currently-connected file? What if the file has several names (see [222:30])? If "file to be connected to the unit is the same as the file to which the unit is connected" is determined by observing that there is no FILE= specifier, it's better to say that. [231:11]------------------------------------------------------------------ Where does "connections" come from so suddenly? Earlier in the sentence we see "the connection" and "the unit," not "connections" or "units". What does "same connect team" mean? All of the connections in the connect team have to have the same connection? Isn't that a tautology? [249:19+]----------------------------------------------------------------- Should something be said about BITS here? [253:19-20]--------------------------------------------------------------- In light of [257:1], how can he edit descriptor not be DT? [254:20-21]--------------------------------------------------------------- Should this prohibition apply only to the external unit specified by the unit dummy argument? Did we really intend to prohibit changing changable with OPEN statements? It would be more useful if changable modes could be changed, and were restored to their status quo ante when the DTIO procedure completes.