anchor.diff:      !! @param   [inout]current_precip   accumulated model precip at this time step
       !! @param   [in]last_precip         accumulated model precip prior to microphysics call
       !! @param   [in]local_fraction      fraction of precip to maintain in the local gridcell
  +    !! @param   [in]precip_delta        Flag to calculate this time steps precip as a delta from previous
       !!
       !!----------------------------------------------------------
  -    subroutine distribute_precip(current_precip, last_precip, local_fraction)
  +    subroutine distribute_precip(current_precip, last_precip, local_fraction, precip_delta)
           real, dimension(:,:), intent(inout) :: current_precip, last_precip
           real, intent(in) :: local_fraction
  +        logical, intent(in) :: precip_delta
           ! relies on module variable this_precip as a temporary array
           
           integer :: i,j, nx,ny
  
positive.code:         if (options%physics%microphysics==kMP_THOMPSON) then
              write(*,*) "    Thompson Microphysics"
              call thompson_init(options%mp_options)
          elseif (options%physics%microphysics==kMP_MORRISON) then 
              call MORR_TWO_MOMENT_INIT(hail_opt=0)
          endif
  
          update_interval = options%mp_options%update_interval
  
negative.code:     real*8 :: last_model_time
      ! temporary variables
      real,allocatable,dimension(:,:) :: SR, last_rain, last_snow, this_precip,refl_10cm
      
      
      ! microphysics specific flag.  If it returns the current hourly precip (e.g. Morrison), then set this to false. 
      ! for use in "distributing" precipitation. 
      logical :: precip_delta
      
      ! amounts of precipitation to "distribute" to surrounding grid cells
      integer, parameter :: npoints=8
      real,    dimension(npoints) :: dist_fraction = [ 0.1,0.15,0.1, 0.15,0.15, 0.1,0.15,0.1]
      integer, dimension(npoints) :: x_list = [ -1,0,1, -1,1, -1,0,1]
  