To: J3 J3/15-164
Subject: Constraint C411 on TYPE(*) does not admit scalars
From: Van Snyder
Reference: 15-007r1
Date: 2015 June 07
1. Introduction
===============
Subclause 5.5.8.7p1 explicitly allows the effective argument associated
with an assumed-rank dummy argument to be a scalar: "this rank can be
zero."
Therefore, a scalar TYPE(*) actual argument should be allowed to
correspond to an assumed-rank dummy argument.
C411 says that an assumed-type actual argument that corresponds to an
assumed-rank dummy argument shall be assumed-shape or assumed-rank.
"Scalar" is conspicuously absent.
This inconsistency should be corrected.
2. Edits
========
[54:18 C411] Before "assumed-shape" insert "a scalar, or an". After
"assumed-rank" insert "array", making the sentence end "... shall be a
scalar, or an assumed-rank or assumed-shape array."
{C411 came from C407c in subclause 9.4 on page 34 of N1904, TS 29113,
"Further Interoperability of Fortran with C." We don't do interps or
publish corrigenda on Technical Specifications. Should this difference
from TS 29113 be brought to readers' attention?}
[xviii Introduction under "Data usage and computation"] Insert a
sentence: "An assumed-type actual argument that corresponds to an
assumed-rank dummy argument is allowed to be a scalar; assumed type and
assumed rank were introduced in ISO/IEC TS 29113, not ISO/IEC
1539-1:2010."