ブロックの配列を定義したいと思います。各ブロックには、異なるサイズのノードの配列が含まれます。そこで、次のようなプログラムを作成しましたが、動作しません。FORTRANでこれをどのように行うことができるのでしょうか?他にもっと良い方法はありますか?基本的な難しさは、それらを割り当て可能にすることです!
program Mesh
implicit none
integer::i
type node
double precision::x,y
end type node
type block
integer::NX,NY
integer::ENB,WNB,SNB,NNB
integer::BlockType
type(node),dimension(:,:),allocatable::nodes
end type block
type(block),dimension(:),allocatable::blocks !Error:Syntax Error in Data Declaration
allocate(blocks(1:9)) ! here using 9 just to simplify it,error: allocate-object is not a nonprocedure pointer or allocatable object
do i=1,sizeof(blocks)
blocks(i)%NX=i*2 !Here I want to read in some value, but just use i*2 to simplify
blocks(i)%NY=i*2 !Here I want to read in some value, but just use i*2 to simplify
allocate(blocks(i)%nodes(0:NX,0:NY)) !error: not allocatable object either
end do
end program