(j3.2006) 5.4.7p2 goes a little bit too far

Van Snyder Van.Snyder
Mon Jul 22 17:08:30 EDT 2013

On Mon, 2013-07-22 at 16:30 +0900, Malcolm Cohen wrote:
> >F08/0062 established that it would be onerous to require a processor to
> >initialize part of an object using default initialization and part using
> >explicit initialization in a DATA statement.  I interpreted this to mean
> >"some components of...," not "some array elements of...," since that's
> >how Tobias posed the question.
> Sorry, I do not see how an F2008 interpretation asked in 2012 "established" what 
> we intended in Fortran 95.  Nor do I see how over-interpreting the wording of 
> that explanation is likely to lead to good things.  Obviously an array element 
> is "part of" an array object...
> >  A question Tobias didn't ask was whether
> >we intended to prohibit this:
> >
> >  type(t) :: B(3)
> >  data B(2) / t(2,39.0) /
> >
> >which doesn't impose the burden contemplated by F08/0062.
> Well it does impose essentially the same burden, and does violate the first 
> sentence of the explanation.

The second sentence of the explanation is "It was considered to be a
burden on processors to be required to initialize some parts of a
structure using default initialization, and other parts of it

Subclause 1.3.140 defines a structure as "a scalar object of derived

> One might conjecture that asking this question with an array element would get 
> precisely the same response as asking with a component: it is not conforming and 
> we did it deliberately, to reduce the burden on the processor.

F08/0062 seems pretty obviously to me to be saying that "parts of a
structure" in 5.4.7p2 was aimed at structures, not arrays.

There is no problem with

  real :: A(10)
  data a(5) / 42.0 /

This flies in the face of the first sentence of F08/0062: "The intention
was that an object be initialized entirely in a type declaration

So which was it in F08/0062: components of structures, or elements of
arrays?  I think clearly the former.

More information about the J3 mailing list