KHX 发表于 2021-11-19 15:26:14

ABAQUS中fric_coef子程序

想用Fortran语言把这个公式编入.for文档中,但总是出现错误,会的朋友能否指点一下      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)
      DOk = 1, nBlock
         fCoef(k)=(a*exp(b*pressure(k))+c)
                   *
      END DO

      return
      end

青衣巷 发表于 2021-11-19 15:58:43

      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)
      DOk = 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:23

青衣巷 发表于 2021-11-19 15:58
      subroutine fric_coef (
C Write only -
   *   fCoef, fCoefDeriv,


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

青衣巷 发表于 2021-11-20 10:33:16

       include 'aba_param.inc'
         real :: a, b, c

交换一下位置

KHX 发表于 2021-11-21 16:36:06

青衣巷 发表于 2021-11-20 10:33
include 'aba_param.inc'
         real :: a, b, c



能运行了,谢谢:-D
页: [1]
查看完整版本: ABAQUS中fric_coef子程序