Fortran-組み込み関数
組み込み関数は、Fortran言語の一部として提供されるいくつかの一般的で重要な関数です。これらの関数のいくつかについては、配列、文字、文字列の章ですでに説明しました。
組み込み関数は次のように分類できます-
- 数値関数
- 数学関数
- 数値照会機能
- 浮動小数点操作関数
- ビット操作機能
- 文字機能
- 種類の機能
- 論理関数
- 配列関数。
配列の章で配列関数について説明しました。次のセクションでは、他のカテゴリのこれらすべての機能について簡単に説明します。
関数名の列で、
- Aは任意のタイプの数値変数を表します
- Rは実数または整数の変数を表します
- XとYは実変数を表します
- Zは複素変数を表します
- Wは実変数または複素変数を表します
数値関数
シニア番号 | 機能と説明 |
---|---|
1 | ABS (A) Aの絶対値を返します |
2 | AIMAG (Z) 複素数Zの虚数部を返します |
3 | AINT (A [, KIND]) Aの小数部分をゼロに向かって切り捨て、実数の整数を返します。 |
4 | ANINT (A [, KIND]) 実数値、最も近い整数または整数を返します。 |
5 | CEILING (A [, KIND]) 数値A以上の最小の整数を返します。 |
6 | CMPLX (X [, Y, KIND]) 実変数XとYを複素数X + iYに変換します。Yがない場合は、0が使用されます。 |
7 | CONJG (Z) 複素数Zの複素共役を返します。 |
8 | DBLE (A) Aを倍精度の実数に変換します。 |
9 | DIM (X, Y) XとYの正の差を返します。 |
10 | DPROD (X, Y) XとYの倍精度の実積を返します。 |
11 | FLOOR (A [, KIND]) 数値A以下の最大の整数を提供します。 |
12 | INT (A [, KIND]) 数値(実数または整数)を整数に変換し、実数部をゼロに向かって切り捨てます。 |
13 | MAX (A1, A2 [, A3,...]) 引数から最大値を返し、すべて同じタイプです。 |
14 | MIN (A1, A2 [, A3,...]) 引数から最小値を返します。すべて同じタイプです。 |
15 | MOD (A, P) Pで除算すると、Aの余りが返されます。両方の引数は同じ型です(A-INT(A / P)* P) |
16 | MODULO (A, P) Pを法としてAを返します:(A-FLOOR(A / P)* P) |
17 | NINT (A [, KIND]) 数値Aの最も近い整数を返します |
18 | REAL (A [, KIND]) 実数型に変換します |
19 | SIGN (A, B) Aの絶対値にPの符号を掛けた値を返します。基本的にはBの符号をAに転送します。 |
例
program numericFunctions
implicit none
! define constants
! define variables
real :: a, b
complex :: z
! values for a, b
a = 15.2345
b = -20.7689
write(*,*) 'abs(a): ',abs(a),' abs(b): ',abs(b)
write(*,*) 'aint(a): ',aint(a),' aint(b): ',aint(b)
write(*,*) 'ceiling(a): ',ceiling(a),' ceiling(b): ',ceiling(b)
write(*,*) 'floor(a): ',floor(a),' floor(b): ',floor(b)
z = cmplx(a, b)
write(*,*) 'z: ',z
end program numericFunctions
上記のプログラムをコンパイルして実行すると、次の結果が得られます-
abs(a): 15.2344999 abs(b): 20.7688999
aint(a): 15.0000000 aint(b): -20.0000000
ceiling(a): 16 ceiling(b): -20
floor(a): 15 floor(b): -21
z: (15.2344999, -20.7688999)
数学関数
シニア番号 | 機能と説明 |
---|---|
1 | ACOS (X) (0、π)の範囲の逆余弦をラジアンで返します。 |
2 | ASIN (X) (-π/ 2、π/ 2)の範囲の逆正弦をラジアンで返します。 |
3 | ATAN (X) 範囲(-π/ 2、π/ 2)の逆タンジェントをラジアンで返します。 |
4 | ATAN2 (Y, X) 範囲(-π、π)の逆タンジェントをラジアンで返します。 |
5 | COS (X) 引数のコサインをラジアンで返します。 |
6 | COSH (X) 引数の双曲線余弦をラジアンで返します。 |
7 | EXP (X) Xの指数値を返します。 |
8 | LOG (X) Xの自然対数値を返します。 |
9 | LOG10 (X) Xの常用対数(基数10)値を返します。 |
10 | SIN (X) 引数のサインをラジアンで返します。 |
11 | SINH (X) 引数の双曲線正弦をラジアンで返します。 |
12 | SQRT (X) Xの平方根を返します。 |
13 | TAN (X) 引数の接線をラジアンで返します。 |
14 | TANH (X) 引数の双曲線タンジェントをラジアンで返します。 |
例
次のプログラムは、時間t −後の発射体の水平位置と垂直位置xとyをそれぞれ計算します。
ここで、x = ut cosaおよびy = ut sin a --g t2 / 2
program projectileMotion
implicit none
! define constants
real, parameter :: g = 9.8
real, parameter :: pi = 3.1415927
!define variables
real :: a, t, u, x, y
!values for a, t, and u
a = 45.0
t = 20.0
u = 10.0
! convert angle to radians
a = a * pi / 180.0
x = u * cos(a) * t
y = u * sin(a) * t - 0.5 * g * t * t
write(*,*) 'x: ',x,' y: ',y
end program projectileMotion
上記のプログラムをコンパイルして実行すると、次の結果が得られます-
x: 141.421356 y: -1818.57861
数値照会機能
これらの関数は、整数および浮動小数点演算の特定のモデルで機能します。関数は、変数Xと同じ種類の数値のプロパティを返します。これは実数であり、場合によっては整数です。
シニア番号 | 機能と説明 |
---|---|
1 | DIGITS (X) モデルの有効桁数を返します。 |
2 | EPSILON (X) 1と比較してほとんど無視できる数を返します。つまり、REAL(1.0、KIND(X))+ EPSILON(X)がREAL(1.0、KIND(X))と等しくないような最小値を返します。 |
3 | HUGE (X) モデルの最大数を返します |
4 | MAXEXPONENT (X) モデルの最大指数を返します |
5 | MINEXPONENT (X) モデルの最小指数を返します |
6 | PRECISION (X) 10進精度を返します |
7 | RADIX (X) モデルのベースを返します |
8 | RANGE (X) 10進数の指数範囲を返します |
9 | TINY (X) モデルの最小の正の数を返します |
浮動小数点操作関数
シニア番号 | 機能と説明 |
---|---|
1 | EXPONENT (X) モデル番号の指数部分を返します |
2 | FRACTION (X) 数値の小数部分を返します |
3 | NEAREST (X, S) 指定された方向に最も近い異なるプロセッサ番号を返します |
4 | RRSPACING (X) 指定された数値に近いモデル番号の相対間隔の逆数を返します |
5 | SCALE (X, I) 実数にその底を掛けて整数乗します |
6 | SET_EXPONENT (X, I) 数値の指数部分を返します |
7 | SPACING (X) 指定された数値に近いモデル番号の絶対間隔を返します |
ビット操作機能
シニア番号 | 機能と説明 |
---|---|
1 | BIT_SIZE (I) モデルのビット数を返します |
2 | BTEST (I, POS) ビットテスト |
3 | IAND (I, J) 論理積 |
4 | IBCLR (I, POS) クリアビット |
5 | IBITS (I, POS, LEN) ビット抽出 |
6 | IBSET (I, POS) セットビット |
7 | IEOR (I, J) 排他的論理和 |
8 | IOR (I, J) 包括的または |
9 | ISHFT (I, SHIFT) 論理シフト |
10 | ISHFTC (I, SHIFT [, SIZE]) 循環シフト |
11 | NOT (I) 論理的補数 |
文字機能
シニア番号 | 機能と説明 |
---|---|
1 | ACHAR (I) ASCII照合シーケンスのI番目の文字を返します。 |
2 | ADJUSTL (STRING) 先頭の空白を削除し、末尾の空白を挿入することで、左の文字列を調整します |
3 | ADJUSTR (STRING) 末尾の空白を削除し、先頭の空白を挿入することで、文字列を正しく調整します。 |
4 | CHAR (I [, KIND]) マシン固有の照合シーケンスのI番目の文字を返します |
5 | IACHAR (C) ASCII照合シーケンス内の文字の位置を返します。 |
6 | ICHAR (C) マシン(プロセッサ)固有の照合シーケンス内の文字の位置を返します。 |
7 | INDEX (STRING, SUBSTRING [, BACK]) STRING内のSUBSTRINGの左端(BACKが.TRUEの場合は右端)の開始位置を返します。 |
8 | LEN (STRING) 文字列の長さを返します。 |
9 | LEN_TRIM (STRING) 末尾の空白文字なしで文字列の長さを返します。 |
10 | LGE (STRING_A, STRING_B) 字句的に以上 |
11 | LGT (STRING_A, STRING_B) 字句的により大きい |
12 | LLE (STRING_A, STRING_B) 字句的に以下 |
13 | LLT (STRING_A, STRING_B) 字句的に |
14 | REPEAT (STRING, NCOPIES) 繰り返される連結 |
15 | SCAN (STRING, SET [, BACK]) SETに属するSTRINGの左端(BACKが.TRUEの場合は右端)の文字のインデックスを返します。何も属していない場合は0を返します。 |
16 | TRIM (STRING) 末尾の空白文字を削除します |
17 | VERIFY (STRING, SET [, BACK]) 文字列内の文字のセットを検証します |
種類の機能
シニア番号 | 機能と説明 |
---|---|
1 | KIND (X) 種類タイプのパラメータ値を返します。 |
2 | SELECTED_INT_KIND (R) 指定された指数範囲のタイプパラメータの種類を返します。 |
3 | SELECTED_REAL_KIND ([P, R]) 精度と範囲が指定された、実際の種類のタイプのパラメーター値 |
論理関数
シニア番号 | 機能と説明 |
---|---|
1 | LOGICAL (L [, KIND]) 異なる種類の型パラメーターを持つ論理型のオブジェクト間で変換する |