4

これは正しくコンパイルされます:

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

コンパイルされないことを除いて、次のようなものを書きたいと思います。

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

gfortran のエラー メッセージ

Error: Invalid initialization expression for ALLOCATABLE component 'b' in structure constructor

正しい構文についての手がかりはありません。

割り当て可能な型でパラメーター変数を宣言しようとしても何の不満もありませんので、それを初期化する何らかの方法があるに違いないと思います!

4

2 に答える 2