Fortran - 数据类型
Fortran 提供五种内在数据类型,但是您也可以派生自己的数据类型。 五种内在类型是 −
- 整数类型
- 实数类型
- 复数类型
- 逻辑类型
- 字符类型
整数类型
整数类型只能保存整数值。 以下示例提取通常的四字节整数中可以保存的最大值 −
program testingInt implicit none integer :: largeval print *, huge(largeval) end program testingInt
当你编译并执行上面的程序时,它会产生以下结果 −
2147483647
请注意,huge() 函数给出特定整数数据类型可以容纳的最大数字。 您还可以使用 kind 说明符指定字节数。 下面的例子演示了这一点 −
program testingInt implicit none !两字节整数 integer(kind = 2) :: shortval !四字节整数 integer(kind = 4) :: longval !八字节整数 integer(kind = 8) :: verylongval !十六字节整数 integer(kind = 16) :: veryverylongval !默认整数 integer :: defval print *, huge(shortval) print *, huge(longval) print *, huge(verylongval) print *, huge(veryverylongval) print *, huge(defval) end program testingInt
当你编译并执行上面的程序时,它会产生以下结果 −
32767 2147483647 9223372036854775807 170141183460469231731687303715884105727 2147483647
实数类型
它存储浮点数,例如2.0、3.1415、-100.876等。
传统上有两种不同的实数类型,默认的实数类型和双精度类型。
但是,Fortran 90/95 通过 kind 说明符提供了对实数和整数数据类型精度的更多控制,我们将在数字章节中研究该说明符。
下面的例子展示了实数数据类型的使用 −
program division implicit none ! 定义实数变量 real :: p, q, realRes ! 定义整型变量 integer :: i, j, intRes ! 赋值 p = 2.0 q = 3.0 i = 2 j = 3 ! 浮点除法 realRes = p/q intRes = i/j print *, realRes print *, intRes end program division
当你编译并执行上面的程序时,它会产生以下结果 −
0.666666687 0
复数类型
这用于存储复数。 复数有两部分:实部和虚部。 两个连续的数字存储单元存储这两部分。
例如,复数 (3.0, -5.0) 等于 3.0 – 5.0i
我们将在"数字"章节中更详细地讨论复杂类型。
逻辑类型
只有两个逻辑值:.true. 和 .false.
字符类型
字符类型存储字符和字符串。 字符串的长度可以通过 len 说明符指定。 如果不指定长度,则为 1。
例如,
character (len = 40) :: name name = “Zara Ali”
表达式 name(1:4) 将给出子字符串"Zara"。
Implicit Typing
旧版本的 Fortran 允许一种称为隐式类型的功能,即您不必在使用前声明变量。 如果未声明变量,则其名称的第一个字母将确定其类型。
以 i、j、k、l、m 或 n 开头的变量名称被认为是整型变量,其他变量是实型变量。 但是,您必须声明所有变量,因为这是良好的编程习惯。 为此,您可以使用以下语句启动您的程序 −
implicit none
此语句关闭隐式类型。