Allocate blocks accordingly to grid dimensions.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(simulation_object), | intent(inout) | :: | self | Simulation data. |
subroutine allocate_blocks(self)
!< Allocate blocks accordingly to grid dimensions.
class(simulation_object), intent(inout) :: self !< Simulation data.
integer(I4P) :: b !< Counter.
if (self%grid_dimensions%blocks_number > 0) then
if (allocated(self%blocks)) then
call self%blocks%destroy
deallocate(self%blocks)
endif
allocate(self%blocks(1:self%grid_dimensions%blocks_number))
do b=1, self%grid_dimensions%blocks_number
call self%blocks(b)%initialize(signature=self%grid_dimensions%block_signature(b))
enddo
endif
endsubroutine allocate_blocks