From owner-sc22wg5  Thu Jul 19 17:13:48 2001
Received: from atmos.uiuc.edu (gale.atmos.uiuc.edu [128.174.80.128])
	by dkuug.dk (8.9.2/8.9.2) with ESMTP id RAA82122
	for <SC22WG5@dkuug.dk>; Thu, 19 Jul 2001 17:13:47 +0200 (CEST)
	(envelope-from hirchert@atmos.uiuc.edu)
Received: from [128.174.80.212] (account hirchert HELO hirchert.atmos.uiuc.edu)
  by atmos.uiuc.edu (CommuniGate Pro SMTP 3.4.6)
  with ESMTP-TLS id 425403 for SC22WG5@dkuug.dk; Thu, 19 Jul 2001 10:13:45 -0500
Message-Id: <5.1.0.14.2.20010719092533.02df6d60@mail.atmos.uiuc.edu>
X-Sender: hirchert@mail.atmos.uiuc.edu
X-Mailer: QUALCOMM Windows Eudora Version 5.1
Date: Thu, 19 Jul 2001 10:13:45 -0500
To: SC22WG5@dkuug.dk
From: Kurt W Hirchert <hirchert@atmos.uiuc.edu>
Subject: Re: (SC22WG5.2084) WG5 letter ballot on Fortran 95
  interpretations
In-Reply-To: <200106151702.TAA77172@dkuug.dk>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed

Yes   No    Number       Title

-C-   ---   000002       Free source form requirement for blank in
                           PRINT statement

Part of the text of the question is missing.

-Y-   ---   000010       Meaning of embedded blanks in namelist input
                           name

-Y-   ---   000011       G editing typo

-Y-   ---   000012       Evaluation of Intrinsic Procedures

-C-   ---   000018       ELEMENTAL procedures with no arguments

I am uncomfortable with some of the reasoning behind answer 2, but I have 
no objection to the final result.

-Y-   ---   000019       Result of NULL intrinsic associated with
                           CHARACTER(*) dummy argument

-Y-   ---   000020       Execution of a WHERE statement within a
                           WHERE construct

---   -N-   000021       Restrictions on <generic-spec> on END
                           INTERFACE

Although I can understand why vendors would wish to implement it that way, 
I find it ludicrous to assert that ".NE." is "identical" to "/=".  I do not 
believe it was our intent to allow this case, and do not see it to be 
beneficial to the programmer to make such an allowance.

If we are insistent on making this _change_ in the requirements of the 
standard, the edit does appear to be acceptably constructed.

-Y-   ---   000022       Use of NULL() as initialization

-Y-   ---   000024       Termination of a partial record by a CLOSE,
                           BACKSPACE, ENDFILE, or REWIND statement

-C-   ---   000025       List-directed input: types of variables
                           corresponding to repeated values

I would have preferred an interpretation in which
         2*.TRUE.
would be equivalent to
         .TRUE. .TRUE.
and acceptable as input to a LOGICAL variable followed by a CHARACTER variable.

-Y-   ---   000028       Implicitly Typed Statement Function
                           Character Dummy

-Y-   ---   000029       Nested Derived Types and Defined Assignment

---   -N-   000081       Definition status of derived-type objects
                           with pointer components

I agree that a change is necessary, but I still see no justification for 
totally ignoring pointer components.  In my opinion, a more appropriate 
change would be to require the pointer components not to have an undefined 
pointer association status.

-Y-   ---   000085       Public components of private types

-C-   ---   000087       MOD and MODULO intrinsic functions with
                           zero divisor

I believe the text in question was introduced in the effort to make Fortran 
less incompatible with the computational model of IEEE arithmetic.  I 
believe was wanted to do was to allow the possibility that programs running 
on IEEE machines would still be standard conforming if MOD or MODULO were 
invoked with a P argument of zero (producing a NaN result?).  However, I do 
not believe it was our intent to force non-IEEE machines to accept this 
implicit division by zero.  Thus, I believe the existing text to be defective.

The proposed new text goes too far the other way, but I believe that it 
gets us closer to where we want to be than the existing text.  (I.e., the 
new text allows processors to be built the ways we wanted to allow, while 
the existing text does not.  The deficiency in the proposed text is in 
labeling some programs to be non-conforming that we intended to be 
conforming, but the programs so labeled are ones whose portability is 
questionable, so the effect of this mislabeling is minimal.)

-Y-   ---   000088       INTRINSIC statement and attribute

-Y-   ---   000089       Rules allowing duplicate names

-Y-   ---   000090       What do ``Prior Specification'' and
                           ``defined previously'' mean?

---   -N-   000091       Definition of "present" is defective

I agree with the intent of this interpretation, but I am concerned that the 
edit is inadequate.  My specific concern is that by addressing host 
association in this aspect of PRESENT, we may have implicitly disallowed 
other useful host association.  My particular concern was whether an 
internal procedure can use PRESENT on one of its host's dummy 
arguments.  If someone can convince me that this new definition of present 
raises no questions about such uses of PRESENT, I will withdraw my objection.

Alternatively, I would restructure the recursion in the definition:

"A dummy argument or entity host-associated with a dummy argument is not 
<<present>> if the dummy argument is
(1) not associated with an actual argument, or
(2) is associated with an actual argument that is not present.
Otherwise, it is present."

This makes it clear that the concept of being present applies to entities 
host-associated with a dummy argument, so the PRESENT intrinsic function 
may be applied to them.


-Y-   ---   000092       Values of the PAD= Specifier in the
                           INQUIRE Statement

-Y-   ---   000093       Allocatable arrays as actual arguments

-Y-   ---   JP-06        Type declaration statements

-- 
Kurt W Hirchert                                  hirchert@atmos.uiuc.edu
UIUC Department of Atmospheric Sciences                  +1-217-265-0327

