2013-04-29 49 views
2

[注:包含前一个问题的重复,但作为单独的问题分别转贴]FORTRAN 1.0D0,D0需要或编译失败

我编译这是已知使用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 

即使对此行为的解释,将不胜感激。

干杯,

德里克

回答

3

编译错误的原因很可能是类型+种1.0XX(4)之间的失配,Fortran标准要​​求,在这两个种类的参数SIGN匹配并键入。由于您未向我们展示阵列XX的声明,因此我有信心声称它可能被声明为realkind=kind(1.0d0)

+0

再次嗨!谢谢,这似乎是正确的。 XX(4)声明表示:双精度XX(6) – dmon 2013-04-29 14:57:38