J3 01-169R2 To: J3 From: /interop Date: 22 March 2001 Subject: VALUE and INTENT(IN), unresolved issue 161 Part 1: At least two vendors on the committee are implementing interoperability features of the F2K draft standard. Both vendors have received complaints about the VALUE attribute implying INTENT(IN). C programmers are accustomed to modifying the value of formal parameters of a function without changing the value of the actual arguments to the function. That is, value formal parameters are often used as local variables during the execution of the function without changing the value of the associated actual arguments. The following edits remove the implicit INTENT(IN) of the VALUE attribute. Edit: [77:22-23] replace with The VALUE attribute specifies a type of argument association (12.4.1) for a dummy argument. Part 2: Unresolved issue 161 states that we need to talk about how arguments get associated with C formal parameters. Argument association happens as with Fortran calling Fortran except when a dummy argument in an interface has the VALUE attribute. An edit is applied to Section 12.4.1, Actual arguments, dummy arguments and argument association, to describe argument association when the VALUE attribute is specified. Edit: [255:32+] add new paragraph and a note If the dummy argument has the VALUE attribute it becomes associated with a definable anonymous data object whose initial value is that of the actual argument. Subsequent changes to the value or definition status of the dummy argument do not affect the actual argument. Note 12.x x Fortran argument association is usually similar to call by reference and call by value-result. If the VALUE attribute is specified, the effect is as if the actual argument is assigned to a temporary, and the temporary is then argument associated with the dummy argument. The actual mechanism by which this happens is determined by the companion processor. End note. Edit: [270:25-27] delete unresolved issue 161