Fortran Coder

标题: ABAQUS中fric_coef子程序 [打印本页]

作者: KHX    时间: 2021-11-19 15:26
标题: ABAQUS中fric_coef子程序
想用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 (37.44 KB, 下载次数: 132)

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

fortran1.for

1.2 KB, 下载次数: 4


作者: 青衣巷    时间: 2021-11-19 15:58
[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



作者: KHX    时间: 2021-11-19 22:34
青衣巷 发表于 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 (903.41 KB, 下载次数: 121)

IMG_20211119_223135_1_edit_228179375164659.jpg

IMG_20211119_223135_1_edit_228179375164659.jpg (903.41 KB, 下载次数: 125)

IMG_20211119_223135_1_edit_228179375164659.jpg

作者: 青衣巷    时间: 2021-11-20 10:33
       include 'aba_param.inc'
         real :: a, b, c

交换一下位置

作者: KHX    时间: 2021-11-21 16:36
青衣巷 发表于 2021-11-20 10:33
include 'aba_param.inc'
         real :: a, b, c

能运行了,谢谢




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2