(j3.2006) assumed-size poly actual -> non-poly dummy
Fri Jan 28 18:29:38 EST 2011
Aleksandar Donev wrote:
> On 01/28/11 15:17, Robert Corbett wrote:
>> An implicit selection is done. The implicit selection is not prohibited
>> by the language of the standard. An explicit selection is prohibited by
>> the standard as written.
> I believe you but I do not understand you. What is the rule that
> prohibits an explicit selection, i.e., kills the example below. The rule
> you cited (clause 6.5.2 paragraph 2) does not mention anything about
> components and so I do not understand where this distinction between
> explicit and implicit comes from.
> subroutine sub1(x)
> type(t) :: x(*)
> call sub2(x%i)
> end subroutine
It is my fault. I stated the exclusion as a positive exclusion,
while the standard expresses it as an omitted inclusion. I shall
explain it again using the same sense as the standard.
Clause 6.5.2 of 10=007r1 states
A whole array is a named array or a structure component whose
final /part-ref/ is an array component; no subscript list is
An assumed-size array (22.214.171.124) is permitted to appear as a
whole array in an executable construct or specification
expression only as an actual argument in a procedure
reference that does not require the shape.
is an action statement, which is in turn an executable construct.
The expression x%i is the actual argument of the call statement.
The subexpression x is not an actual argument of the call statement.
It is, instead, the left-most part-ref of a data ref. A whole
array that is an assumed-size array is permitted to appear only as
an actual argument. The array x does not appear as an actual
argument. Therefore, the code fragment you show is not standard
More information about the J3