While working more with the viper code, I discovered that the buoyancy terms
were not being computed correctly. Basically, the model assumes that the
air density within the wake cell is constant with altitude during the
descent in the absence of entrainment or detrainment of ambient fluid.
This assumption is incorrect since the air within the wake cell will
experience adiabatic compression as it encounters increased pressure on
its downward trajectory. The density within the wake cell must respond
to this effect in addition to exchanges with the ambient fluid. Since the
buoyancy term is related to the air density, errors in the density
evolution carry over to the buoyancy term in the momentum equation.
The following sketch illustrates the concept.