数据类型
优质
小牛编辑
140浏览
2023-12-01
Fortran提供了五种内部数据类型,但是,您也可以派生自己的数据类型。 五种内在类型是 -
- 整数类型
- 真实的类型
- 复杂类型
- 逻辑类型
- 字符类型
整数类型
整数类型只能包含整数值。 以下示例提取可以保存在通常的四字节整数中的最大值 -
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
真实的类型
它存储浮点数,例如2.0,3.1415,-100.876等。
传统上有两种不同的实际类型,默认的real类型和double precision类型。
但是,Fortran 90/95通过kind说明符提供了对实数和整数数据类型精度的更多控制,我们将在有关数字的章节中进行研究。
以下示例显示了实际数据类型的使用 -
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
复杂类型
这用于存储复数。 复数有两部分,实部和虚部。 两个连续的数字存储单元存储这两个部分。
例如,复数(3.0,-5.0)等于3.0 - 5.0i
我们将在Numbers章节中更详细地讨论复杂类型。
逻辑类型
只有两个逻辑值: .true. 和.false.
字符类型
字符类型存储字符和字符串。 字符串的长度可以由len说明符指定。 如果未指定长度,则为1。
For example,
character (len = 40) :: name
name = “Zara Ali”
表达式name(1:4)将给出子串“Zara”。
隐式打字
较旧版本的Fortran允许一种称为隐式类型的功能,即您不必在使用前声明变量。 如果未声明变量,则其名称的第一个字母将确定其类型。
以i,j,k,l,m或n开头的变量名称被认为是整数变量,其他变量是实变量。 但是,您必须声明所有变量,因为它是良好的编程习惯。 为此你用声明开始你的程序 -
implicit none
此语句将关闭隐式类型。