To: J3 12-130r1 From: Reinhold Bader/Bill Long Subject: Edits to 12-119 Date: 2012 February 14 References: 12-119 The changes proposed are from an email sent by Reinhold Bader 11-feb-2012. Edits to 12-119: --------------------  In 7.2 RANK, The example does not really make clear why this function is needed. Replacing the existing sentence by "If X is a dummy argument declared with REAL X(..) and is argument associated with an effective argument that was declared REAL Y(:,:,:), RANK(X) has the value 3." {Modified slightly from Reinhold's original.} --------------------- In 8.3.5.5 CFI_establish, in the paragraph following the extents description, in the penultimate sentence change "... but does not describe a Fortran assumed-shape array". to "... but does not describe a data object." {Objects other that assumed-shape arrays are included in the list of things not described.} --------------------- In 8.6 Restrictions on lifetimes, paragraph 2, last sentence, change "object it describes" to " object described by the C descriptor". {Clarify "it".} ----------------------- In 8.7 Interoperability of procedures and procedure interfaces, paragraph 5, second sentence (top of page 31) change: "The C descriptor shall describe an object with the same characteristics as the effective argument; " to "The value of the \cf{attribute} member of the C descriptor shall be compatible with the characteristics of the dummy argument. The members of the C descriptor other than \cf{attribute} and \cf{type} shall describe an object with the same characteristics as the effective argument. The type member" {In a call from Fortran to C, the attribute member of a C descriptor pointed to by a formal parameter gets its value from the corresponding dummy argument in the Fortran interface. This is necessary because of cases such as an allocatable actual argument corresponding to an assumed-shape dummy in the interface. The attribute has to be determined by the assumed-shape dummy and not the allocatable actual. The other members in the descriptor get their values from the corresponding effective argument, because the corresponding dummy in the interface could be assumed type or assumed rank. Whether an object is allocatable, pointer, or neither is a characteristic, so the current sentence is misleading.} ------------------------ In 8.7 Interoperability of procedures and procedure interfaces, in the last paragraph add a sentence: "An absent optional dummy argument in a reference to an interoperable procedure is indicated by a corresponding argument with the value of a null pointer." {Cover the case of a called procedure in Fortran.} --------------------  In 9.8 Edits to clause 13, in the edits for 12.7.137a RANK, Replacing the existing sentence following "Example." with "If X is a dummy argument declared with REAL X(..) and is argument associated with an effective argument that was declared REAL Y(:,:,:), RANK(X) has the value 3." ---------------------