region_obj_Expand Subroutine

private pure subroutine region_obj_Expand(this)

Resizes array to accomodate a new element.

Type Bound

region_obj

Arguments

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

A boundary region object


Called by

proc~~region_obj_expand~~CalledByGraph proc~region_obj_expand region_obj%region_obj_Expand proc~region_obj_add region_obj%region_obj_Add proc~region_obj_add->proc~region_obj_expand proc~bc_set_setbc bc_set%bc_set_SetBC proc~bc_set_setbc->proc~region_obj_add proc~cdifs_obj_preparesolverbcs cdifs_obj_PrepareSolverBCS proc~cdifs_obj_preparesolverbcs->proc~bc_set_setbc proc~grans_obj_preparesolverbcs grans_obj_PrepareSolverBCS proc~grans_obj_preparesolverbcs->proc~bc_set_setbc proc~setupcasebcs SetUpCaseBCS proc~setupcasebcs->proc~bc_set_setbc proc~setupcasebcs~11 SetUpCaseBCS proc~setupcasebcs~11->proc~bc_set_setbc proc~setupcasebcs~13 SetUpCaseBCS proc~setupcasebcs~13->proc~bc_set_setbc proc~setupcasebcs~14 SetUpCaseBCS proc~setupcasebcs~14->proc~bc_set_setbc proc~setupcasebcs~2 SetUpCaseBCS proc~setupcasebcs~2->proc~bc_set_setbc proc~setupcasebcs~3 SetUpCaseBCS proc~setupcasebcs~3->proc~bc_set_setbc proc~setupcasebcs~4 SetUpCaseBCS proc~setupcasebcs~4->proc~bc_set_setbc proc~setupcasebcs~5 SetUpCaseBCS proc~setupcasebcs~5->proc~bc_set_setbc proc~setupcasebcs~9 SetUpCaseBCS proc~setupcasebcs~9->proc~bc_set_setbc proc~cdifs_obj_preparesolver cdifs_obj_PrepareSolver proc~cdifs_obj_preparesolver->proc~cdifs_obj_preparesolverbcs proc~grans_obj_preparesolver grans_obj_PrepareSolver proc~grans_obj_preparesolver->proc~grans_obj_preparesolverbcs program~main main program~main->proc~setupcasebcs program~main~11 main program~main~11->proc~setupcasebcs~11 program~main~13 main program~main~13->proc~setupcasebcs~13 program~main~14 main program~main~14->proc~setupcasebcs~14 program~main~2 main program~main~2->proc~setupcasebcs~2 program~main~3 main program~main~3->proc~setupcasebcs~3 program~main~4 main program~main~4->proc~setupcasebcs~4 program~main~5 main program~main~5->proc~setupcasebcs~5 program~main~9 main program~main~9->proc~setupcasebcs~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

    pure subroutine region_obj_Expand(this)
      !> Resizes array to accomodate a new element.
      class(region_obj), intent(inout) :: this                                 !! A boundary region object
      ! Work variables
      type(bc_obj), allocatable :: tmp_array(:)

      ! First resize arrays to accomodate a new element
      if (.not.allocated(this%BC)) then
        allocate(this%BC(1))
        this%count = 1
      else
        ! New size
        this%count = size(this%BC) + 1

        ! Allocate temporary array
        allocate(tmp_array(this%count))

        ! Store old values
        tmp_array(1:this%count-1) = this%BC(:)

        ! Move the allocation from the
        ! temporary array to the final one
        call move_alloc(tmp_array,this%BC)
      end if

      return
    end subroutine region_obj_Expand