pure module subroutine append_int32(array_, element_)
append element to an array (intger version)
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
integer(kind=int32),
|
intent(inout), |
|
allocatable
|
:: |
array_(:) |
|
integer(kind=int32),
|
intent(in) |
|
|
:: |
element_ |
|
Variables
Type |
Visibility | Attributes |
|
Name |
| Initial | |
integer(kind=int32),
|
private, |
allocatable
|
:: |
tmp_array_(:) |
|
|
|
Source Code
pure module subroutine append_int32(array_, element_)
!! append element to an array (intger version)
integer(int32), allocatable, intent(inout) :: array_(:)
integer(int32), intent(in) :: element_
!---------------------------------------------------------------------!
integer(int32), allocatable :: tmp_array_(:)
!---------------------------------------------------------------------!
if (allocated(array_)) then
allocate(tmp_array_(size(array_)+1))
tmp_array_(:size(array_)) = array_(:)
tmp_array_(size(array_)+1) = element_
deallocate(array_)
allocate(array_(size(tmp_array_)))
call move_alloc(tmp_array_, array_)
else
allocate(array_(1))
array_(1) = element_
endif
end subroutine append_int32