base_util_fill_arr_I4B Subroutine

public subroutine base_util_fill_arr_I4B(keeps, inserts, lfill_list)

Performs a fill operation on a single array of type I4B This is the inverse of a spill operation

Arguments

TypeIntentOptionalAttributesName
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


Called by

proc~~base_util_fill_arr_i4b~~CalledByGraph proc~base_util_fill_arr_i4b base_util_fill_arr_I4B interface~util_fill util_fill interface~util_fill->proc~base_util_fill_arr_i4b

Contents


Source Code

      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