Generated from /asc/asci2/site/flashcode/secure/release_4p6/source/Driver/Driver_computeCellLocations.F90 with ROBODoc v4.99.8 on Fri Jun 28 16:16:51 2019


[Functions] source/Driver/Driver_computeCellLocations





  call Driver_computeCellLocations(integer(IN)  :: nLocations,
                                   logical(OUT)  :: cellisLocal(:),
                                   integer(OUT)  :: cellLocation(:,:),
                                   integer(IN)  :: nBlocks,
                                   integer(IN)  :: blockList,
                                   logical(IN),OPTIONAL  :: doBroadcast)


  Compute one or more locations of special interest.
  A 'location' identifies a computational cell (at a given time) in a 
  globally unique way. A location is represented by a quintuple of integers
  as ( i, j, k, blockID, proc ), where i,j,k are cell indices in a block,
  and blockID identifies a local block ID in the task proc.

  For each l in 1,..,nLocations, different criteria can be applied to
  locate a cell. Currently implemented:
   * Location of the very last cell. This is most useful for 1D configurations.
     This is currently hardwired for l=1.
   * A point location given by coordinate triple (lumI(l),lumJ(l),lumK(l)).
     The cell located will be the one with the shortest distance from the
     point thus designated, in the sense of distance from cell center.
     (Distance for non-Cartesian curved coordinates is implemented naively.)
     This is currently hardwired for l1 <= l <= l2, see implementation
     in DriverMain.

  The locations will typically be used to dump some data from the cell there
  to a file, or perhaps perform further local diagnostic calculations.


   nLocations : Number of locations

   cellisLocal : For each cell location, indicates whether it is local to
                 the executing task.
                 For each cell location, the corresponding element of
                 cellIsLocal will be TRUE in at most one task.

   cellLocation : Returns the requested cell locations.
                  If doBroadcast is TRUE, the same location info will be
                  returned on all tasks; otherwise, the location info
                  is only complete for local cell locations.

   nBlocks :     Number of blocks in block list

   blockList :   A list of local blocks. Returned locations will usually
                 point to cells within the global union of such lists.

   doBroadcast : Whether to do an MPI broadcast at the end to ensure that
                 the same location is returned on all procs.