J3/00-275r1
To: J3
From: Malcolm Cohen
Date: 14th September 2000
Subject: Ordering
1. Introduction
The order of components for the purposes of i/o and constructors is poorly
specified (duelling sections). Instead of duplicating the concept both in
the i/o section and the constructor section, we should define a term and
use it.
The ordering for type parameters is similarly poorly specified. Although
this ordering is used only in one place (4.5.5 Derived-type specifier) the
cleanest solution is to define a term and use it.
This paper is inspired by 00-251.
2. Edits to 00-007r2
[52:44-49] Delete duelling paragraph.
[54:28+] Insert new section
"4.5.3a Component order
<> is the ordering of the components of a derived type
that is used for intrinsic formatted input/output and structure constructors
(when component name keywords are not used).
The component order of a nonextended type is the order of the
declarations of the components in the derived type definition. The
component order of an extended type consists of the component order of
its parent type followed by any additional components in the order of
their declarations in the extended derived-type definition.
4.5.3b Type parameter order
<> is the ordering of the type parameters of a
derived type that is used for derived type specifiers.
The type parameter order of a nonextended type is the order of the
type parameter list in the derived-type definition. The type parameter
order of an extended type consists of the type parameter order of its
parent type followed by any additional type parameters in the order of
the type parameter list in the derived-type definition."
[55:3-6] Replace "In the absence ... etc.." with
"Type parameter values that do not have type parameter names specified
correspond to type parameters in type parameter order (4.5.3b)."
[55:25-27] Replace "sequentially corresponding ... ,etc.."
with "corresponding component in component order (4.5.3a)."
[183:38-39] Replace "in the same order ... derived type"
with "in component order (4.5.3a)"
[399:23+] Insert new entry
"<> (4.5.3a): The ordering of the of a
that is used for formatted input/output and for
structure constructors."
[407:24+] Insert new entry
"<> (4.5.3b): The ordering of the
of a that is used for derived-type specifiers."
===END