J3/10-174 To: J3 From: Malcolm Cohen Subject: Interp: dummy args of impure elemental procedure. Date: 2010 June 02 ---------------------------------------------------------------------- NUMBER: TITLE: Dummy arguments of impure elemental procedures. KEYWORDS: IMPURE, ELEMENTAL, INTENT DEFECT TYPE: Erratum STATUS: J3 consideration in progress QUESTION: Consider IMPURE ELEMENTAL SUBROUTINE swap1(a,b) REAL,INTENT(INOUT) :: a,b c = a a = b b = c END SUBROUTINE IMPURE ELEMENTAL SUBROUTINE swap2(a,b) REAL :: a,b c = a a = b b = c END SUBROUTINE ... REAL x,y(10) ... CALL swap1(x,y) ! (a) CALL swap2(x,y) ! (b) The rules for arguments of elemental subroutines means that CALL (a) is not standard-conforming. However, since there are no rules requiring declaration of INTENT (that being for PURE only), CALL (b) is apparently standard-conforming. Was this intended to be standard-conforming, and what should the effect be? ANSWER: This was not intended to be standard-conforming. Omission of the requirement for INTENT specification was inadvertant. An edit is supplied to correct this oversight. EDITS to 10-007: [314:7] Insert new constraint at the end of 12.8.1 "C1290a The of an impure elemental subprogram shall specify the intents of all of its dummy arguments that do not have the VALUE attribute." ALTERNATIVE EDIT: [314:7] Insert new constraint at the end of 12.8.1 "C1290a The of an elemental subprogram shall specify the intents of all of its dummy arguments that do not have the VALUE attribute." {This version has marginally simpler wording, at the cost of partly covering the same restriction as C1277.} SUBMITTED BY: Malcolm Cohen HISTORY: 10-174 m192 Submitted ----------------------------------------------------------------------