(j3.2006) more on J32031 equivalence of circular types

Bill Long longb
Wed Aug 20 18:36:49 EDT 2008



Aleksandar Donev wrote:
> On Wednesday 20 August 2008 15:15, Bill Long wrote:
>   
>> I guess I don't see what part of the answer is not obvious here.  What
>> part of f03:4.5.1.3 is ambiguous in the case?
>>     
>
> TYPE(T), POINTER :: NEXT => NULL()
>
> Does this component in type T in module FOO have the same type as that in 
> module BAR? 

The type of the component in type T in module FOO is obviously type T 
defined in module FOO.  So your question is whether type T in FOO is the 
same type as type T in BAR.


> If you know the answer, you've already answered the question you 
> are trying to answer. 

Clearly, since it is just a restatement of the original question.

> You get into an infinite loop that you must terminate 
> somehow.
>   

I see no infinite loop.  Pointer components with the same type as the 
type being defined have been around for a long time.  There is no loop 
because the component is actually a descriptor, and not an object of the 
parent type. At least that's why there is no loop as far as the 
implementation is concerned.

Cheers,
Bill

> Aleks
>   

-- 
Bill Long                                   longb at cray.com
Fortran Technical Support    &              voice: 651-605-9024
Bioinformatics Software Development         fax:   651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120

            




More information about the J3 mailing list