Subject: Re: hpff-interpret: MODULE, USE only, and !hpf$ template

From: [email-masked] (Chuck Koelbel)
Date: Tue, 11 Jun 1996 09:49:27 -0600

---------------------------------------------------------------------------
[email-masked] 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.
---------------------------------------------------------------------------

At 09:10 06/11/96, Junxian Liu wrote:
>
>Just mention a few of violations of the "if you ignore the directives
>then it's legal F90" principle:
>
>        FORALL, EXTRINSIC, PURE
>
>If any of these is used, the program is no longer legal fortran 90.
>
>For the original question, I would say it is legal HPF (since a HPF
>program is not legal F90 anyway in many cases).
>
>-----
>Dr Junxian Liu                  email: [email-masked]
>NA Software Ltd                        [email-masked]

Note that FORALL, EXTRINSIC, and PURE are first-class language constructs,
not directives.  Similarly for calls to the HPF library.  It was a design
principle that anything that changed the semantics of the program had to be
a "real" part of the language, not a directive (i.e. a
statement/declaration/expression, not a structured comment).

Your point that there are things in HPF that are not F90 is well-taken.
But that does not mean that we should add new differences between the
languages.

                                                Chuck

---------------------------------------------------------------------------
To (un)subscribe to this list, send mail to
[email-masked].
Leave the subject line blank, and in the body put the line
(un)subscribe <email-address>
---------------------------------------------------------------------------

---

From: "Dr A.C. Marshall" <[email-masked]>
Date: Tue, 11 Jun 1996 16:04:09 +0100 (BST)

In the last mail Chuck Koelbel said:
|
|.......  It was a design
|principle that anything that changed the semantics of the program had to be
|a "real" part of the language, not a directive (i.e. a
|statement/declaration/expression, not a structured comment).
|

Ah but adding an INDEPENDENT directive may change the semantics of the
program if the loop index variable is used before reassignment. The loop
variable in  the HPF version will have a different value to the F90 version
(either this or the value will be undefined).

Did anybody have any ideas on my EXTRINSIC local routine question of last
week. This was a question based on a paragraph from the HPF Handbook.

Adam Marshall

-- 
     Dr AC Marshall                    | 
     Computing Services Department,    |
     University of Liverpool,          |        WATCH THIS SPACE
     PO Box 147. L69 3BX               | 
     email: [email-masked]            |
     Tel: +44-151-794 3722             |
     Fax: +44-151-794 3759             |

     Take a look at:     HPC Info: http://www.liv.ac.uk/HPC/HPCpage.html
                         Adam Info: http://www.liv.ac.uk/~adamm/HomePage.html
---------------------------------------------------------------------------
To (un)subscribe to this list, send mail to
[email-masked].
Leave the subject line blank, and in the body put the line
(un)subscribe <email-address>
---------------------------------------------------------------------------

---

From: <[email-masked]> (Henry Zongaro)
Date: Tue, 11 Jun 1996 12:02:14 -0400 (EDT)

> (either this or the value will be undefined).

     I have to disagree with this - INDEPENDENT directive does not absolve a
compiler from having to make sure that the loop index variable has the correct
final value.  CCI #40 inquires about the meaning of the following:

         !HPF$ INDEPENDENT, NEW(I)
               DO I = 1, 10
               END DO

The response indicates that in this case, the value of I is undefined after the
loop.  But if I is not specified in the NEW clause, nothing in HPF specifies
that the value of I is anything other than 11.

Thanks,

Henry