diff --git a/J3-Papers/edits/25-112_misc.txt b/J3-Papers/edits/25-112_misc.txt index 8af887b..c987a12 100644 --- a/J3-Papers/edits/25-112_misc.txt +++ b/J3-Papers/edits/25-112_misc.txt @@ -537,18 +537,38 @@ this point. [317:10+] Insert new paragraphs to address deferred arguments: - "An entity with a kind-type parameter whose value depends on a - deferred argument is only TKR compatible with another entity, - if that entity has the same kind-type parameter declared with + "A kind-type parameter whose value depends on a deferred argument + is only the same as another kind-type parameter declared with a syntactically equivalent expression. - An entity whose rank depends on a deferred argument is only TKR - compatible with another entity, if that entity has its rank + An entity whose rank depends on a deferred argument only has + the same rank as another entity if that entity has its rank declared with a syntactically equivalent expression. If the rank of an implied-rank entity is not declared with a rank clause, it does not have the same rank as any other entity." + { Is "depends on" acceptable terminology here? } +{ UTI: We should define "syntactically equivalent" } +{ UTI: Prevent specifying rank and bounds for deferred constants I.e. + +DEFERRED INTEGER, PARAMTER :: C(*) +DEFERRED INTEGER, PARAMETER, RANK(SIZE(C)) :: D(C) + +REQUIREMENT R(C, F) + DEFERRED INTEGER, PARAMETER :: C + DEFERRED INTERFACE + INTEGER FUNCTION F(X) + INTEGER, RANK(C+1) :: X + END FUNCTION +END REQUIREMENT +DEFERRED INTEGER, PARAMETER :: A +DEFERRED INTEGER, PARAMETER, RANK(A) :: B +REQUIRES R(A, F) +... +PRINT *, F(B) ! Should be compile time error +} + NOTE Some examples of implied-rank entities are shown in the following example template. C is explicitly declared