J3/06-332 Date: October 30, 2006 To: J3 From: Aleksandar Donev Subject: UTI 079: Copy in/out and co-array dummies References: 06-268, 06-263r1, 06-007r1 UTI 079 (page 317) suggests that restrictions against copy in/out of actuals corresponding to co-array dummies are exagerated. 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. While considering UTI 079 and going through 06-263r1, I found objections to [317:1-3,4-5]. Before going into the flaws of the edits, I want to clarify what the intention is. What we want to achieve is that if the dummy is a co-array, there will be no copy in/out of the actual. There are two approaches to this: Make this enforceable at compile time, or, make it a constraint on the user. The edit at [317:1-3] talks about having the CONTIGUOUS attribute, which seems to aim at compile-time checking to make sure that copy in/out cannot happen at runtime. On the other hand, [317:4-5] is not compile-time checkable, but depends on whether the array section is actually contiguous. We need to decide what we want. I would suggest only runtime checking. Only the sentence at 317:4-5 is sufficient, and should be reworded to say: "If the dummy co-array is not of assumed shape or has the CONTIGUOUS attribute, the actual object shall be contiguous (5.3.6)." If compile-time checking is desired, we should look into reusing the concept defined (but not named) at [316:2-13].