Performs a fill operation on a single array of type I4B This is the inverse of a spill operation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=I4B), | intent(inout), | dimension(:), allocatable | :: | keeps | Array of values to keep |
|
| integer(kind=I4B), | 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_I4B(keeps, inserts, lfill_list)
!! author: David A. Minton
!!
!! Performs a fill operation on a single array of type I4B
!! This is the inverse of a spill operation
implicit none
! Arguments
integer(I4B), dimension(:), allocatable, intent(inout) :: keeps
!! Array of values to keep
integer(I4B), 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
if (.not.allocated(keeps) .or. .not.allocated(inserts)) return
keeps(:) = unpack(keeps(:), .not.lfill_list(:), keeps(:))
keeps(:) = unpack(inserts(:), lfill_list(:), keeps(:))
return
end subroutine base_util_fill_arr_I4B