Sun Studio 12:Fortran 用户指南
View this book in:
Download this book in PDF (1657 KB)

4.1 源语言功能

Fortran 95 编译器提供 Fortran 95 标准的以下源语言功能和扩展。

4.1.1 续行限制

f95 允许 999 个续行(1 个初始行和 999 个续行)。对于固定格式,标准 Fortran 允许 19 个续行;对于自由格式,允许 39 个续行。

4.1.2 固定格式源代码行

在固定格式源代码中,行的长度可以超过 72 个字符,但忽略第 73 列以后的任何内容。标准 Fortran 95 仅允许 72 个字符长的行。

4.1.3 制表符格式

f95 固定格式源代码文本的定义如下:

  • 如果第 1 列至第 6 列的任一列中有制表符,都会使该行成为制表符格式的源代码行。

  • 制表符前面可以有注释指示符或语句编号。

  • 如果制表符是第一个非空字符,会出现以下情况:

    • 如果制表符后面的字符不是非零数字,则制表符后面的文本是初始行。

    • 如果第一个制表符后面是非零数字,则该行是续行。非零数字后面的文本是语句的下一个部分。

对于固定格式,f95 的缺省最大行长度是 72 列;对于自由格式,则为 132 列。使用 -e 编译器选项,可将固定格式源代码中的行扩展到 132 列。

示例:左侧的制表符格式源代码的处理方式如右侧所示。


!^IUses of tabs
^ICHARACTER *3 A = ’A’
^IINTEGER B = 2
^IREAL C = 3.0
^IWRITE(*,9) A, B, C
9^IFORMAT(1X, A3,
^I1 I3,
^I2 F9.1 )
^IEND
!       Uses of tabs
        CHARACTER *3 A = ’A’
        INTEGER B = 2
        REAL C = 3.0
        WRITE(*,9) A, B, C
9       FORMAT(1X, A3,
       1 I3,
       2 F9.1 )
        END

在以上示例中,"^I" 代表制表符,以 "1" 和 "2" 开头的行是续行。显示此代码的目的在于说明各种制表符情形,而不是提倡任一样式。

f95 中的制表符强制将行的其余部分填充到第 72 列。如果制表符出现在延续到下一行的字符串内,这可能会导致意外结果:

源文件:


^Iprint *, "Tab on next line
^I1this  continuation line starts with a tab."
^Iend

运行代码:


Tab on next line                                             this  continuation
 line starts with a tab.

4.1.4 采用的源代码格式

f95 采用的源代码格式取决于选项、指令和后缀。

具有 .f.F 后缀的文件采用固定格式。具有 .f90.f95.F90.F95 后缀的文件采用自由格式。

表 4–1 F95 源代码格式命令行选项

选项 

操作 

-fixed

将所有源文件解释为 Fortran 固定格式

-free

将所有源文件解释为 Fortran 自由格式

如果使用 -free-fixed 选项,则它覆盖文件名后缀。如果使用 !DIR$ FREE!DIR$ FIXED 指令,则它覆盖选项和文件名后缀。

4.1.4.1 混合格式

允许混合使用某些源代码格式。

  • 在同一个 f95 命令中,一些源文件可以是固定格式,而另一些源文件可以是自由格式。

  • 在同一个文件中,可以通过使用 !DIR$ FREE!DIR$ FIXED 指令将自由格式与固定格式混合使用。

  • 在同一个程序单元中,可以将制表符格式与自由格式或固定格式混合使用。

4.1.4.2 大小写

缺省情况下,Sun Fortran 95 不区分大小写。这意味着,变量 AbcDeF 的处理方式与将其拼写为 abcdef 时相同。要让编译器区别处理大写字母和小写字母,请使用 -U 选项进行编译。

4.1.5 限制和缺省值

  • 一个 Fortran 95 程序单元最多可定义 65,535 个派生类型和 16,777,215 个不同的常量。

  • 变量和其他对象的名称最多可包含 127 个字符,标准长度为 31 个字符。