Print

Print


On Sep 22, 2004, at 12:52 PM, James Giles wrote:

> If you decide that only P is associated with the whole of A
> and that Q only points to a slice (even though a complete slice),
> you place the purden of this overly subtile distinction on the
> user.

Well we have that distinction already elsewhere.  The
meaning of  LBOUND(Q) and LBOUND(Q(:)) is
different and has been since f90.  In f2003, the meaning of

   string = 'something'

and

  string(:) = 'something'

is also different if string is allocatable.

> Nor do I think most implementations will maintain the distinction.

That's not really important. They aren't required to. What I see
as important is whether *ANY* implementations maintain such a
distinction, because if any do, then code that depends on it is
nonportable. If the deallocation in question is standard, then
conforming implementations are not allowed to reject it; there
might be nonconforming implementations, but that is fixable.
If the deallocation in question is not standard, then user's had
best not do it because some implementation someday is
likely to reject it.  If I recall how this thread began (I didn't go
back to check for sure), one such implementation has been found.
I'm sure you understand this, so I'm probably belaboring it too much.

--
Richard Maine                |  Good judgment comes from experience;
[log in to unmask]       |  experience comes from bad judgment.
                             |        -- Mark Twain