anchor.diff:      real (kind=dp_t) :: beta_xm(nprim), beta_xp(nprim)
       real (kind=dp_t) :: sum_xm, sum_xp
       real (kind=dp_t) :: sum
  +
  +    real (kind=dp_t) :: dp, dp2, z
  +    type(gridvar_t) :: xi_t, xi
  +    real (kind=dp_t), parameter :: z0 = 0.75_dp_t
  +    real (kind=dp_t), parameter :: z1 = 0.85_dp_t
  +    real (kind=dp_t), parameter :: delta = 0.33_dp_t
  +    real (kind=dp_t), parameter :: smallp = 1.e-10_dp_t
  +    
   
       real (kind=dp_t) :: dtdx
   
  
positive.code:     ! V_l,i+1 are computed using the information in zone i,j.
      !
  
      do i = U%grid%lo-2, U%grid%hi+2
  
         r  = Q%data(i,iqdens)
         ux = Q%data(i,iqxvel)
  
negative.code:     ! compute the flattening coefficients
      !-------------------------------------------------------------------------
  
      ! flattening kicks in behind strong shocks.  See Saltzman (1994) page 159
      ! for this implementation.
      call build(xi_t, U%grid, 1)
  
      do i = U%grid%lo-2, U%grid%hi+2
         
         dp  = abs(Q%data(i+1,iqpres) - Q%data(i-1,iqpres))
         dp2 = abs(Q%data(i+2,iqpres) - Q%data(i-2,iqpres))
         z = dp/max(dp2,smallp)
  
         if ( (Q%data(i-1,iqxvel) - Q%data(i+1,iqxvel) > 0.0_dp_t) .and. &
              (dp/min(Q%data(i+1,iqpres),Q%data(i-1,iqpres)) > delta) ) then
            xi_t%data(i,1) = min(1.0_dp_t, &
                               max(0.0_dp_t, 1.0_dp_t - (z - z0)/(z1 - z0)))
         else
            xi_t%data(i,1) = 1.0_dp_t
         endif
  
      enddo
  
      call build(xi, U%grid, 1)
  
      do i = U%grid%lo-1, U%grid%hi+1
  
         if (Q%data(i+1,iqpres) - Q%data(i-1,iqpres) > 0.0_dp_t) then
            xi%data(i,1) = min(xi_t%data(i,1), xi_t%data(i-1,1))
  
         else if (Q%data(i+1,iqpres) - Q%data(i-1,iqpres) < 0.0_dp_t) then
            xi%data(i,1) = min(xi_t%data(i,1), xi_t%data(i+1,1))
  
         else
            xi%data(i,1) = xi_t%data(i,1)
         endif
  
      enddo
      
      
      call destroy(xi_t)
  
      
  
      !-------------------------------------------------------------------------
      ! compute the monotonized central differences
      !-------------------------------------------------------------------------
  
      ! 4th order MC limiting.  See Colella (1985) Eq. 2.5 and 2.6,
      ! Colella (1990) page 191 (with the delta a terms all equal) or
      ! Saltzman 1994, page 156
      
      call build(temp, U%grid, 1)
  