求助ABAQUS子程序运行错误

求助ABAQUS子程序运行错误,第1张

运行一下fortran安装文件夹中的 \Intel\Compiler\11.1\038\bin\ia32\ifortvars_ia32.bat

或者ifortvars_ia64.bat先,设置一下fortran环境。

首先介绍几个子程序

一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME)

参数:

1. F为用户定义的是每个积分点所作用的荷载的大小;

2. KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值;

3. TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值;

4. NOEL,NPT为积分点所在单元的编号和积分点的编号;

5. COORDS为当前积分点的坐标;

6. 除F外,所有参数的值都是ABAQUS传到用户子程序中的。

功能:

1. 荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。

2. 用户可以从其他程序的结果文件中进行相关 *** 作来定义积分点F的大小。

例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。

SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS,

1 JLTYP,SNAME)

INCLUDE 'ABA_PARAM.INC' C

DIMENSION TIME(2),COORDS(3)

CHARACTER*80 SNAME

PARAMETER (PLOAD=100.E4)

IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小

P=PLOAD

ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小

P=COORDS(1)*PLOAD !施加在积分点的荷载P是坐标的函数

ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小

P=COORDS(1)**2*PLOAD

ELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小

P=COORDS(1)**3*PLOAD

ELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小

P=COORDS(1)**4*PLOAD

END IF

RETURN

END

其实,ABAQUS的用户子程序在很多地方都可以编写。

常用的有:

1.新建一个txt文档,在里面写好你的用户子程序Fortran代码,然后保存好,并将文件名的后缀改为.for或者.f90就可以了。

2.如果你需要fortran语法的检查方便,可以打开安装好的fortran软件,然后在里面编写你的用户子程序,写好之后保存就可以了。32位windows *** 作系统可以用compaq

visual

fortran

6.5或6.6版本的;64位windows *** 作系统,例如win7的,可以安装

microsoft

visual

studio

intel

visual

fortran

来编写代码。

ABAQUS调用用户子程序的话,只要在inp文件中加入

调用子程序的关键词

就可以调用子程序了。

希望对你有帮助,如果觉得答案好,请采纳。

在Abaqus/cae中进行,在任务模块中执行【job】/【edit】/【job-name】命令,在d出的Edit job对话框中切换到General选项卡,在User subroutine file 下的输入框中设置用户子程序路径即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12145408.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存