\documentclass[nocolor,memo]{j3}
\renewcommand{\hdate}{20 September 2004}
\renewcommand{\vers}{J3/04-394}
\usepackage{lineno}
\usepackage{longtable}
\usepackage{xr}
\externaldocument{007}
\input pdftest
\begin{document}
\vspace{-10pt}
\begin{tabbing}
Subject: \hspace*{0.25in}\=Named constant parameter values and extents
from \si{initialization-expr}s\\
From: \>Van Snyder\\
Reference: \>01-180, 04-101\\
\end{tabbing}
\pagewiselinenumbers
\leftlinenumbers
\linenumbers*
\section*{Number}
TBD
\section*{Title}
Named constant parameter values and extents from
\si{initialization-expr}s.
\section*{Submitted By}
J3
\section*{Status}
For Consideration.
\section*{Basic Functionality}
As with character named constants, allow named constants of any type with
length parameters to get their parameter values from the
\si{initialization-expr}. Allow array named constants to get their
extents from the \si{initialization-expr}.
\section*{Rationale}
There was a good reason that a provision was made for named constants of
character type to get their lengths from their
\si{initialization-expr}s. For the same reason, it would be useful if
array named constants could get their extents (or at least the last
dimension's extent) from their \si{initialization-expr}s. For
consistency it would be useful if named constants could get any of their
length parameters from their \si{initialization-expr}s.
\section*{Estimated Impact}
The material at the end of 4.4.4.1 should be moved to \ref{D4:Type
parameters}, and then generalized with a paragraph or two to cover all
length parameters.
Small effect in some subclause of \ref{D5:DIMENSION attribute}, if a
change in syntax is chosen. A few paragraphs to explain how an array
named constant gets its extents from the \si{initialization-expr}.
Estimated at meeting 169 to be at 4 on the JKR scale.
\section*{Detailed Specification}
Allow array named constants to get their extents from the extents of
their \si{initialization-expr}s. There are at least three possibilities
for the syntax.
\begin{enum}
\item Use asterisk only for the last dimension, with its lower bound being
one. This is similar to assumed size for dummy arguments.
\item Use asterisk for every dimension, with the lower bounds being one.
\item Use colon for every dimension, optionally preceded by a lower
bound. This is similar to assumed shape for dummy arguments.
\end{enum}
In every case, the rank of the value would have to be the same as the
rank of the named constant. In the first case, all extents but the last
would have to be the same for the named constant and the
\si{initialization-expr}.
The syntax choice could have depended on the disposition of the proposal
in 04-197 to allow any combination of explicit and assumed shape, but
that one didn't make the cut at meeting 169. If this proposal proceeds,
we ought at least to keep in mind that the choice we make ought to leave
the possibility of a consistent development of the other proposal.
Allow all named constants --- not just array ones --- to get the values
of length parameters from the type parameters of the
\si{initialization-expr}. The syntax should use an asterisk to indicate
that a length parameter gets its value from the corresponding parameter
of the \si{initialization-expr}. This is the way a character named
constant gets the value of its length parameter from the
\si{initialization-expr}. Using a colon to indicate that a length
parameter gets its value from the corresponding parameter of the
\si{initialization-expr} isn't appropriate because this is reserved for
entities with the POINTER or ALLOCATABLE attribute.
For named constants of derived type, one should be able to specify a
length parameter of the named constant, and the corresponding parameter
of the \si{initialization-expr} would have to have the same value. This
is the way that length parameters work in intrinsic assignment, which is
how named constants get their values from their initialization
expressions.
See 01-180 for an example.
\section*{History}
\label{lastpage}
\end{document}