找回密码
 注册
Simdroid-非首页
查看: 114|回复: 8

UMAT中递归变量的传递(存储)问题

[复制链接]
发表于 2009-4-11 21:41:40 | 显示全部楼层 |阅读模式 来自 清华大学
本帖最后由 junl06 于 2009-4-20 20:34 编辑

我在编制UMAT的时候,需要用到递归,递归的次数由增量数(KINC)决定,但是最后子程序老是通不过,说出现The executable C:\ABAQUS\6.5-1\exec\standard.exe aborted with system error code 253. ....的错误,
子程序的框架如下:
SUBROUTINE UMAT(STRESS.....)
.......
DO k1=1,NTENS
   DSTRES(k1)=0.0
   STRESS(K1)=0.0
END DO
s1(kinc)=....
.......
end
recursive real function s1(kinc) result(ans1)
  if (kinc<=0)then
      ans1=0.0
  return
else if (kinc==1)then
     ans1=......
return
else
     ans1=8*s1(kinc-1)......
return
end if
     ans1=s1(kinc)
return
end      
请高手指点
还有就是上面的子程序在 UMAT中,若没有:
DO k1=1,NTENS
   DSTRES(k1)=0.0
   STRESS(K1)=0.0
END DO
则程序不能运行,但是这样是否使得每次调用UMAT的时候应力和应力增量都变成0了?前面的计算没有保存呢?不知道为啥?
s1是递归函数
 楼主| 发表于 2009-4-12 21:03:26 | 显示全部楼层 来自 河南郑州
Simdroid开发平台
1# junl06
呼唤版主回答问题啊,^_^
回复 不支持

使用道具 举报

 楼主| 发表于 2009-4-12 21:05:21 | 显示全部楼层 来自 河南郑州
2# junl06
aogudusi版主帮忙解答下啊,谢了
回复 不支持

使用道具 举报

 楼主| 发表于 2009-4-19 10:36:12 | 显示全部楼层 来自 河南郑州
3# junl06
咋没人回复的呢?高手跑哪去了
回复 不支持

使用道具 举报

发表于 2009-4-19 14:19:51 | 显示全部楼层 来自 上海
你那个do

每次把应力都变成了0

怎么能对

错误肯定还有 我没仔细看
回复 不支持

使用道具 举报

发表于 2009-4-19 14:20:27 | 显示全部楼层 来自 上海
建议通过 6通道号 把 结果输出看看  你自己每步迭代的结果
回复 不支持

使用道具 举报

发表于 2009-4-19 17:49:31 | 显示全部楼层 来自 上海
我刚看了下

DSTRESS  是在input 文件中定义的

STRESS 只要定义初值就可以
回复 不支持

使用道具 举报

 楼主| 发表于 2009-4-20 16:48:26 | 显示全部楼层 来自 清华大学
7# 奔奔 应力增量 DSTRES怎么会从input给出呢?他应该实在UMAT中计算得到的啊,还有就是KINC怎么和递归的子程序进行传递呢?谢谢
回复 不支持

使用道具 举报

 楼主| 发表于 2009-4-21 19:43:41 | 显示全部楼层 来自 清华大学
8# junl06 是不是版主都找简单点的去回答了啊,咋这个一个都不回答呢?^_^
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-28 22:25 , Processed in 0.034145 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表