Jav*_*cia 7 fortran gfortran type-kinds
我目前正在使用旧代码,该代码iand使用不同类型的整数作为参数调用函数。下面是代码包含的一个小例子:
program test
integer*1 i
integer j, k
i = 1
j = 8
k = iand(i, j)
print *, k
end program test
Run Code Online (Sandbox Code Playgroud)
gfortran 8 及更早版本作为扩展能够使用不同类型的整数调用 iand(例如,请参阅此处),而此选项在 gfortran 9 中已删除(请参阅此站点)。例如,使用 gfortran 7.5.0:
gfortran-7 -o test test.f90 && ./test
0
Run Code Online (Sandbox Code Playgroud)
但是当用 gfortran 9.2.0 编译时,我得到:
gfortran -o test test.f90
...
Error: Arguments of ‘iand’ have different kind type parameters at (1)
Run Code Online (Sandbox Code Playgroud)
是否有新版本的选项gfortran可以让我按原样使用此代码?
不,没有。由于语义未明确指定,因此删除了此扩展,并且将代码修复为符合标准很简单。
请参阅https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81509
在你的情况下,类似
k = iand(int(i, kind(j)), j)
Run Code Online (Sandbox Code Playgroud)
希望是您所追求的。
| 归档时间: |
|
| 查看次数: |
515 次 |
| 最近记录: |