Fortran - 基本语法

  • 简述

    Fortran 程序由程序单元的集合组成,例如主程序、模块和外部子程序或过程。
    每个程序包含一个主程序,可能包含也可能不包含其他程序单元。主程序的语法如下 -
    
    program program_name
    implicit none      
    ! type declaration statements      
    ! executable statements  
    end program program_name
    
  • Fortran 中的一个简单程序

    让我们编写一个程序,将两个数字相加并打印结果 -
    
    program addNumbers
    ! This simple program adds two numbers
       implicit none
    ! Type declarations
       real :: a, b, result
    ! Executable statements
       a = 12.0
       b = 15.0
       result = a + b
       print *, 'The total is ', result
    end program addNumbers
    
    当您编译并执行上述程序时,它会产生以下结果 -
    
    The total is 27.0000000    
    
    请注意 -
    • 所有 Fortran 程序都以关键字开头program并以关键字结尾end program,后跟程序的名称。
    • implicit none语句允许编译器检查所​​有变量类型是否正确声明。您必须始终使用implicit none在每个程序的开始。
    • Fortran 中的注释以感叹号 (!) 开头,因为编译器会忽略此之后的所有字符(字符串除外)。
    • print *命令在屏幕上显示数据。
    • 代码行的缩进是保持程序可读性的好习惯。
    • Fortran 允许大写和小写字母。Fortran 不区分大小写,字符串文字除外。
  • 基本

    basic character setFortran 包含 -
    • 字母 A ... Z 和 a ... z
    • 数字 0 ... 9
    • 下划线 (_) 字符
    • 特殊字符 = : + 空格 - * / ( ) [ ] , . $ ' !" % & ; < > ?
    Tokens由基本字符集中的字符组成。标记可以是关键字、标识符、常量、字符串文字或符号。
    程序语句由标记组成。
  • 标识符

    标识符是用于标识变量、过程或任何其他用户定义项的名称。Fortran 中的名称必须遵循以下规则 -
    • 它不能超过 31 个字符。
    • 它必须由字母数字字符(所有字母和数字 0 到 9)和下划线 (_) 组成。
    • 名称的第一个字符必须是字母。
    • 名称不区分大小写
  • 关键词

    关键字是特殊的词,为语言保留。这些保留字不能用作标识符或名称。
    下表列出了 Fortran 关键字 -
    I/O 无关的关键字
    allocatable allocate assign assignment block data
    call case character common complex
    contains continue cycle data deallocate
    default do double precision else else if
    elsewhere end block data end do end function end if
    end interface end module end program end select end subroutine
    end type end where entry equivalence exit
    external function go to if implicit
    in inout integer intent interface
    intrinsic kind len logical module
    namelist nullify only operator optional
    out parameter pause pointer private
    program public real recursive result
    return save select case stop subroutine
    target then type type() use
    Where While
    I/O 相关的关键字
    backspace close endfile format inquire
    open print read rewind Write