base_util_fill_arr_DPvec Subroutine

public subroutine base_util_fill_arr_DPvec(keeps, inserts, lfill_list)

Performs a fill operation on a single array of DP vectors with shape (NDIM, n) This is the inverse of a spill operation

Arguments

TypeIntentOptionalAttributesName
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


Called by

proc~~base_util_fill_arr_dpvec~~CalledByGraph proc~base_util_fill_arr_dpvec base_util_fill_arr_DPvec interface~util_fill util_fill interface~util_fill->proc~base_util_fill_arr_dpvec

Contents


Source Code

      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