You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将新Fortran90模块接入使用Makefile的现有大型Fortran模型

Fortran90大型模型接入第三方CMake模块操作指南

不用合并两套构建规则,按照以下4步操作即可快速完成接入,全程无需修改大量代码和Makefile规则:

第一步:单独编译新模块获取依赖文件

直接运行新模块提供的build_steps.sh脚本完成编译,编译完成后你会得到两个核心资源:

  • 新模块build/lib/路径下的静态库文件libneural.a
  • 新模块build/include/路径下的所有后缀为.mod的模块定义文件

注:脚本里的.stamp转.o操作不影响核心依赖获取,正常执行即可

第二步:在目标子例程中导入模块

Fortran提供和Pythonimport类似的模块导入语法,你只需要修改需要调用新模块的那一个子例程即可:
在子例程的最开头(所有变量声明之前)添加use语句,用到哪个模块就导入对应模块名,示例如下:

subroutine your_target_sub()
    use mod_network ! 导入神经网络核心模块,按需替换为你要用到的模块名
    use mod_activation ! 按需导入其他模块
    implicit none
    ! 原有变量声明、业务代码
    ! 调用新模块的函数/子例程即可
end subroutine your_target_sub

无需修改其他子例程的代码。

第三步:修改现有模型的Makefile添加依赖

只需要找到现有Makefile中三个编译参数定义的位置,追加内容即可,无需修改其他构建规则:

  1. 找到FFLAGS(Fortran编译参数)的定义行,末尾追加:-I 替换为新模块build目录下include文件夹的绝对路径,作用是让编译器能找到.mod模块定义文件
  2. 找到LDFLAGS(链接参数)的定义行,末尾追加:-L 替换为新模块build目录下lib文件夹的绝对路径 -lneural,作用是让链接器能找到新模块的静态库
  3. 可选校验:如果你的现有模型启用了OpenMP,确认FFLAGS中包含-fopenmp参数,和新模块的默认编译参数保持一致,避免链接报错

如果现有模型使用64位整数/实数,编译新模块时需要将cmake命令改为FC=gfortran cmake .. -DSERIAL=1 -DINT=64 -DREAL=64,保持精度一致

第四步:重新编译现有模型

直接正常执行make命令编译现有模型即可完成接入。


内容的提问来源于stack exchange,提问作者Xu Shan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 13:45:03