Next: Subroutines for global reductions
Up: Subroutines and functions
Previous: Subroutines to redistribute data
Current implementations provide a single routine
to update the ghost boundaries for a distributed array:
subroutine mesh_update_bdry(array)
real array(....)
This subroutine updates the ghost boundaries of array
(by exchanging boundary information with neighboring processes).
The corners of the ghost boundaries are updated, but
ghost boundaries that correspond to the boundaries of the global
array are not.
(Observe that the width of the ghost boundaries -- i.e., the width
of the boundary to exchange -- is specified by the user via
PARAMETER NGHOST.)
NOTE:
Some implementations also include alternative boundary-exchange
operations, including:
- A boundary exchange operation that does
not update the corners of the
ghost section -- this is potentially
somewhat faster.
- A boundary exchange operation that treats the grid as
a torus rather than a mesh -- i.e., fills in ghost
boundaries for processes on the boundaries of the
process grid with values from processes on the
opposite border. (E.g., the left ghost boundary
of a process on the left edge of the process grid
contains values from the right boundary of the
corresponding process on the right edge of the
process grid.)
Refer to comments in the implementation code for details.
Berna L Massingill
Mon Jun 8 19:35:58 PDT 1998