ナビゲーション:前へ 上へ 次へ
8.4 Fortran 95組込み手続き
このセクションにはFortran 90/95組込み関数とサブルーチンに関する簡単な 参照ガイドが含まれています。
‘*’を付した手続きは他の組込み手続きの非汎用版です。 ‘E’を付した手続きは基本的なものです。
‘I’を付した手続きは問合せ関数です。これらは値ではなく変数 の特性を問い合わせます。
‘P’を付した手続きは実引数として使用できます。手続きの引数
として使用する場合、すべての引数はスカラであり、省略可能な引数は許され
ません。そしてそれは汎用的なものにはなりません。名前が通常の汎用的なも
のであれば、手続き引数版は文字IからNで始まる場合にデフォルト整数
(INTEGER
)、そうでない場合にデフォルト実数(REAL
)となり
ます。
‘KIND
’と書かれた引数は初期化式でなくてはなりません。
イタリック体の引数(例えば‘DIM’)は省略可能です。
組込み関数
関数名 | フラグ | 概要 |
ABS(A) | EP | 絶対値。 |
ACHAR(I) | E | ASCII値から文字を生成する。 |
ACOS(X) | EP | 逆余弦。 |
ADJUSTL(STRING) | E | 先行する空白を末尾に移動することにより文字列を左揃えにする。 |
ADJUSTR(STRING) | E | 文字列を右揃えにする。 |
AIMAG(Z) | EP | 複素数の虚数部。 |
AINT(A,KIND ) | EP | 切り捨てて整数にする。 |
ALL(MASK,DIM) | MASK を.AND. 演算によって換算する。 | |
ALLOCATED(ARRAY) | I | 割付け配列が割り付けられているかどうか。 |
ALOG(X) | *P | スカラデフォルト実数に限定されたLOG 関数。 |
ALOG10(X) | *P | スカラデフォルト実数に限定されたLOG10 関数。 |
AMAX0(A1,A2,A3,...) | * | スカラデフォルト整数引数を取るREAL(MAX(A1,A2,A3,...)) 。 |
AMAX1(A1,A2,A3,...) | * | スカラデフォルト実数に限定されたMAX 関数。 |
AMIN0(A1,A2,A3,...) | * | スカラデフォルト整数引数を取るREAL(MIN(A1,A2,A3,...)) 。 |
AMIN1(A1,A2,A3,...) | * | スカラデフォルト整数に限定されたMIN 関数。 |
AMOD(A,P) | *P | スカラデフォルト実数に限定されたMOD 関数。 |
ANINT(A,KIND) | EP | 整数に丸める。 |
ANY(MASK,DIM) | MASK を.OR. 演算によって換算する。 | |
ASIN(X) | EP | 逆正弦。 |
ASSOCIATED(POINTER,TARGET) | I | ポインタがターゲットに結合されているかどうか。 |
ATAN(X) | EP | 逆正接。 |
ATAN2(Y,X) | EP | 逆正接。 |
BIT_SIZE(I) | 整数型におけるビット数。 | |
BTEST(I,POS) | E | 特定のビットが1かどうか。 |
CABS(A) | *P | スカラデフォルト複素数に限定されたABS 関数。 |
CCOS(X) | *P | スカラデフォルト複素数に限定されたCOS 関数。 |
CEILING(A,KIND) | E | A 以上の最小整数。 |
CEXP(X) | *P | スカラデフォルト複素数に限定されたEXP 関数。 |
CHAR(I,KIND) | E | ネーティブコードの文字セット値から文字を生成する。 |
CLOG(X) | *P | スカラデフォルト複素数に限定されたLOG 関数。 |
CMPLX(X,Y,KIND) | E | 複素数への変換。 |
CONJG(Z) | EP | 共役複素数。 |
COS(X) | EP | 余弦。 |
COSH(X) | EP | 双曲線余弦。 |
COUNT(MASK,DIM) | .TRUE. 要素をカウントすることによってMASK を換算する。 | |
CSHIFT(ARRAY,SHIFT,DIM) | 配列の循環型シフト。 | |
CSIN(X) | *P | スカラデフォルト複素数に限定されたSIN 関数。 |
CSQRT(X) | *P | スカラデフォルト複素数に限定されたSQRT 関数。 |
DABS(A) | *P | スカラ倍精度に限定されたABS 関数。 |
DACOS(X) | *P | スカラ倍精度に限定されたACOS 関数。 |
DASIN(X) | *P | スカラ倍精度に限定されたASIN 関数。 |
DATAN(X) | *P | スカラ倍精度に限定されたATAN 関数。 |
DATAN2(X) | *P | スカラ倍精度に限定されたATAN2 関数。 |
DBLE(A) | E | 倍精度に変換する。 |
DCOS(X) | *P | スカラ倍精度に限定されたCOS 関数。 |
DCOSH(X) | *P | スカラ倍精度に限定されたCOSH 関数。 |
DDIM(X,Y) | *P | スカラ倍精度に限定されたDIM 関数。 |
DEXP(X) | *P | スカラ倍精度に限定されたEXP 関数。 |
DIGITS(X) | I | Xに対する数体系中の仮数部桁数。 |
DIM(X,Y) | EP | 非負の差、MAX(0,X-Y) 。 |
DINT(A) | *P | スカラ倍精度に限定されたAINT 関数。 |
DLOG(X) | *P | スカラ倍精度に限定されたLOG 関数。 |
DLOG10(X) | *P | スカラ倍精度に限定されたLOG10 関数。 |
DMAX1(A1,A2,A3,...) | * | スカラ倍精度に限定されたMAX 関数。 |
DMIN1(A1,A2,A3,...) | * | スカラ倍精度に限定されたMIN 関数。 |
DMOD(A,P) | *P | スカラ倍精度に限定されたMOD 関数。 |
DNINT(A) | *P | スカラ倍精度に限定されたANINT 関数。 |
DOT_PRODUCT(VECTOR_A,VECTOR_B) | 内積。 | |
DPROD(X,Y) | EP | X*Yの倍精度による結果。 |
DSIGN(A,B) | *P | スカラ倍精度に限定されたSIGN 関数。 |
DSIN(X) | *P | スカラ倍精度に限定されたSIN 関数。 |
DSINH(X) | *P | スカラ倍精度に限定されたSINH 関数。 |
DSQRT(X) | *P | スカラ倍精度に限定されたSQRT 関数。 |
DTAN(X) | *P | スカラ倍精度に限定されたTAN 関数。 |
DTANH(X) | *P | スカラ倍精度に限定されたTANH 関数。 |
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM) | 配列のend-offシフト。 | |
EPSILON(X) | I | 1に比べてほとんど無視し得る数。 |
EXP(X) | EP | 指数(eX )。 |
EXPONENT(X) | E | 浮動小数の指数部。 |
FLOAT(A) | * | スカラデフォルト整数に限定されたREAL 関数。 |
FLOOR(A,KIND) | E | A 以下の最大整数。 |
FRACTION(X) | E | 浮動小数の仮数部。 |
HUGE(X) | I | 実数型数体系中での最大数。 |
IABS(A) | *P | スカラデフォルト整数に限定されたABS 関数。 |
IACHAR(C) | E | 文字のASCII値。 |
IAND(I,J) | E | ビット単位のand。 |
IBCLR(I,POS) | E | 指定されたビットのクリア。 |
IBITS(I,POS,LEN) | E | ビット群の抽出。 |
IBSET(I,POS) | E | ビットのセット。 |
ICHAR(C) | E | 文字に対するネーティブコードの文字セット値。 |
IDIM(X,Y) | *P | スカラデフォルト整数に限定されたDIM 関数。 |
IDINT(A) | * | スカラ倍精度に限定されたINT 関数。 |
IDNINT(A) | *P | スカラ倍精度に限定されたNINT 関数。 |
IEOR(I,J) | E | ビット単位のexclusive or。 |
IFIX(A) | * | スカラデフォルト実数に限定されたINT 関数。 |
INDEX(STRING,SUBSTRING,BACK) | EP | 部分文字列のサーチ。 |
INT(A,KIND) | E | 整数への変換。 |
IOR(I,J) | E | ビット単位のinclusive or。 |
ISHFT(I,SHIFT) | E | ビットのシフト。 |
ISHFTC(I,SHIFT,SIZE) | E | 循環式にビットをシフトする。 |
ISIGN(A,B) | *P | スカラデフォルト整数に限定されたSIGN 関数。 |
KIND(X) | I | X の種別パラメータ。 |
LBOUND(ARRAY,DIM) | I | 配列の下限。 |
LEN(STRING) | IP | 文字列の長さ。 |
LEN_TRIM(STRING) | E | 末尾の空白を無視した文字列の長さ。 |
LGE(STRING_A,STRING_B) | E | ASCII大小順序を用いた比較(>= )。 |
LGT(STRING_A,STRING_B) | E | ASCII大小順序を用いた比較(> )。 |
LLE(STRING_A,STRING_B) | E | ASCII大小順序を用いた比較(<= )。 |
LLT(STRING_A,STRING_B) | E | ASCII大小順序を用いた比較(< )。 |
LOG(X) | EP | 自然対数。 |
LOG10(X) | EP | 常用対数。 |
LOGICAL(L,KIND) | E | 特定の論理種別への変換。 |
MATMUL(MATRIX_A,MATRIX_B) | 行列の乗算。 | |
MAX(A1,A2,A3,...) | E | 最大値。 |
MAX0(A1,A2,A3,...) | * | スカラデフォルト整数に限定されたMAX 関数。 |
MAX1(A1,A2,A3,...) | * | スカラデフォルト実数引数によるINT(MAX(A1,A2,A3,...)) 。 |
MAXEXPONENT(X) | I | X に対する数体系指数部の最大値。 |
MAXLOC(ARRAY,MASK) | 配列中の最大値の位置。 | |
MAXLOC(ARRAY,DIM,MASK) | 次元を限定したときの最大値の位置。 | |
MAXVAL(ARRAY,MASK) | MAX 組込み関数を用いて配列を換算する。 | |
MAXVAL(ARRAY,DIM,MASK) | MAX 組込み関数による次元の換算。 | |
MERGE(TSOURCE,FSOURCE,MASK) | E | 論理値による値の選択。 |
MIN(A1,A2,A3,...) | E | 最小値。 |
MIN0(A1,A2,A3,...) | * | スカラデフォルト整数に限定されたMIN 関数。 |
MIN1(A1,A2,A3,...) | * | スカラデフォルト実数引数によるINT(MIN(A1,A2,A3,...)) 。 |
MINEXPONENT(X) | I | X に対する数体系指数部の最小値。 |
MINLOC(ARRAY,MASK) | 配列中の最小値の位置。 | |
MINLOC(ARRAY,DIM,MASK) | 次元を限定したときの最小値の位置。 | |
MINVAL(ARRAY,MASK) | MIN 組込み関数を用いて配列を換算する。 | |
MINVAL(ARRAY,DIM,MASK) | MIN 組込み関数による次元の換算。 | |
MOD(A,P) | EP | 剰余。sign(result) = sign(A )。 |
MODULO(A,P) | E | モジューロ。sign(result) = sign(P )。 |
NEAREST(X,S) | E | マシンで表現可能な最近数。 |
NINT(A,KIND) | EP | 丸め、及び整数への変換。 |
NOT(I) | E | ビット単位の補数。 |
NULL(MOLD) | 空ポインタ。 | |
PACK(ARRAY,MASK,VECTOR) | 配列をベクトルにpackする。 | |
PRECISION(X) | I | X に対する10進数体系精度。 |
PRESENT(A) | I | 省略可能な引数があるかどうか。 |
PRODUCT(ARRAY,MASK) | 配列を乗算により換算する。 | |
PRODUCT(ARRAY,DIM,MASK) | 乗算による次元の換算。 | |
RADIX(X) | I | X に対する数体系基数。 |
RANGE(X) | I | X に対する10進数体系の指数範囲。 |
REAL(A,KIND) | E | 実数への変換。 |
REPEAT(STRING,NCOPIES) | 文字列を自身に連結する。 | |
RESHAPE(SOURCE,SHAPE,PAD,ORDER) | 配列を形状変更する。 | |
RRSPACING(X) | E | X 近傍での数体系相対間隔の逆数。 |
SCALE(X,I) | E | X*RADIX(X)**I . |
SCAN(STRING,SET,BACK) | E | 集合中で文字を探す。 |
SELECTED_INT_KIND(R) | 少なくともR だけの10進桁を持つ整数種別。 | |
SELECTED_REAL_KIND(P,R) | 少なくともP だけの10進精度と、 | |
R だけの10進指数範囲を持つ実数種別。 | ||
SET_EXPONENT(X,I) | E | X*RADIX(X)**(I-EXPONENT(X)) 。 |
SHAPE(SOURCE) | I | 配列の形状。 |
SIGN(A,B) | EP | B の符合を持つA 。 |
SIN(X) | EP | 正弦。 |
SINH(X) | EP | 双曲線正弦。 |
SIZE(ARRAY,DIM) | I | 配列のサイズ、次元。 |
SNGL(A) | * | スカラ倍精度に限定されたREAL 関数。 |
SPACING(X) | E | X 近傍における数体系間隔。 |
SPREAD(SOURCE,DIM,NCOPIES) | 与えられた次元内で配列を複製する。 | |
SQRT(X) | EP | 平方根。 |
SUM(ARRAY,MASK) | 加算により配列を換算する。 | |
SUM(ARRAY,DIM,MASK) | 加算による次元の換算。 | |
TAN(X) | EP | 正接。 |
TANH(X) | EP | 双曲線正接。 |
TINY(X) | I | X に対する数体系上の最小数。 |
TRANSFER(SOURCE,MOLD,SIZE) | 内部表現をコピーする。 | |
TRANSPOSE(MATRIX) | 配列を転置する。 | |
TRIM(STRING) | 末尾の空白を除去した文字列。 | |
UBOUND(ARRAY,DIM) | I | 配列の上限。 |
UNPACK(VECTOR,MASK,FIELD) | ベクトルを配列にunpackする。 | |
VERIFY(STRING,SET,BACK) | E | 集合中にない文字を探す。 |
組込みサブルーチン
サブルーチン名 | フラグ | 概要 |
CPU_TIME(TIME) | CPU実行時間。 | |
DATE_AND_TIME(DATE,TIME,ZONE,VALUES) | 日付、時刻情報。 | |
MVBITS(FROM,FROMPOS,LEN,TO,TOPOS) | E | ビットフィールドの移動、またはコピー。 |
RANDOM_NUMBER(HARVEST) | 擬似乱数を応答として返す。 | |
RANDOM_SEED(SIZE,PUT,GET) | 擬似乱数発生機構を制御する。 | |
SYSTEM_CLOCK(COUNT,COUNT_RATE,COUNT_MAX) | 実時間クロック情報。 |