声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1494|回复: 1

[Marc专区] 一个子程序问题

[复制链接]
发表于 2008-5-22 03:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
大家好,想跟大家请教一下下面这个程序,我不论怎么在marc中运行,都不能够实现,正常的数据,好像计算不对.但是我又看不出原因,问题就在这个程序里面,期待有高手可以帮忙解决一下.
谢谢大家了.

      subroutine ueldam(m,n,nn,kc,inc,lovl,matus,timinc,cptim,toten,
     2                  deven,totend,totenv,surfc,surfd,dt,dtdl,
     3                  damd,ddamd)
c
      include '../common/implicit'
      dimension  dt(*),dtdl(*),matus(2)
c
c
c     User subroutine to determine value of damage parameter
c
c     Input:
c
c     m        = element number
c     n        = element/elsto number
c     nn       = integration point number
c     kc       = layer number
c     inc      = increment number
c     lovl     = 4 for assembly phase, 6 for stress recovery phase
c     matus(1) = user material set number
c     matus(2) = internal material set number
c     timinc   = time increment
c     cptim    = time at beginning of increment
c     toten    = total instantaneous strain energy at the end
c                of the current step excluding damage
c     deven    = deviatoric part of the instantaneous strain energy at
c                the end of the current step excluding damage
c     totend   = stored deviatoric energy at previous step (including damage)
c     totenv   = stored volumetric energy at previous step (including damage)
c     surfc    = current radius of continuous    damage surface
c     surfd    = current radius of discontinuous damage surface
c     dt       = temperature
c     dtdl     = incremental temperature
c
c     Required Output:
c
c     damd     = value of Kachanov deviatoric damage parameter
c     ddamd    = derivative of damage parameter with respect to maximum
c                total strain energy
c
c
c     include 'concom'
      common/rubber/WW,vvv,fovinc(1600,9),fov(1600,9)
common/rubber/endom(1600,9)
vvv=toten
dinfalf=0.7719389
nualf=1.2
kc=1.D0
write(6,*) 'dans la routine'
call elmvar (1,m,nn,kc,strain)
fov(m,nn)=strain+1
if(abs(fovinc(m,nn)).gt.abs(fov(m,nn))) then
fov(m,nn)=fovinc(m,nn)
else
fov(m,nn)=fov(m,nn)
endif
damd=1-dinfalf*(1-exp((1-fov(m,nn))*nualf))
      endom(m,nn)=damd
return
      end
回复
分享到:

使用道具 举报

 楼主| 发表于 2008-5-22 14:32 | 显示全部楼层
各位,有时间看看问题啊...很紧急,很重要....
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-10 23:16 , Processed in 0.062638 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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