Unless the forward and reverse algorithms are corrupted in the same way. You should do an independent verification using another set of tools. Most languages have an FFT library of some kind, you could even write a quick C wrapper for fftw3, I've used it before and it's pretty straight forward. You could probably even use GDL or Octave (free "approximations" of IDL and Matlab respectively), or python, etc.
The only reason I'm harping on this so much is because I'm about 99% sure that your solution for the compilation problem will break the code. Not programatically, but mathematically. It seems to me that the original developer was probably a C programmer who was branching out into Fortran, and wrote those function calls like he would have in C, which means passing the memory location of the index in the array at which you want to start, and letting the function increment from there. Fortran doesn't work that way, at least not naturally. He probably kluged together some syntax that let his specific compiler behave as he wanted, but it was not ANSI, and of course breaks as soon as the compiler changes. The focus here isn't to get your compiler to build the code without complaint, it's to get your compiler to build the code in the way that the original developer intended, and simply removing the index offset in the function calls is almost certainly not the right answer.
Last edited by suicidaleggroll; 12-11-2014 at 08:22 PM.
|