Fortran多维数组语法

时间:2013-07-25 17:59:28

标签: fortran

两个快速语法问题

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

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

其次,会

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

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

1 个答案:

答案 0 :(得分:5)

简短的回答对两者都不是。

REAL(4)不创建实数数组,它确定了REAL的KIND。我推荐你这个问题:Fortran 90 kind parameter来解释这个问题。

其次,thing1(:,:)未声明两个,它声明了两个。第一个是行,第二个是列。

你的第二个会创建一个3x3阵列“盒子”的实物== 4,这通常是C语言中的精确“浮动”。

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

此外,在创建数组时,使用DIMENSION参数是典型的,更明确一点:

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

然后可以在以下时间分配:

ALLOCATE(thing1(x,2,4))假设您仍希望每个位置有2列,x行和4个数组。