我在我们使用的一个框架中找到了以下代码:
Rem = max (50.0, gm*diamj(i)/vism)
我正在寻找Rem的结果。 gm,diamj,vism应该是其他公式或字母数字名称。
答案 0 :(得分:2)
这是相当简单的:它只是从一个简单的公式计算Rem
,然后使用max
将结果限制为至少50的值,即
Rem = gm*diamj(i)/vism
if (Rem < 50.0)
Rem = 50.0
答案 1 :(得分:1)
有an answer给出了一个合理的想法,即问题中的线条意味着什么。但是,要理解的一件重要事情是,通常不可能在没有进一步背景的情况下隔离各行代码。
也就是说,从这一行你无法分辨将会发生什么。
虽然有一个内部函数max
返回两个参数的最大值,但我们不知道正在使用这个函数。
考虑案例
function max(a,b)
intrinsic min
max = min(a,b)
end function max
external max
Rem = max(1., 2.)
print*, Rem
end
这里使用了一个名为max
的外部函数,而不是内在函数。
还有
type max
real a,b
end type
type(max) Rem
Rem = max(1., 2.)
print*, Rem
end
这里使用了名为max
的派生类型的默认结构构造函数。 max
甚至可能是一般的,也可能是其他兴奋的特征。
现在,即使max
是内在函数,我们也不理解问题中的第二个参数:diamj
可以是数组或函数。参见
function diamj(i)
error stop
end function
Rem = max(1.,diamj(2))
print*, Rem
end
我们可以肯定地说,max
不是一个数组。但是,还有
integer :: max(2,2)=-1
Rem = max(1,2)
print*, Rem
end
与
非常不同Rem = max(1,2)
print*, Rem
end
可以说你不应该做任何这些事情,但你也不应该假设其他人没有。