anchor.diff:            beta_xp(m) = 0.0_dp_t
   
             do n = 1, nprim
  -             beta_xm(m) = beta_xm(m) + lvec(m,n)*(Q%data(i,n) - Iminus(n))
  -             beta_xp(m) = beta_xp(m) + lvec(m,n)*(Q%data(i,n) - Iplus(n))
  +             beta_xm(m) = beta_xm(m) + lvec(m,n)*(Q%data(i,n) - Iminus(m,n))
  +             beta_xp(m) = beta_xp(m) + lvec(m,n)*(Q%data(i,n) - Iplus(m,n))
             enddo
          enddo
   
  
positive.code:     
      call destroy(xi_t)
  
      
  
      !-------------------------------------------------------------------------
      ! interpolate the cell-centered data to the edges
  
negative.code: 
            else if ( (Qplus%data(i,n) - Qminus%data(i,n)) * &
                      (Q%data(i,n) - &
                        0.5_dp_t*(Qminus%data(i,n) + Qplus%data(i,n))) > &
                     (Qplus%data(i,n) - Qminus%data(i,n))**2/6.0_dp_t ) then
  
            !else if (abs(Qminus%data(i,n) - Q%data(i,n)) >= &
            !     2.0*abs(Qplus%data(i,n) - Q%data(i,n))) then
               Qminus%data(i,n) = 3.0_dp_t*Q%data(i,n) - 2.0_dp_t*Qplus%data(i,n)
  
            else if (-(Qplus%data(i,n) - Qminus%data(i,n))**2/6.0_dp_t > &
  