A numerical model of shoaling surface gravity waves using the Boussinesq approximation