ナビゲーション:前へ 上へ 次へ
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) | 実時間クロック情報。 |
