axis_obj_Init Subroutine

private pure subroutine axis_obj_Init(this, lo, hi, ngc)

Initialize axis.

Type Bound

axis_obj

Arguments

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

A axis object

integer, intent(in) :: lo

Array lower bound

integer, intent(in) :: hi

Array higher bound

integer, intent(in) :: ngc

Number of ghost cells


Called by

proc~~axis_obj_init~~CalledByGraph proc~axis_obj_init axis_obj%axis_obj_Init proc~block_obj_partition block_obj%block_obj_Partition proc~block_obj_partition->proc~axis_obj_init proc~block_obj_updategridghostcells block_obj%block_obj_UpdateGridGhostCells proc~block_obj_partition->proc~block_obj_updategridghostcells proc~block_obj_setupuniformgrid block_obj%block_obj_SetupUniformGrid proc~block_obj_setupuniformgrid->proc~axis_obj_init proc~block_obj_setupuniformgrid->proc~block_obj_updategridghostcells proc~block_obj_updateextents block_obj%block_obj_UpdateExtents proc~block_obj_updateextents->proc~axis_obj_init proc~block_obj_init2 block_obj%block_obj_Init2 proc~block_obj_init2->proc~block_obj_setupuniformgrid proc~block_obj_updategridghostcells->proc~block_obj_updateextents proc~cdifs_obj_preparesolverblock cdifs_obj_PrepareSolverBlock proc~cdifs_obj_preparesolverblock->proc~block_obj_partition none~initialize~6 block_obj%Initialize proc~cdifs_obj_preparesolverblock->none~initialize~6 proc~collision_obj_setupcollisionblock collision_obj%collision_obj_SetupCollisionBlock proc~collision_obj_setupcollisionblock->proc~block_obj_setupuniformgrid proc~collision_obj_setupcollisionblock->none~initialize~6 proc~collision_obj_setupcollisionblock2 collision_obj%collision_obj_SetupCollisionBlock2 proc~collision_obj_setupcollisionblock2->proc~block_obj_setupuniformgrid proc~collision_obj_setupcollisionblock2->proc~block_obj_updategridghostcells proc~collision_obj_setupcollisionblock2->none~initialize~6 proc~grans_obj_preparesolverblock grans_obj_PrepareSolverBlock proc~grans_obj_preparesolverblock->proc~block_obj_partition proc~grans_obj_preparesolverblock->none~initialize~6 none~initialize~6->proc~block_obj_init2 proc~block_obj_read block_obj%block_obj_Read proc~block_obj_read->proc~block_obj_updategridghostcells 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

    pure subroutine axis_obj_Init(this,lo,hi,ngc)
      !> Initialize axis.
      class(axis_obj), intent(inout) :: this                                   !! A axis object
      integer,         intent(in)    :: lo                                     !! Array lower bound
      integer,         intent(in)    :: hi                                     !! Array higher bound
      integer,         intent(in)    :: ngc                                    !! Number of ghost cells

      this%lo  = lo
      this%hi  = hi
      this%ngc = ngc

      ! Allocate arrays
      if (associated(this%x  )) deallocate(this%x  )
      if (associated(this%xm )) deallocate(this%xm )
      if (associated(this%dxm)) deallocate(this%dxm)

      allocate(this%x  (lo-ngc:hi+1+ngc)); this%x   = 0.0_wp
      allocate(this%xm (lo-ngc:hi  +ngc)); this%xm  = 0.0_wp
      allocate(this%dxm(lo-ngc:hi  +ngc)); this%dxm = 0.0_wp

      return
    end subroutine axis_obj_Init