To: J3 J3/21-200r1 From: John Reid Subject: US 12, arrays of coarrays, deallocation issue Date: 2021-October-26 Reference: 21-007r2 Discussion ---------- An ALLOCATE statement for a non-coarray that has a coarray ultimate component is not an image control statement because the coarray ultimate component will be unallocated. However, a DEALLOCATE statement for such an object is an image control statement because it might involve deallocation of the coarray ultimate component on all the images, which would require synchronization. I think it would be better for such a DEALLOCATE statement always to involve synchronization and I include an edit for this. Without this change, using coarray components of allocatable variables would be somewhat error prone, as the user might not know whether there will be a synchronisation without checking the allocation status of every coarray component. Edit to 21-007r2 ----------------- [147:3] In 9.7.3.2 Deallocation of allocatable variables, para 10, first sentence, after "coarray" add "or an object with a coarray potential subobject component" to make the sentence read "When a statement that deallocates a coarray or an object with a coarray potential subobject component is executed, there is an implicit synchronization of all active images in the current team."