如何让gfortran做INTEGER - LOGICAL转换

时间:2011-05-03 18:04:51

标签: gfortran

根据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标志,但没有区别。

1 个答案:

答案 0 :(得分:1)

您链接到的网页上的最后一行是

However, there is no implicit conversion of INTEGER values in if-statements, [...].

我猜这与它有关。

编辑:这似乎不是全部真相。简单地执行l1 = .not. 0(当l1是逻辑变量时)会给出您收到的相同错误。所以在这种情况下也没有隐式转换。