FLASH4.5 API

Generated from /asc/asci2/site/flashcode/secure/release_4p5/source/Grid/Grid_getMaxRefinement.F90 with ROBODoc v4.99.8 on Tue Mar 05 16:16:16 2019

TABLE OF CONTENTS


[Functions] source/Grid/Grid_getMaxRefinement

[top][index]

NAME

  Grid_getMaxRefinement

SYNOPSIS

  call Grid_getMaxRefinement(integer(OUT) :: maxRefinement,
                    OPTIONAL,integer(IN)  :: mode,
                    OPTIONAL,integer(IN)  :: scope,
                    OPTIONAL,integer(IN)  :: inputComm
                              )

DESCRIPTION

  This routine returns the maximum block refinement level in the grid.  
  Depending on the mode used (and modified by other optional arguments),
  the returned value represents the maximum refinement level that
  is either allowed, or is currently realized anywhere on the grid
  (or a subset of the grid).

  We may have an AMR grid in which one portion of the grid is highly
  refined.  Here, it may be useful to determine globally the highest block
  refinement level that occurs, or can potentially occur during the
  simulation.

ARGUMENTS

  maxRefinement - Max common refinement level of blocks in the 
                  inputComm communicator.
  inputComm - Input MPI communicator, only used if mode=4 and scope=2.
              Default - none.
  mode      - 1 for lrefine_max,
              2 for gr_maxRefine (if used) or lrefine_max,
              3 for gr_maxRefine,
              4 for existing blocks.
              Default is 3.
  scope     - scope only used if mode=4;
              1 for local to this MPI task,
              2 for tasks in inputComm,
             [3 for mesh communicator,]
             [4 for MPI_COMM_WORLD].
              Default is 3.

NOTES

  Communicator argument allows us to compare a subset of processes.
  It also makes it explicit to the user that this routine must be 
  called by all processes in the passed communicator ... otherwise
  deadlock. This applies only for modes that require communication.

  For a uniform grid implementation, the returned level will always
  be 1.

  This routine differs from Grid_getMaxCommonRefinement is several ways:
   1. Grid_getMaxCommonRefinement looks for existing LEAF blocks with the
      smallest refinement level (actual), while
      Grid_getMaxRefinement looks for blocks with the highest
      refinement level (either actual or potential).
   2. Grid_getMaxRefinement has additional optional arguments to select
      modes and task subsets.