-qsave

类别

语言元素控件

用途

指定局部变量的缺省存储类。

语法

读取语法图跳过可视语法图 -q nosavesave=alldefaultinit
@PROCESS:

@PROCESS SAVE[({ALL | DEFAULTINIT})] | NOSAVE

缺省值

此选项的缺省值取决于使用的调用命令:
  • xlf 用于编译 .f , .F , .f77或 .F77 文件,缺省值为 -qsave=all
  • 对于 f77fort77 调用命令,缺省值为 -qsave=all
  • 对于所有其他调用命令,缺省值为 -qnosave

参数

-qsave 子选项包括:

all
缺省存储类为 STATIC
defaultinit
对于指定了缺省初始化的派生类型变量,缺省存储类为 STATIC ,否则为 AUTOMATIC

alldefaultinit 子选项互斥。

用途

-qnosave 选项将缺省存储类设置为 AUTOMATIC。 对于多线程应用程序,此用法通常是必需的 以及使用 -qrecur 选项编译的子程序。

您可以指定 -qsave 选项以复制 FORTRAN 77 程序的行为。 xlff77fort77 命令已 -qsave 列示为 配置文件 中的缺省选项,以保留先前的行为。 缺省配置文件路径为 /opt/IBM/openxlf/17.1.1/etc/xlf.cfg.nn

示例

以下示例说明了 -qsave 选项对派生数据类型的影响:

        PROGRAM P
          CALL SUB
          CALL SUB
        END PROGRAM P

        SUBROUTINE SUB
          LOGICAL, SAVE :: FIRST_TIME = .TRUE.
          STRUCTURE /S/
            INTEGER I/17/
          END STRUCTURE
          RECORD /S/ LOCAL_STRUCT
          INTEGER LOCAL_VAR

          IF (FIRST_TIME) THEN
            LOCAL_STRUCT.I = 13
            LOCAL_VAR = 19
            FIRST_TIME = .FALSE.
          ELSE
            ! Prints " 13" if compiled with -qsave or -qsave=all
            ! Prints " 13" if compiled with -qsave=defaultinit
            ! Prints " 17" if compiled with -qnosave
            PRINT *, LOCAL_STRUCT
            ! Prints " 19" if compiled with -qsave or -qsave=all
            ! Value of LOCAL_VAR is undefined otherwise
            PRINT *, LOCAL_VAR
          END IF
        END SUBROUTINE SUB

相关信息