Here is a time-domain finite-difference example in RSF.
The program allows arbitrary locations of the sources and receivers.
The following pictures are examples using the Marmousi model.
The sources are located on a horizontal line close to the bottom of the model.
The receivers are arranged as in a deviated well.
Velocity:

Wavefield snapshot:

Recorded data: