From owner-hpff-interpret  Fri Feb  2 00:36:50 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id AAA24670 for hpff-interpret-out; Fri, 2 Feb 1996 00:36:50 -0600 (CST)
Received: from anusf.anu.edu.au (anusf.anu.edu.au [150.203.5.2]) by cs.rice.edu (8.7.1/8.7.1) with SMTP id AAA24664 for <hpff-interpret@cs.rice.edu>; Fri, 2 Feb 1996 00:36:42 -0600 (CST)
Received: by anusf.anu.edu.au id AA08273
  (5.67b/IDA-1.5 for hpff-interpret@cs.rice.edu); Fri, 2 Feb 1996 17:36:35 +1100
From: David Singleton <David.Singleton@anu.edu.au>
Message-Id: <199602020636.AA08273@anusf.anu.edu.au>
Subject: hpff-interpret: HPF distributed pointer arrays
To: hpff-interpret@cs.rice.edu
Date: Fri, 2 Feb 1996 17:36:35 +1100 (EST)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
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.
---------------------------------------------------------------------------


Is there a contradiction within the HPF 1.1 Language Specification 
document with regards to distributed pointer arrays?

In section 3.3, page 27, line 5 (repeated in appendix C, page 186,
line 48), it is stated that a distributee in a DISTRIBUTE directive
may NOT have the POINTER attribute. However section 3.6, page 38, line
24, makes the contrary statement. The rest of section 3.6 clearly
suggests that pointer arrays are supposed to be distributable.

The negative statements where not in HPF Version 1.0. 

Can you clarify please?

Thanks,
David Singleton

----------------------------------------------------------------------------
Dr David Singleton               ANU Supercomputer Facility
David.Singleton@anu.edu.au       Australian National University   
Work Phone: +61 6 249 4389       Canberra, ACT, 0200, Australia
Home Phone: +61 6 248 7142       Fax: +61 6 279 8199
----------------------------------------------------------------------------


---------------------------------------------------------------------------
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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Fri Feb  2 08:02:08 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id IAA01435 for hpff-interpret-out; Fri, 2 Feb 1996 08:02:08 -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 IAA01429 for <hpff-interpret@cs.rice.edu>; Fri, 2 Feb 1996 08:02:03 -0600 (CST)
Received: from TOROLAB by VNET.IBM.COM (IBM VM SMTP V2R3) with BSMTP id 2976;
   Fri, 02 Feb 96 09:01:56 EST
Received: by TOROLAB (XAGENTA 4.0) id 4184; Fri, 2 Feb 1996 09:04:46 -0500 
Received: by twinpeaks.torolab.ibm.com (AIX 3.2/UCB 5.64/4.03)
          id AA29253; Fri, 2 Feb 1996 09:01:42 -0500
From: <zongaro@vnet.ibm.com> (Henry Zongaro)
Message-Id: <9602021401.AA29253@twinpeaks.torolab.ibm.com>
Subject: Re: hpff-interpret: HPF distributed pointer arrays
To: David.Singleton@anu.edu.au (David Singleton)
Date: Fri, 2 Feb 1996 09:01:36 -0500 (EST)
Cc: hpff-interpret@cs.rice.edu
In-Reply-To: <199602020636.AA08273@anusf.anu.edu.au> from "David Singleton" at Feb 2, 96 05:36:35 pm
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.
---------------------------------------------------------------------------

Hi David,

> Is there a contradiction within the HPF 1.1 Language Specification
> document with regards to distributed pointer arrays?
>
> In section 3.3, page 27, line 5 (repeated in appendix C, page 186,
> line 48), it is stated that a distributee in a DISTRIBUTE directive
> may NOT have the POINTER attribute. However section 3.6, page 38, line
> 24, makes the contrary statement. The rest of section 3.6 clearly
> suggests that pointer arrays are supposed to be distributable.

     Yes, there is a contradiction in the HPF 1.1 document.  The response to an
interpretation question posed was that pointers cannot appear as distributees
in a DISTRIBUTE directive.  Instead, a pointer acquires the mapping of its
associated target, if any.

     The instance you cite in section 3.6 was missed in the HPF 1.1 document,
but will be fixed in HPF 1.2.

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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Fri Feb  2 22:26:24 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id WAA27046 for hpff-interpret-out; Fri, 2 Feb 1996 22:26:24 -0600 (CST)
Received: from anusf.anu.edu.au (anusf.anu.edu.au [150.203.5.2]) by cs.rice.edu (8.7.1/8.7.1) with SMTP id WAA27040 for <hpff-interpret@cs.rice.edu>; Fri, 2 Feb 1996 22:26:17 -0600 (CST)
Received: by anusf.anu.edu.au id AA10908
  (5.67b/IDA-1.5 for hpff-interpret@cs.rice.edu); Sat, 3 Feb 1996 15:26:03 +1100
From: David Singleton <David.Singleton@anu.edu.au>
Message-Id: <199602030426.AA10908@anusf.anu.edu.au>
Subject: Re: hpff-interpret: HPF distributed pointer arrays
To: zongaro@vnet.ibm.com (Henry Zongaro)
Date: Sat, 3 Feb 1996 15:26:03 +1100 (EST)
Cc: hpff-interpret@cs.rice.edu
In-Reply-To: <9602021401.AA29253@twinpeaks.torolab.ibm.com> from "Henry Zongaro" at Feb 2, 96 09:01:36 am
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
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.
---------------------------------------------------------------------------


Thanks for your prompt reply Henry.

It is reasonable that a pointer array has the distribution of its
associated target. However this does not cover the case when the
pointer array is allocated instead of pointer assigned to an existing
array. If pointers are removed from section 3.6 then the only
conclusion is that pointer arrays cannot be allocated as distributed
arrays. Is this correct?

If true, this seems highly and unnecessarily restrictive. If
allocatable and automatic arrays can be distributed, why not
dynamically allocated pointer arrays? The big advantage of allocated
pointer arrays is that they can be placed in the global namespace via
COMMON or modules. The Fortran90 and HPF constraints on nonsequential
COMMON blocks should be sufficient to include distributed pointer
arrays.

Not allowing pointer arrays as distributees or alignees also
eliminates the possibility of REDISTRIBUTING or REALIGNING them after
allocation as well.

Even without having pointer arrays, CMFortran successfully encompassed
dynamic allocation of distributed arrays albeit by actually giving the
user access to array descriptors. Fortran90 pointer arrays should only
simplify the user interface to such dynamic allocation.

I would be very interested to understand the HPFF stance on allocated
distributed pointer arrays - it doesn't appear to be addressed in HPF2
documents. If you can point me at any other relevant online
documents, I'd be wery appreciative.

Thanks for your help and time,
David Singleton

----------------------------------------------------------------------------
Dr David Singleton               ANU Supercomputer Facility
David.Singleton@anu.edu.au       Australian National University   
Work Phone: +61 6 249 4389       Canberra, ACT, 0200, Australia
Home Phone: +61 6 248 7142       Fax: +61 6 279 8199
----------------------------------------------------------------------------

---------------------------------------------------------------------------
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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Mon Feb  5 19:49:32 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id TAA13105 for hpff-interpret-out; Mon, 5 Feb 1996 19:49:32 -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 TAA13100 for <hpff-interpret@cs.rice.edu>; Mon, 5 Feb 1996 19:49:28 -0600 (CST)
Received: from TOROLAB by VNET.IBM.COM (IBM VM SMTP V2R3) with BSMTP id 0046;
   Mon, 05 Feb 96 20:49:20 EST
Received: by TOROLAB (XAGENTA 4.0) id 1664; Mon, 5 Feb 1996 20:52:11 -0500 
Received: by twinpeaks.torolab.ibm.com (AIX 3.2/UCB 5.64/4.03)
          id AA23859; Mon, 5 Feb 1996 20:48:33 -0500
From: <zongaro@vnet.ibm.com> (Henry Zongaro)
Message-Id: <9602060148.AA23859@twinpeaks.torolab.ibm.com>
Subject: Re: hpff-interpret: HPF distributed pointer arrays
To: David.Singleton@anu.edu.au (David Singleton)
Date: Mon, 5 Feb 1996 20:48:21 -0500 (EST)
Cc: hpff-interpret@cs.rice.edu (HPPF Interpretations)
In-Reply-To: <199602030426.AA10908@anusf.anu.edu.au> from "David Singleton" at Feb 3, 96 03:26:03 pm
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.
---------------------------------------------------------------------------

Hi David,

> It is reasonable that a pointer array has the distribution of its
> associated target. However this does not cover the case when the
> pointer array is allocated instead of pointer assigned to an existing
> array. If pointers are removed from section 3.6 then the only
> conclusion is that pointer arrays cannot be allocated as distributed
> arrays. Is this correct?

That's correct; a pointer appearing in an ALLOCATE statement would get some
compiler default distribution (probably replication).

> If true, this seems highly and unnecessarily restrictive. If
> allocatable and automatic arrays can be distributed, why not
> dynamically allocated pointer arrays? The big advantage of allocated
> pointer arrays is that they can be placed in the global namespace via
> COMMON or modules. The Fortran90 and HPF constraints on nonsequential
> COMMON blocks should be sufficient to include distributed pointer
> arrays.
>
> Not allowing pointer arrays as distributees or alignees also
> eliminates the possibility of REDISTRIBUTING or REALIGNING them after
> allocation as well.

The original interpretation request that prompted this restriction asked
whether the following was a valid program - could a pointer be given one
mapping and made to point at something with a different mapping.

           program p
             integer, pointer :: ptr(:)
             integer, target :: targ(100)
    !hpf$    processors proc(number_of_processors())
    !hpf$    distribute targ(cyclic) onto proc
    !hpf$    distribute ptr(block) onto proc

             ptr => targ
           end program p

HPFF decided that it would be best to avoid such problems by prohibiting the
pointer from having an explicit mapping, and having it acquire the mapping of
its target.  This (perhaps inadvertently - I'm not sure) had the effect of
preventing the user from explicitly mapping pointers when they become
associated through the ALLOCATE statement.

> Even without having pointer arrays, CMFortran successfully encompassed
> dynamic allocation of distributed arrays albeit by actually giving the
> user access to array descriptors. Fortran90 pointer arrays should only
> simplify the user interface to such dynamic allocation.
>
> I would be very interested to understand the HPFF stance on allocated
> distributed pointer arrays - it doesn't appear to be addressed in HPF2
> documents. If you can point me at any other relevant online
> documents, I'd be wery appreciative.

This issue was raised by Larry Meadows for HPF 2.0, but I'm not sure off-hand
how it was dealt with at the last HPFF meeting.  Does anyone recall whether
this aspect of the problem came up for discussion?

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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Tue Feb  6 09:46:32 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id JAA26439 for hpff-interpret-out; Tue, 6 Feb 1996 09:39:09 -0600 (CST)
Received: from mail.think.com (Mail1.Think.COM [131.239.33.245]) by cs.rice.edu (8.7.1/8.7.1) with SMTP id JAA26430 for <hpff-interpret@cs.rice.edu>; Tue, 6 Feb 1996 09:39:02 -0600 (CST)
Received: from Custard.Think.COM by mail.think.com; Tue, 6 Feb 96 10:37:56 -0500
From: Carol Munroe <munroe@think.com>
Received: by custard.think.com (4.1/Think-1.2)
	id AA04076; Tue, 6 Feb 96 10:27:46 EST
Date: Tue, 6 Feb 96 10:27:46 EST
Message-Id: <9602061527.AA04076@custard.think.com>
To: zongaro@vnet.ibm.com
Cc: David.Singleton@anu.edu.au, hpff-interpret@cs.rice.edu
In-Reply-To: Henry Zongaro's message of Mon, 5 Feb 1996 20:48:21 -0500 (EST) <9602060148.AA23859@twinpeaks.torolab.ibm.com>
Subject: hpff-interpret: HPF distributed pointer arrays
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.
---------------------------------------------------------------------------

   From: <zongaro@vnet.ibm.com> (Henry Zongaro)
   Date: Mon, 5 Feb 1996 20:48:21 -0500 (EST)

   ---------------------------------------------------------------------------
   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.
   ---------------------------------------------------------------------------

   Hi David,

   > It is reasonable that a pointer array has the distribution of its
   > associated target. However this does not cover the case when the
   > pointer array is allocated instead of pointer assigned to an existing
   > array. If pointers are removed from section 3.6 then the only
   > conclusion is that pointer arrays cannot be allocated as distributed
   > arrays. Is this correct?

   That's correct; a pointer appearing in an ALLOCATE statement would get some
   compiler default distribution (probably replication).

   > If true, this seems highly and unnecessarily restrictive. If
   > allocatable and automatic arrays can be distributed, why not
   > dynamically allocated pointer arrays? The big advantage of allocated
   > pointer arrays is that they can be placed in the global namespace via
   > COMMON or modules. The Fortran90 and HPF constraints on nonsequential
   > COMMON blocks should be sufficient to include distributed pointer
   > arrays.
   >
   > Not allowing pointer arrays as distributees or alignees also
   > eliminates the possibility of REDISTRIBUTING or REALIGNING them after
   > allocation as well.

   The original interpretation request that prompted this restriction asked
   whether the following was a valid program - could a pointer be given one
   mapping and made to point at something with a different mapping.

	      program p
		integer, pointer :: ptr(:)
		integer, target :: targ(100)
       !hpf$    processors proc(number_of_processors())
       !hpf$    distribute targ(cyclic) onto proc
       !hpf$    distribute ptr(block) onto proc

		ptr => targ
	      end program p

   HPFF decided that it would be best to avoid such problems by prohibiting the
   pointer from having an explicit mapping, and having it acquire the mapping of
   its target.  This (perhaps inadvertently - I'm not sure) had the effect of
   preventing the user from explicitly mapping pointers when they become
   associated through the ALLOCATE statement.

   > Even without having pointer arrays, CMFortran successfully encompassed
   > dynamic allocation of distributed arrays albeit by actually giving the
   > user access to array descriptors. Fortran90 pointer arrays should only
   > simplify the user interface to such dynamic allocation.
   >
   > I would be very interested to understand the HPFF stance on allocated
   > distributed pointer arrays - it doesn't appear to be addressed in HPF2
   > documents. If you can point me at any other relevant online
   > documents, I'd be wery appreciative.

   This issue was raised by Larry Meadows for HPF 2.0, but I'm not sure off-hand
   how it was dealt with at the last HPFF meeting.  Does anyone recall whether
   this aspect of the problem came up for discussion?

I only recall that this came up at the vendors subgroup, where we proposed
that DISTRIBUTE and ALIGN be reallowed for POINTER and ALLOCATABLE
variables for precisely this reason. The idea, as I understood it, was to
let POINTER arrays be mapped, but only (in the absence of DYNAMIC) allow
them to point to similarly mapped variables. (I don't think we talked about
the question of pointing at array sections of similarly mapped variables.)
I'm not sure what the last official HPFF vote on pointers was, although I
believe it implied that nondynamic pointer arrays should only point to
things with the same mapping, which seems to me most compatible with their
having a mapping themselves, not with their having no mapping.

   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>
   ---------------------------------------------------------------------------

---------------------------------------------------------------------------
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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Wed Feb  7 05:56:39 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id FAA03244 for hpff-interpret-out; Wed, 7 Feb 1996 05:56:39 -0600 (CST)
Received: from svr.bimp.pku.edu.cn (svr.bimp.pku.edu.cn [162.105.174.2]) by cs.rice.edu (8.7.1/8.7.1) with SMTP id FAA03238 for <hpff-interpret@cs.rice.edu>; Wed, 7 Feb 1996 05:56:19 -0600 (CST)
Message-Id: <199602071156.FAA03238@cs.rice.edu>
Received: by svr.bimp.pku.edu.cn
	(1.38.193.4/16.2) id AA23913; Wed, 7 Feb 1996 19:47:27 +0800
From: Yan Mi <yanm@bimp.pku.edu.cn>
Subject: hpff-interpret: a question about common block and equivalence statement
To: hpff-interpret@cs.rice.edu
Date: Wed, 7 Feb 96 19:47:26 EAT
Mailer: Elm [revision: 70.85]
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.
---------------------------------------------------------------------------

Dear Profassor,
	I am a graduate student of Peking Univ., P.R.China. Now, we are writing
a complier of HPF. I have some trouble, can you help me?
	I am processing COMMON statement and EQUIVALENCE statement, I do not 
know how to process the following examples:
	program comm
		real a				(1)
		common /b/c,d                   (2)
		f=1.0				(3)

	contains
	function xx(ff)
		common /e/a,f			(4)
		common /b/g,z			(5)
		real j,k
		equivalence (c,j)		(6)
		equivalence (a,k)		(7)
	end
	end
on this example, I have some question :
	1. Can I treate the common block 'b' (in statement 5) as a continuation
of the common block 'b' in statement 2?
	2. Are the two 'a' (in statement 1 and statement 4) the same one? What
about 'f' (in statement 3 and statement 4)?
	3. Can I treate the variable 'c' in statement 6 as the same symbol of
'c' in statement 2? What about 'a' in statement 7?

	We will start our winter vocation at this week end. So can you replay 
me before 9th?
	Thanks very much.

					Sinceresly yours
					Feng Xiaobing

---------------------------------------------------------------------------
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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Wed Feb  7 12:14:27 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id MAA12730 for hpff-interpret-out; Wed, 7 Feb 1996 12:14:27 -0600 (CST)
Received: from coral.llnl.gov (coral.llnl.gov [134.9.1.2]) by cs.rice.edu (8.7.1/8.7.1) with ESMTP id MAA12716 for <hpff-interpret@cs.rice.edu>; Wed, 7 Feb 1996 12:14:21 -0600 (CST)
Message-Id: <199602071814.MAA12716@cs.rice.edu>
Received: by coral.llnl.gov
	(1.39.111.2/16.2) id AA160386855; Wed, 7 Feb 1996 10:14:15 -0800
Date: Wed, 7 Feb 1996 10:14:15 -0800
From: Mary E Zosel <zosel@coral.llnl.gov>
To: hpff-interpret@cs.rice.edu
Subject: hpff-interpret: PNL align question
Cc: m_rosing@pnl.gov
Mime-Version: 1.0
Content-Type: text/plain; charset=X-roman8
Content-Transfer-Encoding: 7bit
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.
---------------------------------------------------------------------------

Matt ... I'm going to forward this to the hpff-interpret mailing
list.  In a quick reading of your message - it looks to me like you
need the "generalized block" feature that has been accepted as
a feature in the latest round of HPFF meetings  (but is likely  to be in
the set of features that has an uncertain future wrt implementation).
Someone else can comment if I've misread the question or if it needs
generalized block plus something additional.
   -mary-
----------------

Date: Wed, 7 Feb 1996 10:55:00 GMT
>From: rosing@frii.com
To: zosel@llnl.gov
Subject: hpf question

Mary,

Is there a mail alias for sending "how do I do this in HPF?" questions?
I have a problem that I strongly suspect is easily handled in HPF but
I can't figure it out from the manual. If you could let me know who to
send this question to, or answer it yourself, or forward it to the 
correct group, I'd appreciate it.

Thanks,

matt

I'm trying to figure out how to distribute two types of arrays to
minimize communication, the first has border elements and the second
doesn't. The first array is declared B(-2:nx+2, -2:ny+2, -2:nz+2) and
the second is declared A(nx,ny,nz). Array A should be distributed by
blocks in one or more dimensions and array B should be distributed
such that B(i,j,k) is on the same node as A(i,j,k) for 0<i<=nx,
0<j<=ny, and 0<k<=nz. The border elements should be on the nodes where
the neighboring non-border elements are. 

The align directive doesn't appear to work because the lengths of the
dimensions are not the same (page 34, line 42, version 1.1 of the
manual). I can't afford to put extra elements around A for several
reasons; A is really a 5D array and the extra storage would be large
(there are also lots of A's), for reasons of load balancing I
don't want the border elements included in how the block sizes are
computed and placed, and I don't want to rewrite all of the array
operations on the A arrays to not operate on any new borders.

This seems like a typical problem and I'm fairly sure it was discussed
at one time.

matt

(m_rosing@pnl.gov)

---------------------------------------------------------------------------
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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Wed Feb  7 13:44:27 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id NAA17184 for hpff-interpret-out; Wed, 7 Feb 1996 13:44:27 -0600 (CST)
Received: from [128.42.1.213] (morpheus.cs.rice.edu [128.42.1.213]) by cs.rice.edu (8.7.1/8.7.1) with SMTP id NAA17168; Wed, 7 Feb 1996 13:44:18 -0600 (CST)
X-Sender: chk@titan.cs.rice.edu
Message-Id: <v01530508ad3eab0ec5bc@[128.42.1.213]>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Wed, 7 Feb 1996 13:44:53 -0600
To: Mary E Zosel <zosel@coral.llnl.gov>
From: chk@cs.rice.edu (Chuck Koelbel)
Subject: Re: hpff-interpret: PNL align question
Cc: hpff-interpret@cs.rice.edu, m_rosing@pnl.gov
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.
---------------------------------------------------------------------------

At 10:14 02/07/96, Matt Rosing wrote:
>I'm trying to figure out how to distribute two types of arrays to
>minimize communication, the first has border elements and the second
>doesn't. The first array is declared B(-2:nx+2, -2:ny+2, -2:nz+2) and
>the second is declared A(nx,ny,nz). Array A should be distributed by
>blocks in one or more dimensions and array B should be distributed
>such that B(i,j,k) is on the same node as A(i,j,k) for 0<i<=nx,
>0<j<=ny, and 0<k<=nz. The border elements should be on the nodes where
>the neighboring non-border elements are.
>
>...
>
>(m_rosing@pnl.gov)

In short, Mary's answer was correct.  To do precisely what you want, you
need the generalized block mapping.  Current thinking is that this will be
part of the "approved extended features" of HPF 2.0.  That means the syntax
and semantics will be defined, but vendors are likely to concentrate on the
core (aka kernel) features of the language first.

BTW, You can use ALIGN as follows:
        !HPF$ ALIGN A(i,j,k) WITH B(i,j,k)
Or
        !HPF$ ALIGN A(:,:,:) WITH B(1:nx,1:ny,1:nz)
The rule is basically that the array sections in ALIGN must conform, but
the align-target (B) doens't have to specify the whole array.  However,
this ALIGNment doesn't solve your problem with not counting boundary
elements in the block sizes.

                                                Chuck


---------------------------------------------------------------------------
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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Wed Feb  7 17:50:25 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id RAA27329 for hpff-interpret-out; Wed, 7 Feb 1996 17:50:25 -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 RAA27324 for <hpff-interpret@cs.rice.edu>; Wed, 7 Feb 1996 17:50:18 -0600 (CST)
Received: from TOROLAB by VNET.IBM.COM (IBM VM SMTP V2R3) with BSMTP id 9244;
   Wed, 07 Feb 96 18:49:37 EST
Received: by TOROLAB (XAGENTA 4.0) id 3381; Wed, 7 Feb 1996 18:52:31 -0500 
Received: by twinpeaks.torolab.ibm.com (AIX 3.2/UCB 5.64/4.03)
          id AA32900; Wed, 7 Feb 1996 18:49:23 -0500
From: <zongaro@vnet.ibm.com> (Henry Zongaro)
Message-Id: <9602072349.AA32900@twinpeaks.torolab.ibm.com>
Subject: Re: hpff-interpret: a question about common block and equivalence statement
To: yanm@bimp.pku.edu.cn (Yan Mi)
Date: Wed, 7 Feb 1996 18:49:15 -0500 (EST)
Cc: hpff-interpret@cs.rice.edu
In-Reply-To: <199602071156.FAA03238@cs.rice.edu> from "Yan Mi" at Feb 7, 96 07:47:26 pm
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.
---------------------------------------------------------------------------

Feng Xiaobing writes:
>       program comm
>               real a                          (1)
>               common /b/c,d                   (2)
>               f=1.0                           (3)
>
>       contains
>       function xx(ff)
>               common /e/a,f                   (4)
>               common /b/g,z                   (5)
>               real j,k
>               equivalence (c,j)               (6)
>               equivalence (a,k)               (7)
>       end
>       end
> on this example, I have some question :
>       1. Can I treate the common block 'b' (in statement 5) as a continuation
> of the common block 'b' in statement 2?
>       2. Are the two 'a' (in statement 1 and statement 4) the same one? What
> about 'f' (in statement 3 and statement 4)?
>       3. Can I treate the variable 'c' in statement 6 as the same symbol of
> 'c' in statement 2? What about 'a' in statement 7?
>
>       We will start our winter vocation at this week end. So can you replay
> me before 9th?

     I hope this reaches you in time:

     1) No, the common block in (5) cannot be treated as a continuation.
        Statement 5 redefines the common block 'b', so 'c' in the main program
        shares storage with 'g' in the internal function, and 'd' in the main
        program shares storage with 'z' in the internal function.
     2) The 'a' variables defined in (1) and (4) are different variables.
        The 'f' variables defined by (3) and (4) are different variables.
     3) The 'c' variables defined by (2) and (6) are different variables.

If you have a copy of the Fortran 90 standard, see Section 12.1.2.2.1.  There
you'll find a list of situations in which host names (like those declared
by (1), (2) and (3)) are not accessible in an internal subprogram or module
subprogram - basically, whenever something with the same name is declared in
the internal or module subprogram.

     I hope this helps.

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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Thu Feb  8 17:47:14 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id RAA03451 for hpff-interpret-out; Thu, 8 Feb 1996 17:41:14 -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 RAA03443 for <hpff-interpret@cs.rice.edu>; Thu, 8 Feb 1996 17:41:07 -0600 (CST)
Received: from TOROLAB by VNET.IBM.COM (IBM VM SMTP V2R3) with BSMTP id 7329;
   Thu, 08 Feb 96 18:40:55 EST
Received: by TOROLAB (XAGENTA 4.0) id 3985; Thu, 8 Feb 1996 18:43:38 -0500 
Received: by twinpeaks.torolab.ibm.com (AIX 3.2/UCB 5.64/4.03)
          id AA28719; Thu, 8 Feb 1996 18:40:45 -0500
From: <zongaro@vnet.ibm.com> (Henry Zongaro)
Message-Id: <9602082340.AA28719@twinpeaks.torolab.ibm.com>
Subject: hpff-interpret: Some questions
To: hpff-interpret@cs.rice.edu (HPPF Interpretations)
Date: Thu, 8 Feb 1996 18:40:41 -0500 (EST)
Cc: kyw@watson.ibm.com, schnbrg@watson.ibm.com, lmartin@torolab2.VNET.IBM.COM
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,

     The much-beloved section 3.10 of the HPF Language Spec. states (in part)
on page 54 that

      The rules on the interaction of the REALIGN and REDISTRIBUTE directives
      with a subprogram argument interface are:
      1. . . . .
      2. If an array or any section thereof is accessible by two or more paths,
         it is not HPF-conforming to remap it through any of those paths. . . .
         In general, in any situation where assignment to a variable would be
         nonconforming by reason of aliasing, remapping of that variable by an
         explicit REALIGN or REDISTRIBUTE directive is also forbidden.

     These rules deal explicitly with REALIGN and REDISTRIBUTE, but not with
some other situations in which aliasing might occur.  For example, is the
following a conforming program?  Here 'a' is remapped on becoming associated
with 'x'.  Can an element of 'a' then be referenced in sub?  If I had a call
to HPF_DISTRIBUTION passing 'a', what would be the AXIS_TYPE?

      program p
        integer :: a(100) = 1
!hpf$   distribute a(block)
        call sub(a)
      contains
        subroutine sub(x)
          integer x(100)
!hpf$     distribute x*(cyclic)

          i = a(1)
        end subroutine sub
      end program p

How about the following?  'a' is remapped when it becomes associated with 'x' -
can 'a' then be passed to sub2, which would require remapping as well?  Given
that REALIGN and REDISTRIBUTE are prohibited, my guess is that this would be
prohibited as well.

      program p
        integer :: a(100) = 1
!hpf$   distribute a(block)
        call sub(a)
      contains
        subroutine sub(x)
          integer x(100)
!hpf$     distribute x*(cyclic)

          call sub2(a)
        end subroutine sub

        subroutine sub2(y)
          integer y(100)
!hpf$     distribute y*(*)
        end subroutine sub2
      end program p

How about this one?  Here, the same actual argument is associated with two
different dummy arguments, each of which requires a different mapping from the
actual.

      program p
        integer :: a(10, 10) = 1
!hpf$   distribute a(block, block)
        call sub(a, a)
      contains
        subroutine sub(x, y)
          integer x(10, 10), y(10, 10)
!hpf$     distribute x*(cyclic, block)
!hpf$     distribute y*(block, cyclic)

          print *, x, y
        end subroutine sub
      end program p

If the mapping of 'x' had been the same as that of 'a', would the third example
then be conforming?

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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Fri Feb  9 05:46:20 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id FAA18529 for hpff-interpret-out; Fri, 9 Feb 1996 05:46:20 -0600 (CST)
Received: from watson.ibm.com (watson.ibm.com [129.34.139.4]) by cs.rice.edu (8.7.1/8.7.1) with SMTP id FAA18524 for <hpff-interpret@cs.rice.edu>; Fri, 9 Feb 1996 05:46:15 -0600 (CST)
Received: from WATSON by watson.ibm.com (IBM VM SMTP V2R3) with BSMTP id 9265;
   Fri, 09 Feb 96 06:45:50 EST
Received: from YKTVMV by watson.vnet.ibm.com with "VAGENT.V1.02 on VAGENT2"
          id 5660; Fri, 9 Feb 1996 06:45:50 EST
Received: from edith.watson.ibm.com by yktvmv.watson.ibm.com (IBM VM SMTP V2Rx)
   with TCP; Fri, 09 Feb 96 06:45:46 EST
Received: by edith.watson.ibm.com (AIX 4.1/UCB 5.64/930311)
          id AA21254; Fri, 9 Feb 1996 06:45:28 -0500
Date: Fri, 9 Feb 1996 06:45:28 -0500
From: schnbrg@watson.ibm.com (EG.Schonberg)
Message-Id: <9602091145.AA21254@edith.watson.ibm.com>
To: henry@twinpeaks.torolab.ibm.com, hpff-interpret@cs.rice.edu
Subject: hpff-interpret: Re:  Some questions
Cc: kyw@watson.ibm.com, lmartin@torolab2.vnet.ibm.com, schnbrg@watson.ibm.com
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.
---------------------------------------------------------------------------

Henry,

Maybe we should run these thru PGI compiler and see what the answer
is  :-)))

Edith
---------------------------------------------------------------------------
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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Tue Feb 13 15:09:42 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id PAA19273 for hpff-interpret-out; Tue, 13 Feb 1996 15:09:42 -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 PAA19264 for <hpff-interpret@cs.rice.edu>; Tue, 13 Feb 1996 15:09:31 -0600 (CST)
Received: from TOROLAB by VNET.IBM.COM (IBM VM SMTP V2R3) with BSMTP id 5872;
   Tue, 13 Feb 96 16:09:08 EST
Received: by TOROLAB (XAGENTA 4.0) id 1580; Tue, 13 Feb 1996 16:12:07 -0500 
Received: by twinpeaks.torolab.ibm.com (AIX 3.2/UCB 5.64/4.03)
          id AA21023; Tue, 13 Feb 1996 16:09:12 -0500
From: <zongaro@vnet.ibm.com> (Henry Zongaro)
Message-Id: <9602132109.AA21023@twinpeaks.torolab.ibm.com>
Subject: hpff-interpret: Array sections and HPF_LOCAL
To: hpff-interpret@cs.rice.edu (HPPF Interpretations)
Date: Tue, 13 Feb 1996 16:09:06 -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,

     I thought I had sent this question a few weeks ago, but I couldn't find
any record of having done that - my apologies if this is a duplicate.

     Consider the following program.

         program prog
           interface
             extrinsic(hpf_local) subroutine sub(dummy)
               integer :: dummy(:, :)
   !hpf$       inherit dummy
             end subroutine sub
           end interface
           integer actual(4, 4)
   !hpf$   processors p(2, 2)
   !hpf$   distribute actual(block, block) onto p

           call sub(actual(1:2, 1:2))
         end program prog

         extrinsic(hpf_local) subroutine sub(dummy)
           use hpf_local_library
           integer :: dummy(:, :)

           print *, 'proc = ', my_processor(),                                &
        &           'lbound = ', lbound(dummy),                               &
        &           'ubound = ', ubound(dummy)
         end subroutine sub

Assuming that elements of p correspond to physical processors as follows

             p(1,1)     0
             p(2,1)     1
             p(1,2)     2
             p(2,2)     3

which of the following correctly describes the output from the four instances
of the HPF_LOCAL subroutine?

a)     proc = 0 lbound = 1 1 ubound = 2 2
       proc = 1 lbound = 1 1 ubound = 0 2
       proc = 2 lbound = 1 1 ubound = 2 0
       proc = 3 lbound = 1 1 ubound = 0 0

b)     proc = 0 lbound = 1 1 ubound = 2 2
       proc = 1 lbound = 1 1 ubound = 0 0
       proc = 2 lbound = 1 1 ubound = 0 0
       proc = 3 lbound = 1 1 ubound = 0 0

In other words, should sub behave as if dummy is divided up like this

            -------------------------------------
           | dummy(1:2, 1:2)  |  dummy(1:2, 1:0) |
a)          -------------------------------------
           | dummy(1:0, 1:2)  |  dummy(1:0, 1:0) |
            -------------------------------------

or this?

            -------------------------------------
           | dummy(1:2, 1:2)  |  dummy(1:0, 1:0) |
b)          -------------------------------------
           | dummy(1:0, 1:0)  |  dummy(1:0, 1:0) |
            -------------------------------------

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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Fri Feb 16 08:22:29 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id IAA25524 for hpff-interpret-out; Fri, 16 Feb 1996 08:22:29 -0600 (CST)
Received: from cp.tn.tudelft.nl (root@orion.cp.tn.tudelft.nl [130.161.190.227]) by cs.rice.edu (8.7.1/8.7.1) with SMTP id IAA25518 for <hpff-interpret@cs.rice.edu>; Fri, 16 Feb 1996 08:22:22 -0600 (CST)
Received: from scorpius (scorpius.cp.tn.tudelft.nl) by cp.tn.tudelft.nl (5.67a/HB-1.18)
	id AA02790; Fri, 16 Feb 1996 15:22:09 +0100
Received: by scorpius (4.1/SMI-4.1)
	id AA27105; Fri, 16 Feb 96 15:22:05 +0100
Date: Fri, 16 Feb 1996 15:21:59 +0100 (MET)
From: Paul Dechering <paul@scorpius.cp.tn.tudelft.nl>
To: hpff-interpret@cs.rice.edu
Subject: hpff-interpret: array assignment in forall
Message-Id: <Pine.SUN.3.91.960216145153.26501A-100000@scorpius>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
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.
---------------------------------------------------------------------------

---------------------------------------------------------------------------
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,

I tried to figure out whether I may use array bounds in a forall
assignment that are defined by the index variable. For example, is the
forall in the following program fragment valid

	integer a (10, 2)
	integer b (11)

	forall (i:10) a (i, 1:2) = b (i:i+1)

I haven't found any constraints that forbid this construct, but I'm not 
sure this garantuees that it is allowed.

Can you tell me whether this use of the forall statement is valid or not; 
and/or can you tell me where I can find the answer to my question?

Thanks in advance for your help,

Paul Dechering
        ---------------------------------------------------------
       | telephone: +3115 2782419                                |
       | telefax  : +3115 2786740                                |
       | E-mail   : P.F.G.Dechering@cp.tn.tudelft.nl             |
       | WWW page : http://www.cp.tn.tudelft.nl/P.F.G.Dechering/ |
        ---------------------------------------------------------

---------------------------------------------------------------------------
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>
---------------------------------------------------------------------------
---------------------------------------------------------------------------
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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Fri Feb 16 09:21:09 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id JAA26830 for hpff-interpret-out; Fri, 16 Feb 1996 09:21:09 -0600 (CST)
Received: from mail.think.com (Mail1.Think.COM [131.239.33.245]) by cs.rice.edu (8.7.1/8.7.1) with SMTP id JAA26824 for <hpff-interpret@cs.rice.edu>; Fri, 16 Feb 1996 09:21:04 -0600 (CST)
Received: from Custard.Think.COM by mail.think.com; Fri, 16 Feb 96 10:20:33 -0500
From: Carol Munroe <munroe@think.com>
Received: by custard.think.com (4.1/Think-1.2)
	id AA02363; Fri, 16 Feb 96 10:08:08 EST
Date: Fri, 16 Feb 96 10:08:08 EST
Message-Id: <9602161508.AA02363@custard.think.com>
To: paul@scorpius.cp.tn.tudelft.nl
Cc: hpff-interpret@cs.rice.edu
In-Reply-To: Paul Dechering's message of Fri, 16 Feb 1996 15:21:59 +0100 (MET) <Pine.SUN.3.91.960216145153.26501A-100000@scorpius>
Subject: hpff-interpret: array assignment in forall
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.
---------------------------------------------------------------------------

   Date: Fri, 16 Feb 1996 15:21:59 +0100 (MET)
   From: Paul Dechering <paul@scorpius.cp.tn.tudelft.nl>

   ---------------------------------------------------------------------------
   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.
   ---------------------------------------------------------------------------

   ---------------------------------------------------------------------------
   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,

   I tried to figure out whether I may use array bounds in a forall
   assignment that are defined by the index variable. For example, is the
   forall in the following program fragment valid

	   integer a (10, 2)
	   integer b (11)

	   forall (i:10) a (i, 1:2) = b (i:i+1)

This is absolutely OK (assuming the typo is fixed). Typically the
forall indices are used on the right hand side of the assignment
as well as the left.

	   forall (i=1:10)  a (i, 1:2) = b (i:i+1)
                    **


   I haven't found any constraints that forbid this construct, but I'm not 
   sure this garantuees that it is allowed.

   Can you tell me whether this use of the forall statement is valid or not; 
   and/or can you tell me where I can find the answer to my question?

   Thanks in advance for your help,

   Paul Dechering
	   ---------------------------------------------------------
	  | telephone: +3115 2782419                                |
	  | telefax  : +3115 2786740                                |
	  | E-mail   : P.F.G.Dechering@cp.tn.tudelft.nl             |
	  | WWW page : http://www.cp.tn.tudelft.nl/P.F.G.Dechering/ |
	   ---------------------------------------------------------

   ---------------------------------------------------------------------------
   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>
   ---------------------------------------------------------------------------
   ---------------------------------------------------------------------------
   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>
   ---------------------------------------------------------------------------

---------------------------------------------------------------------------
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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Fri Feb 16 12:12:03 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id MAA02814 for hpff-interpret-out; Fri, 16 Feb 1996 12:12:03 -0600 (CST)
Received: from hplms26.hpl.hp.com (hplms26.hpl.hp.com [15.255.168.31]) by cs.rice.edu (8.7.1/8.7.1) with ESMTP id MAA02808 for <hpff-interpret@cs.rice.edu>; Fri, 16 Feb 1996 12:11:56 -0600 (CST)
Received: from hplpp3.hpl.hp.com by hplms26.hpl.hp.com with ESMTP
	($Revision: 1.36.108.11 $/15.5+ECS 3.3+HPL1.1S) id AA148584312; Fri, 16 Feb 1996 10:11:53 -0800
Received: by hplpp3.hpl.hp.com
	(1.37.109.14/15.5+ECS 3.3+HPL1.1) id AA090174314; Fri, 16 Feb 1996 10:11:54 -0800
Date: Fri, 16 Feb 1996 10:11:54 -0800
From: Rob Schreiber <schreibr@hplpp3.hpl.hp.com>
Message-Id: <199602161811.AA090174314@hplpp3.hpl.hp.com>
To: zongaro@vnet.ibm.com
Cc: hpff-interpret@cs.rice.edu
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.
---------------------------------------------------------------------------

Henry,

Good question about lbound and ubound for dummies
of extrinsic local routines!    I favor iterpretation (a)


            -------------------------------------
           | dummy(1:2, 1:2)  |  dummy(1:2, 1:0) |
a)          -------------------------------------
           | dummy(1:0, 1:2)  |  dummy(1:0, 1:0) |
            -------------------------------------

All HPF distributions onto multidimensional processors arrangements are
cartesian products of one-dimensional distributions; this interpretation
is consistent with that rule.

Rob


---------------------------------------------------------------------------
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>
---------------------------------------------------------------------------

From owner-hpff-interpret  Thu Feb 22 00:18:28 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id AAA02071 for hpff-interpret-out; Thu, 22 Feb 1996 00:18:28 -0600 (CST)
Received: from relay-4.mail.demon.net (relay-4.mail.demon.net [158.152.1.108]) by cs.rice.edu (8.7.1/8.7.1) with SMTP id AAA02066 for <hpff-interpret@cs.rice.edu>; Thu, 22 Feb 1996 00:18:20 -0600 (CST)
Received: from post.demon.co.uk ([158.152.1.72]) by relay-4.mail.demon.net
          id af08238; 21 Feb 96 8:10 GMT
Received: from nasoftwr.demon.co.uk ([158.152.18.126]) by relay-3.mail.demon.net
          id aa06092; 21 Feb 96 8:05 GMT
Received: from nasoftwr.demon.co.uk (porsche) by nasoftwr.demon.co.uk id AA03217;
	Tue, 20 Feb 96 19:04:21 GMT
Received:  by nasoftwr.demon.co.uk id AA25925;
	Tue, 20 Feb 96 19:04:21 GMT
From: Dave Watson <dave@nasoftwr.demon.co.uk>
Message-Id: <9602201904.AA25925@nasoftwr.demon.co.uk>
Subject: hpff-interpret: Array Sections and HPF_LOCAL
To: hpff-interpret@cs.rice.edu
Date: Tue, 20 Feb 1996 19:04:20 +0000 (GMT)
X-Mailer: ELM [version 2.4 PL23]
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.
---------------------------------------------------------------------------

Can I add support for interpretation a) i.e.

            -------------------------------------
           | dummy(1:2, 1:2)  |  dummy(1:2, 1:0) |
            -------------------------------------
           | dummy(1:0, 1:2)  |  dummy(1:0, 1:0) |
            -------------------------------------

If we consider a function or subroutine delivering a result sized according
to an incoming argument this interpretation is necessary for correct behaviour.
The following (exceedingly artificial) code illustrates the necessity

         program prog
           interface
             extrinsic(hpf_local) function funres(dummy)
               integer :: dummy(:, :)
               integer :: funres(size(dummy,1))
   !hpf$       inherit dummy
   !hpf$       align with dummy(:,*) :: funres
             end subroutine funres
           end interface
           integer actual(4, 4)
           integer junk(4)
   !hpf$   processors p(2, 2)
   !hpf$   distribute actual(block, block) onto p
   !hpf$   align junk(:) with actual(:,*)

           junk(1:2) = funres(actual(1:2,1:2))
         end program prog

         extrinsic(hpf_local) function funres(dummy)
               integer :: dummy(:, :)
               integer :: funres(size(dummy,1))
   !hpf$       inherit dummy
   !hpf$       align with dummy(:,*) :: funres
               funres = 0               
               dummy  = 0
         end subroutine funres


under interpretation b) processor 2 (assuming the numbering in the original 
example) would return a size zero array into a size 2 array. 

Cheers,
   Dave

---------------------------------------------------------------------------
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>
---------------------------------------------------------------------------

