变量当成数组访问,不清楚是什么用法
REAL:: &cpmcal, xlcal, diffus, &
viscos, xka, venfac, conden, diffac, &
x
可以看到这里 cpmcal 和 x 都是浮点类型的变量,但是后续代码中出现
cpmcal(x) = cpd*(1.-max(x,qmin))+max(x,qmin)*cpv
这里 cpmcal(x) 表示将 cpmcal 当成数组来访问,并且 x 作为下标吗?
我尝试在工程中查找cpmcal,发现有如下宏定义:
#define CPMCAL(x) (cpd*(1.-max(x,qmin))+max(x,qmin)*cpv)
但是感觉也不能很好解释为什么宏定义接受一个赋值。
我是Fortran语言的新手,Google也没有找到非常合适的回答。如果还需要更多细节,请随时和我联系
老代码可能把数据类型和数组属性分开定义
program Test
implicit none
real a
dimension a(3)
a =
print*,a
end program 本帖最后由 Zhang_kg 于 2023-4-27 10:54 编辑
li913 发表于 2023-4-27 10:38
老代码可能把数据类型和数组属性分开定义
program Test
implicit none
https://s1.ax1x.com/2023/04/27/p9MoIL4.jpg
https://imgse.com/i/p9MoIL4
我感觉可能不是这个问题,因为定义和使用中间似乎没有定义数组的属性 那得看完整代码才能知道准确情况。 li913 发表于 2023-4-27 17:14
那得看完整代码才能知道准确情况。
但是涉及cpmcal 和 x似乎只有这两个地方,还有一个是
#define CPMCAL(x) (cpd*(1.-max(x,qmin))+max(x,qmin)*cpv)
还有可能是什么情况嘛
这是一个古老古老的语法叫做 语句函数,就是用一句话定义一个只在当前作用域生效的函数
Transpose 发表于 2023-4-27 19:32
这是一个古老古老的语法叫做 语句函数,就是用一句话定义一个只在当前作用域生效的函数
哇,感觉可能是这个语法
页:
[1]