(j3.2006) (SC22WG5.3541) Interp ballot extension

Malcolm Cohen malcolm
Mon Mar 3 03:29:08 EST 2008


Yes   No   Number     Title
---   -N-  F03/0049  Separators in list-directed output
                      involving UDDTIO
-C-   ---  F03/0050  Questions about internal files
-C-   ---  F03/0086  Elemental and BIND(C)
-Y-   ---  F03/0088  Defined operations/assignments and
                      VOLATILE/ASYNCHRONOUS
-Y-   ---  F03/0089  Interoperability of non-BIND derived types
-Y-   ---  F03/0092  Procedure characteristics and unlimited
                      polymorphic
-C-   ---  F03/0093  Allocatable array on intrinsic assignment with
                      scalar expr
-C-   ---  F03/0094  Final subroutine and VALUE attribute
-Y-   ---  F03/0095  Bounds remapped pointer assignment and ASSOCIATED
-Y-   ---  F03/0097  Blanks as separators in NAMELIST input
---   -N-  F03/0098  Does allocate with source= define subcomponents?
-C-   ---  F03/0101  Is UDDTIO output suitable for namelist and
                      list-directed input

======================================================================


NUMBER: F03/0049

EDITS:

[241:5+] In Section 10.9.2, add the following to the end of the
          first paragraph:
   "Two undelimited character sequences are considered adjacent when
    both were written using list-directed input/output, no intervening
    data transfer or input/output file positioning operations occurred,
    and both were written either by a single data transfer statement,
    or during the execution of a parent data transfer statement along
    with its child data transfer statements."

This immediately raises a followup question: when it says
    "no intervening data transfer ... operations occurred",
does it mean on the same unit or on any unit?

For example, consider the very slightly modified:

MODULE m2
   TYPE t
     INTEGER i
   END TYPE
   INTERFACE WRITE(FORMATTED)
     MODULE PROCEDURE formattedWriteT
   END INTERFACE
CONTAINS
   SUBROUTINE formattedWriteT(dtv, unit, iotype, v_list, iostat, iomsg)
     CLASS(t),         INTENT(IN)    :: dtv
     INTEGER,          INTENT(IN)    :: unit
     CHARACTER(LEN=*), INTENT(IN)    :: iotype
     INTEGER,          INTENT(IN)    :: v_list(:)
     INTEGER,          INTENT(OUT)   :: iostat
     CHARACTER(LEN=*), INTENT(INOUT) :: iomsg

     CHARACTER(100) temp

     WRITE (temp,'(I0)') dtv%i
     WRITE (unit,*) TRIM(temp)

   END SUBROUTINE
END MODULE

PROGRAM foo2
   USE m2
   TYPE(t) :: t1 = t(5)
   OPEN(10, FILE='foo.txt', ACCESS='SEQUENTIAL', FORM='FORMATTED', &
        DELIM='NONE')
   WRITE(10, *), 'xyz', t1, 'zyx'
END PROGRAM

Does this write
   xyz 5xyz
or
   xyz5xyz
?

That is, is the data transfer which is an internal file write
affect whether 'xyz' and TRIM(temp) are adjacent?

Note that in F2008 this might involve two separate units instead.

I submit that "on that unit" ought to be inserted into the edit
after "operations", making the whole edit

[241:5] In Section 10.9.2, add the following to the end of the
         first paragraph:
   "Two undelimited character sequences are considered adjacent when
    both were written using list-directed input/output, no intervening
    data transfer or input/output file positioning operations on that
    unit occurred, and both were written either by a single data
    transfer statement, or during the execution of a parent data
    transfer statement along with its child data transfer statements."

Note: The location reference should be [241:5] since we are adding to
       the paragraph, not inserting after the existing one.

----------------------------------------------------------------------

NUMBER: F03/0050

The edits should identify the paragraph as being the seventh one.

----------------------------------------------------------------------

NUMBER: F03/0086

In the edit, "ELEMENTAL" should be "elemental".
We only use uppercase for keywords and attributes,
we use "elemental procedure" everywhere else e.g. [287:10,15]

----------------------------------------------------------------------

NUMBER: F03/0088

For F2008 I'd prefer to expand the definition of actual argument.

----------------------------------------------------------------------

NUMBER: F03/0093

EDITS:

[139:22-] Insert new sentence at beginning of paragraph
   "If <variable> is an unallocated allocatable array, <expr> shall
    be an array of the same rank as <variable>."

COMMENT: "be an array of the" -> "have".

----------------------------------------------------------------------

NUMBER: F03/0094

The edit is to the last sentence of C473 in 4.5.5 "Final subroutines".

----------------------------------------------------------------------

NUMBER: F03/0098

EDITS:

[113:21]  At the end of the last sentence in 6.3.1.1 insert
"unless they are defined by a SOURCE= specifier"

No.  They can be allocated but not defined.  This should read
something like
   "unless the SOURCE= specifier appears and the corresponding
    component of the <source-expr> is allocated".

[421:27-28] 16.5.5, list item 19, modify by adding after
        "Allocation of an object", "except by an ALLOCATE statement
        with a SOURCE= specifier".

No - splitting "object" apart from "that has" makes the sentence
impossible to parse.  Maybe insert after "Allocation", comma plus
the insert above plus comma.  Or rewrite?

[422:41]  16.5.6, list item (11) insert "with no SOURCE= specifier" after
"ALLOCATE statement"

Probably ok, but maybe better to rewrite the whole item (11) as
   "Successful allocation of an ALLOCATE statement with no SOURCE=
    specifier causes a subcomponent of an allocated object to become
    undefined if default initialization has not been specified for
    that subcomponent."
?

----------------------------------------------------------------------

NUMBER: F03/0101

EDITS:

"derived type"->"derived-type", thrice.

[241:5]  Add at the end of the paragraph
"The form of the output produced by a user-defined derived type output
routine invoked during list-directed output is specified by the
invoked routine.  It need not be compatible with list-directed input."

Should this not be "The form of the values produced", the same as the
opening sentence of the paragraph?

Should the last sentence start "This form" to avoid ambiguity over "It"?

----------------------------------------------------------------------


-- 
................Malcolm Cohen (malcolm at nag-j.co.jp)




More information about the J3 mailing list