To: J3 11-199r1 From: R. Bader/M. Cohen Subject: the CONTIGUOUS attribute Date: 2011 June 29 Reference: N1830 ---------------------------------------------------------------------- NUMBER: F08/0061 TITLE: Description of the CONTIGUOUS attribute misworded? KEYWORDS: CONTIGUOUS DEFECT TYPE: Erratum STATUS: J3 consideration in progress Consider the following code: module mod_cont contains subroutine fcont(x) real, contiguous :: x(:) integer :: i x = (/ (real(i),i=1,size(x)) /) end subroutine fcont end module mod_cont program cont use mod_cont implicit none real :: x(45) call fcont(x(1::3)) end program Is this program standard conforming? 5.3.7 paragraph 1 says: "The CONTIGUOUS attribute specifies that an assumed-shape array can only be argument associated with a contiguous effective argument, or that an array pointer can only be pointer associated with a contiguous target." ANSWER: Yes. The effect of the CONTIGUOUS attribute is misstated. An edit is supplied to correct this. EDITS for 10-007r1: [93:7-8] In 5.3.7p1, Change "can only be argument associated with a contiguous effective argument" to "is contiguous". ADDITIONAL SUGGESTED EDIT FOR A FUTURE REVISION: [93:30+] In 5.3.7 after Note 5.10, insert additional note "NOTE 5.10a If an actual argument is not simply contiguous and the corresponding dummy argument is an assumed-shape array with the CONTIGUOUS attribute, the processor might use copy-in/copy-out to assure the contiguity of the dummy argument." ----------------------------------------------------------------------