Fortran-intrinsic-functions

提供:Dev Guides
移動先:案内検索

Fortran-組み込み関数

組み込み関数は、Fortran言語の一部として提供される一般的で重要な関数です。 これらの関数のいくつかについては、配列、文​​字、文字列の章で既に説明しました。

組み込み関数は次のように分類できます-

  • 数値関数
  • 数学関数
  • 数値照会関数
  • 浮動小数点操作関数
  • ビット操作関数
  • キャラクター関数
  • 種類の機能
  • 論理関数
  • 配列関数。

配列の章で配列関数について説明しました。 次のセクションでは、他のカテゴリのこれらすべての機能について簡単に説明します。

関数名の列で、

  • Aは、あらゆるタイプの数値変数を表します
  • Rは実数または整数変数を表します
  • XとYは実変数を表します
  • Zは複素変数を表します *Wは実変数または複素変数を表します

数値関数

Sr.No Function & Description
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)

数学関数

Sr.No Function & Description
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 = u t cos aおよびy = u t 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と同じ種類の数値のプロパティを返します。これは、実数である場合があり、整数になる場合があります。

Sr.No Function & Description
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)

小数精度を返します

7

RADIX (X)

モデルのベースを返します

8

RANGE (X)

10進数の指数範囲を返します

9

TINY (X)

モデルの最小の正数を返します

浮動小数点操作関数

Sr.No Function & Description
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)

指定された数値の近くのモデル番号の絶対間隔を返します

ビット操作関数

Sr.No Function & Description
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)

排他的OR

8

IOR (I, J)

包括的OR

9

ISHFT (I, SHIFT)

論理シフト

10

ISHFTC (I, SHIFT [, SIZE])

循環シフト

11

NOT (I)

論理補数

キャラクター関数

Sr.No Function & Description
1

ACHAR (I)

ASCII照合シーケンスのI番目の文字を返します。

2

ADJUSTL (STRING)

先頭の空白を削除し、末尾の空白を挿入することにより、文字列を調整します

3

ADJUSTR (STRING)

末尾の空白を削除して先頭の空白を挿入することにより、文字列を調整します。

4

CHAR (I [, KIND])

マシン固有の照合シーケンスでI番目の文字を返します

5

IACHAR ©

ASCII照合シーケンスでの文字の位置を返します。

6

ICHAR ©

マシン(プロセッサ)固有の照合シーケンスでの文字の位置を返します。

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。の場合は右端)の文字のインデックスを返します。SETに属する文字がない場合は0を返します。

16

TRIM (STRING)

末尾の空白文字を削除します

17

VERIFY (STRING, SET [, BACK])

文字列内の文字セットを検証します

種類の機能

Sr.No Function & Description
1

KIND (X)

kind型パラメーター値を返します。

2

SELECTED_INT_KIND ®

指定された指数範囲の種類パラメータの種類を返します。

3

SELECTED_REAL_KIND ([P, R])

与えられた精度と範囲の実種類のパラメーター値

論理関数

Sr.No Function & Description
1

LOGICAL (L [, KIND])

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