代码中MODULE PROCEDURE使用是否合规?Fortran语法问题咨询
Fortran编译错误:
USE MOD_BAR无法识别模块的解决方法 问题根源
你的代码中USE MOD_BAR无法被gnufortran识别,核心是模块MOD_BAR的定义语法错误:
- 错误使用了
MODULE PROCEDURE MOD_BAR作为模块开头,MODULE PROCEDURE是用于接口块内声明过程关联的语句,不能用来定义模块本身。 - 标准Fortran模块必须以
MODULE 模块名开头,结尾匹配END MODULE 模块名(或简写END MODULE)。
错误代码片段
MODULE PROCEDURE MOD_BAR IMPLICIT NONE CONTAINS SUBROUTINE P PRINT *,'mod_bar' END SUBROUTINE P END MODULE MOD_BAR
修正后的代码
将错误的模块声明语句替换为标准格式即可:
MODULE MOD_BAR IMPLICIT NONE CONTAINS SUBROUTINE P PRINT *,'mod_bar' END SUBROUTINE P END MODULE MOD_BAR
额外优化建议
你后续将程序与两个模块拆分为三个独立文件的做法非常合理,这能有效简化大型Fortran项目的代码管理,避免单文件内模块顺序、编译依赖等潜在问题。
内容的提问来源于stack exchange,提问作者bdbaddog
相关产品推荐
相关产品推荐

