(1)问题描述
问题报错信息如图1所示,图1中Begin Compiling Abaqus...之后才开始出现“ifort问题”,根据网络资料,这是由于subroutine编译时发生的错误,因此着重解决与subroutine编译有关的问题。
图1 subroutine报错信息一览
(2)解决办法
在abaqus的安装路径下找到abaqus.bat文件,以文本方式打开,添加如图2路径。视个体电脑安装路径不同有所差异,可分别用everything查找,如图4a和图4b。该方法是在CSDN社区上查找方法后仍然无法解决我的困境时而形成的方法,相关解决办法均来源于网络,笔者只作搬运工作和试错测试。
私以为,CSDN社区添加ifortvars.bat的路径主要解决fortran与abaqus关联不成功问题,而本文第一部分的问题描述已经指出,笔者的电脑是成功verification的,所以关联没问题,因此,主要解决通过abaqus command命令行的方式调用subroutine不成功问题。(以上只是笔者的猜想,非业内人士,根据现象而作出的猜想)
图2 本文提供的解决办法
图4a everything查找vcvarsal.bat文件
图5 subroutine运行成功
(3)问题延伸
部分abaqus使用人员在运行subroutine时希望能够随时输出中间参数,替代debug,以验证程序能够按照预定想法进行运算。笔者在解决"ifort问题"时,碰巧在subroutint中通过write函数输出中间参数,但是不知道输出的位置在哪里。目前的一个可行的解决办法是,将subroutine文件和子程序放在一个文件夹中,通过windows powershell窗口打开,可见图1右上角,然后按照图1的方式运行job文件,即abaqus job=job-1 user=subroutine int,然后运行结果如图5所示,图5上面的1.0、5.0和123正是笔者在子程序中通过write函数输出的中间参数(应该通过abaqus command命令也能实现)。不过,输出数据有点多,应该有途径控制输出,暂时没找到解决办法。
希望广大读者在评论中提意见和讨论解决办法,多多提供解决问题的思路,谢谢。