Thanks for the pointers John. I will look through the code again and check what should and should not be real. There is no ,logic in having the matrix dimension declared real - does seem rather odd coding.
The subroutine FOURN was actually in the Numerical recipes book by Press et al 1986, but don't have a copy to verify that they got the code the same from there.
I managed to get a Matlab code running through Octave to do the same task. However, I will continue to tinker with the Fortran code to see if I can get it functioning properly. Having the thing work ok with test data (synthetics) is all well and good, but the whole idea is to use it 'in the field' so to speak.
The code is certainly not well written; more comments are needed for others to follow the logic. Probably a good idea to have an implicit none in to make sure all variables are declared - good programming practice anyway.
Haven't been able to track down the authors yet as the e-mails don't work - always my first port of call.
Will keep you posted. Cheers Lester