【问题标题】:User subroutine is missing - Intel Fortran OneAPI with Abaqus缺少用户子例程 - 带有 Abaqus 的 Intel Fortran OneAPI
【发布时间】:2021-02-17 12:04:08
【问题描述】:

如何在使用 Abaqus 配置和验证 Intel Fortran (oneAPI) 期间修复“***ERROR: USER SUBROUTINE DISP IS MISSING”?

背景:英特尔已停止提供并行工作室,现已转向 oneAPI。它似乎是免费的,但如果您是学生或教育工作者,当您的旧许可证到期(一年后)时,您必须迁移到 oneAPI。

用户子例程的 Abaqus 验证在此新平台上失败,MSG 文件中有以下内容

***ERROR: USER SUBROUTINE DISP IS MISSING

由于验证文件是由 Abaqus 提供的,所以它应该不会因为这个错误而失败。

【问题讨论】:

  • 请不要以图片形式输入错误信息。最重要的是它们实际上是可读的(即使对于残疾人)和可搜索的。见How to Ask
  • 问题是什么?
  • 好点 - 抱歉我有点匆忙 - 希望现在更清楚了。

标签: intel-fortran abaqus


【解决方案1】:

确保安装了正确的 Visual Studio (2019) 或更高版本的组件 - 只需要安装“使用 C++ 进行桌面开发”。

安装 oneAPI HPC 工具包(不需要基本工具包)。只需要 fortran 编译器(我认为 MPI 是可选的)。

英特尔安装程序应选择 Visual Studio 安装。确保您正在从“Intel oneAPI command prompt for Intel 64 for Visual Studio 2019”运行验证。

找不到子例程的错误是由区分大小写的问题引起的(请参阅 u\Ubuntz 在reddit thread 上的评论)。 将以下行添加到 FORTRAN 源文件的顶部(在本例中为来自验证文件夹的 std_user.for)。

!DEC$ ATTRIBUTES ALIAS:"disp"::DISP

对于实际使用/开发中的所有其他子例程,将 disp 替换为您的子例程的名称,例如,对于 umat write

!DEC$ ATTRIBUTES ALIAS:"umat"::UMAT

【讨论】:

    猜你喜欢
    • 2012-05-03
    • 2021-11-14
    • 2020-10-17
    • 1970-01-01
    • 2016-05-22
    • 2017-02-26
    • 1970-01-01
    相关资源
    最近更新 更多