Subject: Edits for Nagging Doubt III J3/03-233 From: Kurt W. Hirchert (Meeting 165) 14 Aug 2003 The problem to be addressed by these is described in the original "Nagging Doubts" document, ISO/IEC JTC1/SC22/WG5/N1558. All edits are expressed relative to J3/03-007. ===== Edits ===== Revamp description of the "value" of a derived type. 1. 61:10-16 Replace entire text with the following: "The value of an object of derived type is represent by the collective state of its components embodied in (1) the pointer association of each pointer component, (2) the allocation status and, if they are allocated, the dynamic type and type parameters, bounds, and values of each allocatable component, and (3) the value of each nonallocatable nonpointer component. As long as an object retains the same state and neither the object nor any part of it appears in an operation that requires it to be changeable, the value of that object is unchanged. In those cases where a processor is required to retain the value of an object under circumstances where the value of the original object may be subject to change, the processor may do so by assigning that value to another object of the same shape, type, and type parameters. Such objects shall be subject to default initialization prior to the assignment and finalization after the value has been used. The assignment shall be a defined assignment if the declared type of the object has a consistent type-bound derived assignment and an intrinsic assignment otherwise." {* The above rule should require a processor to call user code only when the type has type-bound defined assignment or a final procedure. Since neither of these exists in Fortran 90/95 code, it should be compatible with existing standards and practice. *} - end -