0
我正在使用VS社區2013和並行工作室2015版本。現在我想使用代碼示例來檢查MKL包。我已經設置了項目<fortran<lib mkl
平行,但它仍然顯示了錯誤:無法將VS Fortran鏈接到MKL並將MKL庫設置爲'並行'
can not open include file "fftw_f77".
的程序如下。
PROGRAM COMPLEX_1D_DOUBLE_EX2
INCLUDE 'fftw_f77.i'
INCLUDE 'mkl_fftw_examples.fi'
INTEGER N,I
PARAMETER (N=10)
INTEGER*8 MY_PLAN
COMPLEX*16 IN(N),OUT(N),EXP_X(N)
REAL*8 ERR,SCALE
!
! Initialize IN and copy to expected EXP_X
!
PRINT *, 'Initialize data array'
CALL INIT_COMPLEX_VECTOR_Z(IN,N)
DO I=1,N
EXP_X(I)=IN(I)
END DO
!
! Create FFTW plan for 1D forward transform
!
PRINT *, 'Create FFTW plan for 1D forward transform'
CALL FFTW_F77_CREATE_PLAN(MY_PLAN,N,FFTW_FORWARD,FFTW_ESTIMATE)
!
! Compute Forward
!
PRINT *, 'Compute Forward'
CALL FFTW_F77_ONE(MY_PLAN,IN,OUT)
do I=1,N
print *, 'Forward: OUT(', I, ') = ', OUT(I)
end do
!
! Destroy FFTW plan
!
PRINT *, 'Destroy FFTW plan'
CALL FFTW_F77_DESTROY_PLAN(MY_PLAN)
!
! Create FFTW plan for 1D backward transform
!
PRINT *, 'Create FFTW plan for 1D backward transform'
CALL FFTW_F77_CREATE_PLAN(MY_PLAN,N,FFTW_BACKWARD,FFTW_ESTIMATE)
!
! Compute Backward
!
PRINT *, 'Compute Backward'
CALL FFTW_F77_ONE(MY_PLAN,OUT,IN)
do I=1,N
print *, 'Backward: IN(', I, ') = ', IN(I)
end do
!
! Destroy FFTW plan
!
PRINT *, 'Destroy FFTW plan'
CALL FFTW_F77_DESTROY_PLAN(MY_PLAN)
!
! Scale result. FFTW can't do this itself.
!
PRINT *, 'Scale result by 1/N'
SCALE=1.0D0/N
DO I=1,N
IN(I)=SCALE*IN(I)
END DO
!
! Check results
!
PRINT *, 'Check results'
CALL CHECK_RESULT_Z(IN,EXP_X,N,ERR)
PRINT *, 'Accuracy=',ERR
IF (ERR .GT. MAX_DOUBLE_ERR) THEN
PRINT *, 'TEST FAILED'
STOP 1
END IF
PRINT *, 'TEST PASSED'
PRINT *, 'END OF TEST'
END PROGRAM
該代碼應該是正確的,因爲它是從官方網站作爲例子。錯誤來自環境設置或路徑設置,但我不知道如何設置它。我嘗試了以下步驟:
- 轉到項目>屬性>配置屬性>英特爾性能庫。
- 根據需要選擇「並行」,「順序」或「羣集」來更改使用MKL屬性設置。
但它不起作用。
更換線
現在它顯示錯誤:錯誤#5102:無法打開包含文件 'mkl_fftw_examples.fi' – gugabrielle
請不要張貼代碼只有答案。他們對未來的遊客無用。 – Sumurai8