The acoustic models used most often for range dependent environments are the parabolic equation and eigen-rays. The most used implementations of these are RAM and Bellhop, which can be found on the oalib webpage. Both are Fortran programs, although the input/output uses text files that can be parsed in any programming language.
The choice between PE and eigen-rays depends on a few considerations, but the simplest distinction is eigen-rays are best at high frequencies. I could be wrong, but bottom interaction results from eigen-rays make me nervous. The Bellhop readme has a discussion of some of the considerations when choosing a model.
Lastly, acoustic modelling will always require environmental simplifications, and this is also a major consideration when interpreting the results of the model. It is rare in my experience to see a full 3D acoustic model presented in a conference, because the modelling is difficult and the results are hard to interpret. When starting out, it is often best to focus on one aspect of the experimental environment and see how it effects the result in simple 2D propagation scenarios.