5. template指示文¶
template指示文はテンプレートの名前と形状を宣言します.形状は多次元が可能です. テンプレートは,データマッピングとワークマッピングを行うために使われる仮想的な配列です.
5.1. 1次元テンプレート¶
- XMP/Cプログラム
#pragma xmp template t[10]
- XMP/Fortranプログラム
!$xmp template t(10)
10要素からなる1次元テンプレートtを宣言しています, XMP/Cでは,t[0]からt[9]が宣言されます. 同様に,XMP/Fortranでは,t(1)からt(10)が宣言されます.
ヒント
テンプレートのサイズはデータマッピングされる配列のサイズと同じが良いでしょう.
また,XMP/Fortranについてのみ,ベース言語であるFortranの配列と対応するために,テンプレートの開始番号を任意に定義できます.
- XMP/Fortranプログラム
!$xmp template t(-5:4)
t(-5)からt(4)を要素に持つ1次元テンプレートtを宣言しています,
注釈
C言語では,配列のインデックスは必ず0から始まるためテンプレートの開始番号も0であり,変更はできません.
5.2. 多次元テンプレート¶
- XMP/Cプログラム
#pragma xmp template t[10][20]
- XMP/Fortranプログラム
!$xmp template t(20,10)
10x20要素からなる2次元テンプレートtを宣言しています, XMP/Cでは,t[0][0]からt[9][19]が宣言されます. 同様に,XMP/Fortranでは,t(1,1)からt(20,10)が宣言されます.
5.3. 動的テンプレート¶
- XMP/Cプログラム
#pragma xmp template t[:]
- XMP/Fortranプログラム
!$xmp template t(:)
数字の代わりにコロンを指定した1次元テンプレートtを宣言しています. コロンはテンプレートのサイズは未定義であることを示します. このテンプレートのサイズは,template_fix指示文 によって動的に設定できます.