Fortran Coder
标题: 变量当成数组访问,不清楚是什么用法 [打印本页]
作者: Zhang_kg 时间: 2023-4-27 10:02
标题: 变量当成数组访问,不清楚是什么用法
[Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode
REAL :: &
cpmcal, xlcal, diffus, &
viscos, xka, venfac, conden, diffac, &
x
可以看到这里 cpmcal 和 x 都是浮点类型的变量,但是后续代码中出现
[Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode
cpmcal(x) = cpd*(1.-max(x,qmin))+max(x,qmin)*cpv
这里 cpmcal(x) 表示将 cpmcal 当成数组来访问,并且 x 作为下标吗?
我尝试在工程中查找cpmcal,发现有如下宏定义:
[C] syntaxhighlighter_viewsource syntaxhighlighter_copycode
#define CPMCAL(x) (cpd*(1.-max(x,qmin))+max(x,qmin)*cpv)
但是感觉也不能很好解释为什么宏定义接受一个赋值。
我是Fortran语言的新手,Google也没有找到非常合适的回答。如果还需要更多细节,请随时和我联系
作者: li913 时间: 2023-4-27 10:38
老代码可能把数据类型和数组属性分开定义
[Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode
program Test
implicit none
real a
dimension a(3)
a = [1,2,3]
print*,a
end program
作者: Zhang_kg 时间: 2023-4-27 10:52
本帖最后由 Zhang_kg 于 2023-4-27 10:54 编辑


我感觉可能不是这个问题,因为定义和使用中间似乎没有定义数组的属性
作者: li913 时间: 2023-4-27 17:14
那得看完整代码才能知道准确情况。
作者: Zhang_kg 时间: 2023-4-27 19:15
但是涉及cpmcal 和 x似乎只有这两个地方,还有一个是
[Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode
#define CPMCAL(x) (cpd*(1.-max(x,qmin))+max(x,qmin)*cpv)
还有可能是什么情况嘛
作者: Transpose 时间: 2023-4-27 19:32
这是一个古老古老的语法叫做 语句函数,就是用一句话定义一个只在当前作用域生效的函数
作者: Zhang_kg 时间: 2023-4-27 19:58
哇,感觉可能是这个语法
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) |
Powered by Discuz! X3.2 |