gpt4 book ai didi

c++ - OR 逻辑运算符从 C++ 到 Fortran 的转换

转载 作者:太空狗 更新时间:2023-10-29 19:47:37 25 4
gpt4 key购买 nike

以下 C++ 逻辑运算符到 Fortran 90 (.f90) 的转换是什么?如果(vx 存在或 vy 存在)。这里 vxvy 是速度的分量

if(vx || vy){
vT=sqrt(vx*vx + vy*vy);
}

我试过跟随

if(vx .or. vy) then
vT = sqrt(vx*vx + vy*vy)
end if

但我收到错误:

operands of logical operator `.or.` at (1) are REAL(8)/REAL(8).

有人可以指导我吗?

最佳答案

C++ 版本隐式地将 vxvy 与零进行比较。

在 Fortran 中,您必须明确地这样做1:

if (vx /= 0 .or. vy /= 0) then

由于 if 语句看起来像是一种性能优化,因此可能值得质疑是否完全需要它,或者是否可以用对 vT 的无条件赋值来代替(这将设置如果 vxvy 都为零,则 vT 为零。

1 希望我没听错;已经很多年没有用 Fortran 编程了。

关于c++ - OR 逻辑运算符从 C++ 到 Fortran 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52714559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com