The basic constraints for the local model (Section 11.1)
together with the F77_LOCAL-specific argument passing options
(Section
) define the nature of the
F77_LOCAL interface: how control is to be transferred from a
global HPF procedure to a set of local procedures described by an
EXTRINSIC(F77_LOCAL) procedure interface and how data can be passed
between these two types of procedures: by reference or by descriptor,
and with or without temporary local reordering of data to satisfy
FORTRAN 77 provisions for sequential, contiguous storage of array data
in Fortran array element order. These alternative methods of argument
passing can be obtained by use of the two special-purpose
attributes for extrinsic dummy arguments defined for
LANGUAGE="0DF77"0D routines:
LAYOUT("0DF77_ARRAY"0D) (the default) vs.
LAYOUT("0DHPF_ARRAY"0D), and
PASS_BY("0D*"0D) (the default) vs.
PASS_BY("0DHPF_HANDLE"0D). However, to take
advantage of the option allowing one to pass global HPF array
``handles'' to local FORTRAN 77 procedures and then obtain information
locally about how the local portion of a given parallel array is
actually distributed requires special inquiry routines comparable to
the HPF Local Library of functions. Since this library is not only
described as a module, but uses many features such as array-valued
functions and optional arguments not available in FORTRAN 77 code, it
is recommended that a modified FORTRAN 77 interface to this library be
provided in the manner described below. Furthermore, there is the
problem of describing local portions of parallel arrays in the
FORTRAN 77 code used in each local routine called from a global HPF
one. Since assumed-shape syntax may not be used, explicit shape arrays
are required. But it is common for global distribution of arbitrary
sized arrays to result in local portions of arrays that do not have
constant shapes on all processors, and the actual extents in each
processor cannot necessarily be predicted in advance. In order to
allow programmers to obtain axis extent information at run time from
the HPF global caller, a special HPF-callable subgrid inquiry
subroutine is provided. A FORTRAN 77 callable version of the same
routine is also described below, for flexibility in programming.