弗朗索瓦 发表于 2016-8-18 13:53

FORTRAN子程序二次开发-子程序编译环境和流程

  在编写子程序前,需要确定Abaqus中的FOTRAN子程序的调试和运行环境。

  由于Abaqus中的子程序编写语言可以是C++或FOTRAN(这里FORTRAN语言为主),而Abaqus本身不提供C++或FORTRAN的编译环境,因此需要用户自己配置相应的编译环境。一般的选择为Microsoft Visual C++和Intel Visual Fortran,对应IDE为Microsoft Visual Studio和Intel ParallelStudio,根据Abaqus的版本不同,选择不同的IDE版本。对于Abaqus2016Abaqus6.14,一般可以选择Microsoft Visual Studio 2013 Community版本(此版本为社区版,免费)和Intel ParallelStudio XE 2013(此版本为收费版,据说有学校科研用的免费版本,可向Intel申请),其他组合可以参见Abaqus Installation and Licensing Guide,里面有具体说明。

  按照先装MSVS后装IVF的顺序进行安装,IVF会自动集成到MSVS当中,可以在MSVS中创建Fortran Console Application,集成.for和.f90源代码,并且结合MSVS这个强大的IDE对代码进行调试。Fortran应用程序的创建如下图所示,即在菜单栏中选择FILE->New->Project,之后选择Intel Visual Fortran中的Console Application,给出相应项目名称和目录即可。



  然后再菜单栏中选择PROJECT->Add New Item,选择相应格式FORTRAN文件即可。
  此后,在Abaqus User Subroutines Reference Guide中找到相应子程序接口说明,将接口代码拷贝到.for文件中即可开始编写子程序。
  当子程序编写完成后,在MSVS中进行debug,进行初步调试,修改语法错误,当debug结果只剩如下语法错误时:
  Error 1 error #5102: Cannot open include file'vaba_param.inc' D:\Temp\HaiZhuangYuan\DamageConstitutiveModel\subroutine\VUMAT_JC_Damage.for 19
  Error 2 Compilation Aborted (code 1) D:\Temp\HaiZhuangYuan\DamageConstitutiveModel\subroutine\VUMAT_JC_Damage.for 1
  说明,程序在FORTRAN语法层面已经不存在错误(上述debug error信息为include'vaba_param.inc'找不到文件为弹出的错误,不是由于语法造成)。

  接下来可以通过在子程序中通过write语句要求输出变量值来进行调试,或在计算中观察odb文件中的结果,尤其是SDVs的结果来进行调试。


转自:http://mp.weixin.qq.com/s?__biz=MjM5OTU1Mjc5Mw==&mid=2650731659&idx=2&sn=53ebc9203e4e67d6be4047db089a21a6&scene=1&srcid=0818Vamd6eM4k4zlgOLq8gR5#rd

sizhiyuan2006 发表于 2017-7-13 09:32

谢谢楼主分享
页: [1]
查看完整版本: FORTRAN子程序二次开发-子程序编译环境和流程