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 高考送考祝福语简短