如何让gfortran做INTEGER - LOGICAL转换

Mik*_*vey 6 gfortran

根据这个,gfortran可以进行整数逻辑转换,但是我收到了这个错误:

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

我知道这将是更好的代码从改变.not.bDropped(bDropped.eq.0),但因为它生成的代码不会是简单的.

我试过各种各样的-std=xxx旗帜,但没有区别.

eri*_*ous 1

您链接到的页面上的最后一行显示

但是,if 语句中没有 INTEGER 值的隐式转换,[...]。

我猜这与它有关。

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