下記のように,構造体の中にallocatable変数を用意して,その構造体の配列を作れば,異なる長さの配列の配列が作れる.結構便利と思う.
test.F90
program test
implicit none
type mytype
integer:: larr
real(8),allocatable:: arr(:)
end type mytype
integer:: i
type(mytype):: mt(2)
mt(1)%larr= 2
mt(2)%larr= 3
allocate(mt(1)%arr(at(1)%larr),&
mt(2)%arr(at(2)%larr))
print*, (mt(1)%arr(i),i=1,mt(1)%larr)
print*, (mt(2)%arr(i),i=1,mt(2)%larr)
end program test
上のプログラムを実行すると,
$ g95 test.F90
$ ./a.out
0. 0.
0. 0. 0.
となり,一応ちゃんと長さの異なる配列を持つ配列ができている.