Fortran 简明教程
Fortran - Data Types
Fortran 提供五种内在数据类型,但是,您还可以自己导出数据类型。这五种内在类型有——
-
Integer type
-
Real type
-
Complex type
-
Logical type
-
Character type
Integer Type
整型只能保存整数值。下面的示例将提取在常规的 4 字节整型中能保存的最大值——
program testingInt
implicit none
integer :: largeval
print *, huge(largeval)
end program testingInt
当您编译并执行以上程序时,将生成以下结果——
2147483647
请注意, huge() 函数可以给出特定整型数据类型中能保存的最大值。您也可以使用 kind 规范符指定字节数。如下示例所示——
program testingInt
implicit none
!two byte integer
integer(kind = 2) :: shortval
!four byte integer
integer(kind = 4) :: longval
!eight byte integer
integer(kind = 8) :: verylongval
!sixteen byte integer
integer(kind = 16) :: veryverylongval
!default integer
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
Real Type
它存储浮点数,例如 2.0、3.1415、-100.876 等。
传统上有两种不同的 real 类型:默认 real 类型和 double precision 类型。
然而,Fortran 90/95 通过我们会在本章学习的关于数字部分的 kind 规范符对 real 和 integer 数据类型的精度提供了更多的控制。
以下示例展示了 real 数据类型的使用方法——
program division
implicit none
! Define real variables
real :: p, q, realRes
! Define integer variables
integer :: i, j, intRes
! Assigning values
p = 2.0
q = 3.0
i = 2
j = 3
! floating point division
realRes = p/q
intRes = i/j
print *, realRes
print *, intRes
end program division
当您编译并执行以上程序时,将生成以下结果——
0.666666687
0
Complex Type
它用于存储复数。一个复数有两部分,即实部和虚部。两个连续的数值存储单元存储这两部分。
例如,复数 (3.0, -5.0) 等于 3.0 – 5.0i
我们将在关于数字的章节中更详细地讨论复数类型。