インテル® Fortran コンパイラー 16.0 ユーザー・リファレンス・ガイド
CRAY* ポインターが他の変数とエイリアスしないようにコンパイラーに指示します。
Linux* および OS X*: | -safe-cray-ptr |
Windows*: | /Qsafe-cray-ptr |
なし
オフ |
コンパイラーは、Cray ポインターが他の変数とエイリアスすると仮定します。 |
このオプションは、Cray ポインターが他の変数とエイリアスしない (つまり、他の変数との間で共有するメモリーを指定しない) ようにコンパイラーに指示します。
Visual Studio*: [Data (データ)] > [Assume CRAY Pointers Do Not Share Memory Locations (CRAY ポインターがメモリーの場所を共有しないと仮定する)]
Eclipse*: なし
Xcode*: [Data (データ)] > [Assume CRAY Pointers Do Not Share Memory Locations (CRAY ポインターがメモリーの場所を共有しないと仮定する)]
なし
次の点に注意してください。
pointer (pb, b) pb = getstorage() do i = 1, n b(i) = a(i) + 1 enddo
デフォルトでは、コンパイラーは b と a がエイリアスされていると仮定します。このような仮定を回避するには、-safe-cray-ptr オプション (Linux* および OS X*) または /Qsafe-cray-ptr オプション (Windows*) を指定します。コンパイラーは b(i) と a(i) がお互いに独立しているものとして処理します。
しかし、変数を Cray ポインターでエイリアスする場合、このオプションを使用すると、正確な結果が得られません。次の例では、このオプションを使用しないでください。
pointer (pb, b) pb = loc(a(2)) do i=1, n b(i) = a(i) +1 enddo