Fortran - 数据类型

  • 简述

    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
    我们将在数字章节中更详细地讨论复数类型。
  • 逻辑类型

    只有两个逻辑值:.true..false.
  • 字符类型

    字符类型存储字符和字符串。字符串的长度可以由 len 说明符指定。如果没有指定长度,则为 1。
    For example,
    
    character (len = 40) :: name  
    name = “Alex Moo”
    
    表达方式,name(1:4)将给出子字符串“Alex”。
  • 隐式输入

    旧版本的 Fortran 允许一种称为隐式类型的功能,即,您不必在使用前声明变量。如果未声明变量,则其名称的第一个字母将确定其类型。
    以 i、j、k、l、m 或 n 开头的变量名称被认为是整数变量,其他变量是实变量。但是,您必须声明所有变量,因为这是良好的编程习惯。为此,您可以使用以下语句开始您的程序 -
    
    implicit none
    
    此语句关闭隐式类型。