From owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org  Fri Aug 31 08:03:17 2012
Return-Path: <owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org>
X-Original-To: sc22wg5-dom8
Delivered-To: sc22wg5-dom8@www.open-std.org
Received: by www.open-std.org (Postfix, from userid 521)
	id EB2C135699C; Fri, 31 Aug 2012 08:03:16 +0200 (CEST)
Delivered-To: sc22wg5@open-std.org
Received: from exprod6og114.obsmtp.com (exprod6og114.obsmtp.com [64.18.1.33])
	by www.open-std.org (Postfix) with ESMTP id A54BF35671C
	for <sc22wg5@open-std.org>; Fri, 31 Aug 2012 08:03:12 +0200 (CEST)
Received: from CFWEX01.americas.cray.com ([136.162.34.11]) (using TLSv1) by exprod6ob114.postini.com ([64.18.5.12]) with SMTP
	ID DSNKUEBTn4QVYA7Wrr6cDTvWULjcIbXuDta4@postini.com; Thu, 30 Aug 2012 23:03:15 PDT
Received: from cfasa-vpn-192-168-233-75.us.cray.com (192.168.233.75) by
 CFWEX01.americas.cray.com (172.30.88.25) with Microsoft SMTP Server id
 14.2.318.1; Fri, 31 Aug 2012 00:58:21 -0500
Message-ID: <504052C4.9000005@cray.com>
Date: Fri, 31 Aug 2012 00:59:32 -0500
From: Bill Long <longb@cray.com>
Reply-To: <longb@cray.com>
Organization: Cray Inc.
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:14.0) Gecko/20120713 Thunderbird/14.0
MIME-Version: 1.0
To: sc22wg5 <sc22wg5@open-std.org>
Subject: Re: (j3.2006) (SC22WG5.4719) Third WG5 ballot on interpretations
References: <20120803111404.DC9303568DA@www.open-std.org>
In-Reply-To: <20120803111404.DC9303568DA@www.open-std.org>
Content-Type: text/plain; charset="ISO-8859-1"; format=flowed
Content-Transfer-Encoding: 7bit
Sender: owner-sc22wg5@open-std.org
Precedence: bulk



The following Fortran 2003 interpretations are being balloted:

Yes  No Number     Title
-Y-  ---  F03/0017   Dummy procedure pointers and PRESENT
-Y-  ---  F03/0018   Multiple identical specific procedures in
                       type-bound generic interfaces
-Y-  ---  F03/0019   Multiple identical specific procedures in
                       generic interface blocks
-Y-  ---  F03/0021   What kind of token is a stop code?
-Y-  ---  F03/0046   Unlimited polymorphic pointers in
                       common blocks
---  -N-  F03/0053   The BIND attribute for C_PTR and C_FUNPTR
-Y-  ---  F03/0065   Relational equivalence
---  -N-  F03/0084   IEEE_SET_ROUNDING_MODE in a subroutine
-Y-  ---  F03/0096   Can a read statement change the unit value?
-Y-  ---  F03/0103   Restrictions on dummy arguments not present for
                       polymorphic type or parameterized derived type
-Y-  ---  F03/0116   indistinguishable specifics for a generic
                       interface with use association
-Y-  ---  F03/0118   Are lower bounds of assumed-shape arrays assumed?
-Y-  ---  F03/0120   When are parameterized sequence types the same
                       type?
---  -N-  F03/0121   Precise FP semantics of the REAL intrinsic
-Y-  ---  F08/0004   Is TARGET argument of ASSOCIATED a pointer or
                       nonpointer dummy?
-Y-  ---  F08/0008   IEEE exceptions for intrinsic functions
-Y-  ---  F08/0031   PURE INTENT(OUT) finalization
-Y-  ---  F08/0032   PURE FUNCTION result finalization
-Y-  ---  F08/0038   Are pointless restrictions on DIM arguments
                       intended?
---  ---  F08/0040   MOVE_ALLOC for coarrays
-Y-  ---  F08/0042   SOURCE= questions


Comments:

F03/0053: Regarding answer 3, I think it would be better to disallow
PRIVATE components in a type with the BIND attribute.  A C routine
called outside the module where the type is defined, and accessing a
variable of such a type would be able to access and modify the PRIVATE
components.


F03/0084: I was confused by John's comment that the rounding mode on
entry to the subroutine affected the value of Z1 since the computation
of Z1 follows a call that resets the rounding mode.  I think the real
question here is what the standard means by "mathematical".  I had
always thought in terms of things like algebra.  John's answer seems
to imply that computational numerics (as specified by IEEE) are part
of the concept of "mathematical".  In other contexts, I think that
John's interpretation could be harmful.  On the other hand, the
current answer does seem to make the usefulness of the
IEEE_SET_ROUNDING_MODE routine more limited that would be
expected. Also, does the concept of mathematically equivalent apply to
the aggregation of multiple statements, or does it apply to just one
expression?  A processor that used the "mathematically equivalent"
argument to get 0 would need to forward sub the expressions for Z1 and
Z2 into the print statement to get X*Y - X*Y.  I don't think we
intended to allow forward substitution of expressions across one of
the IEEE mode setting routines.


F03/0121: Similar to F03/0084, this hinges on the meaning of
"mathematical". I'm not convinced that a processor is allowed to treat
X and REAL(X,wp) as mathematically equivalent.  The REAL function
(may) perform an operation that is outside the scope of normal
algebra.


-- 
Bill Long                                           longb@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


