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

[子程序] 用VUSDFLD模拟单元删除

[复制链接]
发表于 2014-10-18 16:31:28 | 显示全部楼层 |阅读模式 来自 大连理工大学
悬赏2仿真币已解决
各位大侠看看我的程序有什么问题,我要模拟的是提取各向异性材料3个方向的,和我给定的值比较,如果其中有一个大于我给定的值,就让该单元删除,但是提交时一直显示:“Problem during compilation ”,不知道哪里不对,能否帮我查看一下。

c User subroutine VUSDFLD for user-defined fields
c
      subroutine vusdfld(
c Read only -
     *   nblock, nstatev, nfieldv, nprops, ndir, nshr,
     *   jElemUid, kIntPt, kLayer, kSecPt,
     *   stepTime, totalTime, dt, cmname,
     *   coordMp, direct, T, charLength, props,
     *   stateOld,
c Write only -
     *   stateNew, field )
c
      include 'vaba_param.inc'
c
      dimension props(nprops),
     *          jElemUid(nblock), coordMp(nblock, *),
     *          direct(nblock, 3, 3), T(nblock,3,3),
     *          charLength(nblock),
     *          stateOld(nblock, nstatev),
     *          stateNew(nblock, nstatev),
     *          field(nblock, nfieldv)
      character*80 cmname
      c Properties array
c     props(1) -> 1方向应力
c     props(2) -> 2方向应力
c     props(3) -> 剪应力
c
      character*3 cData(maxblk*6)
      dimension jData(maxblk*6)
      dimension stress(maxblk*6)
c Read properties
      x=props(1)
      y=props(2)
      z=props(3)
c Get stresses from previous increment
      jStatus = 1
      call vgetvrm( 'S', stress, jData, cData, jStatus )
c
      call maxstress( nblock, nstatev,
     *     nfieldv, ndir, nshr,
     *     x,y,z,
     *     stress,
     *     stateOld,
     *     stateNew, field )
c
      return
      end
c
      subroutine  maxstress( nblock, nstatev,
     *     nfieldv, ndir, nshr,
     *     x,y,z
     *     stress,
     *     stateOld,
     *     stateNew, field )
c
      include 'vaba_param.inc'
c
      dimension stress(nblock,ndir+nshr),
     *     stateOld(nblock,nstatev),
     *     stateNew(nblock,nstatev),
     *     field(nblock,nfieldv)
c
      do k = 1, nblock
         stateNew(k,1) = stateOld(k,1)
c
         quchu = stateOld(k,1)
c     
         s11 = stress(k,1)
         s22 = stress(k,2)
         s12 = stress(k,4)
c         
         if(s11.gt.x) then
         quchu=0.d0
             else if(s22.gt.y) then
                     quchu=0.d0
             else if(s12.gt.z) then
                      quchu=0.d0

         end if
         stateNew(k,1)=quchu

      end do
c
      return
      end


最佳答案

查看完整内容

就是我说的问题啊 缩进错了 本来是注释用的 现在变成其他的了 所以你改一下就行了
发表于 2014-10-18 16:31:29 | 显示全部楼层 来自 北京
Simdroid开发平台

就是我说的问题啊 缩进错了 本来是注释用的 现在变成其他的了 所以你改一下就行了
回复

使用道具 举报

 楼主| 发表于 2014-10-18 16:32:24 | 显示全部楼层 来自 大连理工大学
刚接触VUSDFLD有什么比较愚蠢的问题,尽管提出来
回复

使用道具 举报

发表于 2014-10-18 21:08:37 | 显示全部楼层 来自 北京
character*80 cmname
      c Properties array
这块会不会是缩进出了问题 你还是传下文件吧
回复

使用道具 举报

 楼主| 发表于 2014-10-19 11:22:44 | 显示全部楼层 来自 大连理工大学
箫三笑 发表于 2014-10-18 21:08
character*80 cmname
      c Properties array
这块会不会是缩进出了问题 你还是传下文件吧 ...

好的,谢谢,马上传
回复

使用道具 举报

 楼主| 发表于 2014-10-19 11:23:28 | 显示全部楼层 来自 大连理工大学
这是子程序

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2014-10-19 17:00:21 | 显示全部楼层 来自 大连理工大学
箫三笑 发表于 2014-10-18 16:31
就是我说的问题啊 缩进错了 本来是注释用的 现在变成其他的了 所以你改一下就行了 ...

多谢了,确实是这样
回复

使用道具 举报

发表于 2018-5-23 11:16:00 | 显示全部楼层 来自 上海长宁区
LZ,问你个VUSDFLD的问题:如果我将VUSDFLD中的变量传递给其他的子程序,该使用那个变量?
回复

使用道具 举报

发表于 2018-5-24 09:36:12 | 显示全部楼层 来自 上海长宁区
LZ,最近我也写了一个VUSDFLD的子程序,但总是运行出现错误,能否帮忙看一下,拜托拜托
回复

使用道具 举报

发表于 2018-6-20 15:53:29 | 显示全部楼层 来自 江苏南京
这控制单元删除是哪个变量啊?
回复

使用道具 举报

发表于 2020-12-29 17:21:27 | 显示全部楼层 来自 天津
学习一下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 05:04 , Processed in 0.048463 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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