我正在使用makefile代码(下面),使用Fortran77编译器让我满意,但我试图与英特尔Fortran编译器(IFORT)合作使用相同的代码,但它根本不能正常工作。 / p>
有人可以就改进代码提出任何建议吗?
OBJ = change.o twopt.o ddmath.o cklib.o
f77 = pgf77
opt = -O4
.f.o:
$(f77) $(opt) -c $*.f
stagdri: $(OBJ)
pgf77 -o change.exe $(OBJ)
strip change.exe
答案 0 :(得分:2)
这是一个非常简单的makefile,唯一真正需要做的就是将f77 = pfg77
更改为f77 = ifort
。我不确定ifort是否会喜欢-O4
选项(O3是ifort文档中的最高级别),因此您可以更改它以确保获得优化。
还有另外两个与makefile无关的问题可能导致问题。
在命令行上运行的intel编译器要求您运行脚本来设置intel环境。在制作项目之前,请确保您正在运行该脚本。在linux上,对于64位环境和默认安装路径,这是source /opt/intel/bin/compilervars.sh intel64
。
ifort在某些方面可能非常挑剔,并拒绝接受pgf或gfortran接受的代码。在适用的情况下,您可能需要收紧代码或查找编译器参数以放宽编译器。
为了提供超出这些一般性的任何特定帮助,需要提供编译器或make产生的实际错误。