block_obj_Init Subroutine

private impure subroutine block_obj_Init(this, ngc, parallel)

Initializes block object.

Type Bound

block_obj

Arguments

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

A block object

integer, intent(in) :: ngc

Number of ghostcells

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

Parallel structure to link with


Called by

proc~~block_obj_init~~CalledByGraph proc~block_obj_init block_obj%block_obj_Init none~initialize~10 block_obj%Initialize none~initialize~10->proc~block_obj_init proc~cdifs_obj_preparesolverblock cdifs_obj_PrepareSolverBlock proc~cdifs_obj_preparesolverblock->none~initialize~10 proc~collision_obj_setupcollisionblock collision_obj%collision_obj_SetupCollisionBlock proc~collision_obj_setupcollisionblock->none~initialize~10 proc~collision_obj_setupcollisionblock2 collision_obj%collision_obj_SetupCollisionBlock2 proc~collision_obj_setupcollisionblock2->none~initialize~10 proc~grans_obj_preparesolverblock grans_obj_PrepareSolverBlock proc~grans_obj_preparesolverblock->none~initialize~10 proc~setupcaseblock SetUpCaseBlock proc~setupcaseblock->none~initialize~10 proc~setupcaseblock~10 SetUpCaseBlock proc~setupcaseblock~10->none~initialize~10 proc~setupcaseblock~11 SetUpCaseBlock proc~setupcaseblock~11->none~initialize~10 proc~setupcaseblock~12 SetUpCaseBlock proc~setupcaseblock~12->none~initialize~10 proc~setupcaseblock~13 SetUpCaseBlock proc~setupcaseblock~13->none~initialize~10 proc~setupcaseblock~14 SetUpCaseBlock proc~setupcaseblock~14->none~initialize~10 proc~setupcaseblock~2 SetUpCaseBlock proc~setupcaseblock~2->none~initialize~10 proc~setupcaseblock~3 SetUpCaseBlock proc~setupcaseblock~3->none~initialize~10 proc~setupcaseblock~4 SetUpCaseBlock proc~setupcaseblock~4->none~initialize~10 proc~setupcaseblock~5 SetUpCaseBlock proc~setupcaseblock~5->none~initialize~10 proc~setupcaseblock~6 SetUpCaseBlock proc~setupcaseblock~6->none~initialize~10 proc~setupcaseblock~7 SetUpCaseBlock proc~setupcaseblock~7->none~initialize~10 proc~setupcaseblock~8 SetUpCaseBlock proc~setupcaseblock~8->none~initialize~10 proc~setupcaseblock~9 SetUpCaseBlock proc~setupcaseblock~9->none~initialize~10 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 program~main main program~main->proc~setupcaseblock program~main~10 main program~main~10->proc~setupcaseblock~10 program~main~11 main program~main~11->proc~setupcaseblock~11 program~main~12 main program~main~12->proc~setupcaseblock~12 program~main~13 main program~main~13->proc~setupcaseblock~13 program~main~14 main program~main~14->proc~setupcaseblock~14 program~main~2 main program~main~2->proc~setupcaseblock~2 program~main~3 main program~main~3->proc~setupcaseblock~3 program~main~4 main program~main~4->proc~setupcaseblock~4 program~main~5 main program~main~5->proc~setupcaseblock~5 program~main~6 main program~main~6->proc~setupcaseblock~6 program~main~7 main program~main~7->proc~setupcaseblock~7 program~main~8 main program~main~8->proc~setupcaseblock~8 program~main~9 main program~main~9->proc~setupcaseblock~9 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_Init(this,ngc,parallel)
      !> Initializes block object.
      class(block_obj),   intent(inout) :: this                                !! A block object
      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

      ! Store number of 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

      ! Switch flag
      this%is_initialized = .true.

      return
    end subroutine block_obj_Init