fortran 1.0D0,D0必需或编译失败

时间:2013-04-29 14:38:00

标签: fortran gfortran

[注意:包含重复上一个问题,但作为单独的问题单独发布]

我正在编译一个已知使用gfortran使用ifort编译的程序。但是编译器在行

上失败了
IF (IANG.NE.0) IANG=IANG*SIGN(1.0,XX(4))

编译错误:

make: *** [main_file.o] Error 1

将此行更改为(注释D0)

IF (IANG.NE.0) IANG=IANG*SIGN(1.0D0,XX(4))

解决问题

编译器标志是:

gfortran -fno-automatic -mcmodel=medium -O2 -ffast-math  main_file.o -o main_file 

即使对此行为的解释也会受到赞赏。

干杯,

德里克

1 个答案:

答案 0 :(得分:3)

编译错误的原因可能是类型+类型1.0XX(4)之间的不匹配,Fortran标准要​​求SIGN的参数在两种类型中都匹配并输入。由于您没有向我们展示数组XX的声明,因此我有信心断言它可能被real声明为kind=kind(1.0d0)