gpt4 book ai didi

arrays - 分配相同大小的数组

转载 作者:行者123 更新时间:2023-12-04 01:35:25 26 4
gpt4 key购买 nike

我想分配一个数组 B与另一个数组具有相同的形状和相同的下限和上限 A .例如,我可以使用

allocate(B(lbound(A,1):ubound(A,1), lbound(A,2):ubound(A,2), lbound(A,3):ubound(A,3)))

但这不仅不优雅,而且对于(甚至)更高维度的数组也很烦人。

我希望更像
allocate(B(shape(A)))

这不起作用,即使这确实起作用,每个维度也会从 1 开始,这不是我想要的。

有谁知道我如何轻松地为任意数组维度分配一个数组,使其具有与另一个数组相同的大小和边界?

最佳答案

从 Fortran 2008 开始,现在有 MOLD可选参数:
ALLOCATE(B, MOLD=A)

The MOLD= specifier works almost in the same way as SOURCE=. If you specify MOLD= and source_expr is a variable, its value need not be defined. In addition, MOLD= does not copy the value of source_expr to the variable to be allocated.



来源: IBM Fortran Ref

关于arrays - 分配相同大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9030902/

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