(j3.2006) J3 08-141 Fortran interp letter ballot #16 - due 11-Apr-2008

Bill Long longb
Wed Apr 2 19:01:27 EDT 2008

Ballot from Bill Long, Cray Inc.

Yes   No    Number     Title

-Y-   ---   F03/0099   Clause 16 does not account for volatile
-Y-   ---   F03/0102   Evaluation of bound-expr in data pointer
-C-   ---   F03/0109   Referencing deferred binding via absent
                        dummy argument
-C-   ---   F03/0111   Is defined assignment to a vector subscripted
                        array allowed?
---   -N-   F03/0112   attributes allowed for dummy arguments in
                        defined assignments
-Y-   ---   F03/0113   Size and uniqueness considerations for ID=
-Y-   ---   F03/0114   Inconsistent restrictions on i/o specifiers

Comment for F03/0109:

I'm not sure at what point we made the change, but in f08 a
<proc-component-ref> has a <scalar-variable> rather than a
<variable>. (Compare R741 on page 157 of 08-007r2 with [143:35] of
04-007.)  In the edits section of the interp, for list item (12) we
still have <variable>.  If there is a different interp to fix this in
f03, then this edit should be coordinated with that interp. Otherwise,
it might be a good idea to include a "Note to the editor" that the
edit should say <scalar-variable> when applied to f08, since this text
is not near Clause 7 where this change occurred.

Comment for F03/0111:

In the first paragraph following the QUESTION, "I does" should be "It
does" at the beginning of the first sentence.

Comment for NO vote on F03/0112:

I find multiple problems with this interp answer.

1) At the end of the first paragraph of the ANSWER, the reference
   [363:6...] should be [263:6...].

2) While the examples all use the POINTER attribute, the answer
   applies to both POINTER and ALLOCATABLE.  I think the answer is
   wrong for the case of the ALLOCATABLE attribute for the second
   dummy variable.  The corresponding actual argument is treated as
   "the right-hand side enclosed in parentheses" [263:11-12]. That is
   an expression, and does not have the allocatable attribute.  But
   the rules for argument association at [269:25-26] unconditionally
   require that if the dummy is allocatable then the actual shall also
   be allocatable. Allowing allocatable on the second argument results
   in a contradiction.  The ANSWER section reasoning, that "The
   standard places very few restrictions on the arguments to defined
   assignment subroutines..." is unconvincing.  I agree that at the
   location cited (modulo fixing the page number) there are few
   requirements.  That does not mean that all the other, general
   requirements for subroutines are somehow suspended just because
   they are not repeated there.  For that matter, do we allow the
   dummy argument name to have 137 characters? It's not prohibited in
   the cited text.  I think the ALLOCATABLE attribute should not be
   allowed, and is not allowed in the current f03 standard, for the
   second dummy variable.

3) The case for the POINTER attribute on the second dummy variable is
   slightly more interesting.  This would be legal in f08.  However,
   in f03 we still require that if the dummy is POINTER, the actual
   shall also have the POINTER attribute [269:14-15].  Since the
   interpretation is for f03, POINTER should be, and already is,
   disallowed for the second dummy variable.

Therefore, I think the answer to question 1 should be no. I also think
the NOTE: at the end of the interp should be deleted. In f08 we do
allow POINTER, and I'm not convinced it is harmful.

Bill Long                                   longb at cray.com
Fortran Technical Support    &              voice: 651-605-9024
Bioinformatics Software Development         fax:   651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120


More information about the J3 mailing list