Sun Studio 12: Fortran ライブラリ・リファレンス

第 2 章 Fortran 95 組み込み関数

この章では、f95 コンパイラで認識される組み込み関数名を一覧表示します。

2.1 標準の Fortran 95 総称組み込み関数

この節では、Fortran 95 規格で使用される Fortran 95 総称組み込み関数を機能によってグループ分けしています。

ここで示す引数は、cmplx(Y=B, KIND=M, X=A) のようにキーワード形式で使用される場合、引数キーワードとして使用できる名前です。

これらの総称組み込み手続きの仕様についての詳細は、Fortran 95 規格を参照してください。

2.1.1 引数存在問合せ関数

総称組み込み名 

説明 

PRESENT

引数の存在 

2.1.2 数値関数

総称組み込み名 

説明 

ABS (A)

絶対値 

AIMAG (Z)

複素数の虚部 

AINT (A [, KIND])

整数へ切り捨て 

ANINT (A [, KIND])

四捨五入 

CEILING (A [, KIND])

数以上の最小整数 

CMPLX (X [, Y, KIND])

複素数型への変換 

CONJG (Z)

複素数の共役 

DBLE (A)

倍精度実数型への変換 

DIM (X, Y)

超過分 

DPROD (X, Y)

倍精度の実数積 

FLOOR (A [, KIND])

数以下の最大整数 

INT (A [, KIND])

整数型への変換 

MAX (A1, A2 [, A3,...])

最大値 

MIN (A1, A2 [, A3,...])

最小値 

MOD (A, P)

剰余関数 

MODULO (A, P)

モジュロ関数 

NINT (A [, KIND])

四捨五入の整数化 

REAL (A [, KIND])

実数型への変換 

SIGN (A, B)

符号の付け替え 

2.1.3 数学関数

総称組み込み名 

内容の説明 

ACOS (X)

逆余弦 

ASIN (X)

逆正弦 

ATAN (X)

逆正接 

ATAN2 (Y, X)

逆正接 

COS (X)

余弦 

COSH (X)

双曲線余弦 

EXP (X)

指数関数 

LOG (X)

自然対数 

LOG10 (X)

共通対数 (底 10) 

SIN (X)

正弦 

SINH (X)

双曲線正弦 

SQRT (X)

平方根 

TAN (X)

正接 

TANH (X)

双曲線正接 

2.1.4 文字関数

総称組み込み名 

説明 

ACHAR (I)

ASCII 照合手順での指定位置にある文字 

ADJUSTL (STRING)

左整合 

ADJUSTR (STRING)

右整合 

CHAR (I [, KIND])

処理系照合手順での指定位置にある文字 

IACHAR (C)

ASCII 照合手順での文字の位置 

ICHAR (C)

処理系照合手順での文字の位置 

INDEX (STRING, SUBSTRING [, BACK])

部分列の開始位置 

LEN_TRIM (STRING)

後続の空白文字なしの長さ 

LGE (STRING_A, STRING_B)

字句的に等しいか大きい 

LGT (STRING_A, STRING_B)

字句的に大きい 

LLE (STRING_A, STRING_B)

字句的に等しいか小さい 

LLT (STRING_A, STRING_B)

字句的に小さい 

REPEAT (STRING, NCOPIES)

反復連結 

SCAN (STRING, SET [, BACK])

集合内の文字に対し文字列を走査 

TRIM (STRING)

後続の空白文字を削除 

VERIFY (STRING, SET [, BACK])

1 つの文字列の文字集合を検証 

2.1.5 文字問合せ関数

総称組み込み名 

説明 

LEN (STRING)

文字要素の長さ 

2.1.6 種別関数

総称組み込み名 

説明 

KIND (X)

kind 型パラメータ値 

SELECTED_INT_KIND (R)

指定した範囲の整数 kind 型パラメータ値 

SELECTED_REAL_KIND ([P, R])

指定した精度と範囲の実数 kind 型パラメータ値 

2.1.7 論理関数

総称組み込み名 

説明 

LOGICAL (L [, KIND])

異なる kind 型パラメータで論理型オブジェクトを変換 

2.1.8 数値問合せ関数

総称組み込み名 

説明 

DIGITS (X)

数体系の有効数字の数 

EPSILON (X)

1 に比較した場合おおよそ無視可能な数 

HUGE (X)

数体系の最大数 

MAXEXPONENT (X)

数体系の最大指数 

MINEXPONENT (X)

数体系の最小指数 

PRECISION (X)

10 進数精度 

RADIX (X)

数体系の底 

RANGE (X)

10 進数の指数範囲 

TINY (X)

数体系の最小の正の数 

2.1.9 ビット問合せ関数

総称組み込み名 

説明 

BIT_SIZE (I)

数体系のビット数 

2.1.10 ビット操作関数

総称組み込み名 

説明 

BTEST (I, POS)

ビットの検査 

IAND (I, J)

論理 AND 

IBCLR (I, POS)

ビットを消去 

IBITS (I, POS, LEN)

ビット抽出 

IBSET (I, POS)

ビットを設定 

IEOR (I, J)

排他的論理和 

IOR (I, J)

包括的論理和 

ISHFT (I, SHIFT)

論理シフト 

ISHFTC (I, SHIFT [, SIZE])

循環シフト 

NOT (I)

論理補数 

2.1.11 転換関数

総称組み込み名 

説明 

TRANSFER (SOURCE, MOLD [, SIZE])

第 1 引数を第 2 引数の型として処理 

2.1.12 浮動小数点操作関数

総称組み込み名 

説明 

EXPONENT (X)

数体系数の指数部 

FRACTION (X)

1 つの数の小数部 

NEAREST (X, S)

指定された方向にあるもっとも近い異なる処理系の数 

RRSPACING (X)

指定された数に近い数体系数の相対空間の逆 

SCALE (X, I)

実数に底を乗算して整数累乗へ 

SET_EXPONENT (X, I)

1 つの数の指数部を設定 

SPACING (X)

指定された数に近い数体系数の絶対空間 

2.1.13 ベクトルおよび行列の乗算関数

総称組み込み名 

説明 

DOT_PRODUCT (VECTOR_A, VECTOR_B)

2 つの一次元配列の内積 

MATMUL (MATRIX_A, MATRIX_B)

行列の乗算 

2.1.14 配列集計関数

総称組み込み名 

説明 

ALL (MASK [, DIM])

すべての値が真のとき、真 

ANY (MASK [, DIM])

任意の値が真のとき、真 

COUNT (MASK [, DIM])

配列の真の要素の数 

MAXVAL (ARRAY, DIM [, MASK])

または MAXVAL (ARRAY [, MASK])

配列の最大値 

   

MINVAL (ARRAY, DIM [, MASK])

または MINVAL (ARRAY [, MASK])

配列の最小値 

   

PRODUCT (ARRAY, DIM [, MASK])

または PRODUCT (ARRAY [, MASK])

配列要素の積 

   

SUM (ARRAY, DIM [, MASK])

または SUM (ARRAY [, MASK])

配列要素の合計 

2.1.15 配列問合せ関数

総称組み込み名 

説明 

ALLOCATED (ARRAY)

配列割り付け状態 

LBOUND (ARRAY [, DIM])

配列の次元下限 

SHAPE (SOURCE)

配列またはスカラーの形状 

SIZE (ARRAY [, DIM])

配列の要素の合計数 

UBOUND (ARRAY [, DIM])

配列の次元下限 

2.1.16 配列構成関数

総称組み込み名 

説明 

MERGE (TSOURCE, FSOURCE, MASK)

選別によるマージ 

PACK (ARRAY, MASK [, VECTOR])

配列を選別下の一次元配列へパック 

SPREAD (SOURCE, DIM, NCOPIES)

次元を追加することにより、配列を複製 

UNPACK (VECTOR, MASK, FIELD)

一次元配列を選別下の配列へアンパック 

2.1.17 配列再形成関数

総称組み込み名 

説明 

RESHAPE (SOURCE, SHAPE[, PAD, ORDER])

配列を再形成 

2.1.18 配列操作関数

総称組み込み名 

説明 

CSHIFT (ARRAY, SHIFT [, DIM])

循環シフト 

EOSHIFT (ARRAY, SHIFT [, BOUNDARY, DIM]

切り捨て桁送り 

TRANSPOSE (MATRIX)

二次元配列の入れ替え 

2.1.19 配列内位置関数

総称組み込み名 

説明 

MAXLOC (ARRAY, DIM [, MASK])

または MAXLOC (ARRAY [, MASK])

配列の最大値の位置 

   

MINLOC (ARRAY, DIM [, MASK])

または MINLOC (ARRAY [, MASK])

配列の最小値の位置 

2.1.20 ポインタ結合状態問合せ関数

総称組み込み名 

説明 

ASSOCIATED (POINTER [, TARGET])

関連付け状態問い合わせまたは比較 

NULL ([MOLD])

分離したポインタを戻す 

2.1.21 システム環境手続き

総称組み込み名 

説明 

COMMAND_ARGUMENT_COUNT ()

コマンド引数の個数を返す 

GET_COMMAND ([COMMAND, LENGTH, STATUS])

プログラムを呼び出したコマンド全体を返す 

GET_COMMAND_ARGUMENT (NUMBER [, VALUE, LENGTH, STATUS])

コマンド引数を返す 

GET_ENVIRONMENT_VARIABLE (NAME [, VALUE, LENGTH, STATUS, TRIM_NAME])

環境変数値を取得する 

2.1.22 組み込みサブルーチン

総称組み込み名 

説明 

CPU_TIME (TIME)

処理系の時間を取得 

DATE_AND_TIME ([DATE, TIME,

ZONE, VALUES])

日付と時間を取得 

   

MVBITS (FROM, FROMPOS,

LEN, TO, TOPOS)

1 つの整数から別の整数へとビットをコピー 

   

RANDOM_NUMBER (HARVEST)

擬似乱数を戻す 

RANDOM_SEED ([SIZE, PUT, GET])

擬似乱数ジェネレータを初期化または再開 

SYSTEM_CLOCK ([COUNT,

COUNT_RATE, COUNT_MAX])

システム時間からデータを取得 

2.1.23 組み込み関数の個別名

表 2–1 Fortran 95 組み込み関数の個別名および総称名

 

個別名 

総称名 

引数の型 

 

ABS (A)

ABS (A)

基本実数 

 

ACOS (X)

ACOS (X)

基本実数 

 

AIMAG (Z)

AIMAG (Z)

基本複素数 

 

AINT (A)

AINT (A)

基本実数 

 

ALOG (X)

LOG (X)

基本実数 

 

ALOG10 (X)

LOG10 (X)

基本実数 

AMAX0 (A1, A2 [, A3,...])

REAL (MAX (A1, A2 [, A3,...]))

基本整数 

AMAX1 (A1, A2 [, A3,...])

MAX (A1, A2 [, A3,...])

基本実数 

AMIN0 (A1, A2 [, A3,...])

REAL (MIN (A1, A2 [, A3,...]))

基本整数 

AMIN1 (A1, A2 [, A3,...])

MIN (A1, A2 [, A3,...])

基本実数 

 

AMOD (A, P)

MOD (A, P)

基本実数 

 

ANINT (A)

ANINT (A)

基本実数 

 

ASIN (X)

ASIN (X)

基本実数 

 

ATAN (X)

ATAN (X)

基本実数 

 

ATAN2 (Y, X)

ATAN2 (Y, X)

基本実数 

 

CABS (A)

ABS (A)

基本複素数 

 

CCOS (X)

COS (X)

基本複素数 

 

CEXP (X)

EXP (X)

基本複素数 

CHAR (I)

CHAR (I)

基本整数 

 

CLOG (X)

LOG (X)

基本複素数 

 

CONJG (Z)

CONJG (Z)

基本複素数 

 

COS (X)

COS (X)

基本実数 

 

COSH (X)

COSH (X)

基本実数 

 

CSIN (X)

SIN (X)

基本複素数 

 

CSQRT (X)

SQRT (X)

基本複素数 

 

DABS (A)

ABS (A)

倍精度 

 

DACOS (X)

ACOS (X)

倍精度 

 

DASIN (X)

ASIN (X)

倍精度 

 

DATAN (X)

ATAN (X)

倍精度 

 

DATAN2 (Y, X)

ATAN2 (Y, X)

倍精度 

 

DCOS (X)

COS (X)

倍精度 

 

DCOSH (X)

COSH (X)

倍精度 

 

DDIM (X, Y)

DIM (X, Y)

倍精度 

 

DEXP (X)

EXP (X)

倍精度 

 

DIM (X, Y)

DIM (X, Y)

基本実数 

 

DINT (A)

AINT (A)

倍精度 

 

DLOG (X)

LOG (X)

倍精度 

 

DLOG10 (X)

LOG10 (X)

倍精度 

DMAX1 (A1, A2 [, A3,...])

MAX (A1, A2 [, A3,...])

倍精度 

DMIN1 (A1, A2 [, A3,...])

MIN (A1, A2 [, A3,...])

倍精度 

 

DMOD (A, P)

MOD (A, P)

倍精度 

 

DNINT (A)

ANINT (A)

倍精度 

 

DPROD (X, Y)

DPROD (X, Y)

基本実数 

 

DSIGN (A, B)

SIGN (A, B)

倍精度 

 

DSIN (X)

SIN (X)

倍精度 

 

DSINH (X)

SINH (X)

倍精度 

 

DSQRT (X)

SQRT (X)

倍精度 

 

DTAN (X)

TAN (X)

倍精度 

 

DTANH (X)

TANH (X)

倍精度 

 

EXP (X)

EXP (X)

基本実数 

FLOAT (A)

REAL (A)

基本整数 

 

IABS (A)

ABS (A)

基本整数 

ICHAR (C)

ICHAR (C)

基本文字 

 

IDIM (X, Y)

DIM (X, Y)

基本整数 

IDINT (A)

INT (A)

倍精度 

 

IDNINT (A)

NINT (A)

倍精度 

IFIX (A)

INT (A)

基本実数 

 

INDEX (STRING, SUBSTRING)

INDEX (STRING, SUBSTRING)

基本文字 

INT (A)

INT (A)

基本実数 

 

ISIGN (A, B)

SIGN (A, B)

基本整数 

 

LEN (STRING)

LEN (STRING)

基本文字 

LGE (STRING_A, STRING_B)

LGE (STRING_A, STRING_B)

基本文字 

LGT (STRING_A, STRING_B)

LGT (STRING_A, STRING_B)

基本文字 

LLE (STRING_A, STRING_B)

LLE (STRING_A, STRING_B)

基本文字 

LLT (STRING_A, STRING_B)

LLT (STRING_A, STRING_B)

基本文字 

MAX0 (A1, A2 [, A3,...])

MAX (A1, A2 [, A3,...])

基本整数 

MAX1 (A1, A2 [, A3,...])

INT (MAX (A1, A2 [, A3,...]))

基本実数 

MIN0 (A1, A2 [, A3,...])

MIN (A1, A2 [, A3,...])

基本整数 

MIN1 (A1, A2 [, A3,...])

INT (MIN (A1, A2 [, A3,...]))

基本実数 

 

MOD (A, P)

MOD (A, P)

基本整数 

 

NINT (A)

NINT (A)

基本実数 

REAL (A)

REAL (A)

基本整数 

 

SIGN (A, B)

SIGN (A, B)

基本実数 

 

SIN (X)

SIN (X)

基本実数 

 

SINH (X)

SINH (X)

基本実数 

SNGL (A)

REAL (A)

倍精度 

 

SQRT (X)

SQRT (X)

基本実数 

 

TAN (X)

TAN (X)

基本実数 

 

TANH (X)

TANH (X)

基本実数 

# の記号が付いた関数は、実引数として使用することができません。「倍精度」は、倍精度の実数を意味します。

2.2 Fortran 2003 モジュールルーチン

Fortran 2003 規格には一連の組み込みモジュールが用意されています。このモジュールでは、IEEE 算術演算と C 言語との相互運用性をサポートする関数を定義します。

2.2.1 IEEE 算術演算と例外のモジュール

Fortran 2003 規格は、対象言語で新しい関数をサポートして、IEEE 算術演算および IEEE 例外を処理できるようにするために、IEEE_EXCEPTIONSIEEE_ARITHMETIC、および IEEE_FEATURES の 3 つのモジュールを備えています。

ドラフト規格は、組み込み関数、要素別処理関数、種別関数、要素別処理サブルーチン、および非要素別処理サブルーチンのセットを定義します。これらのセットについては、次の表に記載しています。

これらの関数およびサブルーチンにアクセスするには、呼び出し側のルーチンで次のモジュールを指定する必要があります。

USE, INTRINSIC :: IEEE_ARITHMETIC, IEEE_EXCEPTIONS

詳細は、Fortran 規格 (http://www.j3-fortran.org) を参照してください。

2.2.1.1 問合せ関数

モジュール IEEE_EXCEPTIONS には、次の問い合わせ関数が含まれています。

関数 

説明 

IEEE_SUPPORT_FLAG(FLAG[,X])

プロセッサが例外をサポートしているかどうかの問い合わせ 

IEEE_SUPPORT_HALTING(FLAG)

プロセッサが、例外停止後の制御をサポートしているかどうかの問い合わせ 

モジュール IEEE_ARITHMETIC には、次の問い合わせ関数が含まれています。

関数 

説明 

IEEE_SUPPORT_DATATYPE([X])

プロセッサが IEEE 算術演算をサポートしているかどうかの問い合わせ 

IEEE_SUPPORT_DENORMAL([X])

プロセッサが、非正規化数をサポートしているかどうかの問い合わせ 

IEEE_SUPPORT_DIVIDE([X])

プロセッサが、IEEE 規格で指定されている精度での除算をサポートしているかどうかの問い合わせ 

IEEE_SUPPORT_INF([X])

プロセッサが IEEE 無限大をサポートしているかどうかの問い合わせ 

IEEE_SUPPORT_IO([X])

プロセッサが、書式付き入出力において IEEE 基本変換の丸めをサポートしているかどうかの問い合わせ 

IEEE_SUPPORT_NAN([X])

プロセッサが IEEE 非数をサポートしているかどうかの問い合わせ 

IEEE_SUPPORT_ROUNDING(VAL[,X])

プロセッサが 特別な丸めモードをサポートしているかどうかの問い合わせ 

IEEE_SUPPORT_SQRT([X])

プロセッサが IEEE 平方根をサポートしているかどうかの問い合わせ 

IEEE_SUPPORT_STANDARD([X])

プロセッサが IEEE のすべての機能をサポートしているかどうかの問い合わせ 

2.2.1.2 要素別処理関数

モジュール IEEE_ARITHMETIC には、IEEE_SUPPORT_DATATYPE(X) および IEEE_SUPPORT_DATATYPE(Y) が真であるような実数 XY について、次の要素別処理関数が含まれています。

関数 

説明 

IEEE_CLASS(X)

IEEE クラス 

IEEE_COPY_SIGN(X,Y)

IEEE copysign 関数 

IEEE_IS_FINITE(X)

値が有限かどうかの判定 

IEEE_IS_NAN(X)

値が IEEE 非数であるかどうかの判定 

IEEE_IS_NORMAL(X)

値が正規であるかどうかの判定 

IEEE_IS_NEGATIVE(X)

値が負かどうかの判定 

IEEE_LOGB(X)

IEEE 浮動小数点書式の非バイアス指数 

IEEE_NEXT_AFTER(X,Y)

Y 方向に向かって、X の次の表現可能文字を返す

IEEE_REM(X,Y)

IEEE REM 剰余関数 X - Y*N で、N は、実際の X/Y にもっとも近い整数を表す

IEEE_RINT(X)

現在の丸めモードに従って整数値を返す 

IEEE_SCALB(X,I)

X*2**I を返す

IEEE_UNORDERED(X,Y)

IEEE unordered 関数。X または Y が NaN の場合は真、それ以外の場合は偽

IEEE_VALUE(X,CLASS)

IEEE 値の生成 

2.2.1.3 種別関数

モジュール IEEE_ARITHMETIC には、次の変形関数が含まれています。

関数 

説明 

IEEE_SELECTED_REAL_KIND([P,][R])

指定した精度と範囲の IEEE 実数 に対する kind 型パラメータ値 

2.2.1.4 要素別処理サブルーチン

モジュール IEEE_EXCEPTIONS には、次の要素別処理サブルーチンが含まれています。

サブルーチン 

説明 

IEEE_GET_FLAG(FLAG,FLAG_VALUE)

例外フラグの取得 

IEEE_GET_HALTING_MODE(FLAG,HALTING)

例外に対する停止モードの取得 

2.2.1.5 非要素別処理サブルーチン

モジュール IEEE_EXCEPTIONS には、次の非要素別サブルーチンが含まれています。

サブルーチン 

説明 

IEEE_GET_STATUS(STATUS_VALUE)

浮動小数点環境の現在の状態の取得 

IEEE_SET_FLAG(FLAG,FLAG_VALUE)

例外フラグの設定 

IEEE_SET_HALTING_MODE(FLAG,HALTING)

例外時における続行または停止の制御 

IEEE_SET_STATUS(STATUS_VALUE)

浮動小数点環境の状態の復元 

モジュール IEEE_ARITHMETIC には、次の非要素別サブルーチンが含まれています。

サブルーチン 

内容の説明 

IEEE_GET_ROUNDING_MODE(ROUND_VAL)

現在の IEEE 丸めモードの取得 

IEEE_SET_ROUNDING_MODE(ROUND_VAL)

現在の IEEE 丸めモードの設定 

2.2.2 C 結合モジュール

Fortran 2003 の規格には、C 言語手続きを参照する方法が用意されています。ISO_C_BINDING モジュールは、組み込みモジュール関数として 3 つのサポートプロシージャを定義します。これらの関数にアクセスするには、呼び出し側のルーチンで次の指定が必要です。

USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC, C_PTR, C_ASSOCIATED

モジュールで定義されるプロシージャは次のとおりです。

関数 

説明 

C_LOC(X)

引数の C アドレスを返す 

C_ASSOCIATED(C_PTR_1 [, C_PTR_2])

C_PTR_1 の結合状態を示すか、または C_PTR_1C_PTR_2 が同じエンティティーに関連付けられているかどうかを示す

C_F_POINTER(CPTR, FPTR [, SHAPE])

C ポインタのターゲットとポインタを関連付け、その形状を指定する 

ISO_C_BINDING 組み込みモジュールの詳細は、Fortran 2003 規格の第 15 章 (http://www.j3-fortran.org) を参照してください。

2.3 非標準の Fortran 95 組み込み関数

次に挙げる関数は f95 コンパイラにより組み込み関数と見なされますが、Fortran 95 規格の一部ではありません。

2.3.1 基本線形代数関数 (BLAS)

-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』を参照してください。

2.3.2 区間演算組み込み関数

次の表に、区間演算 (-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

 

 

 

2.3.3 その他のベンダーの組み込み関数

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 メモリー関数」 も参照してください。

2.3.4 その他の拡張子

Fortran 95 コンパイラは、次の組み込み関数を認識します。

2.3.4.1 MPI_SIZEOF

MPI_SIZEOF( x, size, error)

指定された変数、x のマシン表現のサイズをバイトで戻します。x が配列の場合、底要素のサイズを戻し、配列全体のサイズは戻しません。

入力、変数または任意の型の配列 

size

出力、整数、x のバイト数でのサイズ

error

出力、整数、エラーが検出されるとエラーコードへ設定、検出されない場合はゼロ 

2.3.4.2 メモリー関数

メモリー割り当て、再割り当て、割り当て解除関数 malloc()realloc()free()f95 組み込み関数として実装されます。詳細については、「1.4.35 mallocmalloc64 reallocfree: 記憶領域の割り当て/再割り当て/割り当て解除」を参照してください。