An efficient, full-potential implicit method based on characteristics for supersonic flows