gpt4 book ai didi

fortran - gfortran 提示可分配组件的结构构造函数中的元素等级

转载 作者:行者123 更新时间:2023-12-02 10:44:47 26 4
gpt4 key购买 nike

考虑以下代码:

subroutine tao_show_this ()
implicit none

type b_struct
integer, pointer :: good_user => null()
end type

type a_struct
type (b_struct), allocatable :: value_ptr(:)
end type

type (a_struct) a
a = a_struct()

end subroutine

使用 gfortran 5 或 7 编译给出:

gfortran -c test.f90
test.f90:4:13:

type b_struct
1
Error: The rank of the element in the structure constructor at (1) does not match that of the component (0/1)

此代码可以通过 ifort 正常编译。这是 gfortran 错误还是我的代码有问题?

最佳答案

对于默认结构构造函数,能够省略可分配组件的值是 Fortran 2008 中引入的一项功能。

gfortran 确实 not currently support this feature (“未实现的功能”)。

要让组件不被分配,同时仍为构造函数提供值,请引用 null:

a = a_struct(NULL())

正如 DavidS 所评论的,它的存在形式为 a reported bug .

关于fortran - gfortran 提示可分配组件的结构构造函数中的元素等级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52712245/

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