block_obj_Init2 Subroutine

private impure subroutine block_obj_Init2(this, xlo, xhi, lo, hi, ngc, parallel)

[DEPRECATED] Initializes block object.

Type Bound

block_obj

Arguments

Type IntentOptional Attributes Name
class(block_obj), intent(inout) :: this

A block object

real(kind=wp), intent(in) :: xlo(3)

Coordinates of the bottom left corner

real(kind=wp), intent(in) :: xhi(3)

Coordinates of the top right corner

integer, intent(in) :: lo(3)

Array lower bound

integer, intent(in) :: hi(3)

Array upper bound

integer, intent(in) :: ngc

Number of ghostcells

type(parallel_obj), intent(in), target :: parallel

Parallel structure to link with


Calls

proc~~block_obj_init2~~CallsGraph proc~block_obj_init2 block_obj%block_obj_Init2 proc~block_obj_setupuniformgrid block_obj%block_obj_SetupUniformGrid proc~block_obj_init2->proc~block_obj_setupuniformgrid proc~axis_obj_init axis_obj%axis_obj_Init proc~block_obj_setupuniformgrid->proc~axis_obj_init proc~block_obj_setconveniencepointers block_obj%block_obj_SetConveniencePointers proc~block_obj_setupuniformgrid->proc~block_obj_setconveniencepointers proc~block_obj_setupmpitypes block_obj%block_obj_SetupMPITypes proc~block_obj_setupuniformgrid->proc~block_obj_setupmpitypes proc~block_obj_updategridghostcells block_obj%block_obj_UpdateGridGhostCells proc~block_obj_setupuniformgrid->proc~block_obj_updategridghostcells proc~block_obj_updatemidpoints block_obj%block_obj_UpdateMidPoints proc~block_obj_setupuniformgrid->proc~block_obj_updatemidpoints proc~block_obj_updatespacing block_obj%block_obj_UpdateSpacing proc~block_obj_setupuniformgrid->proc~block_obj_updatespacing mpi_type_commit mpi_type_commit proc~block_obj_setupmpitypes->mpi_type_commit mpi_type_free mpi_type_free proc~block_obj_setupmpitypes->mpi_type_free mpi_type_vector mpi_type_vector proc~block_obj_setupmpitypes->mpi_type_vector mpi_irecv mpi_irecv proc~block_obj_updategridghostcells->mpi_irecv mpi_isend mpi_isend proc~block_obj_updategridghostcells->mpi_isend mpi_wait mpi_wait proc~block_obj_updategridghostcells->mpi_wait mpi_waitall mpi_waitall proc~block_obj_updategridghostcells->mpi_waitall proc~block_obj_updateextents block_obj%block_obj_UpdateExtents proc~block_obj_updategridghostcells->proc~block_obj_updateextents proc~block_obj_updateextents->proc~axis_obj_init

Called by

proc~~block_obj_init2~~CalledByGraph proc~block_obj_init2 block_obj%block_obj_Init2 none~initialize~6 block_obj%Initialize none~initialize~6->proc~block_obj_init2 proc~cdifs_obj_preparesolverblock cdifs_obj_PrepareSolverBlock proc~cdifs_obj_preparesolverblock->none~initialize~6 proc~collision_obj_setupcollisionblock collision_obj%collision_obj_SetupCollisionBlock proc~collision_obj_setupcollisionblock->none~initialize~6 proc~collision_obj_setupcollisionblock2 collision_obj%collision_obj_SetupCollisionBlock2 proc~collision_obj_setupcollisionblock2->none~initialize~6 proc~grans_obj_preparesolverblock grans_obj_PrepareSolverBlock proc~grans_obj_preparesolverblock->none~initialize~6 proc~cdifs_obj_preparesolver cdifs_obj_PrepareSolver proc~cdifs_obj_preparesolver->proc~cdifs_obj_preparesolverblock proc~cdifs_obj_preparesolver->proc~collision_obj_setupcollisionblock proc~grans_obj_preparesolver grans_obj_PrepareSolver proc~grans_obj_preparesolver->proc~grans_obj_preparesolverblock proc~grans_obj_preparesolvercollision grans_obj_PrepareSolverCollision proc~grans_obj_preparesolver->proc~grans_obj_preparesolvercollision proc~grans_obj_preparesolvercollision->proc~collision_obj_setupcollisionblock interface~cdifs_obj_preparesolver cdifs_obj%cdifs_obj_PrepareSolver interface~cdifs_obj_preparesolver->proc~cdifs_obj_preparesolver interface~grans_obj_preparesolver grans_obj%grans_obj_PrepareSolver interface~grans_obj_preparesolver->proc~grans_obj_preparesolver

Source Code

    impure subroutine block_obj_Init2(this,xlo,xhi,lo,hi,ngc,parallel)
      !> [DEPRECATED] Initializes block object.
      implicit none
      class(block_obj),   intent(inout) :: this                                !! A block object
      real(wp),           intent(in)    :: xlo(3)                              !! Coordinates of the bottom left corner
      real(wp),           intent(in)    :: xhi(3)                              !! Coordinates of the top right corner
      integer,            intent(in)    :: lo(3)                               !! Array lower bound
      integer,            intent(in)    :: hi(3)                               !! Array upper bound
      integer,            intent(in)    :: ngc                                 !! Number of ghostcells
      type(parallel_obj), intent(in),    &
                              target    :: parallel                            !! Parallel structure to link with
      ! Work variables
      integer :: dir

      ! Point to the master objects
      this%parallel => parallel

      ! Setup ghostcells
      this%ngc = ngc

      ! Initialize MPI datatypes
      do dir=1,3
        this%gc_slab_r(dir) = MPI_DATATYPE_NULL
        this%gc_slab_i(dir) = MPI_DATATYPE_NULL
      end do

      ! Set up the grid
      call this%SetupUniformGrid(xlo,xhi,lo,hi)

      ! Switch flag
      this%is_initialized = .true.

      return
    end subroutine block_obj_Init2