(j3.2006) Question about constant expressions with len typeparameters
Malcolm Cohen
malcolm
Mon Feb 16 22:50:40 EST 2015
Ages ago, Bill Long asked (and I didn't see a reply...):
<<<
For a type definition
type foo (n)
integer,len :: n
real :: a(1:n)
end type
>>>
...
<<<
it is allowed to declare a named constant like this:
type(foo(3)),parameter :: c = foo(3)(a = [1.0,2.0,3.0])
>>>
Yes.
<<<
The rules for constant expressions say you can rely on the value of a previously
defined KIND type parameter, but the case for a LEN parameter seems less
obvious.
>>>
I see no "rely"ing on anything here, the expression contains no reference to the
value of any length type parameter.
This would not seem to be different from
CHARACTER(LEN=17),PARAMETER :: CH = 'abcdeghijklmnopqr'
or indeed
REAL,PARAMETER :: X(3) = [ 1.0,2.0,.30]
(it being that array bounds are more like LEN type parameters than they are like
KIND type parameters).
Cheers,
--
................................Malcolm Cohen, Nihon NAG, Tokyo.
More information about the J3
mailing list