bc_set_Expand Subroutine

private pure subroutine bc_set_Expand(this)

Resizes array to accomodate a new element.

Type Bound

bc_set

Arguments

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

Boundary conditions utility


Called by

proc~~bc_set_expand~~CalledByGraph proc~bc_set_expand bc_set%bc_set_Expand proc~bc_set_add bc_set%bc_set_Add proc~bc_set_add->proc~bc_set_expand proc~bc_set_read bc_set%bc_set_Read proc~bc_set_read->proc~bc_set_add proc~setupcasebcs SetUpCaseBCS proc~setupcasebcs->proc~bc_set_add proc~setupcasebcs~11 SetUpCaseBCS proc~setupcasebcs~11->proc~bc_set_add proc~setupcasebcs~13 SetUpCaseBCS proc~setupcasebcs~13->proc~bc_set_add proc~setupcasebcs~14 SetUpCaseBCS proc~setupcasebcs~14->proc~bc_set_add proc~setupcasebcs~2 SetUpCaseBCS proc~setupcasebcs~2->proc~bc_set_add proc~setupcasebcs~3 SetUpCaseBCS proc~setupcasebcs~3->proc~bc_set_add proc~setupcasebcs~4 SetUpCaseBCS proc~setupcasebcs~4->proc~bc_set_add proc~setupcasebcs~5 SetUpCaseBCS proc~setupcasebcs~5->proc~bc_set_add proc~setupcasebcs~9 SetUpCaseBCS proc~setupcasebcs~9->proc~bc_set_add 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

Source Code

    pure subroutine bc_set_Expand(this)
      !> Resizes array to accomodate a new element.
      class(bc_set), intent(inout) :: this                                     !! Boundary conditions utility
      ! Work bariables
      type(region_obj), allocatable :: tmp_array(:)

      if (.not.allocated(this%region)) then
        allocate(this%region(1))
        this%count = 1
      else
        ! New size
        this%count = size(this%region)+1

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

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

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

      return
    end subroutine bc_set_Expand