FLASH3.3 Release API

ROBODoc 4.99 manual

Generated from /asc/home/flashdocs/FLASH3_33/source/Grid/Grid_putFluxData.F90 with ROBODoc v4.99.8 on Wed Oct 20 17:16:48 2010

TABLE OF CONTENTS


[Functions] source/Grid/Grid_putFluxData

[top][index]

NAME

  Grid_putFluxData

SYNOPSIS

  Grid_putFluxData(integer(IN) :: blockID, 
                   integer(IN) :: axis,
                   real(IN)    :: fluxes(NFLUXES,dataSize(1),dataSize(2),dataSize(3)),
                   integer(IN) :: dataSize(3),
          OPTIONAL,integer(IN) :: pressureSlot,
          OPTIONAL,real(IN)    :: areaLeft(:,:,:))

DESCRIPTION

  Put the fluxes in a direction specified by axis for boundary cells
  for block blockID. This routine needs to be used with adaptive mesh
  since fluxes calculated by the two blocks that are at fine/coarse boundary have 
  different accuracy. The fluxes calculated by individual blocks are reported to 
  the Grid through this call. Once that is done, a call to Grid_conserveFluxes 
  applies the flux conservation algorithm to make it consistent across the fine/coarse 
  boundaries.

ARGUMENTS

  blockID : The local blockid


  axis : integer value specifying on which cell faces to put fluxes. 
         The options are IAXIS, JAXIS, or KAXIS defined in constants.h


  fluxes :  real array with space for fluxes, through one axis, 
            for all cells of a block and for all flux variables.
            fluxes(VAR, i, j, k) is VAR's flux through 
            the left cell face for cell i, j, k.


  dataSize : integer array specifying the dimensions for the array, fluxes

             dataSize (1) holds the number of cells provided in the i direction

             dataSize (2) holds the number of cells provided in the j direction
                          if 1 d problem, set datasize(2) = 1

             dataSize (3) holds the number of cells provided in the k direction
                          if 1 or 2 d problem, set datasize(3) = 1

             fluxes should contain space for fluxes of all cells in the block, 
             including guardcells, and the  fluxes must be correct for 
             the interior cells of the block, as this interface does not know which 
             cell fluxes the Grid will need to store.

  pressureSlot : If present and greater than zero, this indicates one flux variable
                 in the fluxes array that may need special handling because it
                 really scales like a flux; normally this would be pressure,
                 but it could be another flux variable that the caller keeps in
                 flux density form.

  areaLeft :     areas of left and right faces, only used if special scaling is
                 requested with the pressureSlot argument.

NOTES

   Specific implementations may ignore the optional dummy arguments,
   pressureSlot and areaLeft, if the corresponding Grid_conserveFluxes
   only implements handling of fluxes as flux densities (i.e., if
   Grid_conserveFluxes assumes that the fluxes stored by Grid_putFluxData
   and retrieved by Grid_getFluxData contain flux densities).

   For the Unform Grid, no implementation is provided, since there is never
   a need for flux correction.

   Any code calling this subroutine needs to know the explicit interface,
   since this interface contains optional dummy arguments and assumed-shape
   dummy arrays. Calling FORTRAN units should therefore contain a line like
       use Grid_interface, ONLY: Grid_putFluxData

SEE ALSO

   Grid_getFluxData
   Grid_conserveFluxes
   hy_sweep