(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
variable
-Y- --- F03/0102 Evaluation of bound-expr in data pointer
assignment
-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