Fortran 派生数据类型
示例
定义一个新类型mytype:
type :: mytype integer :: int real :: float end type mytype
声明一个mytype类型的变量:
type(mytype) :: foo
派生类型的组件可以使用%运算符1进行访问:
foo%int = 4 foo%float = 3.142
Fortran2003功能(尚未由所有编译器实现)允许定义参数化数据类型:
type, public :: matrix(rows, cols, k) integer, len :: rows, cols integer, kind :: k = kind(0.0) real(kind = k), dimension(rows, cols) :: values end type matrix
派生类型matrix具有以下的类型名称(它们是列在括号中列出了三个类型参数rows,cols和k)。在每个类型参数的声明中,必须指出它们是kind(kind)还是length(len)类型参数。
像固有类型一样,类型类型参数必须是常量表达式,而像固有字符变量的长度一样,长度类型参数在执行过程中可能会有所不同。
请注意,参数k具有默认值,因此在matrix声明类型变量时可以提供或省略它,如下所示
type (matrix (55, 65, kind=double)) :: b, c ! default parameter provided type (matrix (rows=40, cols=50) :: m ! default parameter omitted
派生类型的名称可能doubleprecision与任何内部类型都不相同。
许多人想知道为什么Fortran%用作组件访问运算符,而不是更常见的.。这是因为.已经采取的操作语法,即.not.,.and.,.my_own_operator.。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短