Fortran Coder

查看: 14516|回复: 7
打印 上一主题 下一主题

[子程序] fortran 数组作为参数传递

[复制链接]

1967

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1370 元
贡献
581 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

楼主
发表于 2017-12-18 08:33:21 | 显示全部楼层
按顺序对应,如果 Ct 的第一维和第二维大小都是 m 的话。相当于把 Ct(:,:,icx) 传递进去了,也就是 Ct 第三维度为 icx 时的所有第一维度和第二维度。

这种方式非常不建议使用。可以用 Ct(:,:,icx) 代替

1967

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1370 元
贡献
581 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2018-5-2 15:22:24 | 显示全部楼层
chiangtp,
是的,需要虚参是 assumed-shape array

因为我的习惯是所有参数数组,均为 assumed-shape array 或 pointer。所以我总是假设是这样。
构建一个 array descriptor 对于CPU来说,是很迅速的,我认为对于程序的可理解性、可阅读性来说,是值得的。

并且 assumed-shape 相比 pass address 来说,更可以让编译器进行越界检查。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-16 10:04

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表