你能铸造一个完整的Fortran阵列吗?

时间:2015-02-13 15:28:26

标签: arrays casting fortran

以下代码是否适用于所有Fortran编译器?它在英特尔工作正常,但不确定它是否符合标准:

real, allocatable :: rArray(:)
double precision, allocatable :: dArray(:)

allocate(rArray(10))
rArray = 1.0

allocate(dArray, SOURCE=dble(rArray))

1 个答案:

答案 0 :(得分:1)

这个源分配(实际上不是强制转换,你创建一个临时的并将它复制到分配的数组)是标准允许的(至少是F2008),但我最近尝试过的gfortran版本不支持。对于gfortran,即使您根本没有更改类型,您当前也必须提供已分配数组的边界:

allocate(dArray(10), SOURCE=somearray)