2011-05-03 26 views
6

this,gfortran能做的整數邏輯轉換,但我得到這個錯誤:如何獲得gfortran做INTEGER - 邏輯轉換

    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標誌,但它們沒有區別。

+0

歡迎來到強大的打字世界! :)調整你的代碼生成器。這是唯一的方法。 – Wildcat 2011-05-12 12:25:33

+0

@kemiisto:Grr ...是的,那就是我必須要做的。 – 2011-05-12 13:30:48

回答

1

您鏈接到頁面上的最後一行顯示

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

我猜有什麼用它做。

編輯:這似乎不是全部的事實。簡單地做l1 = .not. 0(當l1是一個邏輯變量)給出了你收到的同樣的錯誤。所以在這種情況下也沒有隱式轉換。

+0

感謝您的努力。 – 2011-05-03 22:37:16

+0

我認爲這將足以使用==,如果你想考慮它作爲布爾 像: do while(eof(1)== 0)或類似的東西 – pooria 2016-03-29 11:36:35