代码部分看起来像这样;
DO i = 1 , no2 + 1
IF ( Isign.EQ.1 ) THEN
Ans(i) = fft(i)*Ans(i)/no2
ELSEIF ( Isign.EQ.-1 ) THEN
IF ( ABS(Ans(i)) .EQ. 0.0 )
& PAUSE ' deconvolving at responce zero in convlv'
Ans(i) = fft(i)/Ans(i)/no2
ELSE
编译器给我这个错误; IF(ABS(i))。EQ。 0.0) ^ 在(^)和(^)
的表达式之间键入不一致IF ( ABS(i)).EQ. 0.0)
^
invalid form for IF statement at (^)
有人能告诉我如何正确编写这个“Intrisic function”行来解决这个错误吗? 我是编程的新手,任何帮助都会很棒!我正在使用GNU G77编译器 那重要吗?感谢
答案 0 :(得分:1)
我在第二个错误陈述
中看到更多右括号而不是左括号IF ( ABS(i)).EQ. 0.0)
此外,Ans(i)和0.0的类型和种类是什么?我记得fortran对类型转换有点奇怪。
答案 1 :(得分:0)
请声明。他们创造了一个与众不同的世界!
将某些内容与小数零相比较是一种非常糟糕的做法 。它 将它与容忍误差的值进行比较几乎总是更好(哪个 应该做得足够小。)
如上所述, 尝试编写一个小的可编译示例 产生相同的错误并发布。