多年来,收到许多同学关于Abaqus软件使用过程中Fortran子程序调试的问题,在形形色色的错误面前许多初学者无从下手,不知如何去查找问题所在。本文将对Abaqus中子程序的调试方法以及如何对错误进行预警做一个简单的介绍。
通过总结各类错误问题,大致可以把子程序编写过程中的错误归为三类:模型错误、语法错误和逻辑错误。
01
—
模型错误
有限元模型中自身材料、截面属性、网格类型、网格划分方式、接触设置、边界/载荷设置、输出设置、软件子程序配置等引起的错误,非子程序本身的错误。此类错误一般会在任务监控界面下的Error或Warning栏中有具体提示。
模型错误属于有限元模型常规建模错误,可以先使用非子程序模型予以测试,排除建模错误之后,再改为子程序计算模型。该类错误属于最容易解决的一类。
02
—
语法错误
在使用FORTRAN编写子程序时,使用了非法的语句或者非法的格式,而引起的错误。 该类错误会直接在任务监控界面提示Error:Problem during compilation编译出错。 如下图所示。![a3690372d2fb95f3b82bfb7b6a01b484.png](https://i-blog.csdnimg.cn/blog_migrate/f6aa899c4347f0cc2525c5fe298d2e77.jpeg)
03
—
逻辑错误
模型自身没有人为建模错误,子程序语法也没有问题,模型可以调用子程序顺利计算,但计算结果明显异常或者刚一开始计算就跳出,没有明确的错误原因,log文件中也查找不到明确的错误提示。 这一类错误,暂归结为逻辑错误。 一般是由于公式推导有误、书写笔误、数据格式混乱、分母为0等情况导致。 逻辑错误是子程序编写过程中最常见的一类错误,且十分隐秘,不易察觉,调试起来费时费力。 常见逻辑错误类型有以下几种:个别变量未声明或者声明类型与实际数据类型不一致
主程序实参维度与子程序形参维度不一致
分母为0
If 判断语句位置不符合正常逻辑
无限循环
引用位置超出数组自身范围
理论公式代码化的过程中编写有误
针对逻辑错误,建议如下:
应对措施:从前到后,从主程序到子程序,逐个代码块进行检查
检查方式:监控打印疑似有问题的变量
print * ,NOEL,dft,dmt,dfc,dmc
!输出多个单变量
print *,stress(1:6)
!输出数组stress
print*,‘F1=’,F1,‘F2=’,F2
!输出变量及提示信息
do ii=1,6
print*,int(C0 (ii,1:6))
end do
!输出6*6矩阵C0
通过 print 打印出来的数据将显示在Abaqus当前工作目录下与任务名同名的 log 文件中 ( 或命令提示窗口 ) ,根据打印出来的数据信息,逐个检查有问题的数据,进而判断错误在哪里?一般应从前到后,从主程序到子程序,一个代码块一个代码块顺序检查,直至检查到程序最后,所有数据均正常。打印效果如下:open(unit=10, file=‘error.dat')
! 打开error.dat文件,unit指定文件代码,file指定文件名称。
write(10, *) "hello" ,SDV1 ,X,Y,Z
!在文件中写入hello及多个变量
04
—
提示预警
有些情况下,错误是可以预计的,即在某种条件下,数据自然会出现异常,因此,可以提前在可能出现错误的地方给予相应的错误提示信息。例如,下面的公式:
![9fabbc4103baaeebac7879e435dcf23b.png](https://i-blog.csdnimg.cn/blog_migrate/597ffb5ecd8a5d36c3c5ef22d3977d62.png)
详细的设置及使用方法已经录制了视频,如果看了上面的描述还是搞不懂,可以点击下方的“阅读原文”去看视频咯。
熟悉又陌生的经典层合板理论(文末附ABD矩阵计算程序)
复合材料层压结构有限元分析中的几个坐标系
复合材料失效理论知多少?(一)
复合材料失效奥运会WWFE介绍及全文下载
一张图掌握Abaqus复合材料层板结构基础建模
复合材料层压板的常用铺层表示方法
Abaqus复合材料壳单元建模—姊妹篇1:常规建模step-by-step
Abaqus复合材料壳单元建模—姊妹篇2:快捷建模step-by-step
插件分享:层压板结构快速有限元建模工具(附源代码)
Abaqus复合材料有限元分析教学视频——基础篇
Abaqus cohesive系列教学视频
Abaqus复合材料VUMAT子程序系列教学视频
欢迎关注“复合材料力学”微信公众平台
![6e9b02bfaf6d9d5be17274c2ea8384c3.gif](https://i-blog.csdnimg.cn/blog_migrate/ea0ee07687070a4f08a945eeb2b91b71.gif)
复合材料力学 | 原创作品 | 未经允许不得转载
合作事宜 | 请联系工作人员