使用makefile

时间:2018-06-16 20:42:01

标签: macos fortran gfortran

我收到了一堆要编译的.f95文件。关于其编译的唯一信息是这些必须编译的顺序以及文件是自由格式的。除此之外还有一个Makefile,但它是为英特尔Fortran编译器制作的Makefile。我对Fortran一无所知,只需要使用代码。我没有访问英特尔Fortran编译器,macosx中的gfortran是我唯一可用的选择。我之前以类似的方式编译了类似的代码,它运行良好。然而,我得到了多个错误,没有任何反应。

正如我所说,MakeFile并不复杂,分为三个主要部分。我怎么能把它“翻译”为gfortran syntaxis并编译代码。两者之间是否存在等价选择?我附上一个简化版的MakeFile。

Mine
% ifort -o BIN1.exe -O3 -diag-disable 8291 file1.f90 file2.f90 ....

% ifort -g -check bounds -o BIN1n.exe -O3 file1.f90 file2.f90 ....

% ifort -g -debug full -traceback -check bounds -check uninit -check pointers -check output_conversion -check format -warn alignments -warn truncated_source -warn usage -ftrapuv -fp-stack-check -fpe0 -fpconstant -vec_report0 -diag-disable 8291 -warn unused -o BIN.exe -O3 file1.f90 file2.f90 ....

1 个答案:

答案 0 :(得分:0)

您需要将 ifort 标志转换为 gfortran 标志。据我所知,这只能通过阅读 ifort 和 gfortran 的文档来完成。我不是专家,但是:

  • 也许 -fpconstant 可以替换为 -fdefault-real-8(如果我理解正确的话,这个 gfortran 标志具有 ifort 标志 -r8 和 -fpconstant 的效果),
  • 也许可以使用 -ffpe-trap=XXX 替换 -fpe0。

PS:您可以在页面 Compiling with gfortran instead of ifort

找到一些等价物