Sam*_*Tan 3 arrays struct fortran
与使用不同类型的元素创建数组完全相同的问题,除了如何在Fortran中执行此操作?
假设我想要一个第一维的数组,一个integer类型,第二个real和第三个character(字符串)类型.是否有可能struct在Fortran中创建一个" "?
谢谢.
以下是派生类型使用的示例程序:
TYPE mytype
INTEGER,DIMENSION(3) :: ints
REAL,DIMENSION(5) :: floats
CHARACTER,DIMENSION(3) :: chars
ENDTYPE mytype
TYPE(mytype) :: a
a%ints=[1,2,3]
a%floats=[1,2,3,4,5]
a%chars=['a','b','c']
WRITE(*,*)a
END
Run Code Online (Sandbox Code Playgroud)
输出是:
1 2 3 1.000000 2.000000
3.000000 4.000000 5.000000 abc
Run Code Online (Sandbox Code Playgroud)
编辑:根据Jonathan Dursi的建议:
为了得到一个数组,其中每个元素都有一个int,float和char元素,你可以这样做:
TYPE mytype
INTEGER :: ints
REAL :: floats
CHARACTER :: chars
ENDTYPE mytype
TYPE(mytype),DIMENSION(:),ALLOCATABLE :: a
ALLOCATE(a(10))
Run Code Online (Sandbox Code Playgroud)
这样,你会引用您的元素,例如a(i)%ints,a(i)%floats,a(i)%chars.相关答案在具有相互依赖维度的Allocate动态数组中给出.