Next: Local Routines Written Up: Conventions for Local Previous: Calling Sequence
The local procedure invoked on each processor is passed a local argument for each global argument passed by the caller to the (global) extrinsic procedure interface. Each global argument is a distributed HPF array or a replicated scalar. The corresponding local argument is the part of the global array stored locally, or the local copy of a scalar argument. An array actual argument passed by an HPF caller is called a global array; the subgrid of that global array passed to one copy of a local routine (because it resides in that processor) is called a local array.
If the extrinsic procedure is a function, then the local procedure is also a function. Each local invocation of that function will return the local part of the extrinsic function return value. If the extrinsic function is scalar-valued then the implicit mapping of the return value is replicated. Thus, all local functions must return the same value. If one desires to return one, possibly distinct, value per processor, then the extrinsic function must be declared to return a distributed rank-one array of size NUMBER_OF_PROCESSORS.
The run-time interface should provide enough information that each
local function can discover for each local argument the mapping of the
corresponding global argument, translate global indices to local
indices, and vice-versa. A specific set of procedures that provide
this information is listed in Section . The manner
in which this information is made available to the local routine
depends on the implementation and the programming language used for the