fortran - iand 使用新的 gfortran 版本具有不同类型的参数
问题描述
我目前正在使用旧代码,它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)
希望是你所追求的。
推荐阅读
- c# - 使用Openxml c#在word文档中设置下拉列表或列表项
- javascript - JQuery on() 不会在附加元素上触发
- c# - 搜索多个字段 query_string 没有返回结果 - ElasticSearch
- react-native - 将 Expo React Native 应用程序中的推送通知一次发送到多个设备?
- git - 在 4d58e4c 之后无法获得关于 ffserver.c 文件的 git commit?
- reactjs - 可以删除存储在 localStorage 中的 Parse.User.current()
- powershell - 如何让 PowerShell 执行脚本中的所有行?(而不是在 dotnet 上休息一下?)
- c# - 当我 dotnet 发布我的 .NET Core 3 项目时,为什么我的条件编译符号不起作用?
- mysql - 从具有多个分组和最高日期的表中选择信息
- mysql - 我的 AFTER INSERT 触发器不断收到 SQL 错误 (1064)