声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2613|回复: 0

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

[复制链接]
发表于 2016-9-18 10:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
  主要介绍一下在编写Abaqus子程序中用到的基本FORTRAN语法。
  首先,.for的FORTRAN77固定格式,不区分大小写,每行前6位为预留位置,正常语句从第7为开始编写。Subroutine保留字表示函数声明的开头,括号内为函数传递参数,每行第5位代码代表这一行和上一行的连续关系如下代码所示。

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

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

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

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

  5.   4 KSPT, KSTEP, KINC)
复制代码

  注释行为第一位以字幕c头的一整行。
  C LOCAL ARRAYS
  C ----------------------------------------------------------------
  C EELAS- ELASTIC STRAINS
  DIMENSION保留字用于声明分配给数组的空间。

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

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

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

  4.   3 DFGRD0(3, 3), DFGRD1(3, 3),TIME(2)
复制代码

  Write和read保留字用于对文件或设备的读写。
  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.


转自:http://mp.weixin.qq.com/s?__biz= ... LC9GYSLm4f1SMDyZ#rd

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-24 21:28 , Processed in 0.099245 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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