anchor.diff:      integer, dimension(npoints) :: y_list = [ 1,1,1, 0,0, -1,-1,-1]
   contains
       
  +    
  +    !>----------------------------------------------------------
  +    !! Initialize microphysical routines
  +    !!
  +    !! This routine will call the initialization routines for the specified microphysics packages. 
  +    !! It also initializes any module level variables, e.g. update_interval
  +    !! 
  +    !! @param   options     ICAR model options to specify required initializations
  +    !!
  +    !!----------------------------------------------------------
       subroutine mp_init(options)
           implicit none
           type(options_type), intent(in)::options
  
positive.code:         
      end subroutine mp
      
      subroutine mp_finish()
          implicit none
          if (allocated(SR)) then
              deallocate(SR)
          endif
      end subroutine mp_finish
  end module microphysics
  
negative.code:         last_model_time = -999
      end subroutine mp_init
      
      !>----------------------------------------------------------
      !! Distribute the microphysics precipitation to neighboring grid cells
      !!
      !! Because ICAR can be too aggressive at putting precip on mountain tops, this
      !! routine smooths out the precip by keeping only a fraction of it locally, and 
      !! distributing the rest to the neighboring grid cells, weighted by distance. 
      !! 
      !! @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
      !!
      !!----------------------------------------------------------
      subroutine distribute_precip(current_precip, last_precip, local_fraction)
          real, dimension(:,:), intent(inout) :: current_precip, last_precip
          real, intent(in) :: local_fraction
  