Subject: hpff-doc: Comments on Mapping

From: Thomas Brandes <[email-masked]>
Date: Mon, 16 Sep 1996 16:41:22 +0200

---------------------------------------------------------------------------
[email-masked] is a mailing list for HPF 2.0 language specification
authors and editors.  Instructions for adding or deleting yourself from this
list appear at the bottom of this message.
---------------------------------------------------------------------------

I would like clarification about the following problem:

      REAL, ALLOCATABLE :: A(:,:), B(:,:)
!HPF$ DISTRIBUTE A(BLOCK,BLOCK)
!HPF$ ALIGN B (:,:) WIT A(:,:)

      ALLOCATE (A(N,N))
      ALLOCATE (B(N,N))

P. 28 states that the ALIGN directive is equivalent to:

!HPF$ ALIGN B(I,J) WITH A(I-lbound(A,1)+lbound(B,1),     &
!HPF$                     J-lbound(A,2)+lbound(B,2))

with some attached requirements.

Now section 2.5 says:

'... ALIGN directives do not take effect immediately, however; they
 take effect each time the array is allocated by an ALLOCATE statement,
 rather than on entry to the scoping unit.'

Fine, this would imply that the program is a conforming.

But it says also:

'The vales of all specification expressions in such a directive are 
 determined once on entry to the scoping unit and may be used multiple
 times'

Now we have the problem with the lbound(...). If they are specification
expressions, they are determined on entry (and would be undefined). The
program would be nonconforming.

I think that this needs some clarification.

Thomas Brandes

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