簡體   English   中英

使用新的 gfortran 版本具有不同種類參數的 iand

[英]iand with different kind parameters using new gfortran version

我目前正在使用舊代碼,該代碼使用不同類型的整數作為參數調用iand函數。 下面是代碼包含的一個小例子:

program test
    integer*1 i
    integer j, k 

    i = 1
    j = 8 

    k = iand(i, j)
    print *, k
end program test

gfortran 8 及更早版本作為擴展能夠使用不同類型的整數調用 iand(例如,請參見此處),而此選項在 gfortran 9 中已刪除(請參見本站點)。 例如,使用 gfortran 7.5.0:

gfortran-7 -o test test.f90 && ./test
       0

但是當用 gfortran 9.2.0 編譯時,我得到:

gfortran -o test test.f90
...
Error: Arguments of ‘iand’ have different kind type parameters at (1)

新版本的gfortran可以讓我按原樣使用此代碼?

不,沒有。 由於沒有很好地指定語義,因此刪除了此擴展,並且將代碼修復為符合標准很簡單。

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81509

在你的情況下,像

k = iand(int(i, kind(j)), j)

希望是你所追求的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM