On Jun 7, 2004, at 5:11 PM, Richard Maine wrote:
> --On Monday, June 7, 2004 4:01 PM +0200 Drew McCormack
> <[log in to unmask]> wrote:
>
>> We have a compiler that is causing trouble when a pointer to an array
>> is passed to a f77-like implicit function. It seems it is probably
>> just
>> passing the memory address of the pointer object, rather than doing a
>> copy-in/copy-out, or something like that.
>
> I'll repeat one of my most common statements about requests for
> debugging
> help - I need data, not conclusions. I can't really comment on the
> above,
> as it pretty much has no data - just conclusions, with no way for me to
> verify them.
That's why I provided a concrete example. That said, my example omitted
the most important thing, the pointer :-(
It should be like this:
real, target :: vertices(3, 3)
real, pointer :: vpoint(:,:)
real :: area, calcArea
...
vpoint => vertices(1:2,:)
area = calcArea( vpoint )
...
! In another file, with an implicit interface
real function calcArea( a )
real :: a(2, 3)
...
end function
I think that is right now.
When I think about it, it is a little bit more involved, because the
target array is actually a member of a user-defined type, which has the
target attribute. Ie
type ( SomeType ), target :: parent
vpoint => parent % vertices(1:2, :)
>
> I see nothing wrong with the above code. I also see no pointers in it,
> which leads me to be even more dubious of drawing any conclusions based
> on the first para. Do you actually mean pointers or something else
> that
> you'd expect to be implemented sort of like pointers? Well, that's
> just
> a rhetorical question that I don't really expect an answer to; just
> trying to illustrate how little the first para tells me.
I did mean pointers, I just wrote down the wrong example basically.
>
> By the way, the standard doesn't require copy-in/copy-out; it is just
> that
> that's by far the simplest way to implement some things. When I read
> the
> first para, my initial thought was that you expected copy-in/copy-out
> to
> happen and had code that depended on that, perhaps even for contiguous
> actual arguments, where many compilers optimize the copies away. But
> the
> code sample has a noncontiguous actual, so perhaps that wasn't the
> issue.
I realize it doesn't require copy-in/copy-out, that's why I included
the text "...or something like that..." ;-)
Sorry my original example was so wrong.
Drew
========================================
Dr. Drew McCormack (Kmr. R153)
Afd. Theoretische Chemie
Faculteit Exacte Wetenschappen
Vrije Universiteit Amsterdam
De Boelelaan 1083
1081 HV Amsterdam
The Netherlands
Email [log in to unmask]
Web www.maniacalextent.com
Telephone +31 20 44 47623
Mobile +31 6 483 21307
Fax +31 20 44 47629
|