我找到了一种在https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/720340的ABAQUS子程序中调用MKL库的方法。我按照下面的方法添加了
compile_fortran=[...'/Qmkl:sequential'...]它可以和普通的MKL库很好地协同工作,比如degsv等等。但是当我想调用MKL-FFTW3库时,ABAQUS会显示错误,我会检查日志文件,错误如下
Intel(R) Visual Fortran Intel(R) 64 Compiler for applications running on
Intel(R) 64, Version 19.0.1.144 Build 20181018
Copyright (C) 1985-2018 Intel Corporation. All rights reserved.
End Compiling Abaqus/Standard User Subroutines
Begin Linking Abaqus/Standard User Subroutines
building library object standardU.lib and object standardU.exp
fft_elastic_subroutine.obj : error LNK2019: unresolved external symbol dfftw_plan_dft_3d,referenced in function fft3.R
fft_elastic_subroutine.obj : error LNK2019: unresolved external symbol dfftw_execute_dft,referenced in function fft3.R
fft_elastic_subroutine.obj : error LNK2019: unresolved external symbol dfftw_destroy_plan,referenced in function fft3.R
standardU.dll : fatal error LNK1120: 3 unresolved external symbols
Abaqus Error: Problem during linking - Abaqus/Standard User Subroutines.
This error may be due to a mismatch in the Abaqus user subroutine arguments.
These arguments sometimes change from release to release, so user subroutines used with a previous release of Abaqus
may need to be adjusted.我使用了Visual Studio 2017、英特尔Visual Fortran 2019、ABAQUS 2019。
谢谢你的帮助。
发布于 2019-11-09 10:52:36
所有这些FFTW3接口都集成到英特尔MKL中。它们在英特尔®64架构的mkl_intel_ilp64.lib、mkl_intel_ilp64_dll.lib mkl_intel_lp64.lib、mkl_intel_lp64_dll.lib和mkl_rt.lib中定义。
您可以尝试按照MKL Linker Adviser提示手动链接MKL。
https://stackoverflow.com/questions/58704056
复制相似问题