位置:首页 > > Fortran数据类型

Fortran数据类型

Fortran语言提供了五种内在数据类型,但是,也可以得到自己的数据类型。这五个固有的类型有:

  • 整型
  • 实型
  • 复杂类型
  • 逻辑类型
  • 字符类型

整型

整数类型只能容纳整数值。下面的示例中提取,可以在通常为4字节整数保存最大值:

program testingInt
implicit none

   integer :: largeval
   print *, huge(largeval)
   
end program testingInt

当编译并执行上述程序也将产生以下结果:

2147483647

需要注意的是huge()函数,可以通过特定的整数数据类型可以保持的最大数目。还可以指定使用的字节数。下面的例子说明了这一点:

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等

传统上有两种不同的实际类型,默认实型和双精度型。

然而,Fortran语言90/95提供了更多的控制权实数和整数数据类型,通过种类说明,我们将在对数的章节研究精度。

下面的例子展示了如何使用实数类型:

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

我们将更详细地讨论复杂类型,在数字章节。

逻辑类型

只有两个逻辑值:.true. 和.false

字符类型

字符类型存储字符和字符串。字符串的长度可以通过len个符来指定。如果没有指定长度,它是1。

例如,

character (len=40) :: name  
name = Zara Ali

表达式name(1:4)将得到的子串“Zara”。

隐式类型

Fortran语言的旧版本允许一个叫做隐式类型,也就是说,不必在使用前声明变量的功能。如果一个变量没有声明,则其名称为第一个字母,将确定其类型。

其中i的变量名以 i, j, k, l, m, 或 n 开始,被认为是为整数变量,其余都是实型变量。但是,必须声明所有的变量,因为它是良好的编程习惯。开始程序如下:

implicit none

这条语句将关闭隐式类型。