gpt4 book ai didi

arrays - 在 Fortran 中创建具有不同类型元素的数组

转载 作者:行者123 更新时间:2023-12-01 09:35:37 24 4
gpt4 key购买 nike

Create an array with elements of different types 完全相同的问题,除了如何在 Fortran 中做到这一点?

假设我想要一个第一维为 integer 的数组类型,第二个 real第三个 character (字符串)类型。是否也可以在 Fortran 中创建“struct”?

谢谢。

最佳答案

下面是一个使用派生类型的示例程序:

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

输出是:
        1            2            3    1.000000        2.000000     
3.000000 4.000000 5.000000 abc

编辑:根据 Jonathan Dursi 的建议:

为了有一个数组,其中每个元素都有一个 int、float 和 char 元素,您可以执行以下操作:
TYPE mytype
INTEGER :: ints
REAL :: floats
CHARACTER :: chars
ENDTYPE mytype

TYPE(mytype),DIMENSION(:),ALLOCATABLE :: a

ALLOCATE(a(10))

然后,您将引用您的元素,例如 a(i)%ints , a(i)%floats , a(i)%chars .
相关答案在 Allocate dynamic array with interdependent dimensions中给出.

关于arrays - 在 Fortran 中创建具有不同类型元素的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8557244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com