Performs a fill operation on a single array of DP vectors with shape (NDIM, n) This is the inverse of a spill operation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=DP), | intent(inout), | dimension(:,:), allocatable | :: | keeps | Array of values to keep |
|
| real(kind=DP), | intent(in), | dimension(:,:), allocatable | :: | inserts | Array of values to insert into keep |
|
| logical, | intent(in), | dimension(:) | :: | lfill_list | Logical array of bodies to merge into the keeps |
subroutine base_util_fill_arr_DPvec(keeps, inserts, lfill_list)
!! author: David A. Minton
!!
!! Performs a fill operation on a single array of DP vectors with shape (NDIM, n)
!! This is the inverse of a spill operation
implicit none
! Arguments
real(DP), dimension(:,:), allocatable, intent(inout) :: keeps
!! Array of values to keep
real(DP), dimension(:,:), allocatable, intent(in) :: inserts
!! Array of values to insert into keep
logical, dimension(:), intent(in) :: lfill_list
!! Logical array of bodies to merge into the keeps
! Internals
integer(I4B) :: i
if (.not.allocated(keeps) .or. .not.allocated(inserts)) return
do i = 1, NDIM
keeps(i,:) = unpack(keeps(i,:), .not.lfill_list(:), keeps(i,:))
keeps(i,:) = unpack(inserts(i,:), lfill_list(:), keeps(i,:))
end do
return
end subroutine base_util_fill_arr_DPvec