阅读帮助
文中棕色表示无效操作,可以略过,不用跟着做,无用功!
文中绿色表示有效操作,可效仿。
讲故事
vs2019+ivf2020+abauqs2020,关联验证,全部pass(注意:如果你这里验证结果是除了子程序error,其他都pass,那么,请先重新创建一个没有带中文的windows账户之后,再继续)
然鹅,在cmd运行 abaqus info=system 时,提示找不到Fortran编译器,详细如下图
unable to find a Fortran compiler on this system.If Intel Fortran is installed on this system,please load ifortvars.bat before running Abaqus
同样,运行 abaqus verify -user_std 提示也是错误,如下图
Abaqus/Standard with user subroutines
ERROR
Abaqus did not complete successfully.
Please see std_user.log for details.
查看 std_user.log文件
可见经典错误,'ifort' 不是内部或外部命令,也不是可运行的程序或批处理文件。
解决思路
我们关联好之后,验证,可以全部pass(包括子程序),为什么单独在cmd中运行的时候,就找不到Fortran编译器?
子程序验证也过不去!
这是什么鬼,为什么?为什么?为什么?
老套路,既然自己整不明白,就祭出搜索引擎,查到有些网友说把 X:\SIMULIA\Commands (X为盘符),路径添加到环境变量 path中,然后照做,问题依旧。
同样的,Fortran编译器ifort.exe的路径也一样添加到path,还是不行,大家不要做这两步了。
因为如果是因为 Commands 文件夹没有添加到环境变量,那么它应该提示的是 ‘abaqus不是内部或外部命令,也不是可运行的程序或批处理文件’,不知道为什么的往下看。
此时已经怀疑人生,为什么,人家这样做可以,我这样做不行呢?
难道是因为我太帅?
不可能吧!
隔壁张三比我还帅,他都可以呀!
老天待我不公!
就在我抱怨上天不公X分钟后,我好像隐隐发现了些啥。
abaqus info=system
abaqus verify -user_std
嗯,前面都有一个 abaqus,经常玩cmd的朋友,应该不会陌生,前面abaqus是一个命令,后面的是参数什么的。
比如,要查git的版本,会使用
git -version
查Java的版本用
java -version
要查Python有没有装好或者是版本,会使用
python
相应的,我们都可以在电脑上的某个文件夹中(此文件夹肯定已经间接或直接添加到环境变量Path中)找到一个名为 git.exe 货 java.exe 或 python.exe的程序。
还记得前面的 X:\SIMULIA\Commands吗?
进入此文件夹,你会发现有个文件名为 abaqus.bat(已经设置显示扩展名,没有设置显示扩展名应该显示的是 abaqus)。
没错,这次,它的后缀是 .bat,而不是 .exe,一样可以把它当做一个命令在cmd中执行。
我们右键,编辑 abaqus.bat 文件,打开之后,你会发现,咦!
这个文件的内容,怎么长得跟之前关联时操作过的 launcher.bat 文件差不多。
看到这里,不知道你那是怎么想,反正我是已经有想法了。
我们关联好之后验证,能全部pass,之所以能全部pass, 是因为我们关联好了,abaqus验证的时候能找到对应的文件,而这里的只有干巴巴的一行。
@echo off
"d:\SIMULIA\Commands\abq2020.bat" %*
那我们一样的操作,把关联语句也放到这里来,是不是就OK了呢!?
说淦就淦,冲冲冲!!!
再次编辑打开 launcher.bat 文件,复制两行关联语句(我安装到默认路径,你那不安装到默认路径也是可以的,只要能找到对应的文件)
@call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
@call "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.2.254\windows\bin\ipsxe-comp-vars.bat" intel64 vs2019
放到前面,最后类似这样
@call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
@call "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.2.254\windows\bin\ipsxe-comp-vars.bat" intel64 vs2019
@echo off
"d:\SIMULIA\Commands\abq2020.bat" %*
在保存完之后,我已经隐隐感觉到,回来了,大师兄回来了,全都回来了!!!
然后信心满满地在cmd中再次执行
abaqus info=system
bingo!能识别到了!
cmd再执行
abaqus verify -user_std
同样的,这里子程序验证也通过了!
至此!问题解决!