6

thisによると、gfortran は整数論理変換を実行できますが、次のエラーが発生します。

                  if (.not.bDropped.and.(zz_unif01() .lt. (1 - (Test_Dru
                           1
Error: Operand of .not. operator at (1) is INTEGER(4)

.not.bDroppedコードを からに変更した方がよいことはわかっていますが(bDropped.eq.0)、これは生成されたコードであるため、単純ではありません。

-std=xxxさまざまなフラグを試しましたが、違いはありませんでした。

4

1 に答える 1

1

リンク先のページの最後の行は次のとおりです

ただし、if ステートメント [...] では、INTEGER 値の暗黙的な変換は行われません。

それと何か関係があると思います。

編集:これは完全な真実ではないようです。単純l1 = .not. 0に (when l1is a logical variable) を実行すると、受け取ったのと同じエラーが発生します。したがって、この場合も暗黙の変換はありません。

于 2011-05-03T22:17:15.087 に答える