2016-07-11 23 views
1

在我的程序中,我需要一个多维数组,其中二维和三维的长度取决于第一维的索引。这对于Fortran 90中的普通数组来说并不是直接可能的。Fortran中是否有相当于Class(从这个意义上说)可供我使用的类?Fortran相当于

+1

是它严格要求使用25年前的Fortran标准,或者您是否在liber要选择更新的版本? –

+0

@AlexanderVogt:我正在使用FORTRAN 90. – user35952

回答

0

是的,这可以通过使用派生类型

type myType 
    integer :: index 
    integer,allocatable :: arr(:,:) 
end type 

您可以通过

type(myType) :: var 
var%index = 10 

分配的标量和数组同样分配:

allocate(var%arr(var%index, var%index)) 
+0

%意思是什么? – user35952

+0

使用'%'可以访问Fortran中派生类型的元素。 –

+0

如果我在程序中定义了某种类型,我是否也可以在子例程中定义该类型的变量(而不必在子例程中再次定义类型)? – user35952