I am trying to compile a code with NVFORTRAN to use OpenACC to speed it up a bit.
This code uses fftw libraries. So, to compile it with nvfortran I am using cufft libraries.
It compiles for a good part of it, until I get to a point where the compiler gives me this error:
NVFORTRAN-S-0155-Could not resolve generic procedure cufftexecd2z
I cannot paste all the code, since it is quite big and spread into different subroutines and modules, but I’ll try to give you all the necessary.
The error happens at this line:
CHCK = CHCK + cufftExecD2Z(D2Z1,VARREAL(1,:,1),VARFOUR(1,:,1)) → 1d transform
Here, VARFOUR and VARREAL are LOCAL variables defined as:
REAL(8),INTENT(INOUT) :: VARREAL(3D0,128D0,128D0)
COMPLEX(8), INTENT(INOUT) :: VARFOUR(3D0,65D0,128D0).
The plan D2Z1 is a GLOBAL variable, defined in another subroutine as
INTEGER(8) :: D2Z1
CHCK = cufftPlan1d(D2Z1,128D0,CUFFT_D2Z,1) → 1d transform
and it gives no compilation errors.
The same happens in the 2d transform part, where:
CHCK = CHCK + cufftExecD2Z(D2Z1,VARREAL(1,:,:),VARFOUR(1,:,:)) → 2d transform
CHCK = cufftPlan2d(D2Z1,128D0,128D0,CUFFT_D2Z) → 2d transform
I hope I gave you enough to help me with this problem.