Added user-specified boundaries, fixed step characteristic finite difference