gfortran 1.0D0,需要D0,否则编译失败



[注:包含重复前一个问题,但单独发布]

我正在编译一个程序,它被称为编译与努力使用gfortran。但是,编译器在

行失败了。
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.0XX(4)的类型+类型不匹配,Fortran标准要求SIGN的参数在类型和类型上都匹配。由于您没有向我们展示数组XX的声明,我有信心断言它可能被声明为realkind=kind(1.0d0)

最新更新