0

コードのセクションは次のようになります。

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 (^)

この「組み込み関数」行を正しく記述してこのエラーを解決する方法を教えてもらえますか? 私はプログラミングが初めてで、どんな助けも素晴らしいでしょう! それが問題になる場合、私はGNU G77コンパイラを使用していますか? ありがとう

4

2 に答える 2

1

2 番目のエラー ステートメントで、左括弧よりも右括弧が多く表示されます

IF ( ABS(i)).EQ. 0.0)

また、Ans(i) と 0.0 の型と種類は何ですか? Fortran は、型変換に関して少し奇妙である可能性があることを覚えています。

于 2011-02-07T16:47:08.110 に答える
0

宣言してください。彼らは違いの世界を作ります!

何かを 10 進数のゼロと比較することは、非常に悪い習慣です。ほとんどの場合、これを許容誤差の値 (十分に小さくする必要があります) と比較することをお勧めします。

上記のことを踏まえて、同じエラーを生成する小さなコンパイル可能な例を書いて投稿してみてください。

于 2011-02-07T19:28:51.760 に答える