ABAQUS 子程序关联编译器问题【已解决】
暴风源
编辑于 2026年04月27日 21:08

网上大部分教程都在扯淡,只有官方的手册不会犯错。如果你遇到了ifort,编译器找不到等问题,别着急重装,先看看这篇帖子,尤其是问题3。

配置组合 Abaqus2024 + oneAPI + vs2022,但是我从原理上推测,链接成功与否和三个软件的版本没有关系,随便组合都能用。

假定已经安装好了ABAQUS,visual studio,oneAPI,且基本功能测试正常(abaqus求解器能算,visual studio能正常编译Fortran项目。如果不会安装,那就随便找个安装教程看着安装吧。这些软件安装都有交互程序,都是傻瓜式安装。

事先声明,此帖子仅为个人看法,仅针对个人配置组合进行过测试,有啥纰漏欢迎评论区交流。里面出现的地址是我的安装地址,针对不同用户,按照你自己的安装情况修改。

安装好了,我们进入主题。


问题1:visual studio的环境调用是否必要?

从原理上看,visual studio无论版本,它仅仅是一个编辑器,不关编译的事;编译功能是oneAPI来的(以前是Parallel studio),这意味着ABAQUS仅仅需要调用一个编译器,不用管visual studio环境。但是吧,visual studio还是要装,方便oneAPI的安装和调试。

所以,有些教程中存在对vs环境的调用,体现在bat代码:@call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64。这段代码会在abaqus执行时反映出以下字样:

这在我看来是没有必要的。只调用编译器:@call "C:\Intel\oneAPI\compiler\2025.0\env\vars.bat" intel64 vs2022,什么字样都不出现,仍然可以编译通过。

当然,既然没用,那想加就加,也不影响。


问题2:调用编译器的命令写在哪里?

很多不懂行的人写在了launcher.bat,abaqus cae快捷方式的目标等等地方。但是这些文件其实都指向了一个bat:C:\SIMULIA\Commands\abq2024.bat。所以直接写在这儿好了。


问题3:Abaqus找不到编译器

用Abaqus verify命令测试子程序时,Abaqus找不到编译器或者说'ifort'不存在。

我被这个问题搞了4个多小时,网上教程没有一个正确回应这个问题。最后我在官方文档里发现了端倪。

先说一下历史问题,以前intel主推的fortran编译器叫ifort,但是在oneAPI的更新过程中,这一编译器已经被ifx完全取代了。换句话说,Abaqus默认指定的可能是ifort,但你只有ifx。所以,报错,测试错误或者直接跳过。

所以问题就在于如何“纠正”Abaqus对编译器的“错误认识”。在官方手册的系统自定义参数(System customization parameters)章节,我找到了compile_fortran字段,这明显就是Fortran编译器的参数。全网的教程鲜有提及这个东西,反正我是没见到。

经查,发现该变量在 C:\SIMULIA\EstProducts\2024\win_b64\SMA\site\win86_64.env中定义,果不其然发现了'ifort'

把'ifort'改成'ifx'。子程序测试愉快通过。【解决了】


写在后面:希望各位少花冤枉钱,也少遭点罪。