XL Fortran for AIX V8.1.1

ユーザーズ・ガイド


ディレクティブの移植性

XL Fortran は、他の Fortran 製品で使用できる多くのディレクティブをサポートしています。これによって、製品間での移植が簡単に実行できます。 XL Fortran バージョン 8.1.1 で、デフォルト値以外の trigger_constants がコードに含まれている場合、 -qdirective コンパイラー・オプションを使用して、それらを指定することができます。 たとえば、xx.f ファイルにある CRAY コードを移植する場合、以下のコマンドを使用して CRAY trigger_constant を追加することができます。

   xlf95 xx.f -qdirective=mic\$

固定ソース形式コードに関しては、XL Fortran バージョン 8.1.1 では、ディレクティブの trigger_head 部分の ! 値だけでなく、trigger_headCc、および * もサポートされています。

詳細については、-qdirective オプションを参照してください。

XL Fortran は多くのプログラミング用語を同義語としてサポートしています。これにより、他の Fortran 製品からのコードの移植が容易になります。サポートされている用語は、以下の表に示されているようにコンテキストに依存しています。


表 30. PARALLEL DO 文節およびその XL Fortran 同義語

PARALLEL DO 文節 XL Fortran 同義語
LASTLOCAL LASTPRIVATE
LOCAL PRIVATE
MP_SCHEDTYPE
および CHUNK
SCHEDULE
SAVELAST LASTPRIVATE
SHARE SHARED
NEW PRIVATE


表 31. PARALLEL DO スケジューリング・タイプおよびその XL Fortran 同義語

スケジューリング・タイプ XL Fortran 同義語
GSS GUIDED
INTERLEAVE STATIC(1)
INTERLEAVED STATIC(1)
INTERLEAVE(n) STATIC(n)
INTERLEAVED(n) STATIC(n)
SIMPLE STATIC


表 32. PARALLEL SECTIONS 文節およびその XL Fortran 同義語

PARALLEL SECTIONS 文節 XL Fortran 同義語
LOCAL PRIVATE
SHARE SHARED
NEW PRIVATE

NEW

|NEW ディレクティブを使用して、PARALLEL DO ループ |または PARALLEL SECTIONS 構造体でローカルでなければならない変数を指定します。 |このディレクティブは、PARALLEL DO ディレクティブおよび PARALLEL SECTIONS ディレクティブの PRIVATE 文節と同じ機能を果たします。

背景情報

NEW ディレクティブは、-qsmp コンパイラー・オプションが指定された場合のみ有効です。

構文



>>-NEW--named_variable_list------------------------------------><
 
 

NEW ディレクティブは、PARALLEL DO ディレクティブまたは PARALLEL SECTIONS ディレクティブの直後にする必要があります。

NEW ディレクティブを指定する場合、対応する PARALLEL DO または PARALLEL SECTIONS ディレクティブを文節なしで指定する必要があります。

PARALLEL DO ディレクティブの後に NEW ディレクティブが続く場合、 NEW ディレクティブの次の最初の非コメント行 (他のディレクティブは含まない) は DO ループにする必要があります。 この行は、無限 DO または DO WHILE ループであってはなりません。

NEW ディレクティブの named_variable_list にある変数名には、PARALLEL DO ディレクティブの PRIVATE 文節、または PARALLEL SECTIONS ディレクティブの PRIVATE 文節にある変数名と同じ制約事項が適用されます。「XL Fortran for AIX ランゲージ・リファレンス 」の PARALLEL DO ディレクティブと PARALLEL SECTIONS 構造体についての節を参照してください。

INTEGER A(10), C(10)
REAL B(10)
INTEGER FUNC(100)
!SMP$ PARALLEL DO
!SMP$ NEW I, TMP
        DO I = 1, 10
          TMP = A(I) + COS(B(I))
          C(I) = TMP + FUNC(I)
       END DO


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]