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 distribute_precip
      
      subroutine mp(domain,options,dt_in, model_time)
          implicit none
          type(domain_type),intent(inout)::domain
  
negative.code:         
      end subroutine mp
      
      !>----------------------------------------------------------
      !! Finalize microphysical routines
      !!
      !! This routine will call the finalization routines (if any) for the specified microphysics packages. 
      !! It also deallocates any module level variables, e.g. SR
      !! 
      !! @param   options     ICAR model options to specify required initializations
      !!
      !!----------------------------------------------------------
      subroutine mp_finish(options)
          implicit none
          type(options_type),intent(in)::options
          
          if (allocated(SR)) then
              deallocate(SR)
          endif
          if (allocated(last_snow)) then
              deallocate(last_snow)
          endif
          if (allocated(last_rain)) then
              deallocate(last_rain)
          endif
          if (allocated(this_precip)) then
              deallocate(this_precip)
          endif
      end subroutine mp_finish
  end module microphysics
  