我正在尝试编译其他人开发的一些完整的Fortran代码。生成文件引用CC,F77和F90。我们的服务器上没有F90,但是我可能会问它是否确实需要它。
无论如何,我认为我已经适当地设置了环境变量(我所做的只是取消注释正确的行),因此我将文件cp到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
我不确定你们是否能够提供帮助,但是不幸的是,由于许可问题,我认为在此处复制代码不适合我。无论如何,我不确定如何确定无法识别的选项对于开发团队的系统是唯一的,还是由于系统的某些缺陷(例如,我应该请贵族sysadmin安装f90)造成的,或者其他问题。我还应该承认,我对Fortran几乎一无所知,并且只使用过make与cc,所以第三种可能性是我应该将责任转嫁给其他人,但是我不认为团队中的任何人都知道Fortran 。一如既往,感谢您的帮助!
最佳答案
几乎可以肯定,无论您是否知道,都有(或可能有)fortran 90编译器。如今,任何不错的fortran编译器都至少支持F90/95。 f77是g77的链接吗?您是否已安装gfortran?
在我看来,这些选项适用于旧的SGI编译器。如果是这样,则可以使它与newly-open-sourced Pathscale compilers一起“开箱即用”工作。但是我认为大多数选项在其他编译器中都有类似之处。
一些选项似乎在here中列出。 -fullwarn打开所有警告;在gfortran中,它是-Wall。 -woff关闭一些警告-在这里,警告2271、2272和2274。我只是保留所有警告,然后看看会发生什么。
-col120取消f77的72列限制,并使行宽为120列。在g77/gfortran中,它是-ffixed-line-length-120。 -extend_source做类似的事情,可能会被忽略。
-n32生成我认为是32位对象的东西。 -m32应该执行相同的操作,但是我将等待找出为什么需要使用32位来执行此操作。