使用在Fortran 90中使用Abaqus Standard编写的子程序

时间:2018-02-28 23:16:37

标签: fortran subroutine abaqus

我正在使用Abaqus和用户定义的子程序。据我所知,Abaqus Standard或Explicit可用于Fortran 77语言中特定的子程序,改进的Fortran 90/95语言!有没有办法如何使用Fortran 90和更高版本的Abaqus?

1 个答案:

答案 0 :(得分:5)

默认情况下,Abaqus希望用户子程序以较旧的固定格式样式编写。但是,您可以使用编译器支持的任何现代语言功能。 1 这包括使用模块,新内在函数,派生类型等,只要您遵循固定格式样式即可。

但如果你发现固定格式限制,就像我一样,那么你有选择权。要使用自由格式样式,您可以:

  1. 修改abaqus环境文件:环境文件是影响所有用户的系统范围设置文件。 您可以在此处更改设置,但如果没有先咨询您的团队,则不应该这样做。或者,复制.env文件并将其放在工作目录中,以便任何更改仅本地化为您的分析(您的同事会感谢您)。

    找到compile_fortran变量。将'/free'(windows)或'-free'(linux)添加到列表中。如果您在那里看到'/extend-source',则可能需要将其删除。

  2. 使用编译器指令:您可以在子例程的开头放置编译器指令,而不是修改.env文件。根据我的经验,这允许我的子程序在任何使用它们的地方编译和运行。

    假设您使用的是英特尔Fortran,该指令为:!DIR$ FREEFORM

  3. 1 当然,我还没有测试过每一种语言功能,所以我在这里进行了对冲。但我确实说过"关于"因为肯定会出现一些导致问题的功能。例如,我的参数化派生类型的子程序似乎总是崩溃,这让我很懊恼。如果有任何读者能够成功使用它们,我很乐意听到它。