From owner-hpff-interpret  Thu Nov  7 17:49:15 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id RAA13723 for hpff-interpret-out; Thu, 7 Nov 1996 17:49:15 -0600 (CST)
Received: from VNET.IBM.COM (vnet.ibm.com [199.171.26.4]) by cs.rice.edu (8.7.1/8.7.1) with SMTP id RAA13716 for <hpff-interpret@cs.rice.edu>; Thu, 7 Nov 1996 17:49:09 -0600 (CST)
Received: from TOROLAB by VNET.IBM.COM (IBM VM SMTP V2R3) with BSMTP id 2297;
   Thu, 07 Nov 96 18:49:00 EST
Received: by TOROLAB (XAGENTA 4.0) id 6704; Thu, 7 Nov 1996 16:06:29 -0500 
Received: by twinpeaks.torolab.ibm.com (AIX 3.2/UCB 5.64/4.03)
          id AA26355; Thu, 7 Nov 1996 16:02:25 -0500
From: <zongaro@vnet.ibm.com> (Henry Zongaro)
Message-Id: <9611072102.AA26355@twinpeaks.torolab.ibm.com>
Subject: hpff-interpret: Storage association and NEW
To: hpff-interpret@cs.rice.edu (HPPF Interpretations)
Date: Thu, 7 Nov 1996 16:02:23 -0500 (EST)
X-Mailer: ELM [version 2.4 PL24alpha3]
Content-Type: text
Sender: owner-hpff-interpret
Precedence: bulk

---------------------------------------------------------------------------
hpff-interpret@cs.rice.edu is a mailing list for corrections,
clarifications, and interpretations related to High Performance Fortran.
Instructions for adding or deleting yourself from this list appear at the
bottom of this message.
---------------------------------------------------------------------------

Hello,

     An interpretation to HPF 1.0 (question 6.12) noted that a NEW variable
must not be:

       an object in COMMON or storage associated with an object in COMMON;
       use associated;
       host associated; nor
       accessed via host association.

     This was missed in putting out the HPF 1.1 document, but was added to the
HPF 2.0 document.  However, I believe that there's one case that was missed -
the variable must not be specified in an equivalence statement.

     For example,

            integer eq1, eq2, a(10)
            equivalence (eq1, eq2)

      !hpf$ independent, new(eq1)
            do idx = 1, 10
              eq1 = idx
              a(idx) = eq2
            end do
            end

The rules were framed so that an implementation would be free to create new
instances of NEW variables for every iteration of the loop, but what impact
does that have on eq2 in the above example?

     It might be argued that both eq1 and eq2 in the example should be
considered to be NEW, but then that brings up the following example:

            integer eq1, eq2(2), a(10)
            equivalence (eq1, eq2)

            eq2(2) = 99

      !hpf$ independent, new(eq1)
            do idx = 1, 2
              eq1 = idx
              a(idx) = eq2(1) + eq2(2)
            end do
            end

Is only eq2(1) NEW, or is all of eq2 NEW?

     For simplicity of implementation, I would suggest that we just say that
a variable which appears in NEW must not be specified in an EQUIVALENCE
statement.

Thanks,

Henry
---------------------------------------------------------------------------
To (un)subscribe to this list, send mail to
hpff-interpret-request@cs.rice.edu.
Leave the subject line blank, and in the body put the line
(un)subscribe <email-address>
---------------------------------------------------------------------------

