Oracle® Developer Studio 12.5:OpenMP API 用户指南

退出打印视图

更新时间: 2016 年 7 月
 
 

9.7 Fortran 问题

本节中描述的问题仅适用于 Fortran。

9.7.1 THREADPRIVATE 指令

如果要在两个连续的活动并行区域之间保持的线程(初始线程除外)的 threadprivate 对象中的数据值条件不能全部成立,则第二个区域中的可分配数组的分配状态可能为“当前未分配”。

9.7.2 SHARED 子句

如果将共享变量传递到非内在过程,可能导致该共享变量的值在过程引用之前被复制到临时存储中,并在过程引用之后又从临时存储中复制回到实际参数存储中。仅当以下三个有关实际参数的条件成立时,才可以使用中间的临时存储:

  1. 实际参数为以下参数之一:

    • 共享变量

    • 共享变量的子对象

    • 与共享变量关联的对象

    • 与共享变量子对象关联的对象

  2. 实际参数为以下参数之一:

    • 数组段

    • 带有向量下标的数组段

    • 假定形状数组

    • 指针数组

  3. 该实际参数的关联伪参数是显式形状数组或假定大小数组。

9.7.3 运行时库定义

此实现中同时提供了头文件 omp_lib.h 和模块文件 omp_lib

在 Oracle Solaris 平台中,采用参数的 OpenMP 运行时库例程是通过通用接口扩展的,因此可以适应不同 Fortran KIND 类型的参数。