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

[子程序] DFLUX多道焊子程序这样写能用吗?麻烦各位大神看看

[复制链接]
发表于 2019-5-14 10:11:12 | 显示全部楼层 |阅读模式 来自 广东
对FORTAN不熟悉,自己编了一个DFLUX,不知道这样写能不能实现多道焊,下面是我的子程序麻烦大家指正一下

SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
     1                 TEMP,PRESS,SNAME)
C
      INCLUDE 'ABA_PARAM.INC'


      
      DIMENSION COORDS(3),FLUX(2),TIME(2)
      CHARACTER*80 SNAME

        u=32
      i=280
      effi=0.8
      q=u*i*effi
        v=0.005
        d=v*TIME(2)

        x=COORDS(1)
        y=COORDS(2)
        z=COORDS(3)

        x0=0
        y0=-0.004
      z0=0.1
      
      x1=0
      y1=0
      z1=0.1
      
      x2=0
      y2=0.004
      z2=0.1
      
      x3=0
      y3=0.008
      z3=0.1

        a=0.012
      b=0.004
        c1=0.001
      c2=0.003
      
      f1=0.4
      f2=1.6
        PI=3.1415

        heat1=6*sqrt(3.0)*q/(a*b*c1*PI*sqrt(PI))*f1
      heat2=6*sqrt(3.0)*q/(a*b*c2*PI*sqrt(PI))*f2
      
        shape1=exp(-3*(x-x0)**2/a**2-3*(y-y0)**2/b**2-3*(z-z0+d)**2/(c1)**2)
      shape2=exp(-3*(x-x0)**2/a**2-3*(y-y0)**2/b**2-3*(z-z0+d)**2/(c2)**2)
      shape3=exp(-3*(x-x1)**2/a**2-3*(y-y1)**2/b**2-3*(z-z1+d)**2/(c1)**2)
      shape4=exp(-3*(x-x1)**2/a**2-3*(y-y1)**2/b**2-3*(z-z1+d)**2/(c2)**2)
      shape5=exp(-3*(x-x2)**2/a**2-3*(y-y2)**2/b**2-3*(z-z2+d)**2/(c1)**2)
      shape6=exp(-3*(x-x2)**2/a**2-3*(y-y2)**2/b**2-3*(z-z2+d)**2/(c2)**2)
      shape7=exp(-3*(x-x3)**2/a**2-3*(y-y3)**2/b**2-3*(z-z3+d)**2/(c1)**2)
      shape8=exp(-3*(x-x3)**2/a**2-3*(y-y4)**2/b**2-3*(z-z3+d)**2/(c2)**2)
      
C     JLTYP=1
        JLTYP=1
      IF(JSTEP .EQ. 1)THEN
        IF (z .GE.(z0-d))THEN
          FLUX(1)=heat1*shape1
      ELSE
          FLUX(1)=heat2*shape2
      ENDIF
      IF(JSTEP .EQ. 3)THEN
        IF (z .GE.(z1-d))THEN
          FLUX(1)=heat1*shape3
      ELSE
          FLUX(1)=heat2*shape4
      ENDIF
      IF(JSTEP .EQ. 5)THEN
        IF (z .GE.(z2-d))THEN
          FLUX(1)=heat1*shape5
      ELSE
          FLUX(1)=heat2*shape6
      ENDIF
      IF(JSTEP .EQ. 7)THEN
        IF (z .GE.(z3-d))THEN
          FLUX(1)=heat1*shape7
      ELSE
          FLUX(1)=heat2*shape8
      ENDIF
      RETURN
      END
发表于 2019-5-14 17:52:23 | 显示全部楼层 来自 北京
Simdroid开发平台
跑一下就知道了
回复 不支持

使用道具 举报

 楼主| 发表于 2019-5-22 14:00:48 | 显示全部楼层 来自 广东广州
不能用啊,求各路大神指点吗迷津
回复 不支持

使用道具 举报

发表于 2019-6-24 09:33:23 | 显示全部楼层 来自 湖南长沙
我也是新手一枚,个人愚见:楼主把shape里头的+d改成-d;把if语句中的-d改为+d再试试看
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 14:07 , Processed in 0.028746 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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