当前位置:服务支持 >  软件文章 >  Abaqus使用.f90格式子程序完整方法

Abaqus使用.f90格式子程序完整方法

阅读数 4
点赞 0
article_banner

一、前言

Fortran语言发展至今已经推出了若干版本,那么究竟采用哪个版本来编写Abaqus子程序呢?这是困扰很多同学的问题,因为我们能买的Fortran教材基本都是讲解的Fortran90/95以上的版本。但是直接采用90或者95以上的版本编写子程序,Abaqus却又不能识别。

这里需要说明一点,Abaqus原生支持的FORTRAN77的语法形式,因此采用77写子程序肯定是没有问题的,但是实际上更高级的比如90也是能够支持的,需要对.env文件进行修改,加入支持90的语句即可。

二、方法

Abaqus默认支持的是固定(FORTRAN77)格式的Fortran子程序。编译或者调用子程序时会自动搜索文件后缀为:*.for, *.f, *.C, *.c, *.cc, *.CPP, *.cpp, *.CXX, *.cxx 的源代码文件。

如果想使用.f90自由格式的Fortran子程序,需要修改Abaqus的环境配置文件。Abaqus2018环境配置文件的位置与2016的位置不同,在我的电脑中是:https://www.gofarlic.com\Program Files\Dassault Systemes\SimulationServices\V6R2018x\win_b64\SMA\site\win86_64.env

在该环境配置文件的Fortran编译选项中增加'/free':

compile_fortran=['ifort',
                 '/c','/DABQ_WIN86_64', '/extend-source', '/fpp',
                 '/iface:cref', '/recursive', '/Qauto-scalar',
                 '/QxSSE3', '/QaxAVX',
                 '/heap-arrays:1',
                 # '/Od', '/Ob0', # <-- Optimization Debugging
                 # '/Zi', # <-- Debugging
                  '/include:%I', '/include:'+abaHomeInc, '%P', '/free']

并且需要将子程序文件后缀改为.for,之后,将该子程序编译为obj文件(umat-std.obj):

abaqus make library=umat.for

在执行计算任务时将该obj文件作为用户子程序文件调用:

abaqus job=myumatjob user=umat-std.obj

这样就可以正常执行计算了。

(完整)在Abaqus中使用.f90格式的子程序的方法的图1

三、后记

虽然能够修改使用,那么有没有必要采用更高级别的版本呢?就个人经验来说,采用77的语法即可,因为Abaqus子程序有其特殊性,并不是一个完整意义上的软件开发,只是为了实现理论公式的植入或者实现某些算法,比如应力的拉回算法等等。因此无需特别高级Fortran版本就能够实现子程序的编写,换个角度想想,很多计算力学的理论早已在有限元软件中实现,那时候有如今高版本的Fortran语言吗?

另外,高版本的Fortran包含了低版本的所有语法形式和函数,因此从应用的角度讲,没必要花费太多的时间去学习Fortran语言,只需要掌握最基本的语法和函数即可,更多的是需要自己在实际的编写中锻炼编程技术,而不是执拗于某个版本。切记,比版本重要的是是公式要正确,算法要正确!形式主义要不得。

祝顺利,收敛!

技术邻普通用户

附件:



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空