次に挙げる関数は f95 コンパイラにより組み込み関数と見なされますが、Fortran 95 規格の一部ではありません。
-xknown_lib=blas でコンパイルすると、コンパイラは続くルーチンへの呼び出しを組み込みルーチンと認識し、最適化を行い、Sun Performance Library 実装へリンクします。コンパイラはこれらのルーチンのユーザー供給バージョンを無視します。
表 2–2 BLAS 組み込み関数
関数 |
説明 |
---|---|
CAXPY DAXPY SAXPY ZAXPY |
スカラーの積およびベクトルプラスベクトル |
CCOPY DCOPY SCOPY ZCOPY |
ベクトルをコピー |
CDOTC CDOTU DDOT SDOT ZDOTC ZDOTU |
ドット積 (内部積) |
CSCAL DSCAL SSCAL ZSCAL |
ベクトルを伸縮 |
これらのルーチンの詳細については、『Sun Performance Library User's Guide』を参照してください。
次の表に、区間演算 (-xia) のコンパイル時に、コンパイラによって認識される組み込み関数を示します。詳細については、『Fortran 95 区間演算プログラミングリファレンス』を参照してください。
DINTERVAL |
DIVIX |
INF |
INTERVAL |
ISEMPTY |
MAG |
MID |
MIG |
NDIGITS |
QINTERVAL |
SINTERVAL |
SUP |
VDABS |
VDACOS |
VDASIN |
VDATAN |
VDATAN2 |
VDCEILING |
VDCOS |
VDCOSH |
VDEXP |
VDFLOOR |
VDINF |
VDINT |
VDISEMPTY |
VDLOG |
VDLOG10 |
VDMAG |
VDMID |
VDMIG |
VDMOD |
VDNINT |
VDSIGN |
VDSIN |
VDSINH |
VDSQRT |
VDSUP |
VDTAN |
VDTANH |
VDWID |
VQABS |
VQCEILING |
VQFLOOR |
VQINF |
VQINT |
VQISEMPTY |
VQMAG |
VQMID |
VQMIG |
VQNINT |
VQSUP |
VQWID |
VSABS |
VSACOS |
VSASIN |
VSATAN |
VSATAN2 |
VSCEILING |
VSCOS |
VSCOSH |
VSEXP |
VSFLOOR |
VSINF |
VSINT |
VSISEMPTY |
VSLOG |
VSLOG10 |
VSMAG |
VSMID |
VSMIG |
VSMOD |
VSNINT |
VSSIGN |
VSSIN |
VSSINH |
VSSQRT |
VSSUP |
VSTAN |
VSTANH |
VSWID |
WID |
|
|
|
f95 コンパイラは、Cray Research, Inc. などのほかのベンダーの Fortran コンパイラで定義された従来のさまざまな組み込み関数を認識します。これらは使用することはできません。
表 2–3 Cray CF90 およびほかのコンパイラの組み込み関数
関数 |
引数 |
説明 |
---|---|---|
CLOC |
([C=]c) |
文字オブジェクトのアドレスを取得 |
COMPL |
([I=]i) |
単語のビットごとの補数。代わりに NOT(i) を使用 |
COT |
([X=]x) |
総称余接 (次も同様: DCOT、QCOT) |
CSMG |
([I=]i,[J=]j,[K=]k) |
条件付スカラーマージ |
DSHIFTL |
([I=]i,[J=]j,[K=]k) |
i と j を k ビット、倍オブジェクト左シフト |
DSHIFTR |
([I=]i,[J=]j,[K=]k) |
i と j を k ビット、倍オブジェクト右シフト |
EQV |
([I=]i,[J=]j) |
論理等価。代わりに IOER(i,j) を使用 |
FCD |
([I=]i,[J=]j) |
文字ポインタを構築 |
GETPOS |
([I=]i) |
ファイル位置を取得 |
IBCHNG |
([I=]i, [POS=]j) |
単語の中で指定のビットへ変更する総称関数 |
ISHA |
([I=]i, [SHIFT=]j) |
総称演算シフト |
ISHC |
([I=]i, [SHIFT=]j) |
総称循環シフト |
ISHL |
([I=]i, [SHIFT=]j) |
総称左シフト |
LEADZ |
([I=]i) |
先頭の 0 ビットの数をカウント |
LENGTH |
([I=]i) |
転送された Cray 単語の数を戻す |
LOC |
([I=]i) |
変数のアドレスを戻す (「1.4.32 loc: オブジェクトのアドレスを戻す」を参照) |
NEQV |
([I=]i,[J=]j) |
論理非等価。代わりに IOER(i,j) を使用 |
POPCNT |
([I=]i) |
1 に設定されたビットの数をカウント |
POPPAR |
([I=]i) |
ビット生成パリティを演算 |
SHIFT |
([I=]i,[J=]j) |
左循環をシフト。代わりに ISHFT(i,j) または ISHFTC(i,j,k) を使用。 |
SHIFTA |
([I=]i,[J=]j) |
符号拡張子付きの演算シフト |
SHIFTL |
([I=]i,[J=]j) |
ゼロ充填で左シフト。代わりに ISHFT(i,j) または ISHFTC(i,j,k) を使用。 |
SHIFTR |
([I=]i,[J=]j) |
ゼロ充填で右シフト。代わりに ISHFT(i,j) または ISHFTC(i,j,k) を使用。 |
TIMEF |
() |
最初の呼び出し以降の経過時間を戻す |
UNIT |
([I=]i) |
BUFFERIN または BUFFEROUT の状態を戻す |
XOR |
([I=]i,[J=]j) |
排他的論理和。代わりに IOER(i,j) を使用 |
VMS FORTRAN 77 組み込み関数のリストについては、「2.3.4.2 メモリー関数」 も参照してください。
Fortran 95 コンパイラは、次の組み込み関数を認識します。
MPI_SIZEOF( x, size, error) 指定された変数、x のマシン表現のサイズをバイトで戻します。x が配列の場合、底要素のサイズを戻し、配列全体のサイズは戻しません。 |
|
x |
入力、変数または任意の型の配列 |
size |
出力、整数、x のバイト数でのサイズ |
error |
出力、整数、エラーが検出されるとエラーコードへ設定、検出されない場合はゼロ |
メモリー割り当て、再割り当て、割り当て解除関数 malloc()、realloc()、free() は f95 組み込み関数として実装されます。詳細については、「1.4.35 malloc、malloc64、 realloc、free: 記憶領域の割り当て/再割り当て/割り当て解除」を参照してください。