append an entry to an allocatable array 1d with long integer If the array is too small, reallocate with double size
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=long_k), | intent(inout), | allocatable | :: | Array(:) |
array to append to |
|
integer(kind=long_k), | intent(in) | :: | ArrayToAppend(:) |
array to append |
subroutine tem_appendIntLongArrayTo1dArray(Array, ArrayToAppend ) ! --------------------------------------------------------------------------- !> array to append to integer(kind=long_k),intent(inout), allocatable :: Array(:) !> array to append integer(kind=long_k),intent(in) :: ArrayToAppend(:) ! --------------------------------------------------------------------------- integer(kind=long_k),allocatable :: tempArray(:) integer(kind=long_k) :: ArraySize,ArraySize2,ierr,NewSize ! --------------------------------------------------------------------------- ! Get size of array ArraySize = size(Array,1) ArraySize2 = size(ArrayToAppend,1) NewSize = ArraySize + ArraySize2 ! allocate temporary array with new size allocate(tempArray(NewSize),stat=ierr) ! Copy both arrays to temp array tempArray(1:ArraySize) = Array(1:ArraySize) tempArray(ArraySize+1:ArraySize+ArraySize2) = ArrayToAppend(1:ArraySize2) ! Deallocate Array deallocate(Array) ! Reallocate Array allocate(Array(NewSize),stat=ierr) Array(1:NewSize) = tempArray(1:NewSize) ! Deallocate temp array deallocate(tempArray) if(ierr .ne. 0) Write(*,*) 'Error in reallocating array' end subroutine tem_appendIntLongArrayTo1dArray