fortran类型成员数组,取决于整型

fortran类型成员数组,取决于整型,fortran,fortran90,fortran95,Fortran,Fortran90,Fortran95,我想在Fortran中定义一个类型,它有一个整数成员和一个数组成员,取决于该整数 program example IMPLICIT NONE type m integer :: mSize = 2 double precision, dimension(mSize) :: mArray end type m type(m) :: test !do stuff end program 我不想使用模块(是的,我知道我在浪费内存!),因为让f2py和模块一起工作对我来说并不合适(

我想在Fortran中定义一个类型,它有一个整数成员和一个数组成员,取决于该整数

program example
IMPLICIT NONE
type m
    integer :: mSize = 2
    double precision, dimension(mSize) :: mArray
end type m

type(m) :: test
!do stuff 
end program
我不想使用模块(是的,我知道我在浪费内存!),因为让f2py和模块一起工作对我来说并不合适(从技术上讲,这就是我正在做的,但这意味着为了对f2py隐藏模块,我有一个子程序,它基本上是在不处理数据的情况下获取数据并传递数据,我厌倦了额外的开销,因此我想通过从额外的文件中包含一个类型来解决这个问题)


哦,上面的代码没有编译,gfortran抱怨说msize没有隐式类型。

我不知道你是否可以在Fortran 90中这样做。在Fortran 2003中,你可以定义构造函数,这样你的
可分配
数组作为类成员就可以按给定的大小分配。在Fortran 2003中,你也可以有参数化的派生类型。你可以吗您必须在运行时更改该值?是否需要同时定义具有不同值的更多类型?或者您想要一个类型,但同时具有不同值的实例?所有这些都会影响最佳设计选择。gfortran尚不支持参数化派生类型,并且在不久的将来将不支持这些类型。是否需要同时定义更多具有不同值的类型吗?->这是我当前使用的| |或者您想要一种类型,但同时具有不同值的实例吗?->这基本上是我想要的| |参数化类型可以很好地解决我的问题,但正如您所说,目前在gfortran中不可用,并且许可intel或pgi是不可用的不是一个选项。无论如何,输入的thx。