J3 01-169 To: J3 From: /interop Date: 20 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 and an actual argument which becomes associated with it. A dummy argument with the VALUE attribute has no INTENT. [65:8] Replace "INTENT(INOUT), or INTENT(OUT)" with "or INTENT" Part 2: Unresolved issue states 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. Note, if the edit in part 1 does not pass, the second sentence of the following edit to page 256 is unnecessary. Edit: [256:15+] add new paragraph If the dummy argument has the VALUE attribute, the value of the actual argument becomes associated with the dummy argument. The dummy argument may appear in a variable definition context (14.7.7) without changing the associated actual argument's value or definition status (14.7). Note 12.x x Fortran argument association is by default call by reference (address). 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 (by reference) 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