2

我正在尝试编译一些由其他人开发的完整 Fortran 代码。makefile 引用 CC、F77 和 F90。我们的服务器上没有 F90,但如果事实证明确实需要它,我可能会要求它。

无论如何,我认为我已经适当地设置了环境变量(我所做的只是取消注释正确的行),所以我将文件cp'd到makefile,输入make并得到以下错误。

make[1]: Entering directory `/imageseer/Scripts/PGE03_V5.2.6/PGE03/MOD_PR35' 
f77 -c -n32 -fullwarn -u -bytereclen -extend_source -woff 2271,2272,2274 -O2 -c -u -bytereclen -col120 -woff 2271,2272,2274 -I -I -I -I -I/shared_src/atmos_src/src_UW -I/shared_src/atmos_src/src_L2 Antarctic_day.f  
f77: 2271,2272,2274: No such file or directory  
f77: 2271,2272,2274: No such file or directory  
f77: unrecognized option `-n32'  
f77: unrecognized option `-woff'  
f77: unrecognized option `-col120'  
f77: unrecognized option `-woff'  
f771: error: unrecognized command line option "-fullwarn"  
make[1]: *** [Antarctic_day.o] Error 1  
make[1]: Leaving directory `/imageseer/Scripts/PGE03_V5.2.6/PGE03/MOD_PR35'  
make: *** [target] Error 2  

我不确定你们是否能够提供帮助,但不幸的是,由于许可问题,我认为我不适合在这里复制代码。无论如何,我不确定如何判断无法识别的选项是否是开发团队系统独有的,或者它们是否是由于我的系统的某些缺陷(即我应该让我的高贵系统管理员安装 f90),或者其他一些问题。我还应该承认,我对 Fortran 几乎一无所知,并且只使用过 make 和 cc,所以第三种可能性是我应该把责任转嫁给其他人,但我认为我团队中的任何人都不知道 Fortran . 一如既往,感谢您的帮助!

4

1 回答 1

3

无论您是否知道,您几乎肯定拥有(或可能拥有)fortran 90 编译器;现在任何像样的 fortran 编译器都至少支持 F90/95。f77 是 g77 的链接吗?你有安装 gfortran 吗?

在我看来,这些选项适用于旧的 SGI 编译器。如果是这种情况,它有可能使用新开源的 Pathscale 编译器“开箱即用” 。但我认为大多数选项在其他编译器中都有类似物。

此处似乎列出了一些选项。-fullwarn 打开所有警告;在 gfortran 中,这将是 -Wall。-woff 关闭一些警告——这里是警告 2271、2272 和 2274。现在不知道这些是什么;我只想留下所有警告,看看会发生什么。

-col120 提升了 f77 的 72 列限制,并允许行为 120 列宽。在 g77/gfortran 中,这将是 -fixed-line-length-120 。-extend_source 做了类似的事情,可能会被忽略。

-n32 生成我认为的 32 位对象。-m32 应该做同样的事情,但我会等待找出为什么这需要 32 位才能做到这一点。

于 2011-07-13T19:59:38.327 回答