!:ConstructEigenmodes:!
          ! Backward acoustic
          speed(iEdge,1) = uR(iEdge) - cR(iEdge)
          wave(iEdge,1,1) = one
          wave(iEdge,mu,1) = speed(iEdge,1)
          wave(iEdge,mv,1) = vR(iEdge)
          wave(iEdge,4,1) = hR(iEdge) - uR(iEdge)*cR(iEdge)
          ! Shear
          speed(iEdge,2) = uR(iEdge)
          wave(iEdge,1,2) = zero
          wave(iEdge,mu,2) = zero
          wave(iEdge,mv,2) = one
          wave(iEdge,4,2) = vR(iEdge)
          ! Entropy
          speed(iEdge,3) = uR(iEdge)
          wave(iEdge,1,3) = one
          wave(iEdge,mu,3) = uR(iEdge)
          wave(iEdge,mv,3) = vR(iEdge)
          wave(iEdge,4,3) = half*u2v2(iEdge)
          ! Forward acoustic
          speed(iEdge,4) = uR(iEdge) + cR(iEdge)
          wave(iEdge,1,4) = one
          wave(iEdge,mu,4) = speed(iEdge,4)
          wave(iEdge,mv,4) = vR(iEdge)
          wave(iEdge,4,4) = hR(iEdge) + uR(iEdge)*cR(iEdge)
          ! Tracer
          IF (mwaves==5) THEN
            speed(iEdge,5) = uR(iEdge)
            wave(iEdge,1:4,5) = zero
            wave(iEdge,5,5)   = one
          END IF