(j3.2006) Generic resolution of assumed-size dummy

Daniel C Chen cdchen
Fri Jun 3 10:54:54 EDT 2016


The question is if the dummy argument ia1 in checki2, checki3 and checki4
is considered distinguishable. They are assume-size and explicit-shape
arrays (not assumed-rank).

I don't think the definition of TKR compatibility has issues, but there may
be issues on how to define if two data object dummy arguments are
distinguishable when they are both assume-size or explicit-shape arrays.

The way how the standard is written now seems contradict to the sequence
associate rule (i.e. The reference to procedure check in the example now
have to take rank into account when the dummy argument is assume-size or
explicit-shape).

Thanks,

Daniel

XL Fortran Development - IBM Toronto Software Lab
Phone: 905-413-3056
Tie: 969-3056
Email: cdchen at ca.ibm.com
http://www.ibm.com/software/awdtools/fortran/xlfortran



From:	Bill Long <longb at cray.com>
To:	fortran standards email list for J3 <j3 at mailman.j3-fortran.org>
Date:	06/03/2016 10:41
Subject:	Re: (j3.2006) Generic resolution of assumed-size dummy
Sent by:	j3-bounces at mailman.j3-fortran.org



assumed-rank is dimension(..).  That is different from assumed-size.

Cheers,
Bill

On Jun 3, 2016, at 9:35 AM, Daniel C Chen <cdchen at ca.ibm.com> wrote:

> Hello,
>
> Consider the following code:
>
> module checktest
>
> interface check
> module procedure checki1, checki2
> end interface
>
> contains
>
> subroutine checki1(ia1)
> integer*1, dimension(*) :: ia1
> end subroutine checki1
>
> subroutine checki2(ia1)
> integer*2, dimension(*) :: ia1
> end subroutine checki2
>
> subroutine checki3(ia1)
> integer*2, dimension(4,*) :: ia1
> end subroutine checki3
>
> subroutine checki4(ia1)
> integer*2, dimension(4,4,4) :: ia1
> end subroutine checki4
> end module checktest
>
> program main
> use checktest
>
> integer*2, dimension(10,5) :: ia1
> integer*2, dimension(4,4,4) :: ia2
>
> call check(ia1)
> Call check(ia2)
>
> end program main
>
> While we allow assumed-size dummy argument of a specific procedure
correspond to an array actual argument of any rank, it seems we don't allow
it for generic procedure.
>
> In the standard, we have:
> 12.4.3.5.5
> "A dummy argument is type, kind, and rank compatible, or TKR compatible,
with another dummy argument if the first is type compatible with the
second, the kind type parameters of the first have the same values as the
corresponding kind type parameters of the second, and both have the same
rank or either is assumed-rank.
> ...
> Two dummy arguments are distinguishable if
> ...
> they are both data objects or known to be functions, and neither is TKR
compatible with the other,
> ..
> "
>
> 1. It seems ia1 of checki2, checki3 and checki4 are distinguishable
according to the standard I quoted at the above because they have different
ranks, Is this expected?
>
> 2. If 1 is expected, should call check(ia1) resolves to checki3 and call
check(ia2) resolves to checki4? If so, it seems contradict to the sequence
association rule.
>
>
> Thanks,
>
> Daniel
>
> XL Fortran Development - IBM Toronto Software Lab
> Phone: 905-413-3056
> Tie: 969-3056
> Email: cdchen at ca.ibm.com
> http://www.ibm.com/software/awdtools/fortran/xlfortran
> _______________________________________________
> J3 mailing list
> J3 at mailman.j3-fortran.org
> http://mailman.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 mailman.j3-fortran.org
http://mailman.j3-fortran.org/mailman/listinfo/j3



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.j3-fortran.org/pipermail/j3/attachments/20160603/6afa8746/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
Url : http://mailman.j3-fortran.org/pipermail/j3/attachments/20160603/6afa8746/attachment-0001.gif 



More information about the J3 mailing list