2011-05-03 12 views
6

MANTIKSAL dönüşüm, ama bu hatayı alıyorum: Ben kodunu değiştirmek için daha iyi olacağını biliyorumINTEGER yapmak gfortran almak nasıl - <a href="http://gcc.gnu.org/onlinedocs/gfortran/Implicitly-convert-LOGICAL-and-INTEGER-values.html#Implicitly-convert-LOGICAL-and-INTEGER-values" rel="nofollow">this</a> göre, gfortran tamsayı-mantıksal dönüştürme yapabilirsiniz

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

.not.bDropped'dan (bDropped.eq.0)'a kadar, ancak bu kod oluşturulduğu için basit olmaz.

Çeşitli -std=xxx bayraklarını denedim ancak hiçbir fark yaratmadılar.

+0

Güçlü Yazma Dünyasına Hoş Geldiniz! :) Kod üretecinizi ayarlayın. Tek yol bu. – Wildcat

+0

@kemiisto: Grr ... Evet, yapmak zorunda olduğum şey bu. –

cevap

1

sen bağlantılı sayfadaki son satır

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

Ben onunla ilgili bir şey var tahmin ediyorum okur.

Düzenleme: Bu tüm gerçek gibi görünmemektedir. Basitçe l1 = .not. 0 yapıyor (l1 mantıksal bir değişkense), aldığınız aynı hatayı verir. Yani bu durumda da örtük bir dönüşüm yoktur.

+0

Çaba için teşekkürler. –

+0

Ben kullanmak için yeterli olacağını düşünüyorum == Eğer bir gibi düşünmek istiyorsanız gibi (eof (1) == 0) gibi bir şey – pooria

İlgili konular