using snopt