J3/06-279 Date: 10 August 2006 To: J3 From: Dick Hendrickson Subject: clause 6 problems References: J3/06-007 Questions and comments that are more than editorial. [117:10] Should we allow the leftmost thing to also be a pointer expression? [117:13] What is purpose of this? Does it disallow array[7] and require array(:)[7]? [118:note 6.7] Do co-arrays affect this description? I think they should be included. [118:13] Does this disallow CPF(args)%RE = 0 whereas CPF(args) = 0 is allowed (where CPF is a pointer function that returns a pointer to a complex thing)? [119:4] Same question as above [119:16] Should that be "section subscript or subscript list" Array(1:10) isn't a whole array. See R619 on 120 [122:18-20] This probably should say "variable definition context" rather than only list two things. They surely can't be the IOMSG thing, nor an internal write unit, etc. [124:C627, C629] Do we also need MOLD= here? In general, shouldn't almost all instances of "SOURCE=" be replaced by "SOURCE= or MOLD=" or "source-expr"? [125:note 6.20, last line] This isn't a "reason". We allow A[Q] = 0, and that's not necessarily executed on image Q [130:1] Add something like "but the same thing will happen on all images." Or, was the intent to actually make it be processor dependent? See also [72:1] for finalizers. [131:1] It doesn't say it here, but I bet the deallocations can occur in a processor dependent order. I think clause 4 says that. Then we need words to say the images do it in the same order. [131:11] It's not just these three. The termination of any executable construct can cause automatic deallocation, see 130:2-5 [131:19] There was a recent conflict on comp.lang.fortran about what "associated with the whole of an object" means. Suppose I do ALLOCATE(A(10)) and then do (Ps are all array pointers P0 => A P1 => A(:) P2 => A(1:10) P3 => A(10:1:-1) P4 => A(1:N) !assume N=10 P5 => A(M:N) !assume N:M = 1:10 p6(1:2,1:5) => A !rank remap which pointers can I use in a DEALLOCATE? or, if I do ALLOCATE (A(1)) P_SCALAR => A can I do DEALLOCATE (P_SCALAR)?