To: J3 08-298 From: Nick Maclaren Subject: Procedure execution duration Date: 2008 November 18 References: J3/08-007r2 (WG5/N1723) Discussion: There is an ambiguity in the standard about exactly when a procedure call starts and finishes, which affects whether the restriction defined in 12.5.2.13 (and probably others) applies to the time when arguments are being copied in and out. This refers to constructions like the following: INTEGER, SAVE :: array(10)[*] = 0 CALL Fred(array(::2)) SUBROUTINE Fred (arg) INTEGER :: arg(*) ... END SUBROUTINE Fred There should be a NOTE to clarify this. Edit to J3/08-007r2: [298:12.5.2.13:Note 12.39+] At the end of "12.5.2.13 Restrictions on entities associated with dummy arguments" add a new Note after Note 12.39: NOTE 12.39a The term "during the execution of the procedure" includes the process of setting up the procedure's environment and restoring the calling procedure's environment. For example, if the copy-in/copy-out mechanism is used for arguments, the duration of that process is included. End NOTE