SetUpCaseBlock Subroutine

subroutine SetUpCaseBlock()

Builds and writes block file.

Arguments

None

Calls

proc~~setupcaseblock~6~~CallsGraph proc~setupcaseblock~6 SetUpCaseBlock none~get parser_obj%Get proc~setupcaseblock~6->none~get none~initialize~10 block_obj%Initialize proc~setupcaseblock~6->none~initialize~10 proc~block_obj_partition block_obj%block_obj_Partition proc~setupcaseblock~6->proc~block_obj_partition proc~block_obj_setperiodicity block_obj%block_obj_SetPeriodicity proc~setupcaseblock~6->proc~block_obj_setperiodicity proc~block_obj_setupuniformgrid block_obj%block_obj_SetupUniformGrid proc~setupcaseblock~6->proc~block_obj_setupuniformgrid proc~parser_obj_read0d parser_obj%parser_obj_read0D none~get->proc~parser_obj_read0d proc~parser_obj_read1d parser_obj%parser_obj_read1D none~get->proc~parser_obj_read1d proc~block_obj_init block_obj%block_obj_Init none~initialize~10->proc~block_obj_init proc~block_obj_init2 block_obj%block_obj_Init2 none~initialize~10->proc~block_obj_init2 proc~axis_obj_final axis_obj%axis_obj_Final proc~block_obj_partition->proc~axis_obj_final proc~axis_obj_init axis_obj%axis_obj_Init proc~block_obj_partition->proc~axis_obj_init proc~block_obj_setconveniencepointers block_obj%block_obj_SetConveniencePointers proc~block_obj_partition->proc~block_obj_setconveniencepointers proc~block_obj_setupmpitypes block_obj%block_obj_SetupMPITypes proc~block_obj_partition->proc~block_obj_setupmpitypes proc~block_obj_subdivideblock block_obj%block_obj_SubDivideBlock proc~block_obj_partition->proc~block_obj_subdivideblock proc~block_obj_updategridghostcells block_obj%block_obj_UpdateGridGhostCells proc~block_obj_partition->proc~block_obj_updategridghostcells proc~block_obj_updatemidpoints block_obj%block_obj_UpdateMidPoints proc~block_obj_partition->proc~block_obj_updatemidpoints proc~block_obj_updatespacing block_obj%block_obj_UpdateSpacing proc~block_obj_partition->proc~block_obj_updatespacing proc~parallel_obj_topology parallel_obj%parallel_obj_Topology proc~block_obj_partition->proc~parallel_obj_topology proc~block_obj_setupuniformgrid->proc~axis_obj_init proc~block_obj_setupuniformgrid->proc~block_obj_setconveniencepointers proc~block_obj_setupuniformgrid->proc~block_obj_setupmpitypes proc~block_obj_setupuniformgrid->proc~block_obj_updategridghostcells proc~block_obj_setupuniformgrid->proc~block_obj_updatemidpoints proc~block_obj_setupuniformgrid->proc~block_obj_updatespacing proc~block_obj_init2->proc~block_obj_setupuniformgrid 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 mpi_cart_coords mpi_cart_coords proc~parallel_obj_topology->mpi_cart_coords mpi_cart_create mpi_cart_create proc~parallel_obj_topology->mpi_cart_create mpi_cart_rank mpi_cart_rank proc~parallel_obj_topology->mpi_cart_rank mpi_cart_shift mpi_cart_shift proc~parallel_obj_topology->mpi_cart_shift mpi_comm_rank mpi_comm_rank proc~parallel_obj_topology->mpi_comm_rank mpi_dims_create mpi_dims_create proc~parallel_obj_topology->mpi_dims_create none~assigndefault parser_obj%AssignDefault proc~parser_obj_read0d->none~assigndefault proc~parser_obj_fetchlabelid parser_obj%parser_obj_FetchLabelID proc~parser_obj_read0d->proc~parser_obj_fetchlabelid proc~parser_obj_read1d->none~assigndefault proc~parser_obj_read1d->proc~parser_obj_fetchlabelid proc~parser_obj_assigndefault0d parser_obj%parser_obj_AssignDefault0D none~assigndefault->proc~parser_obj_assigndefault0d proc~parser_obj_assigndefault1d parser_obj%parser_obj_AssignDefault1D none~assigndefault->proc~parser_obj_assigndefault1d proc~block_obj_updateextents->proc~axis_obj_init

Called by

proc~~setupcaseblock~6~~CalledByGraph proc~setupcaseblock~6 SetUpCaseBlock program~main~6 main program~main~6->proc~setupcaseblock~6

Source Code

    subroutine SetUpCaseBlock()
      !> Builds and writes block file.
      implicit none
      ! Work variables
      character(str64) :: filename
      real(wp)         :: L(3)
      integer          :: N(3)
      integer          :: ngc
      integer          :: Nb(3)
      real(wp)         :: xlo(3)
      real(wp)         :: xhi(3)
      integer          :: ilo(3)
      integer          :: ihi(3)

      ! Get info from parser
      call parser%Get("Block file",  filename)
      call parser%Get("Domain size", L       )
      call parser%Get("Grid points", N       )
      call parser%Get("Ghost cells", ngc     )
      call parser%Get("Partition",   Nb      )

      ! Domain extents
      xlo=-0.5_wp*L ; xhi= 0.5_wp*L
      ilo=[1,1,1] ; ihi=N

      ! Initialize the main block
      call block%Initialize(ngc,parallel)

      ! Setup the domain periodicity
      call block%SetPeriodicity([.true.,.true.,.true.])

      ! Create a uniform block
      call block%SetupUniformGrid(xlo,xhi,ilo,ihi)

      ! Partition block for parallel initializations
      call block%Partition(Nb)

      ! Write block to disk
      call block%Write(filename)

      return
    end subroutine SetUpCaseBlock