Fortran多维数组语法



两个快速语法问题

real(4), ALLOCATABLE:: thing1(:,:)

创建一个包含2列的2D数组,这是一个尚未定义的行数,其中每个元素都是4个实数的数组?

其次,

real(4) box(3,3),versions,revert

创建两个长度为4的数组和大小为3x3的2D数组,其中每个元素都是长度为4。

简短的回答是两者都不。

REAL(4)不创建REAL的数组,它确定REAL的KIND。我请您参考这个问题:Fortran 90类参数来解释这一点。

其次,thing1(:,:)不声明两个,它声明两个维度。第一个是行,第二个是列。

您的第二个方法是创建一个类型为==4的实数的3x3数组"box",这在C语言中通常是精度"float"。

我不确定versions,revert应该是什么。

此外,在创建数组时,使用DIMENSION参数是典型的,而且更明确一点,如下所示:

REAL(4),ALLOCATABLE,DIMENSION(:,:,:) :: thing1

然后可以稍后分配为:

ALLOCATE(thing1(x,2,4))假设您仍然需要2列、x行和每个位置的4个数组。

最新更新