anchor.diff:      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]
  
positive.code:         nx=size(current_precip,1)
          ny=size(current_precip,2)
          
          do j=2,ny-1
              do i=2,nx-1
                  this_precip(i,j) = current_precip(i,j)-last_precip(i,j)
                  current_precip(i,j) = last_precip(i,j)
              end do
          end do
          do j=2,ny-1
              do i=2,nx-1
                  current_precip(i,j) = current_precip(i,j)+this_precip(i,j)*local_fraction
  
negative.code:         if (options%physics%microphysics==kMP_THOMPSON) then
              write(*,*) "    Thompson Microphysics"
              call thompson_init(options%mp_options)
              precip_delta=.True.
          elseif (options%physics%microphysics==kMP_SB04) then 
              write(*,*) "    Simple Microphysics"
              precip_delta=.True.
          elseif (options%physics%microphysics==kMP_MORRISON) then 
              write(*,*) "    Morrison Microphysics"
              call MORR_TWO_MOMENT_INIT(hail_opt=0)
              precip_delta=.False.
          endif
  
          update_interval = options%mp_options%update_interval
  