pure module subroutine append_sp(array_, element_)
append element to an array (single precision version)
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
real(kind=sp),
|
intent(inout), |
|
allocatable
|
:: |
array_(:) |
|
real(kind=sp),
|
intent(in) |
|
|
:: |
element_ |
|
Variables
Type |
Visibility | Attributes |
|
Name |
| Initial | |
real(kind=sp),
|
private, |
allocatable
|
:: |
tmp_array_(:) |
|
|
|
Source Code
pure module subroutine append_sp(array_, element_)
!! append element to an array (single precision version)
real(sp), allocatable, intent(inout) :: array_(:)
real(sp), intent(in) :: element_
!---------------------------------------------------------------------!
real(sp), 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_sp