1 Reply Latest reply on Feb 24, 2011 12:10 PM by chipf

    Error using CFFT1D


      Hello all.

      I have a Fortran code which my lab recived from another lab. It uses ACML for its Fourier transform calculations. When the CFF1TD function is called using


      call cfft1d(-2,n0/scat_step,wsc,comm,stat)


      an error is recived

       ** ACML error: on entry to CFFT1D parameter number  1 had an illegal value


      I have not found any reference for such an error on the web so i am posting this reauest for help here.


      The code was compiled using

      FLAGS = -march=native -m64 -O2 -funroll-all-loops -lacml -lgoto2 -lpthread -lfftw3 -fPIC

      gfortran -L/usr/local/lib ${FLAGS}   -ffree-form -o mdp4 mdp4.f


      /usr/local/lib/ is where the acml lib files are installed.



      Hope someone here can help.

        • Error using CFFT1D

          -2 is supposed to be a valid input value for the routine. 

          What jumps out is that your link line is also including a goto library and fftw3.  This could possibly cause name collisions, but I guess if the link is completing without errors then this is not a problem.  The order you include these libraries should use ACML functions before the others.

          The other item I notice is -lacml will try to do a shared object link, but you are mentioning where acml.lib resides.  The flags you have will use libacml.so.

          Use the ldd command on your executable and make sure you know which ACML library you actually getting when you run the program.  You may need to set LD_LIBRARY_PATH to point at the correct ACML directory.  If necessary, you could download and install ACML in ~.  The install simply creates a directory and untars files into it.  It doesn't change any system variables or files, so it can be done without needing administrator priveleges.