小编ale*_*ero的帖子

如何使用可分配组件设置名为常量的派生类型的值?

这可以正确编译:

type t1
    integer :: a, b(2), c
end type t1
type(t1), parameter :: t1a = t1(1, [2, 3], 4)
Run Code Online (Sandbox Code Playgroud)

我想写这样的东西,除了它不能编译:

type t2
    integer :: a
    integer, allocatable :: b(:)
    integer :: c
end type t2
type(t2), parameter :: t2a = t2(1, [2, 3], 4) ! compile error
type(t2), parameter :: t2b = t2(1, [2, 3, 4], 5) ! compile error
Run Code Online (Sandbox Code Playgroud)

gfortran 错误消息

Error: Invalid initialization expression for ALLOCATABLE component 'b' in structure constructor
Run Code Online (Sandbox Code Playgroud)

没有给我任何关于正确语法的线索。

我没有收到任何关于尝试声明具有可分配类型的参数变量的抱怨,所以我认为必须有某种方法来初始化它!

fortran gfortran fortran2003

5
推荐指数
1
解决办法
2381
查看次数

标签 统计

fortran ×1

fortran2003 ×1

gfortran ×1