(j3.2006) (SC22WG5.4638) [ukfortran] Issue with C1255 in Interop TS
Malcolm Cohen
malcolm
Tue Mar 13 19:51:09 EDT 2012
>The current para 1 of 15.3.5 is:
>
>"A named scalar Fortran variable is interoperable if and only if its type and
>type parameters are interoperable, it is not a coarray, it has neither the
>ALLOCATABLE nor the POINTER attribute, and if it is of type character its
>length is not assumed or declared by an expression that is not a constant
>expression."
>
>Among things that would appear to qualify as "interoperable" variables
>according to this:
>
>1) an assumed-type dummy argument associated with an interoperable effective
>argument.
No. An assumed-type dummy argument has no declared type so cannot satisfy the
requirements. (Also see final comments.)
>2) an assumed-shape or assumed-rank dummy argument with type and type
>parameters that are interoperable.
Assumed-shape dummy arguments are not scalar.
There might be a problem if we think of assumed-rank variables as being scalar.
Which as it stands I guess we do think of them as being "conditionally" scalar.
Ugh.
So can we have an elemental procedure with an assumed-rank argument? Oh dear.
Maybe we should just change the definition of "scalar" to exclude
assumed-rank...
>Certainly the assumed-rank and assumed-shape cases come under the "new sense"
>of interoperable. Assumed-type is different, but I think still not anticipated
>by the current text.
It is covered in precisely the same way that CLASS(*) is. No-one has been
confused about that, so I see no reason for confusion now.
Remember that unless clear otherwise from the context, "type" means both
declared and dynamic type. It might be a harmless clarification to insert
"declared" into that sentence, but I'd need to think about it more; excluding
dynamic type parameters from consideration certainly looks potentially
problematic, whereas leaving it as the default both declared and dynamic is
definitely ok.
Cheers,
--
................................Malcolm Cohen, Nihon NAG, Tokyo.
More information about the J3
mailing list