anchor.diff:     fftw_plan_type = FFTW_ESTIMATE
      if (present(plan_type)) fftw_plan_type = int(plan_type, kind=C_INT)
   
  -   call sfftw_plan_dft_c2r_1d(plan, &
  -                              int(nr, kind=C_INT), &
  +   plan = fftwf_plan_dft_c2r_1d(int(nr, kind=C_INT), &
                                 complex_fft, &
                                 real_array, &
                                 fftw_plan_type)
  -   call sfftw_execute_dft_c2r(plan, complex_fft, real_array)
  -   call sfftw_destroy_plan(plan)
  +   call fftwf_execute_dft_c2r(plan, complex_fft, real_array)
  +   call fftwf_destroy_plan(plan)
   
      ! Normalise values
      real_array = real_array/real(nr, kind=r4)
  
positive.code:    fftw_plan_type = FFTW_ESTIMATE
     if (present(plan_type)) fftw_plan_type = int(plan_type, kind=C_INT)
  
     call dfftw_plan_dft_r2c_1d(plan, &
                                int(nr, kind=C_INT), &
                                real(real_array, kind=r8), &
                                complex_fft, &
                                fftw_plan_type)
     call dfftw_execute_dft_r2c(plan, real_array, complex_fft)
     call dfftw_destroy_plan(plan)
  
  end subroutine FFFTW_fwd_r2c_1d_real8
  !-------------------------------------------------------------------------------
  
negative.code: subroutine FFFTW_fwd_c2c_1d_complex4(complex_array, complex_fft, plan_type)
  !===============================================================================
     implicit none
     complex(c4), intent(inout), dimension(:) :: complex_array
     complex(c4), intent(inout), allocatable, dimension(:) :: complex_fft
     integer(C_INT), intent(in), optional :: plan_type
     integer(C_INT) :: fftw_plan_type
  