如何让gfortran拒绝不符合Fortran 90标准的代码?
让gfortran严格遵循Fortran 90标准编译的方法
要确保你的Fortran代码仅使用Fortran 90支持的特性,一旦引入后续标准(比如Fortran 95的elemental、Fortran 2003的class)的内容就编译失败,你可以通过以下gfortran编译选项实现:
- 指定严格遵循Fortran 90标准:使用
-std=f90选项,这个参数会让gfortran仅启用Fortran 90定义的语言特性,禁用后续标准的语法和功能。 - 开启严格错误检查:添加
-pedantic-errors选项,它会把所有违反指定标准的语法、特性使用从警告升级为编译错误,直接终止编译流程。
完整的编译命令示例:
gfortran -std=f90 -pedantic-errors your_code.f90
举个实际例子:如果你的代码里用了Fortran 95的elemental关键字,用上述命令编译时,gfortran会抛出类似如下的错误,阻止代码编译通过:
Error: Elemental attribute at (1) is not allowed in Fortran 90
补充说明:如果只加-std=f90而不加-pedantic-errors,gfortran可能只会对非标准特性发出警告,但仍会生成可执行文件;加上-pedantic-errors才能确保这类代码直接编译失败,完全符合你的教学需求。
内容的提问来源于stack exchange,提问作者Scene
相关产品推荐
相关产品推荐

