Oracle® Developer Studio 12.5:Fortran 用户指南

退出打印视图

更新时间: 2016 年 6 月
 
 

4.8 指令

编译器指令指示编译器执行某些特殊的操作。指令又称 pragma

可以将编译器指令作为一个或多个文本行插入到源程序中。每一行看起来就像注释一样,但其中包含的其他字符可将其标识为不仅仅是该编译器的注释。对于大多数其他编译器,它被处理为注释,因此具有一定的代码移植性。

有关 Fortran 指令的完整摘要,请参见Fortran 指令摘要

4.8.1 特殊 f95 指令行的格式

除了命令行帮助中介绍的指令外,f95 还可识别其自己的特殊指令。 这些指令使用以下语法:

!DIR$ d1, d2, …

4.8.1.1 固定格式源代码

  • CDIR$!DIR$ 放在第 1 至第 5 列中。

  • 指令在第 7 列及后面的列中列出。

  • 忽略第 72 列后面的列。

  • 初始指令行的第 6 列为空。

  • 连续指令行的第 6 列非空。

4.8.1.2 自由格式源代码

  • 将后跟空格的 !DIR$ 放在行中的任意位置。

    !DIR$ 字符是行中的第一个非空字符(实际上就是非空白)。

  • 指令在空格后面列出。

  • 初始指令行中,紧跟在 !DIR$ 之后的位置中为空格、制表符或换行符。

  • 连续指令行中,紧跟在 !DIR$ 之后的位置中为空格、制表符或换行符以外的字符。

因此,第 1 至第 5 列中的 !DIR$ 既用于自由格式源代码又用于固定格式源代码。

4.8.2 FIXEDFREE 指令

这些指令指定指令行后面行的源代码格式。

4.8.2.1 作用域

它们适用于所在文件的其余部分,或者在遇到下一个 FREEFIXED 指令之前的部分。

4.8.2.2 用法

  • 它们用于切换源文件中的源代码格式。

  • 它们用于切换 INCLUDE 文件的源代码格式。您可以将指令插入在 INCLUDE 文件的开头。在处理 INCLUDE 文件后,源代码格式恢复为处理 INCLUDE 文件之前使用的格式。

4.8.2.3 限制

FREE/FIXED 指令:

  • 每个指令必须单独出现在编译器指令行中(没有续行)。

  • 每个指令可以出现在源代码中的任意位置。其他指令必须出现在它们所影响的程序单元中。

示例: 一个 FREE 指令。

!DIR$ FREE
    DO i = 1, n
        a(i) = b(i) * c(i)
    END DO

4.8.3 并行化指令

并行化指令是一种特殊的注释,它指示编译器尝试并行处理代码区域。 Sun 和 Cray 样式并行化指令现已过时。应首选使用 OpenMP 指令和并行化模型。Oracle Developer Studio 12.5:OpenMP API 用户指南中介绍了 OpenMP 并行化。