J3/06-332r1 Date: November 16, 2006 To: J3 From: Aleksandar Donev Subject: UTI 079: Copy in/out and co-array dummies References: 06-268, 06-263r1, 06-007r1, 06-311r1 UTI 079 (page 317) suggests that restrictions against copy in/out of actuals corresponding to co-array dummies are exaggerated. There is no requirement for all images to be involved in a call to a procedure with a co-array dummy argument. This means that symmetric memory addressing would be destroyed if copy in/out were allowed. An extreme example is when the call is made on only one image and this image accesses data on other images. We do however need to reconsider [317:1-3,4-5] and make sure that they effectively prevent situations where copy in/out might be needed for passing co-array arguments (the dummy is a co-array, and the actual a sub-object of a co-array). Especially since the addition of CONTIGUOUS and the concepts of (runtime) contiguous and compile-time contiguous (not named yet, but see 06-311r1 and [316:2-13]). This paper proposes that we only allow co-array argument passing for cases in which it can be known at compile-time that no copy in/out is necessary, that is, for cases which can be implemented without copy in/out. The edits below attempt to achieve that. Edits. Note to editor: When we have a name for compile-time contiguous (06-311r1), please update this edit. [317:1-5] Replace these two paragraphs with: "If the dummy argument is a co-array that has the CONTIGUOUS attribute or is not of assumed shape, the actual argument shall be compile-time contiguous."