anchor.diff:  
             Qminus%data(i+1,n) = Qplus%data(i,n)
   
  +          ! make sure that we didn't over or undersoot
  +          Qplus%data(i,n) = max(Qplus%data(i,n), min(Q%data(i,n),Q%data(i+1,n)))
  +          Qplus%data(i,n) = min(Qplus%data(i,n), max(Q%data(i,n),Q%data(i+1,n)))
  +
  +          Qminus%data(i+1,n) = max(Qminus%data(i+1,n), min(Q%data(i,n),Q%data(i+1,n)))
  +          Qminus%data(i+1,n) = min(Qminus%data(i+1,n), max(Q%data(i,n),Q%data(i+1,n)))
  +
          enddo
       enddo
   
  
positive.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
  
               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 > &
  
negative.code:                     (Q%data(i,n) - &
                             0.5_dp_t*(Qminus%data(i,n) + Qplus%data(i,n))) ) then
  
            !else if (abs(Qplus%data(i,n) - Q%data(i,n)) >= &
            !     2.0*abs(Qminus%data(i,n) - Q%data(i,n))) then
               Qplus%data(i,n) = 3.0_dp_t*Q%data(i,n) - 2.0_dp_t*Qminus%data(i,n)
  
            endif
  