Fortran Coder

查看: 6229|回复: 4

[求助] ABAQUS中fric_coef子程序

[复制链接]

3

帖子

1

主题

0

精华

新人

F 币
30 元
贡献
13 点
发表于 2021-11-19 15:26:14 | 显示全部楼层 |阅读模式
想用Fortran语言把这个公式编入.for文档中,但总是出现错误,会的朋友能否指点一下
[Fortran] 纯文本查看 复制代码
      subroutine fric_coef (
C Write only - 
     *   fCoef, fCoefDeriv, 
C Read only - 
     *   nBlock, nProps, nTemp, nFields, 
     *   jFlags, rData, 
     *   surfInt, surfSlv, surfMst, 
     *   props, slipRate, pressure, 
     *   tempAvg, fieldAvg 
     *   real a, b, c )
C
      include 'aba_param.inc'
C
      dimension fCoef(nBlock), 
     *   fCoefDeriv(nBlock,3),
     *   props(nProps),
     *   slipRate(nBlock),
     *   pressure(nBlock),
     *   tempAvg(nBlock), 
     *   fieldAvg(nBlock,nFields)
C
      parameter( iKStep   = 1,
     *           iKInc    = 2,
     *           nFlags   = 2
     *           a        = 0.1,
     *           b        = -1.2,
     *           c        = 0.3) 
C
      parameter( iTimStep = 1,
     *           iTimGlb  = 2,
     *           iDTimCur = 3,
     *           nData    = 3,) 
C
      dimension jFlags(nFlags), rData(nData)
C
      character*80 surfInt, surfSlv, surfMst 
C
         xMuk = props(1)
         xMus = props(2)
         beta = props(3)
      DO  k = 1, nBlock
         fCoef(k)=(a*exp(b*pressure(k))+c)
                   *[xMuk+(xMus-xMuk)*exp(-beta*slipRate(k))]
      END DO

      return
      end

AR2Y%E$O``@Z7QQ{}TMZ[FW.png

fortran1.for

1.2 KB, 下载次数: 4

81

帖子

0

主题

0

精华

专家

F 币
471 元
贡献
232 点

规矩勋章新人勋章元老勋章

QQ
发表于 2021-11-19 15:58:43 | 显示全部楼层
[Fortran] 纯文本查看 复制代码
      subroutine fric_coef (
C Write only - 
     *   fCoef, fCoefDeriv, 
C Read only - 
     *   nBlock, nProps, nTemp, nFields, 
     *   jFlags, rData, 
     *   surfInt, surfSlv, surfMst, 
     *   props, slipRate, pressure, 
     *   tempAvg, fieldAvg )
C
       include 'aba_param.inc'
         real :: a, b, c
C
      dimension fCoef(nBlock), 
     *   fCoefDeriv(nBlock,3),
     *   props(nProps),
     *   slipRate(nBlock),
     *   pressure(nBlock),
     *   tempAvg(nBlock), 
     *   fieldAvg(nBlock,nFields)
C
      parameter( iKStep   = 1,
     *           iKInc    = 2,
     *           nFlags   = 2,
     *           a        = 0.1,
     *           b        = -1.2,
     *           c        = 0.3) 
C
      parameter( iTimStep = 1,
     *           iTimGlb  = 2,
     *           iDTimCur = 3,
     *           nData    = 3) 
C
      dimension jFlags(nFlags), rData(nData)
C
      character*80 surfInt, surfSlv, surfMst 
C
         xMuk = props(1)
         xMus = props(2)
         beta = props(3)
      DO  k = 1, nBlock
         fCoef(k)=(a*exp(b*pressure(k))+c)
     *             *(xMuk+(xMus-xMuk)*exp(-beta*slipRate(k)))
      END DO

      return
      end


彼岸,有永恒的守候...

3

帖子

1

主题

0

精华

新人

F 币
30 元
贡献
13 点
 楼主| 发表于 2021-11-19 22:34:23 | 显示全部楼层
青衣巷 发表于 2021-11-19 15:58
[mw_shl_code=fortran,true]      subroutine fric_coef (
C Write only -
     *   fCoef, fCoefDeriv,

很感谢您的回复,我试着运行了一下,又出现了这个错误the implicit statement is not position corrently within the scoping unit,我查了一下好像是implicit语句位置不对,刚接触Fortran语言不是很懂,想再请教一下
IMG_20211119_223135_1_edit_228179375164659.jpg
IMG_20211119_223135_1_edit_228179375164659.jpg

81

帖子

0

主题

0

精华

专家

F 币
471 元
贡献
232 点

规矩勋章新人勋章元老勋章

QQ
发表于 2021-11-20 10:33:16 | 显示全部楼层
       include 'aba_param.inc'
         real :: a, b, c

交换一下位置
彼岸,有永恒的守候...

3

帖子

1

主题

0

精华

新人

F 币
30 元
贡献
13 点
 楼主| 发表于 2021-11-21 16:36:06 | 显示全部楼层
青衣巷 发表于 2021-11-20 10:33
include 'aba_param.inc'
         real :: a, b, c

能运行了,谢谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-3-29 23:52

Powered by Tencent X3.4

© 2013-2024 Tencent

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