(j3.2006) TYPE(*) and scalars

Bill Long longb
Wed Mar 21 14:59:57 EDT 2012



On 3/21/12 1:35 PM, Bader, Reinhold wrote:
> Hello,
>
>
> [...]
>>
>>
>> It should be possible to work around this.  If the "known interface
>> name" is foo, then
>>
>> interface foo
>>    subroutine bar1 (x) bind(C, name="cbar")
>>      type(*) :: x
>>    end subroutine bar1
>>    subroutine bar2 (x) bind(C, name="cbar")
>>      type(*),dimension(*) :: x
>>    end subroutine bar2
>> end interface
>>
>> will work.  The specifics are distinguishable because of the rank
>> distinction, independent of the types.  Since you can map both of them
>> to the same C routine, there is no need to have extra C wrappers.  On
>> the C side, the corresponding formal parameter is (void *), which is
>> valid for either specific.
>
> Unfortunately, this will not quite solve the problem, because it now is not possible any more
> to process rank 2 and higher arrays - as soon as you put a DIMENSION(*) dummy into a generic
> interface, exact rank matching of actual with dummy will be required. I guess one could add
> interfaces with
>
> type(*),dimension(1,*) :: x
> type(*),dimension(1,1,*) :: x
>

OK, but this is unrelated to whether TYPE(*) can be used without using 
assumed rank.  And all of these specifics can map to the same C 
function.  Admittedly, assumed rank is a simpler alternative.

Cheers,
Bill



> etc. though.
>
> Regards
> Reinhold
>
>>
>> Cheers,
>> Bill
>>
>>> FYI.  We have released a tarball for the Open MPI implementation of the new
>> MPI-3 Fortran standard.  In case there are any vendors who wish to try this beta
>> please let Jeff Squyres know.  Several vendors have already tried this beta
>> release and have fixed bugs in their compilers.
>>>
>>> -craig
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> J3 mailing list
>>> J3 at j3-fortran.org
>>> http://j3-fortran.org/mailman/listinfo/j3
>>
>> --
>> Bill Long                                           longb at cray.com
>> Fortran Technical Support&                  voice: 651-605-9024
>> Bioinformatics Software Development            fax:   651-605-9142
>> Cray Inc./Cray Plaza, Suite 210/380 Jackson St./St. Paul, MN 55101
>>
>>
>> _______________________________________________
>> J3 mailing list
>> J3 at j3-fortran.org
>> http://j3-fortran.org/mailman/listinfo/j3
>
> _______________________________________________
> J3 mailing list
> J3 at j3-fortran.org
> http://j3-fortran.org/mailman/listinfo/j3

-- 
Bill Long                                           longb at cray.com
Fortran Technical Support    &                 voice: 651-605-9024
Bioinformatics Software Development            fax:   651-605-9142
Cray Inc./Cray Plaza, Suite 210/380 Jackson St./St. Paul, MN 55101





More information about the J3 mailing list