或者ifortvars_ia64.bat先,设置一下fortran环境。
首先介绍几个子程序:
一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME)
参数:
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 下的输入框中设置用户子程序路径即可。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)