anchor.diff:                      (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
  
positive.code:           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))
            enddo
         enddo
  
  
negative.code: 
            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
  
  