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: