Proposal: moving fftpack under fortran-lang

@Beliavsky thanks for the list. I also wrote a modern Fortran version of fftpack here: hfsolver/fourier.f90 at master · certik/hfsolver · GitHub. One has to be careful with performance, for example allocating memory in the inner loop: modern_fftpack/complex_forward_1d.f90 at 6909d44988925dcae1ee478c06be31e5605d3974 · jlokimlin/modern_fftpack · GitHub might slow things down. For that reason, I think the best way forward is to “preserve” the original code as much as possible, for benchmarking and reference purposes, but do the following changes:

  • add modern Fortran interfaces
  • fpm, CI, … (mostly done)
  • possibly move from fixed form to free form; and move the global subroutines to modules
  • add single precision version
  • add benchmarks

But changes like rewriting the complex passes to use more modern Fortran as I have done here: hfsolver/fourier.f90 at b4c50c1979fb7e468b1852b144ba756f5a51788d · certik/hfsolver · GitHub should be done in a separate library.

Such ash fft.f. :slight_smile: / See Naming convention for Fortran wrappers packages /