加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ABAQUS二次开发之FORTRAN子程序二次开发-FORTRAN基本语法

(2016-09-19 13:21:57)
标签:

abaqus

主要介绍一下在编写Abaqus子程序中用到的基本FORTRAN语法。

首先,.forFORTRAN77固定格式,不区分大小写,每行前6位为预留位置,正常语句从第7为开始编写。Subroutine保留字表示函数声明的开头,括号内为函数传递参数,每行第5位代码代表这一行和上一行的连续关系如下代码所示。

      SUBROUTINE UMAT(STRESS, STATEV, DDSDDE, SSE,SPD, SCD, RPL,

     1 DDSDDT, DRPLDE, DRPLDT, STRAN,DSTRAN, TIME, DTIME, TEMP, DTEMP,

     2 PREDEF, DPRED, CMNAME, NDI, NSHR,NTENS, NSTATV, PROPS, NPROPS,

     3 COORDS, DROT, PNEWDT, CELENT,DFGRD0, DFGRD1, NOEL, NPT, LAYER,

     4 KSPT, KSTEP, KINC)

注释行为第一位以字幕c头的一整行。

C LOCAL ARRAYS

C ----------------------------------------------------------------

C EELAS- ELASTIC STRAINS

DIMENSION保留字用于声明分配给数组的空间。

DIMENSION STRESS(NTENS), STATEV(NSTATV),DDSDDE(NTENS, NTENS),

     1 DDSDDT(NTENS), DRPLDE(NTENS),STRAN(NTENS), DSTRAN(NTENS),

     2 PREDEF(1), DPRED(1), PROPS(NPROPS),COORDS(3), DROT(3, 3),

     3 DFGRD0(3, 3), DFGRD1(3, 3),TIME(2)

Writeread保留字用于对文件或设备的读写。

          write(*,*)'--------------------UMAT start--------------------'

      write(*,*)'TIME-----',TIME(1)

      write(*,*)'DTIME-----',DTIME

条件判断语句形式如下:

      IF X .GT. 0 THEN

          Y = -1

      ELSE IF X .EQ. 0 THEN

          Y = 0

      ELSE

          Y = 1

      END IF

循环语句形式如下:

      DO K1=1,NTENS

         DO K2=1,NTENS

            DDSDDE(K2,K1)=0.D0

            DELDSE(K2,K1)=0.D0

         END DO

      END DO

基本运算符为:加+,减-,乘*,初/,乘方**

其他数学运算函数为:指数运算exp(), 开平方根sqrt(), 对数运算log()

关系运算符:等于.eq.,不等于.ne.,大于.gt.,大于等于.ge.,小于.lt.,小于等于.le.

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有