Subject: hpff-interpret: Re: Subject: Re: clarification for EXTRINSIC(HPF_LOCAL)

From: [email-masked]
Date: Mon, 25 Mar 1996 11:48:05 -0500

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

Hi,

>There is no constraint stopping an HPF_LOCAL routine from calling
>a Fortran 77 routine, as far as I know.  In fact, a standard way
>of calling such routines would be, as you suggest, to use the HPF_LOCAL
>routine as a wrapper to set up the argument passing for the Fortran 77
>or Fortran 90 routine it then calls.  Such a routine could be
>declared, for example, as EXTRINSIC(F90_LOCAL).  (You have to declare
>it as *something*; otherwise the default is that it is also considered
>to be HPF_LOCAL.)
>
>Clearly there are some issues here that could be re-examined; but what
>is there now is certainly workable.

Thanks for the response, but this is not at all what I am asking.  Probably
my message was not very clear.  If the compiler supports F90_LOCAL,
I don't need the intermediary step of HPF_LOCAL in the first place.  The whole
point is that the compilers I have used are very selective in the extrinsics
they support, and I'd like to be able to use HPF_LOCAL alone as a route to
using an assumed size array.

It is clear that if F90_LOCAL is supported, my problem is solved.  However, if
HPF_LOCAL is contrained to accept assumed shape arrays only when called from
global HPF, I will have a solution if either F90_LOCAL or HPF_LOCAL is
supported.

It seems to me that the assumed shape restriction was probably set in place
to facilitate transfer from the global HPF to local, and thus it is not
necessary when one HPF_LOCAL routine calls another.  Therefore, my question
remains: can HPF_LOCAL routines which will not be called from global HPF
take assumed size arrays?

My original message is included below.

Thanks,
Clint

From: R Clint Whaley <[email-masked]>
Date: Fri, 22 Mar 1996 18:38:20 -0500
To: [email-masked]
Subject: clarification for EXTRINSIC(HPF_LOCAL)
Cc: [email-masked], [email-masked]
Status: R

Hi,

I am looking at the HTML version of the HPF language specification, version 1.1.
It says:

>A dummy array argument of an EXTRINSIC(HPF_LOCAL) routine must have assumed
>shape, even when it is explicit shape in the interface. Note that, in general,
>the shape of a dummy array argument differs from the shape of the corresponding
>actual argument, unless there is a single executing processor. 

I think this statement is misleading.  Is it true that all HPF_LOCAL routines
are constrained to accept only assumed shape arrays, or is it only HPF_LOCAL
routines which are called from global HPF that have this restriction?

The reason I ask is that we have Fortran77 code which we are hoping to access
from HPF.  The easiest route to do this is to have the HPF routine call an
HPF_LOCAL routine with our arrays passed in as assumed shape.  Then, since
HPF_LOCAL is a superset of Fortran77, we declare our Fortran77 routine as
another HPF_LOCAL routine taking an assumed size array (required by Fortran77).

So, my question is: can HPF_LOCAL routines which will not be called from
global HPF take assumed size arrays?  If so, I think a slight rewording of
the standard might help make this apparent.

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